- •Резниченко Валерий Анатольевич Организация баз данных и знаний
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования воскресенье 7 Июль, 2019
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
- •Лекция 10. Язык ER-моделирования
Лекция 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