|
Программирование >> Реляционные базы данных
Movie( TITLE: string. YEAR: integer, length; integer, inColor: boolean. StudioName: string, producerC#; integer) Starsln( MOVIETITLE: string, MOVIEYEAR- Integer, STARNAME: string) J MovieStar( NAME: string, address: stnng. gender, char, birthdate: date) MovieExec{ name: string, address: string. CERT#: integer, netWorth: integer) Studio( NAME: stnng. address: string, presC#; Integer) Рие. 3.43. Пример сеемы БД о фипьмох Продюсер введен в качестве одного из свойств фильма. Эта информация представлена новым атрибутом producerC отношения Movie. Предполагается, что этим атрибугом является номер сертификата продюсера. Продюсеры - это производители фильмов, как и президенты ст>дий. В отношении MovieExec могут быть и другие производители. Атрибут filmType отношения Movie, имеющий тип перечисление , заменен на булев атрибут InColor. Он истинен, если фильм цветной, и ложен, если фильм черно-белый. Причина изменения в том, что не все языки БД поддерживают перечисляющие типы. Для кинозвезд, играющих в фильме, добавлен атрибут gender. Его типом является буква : М для мужчин и F для женщин. Добавлен также атрибут birthdate типа дата (специальный тип, подйерживаемый большинством коммерческих систем БД. или, если угодно, строка символов). Все адреса сделаны не парами, а строками, состоящими из улицы и города. Цель изменения - упростить сравнение адресов разных отношений и выполнение операций с ними. ЗЛО Итоги + Реляционнаи модель. Отношения - это таблицы, содержащие информацию. Столбцы таблицы озаглаалены атрибутами; с каждым из них связана область значений, или тип. Строки таблиц называются кортежами. Кортеж имеет один компонент для каждого атрибута отношения. + Схемы. Имя отношения и его атрибуты составляют схему отношения. Множество схем отношений образует счему БД. Отдельные данные для отношения, или множества стношений, называются экземпляром реляционной схемы или схемы БД. + Преобразование множества сущностей в отношения. Отношение лпя множества сущностей содержит один атрибут для каждого атрибута множества сущностей. Исключением является слабое множество сущностей Е. Его отношение должно содержать также атрибуты для ключевых атрибутов тех множеств сущностей, которые позволяют идентифицировать сущности множества £. * Преобразование связей в отношения. Отношение для E/R-связи имеет атрибуты, соответствующие ключевым атрибутам каждого множества сущностей, участвующего в этой связи. > Преобразование к.1оссов ODL в отно1иения. Отношения для ODL-класса С содержит один атрибут для каждого атрибута этого класса. Оно может иметь также атрибуты для ключа класса Д с которым связан класс С. Поскольку связи ODL имеют обращения, рекомендуется хранить связи С с D типа многие-к-одному вместе с множеством С, а не D. -* Преобразование ООЕ-сеязей типа многие-ко-многим . Связи типа многие ко-многим можно хран1ггь вместе с любым классом, но они ведут к резкому увеличению числа кортежей в отношении Этот недостаток реляционного проекта можно устранить в процессе нормализации. ODL связи гипа многие-ко-многим можно, кроме того, представить отдельным отношением так, как будто они находятся в E/R-модели. В заключение краткий комментарий этих пяти отношений, их атрибутов и их выводов из ODL или E/R-проектов. 1. Movie - одно из отношений, полученных в результате декомпозиции отношения Movie в примере 3.36, к которому добавлен атрибут prodiicerC#, представляюший производителя фильма, 2. starsln - второе отношение, полученное при декомпозиции в примере 3.36. Это же отношение необходимо, если отношение Star строится непосредственно нз класса ODL с таким же именем, а затем переводится в BCNF. Начиная с определения ODL. приведенного на рис. 2.5. мы получаем отношение Star с атрибузами name, address, title и year. Последние два из них представляют связь starredin. Множество {пате, title, year) является ключом, а name address функциональной зависимостью. Поэтому данное отношение разлагается на схемы {name, address} (расширенную до отиошения MovieStar) и {пате, title, year} (яв.ляющуюся по существу отношением Starsln). Отношение Starsln представляет также связь Srars-in нз E/R-диаграммы, изображенной на рис. 2.8. 3.10 Итоги 137 ♦ Лреобразпвание подклассов в отношения. Ояии из под.ходоп состоит и распределении сущностей или объектов на множестпе подклассов и создании отношения со всеми атрибутами, необходимыми для каждого подкласса. Другой подход - представить все сущности или объекты в главном отношении, которое содержит лишь атрибуты наиболее о6и1его класса. Сущности или Объекты из подк-пассов также содержатся в спецмальны.х отношениях лля этих подкиассов. .Эти отношения содержат только ключевые атрибуты для общего класса и особые атрибуты конкретного полкласса. + Функиионольные зависимости. Представляют собой утверждение о том, что два кортежа, совпадающие по конкретному множеству атрибутов долж 1ы совпадать и по другому отдельному атрибуту. ♦ Юиочи. Надключ для отношения - это множество атрибутов, функиионяпьно определяющее нее остальные атрибуты отношения. Ключ - это такой надключ, при котором ни одно собственное подмножество ключа функционально не определяет все атрибуты. ♦ Логические рассуждения о функциональных зависимостях. Сущестиует множество правил, позволяющих заключить, что одна функциональная зависимость X А содержит в любом экземпляре отношения, удовлетворяющие другому заданному мтюжеству функциональных зависимостей. Самый простой метол подтверждения истинности Х-*А обычно заключается в том, чтобы вычислить замыкание X. применяя заданные зависимости лля расширения X до тех пор, пока в него не войдет А. + Декомпозиция отношений. Можно разлагать одну схему отношения на две без потери информации до тех пор, пока атрибуты в обеих новых схемах составляют на.дключ по крайней мере для одного из разлагаемых отношений. * Нормадышя форма Бойса-Кодда (BCNF). Отношение находится в BCNF, если единственно возможные нетривиальные зависимости гласят, что некоторый надключ функционально определяет один из остальных атрибутов. Любое отношение можно разложить на множество отношений в BCNF без потери информации. Основное достоинство BCNF в том, что она устраняет избыточность, вызванную существованием функциональных зависимостей. + Третья нормальная форма. Иногда декомпозиция в BCNF может предотвратить проверку определенных функциональных зависимостей. Ослабленная форма BCNF. называемая 3NF, допускает функциональную зависимость .Y-> А, даже если X не является надключом. при условии, что А - шен некоторого ключа. 3NF не всегда, но довольно часто устраняет все избыточности, связанные с функциональными зависимостями. + Многозначные зависимости. Представляют собой утверждение о том, что два множества атрибутов в отношении имеют множество значений, появляющихся во всех воз.можных комбинациях, Общая причина возникновения многозначных зависимостей построение отношения для представления 0DL K.4acc£i с двумя или более многозначными атрибзтами или связями. + Четвертая норма.штя фор.ма. Многозначные зависимости могут вызывать избЬ[ТОчность в отношении. 4NF похожа па BCNF, но, кроме того, запреша ет нетривиальные многозначные зависи.мости (если только они не являются реальны.ми функциональными зависимостями, допускаемыми BCNF), Можно разложить отношение на 4NF без потери информации.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |