
- •Сикха Багуи и Ричард Ирп
- •Контрольные вопросы 1.1
- •Модели данных
- •Иерархическая Модель
- •Сетевая модель
- •Реляционная модель
- •Контрольные вопросы 1.2
- •Функциональные зависимости
- •Правило декомпозиции (разложения)
- •Правило объединения
- •Контрольные вопросы 1.3
- •Краткий обзор метода нормальных форм
- •Примеры 1нф, 2нф и 3нф
- •Упражнение 1.3
- •Глава 2: Базовая er-диаграмма – схема
- •Некоторые определения баз данных: Сущность, Связь, Атрибут
- •Начальная Методология
- •Еще об атрибутах
- •Простые или атомарные атрибуты
- •Многозначные атрибуты
- •Производный атрибуты
- •Описание Сущности на структурном английском языке
- •Сущность
- •Атрибуты
- •Методология er-проектирования
- •Примеры
- •Сущность
- •Атрибуты
- •Методология er проектирования
- •Итоги главы
- •Упражнения Главы
- •Упражнение 2.1
- •Упражнение 2.2
- •Проработка примера
- •Сущность
- •Глава 3: После первой диаграммы сущности
- •Проверка Сущности — замена атрибута сущностью
- •Методология er-проектирования
- •Определение вторичной сущности
- •Существует ли связь?
- •Атрибут или Связь?
- •Глава 4: Расширение связей/ Структурные
- •1(Полное участие):1:
- •Глава 5: Слабая Сущность
- •Грамматика Слабой Сущности
- •Контрольные вопросы 5.3
- •Упражнения Главы 5. Упражнение 5.1
- •Список литературы
- •Сущность
- •Атрибуты для отдела
- •Сущность
- •Атрибуты для служащего
- •Глава 6: Дальнейшее Расширение
- •Сущность
- •Атрибуты
- •Более двух Сущностей
- •С указанием всех атрибутов
- •Развитие базы данных
- •Глава 7: Троичные и er-диаграммы более высокого порядка
- •Глава 8: Обобщения и специализации.
- •Глава 9: Реляционные преобразования и
- •Глава 10: Краткий обзор модели Баркера
- •Глава 10. Упражнения.
Методология er-проектирования
Шаг 1: Выбрать из описания требований к базе данных одну первичную сущность и указать атрибуты, которые будут принадлежать данной сущности. При возможности выделить ключ и привести пример данных.
Шаг 2: Для описания базы данных использовать структурный английский язык для сущностей, атрибутов и ключей.
Шаг 3: Исследовать атрибуты в первичной сущности (возможно с помощью пользователя), чтобы выявить нужно ли записывать информацию о каких-либо атрибутах.
Шаг 3a: Если нужна информация об атрибуте, сделать атрибут сущностью и затем
Шаг 3b: Определите связь с родительской сущностью.
Шаг 4: Привести пример данных.
Предварительная грамматика для ER-диаграмм
В главе 2 приведена грамматика для описания сущности. Теперь, когда мы добавили связи к нашей диаграмме, необходимо дополнить структурное описание предполагаемой базы данных. Нам также следует привести пользователю примерные образцы некоторых данных, чтобы закрепить понимание. Нам нужно добавить следующее к нашему списку грамматических выражений:
Для каждой связи, добавляем следующие комментарии:
Сущность1 связь Сущность2 (активный залог) и Сущность2 связь Сущность1 (пассивный залог).
Связь
СТУДЕНТЫ посещают ШКОЛЫ и ШКОЛЫ посещаются СТУДЕНТАМИ.
Иногда единственное число лучше выражает смысл и в таком случае можно записать так:
СТУДЕНТ посещает ШКОЛЫ и ШКОЛА посещается СТУДЕНТАМИ.
Пользователь может выступать в роли главного судьи, определяющего соответствие используемых выражений. Скоро к этой грамматике последуют добавления. В качестве упражнения, приведите полное описание ER диаграммы изображенной на рисунке Рисунка 3.3, со всеми сущностями, атрибутами, ключами и связями.
Определение вторичной сущности
Изучив первоначальную первичную сущность на наличие подозрительных атрибутов, можно начать добавлять некоторые данные. Рассмотрим другую базу данных для пользователя. Предположим на этот раз, что у нас имеется следующее дополнительное описание. Мы хотим записать информацию о студентах — их имена и номера. Дополнительно к информации о студентах, мы хотим записать информацию об их автомобилях. Мы хотим записать идентификационный номер машины, изготовителя автомобиля, тип кузова, цвет и год выпуска.
Предположим, что сущность студент выбрана в качестве первичной, и требуется добавить информацию об автомобиле.
Автомобиль является сущностью, поскольку мы хотим записывать информацию о нем. Если мы добавляем автомобиль в базу данных, мы могли бы включить его как на этапе 1 нашей методологии, добавляя атрибут с названием автомобиль, или позже, чтобы выполнить шаг 3 методологии и присвоить ему и школе статус сущностей. Описание Автомобиля как атрибута сущности студент показано на Рисунке 3.4 (в Chen-модели). [Мы игнорируем сущность ШКОЛА в данный момент].
Рисунок 3.4: Сущность СТУДЕНТ с атрибутом АВТОМОБИЛЬ
Если мы добавили атрибут автомобиль в сущность СТУДЕНТ, а потом выяснили, что автомобиль должен быть сущностью, мы должны создать сущность АВТОМОБИЛЬ, а затем к модели добавить связь. (Отметим, что Рисунка 3.4 может быть вполне достаточно при условии, что пользователь не хочет вводить информацию о самом автомобиле.)
Конечно, мы могли бы выяснить, что атрибут автомобиль – это потенциальная сущность и представить ее в виде отдельной диаграммы. Признав АВТОМОБИЛЬ сущностью, мы должны нарисовать две сущности СТУДЕНТ и АВТОМОБИЛЬ, а затем искать между ними связь. В любом случае, мы пришли бы к Рисунку 3.5, на котором изображены две сущности СТУДЕНТ и АВТОМОБИЛЬ и некоторая связь между ними.
Рисунок 3.5: ER Диаграмма базы данных СТУДЕНТ – АВТОМОБИЛЬ
Следуя модели Чена, выберем подходящий глагол, описывающий связь между двумя сущностями (СТУДЕНТ и АВТОМОБИЛЬ). В данном случае мы выбираем управляет (как показано в ромбе). Отметим, что позже пользователь может решить идентифицировать связь по-другому; но так как другая информация отсутствует, предположим, что пользователь считает, что студенты управляют автомобилями.
Другие возможные варианты для связи сущностей СТУДЕНТ и АВТОМОБИЛЬ - "зарегистрирован," "владеет" и т.п. Такая связь между двумя сущностями называется двоичной.
Связям в ER диаграммах обычно присваиваются имена, которые изображают, каким образом сущности взаимосвязаны. Иногда, связь трудно описать (или она неизвестна), и в этом случае для ее обозначения используется двухбуквенный код. Такая двухбуквенная связь показана на Рисунке 3.6, где она названа "SA" и указывает на то, что мы понимаем, что связь существует, но нам точно не ясно как ее назвать (SA = STUDENT–AUTOMOBILE). Конечно, если уверены в названии связи "управлять", то должны использовать "управлять".
Рисунок 3.6: ER Диаграмма базы данных STUDENT–AUTOMOBILE
с «неизвестной» связью "Почти установлено"
Структурное описание на английском сущностей и связей подразумевает, что сущности являются существительными, а связи – глаголами. Используя связь управляет (см. Рисунок 3.6), можно сказать: студенты (сущ.) управляют (гл.) автомобилями (сущ.). Если связь действительно неизвестна, можно сказать так: Студенты (сущ.) соотносятся (гл.) с автомобилями (сущ.).
Контрольные вопросы 3.1
1. Может ли природа сущности изменяться во времени? Объяснить.
2. Что такое связь?
3. Каково различие между сущностью и связью?
4. Когда предпочтительнее рассматривать атрибут сущности? Почему?
5. Имеет ли смысл иметь сущность с одним атрибутом?