Опубликован: 02.08.2007 | Доступ: свободный | Студентов: 3887 / 751 | Оценка: 4.55 / 4.39 | Длительность: 27:09:00
ISBN: 978-5-9556-0111-3
Лекция 9:

Создание объектов для хранения данных. Работа с ограничениями

Аннотация: В данной лекции изучаются создание объектов физической реляционной базы данных на основе разработанной логической модели с помощью команд SQL.
Ключевые слова: базы данных, физическая модель реляционной базы данных, информация, предметной области, логическая модель реляционной базы данных, сущность предметной области, нормализованная форма, ER-диаграмма, подмножество, SQL, язык определения данных DDL, data definition language, СУБД, Oracle, трехуровневая архитектура базы данных, внутренняя схема, скрипт, физическая модель реляционной базы данных, представление, создание таблицы, определение, стандарт SQL/92, базовые таблицы, глобальные временные таблицы, локальные временные таблицы, SQL/92, команда, create, table, имя таблицы, формат команды, администратор данных, анализ предметной области, физическая структура, логическая модель данных, спецификация колонок, SMALLINT, первичный ключ отношения, проектирование баз данных, ограничения первичного ключа, индекс первичного ключа, уникальный индекс, внешнее соединение, родительская таблица, дочерняя таблица, SET NULL, многие-ко-многим, junction, таблица, отношение, проектирование реляционных баз данных, алгоритм, составной ключ, схема базы данных, ограничение внешнего ключа, ссылочная целостность, производительность, администратор баз данных, синтаксис, тип ограничения, поддержка ссылочной целостности, ограничения на уровне таблицы, ограничения на уровне колонки, ограничения целостности данных, ограничения целостности ссылок, ограничение первичного ключа, integrity constraints, constraint, ALTER TABLE, активное ограничение, атрибут объекта, кортеж отношения, виртуальная таблица, relationship, descendant, independent, таблица-родитель, таблица-потомок, foreign, подзапрос, CREATE VIEW, distinction, реляционные операции, макроопределения, пользователи базы данных, DBA, информационная модель предметной области, удаление индекса, авторизация доступа

Создание начальной внутренней схемы реляционной базы данных

В настоящем разделе будет рассмотрена первая профессиональная задача проектировщика базы данных по созданию физической модели реляционной базы данных - создание объектов для хранения данных. Эта задача сводится к созданию таблиц и объектов в базе данных, в которых будет храниться информация о сущностях предметной области. Решая эту задачу, проектировщик базы данных отображает отношения логической модели реляционной базы данных (сущности предметной области, представленные в нормализованной форме на ER-диаграммах) в таблицы и индексы реляционной базы данных. Для выполнения этой задачи используется подмножество команд SQL - язык определения данных DDL (Data Definition Language) (например, для СУБД Oracle эти действия могут быть выполнены в программе SQL*PLUS).

В рамках концепции трехуровневой архитектуры баз данных ANSI/SPARC эту задачу проектировщика базы данных называют еще созданием внутренней схемы. Результатом решения этой задачи является скрипт для создания таблиц и индексов, что составляет первоначальный прототип физической модели базы данных.

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

Одной из основных задач проектировщика данных при создании физической модели реляционной базы данных является превращение логических отношений базы данных в таблицы базы данных.

Элементарной подзадачей является создание таблицы базы данных. Таблицы в реляционных СУБД1 состоят из одной или более колонок или полей. Колонки представляют собой поименованные ячейки в записи, которые содержат значения. Колонки определяются посредством спецификации, которая определяет формат колонки и ее характеристики, задаваемые с помощью ограничений. Определение таблицы задается командой CREATE TABLE.

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

С точки зрения стандарта SQL-92, таблицы подразделяются на три категории.

  • Постоянные базовые таблицы (Base Table) - таблицы, содержимое которых хранится в базе данных и которые остаются в базе данных постоянно, если не удаляются явным образом.
  • Глобальные временные таблицы - таблицы, которые применяются в качестве рабочей области хранения данных и которые уничтожаются в конце сеанса работы с базой данных. Описание этих таблиц хранится в словаре данных, но их данные не сохраняются. С глобальными таблицами может работать только текущий пользователь, но они доступны в течение всего сеанса работы с базой данных.
  • Локальные временные таблицы - таблицы, которые аналогичны глобальным временным таблицам, но доступны только тому программному модулю, в котором созданы.

Физическая модель реляционной базы данных содержит базовые таблицы. Для определения и создания таблиц в SQL-92 предусмотрена команда CREATE TABLE, которая определяет имя таблицы, имена и физический порядок колонок для нее, тип каждой колонки, а также некоторые указания для СУБД, такие как определение первичного или внешнего ключа, требования на запрет неопределенных значений в колонке таблицы и т.п. Полный формат команды CREATE TABLE для каждой СУБД приводится в соответствующем документе с названием типа "Справочное руководство по SQL для СУБДѕ".

Определение базовых таблиц

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

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

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

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

Пример. Для нашего учебного примера результат решения задачи настоящего пункта может иметь следующий вид:

CREATE TABLE DEPARTAMENT  имя таблицы
(
);
CREATE  TABLE EMPLOYEE  имя таблицы
(
);
CREATE TABLE PROJECT  имя таблицы
(
);
Александра Каева
Александра Каева
Михаил Забелкин
Михаил Забелкин