Тема_7 (1122352), страница 5
Текст из файла (страница 5)
Кузнецов. Базы данных.58 Проектирование РБДСемантическая модель Entity-Relationship(43)БолеесложныеТип сущности,на элементыосновекоторого определяютсяподтипы, называетсясупертипом Объединение множестваэкземпляров подтиповдолжно образовывать полноемножество экземпляровсупертипа, т.е. любойэкземпляр супертипа долженотноситься к некоторомуподтипу Иногда для обеспечениятакой полноты приходитсяопределять дополнительныйподтип ПРОЧИЕ29.10.2009ER-модели (7) Наследование (3)С.Д. Кузнецов. Базы данных.59 Проектирование РБДСемантическая модель Entity-Relationship(44)Здесь сложныепоказан примерБолееэлементы ER-модели (8) Наследование (4)супертипа ЛЕТАТЕЛЬНЫЙАППАРАТ и его подтиповАЭРОПЛАН, ВЕРТОЛЕТ,ПТИЦЕЛЕТ и ПРОЧИЕ У подтипа АЭРОПЛАНимеются два собственныхподтипа – ПЛАНЕР иМОТОРНЫЙ САМОЛЕТ Для супертипа сущностиЛЕТАТЕЛЬНЫЙ АППАРАТопределен атрибутмаксимальная дальность полета и необязательная связь «многие комногим» с типом сущности ПИЛОТ Эти атрибут и связь наследуется всеми подтипами этого супертипасущности.29.10.2009С.Д.
Кузнецов. Базы данных.60 Проектирование РБДСемантическая модель Entity-Relationship(45)У непосредственногоБолеесложные элементы ER-модели (9) Наследование (5)подтипа сущностиАЭРОПЛАН определяетсяодин дополнительныйатрибут, так что всовокупности у данного типасущности имеются дваатрибута максимальнаядальность полета и размахкрыльев и однаунаследованная связь стипом сущности ПИЛОТ У подтипа второго уровня МОТОРНЫЙ САМОЛЕТ супертипаАЭРОПЛАН определяется один дополнительный атрибут мощностьмотора и одна дополнительная (обязательная) связь с типом сущностиАЭРОДРОМ29.10.2009С.Д. Кузнецов. Базы данных.61 Проектирование РБДСемантическая модель Entity-Relationship(46) Тем самым, у типа сущностиБолее сложные элементы ER-моделиМОТОРНЫЙ САМОЛЕТ имеются триатрибута: два унаследованных –максимальная дальность полета иразмах крыльев и один собственный– мощность мотора, а также двесвязи: одна унаследованная – стипом сущности ПИЛОТ и однасобственная – с типом сущностиАЭРОДРОМ(10) Наследование (6) У подтипа второго уровня МОТОРНЫЙ САМОЛЕТ супертипаАЭРОПЛАН определяется один дополнительный атрибут мощностьмотора и одна дополнительная (обязательная) связь с типом сущностиАЭРОДРОМ Понятно, что для типа сущности ПРОЧИЕ, бессмысленно определятьсобственные атрибуты и связи, так что свойства этого типа будутсовпадать со свойствами его супертипа29.10.2009С.Д.
Кузнецов. Базы данных.62 Проектирование РБДСемантическая модель Entity-Relationship(46)Более сложные элементы ER-модели (10) Наследование (7)Как же следует понимать эту диаграмму?Если начинать от супертипа, то диаграмма изображаетЛЕТАТЕЛЬНЫЙ АППАРАТ, который должен быть АЭРОПЛАНОМ,ВЕРТОЛЕТОМ, ПТИЦЕЛЕТОМ или ДРУГИМ ЛЕТАТЕЛЬНЫМАППАРАТОМЕсли начинать от подтипа (например, сущности ВЕРТОЛЕТ), то этоВЕРТОЛЕТ, который относится к типу ЛЕТАТЕЛЬНОГО АППАРАТАЕсли начинать от подтипа, который является одновременносупертипом, то это АЭРОПЛАН, который относится к типуЛЕТАТЕЛЬНОГО АППАРАТА и должен быть ПЛАНЕРОМ илиМОТОРНЫМ САМОЛЕТОМВ механизме наследования ER-модели допускается наличие двухили более разбиений сущности на подтипыНапример, тип сущности ЧЕЛОВЕК может быть расщеплен на подтипыпо профессиональному признаку (ПРОГРАММИСТ, ДОЯРКА и т. д.), аможет быть расщеплен и по половому признаку (МУЖЧИНА,ЖЕНЩИНА)29.10.2009С.Д.
Кузнецов. Базы данных.63 Проектирование РБДСемантическая модель Entity-Relationship(46)Здесьпоказанэлементыпример диаграммыБолеесложныеER-модели (10) Взаимно-исключающие связи (1)из двух сущностей с взаимноисключающими Самолет может находиться врабочем состоянии, и тогда у негоимеется один и только один пилот Или же самолет может быть неисправным, и тогда он находится наремонте на некотором авиаремонтном предприятии (каждое предприятиеможет производить ремонт нескольких самолетов) В данном случае для каждого экземпляра типа сущности САМОЛЕТдолжен существовать экземпляр одной из указанных связей Для экземпляров типа сущности САМОЛЕТ, соответствующихисправным самолетам, должен существовать экземпляр связи «один кодному» с экземпляром типа сущности ПИЛОТ, а экземпляры,соответствующие неисправным самолетам, должны участвовать вэкземпляре типа связи «многие ко одному» c экземпляром типа сущностиАВИАРЕМОНТНОЕ ПРЕДПРИЯТИЕ29.10.2009С.Д.
Кузнецов. Базы данных.64 Проектирование РБДСемантическая модель Entity-Relationship(47)Диаграммас взаимноБолеесложныеэлементы ER-модели (11) Взаимно-исключающие связи (2)исключающими связями может бытьпреобразована к диаграмме безвзаимно исключающих связей путемвведения подтипов Поскольку любой самолет может быть либо исправным, либонеисправным, можно корректным образом ввести два подтипа супертипаСАМОЛЕТ – ИСПРАВНЫЙ САМОЛЕТ и НЕИСПРАВНЫЙ САМОЛЕТ На уровне супертипа сущности связи не определяются Для подтипа ИСПРАВНЫЙ САМОЛЕТ определяется обязательная связь«один к одному» с типом сущности ПИЛОТ, а для подтипаНЕИСПРАВНЫЙ САМОЛЕТ определяется обязательная связь «многие кодному» с типом сущности АВИАРЕМОНТНОЕ ПРЕДПРИЯТИЕ29.10.2009С.Д. Кузнецов.
Базы данных.65 Проектирование РБДСемантическая модель Entity-Relationship(48)Получениесхемы из ER-диаграммы Опишемреляционнойтиповую многошаговуюпроцедуру (1)преобразования ER-диаграммы в реляционную(более точно, в SQL-ориентированную) схему базыданных Следует заметить, что предполагаетсяиспользование «традиционных» средствопределения данных SQL, не включающихвозможности определения структурных типов данныхс поддержкой механизма наследования типов итипизированных таблиц Отсутствует общепризнанная методологияпроектирования SQL-ориентированных баз данных, вкоторых используются «объектные» расширения SQL29.10.2009С.Д. Кузнецов. Базы данных.66 Проектирование РБДСемантическая модель Entity-Relationship(49)Получениереляционнойсхемыиз ER-диаграммыБазовые приемы (1) Каждыйпростойтипсущности (2)превращаетсятаблицу.
(Простым типом сущности называетсятип сущности, не являющийся подтипом и неимеющий подтипов.)вИмя сущности становится именем таблицыЭкземплярам типа сущности соответствуют строкисоответствующей таблицыКаждый атрибут становится столбцом таблицыс тем же именем; может выбираться болееточный формат представления данныхСтолбцы, соответствующие необязательныматрибутам, могут содержать неопределенные значения;столбцы, соответствующие обязательным атрибутам, –не могут29.10.2009С.Д. Кузнецов. Базы данных.67 Проектирование РБДСемантическая модель Entity-Relationship(50)Получениереляционнойсхемы из ER-диаграммы(3) Базовые приемы (2) Компонентыуникальногоидентификаторасущности превращаются в первичный ключтаблицыЕсли имеется несколько возможных уникальныхидентификаторов, для первичного ключа выбираетсянаиболее характерный уникальный идентификаторЕсли в состав уникального идентификатора входятсвязи, к числу столбцов первичного ключа добавляетсякопия уникального идентификатора сущности,находящейся на дальнем конце связи (этот процессможет продолжаться рекурсивно, и в общем случаеможет привести к зацикливанию)Для именования этих столбцов используются именаконцов связей и/или имена парных типов сущностей29.10.2009С.Д.
Кузнецов. Базы данных.68 Проектирование РБДСемантическая модель Entity-Relationship(51)Получениереляционнойсхемы (ииз «одинER-диаграммы(4) Базовыеприемы (3)Связи «многиек одному»к одному»)становятсявнешними ключами, т. е. образуется копия уникальногоидентификатора сущности на конце связи «один», исоответствующие столбцы составляют внешний ключ таблицы,соответствующей типу сущности на конце связи «многие»Необязательные связи соответствуют столбцам внешнего ключа,допускающим наличие неопределенных значений; обязательныесвязи – столбцам, не допускающим неопределенных значений.Если между двумя типами сущности A и B имеется связь «один кодному», то соответствующий внешний ключ по желаниюпроектировщика может быть объявлен как в таблице A, так и втаблице BЧтобы отразить в определении таблицы ограничение, котороезаключается в том, что степень конца связи должна равнятьсяединице, соответствующий (возможно, составной) столбец долженбыть дополнительно специфицирован как возможный ключ таблицы29.10.2009С.Д.
Кузнецов. Базы данных.69 Проектирование РБДСемантическая модель Entity-Relationship(52)Получениереляционнойсхемыиз ER-диаграммыБазовыетипамиприемы (4) Для поддержкисвязи«многиеко многим»(5)междусущности A и B создается дополнительная таблица AB сдвумя столбцами, один из которых содержит уникальныеидентификаторы экземпляров сущности A, а другой –уникальные идентификаторы экземпляров сущности B Обозначим через УИД(с) уникальный идентификаторэкземпляра некоторого типа сущности C Тогда, если в экземпляре связи «многие ко многим»участвуют экземпляры a1, a2, …, an типа сущности A иэкземпляры b1, b2, …, bm типа сущности B, то в таблице ABдолжны присутствовать все строки вида <УИД(ai), УИД(bj)>для i = 1, 2, …, n, j = 1, 2, …, m Понятно, что, используя таблицы A, B и AB, с помощьюстандартных реляционных операций можно найти все парыэкземпляров типов сущности, участвующих в данной связи29.10.2009С.Д.
Кузнецов. Базы данных.70 Проектирование РБДСемантическая модель Entity-Relationship(53)Получение реляционной схемы из ER-диаграммы (6) Супертипы и подтипыЕсли в концептуальной схеме (ER-диаграмме) присутствуют(1) подтипы сущностей, то возможны два способа их представления вреляционной схеме:собрать все подтипы в одной таблице;для каждого подтипа образовать отдельную таблицуПри применении первого способа таблица создается длямаксимального супертипа (типа сущности, не являющегосяподтипом), а для подтипов определяются представленияТаблица содержит столбцы, соответствующие каждому атрибуту (исвязям) каждого подтипаВ таблицу добавляется, по крайней мере, один столбец, содержащий«код типа»; он становится частью первичного ключаДля каждой строки таблицы значение этого столбца определяетсяконкретный тип сущности, экземпляру которого соответствует строкаСтолбцы этой строки, которые соответствуют атрибутам и связям,отсутствующим в данном типе сущности, должны содержатьнеопределенные значения29.10.2009С.Д.