суббота, 25 ноября 2017 г. 1 Лекция 10.


суббота, 25 ноября 2017 г. 1 Лекция 10. Язык ER-моделирования БД Национальный авиационный университет Факультет компьютерных наук Кафедра инженерии программного обеспечения

2 суббота, 25 ноября 2017 г. СОДЕРЖАНИЕ Общие сведения Основные понятия (сущность, атрибут, связь) Более сложные понятия Сопутствующие понятия Проектирование реляционной базы данных

3 суббота, 25 ноября 2017 г. Общие сведения Это язык определения информационной модели ПО. Базируется на концепции, согласно которой информацион- ная модель ПО может быть описана в терминах: сущность, атрибут, связь. Используется на этапе анализа и прежде всего – концептуального моделирования. Язык является существенно графическим.

4 суббота, 25 ноября 2017 г. Сущности Сущность - это реальный или воображаемый объект, информация о котором подлежит сбору или хранению. ИМЯ СУЩНОСТИ Графически сущность представляется поимено- ванным прямоугольником с закругленными углами Имя сущности дается в единственном числе заглавными буквами. Любой объект может быть представлен только одной сущностью. Значит сущности всегда являются взаимоисключающими. Каждая сущность должна быть уникально идентифицируема. Это означает, что должен существовать способ независимой идентификации каждого экземпляра сущности, позволяющий отличать его от всех других экземпляров данного типа сущности.

5 суббота, 25 ноября 2017 г. Связи Связь - это некоторая представляющая интерес поименованная ассоциация двух сущностей. Связь является бинарной в том смысле, что это всегда ассоциа- ция в точности двух сущностей или сущности с самой собой. Каждая связь имеет два конца, для каждого из которых имеются свои: имя; степень/мощность (один/много); Факультативность (обязательная/факультативная).

6 суббота, 25 ноября 2017 г. Представление связей

7 суббота, 25 ноября 2017 г. Именование и чтение связей При чтении связи со обязательной стороны ее имя необходимо предварить словами "во всех случаях" или "всегда", для факультативной стороны используются слова "в общем случае" или "иногда". Степень много читается как "один или несколько", а степень один - "один и только один". Любой БИЛЕТ всегда выписывается на одного и только одного ПАССАЖИРа. Любой ПАССАЖИР в общем случае имеет на свое имя один или не сколько БИЛЕТов.

8 суббота, 25 ноября 2017 г. Допустимые и недопустимые связи А В А В А А В А В С А В А А А Допустимые Недопустимые

9 суббота, 25 ноября 2017 г. Атрибуты Атрибут - это любая деталь или аспект, способствующие качественному или количественному описанию сущности, ее идентификации, классификации или отражению ее состояния. Приводить атрибуты ER-схеме не обязательно. Желательно приводить обязательные и идентифицирующие атрибуты (см. далее). Можно приводить атрибуты с примером его значения.

10 суббота, 25 ноября 2017 г. Правило (1) – атрибут описывает одну сущность Атрибут должен описывать ту сущность, к которой он отнесен! Атрибутом какой сущности является "номер места": билета, купона, посадочного талона, воздушного судна?

11 суббота, 25 ноября 2017 г. Правило (1) – атрибут описывает одну сущность Атрибут должен описывать ту сущность, к которой он отнесен! Атрибутом какой сущности является "номер места": билета, купона, посадочного талона, воздушного судна? Очевидно, это атрибут сущности МЕСТО

12 суббота, 25 ноября 2017 г. Правило (2) – атрибуты не должны повторяться (1NF) Сущность может обладать лишь одним значением атрибута. Если же многозначность атрибута играет существенна, надо определить новую сущность, в которую войдут эти значения, и соединить ее с исходной сущностью связью многие-к-одному

13 суббота, 25 ноября 2017 г. Правило (3) – атрибут может стать сущностью Атрибут может стать сущностью, если он представляет самостоятельный интерес и обладает собственными связями и атрибутами.

14 суббота, 25 ноября 2017 г. Правило (4) – факультативность атрибутов Атрибут, значение которого может отсутствовать, называется факультативным. Атрибут, значение которого должно быть всегда известно, называется обязательным. Сущность может быть определена тогда и только тогда, когда известны значения всех ее обязательных атрибутов. обязательный факультативный

15 суббота, 25 ноября 2017 г. Правило (5) – сущность обладает уникальной идентификацией Каждая сущность должна однозначно идентифицироваться посредством некоторой комбинации атрибутов и/или связей Этот атрибут входит в состав уникального идентификатора сущности МЕСТО Эта связь входит в состав уникального идентификатора сущности МЕСТО

