Теория и практика построения баз данных (1088289), страница 34
Текст из файла (страница 34)
Возможными объектами являются БАЗОВАЯ КОНФИГУРАЦИЯ, ОБЪЕМ ПАМЯТИ, ВИДЕОКАРТА и ПРИНТЕР. Покажите связи между объектами и наделите каждый объект минимум двумя-тремя атрибутами. Укажите тип каждого семантического объекта, Чтобы проект не оказался чрезмерно велик, огравичьтесь тем, что требуется для человека, который точно решил купить компьютер, но еще не выбрал, какой именно. 3. Зайдите на сайт виртуального книжного магазина, такого как Аглахоп (мгегэг. агпагоп.согп). Пользуясь средствами сайта, найдите три лучших книги по ХМ).
для человека, который только начал изучать этот предмет. Занимаясь выяснением данного вопроса, подумайте о том, какой может быть структура базы данных по книгам, авторам, предметам и родственным темам. Разработайте семантическую объектную модель для базы данных этого сайта. Возможными объектами являются ЗАГОЛОВОК, АВТОР, ИЗДАТЕЛЬ и ТЕМА. Покажите связи между объектами и наделите каждый объект минимум двумя-тремя атрибутами. Укажите тип каждого семантического объекта. Чтобы проект не слишком разрастался, предположим, что учет нужен только для книг.
Далее ограничьтесь потребностями человека, который точно решил купить книгу, но еще не выбрал, какую. Не рассматривайте заказ клиента, выполнение заказа, за- каз на поставку и другие подобные деловые операции. Вопросы к проекту Р1геб0р Рассмотрим ситуацию, обсуждаемуго в конце глав 1 и 2. Предположим, что фирма Р1гссИ3р разработала линию из трех горелок: Р)гег1Ыоаб Р)гег)А1ц ауз и Р)гег1А1Сагпр. Предположим далее, что фирма продает запасные части для кажлого типа горелок, а также производит их ремонт. В одних случаях ремонт является бесплатным, поскольку выполняется в течение гарантийного срока, в других случаях взимается только стоимость деталей, в третьих взимается стоимость деталей и работы.
Фирма Р1геЖр желает вести учет всех этих данных. Когда владельцев фирмы спросили о подробностях, они составили слелующий список: КЛИЕНТ: Имя, Улица, Дом, Квартира, Город, Штат, Индекс, Страна, ЭлектронныйАдрес, Телефон ГОРЕЛКА: СерийиыйНомер, Тип, ДатвИзготовленяя, ИнициалыПроверяющего СЧЕТ-ФАКТУРА; НомерСчега, Дата, Клиент Гсо списком проданных товаров и указанием их стоимости), Сумма РЕМОНТ: Номерремонтэ, Клиент, Горелка, Описание (со списком деталей, использованных при ремонте, и указанием их стоимости, если таковая взимается), Сумма ДЕТАЛЬ: Номер, Описание, Стоимость, Цена 1. Создайте набор семантических объектов для базы данных фирмы Р)гег)Е)р. Задайте на свое усмотрение минимальное и максимальное кардинальные числа для всех атрибутов.
Обоснуйте каждое кардинальное число. Используйте столько типов семантических объектов, сколько считаете нужным, но не используйте подтипы. ГЭта задача окажется проще, если вы загрузите ТаЫеоеьцйпег — средство для рисования семантических объектных диаграмм, которое описано в приложении Б. Используйте это средство для определения семантических объектов и распечатки отчетов об объектах, которые вы будете сдавать преполавателю. Однако прежде чем делать это, ознакомьтесь с приложением Б и посоветуйтесь с преполавателем,) 2.
Молифицируйте объектные диаграммы из вашего ответа на вопрос 1, представив объекты СЧЕТ-ФАКТУРА и РЕМОНТ в виде подтипов При каких условиях эта структура окажется лучше, чем предыдущая? 3. Прелположим, что фирма Р)гсг11!р хочет записывать домашний и мобильный телефон, факс и несколько адресов электронной почты своих пользователей. Модифицируйте ответы на предыдущие вопросы, введя множественные значения атрибутов Телефон и ЭлектронныйАдрес. 4. Предположим, что фирма Р)гег)Е)р разрабатывает различные версии одной и той же горелки, то есть Р1геЖоъч У.1, Р1гег1)Чои У.2 и т. д.
Модифицируйте необходимым образом свой ответ на вопрос 1, чтобы учесть эту ситуацию. 164 Глава 4. Семантическая объектная модель 5. Когда пользователей спрашивают о том, какие данные они хотели бы отслеживать, они не всегда помнят все, что им нужно. Пользуясь своими знаниями об операциях малого предприятия, составьте список семантических объектов, которые они могли забыть.
Не забудьте указать связи между объектами. Что бы вы сказали по поводу необходимости каких-либо из этих дополнительных данных для РггебПр? 6. Если вы ответили на вопросы к проекту Р! гебПр в конце главы 3, сравните модель «сушность — связь», разработанную для предыдущей главы, с семантической объектной моделью, разработанной вами только чтш Какую из моделей вы предпочтете? Какая из моделей, как вам кажется, будет более понятной для сотрудников ЕггесНЗр? Часть 1П Проектирование баз данных Часть ГП книги посвяшена вопросам проектирования баз данных. Глава 5 знакомит читателя с реляционной модельнз и нормализацией. Важность реляционной модели состоит в том, что она является стандартом, в терминах которого выражена структура большинства баз данных; кроме того, на этой модели основано большинство современных СУБД.
Нормализация важна тем, что она позволяет проверить качество реляционной структуры. В главе 6 на основе материала, изложенного в главе 5, рассматривается процесс преобразования модели «сушность — связь» в независимую от СУБД реляционнук> структуру. Глава 7 описывает создание подобной структуры, исходя нз семантической объектной модели данных. Реляционная модель 1 67 Атрибут 1 Имя Атрибут 2 Атрибут 3 Атрибут 4 Возраст Пол ТабельныйНомар Кортеж 1 Кортеж 2 Реляционная модель Кортеж 7 Рис.
6.2. Отношение СОТРУДНИК Глава 5 Реляционная модель и нормализация Реляционная модель важна по двум причинам. Во-первых, поскольку конструкции реляционной модели имеют широкий и общий характер, она позволяет описывать структуры баз данных независимым от СУБД образом. Во-вторых, реляционная модель является основой почти всех СУБД. Таким образом, понимание принципов этой модели существенна. В этой главе даются основы реляционной модели (ге!айопа! шос(е1) и объяснякзтся фундаментальные принципы нормализации (поппа112аг!оп).
Мы начнем с того факта, что не все отношения одинаковы: некоторые из них более предпочтительны, чем другие. Нормализация — это процесс преобразования отношения, имеющего некоторые недостатки, в отношение, которое этих недостатков не имеет. Что еше более важно, нормализацию можно использовать как критерий для определения желательности и правильности отношений.
Вопрос о том, что такое хорошо структурированное отношение, был предметом многочисленных теоретических исследований. Термин нормализация обязан своим появлением одному из пионеров технологии баз данных, Э. Ф. Кодлу (Г. Р. Сос(с(), который определил различные гсорлсаеьссые формы (поппа! 1оппз) отношений. В этой главе мы обсудим нормализацию, включая результаты теорем, важных н полезных для разработчиков баз данных. Доказательства этих теорем и формальное, более тщательное исследование данного вопроса можно найти в работе Дейта и Ульмана (С. 1.
1)а(е и 3. 1). 1)Пшап)'. Оснношение (ге!агюп) — это двумерная таблица. Каждая строка в таблице содер- жит данные, относящиеся к некоторой вещи или какой-то ее части. Каждый стол- бец таблицы описывает какой-либо атрибут этой вещи. Иногда строки называют- ся кортежсьни (гцр1ез), а столбцы — атрибутами (а((пЬигез). с С.!.
Васе, А л !псшдясиол со Во!овесе буиетс, «яхсй Еспсюп (Кеайспй, МЛ' Адйсзоп- »ссез)еу, 1994)," и !. Г1. В11шап апс( 1еппс(ег »ДС(йош А Яш Соиле сн ВаСойосе уужелн ((11»рег басЫ!е Кшег, (Ч); Ргспс(се Най, 1997). Термины отношение, кортеж и атрибут пршвли из реляционной математики, которая является теоретическим источником этой модели. Профессионалы М16 предпочитают употреблять аналогичные термины файл (61е), запись (гесогс() и поле (!!е1б), а большинство пользователей находят более удобными термины таблица ((аЫе), строка (гесс») и столбец (со1шпп). Все эти термины сведены в таблицу на рис. 5.1. Рис. 3.1. Эквивалентная терминология реляционной модели Чтобы таблица была отношением, она должна удовлетворять определенным ограничениям'.
Во-первых, значения в ячейках таблицы должны быть одиночными — ни повторяк>шиеся группы, ни массивы не допускаются'. Все записи в столбце должны быть одного типа. Например, если третий столбец первой строки таблицы содержит номер сотрудника, то н во всех остальных строках таблицы третий столбец также должен содержать номер сотрудника.
Каждый столбец имеет уникальное имя; порядок столбцов в таблице несуществен. Наконец, в атношении не может быть двух одинаковых строк, и порядок строк не имеет значения. На рис. 5.2 представлен пример отношения. Отношение имеет семь строк, в каждой из которых четыре столбца. Гели бы мы расположили столбцы в ином порядке (скажем, поместив ТабельныйНомер в крайний левый столбец) или переставили бы строки (например, по возрастанию значения столбца Возраст), мы получили бы эквивалентное отношение. ' Е, Е. СоЫ «А гс1асюпа! Мойе! о1Васа 1ог Еагйе 3!»асей Васайапйз», Соттссл!со!!енсе)'сйеАСАС, июнь 1970 с 377 †3.
1 Э»о не означаег, что значения должньс быть фнкснроешсаой длины. Текстовое поле с записькс переменной дчссссьс, например, яаляесся вполне допустньсым значением. Однако ячейка может содержать лишь одно такое значение. 168 Глава 5. Реляционная модель и нормализация Реляционная модель 169 Рисунок 5.2 представляет отдельный экземпляр отношения. Обобщенный формат отношения — СОТРУДНИК (Имя, Возраст, Пол, ТабельныйНомер) — называется структурой отношения, и именно это большинство людей имеет в виду, используя термин отношеггие Чтобы понять, что такое нормализация, мы долл«вы определить два важных термина: функциональная зависшлость и ключ.