Запуск Oracle Database 10g Express Edition 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Запуск Oracle Database 10g Express Edition



Выбираем в меню: Пуск\Все программы\Oracle Database 10g Express Edition\Go to Database Home Page

После запуска мы видим, как открылось окно браузера(Internet Explorer). И в окне видим два поля для ввода имени и пароля пользователя.

Попросите администратора сети создать вам пользователя(или узнайте пароль администратора (имя пользователя - sys) и создайте пользователя сами Administration->Database Users->Create User – при создании пользователя укажите его права) или зайдите под стандартным пользователем hr, в котором уже есть созданная база данных hr - см. в конце л.р. Пользователь hr создан системой для ознакомления, а вам нужно будет создавать собственных пользователей.

Управление базой данных предельно просто и осуществляется через Web-интерфейс. Подобный подход облегчает администрирование, особенно в случае дистанционного управления через Интернет.

 

Создание БД.

БД можно создать либо с помощью графических утилит, либо с командной строки, либо скриптом в Oracle Server Manager.
Для создания БД, используя Server Manager, можно набрать команду вручную, либо использовать SQL-скрипт. В нашем случае создавать базу данных не надо, а использовать существующую, т.к. Oracle 10g Express Edition – пробная версия ПО. Но ознакомиться с синтаксисом команды нужно для работы на других версиях программы.(В oracle 10g express edition база данных по умолчанию называется - XE)

БД создается с помощью команды CREATE DATABASE. Синтаксис команды следующий:

