Получение реляционной схемы из ER-схемы
Шаг 1. Каждая простая сущность превращается в таблицу. Простая сущность –
сущность, не являющаяся подтипом и, в свою очередь, не имеющая подтипов. Имя сущности становится именем таблицы.
Шаг 2. Каждый атрибут становится возможным столбцом с тем же именем при этом можно выбрать более точный формат.
Столбцы:
· соответствующие необязательным атрибутам – могут содержать неопределенные значения;
· соответствующие обязательным атрибутам – не могут.
Шаг 3. Компоненты уникального идентификатора сущности превращаются в первичный ключ таблицы, при этом:
· Если имеется несколько возможных уникальных идентификаторов, выбирается наиболее используемый;
· Если в состав уникального идентификатора входят связи, к числу столбцов первичного ключа добавляется копия уникального идентификатора сущности, находящейся на дальнем конце связи (этот процесс может продолжаться рекурсивно);
· Для именования этих столбцов используются имена концов связей и/или имена сущностей.
|
Шаг 4. Связи многие-к-одному (и один-к-одному) становятся внешними ключами. То есть делается копия уникального идентификатора с конца связи "один", и соответствующие столбцы составляют внешний ключ:
· Необязательные связи соответствуют столбцам, допускающим неопределенные значения;
· Обязательные связи - столбцам, исключающим неопределенные значения.
Шаг 5. Индексы создаются для первичного ключа (уникальный индекс), внешних ключей и тех атрибутов, на которых предполагается в основном базировать запросы.
Шаг 6. Если в концептуальной схеме присутствовали подтипы, то возможны два способа, приведённые в табл. 2.2:
А - все в одной таблице | Б - таблица - на подтип |
Преимущества | |
Все хранится вместе Легкий доступ к супертипу и подтипа Требуется меньше таблиц | Более ясны правила подтипов Программы работают только с нужными таблицами |
Недостатки | |
Слишком общее решение Требуется дополнительная логика работы с разными наборами столбцов и разными ограничениями Потенциальное узкое место (в связи с блокировками) Столбцы подтипов должны быть необязательными В некоторых СУБД для хранения неопределенных значений требуется дополнительная память | Слишком много таблиц Смущающие столбцы в представлении UNION Потенциальная потеря производительности при работе через UNION Над супертипом невозможны модификации |
Таблица 2.2
А - все подтипы в одной таблице;
Б - для каждого подтипа - отдельная таблица.
При применении способа А, таблица создается для наиболее внешнего супертипа, а для подтипов могут создаваться представления. В таблицу добавляется по крайней мере один столбец – содержащий код ТИПА. Он становится частью первичного ключа.
При использовании метода Б для каждого подтипа первого уровня (для более нижних – представления) супертип воссоздается с помощью представления UNION (из всех таблиц подтипов выбираются общие столбцы – столбцы супертипа).
Шаг 7. Имеется два способа работы при наличии исключающих связей, приведённые в табл. 2.3:
Таблица 2.3
В - общий домен | Г - явные внешние ключи |
Преимущества | |
Нужно только два столбца | Условия соединения - явные |
Недостатки | |
Оба дополнительных атрибута должны использоваться в соединениях | Слишком много столбцов |
В - общий домен;
Г - явные внешние ключи.
Если остающиеся внешние ключи все в одном домене, т. е. имеют общий формат (способ В), то создаются два столбца: идентификатор связи и идентификатор сущности.
Столбец идентификатора связи используется для различения связей, покрываемых дугой исключения.
Столбец идентификатора сущности используется для хранения значений уникального идентификатора сущности на дальнем конце соответствующей связи.
Если результирующие внешние ключи не относятся к одному домену, то для каждой связи, покрываемой дугой исключения, создаются явные столбцы внешних ключей (способ Г). Все эти столбцы могут содержать неопределенные значения.
Вопросы для самопроверки
1. Укажите ключевые характеристики элементов информационного центра.
2. В чём различие между терминами «жизненный цикл информации» и «жизненный цикл информационной системы»?
3. Что такое верификация?
4. В чём различия между каскадной и спиральной моделью жизненного цикла ИС?
5. Что такое CASE-технология?
6. Приведите принципы структурного подхода к разработке ИС.
7. Каковы основные элементы методологии SADT?
8. Опишите структуру методологии SADT.
9. Перечислите и раскройте смысл семи типов связей SADT-модели.
10. Какие при методологии DATARUN концептуальное проектированиеимеет стадии?
11. Укажите последовательность шагов проектирования системы при методологии DATARUN.
12. Модель данных «сущность - связь».
13. Определение информационного объекта – сущность.
14. Понятия «связь» и «рекурсивная связь».
15. Атрибуты сущности и дескриптор сущности.
16. Примеры нормальных форм ER-систем.
17. Преобразование семантической модели в реляционную схему.