Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD / Slides / Russian / Лекция 10R-Язык ER-моделирования.ppt
Скачиваний:
28
Добавлен:
20.02.2016
Размер:
360.96 Кб
Скачать

Лекция 10. Язык ER-моделирования

воскресенье 7 Июль, 2019

Сопутствующие понятия

потоки данных - моделирование связей, существующие между прикладными задачами, изображая данные, поступающие на вход и выход каждой задачи;

хранилище данных – способ объединения различных потоков данных в виде единого места хранения;

прикладные задачи – потребители данных;

события – инициаторы прикладных задач.

ФКН НАУ

31

Лекция 10. Язык ER-моделирования

воскресенье 7 Июль, 2019

Проектирование реляционной базы данных

Шаг 1. Преобразование сущностей в таблицы. Шаг 2. Преобразование атрибутов в столбцы.

Шаг 3. Пребразование связей один-ко-многим и один-к-одному во внешние ключи.

Шаг 4. Преобразование связей многие-ко-многим в сущности-связки

Шаг 5. Представление уникальных идентификаторов (ключами таблиц или столбцами-заменителями)

Шаг 6. Проектирование подтипов Шаг 7. Проектирование взаимоисключающих связей

Шаг 8. Проектирование производных атрибутов

ФКН НАУ

32

Лекция 10. Язык ER-моделирования

воскресенье 7 Июль, 2019

Шаг 1. Преобразование сущностей в таблицы

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

ER-схема

Отношения

ФКН НАУ

33

Лекция 10. Язык ER-моделирования

воскресенье 7 Июль, 2019

Шаг 2. Преобразование атрибутов в столбцы

Каждый атрибут преобразуется в столбец с тем же именем. В этот момент выбирается формат столбца.

Факультативные атрибуты становятся null-столбцами.

Обязательные атрибуты становятся not-null-столбцами

ER-схема

Отношение с атрибутами

ФКН НАУ

34

Лекция 10. Язык ER-моделирования

воскресенье 7 Июль, 2019

Шаг 3. Пребразование связи один-к-одному во внешний ключ (1)

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

Внешний ключ стано- вится NOT NULL.

Обязательность связи со стороны первичного ключа поддерживается с помощью триггера.

CREATE TABLE PERSON ( PrsID NUMBER(3)

PRIMARY KEY,

... );

CREATE TABLE AUTOBIOGRAPHY (

...

PrsID NOT NULL REFERENCES PERSON,

...);

 

Первичный ключ любой

 

 

сущности используется

 

 

в качестве внешнего

 

 

ключа другой сущности,

 

ФКН НАУ

как и в предыдущем

 

случае.

35

Лекция 10. Язык ER-моделирования

воскресенье 7 Июль, 2019

Шаг 3. Пребразование связи один-к-одному во внешний ключ (2)

Первичный ключ сущ-

CREATE TABLE PERSON (

ности ЧЕЛОВЕК исполь-

PrsID NUMBER(3)

зуется в качестве

PRIMARY KEY,

внешнего ключа в

... );

сущности

 

АВТОБИОГРАФИЯ.

CREATE TABLE AUTOBIOGRAPHY (

Внешний ключ стано-

...

вится NOT NULL.

PrsID NOT NULL

 

REFERENCES PERSON,

 

...);

ФКН НАУ

36

Лекция 10. Язык ER-моделирования

воскресенье 7 Июль, 2019

Шаг 3. Пребразование связи один-ко-многим

во внешний ключ

Ключ сущности у окончания «один» используется в качестве внешнего ключа сущности у окончания «много».

Если окончание «много» является обязательным, то внешний ключ имеет ограничение NOT NULL

Если окончание «один» является обязательным, то это поддерживается соответствующим триггером.

CREATE TABLE TICKET ( TickID NUMBER(3)

PRIMARY KEY,

... );

CREATE TABLE COUPON (

...

TickID NOT NULL REFERENCES TICKET,

...);

ФКН НАУ

37

Лекция 10. Язык ER-моделирования воскресенье 7 Июль, 2019

Шаг 4. Преобразование связей многие-ко-многим в сущности-связки

Каждая из сущностей поро- ждает базовое отношение.

Создается третья сущность- связка, которая содержит внешние ключи, ссылающи- еся на созданные базовые отношения и не содержит никаких других атрибутов.

Если окончание связи явля- ется обязательным, то это поддерживается соответ- ствующим триггером.

Пара внешних ключей сущ- ности-связки образует ее первичный ключ.

CREATE TABLE TICKET ( TickID NUMBER(3)

PRIMARY KEY,

... );

CREATE TABLE FLIGHT ( FlhtID NUMBER (3)

PRIMARY KEY,

...);

CREATE TABLE LINK ( TickID REFERENCES TICKET, FlhtID REFERENCES FLIGHT,

CONSTRAINT prk PRIMARY KEY (TickID, FlhtID);

ФКН НАУ

38

Лекция 10. Язык ER-моделирования

воскресенье 7 Июль, 2019

Шаг 5. Представление уникальных идентификаторов ключами таблиц

Уникальнй идентифика- тор составляет первич- ный ключ.

Если в состав уникаль- ного идентификатора входит кончание связи, то первчный ключ со- держит соответствую- щий внешний ключ

CREATE TABLE AIRCRAFT ( AirNo NUMBER(3)

PRIMARY KEY,

... );

CREATE TABLE OFFICE (

OffID NUMBER (3) PRIMARY KEY,

...);

CREATE TABLE SERVICE ( SrvDate DATE NOT NULL, Result CHAR(50), AirNo NOT NULL

REFERENCES AIRCRAFT, OffID NOT NULL

REFERENCES OFFICE, CONSTRAINT prk PRIMARY KEY (SrvDate, AirNo, OffID);

ФКН НАУ

39

Лекция 10. Язык ER-моделирования

воскресенье 7 Июль, 2019

Шаг 5. Представление уникальных идентификаторов столбцами-заменителями

Используется в том случае, когда имеет- ся длинная цепочка вхождения окончаний связей в первичные ключи.

В каждую создавае- мую таблицу вводит- ся дополнительный столбец, которому придается статус пе- рвичного ключа.

Всем уникальным ИД придаются ограниче- ния целостности

UNIQUE, NOT NULL.

ФКН НАУ

CREATE

TABLE ROUTE

(

 

RoID

NUMBER(3)PRIMARY KEY,

RoNO

NUMBER(5)UNIQUE NOT

NULL);

CREATE

TABLE ROUTE_FLIGHT (

 

FlID

NUMBER(3)

PRIMARY

KEY,

FlDate

DATE NOT NULL,

FlTime

TIME NOT NULL,

RoID

NUMBER (3)

 

REFERENCES ROUTE,

CONSTRAINT unq UNIQUE

 

(FlDate, FlTime, RoID));

CREATE TABLE BOARDING_PASS (

BPID

NUMBER(3)PRIMARY KEY,

BPDate

DATE NOT NULL,

BPTime

TIME NOT NULL,

FlID

NUMBER(3)

 

REFERENCES ROUTE_FLIGHT,

CONSTRAINT unq2 UNIQUE

(BPDate, BPTime, FlID));40