16 суббота, 25 ноября 2017 г. Правило (6) – полнота уникального идентификатора (2NF) Значения атрибутов, не входящих в уникальный идентификатор, должны зависеть ОТ ВСЕГО уникального идентификатора. Удалите атрибуты, значения которых зависят лишь от той или иной части идентификатора. Присутствие таких атрибутов, как правило, указывает на наличие пропущенной сущности, связанной с данной

17 суббота, 25 ноября 2017 г. Правило (7) – зависимость только от уникального идентификатора (3NF) Значения атрибутов, не входящих в уникальный идентификатор, должны зависеть ТОЛЬКО ОТ уникального идентификатора.

18 суббота, 25 ноября 2017 г. Более сложные понятия супертип/подтип, базисные и переходные сущности, разрешение связей многие-ко-многим, взаимоисключаемость, непереместимость, квалифицированная степень, избыточность, каскадное удаление производные атрибуты

19 суббота, 25 ноября 2017 г. Подтипы/супертипы Подтип - это разновидность сущности. Подтип неявно наследует все атрибуты и связи супертипа. Подтипы могут обладать собственными атрибутами и/или связями и, в свою очередь, разделяться на подтипы более низких уровней. Супертип - это систематизация сущностей с общими подтипами. Одна и та же сущность может являться супертипом и, в то же время, представлять собой подтип другой сущности. Подтипы сущности образовывают полную систему множеств. супертипы подтипы

20 суббота, 25 ноября 2017 г. Пример типа/супертипа НЕРЕГУЛЯРНЫЙ ПОЛЕТ и РЕГУЛЯРНЫЙ РЕЙСОВЫЙ ПОЛЕТ имеют один и тот же атрибут – НОМЕР (наследуется из супертипа РЕЙСОВЫЙ ПОЛЕТ), но отличаются связями! Сущность является простой, если она не является подтипом или сама не имеет подтипов.

21 суббота, 25 ноября 2017 г. Разрешение связей многие-ко-многим До После Связи многие-ко-многим часто встречаются на ранних этапах анализа ПО. Это, как правило, свидетельствует о том, что опущена сущность. Разрешение достигается введением новой переходной сущности, разделяющей окончания такой связи.

22 суббота, 25 ноября 2017 г. Взаимоисключающие связи Две или более связей одной и той же сущности могут оказаться взаимоисключающими (либо-либо). Этот факт представляется поперечной дугой, пересекающей окончания всех соответствующих связей, с небольшими точками или кружками в местах пересечения.

23 суббота, 25 ноября 2017 г. Свойства взаимоисключающих связей Окончания связей, которые пересекает попереч- ная дуга, должны быть либо все обязательными, либо все факультативными. Окончание связи может пересекать только одна поперечная дуга. Поперечные дуги не могут пересекать связи, идущие от разных сущностей Поперечные дуги не могут пересекать связи, исходящие из подтипа и его супертипа. Окончания связей, которые пересекает попереч- ная дуга, должны быть либо все входить в уника- льный идентификатор, либо не входить. Пример нарушения

24 суббота, 25 ноября 2017 г. Непереместимые связи Связь является непереместимой, если экземпляр сущности, будучи ассоциированным с экземпляром сущности, расположенной с другой стороны окончания связи, не может в дальнейшем эту ассоциацию изменять. Нет никакого смысла перемещать купон из одного билета в другой, однако вполне может потребоваться переписать его на другой рейс, например, если число пассажиров превысит количество посадочных мест. Указатель неперместимости

25 суббота, 25 ноября 2017 г. Квалифицированная степень Квалифицированная степень предоставляет возможность указать пределы для мощности (степени) окончания связи, ее стандартное, максимальное, среднее и максимальное значение.

26 суббота, 25 ноября 2017 г. Неизбыточные связи ER-диаграмма не должна содержать связей, которые всегда, при любых обстоятельствах, могут быть выведены из других связей. Примечание: В БД избыточность является обычным способом достижения необ- ходимого быстродействия. Однако решения такого рода должны приниматься проектировщиком и не должны предопределяться системным аналитиком . Связи не избыточны Связи избыточны

27 суббота, 25 ноября 2017 г. Каскадное удаление В реальном мире мы, когда теряем о чем-то все сведения, часто неявно теряем и все сведения о каких-то других взаимосвязанных вещах. Например, если мы удалим все сведения о БИЛЕТЕ, мы неявно удалим и все сведения о его КУПОНАХ. Это так называемая зависимость по существованию X - удалить всех детей при удалении родителя; C - запретить удаление родителя, если существуют дети; N - родители и дети могут удаляться независимо.

