Связанные объекты базы данных организуются в схемубазы данных. К примеру, принято организовывать все таблицы, индексы, представления и другие объекты базы данных, необходимые для работы приложения, в одну схему базы данных. При этом становится понятным назначение конкретного объекта (таблицы, представления или другого объекта) для обеспечения функционирования соответствующего приложения. На рис. 22.7 приведена схема базы данных.
Рис.22.7 Схема базы данных
Важно понимать, что схемы физически не организуют места хранения объектов баз данных; связанные объекты организуются только логически.
Иными словами, логическая организация объектов баз данных внутри схем предназначена исключительно для использования преимуществ организации объектов и не имеет ничего общего с физической дисковой памятью, применяемой для хранения объектов баз данных.
Логическая организация, предлагаемая схемами, имеет практическую пользу. Для примера рассмотрим базу данных Oracle с двумя схемами, S1 и S2. В каждой из схем содержится таблица, называемая Т1. Хотя таблицы называются одинаково, каждая из них идентифицируется однозначно, так как они находятся в различных схемах баз данных. Используя стандартную уточняющую запись через точку, можно определить полные имена таблиц как S1.T1 и S2.T1.
|
|
Для пояснения различий между логической и физической организациями можно воспользоваться принципами размещения файлов на диске операционной системой. Компоновка каталогов и файлов в графической программе управления файлами, например, в Microsoft Windows Explorer, совсем не обязательно соответствует физическому местонахождению каталогов и файлов на конкретном диске. Каталоги файлов представляют логическую организацию файлов операционной системы. Базовая операционная система решает, где физически хранить блоки каждого файла, независимо от логической организации каталогов этих файлов.
В Oracle понятие схемы базы данных непосредственно связано с понятием пользователя базы данных. Другими словами, между схемой базы данных Oracle и учетными сведениями пользователя установлено взаимно-однозначное соответствие, так что пользователь и соответствующая ему схема имеют, одно и то же имя. В результате люди, работающие с Oracle, часто не видят различий между пользователями и схемами. Например, обычно вместо "схема SCOTT содержит таблицы ЕМР и DEPT" говорится "пользователь SCOTT является владельцем таблиц ЕМР и DEPT". Хотя в данном случае эти два предложения содержательно эквивалентны.
Замечание: в системах реляционных баз данных, отличных от
Oracle, пользователи и схемы могут быть абсолютно различными
|
|
понятиями.
Связь понятий схемы и пользователя находит свое отражение уже в самом начале операции создания схемы: после нажатия кнопки Create нужно развернуть список возможностей и выбрать пункт User (рис.22.8).
Рис.22.8 Начальные действия при создании схемы
После этого задается имя пользователя (оно же будет и именем схемы), пароль, имя табличной области и пр. (рис.22.9).
Рис.22.9 Задание имени пользователя/схемы
Задаются возможности и ресурсы пользователя (рис.22.10)
Рис.22.10 Задание возможностей и ресурсов пользователя
Далее указываются возможности по использованию табличной области (рис.22.11) после чего операция завершается (Create) (рис.22.12).
Рис.22.11 Задание возможности по использованию табличной области
Рис.22.12 Завершение работы по определению пользователя/схемы
Однако после создания схемы в дереве навигатора она не видна (рис.22.13) до тех пор, пока в не будет создан первый объект.
Рис.22.13 Отсутствие схемы в дереве навигатора сразу после его создания
Создание таблиц
Используя кнопку Create, вызвать список возможностей Create и выбрать пункт Table (рис.22.14).
Рис.22.14 Начальные действия при создании таблицы
Далее раскроется окно, в котором необходимо определить названия столбцов таблицы и их типы данных (рис.22.15).
Рис. 22.15 Вид окна для описания столбцов таблицы
Если необходимо задать первичный или внешний ключ, ограничения целостности, то следует перейти к следующему шагу, в противном случае можно закончить описание таблицы, нажав кнопку Готово. Для простоты ограничимся этим шагом.
После создания в схеме первой таблицы имя созданной схемы появляется в дереве навигатора. Выбрав имя схемы, можно увидеть состав ее таблиц (рис. 22.16).
Рис.22.16 Состав таблиц выбранной схемы
Просмотр и заполнение таблиц
Для работы на дереве навигатора выбирается нужная таблица. В результате открывается окно с описанием ее структуры. В качестве примера здесь используется таблица РУКОВодители, содержащая два столбца (рис.22.17).
Рис.22.17 Структура таблицы РУКОВ
Для перехода в режим просмотра/ редактирования нужно в меню выбрать Object/viewEdit Contens (рис.22.18).
Рис.22.18. Переход в режим просмотра/ редактирования таблицы
Далее раскрывается окно с пустыми (или ранее заполненными) столбцами. С клавиатуры вносятся необходимые данные. В конце заполнения таблицы, чтобы зафиксировать внесенные изменения, требуется нажать кнопку Apply. После этого кнопка “погаснет”.
Рис.22.19 Заполненная таблица РУКОВ
Следует обратить внимание на полное название таблицы: “имя схемы”.”имя таблицы”. Отсюда становится понятно, что в разных схемах могут содержаться таблицы с одинаковыми названиями. Справа от названия таблицы указано имя пользователя и имя базы данных.
Для дальнейшей работы нам потребуется еще одна таблица. Создадим (аналогично предыдущей) таблицу СОТРУДники со следующей структурой и содержанием (рис.22.20, 22.21).
Рис.22.20 Структура таблицы СОТРУД
Рис.22.21 Содержание таблицы СОТРУД
Установление связей между таблицами
Рассмотрим установление связей между таблицами РУКОВодители и СОТРУДники. Для этого надо установить ключи: первичный ключ в таблице РУКОВодители и внешний ключ в таблице СОТРУДники.
Сначала установим первичный ключ в таблице РУКОВодители. Откроем для просмотра структуру этой таблицы (рис см выше) и выберем закладку Constraints (рис.22.22).
Рис. 22.22 Окно Constraint on the Table
В появившемся окне надо ввести имя (любое; например, PK_POLE1), в качестве типа указать PRIMARY (т.к. данная таблица является родительской и у нее должен быть первичный ключ), затем необходимо указать точное имя поля первичного ключа (в нашем случае ТАБ_НОМ_РУК). Нажать кнопки Applay и ОК (рис.22.23).
|
|
Рис.22.23 Определение первичного ключа в таблице
После этого появится окно с деревом навигатора (рис.22.24). На правой половине окна будут указаны все объекты схемы, таблицы которой используются для установления связи. Обратим внимание на то, что кроме таблиц появился индекс с именем PK_POLE1. Появление индекса легко объяснимо, т.к. для поля первичного ключа индекс строится всегда.
Рис.22.24 Состав схемы после установления первичного ключа
в таблице РУКОВ
Далее необходимо установить внешний ключ в таблице СОТРУДники. Откроем ее окно Constraint и заполним, как показано на рис. 22.25.
Рис.22.25 Определение внешнего ключа в таблице
После нажатия кнопок Applay и ОК будет создан внешний ключ и установлена связь с родительской таблицей РУКОВодители. Однако никаких графических отображений и записей о наличии связи не будет.