Построение реляционной схемы из ER-диаграммы

Содержание

Слайд 2

После построения концептуальной модели предметной области переходим к проектированию реляционной модели

После построения концептуальной модели предметной области переходим к проектированию реляционной модели

данных (или даталогической модели)
Для каждой сущности и для каждой связи между ними сформируем отдельные отношения.
Названия отношений будут соответствовать названиям сущностей и связей.
Атрибутами отношений будут свойства сущностей и связей.
Слайд 3

Первый класс объектов – Абитуриент. Дадим такое же название и отношению.

Первый класс объектов – Абитуриент.
Дадим такое же название и отношению.


Атрибутами отношения станут свойства этого класса:
Абитуриент(ФИО, Паспорт, Дата_рождения, Медаль).
Отношение не находится в 1НФ.
Атрибут ФИО разобьем на три атрибута: Фамилия, Имя, Отчество.
Атрибут Паспорт разобьем на два атрибута: Серия, Номер.
Слайд 4

Ключом отношения будет совокупность атрибутов {Серия, Номер}, Абитуриент(Фамилия, Имя, Отчество, Серия,

Ключом отношения будет совокупность атрибутов {Серия, Номер},
Абитуриент(Фамилия, Имя, Отчество, Серия,

Номер, Дата_рождения, Медаль).
Домены:
dom(Фамилия) = {строка символов длиной 25};
dom(Имя) = {строка символов длиной 25};
dom(Отчество) = {строка символов длиной 30};
dom(Серия) = {строка символов длиной 5};
dom(Номер) = {целое шестизначное число};
dom(Дата_рождения) = {дата};
dom(Медаль) = {множество {золотая, серебряная, нет}}.
Слайд 5

Следующий класс – Факультет. Этот класс имеет только один атрибут –

Следующий класс – Факультет.
Этот класс имеет только один атрибут –

Название, поэтому отношение Факультет будет состоять из одного атрибута, который и будет ключом отношения:
Факультет(Название) .
Домены:
dom(Название) = {строка символов длиной 100}.
Слайд 6

Для класса Специальность сформируем отношение Специальность с двумя атрибутами: Специальность(Название, Набор).

Для класса Специальность сформируем отношение Специальность с двумя атрибутами:
Специальность(Название, Набор).
Специальности имеют

неповторяющиеся названия, следовательно, атрибут Название можно сделать ключом отношения.
Специальность(Название, Набор).
Домены:
dom(Название) = {строка символов длиной 200};
dom(Набор) = {целое трехзначное число}.
Слайд 7

Домен этого атрибута представляет собой строку символов длиной 200. Атрибут с

Домен этого атрибута представляет собой строку символов длиной 200.
Атрибут с

таким доменом лучше не использовать в качестве ключа, так как значения его слишком велики.
В данной ситуации рациональнее будет ввести дополнительный атрибут Номер_специальности и сделать его ключом отношения:
Специальность(Номер_специальности, Название, Набор).
Домены:
dom(Номер_специальности) = {целое число};
dom(Название) = {строка символов длиной 200};
dom(Набор) = {целое трехзначное число}.
Слайд 8

Для класса Экзамен сформируем отношение, состоящее из трех атрибутов: Экзамен(Предмет, Дата,

Для класса Экзамен сформируем отношение, состоящее из трех атрибутов:
Экзамен(Предмет, Дата, Форма).
Так

как в один и тот же день могут проводиться экзамены по одному предмету, но на разные специальности, то чтобы отличать разные экзамены, включим в схему отношения Экзамен дополнительный атрибут Номер, который и будет ключом отношения:
Экзамен(Номер, Предмет, Дата, Форма).
Домены:
dom(Номер) = {целое трехзначное число};
dom(Предмет) = {строка символов длинной 30};
dom(Дата) = {дата};
dom(Форма) = {множество {устно, письменно}}.
Слайд 9

Сформируем отношения для связей между классами. Отношение, соответствующее связи между классами

Сформируем отношения для связей между классами.
Отношение, соответствующее связи между классами Абитуриент

и Специальность, назовем Заявление.
Схема этого отношения будет включать в себя ключ отношения Абитуриент (атрибуты {Серия, Номер}) и ключ отношения Специальность (атрибут Номер_специальности), а также атрибуты Группа и Лист, соответствующие свойствам связи:
Заявление(Серия, Номер, Номер_специальности, Группа, Лист).
Абитуриент может подать заявления на несколько специальностей, поэтому ключом отношения будут атрибуты {Серия, Номер, Номер_специальности}:
Заявление(Серия, Номер, Номер_специальности, Группа, Лист).
Слайд 10

Сформируем отношения для связей между классами. Домены: dom(Группа) = {целое двухзначное

Сформируем отношения для связей между классами.
Домены:
dom(Группа) = {целое двухзначное число};
dom(Лист) =

{целое трехзначное число}.
Совокупность атрибутов {Серия, Номер} является внешним ключом, ссылающимся на ключ отношения Абитуриент.
Атрибут Специальность является внешним ключом, ссылающимся на ключ отношения Специальность.
Слайд 11

Отношение, соответствующее связи между классами Факультет и Специальность, назовем СпециальностиФакультета. Схема

Отношение, соответствующее связи между классами Факультет и Специальность, назовем СпециальностиФакультета.
Схема

этого отношения будет включать в себя ключ отношения Факультет (атрибут Факультет) и ключ отношения Специальность (атрибут Специальность).
Ключом отношения будет атрибут Специальность.
СпециальностиФакультета(Факультет, Специальность).
Слайд 12

Схема отношения Специальность и схема отношения СпециальностиФакультета имеют одинаковые ключи и

Схема отношения Специальность и схема отношения СпециальностиФакультета имеют одинаковые ключи и

содержат информацию об одних и тех же объектах – специальностях.
Эти две схемы можно объединить в одну под названием Специальность:
Специальность(Номер_специальности, Название, Набор, Факультет).
Поэтому отношение Факультет исключим из модели данных.
Слайд 13

Отношение, соответствующее связи между классами Специальность и Экзамен, назовем ЭкзаменыПоСпециальности. Схема

Отношение, соответствующее связи между классами Специальность и Экзамен, назовем ЭкзаменыПоСпециальности.
Схема

этого отношения будет включать в себя ключ отношения Специальность (атрибут Специальность) и ключ отношения Экзамен (атрибут Экзамен).
Ключом отношения будет атрибут Экзамен.
ЭкзаменыПоСпециальности(Специальность, Экзамен).
Слайд 14

Схема отношения Экзамен и схема отношения ЭкзаменыПоСпециальности имеют одинаковые ключи и

Схема отношения Экзамен и схема отношения ЭкзаменыПоСпециальности имеют одинаковые ключи и

содержат информацию об одних и тех же объектах – экзаменах.
Эти две схемы можно объединить в одну схему под названием Экзамен:
Экзамен(Номер, Предмет, Дата, Форма, Специальность).
Атрибут Специальность является внешним ключом, ссылающимся на ключ отношения Специальность.
Слайд 15

Последняя связь – связь между классами Абитуриент и Экзамен. Дадим соответствующей

Последняя связь – связь между классами Абитуриент и Экзамен.
Дадим соответствующей

ей схеме отношения название Оценки.
Схема этого отношения будет включать ключ отношения Абитуриент (атрибуты {Серия, Номер}), ключ отношения Экзамен (атрибут Экзамен) и атрибут Оценка, соответствующий свойству связи:
Оценки(Серия, Номер, Экзамен, Оценка).
Так как абитуриент не может дважды сдавать один и тот же экзамен, то ключом будут атрибуты {Серия, Номер, Экзамен}:
Оценки(Серия, Номер, Экзамен, Оценка).
Слайд 16

Оценки(Серия, Номер, Экзамен, Оценка). Домены: dom(Оценка) = {множество {2, 3, 4,

Оценки(Серия, Номер, Экзамен, Оценка).
Домены:
dom(Оценка) = {множество {2, 3, 4, 5, 6,

зачет, незачет}}.
Совокупность атрибутов {Серия, Номер} является внешним ключом, ссылающимся на ключ отношения Абитуриент.
Атрибут Экзамен является внешним ключом, ссылающимся на ключ отношения Экзамен.
Слайд 17

Таким образом, даталогическая модель будет состоять из пяти отношений, каждое из

Таким образом, даталогическая модель будет состоять из пяти отношений, каждое из

которых в дальнейшем превратится в двумерную таблицу.
Абитуриент(Фамилия, Имя, Отчество, Серия, Номер, Дата_рождения, Медаль)
dom(Фамилия) = {строка символов длиной 25};
dom(Имя) = {строка символов длиной 25};
dom(Отчество) = {строка символов длиной 30};
dom(Серия) = {строка символов длиной 5};
dom(Номер) = {целое шестизначное число};
dom(Дата_рождения) = {дата};
dom(Медаль) = {множество {золотая, серебряная, нет}}.
Слайд 18

Специальность(Номер_специальности, Название, Набор, Факультет) dom(Номер_специальности) = {целое число}; dom(Название) = {строка

Специальность(Номер_специальности, Название, Набор, Факультет)
dom(Номер_специальности) = {целое число};
dom(Название) = {строка символов длиной

200};
dom(Набор) = {целое трехзначное число};
dom(Факультет) = {строка символов длиной 30}.
Слайд 19

Экзамен(Номер, Предмет, Дата, Форма, Специальность) Атрибут Специальность является внешним ключом, ссылающимся

Экзамен(Номер, Предмет, Дата, Форма, Специальность)
Атрибут Специальность является внешним ключом, ссылающимся на

ключ отношения Специальность.
dom(Номер) = {целое трехзначное число};
dom(Предмет) = {строка символов длинной 30};
dom(Дата) = {дата};
dom(Форма) = {множество {устно, письменно}};
dom(Специальность) = {целое число}.
Слайд 20

Заявление(Серия, Номер, Специальность, Группа, Лист) Совокупность атрибутов {Серия, Номер} является внешним

Заявление(Серия, Номер, Специальность, Группа, Лист)
Совокупность атрибутов {Серия, Номер} является внешним ключом,

ссылающимся на ключ отношения Абитуриент.
Атрибут Специальность является внешним ключом, ссылающимся на ключ отношения Специальность.
dom(Серия) = {строка символов длиной 5};
dom(Номер) = {целое пятизначное число};
dom(Специальность) = {целое число};
dom(Группа) = {целое двухзначное число};
dom(Лист) = {целое трехзначное число}.