CREATE DATABASE [[database]
[CONTROLFILE REUSE]]
LOGFILE [GROUP номер_группы] logfile
[, [GROUP номер_группы] logfile]...
[MAXLOGFILES число]
[MAXLOGMEMBERS число]
[MAXLOGHISTORY число]
[MAXDATAFILES число]
[MAXINSTANCES число]
[ARCHIVELOG или NOARCHIVELOG]
[EXCLUSIVE]
[CHARACTER SET кодировка]
[NATIONAL CHARACTER SET кодировка]
DATAFILE имя_файла [AUTOEXTEND OFF | ON
" WIDTH="14" HEIGHT="9" ALIGN="BOTTOM"
BORDER="0">;[NEXT число K | M] [MAXSIZE UNLIMITED | число K | M]
[, DATAFILE имя_файла [AUTOEXTEND OFF | ON
" WIDTH="14" HEIGHT="9" ALIGN="BOTTOM"
BORDER="0">;[NEXT число K | M] [MAXSIZE UNLIMITED | число K | M]]

 

Вот, что значат отдельные параметры и переменные:

- database - имя создаваемой БД. Длина имени не более восьми символов.

- CONTROLFILE REUSE - это необязательные параметр, указывающий, что любые существующие управляющие файлы будут перезаписаны с новыми данными. Без этого параметра попытка создания БД будет неудачной, если уже существует хотя бы один управляющий файл.

- LOGFILE - за этим параметром следует имя файла журналирования операций. Вы можете указать также номер группы (если не указать, то он будет присвоен автоматически).

- MAXLOGFILES - определяет максимальное число групп файлов журналирования операций, которые могут быть использованы в БД.
- MAXLOGMEMBERS - определяет максимальное число членов группы файлов журналирования операций.

- MAXLOGHISTORY - этот параметр используется лишь в режиме параллельного сервера и определяет максимальное количество архивных файлов журналирования для использования при восстановлении системы.

- MAXDATAFILES - определяет максимальное число файлов данных, которые могут быть добавлены к БД перед автоматическим расширением управляющего файла.

- ARCHIVELOG - указывает, что БД будет функционировать в режиме ARCHIVELOG. В этом режиме группа файлов журналирования операций в обязательном порядке архивируется перед новым использованием этих файлов (сменой). Этот режим необходим для надежного восстановления системы после сбоя.

- NOARCHIVELOG - определяет, что БД будет функционировать в этом режиме. Файлы журналирования операций не архивируются. Это режим по умолчанию.

- EXCLUSIVE - БД монтируется в режиме EXCLUSIVE после создания. В этом режиме только один экземпляр может смонтировать БД.

- CHARACTER SET - данные в БД будут храниться в соответствующей кодировочной таблице.

- NATIONAL CHARACTER SET - определяет кодировочную таблицу для хранения данных типов NCHAR, NCLOB и NVARCHAR2.

- DATAFILE - определяет файл данных, используемый в БД.

 

Файлы определяются как:

- 'имя файла' SIZE размер (К или М) - определяем имя файла данных и его первоначальный размер в К (килобайтах) или М (мегабайтах).

- [REUSE] - параметр позволяет использовать имя уже существующего файла.

 

Для параметра DATAFILE возможны следующие опции:

- AUTOEXTEND OFF - указывает, что автоувеличение размера файла не будет использоваться.

- AUTOEXTEND ON - автоувеличение размера файла использовано будет.

 

Для опции AUTOEXTEND ON возможны следующие варианты:

- NEXT - определяет число К (килобайт) или М (мегабайт), добавляемое при автоувеличении файла.

- MAXSIZE UNLIMITED - максимальный размер автоувеличивающегося файла не ограничен.

- MAXSIZE число (К или М) - определяет максимальный объем файла.

 

Команда CREATE DATABASE может показаться довольно громоздкой, но в действительности все не так уж и сложно. Нет необходимости использовать все параметры, но, по мере накопления опыта, Вы можете принять решения использовать их. Вот пример SQL-команды создания БД:

CREATE DATABASE cars
CONTROLFILE REUSE
LOGFILE
GROUP 1 (‘d:\database\log1a.dbf', ‘e:\database\log1b.dbf') SIZE 100K,
GROUP 2 (‘d:\database\log2a.dbf', ‘e:\database\log2b.dbf') SIZE 100K
DATAFILE

‘d:\database\data1.dbf' AUTOEXTEND ON,
‘d:\database\data2.dbf' AUTOEXTEND ON NEXT 10M MAXSIZE 50M;

 

Создание таблиц

Табличное пространство Oracle является самым нижним логическим слоем структуры данных. Оно состоит из одного или более файлов данных. В ранних версиях СУРБД Oracle размер файлов данных был фиксированным, но теперь файлы могут быть увеличены как автоматически, так и вручную.

Значимость табличных пространств заключена в том, что они предоставляют великолепную степень детализации расположения информации в файлах данных. После создания табличного пространства, процесс расположения и распределения таблиц в нем уходит из-под Вашего контроля. При аккуратном конфигурировании табличного пространства, у Вас будет несколько обобщенных опций, но основная масса работы по внутреннему расположению объектов будет выполнена автоматически.

Каждая БД Oracle должна иметь, по крайней мере, одно табличное пространство. Как мы увидим в одном из следующих выпусков, каждому пользователю можно присвоить табличное пространство, соответствующее функциям, выполняемым данным пользователем. По умолчанию всем пользователям присваивается табличное пространство SYSTEM, что не рекомендуется. Пользователям также могут быть присвоены квоты, указывающие какой объем памяти они не могут превысить.

Табличные пространства могут содержать любые из четырех видов сегментов:

- сегменты данных (Data segments) - основной тип, используется для хранения таблиц и кластеров.

- индексные сегменты (Index segments) - используются для хранения индексов.

- сегменты отката (Rollback segments) - специальные сегменты, хранящие информацию для отмены выполненных действий.

- временные сегменты (Temporary segments) - используются для хранения временных данных.

Табличные пространства по умолчанию являются доступными как для чтения, так и для записи, но могут быть изменены на состояние "только для чтения". Во многих ситуациях табличные пространства только для чтения могут оказаться незаменимыми.

Создание табличного пространства командой CREATE TABLESPACE

Вы можете создать табличное пространство в Server Managerе, используя команду CREATE TABLESPACE. Команда может быть введена интерактивно или выполнена из готового скрипт-файла. По-моему, предпочтительнее пользоваться SQL-скриптом, так как он может быть выполнен повторно. Кроме того, можно создать шаблон и по надобности вносить изменения. Сохраненный SQL-скрипт может оказаться весьма кстати после катастрофы (не дай бог!). Итак, для создания табличного пространства применяется следующая команда:

CREATE TABLESPACE
DATAFILE file_specification
[AUTOEXTEND OFF]
или [AUTOEXTEND ON [NEXT число K или M]
[MAXSIZE UNLIMITED или MAXSIZE число K или M]
[NOLOGGING или LOGGING]
[, file_specification
[AUTOEXTEND OFF]
или [AUTOEXTEND ON [NEXT число K или M]
[MAXSIZE UNLIMITED или MAXSIZE число K или M]
[NOLOGGING или LOGGING]]
[MINIMUM EXTENT число K или M]
[DEFAULT STORAGE storage_clause]
[ONLINE или OFFLINE]
[PERMANENT или TEMPORARY]

 

DATAFILE file_specification - определяет имена (или имя) файлов данных, составляющих табличное пространство. File_specification - это 'имя_файла' SIZE число (K или M) [REUSE]. Спецификация файла используется для указания имени и первоначального размера в (К)илобайтах или в (М)егабайтах файла данных. Параметр [REUSE] позволяет воспользоваться уже существующим в системе файлом.

Уточнения параметра DATAFILE:

- AUTOEXTEND OFF - параметр указывает, что средство автоувеличения размера файла использоваться не будет.

- AUTOEXTEND ON - автоувеличение размера файла будет использовано. Дополнительно можно указать:

- NEXT число K или M - когда файл данных самоувеличивается, он изменяется на указанный объем.

- MAXSIZE UNLIMITED - размер файла будет ограничен лишь физическим диском и особенностями операционной системы.

- MAXSIZE число K или M - файл данных не может быть больше указанного объема.

 

Вот остальные параметры команды CREATE TABLESPACE:

- LOGGING - указывает, что в журнал выполненных операций будет заноситься информация о таблицах, индексах и разделах. Параметр по умолчанию. Журналирование может быть отменено для этих операций опцией NOLOGGING.

- NOLOGGING - журналирование не будет выполняться для операций, поддерживающих эту опцию.

- MINIMUM EXTENT число K или M - указывает минимальный размер экстентов табличного пространства.

- DEFAULT STORAGE storage_clause - указывает параметры по умолчанию хранения табличного пространства.

- ONLINE - табличное пространство становится оперативным сразу после своего создания.

- OFFLINE - табличное пространство недоступно непосредственно после своего создания (до тех пора, пока не будет переведено в оперативное состояние).

- TEMPORARY - табличное пространство будет использовано для хранения временных объектов.

- PERMANENT - указывает табличному пространству хранить перманентные объекты. (Опция по умолчанию).

 

Как видите при создании табличного пространства можно указать много различных параметров и опций. Среди них есть параметры хранения, которые мы рассмотрим чуть ниже в этом же выпуске. Параметры хранения определяют характеристики табличного пространства и общие параметры его "роста".

Таблицы так же создаются при помощи команды create table:

create table <имя> (

<описание столбца> {,<описание столбца>}

)

[as <подзапрос>]

Помимо описания столбцов, команда create table может изменять параметры выделения дисковой памяти для таблицы, разре­шать/запрещать параллельное выполнение операций при создании таблицы, управлять кэ­шированием данных, задавать параметры размещения больших объектов (blob, clob, nclob), если такие столбцы присутствуют в таблице.Описание столбца состоит из его имени, типа, значения по умолчанию и накладываемых на него правил целостности:

<имя столбца> <тип> [default <значение по умолчанию>]{<правило целостности>}

Если в команде create table указана фраза as <подзапрос>, то имя и тип столбцов можно не задавать — они будут совпадать с именами и типами столбцов, возвращенных под­запросом. Можно задать имена столбцов — в этом случае их количество должно совпадать с количеством столбцов, возвращенных подзапросом. Если выбранные данные не удовлетворяют правилам целостности, то таблица не будет создана, а Oracle вернет ошибку:

ORA-02446: CREATE TABLE... AS SELECT failed - check constraint violated

Можно указывать правила целостности и отдельно от описания столбцов.

Например:

create table “Инспектор” (

“Код”number(10) not null,

“ФИО” varchar2(64) not null,

“Дата_рождения” date not null,

“Номер_налоговой” number (10) not null,

“Телефон” number (10))

Для создания таблицы в режиме командной строки необходимо зайти в меню: SQL- SQL Commands – Enter command. Здесь будет предложено окно в котором можно вводить текст команды и запросов.

Далее подобным образом создадим еще 3 таблицы.

CREATE TABLE "ПРЕДПРИЯТИЕ"

("НАЗВАНИЕ" VARCHAR2(30) NOT NULL,

"ИНН" VARCHAR2(30) NOT NULL,

"КОД" NUMBER(10,0) NOT NULL,

"АДРЕС" VARCHAR2(30) NOT NULL,

"СОТРУДНИКОВ" NUMBER(10,0) NOT NULL,

"ОТДЕЛОВ" NUMBER(10,0) NOT NULL,

"ТЕЛЕФОН" NUMBER(10,0)

)

CREATE TABLE "СОТРУДНИКИ"

("ФИО" VARCHAR2(64) NOT NULL,

"НАЗВАНИЕ" VARCHAR2(30) NOT NULL,

"ДОЛЖНОСТЬ" VARCHAR2(30) NOT NULL,

"ОТДЕЛ" VARCHAR2(30) NOT NULL,

"ТЕЛЕФОН" VARCHAR2(10) NOT NULL,

"ПАСПОРТ" VARCHAR2(30) NOT NULL,

"ТРУДОВАЯ_КНИЖКА" VARCHAR2(30) NOT NULL

)

Просмотреть созданную таблицу можно следующим образом:

Object Browser- Browser – Table. Далее из предложенного списка таблиц выбираем нашу под названием «Инспектор» (Рисунок №11)

Рисунок №11 – Просмотр созданной таблицы

 

Индексы

Индексы — дополнительные структуры данных, связанные с таблицами. Индексы пред­назначены для ускорения поиска в таблицах, а в некоторых случаях данные могут читаться прямо из индексов, без чтения таблиц. Например, все данные индексных таблиц хранятся непосредственно в индексах, т. е. эти таблицы не имеют сегмента данных.

Индекс строится по одному или нескольким полям; в индекс может входить до 16 полей. Порядок перечисления полей в составном индексе имеет значение. Если значение всех по­лей, по которым построен индекс, в некоторой строке не определено (равно null), то такая строка в индекс не входит.

Oracle допускает создание уникальных индексов, т. е. индексов, в котором каждый набор значений индексированных полей уникален. Однако создавать такие индексы вручную не рекомендуется, т. к. уникальность значения — понятие логическое, а не физическое. Oracle автоматически создает уникальные индексы при задании правил целостности unique и primary key.

Создается индекс командой create index, синтаксис которой приведен ниже:

create [ unique | bitmap ] index <имя> on <имя таблицы> (<имя столбца> {,<имя столбца>})

Ключевое слово unique позволяет создать уникальный индекс.

Ключевое слово bitmap создает индекс, построенный на битовых картах. Такие индексы могут быть значительно эффективнее и компактнее традиционных индексов, основанных на B-деревьях. В bitmap-индексах индексируются все значения, включая null. Составной bitmap-индекс может быть использован для поиска по любому из полей, входящих в индекс, при этом порядок перечисления полей в составном индексе не имеет значения. Однако, у bitmap-индексов есть ряд недостатков, существенно ограничивающих их применение. Во-первых, они эффективны только при небольшом количестве различных значений столб­ца. Индексировать, например, даты или суммы проводок следует традиционными индекса­ми. Во-вторых, bitmap-индексы теряют эффективность при частом обновлении данных в таблице.

Индекс в любой момент может быть уничтожен — это не повлияет на работоспособность приложений, хотя может существенно их замедлить. Уничтожается индекс командой drop index: drop index <имя>

В некоторых случаях доступ к данным можно ускорить, разрушив индекс и создав его за­ново. В Oracle 7.x это делается последовательным выполнением команд drop и create, а в Oracle 8 можно воспользоваться фразой rebuild команды alter index. Oracle позволяет индексировать таблицы по значениям функций от столбцов, а также явно управлять размещением индексов в дисковой памяти.

Индекс может быть переименован командой rename:

rename < имя> to < новое имя>

Определение ключей

PRIMARY KEY (первичный ключ). Ограничение определяет столбец или группу столбцов, которую можно использовать для уникальной идентификации строки. Никакие две строки в таблице не могут иметь одинаковые значения столбцов первичного ключа. Кроме того, столбцы первичного ключа должны всегда содержать значение. Все эти условия гарантируют то, что в нашем распоряжение будет одна и только одна строка, соответствующая критериям связывания. Первичные ключи могут быть или именованные (пользователем) или неименованные (Oracle составляет имя сам). В первичных ключах не могут использоваться столбцы типа: raw, long, long raw.

FOREIGN KEY (внешний ключ). FOREIGN KEY, устанавливает отношение целостности между таблицами. Оно требует, чтобы столбец или набор столбцов в одной таблице совпадал с первичным или вторичным ключом другой таблицы. С момента создания внешнего ключа ссылающегося на первичный ключ некой таблицы удаление таблицы будет – запрещено. И обойти это ограничение можно только удалив ограничение. Внешние ключи могут быть именованные или неименованные.

Внешний ключ - это ссылка полей одной таблицы на однотипные поля другой таблицы, обладающие свойством либо (а) уникальности, либо (б) первичного ключа. Исключительно для простоты дальше речь будет идти о простых ключах, то есть состоящих из одного поля. СУБД (в нашем случае - Oracle) обязана следить за тем, чтобы значение внешнего ключа позволило найти запись в таблице, на которую он ссылается (в родительской таблице), а уникальность "родительского поля" гарантирует, что это будет ровно одна запись. Вместе с тем наличия значения в поле внешнего ключа (в подчиненной таблице) не требуется, и автоматические проверки соответствия выполняются только для существующих значений в поле внешнего ключа.

Внешний ключ в Oracle вслед за стандартным SQL реализован как разновидность ограничения. Информация о нем включается в Oracle в системную таблицу USER_CONSTRAINTS.

Внешний ключ в демонстрационной схеме SCOTT в Oracle существует: это поле EMP.DEPTNO, ссылающееся на поле первичного ключа DEPT.DEPTNO. Совпадения имен полей не требуется, но когда оно возможно, это удобно, так как подчеркивает содержательную связь.

Завести внешний ключ можно сразу при создании таблицы, или же потом, командой

ALTER TABLE xxx
ADD [CONSTRAINT имя]
FOREIGN KEY (fff) REFERENCING ttt(kkk);

Создание ключей можно производить непосредственно при создании таблицы:

CREATE TABLE "ИНСПЕКТОР"

("ФИО" VARCHAR2(60) NOT NULL ENABLE,

"КОД_ИНСПЕКТОРА" NUMBER NOT NULL ENABLE,

"НОМЕР_НАЛОГОВОЙ" NUMBER NOT NULL ENABLE,

"ДАТА_РОЖДЕНИЯ" DATE NOT NULL ENABLE,

"ТЕЛЕФОН" NUMBER NOT NULL ENABLE,

CONSTRAINT "ИНСПЕКТОР_PK" PRIMARY KEY ("КОД_ИНСПЕКТОРА"))

 



Поделиться:


Последнее изменение этой страницы: 2017-02-09; просмотров: 550; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.222.47 (0.048 с.)