Лекция 10R-Язык ER-моделирования.ppt
- Количество слайдов: 43
Резниченко Валерий Анатольевич Организация баз данных и знаний Лекция 10. Язык ER-моделирования БД Национальный авиационный университет Факультет компьютерных наук Кафедра инженерии программного обеспечения 31. 01. 2018 1
Лекция 10. Язык ER-моделирования 31. 01. 2018 СОДЕРЖАНИЕ 4 Общие сведения 4 Основные понятия (сущность, атрибут, связь) 4 Более сложные понятия 4 Сопутствующие понятия 4 Проектирование реляционной базы данных ФКН НАУ 2
Лекция 10. Язык ER-моделирования 31. 01. 2018 Общие сведения 4 Это язык определения информационной модели ПО. 4 Базируется на концепции, согласно которой информацион- ная модель ПО может быть описана в терминах: сущность, атрибут, связь. 4 Используется на этапе анализа и прежде всего – концептуального моделирования. 4 Язык является существенно графическим. ФКН НАУ 3
Лекция 10. Язык ER-моделирования 31. 01. 2018 Сущности Сущность - это реальный или воображаемый объект, информация о котором подлежит сбору или хранению. 4 Графически сущность представляется поимено- ванным прямоугольником с закругленными углами ИМЯ СУЩНОСТИ 4 Имя сущности дается в единственном числе заглавными буквами. 4 Любой объект может быть представлен только одной сущностью. Значит сущности всегда являются взаимоисключающими. Каждая сущность должна быть уникально идентифицируема. Это означает, что должен существовать способ независимой идентификации каждого экземпляра сущности, позволяющий отличать его от всех других экземпляров данного типа сущности. ФКН НАУ 4
Лекция 10. Язык ER-моделирования 31. 01. 2018 Связи Связь - это некоторая представляющая интерес поименованная ассоциация двух сущностей. 4 Связь является бинарной в том смысле, что это всегда ассоциа- ция в точности двух сущностей или сущности с самой собой. 4 Каждая связь имеет два конца, для каждого из которых имеются свои: 4 имя; 4 степень/мощность (один/много); 4 Факультативность (обязательная/факультативная). ФКН НАУ 5
Лекция 10. Язык ER-моделирования 31. 01. 2018 Представление связей много А один В обяза- факультельная тативная факультативная один факультативная А ФКН НАУ много 6
Лекция 10. Язык ER-моделирования 31. 01. 2018 Именование и чтение связей БИЛЕТ выписывается на имеет на свое имя ПАССАЖИР 4 При чтении связи со обязательной стороны ее имя необходимо предварить словами "во всех случаях" или "всегда", 4 для факультативной стороны используются слова "в общем случае" или "иногда". 4 Степень много читается как "один или несколько", 4 а степень один - "один и только один". Любой БИЛЕТ всегда выписывается на одного и только одного ПАССАЖИРа. Любой ПАССАЖИР в общем случае имеет на свое имя один или не сколько БИЛЕТов. ФКН НАУ 7
Лекция 10. Язык ER-моделирования 31. 01. 2018 Допустимые и недопустимые связи Недопустимые Допустимые А В А В А А ФКН НАУ В С В А А 8
Лекция 10. Язык ER-моделирования 31. 01. 2018 Атрибуты Атрибут - это любая деталь или аспект, способствующие качественному или количественному описанию сущности, ее идентификации, классификации или отражению ее состояния. 4 Приводить атрибуты ER-схеме не обязательно. 4 Желательно приводить обязательные и идентифицирующие атрибуты (см. далее). 4 Можно приводить атрибуты с примером его значения. ФКН НАУ 9
Лекция 10. Язык ER-моделирования 31. 01. 2018 Правило (1) – атрибут описывает одну сущность Атрибут должен описывать ту сущность, к которой он отнесен! Атрибутом какой сущности является "номер места": билета, купона, посадочного талона, воздушного судна? ФКН НАУ 10
Лекция 10. Язык ER-моделирования 31. 01. 2018 Правило (1) – атрибут описывает одну сущность Атрибут должен описывать ту сущность, к которой он отнесен! Атрибутом какой сущности является "номер места": билета, купона, посадочного талона, воздушного судна? Очевидно, это атрибут сущности МЕСТО ФКН НАУ 11
Лекция 10. Язык ER-моделирования 31. 01. 2018 Правило (2) – атрибуты не должны повторяться (1 NF) Сущность может обладать лишь одним значением атрибута. Если же многозначность атрибута играет существенна, надо определить новую сущность, в которую войдут эти значения, и соединить ее с исходной сущностью связью многие-к-одному ФКН НАУ 12
Лекция 10. Язык ER-моделирования 31. 01. 2018 Правило (3) – атрибут может стать сущностью Атрибут может стать сущностью, если он представляет самостоятельный интерес и обладает собственными связями и атрибутами. ФКН НАУ 13
Лекция 10. Язык ER-моделирования 31. 01. 2018 Правило (4) – факультативность атрибутов Атрибут, значение которого может отсутствовать, называется факультативным. Атрибут, значение которого должно быть всегда известно, называется обязательным. Сущность может быть определена тогда и только тогда, когда известны значения всех ее обязательных атрибутов. обязательный факультативный ФКН НАУ 14
Лекция 10. Язык ER-моделирования 31. 01. 2018 Правило (5) – сущность обладает уникальной идентификацией Каждая сущность должна однозначно идентифицироваться посредством некоторой комбинации атрибутов и/или связей Этот атрибут входит в состав уникального идентификатора сущности МЕСТО ФКН НАУ Эта связь входит в состав уникального идентификатора сущности МЕСТО 15
Лекция 10. Язык ER-моделирования 31. 01. 2018 Правило (6) – полнота уникального идентификатора (2 NF) Значения атрибутов, не входящих в уникальный идентификатор, должны зависеть ОТ ВСЕГО уникального идентификатора. Удалите атрибуты, значения которых зависят лишь от той или иной части идентификатора. Присутствие таких атрибутов, как правило, указывает на наличие пропущенной сущности, связанной с данной ФКН НАУ 16
Лекция 10. Язык ER-моделирования 31. 01. 2018 Правило (7) – зависимость только от уникального идентификатора (3 NF) Значения атрибутов, не входящих в уникальный идентификатор, должны зависеть ТОЛЬКО ОТ уникального идентификатора. ФКН НАУ 17
Лекция 10. Язык ER-моделирования 31. 01. 2018 Более сложные понятия 4 4 4 4 4 супертип/подтип, базисные и переходные сущности, разрешение связей многие-ко-многим, взаимоисключаемость, непереместимость, квалифицированная степень, избыточность, каскадное удаление производные атрибуты ФКН НАУ 18
Лекция 10. Язык ER-моделирования 31. 01. 2018 Подтипы/супертипы 4 Подтип - это разновидность сущности. 4 Подтип неявно наследует все атрибуты и связи супертипа. 4 Подтипы могут обладать собственными атрибутами и/или связями и, в свою очередь, разделяться на подтипы более низких уровней. 4 Супертип - это систематизация сущностей с общими подтипами. 4 Одна и та же сущность может являться супертипом и, в то же время, представлять собой подтип другой сущности. 4 Подтипы сущности образовывают полную систему множеств. супертипы подтипы ФКН НАУ 19
Лекция 10. Язык ER-моделирования 31. 01. 2018 Пример типа/супертипа НЕРЕГУЛЯРНЫЙ ПОЛЕТ и РЕГУЛЯРНЫЙ РЕЙСОВЫЙ ПОЛЕТ имеют один и тот же атрибут – НОМЕР (наследуется из супертипа РЕЙСОВЫЙ ПОЛЕТ), но отличаются связями! Сущность является простой, если она не является подтипом или сама не имеет подтипов. ФКН НАУ 20
Лекция 10. Язык ER-моделирования 31. 01. 2018 Разрешение связей многие-ко-многим Связи многие-ко-многим часто встречаются на ранних этапах анализа ПО. Это, как правило, свидетельствует о том, что опущена сущность. Разрешение достигается введением новой переходной сущности, разделяющей окончания такой связи. До ФКН НАУ После 21
Лекция 10. Язык ER-моделирования 31. 01. 2018 Взаимоисключающие связи Две или более связей одной и той же сущности могут оказаться взаимоисключающими (либо-либо). Этот факт представляется поперечной дугой, пересекающей окончания всех соответствующих связей, с небольшими точками или кружками в местах пересечения. ФКН НАУ 22
Лекция 10. Язык ER-моделирования 31. 01. 2018 Свойства взаимоисключающих связей Пример нарушения 4 Окончания связей, которые пересекает попереч- ная дуга, должны быть либо все обязательными, либо все факультативными. 4 Окончание связи может пересекать только одна поперечная дуга. 4 Поперечные дуги не могут пересекать связи, идущие от разных сущностей 4 Поперечные дуги не могут пересекать связи, исходящие из подтипа и его супертипа. 4 Окончания связей, которые пересекает попереч- ная дуга, должны быть либо все входить в уникальный идентификатор, либо не входить. ФКН НАУ 23
Лекция 10. Язык ER-моделирования 31. 01. 2018 Непереместимые связи Связь является непереместимой, если экземпляр сущности, будучи ассоциированным с экземпляром сущности, расположенной с другой стороны окончания связи, не может в дальнейшем эту ассоциацию изменять. 4 Нет никакого смысла перемещать купон из одного билета в другой, однако вполне может потребоваться переписать его на другой рейс, например, если число пассажиров превысит количество посадочных мест. ФКН НАУ Указатель неперместимости 24
Лекция 10. Язык ER-моделирования 31. 01. 2018 Квалифицированная степень предоставляет возможность указать пределы для мощности (степени) окончания связи, ее стандартное, максимальное, среднее и максимальное значение. ФКН НАУ 25
Лекция 10. Язык ER-моделирования 31. 01. 2018 Неизбыточные связи ER-диаграмма не должна содержать связей, которые всегда, при любых обстоятельствах, могут быть выведены из других связей. 4 Примечание: В БД избыточность является обычным способом достижения необ- ходимого быстродействия. Однако решения такого рода должны приниматься проектировщиком и не должны предопределяться системным аналитиком. Связи не избыточны ФКН НАУ Связи избыточны 26
Лекция 10. Язык ER-моделирования 31. 01. 2018 Каскадное удаление В реальном мире мы, когда теряем о чем-то все сведения, часто неявно теряем и все сведения о каких-то других взаимосвязанных вещах. Например, если мы удалим все сведения о БИЛЕТЕ, мы неявно удалим и все сведения о его КУПОНАХ. Это так называемая зависимость по существованию 4 X - удалить всех детей при удалении родителя; 4 C - запретить удаление родителя, если существуют дети; 4 N - родители и дети могут удаляться независимо. ФКН НАУ 27
Лекция 10. Язык ER-моделирования 31. 01. 2018 Правила каскадного удаления ФКН НАУ 28
Лекция 10. Язык ER-моделирования 31. 01. 2018 Производные атрибуты ФКН НАУ 29
Лекция 10. Язык ER-моделирования 31. 01. 2018 Основные понятия, связанные с сущностями 4 Независимые/зависимые сущности 4 Базисные сущности 4 Родительские/дочерние сущности 4 Сущности супертипы/подтипы и простые сущности 4 Переходные сущности и сущности-связки 4 Сущности-классификаторы ФКН НАУ 30
Лекция 10. Язык ER-моделирования 31. 01. 2018 Сопутствующие понятия 4 потоки данных - моделирование связей, существующие между прикладными задачами, изображая данные, поступающие на вход и выход каждой задачи; 4 хранилище данных – способ объединения различных потоков данных в виде единого места хранения; 4 прикладные задачи – потребители данных; 4 события – инициаторы прикладных задач. ФКН НАУ 31
Лекция 10. Язык ER-моделирования 31. 01. 2018 Проектирование реляционной базы данных Шаг 1. Преобразование сущностей в таблицы. Шаг 2. Преобразование атрибутов в столбцы. Шаг 3. Пребразование связей один-ко-многим и один-к-одному во внешние ключи. Шаг 4. Преобразование связей многие-ко-многим в сущности-связки Шаг 5. Представление уникальных идентификаторов (ключами таблиц или столбцами-заменителями) Шаг 6. Проектирование подтипов Шаг 7. Проектирование взаимоисключающих связей Шаг 8. Проектирование производных атрибутов ФКН НАУ 32
Лекция 10. Язык ER-моделирования 31. 01. 2018 Шаг 1. Преобразование сущностей в таблицы 4 Каждая простая сущность преобразуется в таблицу. В качестве имени отношения используются иена сущностей (возможно во множественном числе) ER-схема ФКН НАУ Отношения 33
Лекция 10. Язык ER-моделирования 31. 01. 2018 Шаг 2. Преобразование атрибутов в столбцы 4 Каждый атрибут преобразуется в столбец с тем же именем. В этот момент выбирается формат столбца. 4 Факультативные атрибуты становятся null-столбцами. 4 Обязательные атрибуты становятся not-null-столбцами ER-схема ФКН НАУ Отношение с атрибутами 34
Лекция 10. Язык ER-моделирования 31. 01. 2018 Шаг 3. Пребразование связи один-к-одному во внешний ключ (1) 4 Первичный ключ любой CREATE TABLE PERSON ( сущности используется в Prs. ID NUMBER(3) качестве внешнего PRIMARY KEY, . . . ); ключа другой сущности. 4 Внешний ключ стано- вится NOT NULL. CREATE TABLE AUTOBIOGRAPHY ( 4 Обязательность связи. . . Prs. ID NOT NULL со стороны первичного REFERENCES PERSON, ключа поддерживается с. . . ); помощью триггера. 4 Первичный ключ любой ФКН НАУ сущности используется в качестве внешнего ключа другой сущности, как и в предыдущем случае. 35
Лекция 10. Язык ER-моделирования 31. 01. 2018 Шаг 3. Пребразование связи один-к-одному во внешний ключ (2) 4 Первичный ключ сущ- CREATE TABLE PERSON ( Prs. ID NUMBER(3) ности ЧЕЛОВЕК исполь. PRIMARY KEY, зуется в качестве. . . ); внешнего ключа в сущности АВТОБИОГРАФИЯ. 4 Внешний ключ становится NOT NULL. ФКН НАУ CREATE TABLE AUTOBIOGRAPHY (. . . Prs. ID NOT NULL REFERENCES PERSON, . . . ); 36
Лекция 10. Язык ER-моделирования 31. 01. 2018 Шаг 3. Пребразование связи один-ко-многим во внешний ключ 4 Ключ сущности у окончания «один» используется в качестве внешнего ключа сущности у окончания «много» . 4 Если окончание «много» является обязательным, то внешний ключ имеет ограничение NOT NULL 4 Если окончание «один» является обязательным, то это поддерживается соответствующим триггером. ФКН НАУ CREATE TABLE TICKET ( Tick. ID NUMBER(3) PRIMARY KEY, . . . ); CREATE TABLE COUPON (. . . Tick. ID NOT NULL REFERENCES TICKET, . . . ); 37
Лекция 10. Язык ER-моделирования 31. 01. 2018 Шаг 4. Преобразование связей многие-ко-многим в сущности-связки 4 Каждая из сущностей поро- ждает базовое отношение. 4 Создается третья сущностьсвязка, которая содержит внешние ключи, ссылающиеся на созданные базовые отношения и не содержит никаких других атрибутов. 4 Если окончание связи является обязательным, то это поддерживается соответствующим триггером. 4 Пара внешних ключей сущности-связки образует ее первичный ключ. ФКН НАУ CREATE TABLE TICKET ( Tick. ID NUMBER(3) PRIMARY KEY, . . . ); CREATE TABLE FLIGHT ( Flht. ID NUMBER (3) PRIMARY KEY, . . . ); CREATE TABLE LINK ( Tick. ID REFERENCES TICKET, Flht. ID REFERENCES FLIGHT, CONSTRAINT prk PRIMARY KEY (Tick. ID, Flht. ID); 38
Лекция 10. Язык ER-моделирования 31. 01. 2018 Шаг 5. Представление уникальных идентификаторов ключами таблиц 4 Уникальнй идентифика- CREATE TABLE AIRCRAFT ( тор составляет первич- Air. No NUMBER(3) PRIMARY KEY, ный ключ. . ); 4 Если в состав уникаль- CREATE TABLE OFFICE ( ного идентификатора Off. ID NUMBER (3) входит кончание связи, PRIMARY KEY, то первчный ключ со. . . ); держит соответствую- CREATE TABLE SERVICE ( Srv. Date DATE NOT NULL, щий внешний ключ Result CHAR(50), Air. No NOT NULL REFERENCES AIRCRAFT, Off. ID NOT NULL REFERENCES OFFICE, CONSTRAINT prk PRIMARY KEY (Srv. Date, Air. No, Off. ID); ФКН НАУ 39
Лекция 10. Язык ER-моделирования 31. 01. 2018 Шаг 5. Представление уникальных идентификаторов столбцами-заменителями 4 Используется в том ФКН НАУ случае, когда имеется длинная цепочка вхождения окончаний связей в первичные ключи. 4 В каждую создаваемую таблицу вводится дополнительный столбец, которому придается статус первичного ключа. 4 Всем уникальным ИД придаются ограничения целостности UNIQUE, NOT NULL. CREATE TABLE ROUTE ( Ro. ID NUMBER(3)PRIMARY KEY, Ro. NO NUMBER(5)UNIQUE NOT NULL); CREATE TABLE ROUTE_FLIGHT ( Fl. ID NUMBER(3) PRIMARY KEY, Fl. Date DATE NOT NULL, Fl. Time TIME NOT NULL, Ro. ID NUMBER (3) REFERENCES ROUTE, CONSTRAINT unq UNIQUE (Fl. Date, Fl. Time, Ro. ID)); CREATE TABLE BOARDING_PASS ( BPID NUMBER(3)PRIMARY KEY, BPDate DATE NOT NULL, BPTime TIME NOT NULL, Fl. ID NUMBER(3) REFERENCES ROUTE_FLIGHT, CONSTRAINT unq 2 UNIQUE (BPDate, BPTime, Fl. ID)); 40
Лекция 10. Язык ER-моделирования 31. 01. 2018 Шаг 6. Проектирование подтипов ФКН НАУ 41
Лекция 10. Язык ER-моделирования 31. 01. 2018 Шаг 7. Проектирование взаимоисключающих связей ФКН НАУ 42
Лекция 10. Язык ER-моделирования 31. 01. 2018 Шаг 8. Проектирование производных атрибутов ФКН НАУ 43
Лекция 10R-Язык ER-моделирования.ppt