28 суббота, 25 ноября 2017 г. Правила каскадного удаления

29 суббота, 25 ноября 2017 г. Производные атрибуты

30 суббота, 25 ноября 2017 г. Основные понятия, связанные с сущностями Независимые/зависимые сущности Базисные сущности Родительские/дочерние сущности Сущности супертипы/подтипы и простые сущности Переходные сущности и сущности-связки Сущности-классификаторы

31 суббота, 25 ноября 2017 г. Сопутствующие понятия потоки данных - моделирование связей, существующие между прикладными задачами, изображая данные, поступающие на вход и выход каждой задачи; хранилище данных – способ объединения различных потоков данных в виде единого места хранения; прикладные задачи – потребители данных; события – инициаторы прикладных задач.

32 суббота, 25 ноября 2017 г. Проектирование реляционной базы данных Шаг 1. Преобразование сущностей в таблицы. Шаг 2. Преобразование атрибутов в столбцы. Шаг 3. Пребразование связей один-ко-многим и один-к-одному во внешние ключи. Шаг 4. Преобразование связей многие-ко-многим в сущности-связки Шаг 5. Представление уникальных идентификаторов (ключами таблиц или столбцами-заменителями) Шаг 6. Проектирование подтипов Шаг 7. Проектирование взаимоисключающих связей Шаг 8. Проектирование производных атрибутов

33 суббота, 25 ноября 2017 г. Шаг 1. Преобразование сущностей в таблицы Каждая простая сущность преобразуется в таблицу. В качестве имени отношения используются иена сущностей (возможно во множественном числе) ER-схема Отношения

34 суббота, 25 ноября 2017 г. Шаг 2. Преобразование атрибутов в столбцы Каждый атрибут преобразуется в столбец с тем же именем. В этот момент выбирается формат столбца. Факультативные атрибуты становятся null-столбцами. Обязательные атрибуты становятся not-null-столбцами Отношение с атрибутами ER-схема

35 суббота, 25 ноября 2017 г. Шаг 3. Пребразование связи один-к-одному во внешний ключ (1) Первичный ключ любой сущности используется в качестве внешнего ключа другой сущности. Внешний ключ стано- вится NOT NULL. Обязательность связи со стороны первичного ключа поддерживается с помощью триггера. CREATE TABLE PERSON ( PrsID NUMBER(3) PRIMARY KEY, ... ); CREATE TABLE AUTOBIOGRAPHY ( ... PrsID NOT NULL REFERENCES PERSON, ...); Первичный ключ любой сущности используется в качестве внешнего ключа другой сущности, как и в предыдущем случае.

36 суббота, 25 ноября 2017 г. Шаг 3. Пребразование связи один-к-одному во внешний ключ (2) Первичный ключ сущ- ности ЧЕЛОВЕК исполь- зуется в качестве внешнего ключа в сущности АВТОБИОГРАФИЯ. Внешний ключ стано- вится NOT NULL. CREATE TABLE PERSON ( PrsID NUMBER(3) PRIMARY KEY, ... ); CREATE TABLE AUTOBIOGRAPHY ( ... PrsID NOT NULL REFERENCES PERSON, ...);

37 суббота, 25 ноября 2017 г. Шаг 3. Пребразование связи один-ко-многим во внешний ключ Ключ сущности у окончания «один» используется в качестве внешнего ключа сущности у окончания «много». Если окончание «много» является обязательным, то внешний ключ имеет ограничение NOT NULL Если окончание «один» является обязательным, то это поддерживается соответствующим триггером. CREATE TABLE TICKET ( TickID NUMBER(3) PRIMARY KEY, ... ); CREATE TABLE COUPON ( ... TickID NOT NULL REFERENCES TICKET, ...);

38 суббота, 25 ноября 2017 г. Шаг 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);

39 суббота, 25 ноября 2017 г. Шаг 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);

40 суббота, 25 ноября 2017 г. Шаг 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));

41 суббота, 25 ноября 2017 г. Шаг 6. Проектирование подтипов

42 суббота, 25 ноября 2017 г. Шаг 7. Проектирование взаимоисключающих связей

43 суббота, 25 ноября 2017 г. Шаг 8. Проектирование производных атрибутов

lekciya_10r-yazyk_er-modelirovaniya.ppt
- Количество слайдов: 43