Теория и практика построения баз данных (1088289), страница 17
Текст из файла (страница 17)
В таблице должно быть по меньшей мере четыре строки. 4. Какой из столбцов таблицы ПОКУПКА можно использова~ь в качестве первичного ключа для этой таблицы? 5. Имея определенные выше таблицы, невозможно связать конкретного покупателя с его горелкой. Один пз способов сделать это — добавить столбец СерийиыйНомер из таблицы ПОКУПКА в ~аблицу КЛИЕНТ. После этого таблица КЛИЕНТ будет выглядеть следующим образом: КЛИЕНТ (Имя, Улица, Дом, Квартира, Город, Штат, ПочтовыйИндекс, Страна, ЗлектроииыйАдрес, Телефон). 80 Глава 2. Введение в разработку баз данных Скопируйте данные из таблицы КЛИЕНТ и добавьте к ним столбец СерийныйНоиер. Назовите получившуюся таблицу КЛИЕНТ1. 6. Связь двух таблиц можно представить и по-другому: поместить столбец ЗлектронныйАдрес из таблицы КЛИЕНТ в таблицу ПОКУПКА.
После етого таблица ПОКУПКА будет выглядеть следующим образом: ПОКУПКА (ДатаПокулки, ЕерийныйНоиер, ЗлектрониыйАдрес). Скопируйте данные из таблицы ПОКУПКА и добавьте к ним столбец ЗлектронныйАдрес из таблицы КЛИЕНТ. Назовите получившуюся таблицу ПОКУПКА1, 7. Теперь у вас имеются трп возможные структуры: КЛИЕНТ1+ПОКУПКА, КЛИЕНТ+ПОКУПКА1 и КЛИЕНТ1+ПОКУПКА1. При каких условиях вы могли бы рекомендовать первую структуру? Вторую структуру? 8. При каких условиях вы могли бы порекомендовать третью структуру? Часть П Моделирование данных Моделирование данных — зто процесс создания логического представления структуры базы данных.
Правильно сконструированная модель данных должна поддерживать все пользовательские представления данных, Моделирование данных является наиболее важной задачей прн разработке эффективных приложений баз данных. Если база ланных будет неверно отражать пользовательское представление данных, то пользователи найдут ее приложения неудобными, неполными и не оправдывающими ожиданий. Моделирование данных — основа для всей последующей работы при разработке баз данных и их приложений. Часть П описывает два различных подхода к моделированию данных. В главе 3 рассматривается модель «сугцность — связь» (еш(гу-гс1аг(оозп(р тподе1), имеющая значительное количество сторонников среди профессиональных разработчиков баз данных.
В главе 4 описывается семантическая объектная модель, которая облаласт меньшим числом приверженцев, однако некоторые считают ее более богатой и простой в использовании, чем молель «сущность — связь». Эти модели представляют собой языки для описания структуры данных и их связей в представлении пользователей. Моделирование данных отражает логическую структуру данных, так же как блок-схемы алгоритмов отражают логическую структуру программы. КЛИЕНТ сущнпсгь содержит: НомврКливнтв ИмяКливптв Адрес Город Штат ПочтовыйИндвкс ИмяДовврвнногоЛица НомврТвлвфонв Двв экземпляра сущности КЛИЕНТ: рмс.
3.1. КЛИЕНТ: пример сущности Атрибуты Сущности Глава 3 Модель <<сущность — связью Эта глава описывает и иллюстрирует использование модели «суи!ггоспгь — сеязг» (епт)ту-ге!ат)апз!пр гпос)е1), введенной Питером Ченом (Рессг СЬеп) в 1976 гц В этой статье Чен заложил основу модели, которая с тех пор расширялась и модифицировалась самим Ченом и многими другимн'. Кроме того, модель «сущность — связь» вошла в состав множества САЯЕ-ггнструыентов, которые также внесли свой вклад в ее эволюцию. На сегодняшний день не существует единого общепринятого стандарта для модели «сущность — связь», зато есть набор общих конструкций, которые лежат в основе большинства вариантов этой модели. Описанию этих общих конструкций и демонстрации их применения и посвящена данная глава.
Символы, применяемые для графического представления модели «сущность — связь», весьма различны. Мы обсудим це только традиционные символы, но и символы языка Е)МЬ (Е)вгт)ег) Мог)е) Ьапйпаяе, унифицированный язык моделирования) — средства проектирования, завоевываюцгего все большую популярность среди программистов ООП и включающего в себя модель «сущность — связь». Элементы модели «сущность — связь» Ключевыми элементами модели «сущность — связь» являются сущности, атрибу- ты, идентификаторы и связи. Рассмотрим каждый нз них по очереди Сугцггоспгь (евйту) — это некоторый объект, идентифицируемый в рабочей среде пользователя, нечто такое, за чем пользователь хотел бы наблюдать, Примерами сущностей могут служить СОТРУДНИК Мэри Доу, КЛИЕНТ 12345, ЗАКАЗ 1000, ПРОДАВЕЦ Джон Смит или ПРОДУКТ А4200.
Сущности одного и того же типа группируютсл в классы суи!пасшей (евтйу с!аззез). Так, класс сущностей СОТРУДНИК ' Р. Р. СЬеп, «ТЬс Епцгу-Не!виол«Ьгр Моде! — Тоиагд* а г гпгйед тцеи сг Пмвж АСМ Ггаляасггап«ап 1)агаьаее 5уггетя январь 1976, с. 9-36 г Тггппгве А. Вгвсе, 2)еггапгпя Яааяф 1)агавам« вугь ЮЕР1Х гпуагпгаггап Мадеь (Неж уог1«: Оогеег Новее Рвы!«Ь)ггя, 1992). Элементы модели «сущность — связь» 83 является совокупностью всех сущностей СОТРУДНИК. В тексте книпг классы сущностей обозначаются заглавными буквами.
Важно уяснить разницу между классом сугцностей и экземпляром сущности. Класс сущиосгпей — зта совокупность сущностей, н описывается он структурой или форматом сущностей, составляющих этот класс. Экземпляр сущности (епт)ту шзтапсе) представляет конкретную сущность, такую как КЛИЕНТ 12345; он описывается значениями атрибутов данной сущности. Обычно класс сущностей содержит множество экземпляров сущности. Например, класс КЛИЕНТ содержит множество экземпляров — по одному на каждого клиента, для которого имеется запись в базе данных. Пример класса сущностей и двух экземпляров сущности показан на рис. 3.1. У сущностей есть итриггупгы (агтг)Ьпгез), пли, как пх иногда называют, сеойспгаа (ргорегйез), которые описывают характеристики суцпюстп.
Примерамн атрибутов могут служить ИмяСотрудника, ДатаНайма и КодКвалифпкации. В тексте этой книюг атрибуты обозначаются как прописными, так и строчными буквами. В модели «сущность — связь» предполагается, что все экземпляры даннага класса сущностей имеют одинаковые атрибуты. Исходное определение модели «сугцпость — связь» включает в себя композитные атрибуты (сошроз)тс аттпЬп1ез) и многозначные атрибуты (гпп!11-уа!цес) аттг)Ъпгез). В качестве примера композитного атрибута можно привести атрибут Адрес, состоящий из группы атрибутов (Улица, Город, Штат, Индекс). Примером многозначного атрибута может служить атрибут ИмяДоверенногоЛица сущности КЛИЕНТ, который может содержать имена нескольких доверенных лиц даннога клиента.
Атрибут может быть одновременно н композитным, и многазначным— ВЕЦ- Идентификаторы РЕБЕНОК СЛУЖЕБНЫЙ-АВТОМОБИЛЬ а ОБЩЕЖИТИЕ-ЖИЛЕЦ б СТУДЕНТ-КЛУБ с 84 Глава 3. Модель «сущность — связь» например композитный атрибут Телефон, состоящий из группы атрибутов (КодРегиона, МестныйНомер), может быть многозначным, что позволит иметь в базе данных несколько телефонных номеров одного и того же лица. В большинстве реализаций модели «сущность — связь» однозначные композитные атрибуты игнорируются, и требуется, чтобы мпогозначныс атрибуты (будь они составные или нет) преобразовывались в сущности, как будет показано ниже.
Экземпляры сущностей имеют идентигрикаторы (1|)епгттгегз) — атрибуты, с помощью которых эти экземпляры именуются, илц идентифицируются. Например, экземпляры сущностей класса СОТРУДНИК могут илентифицпроваться по атрибутам НомерСоциальнойСтраховки, ТабельныйНомерСотрудника или ИмяСотрудника. Такие атрибуты, как Зарплата или ДатаНайма, вряд ли могут служить идентификаторами экземпляров сущностей класса СОТРУДНИК, поскольку обычно эти атрибуты не используются для однозначного указания па конкретного сотрудника. Подобно этому, сущности класса КЛИЕНТ могут идентифицироваться по атрибутам НомерКл пента илн И ма Клиента, а сущности класса ЗАКАЗ могут идентифицироваться по атрибуту НомерЗаказа. Идентификатор экземпляра сущности состоит из одного или более атрибутов сущности.
Идентификатор может быть уникальным (цп)г)це) либо неуникальным (попив)цце). Если идентификатор является уникальным, его значение будет указывать на один и только один экземпляр сущности. Если идентификатор является неуникальным, его значение будет указывать на некоторое множество экземпляров. ТабельныйНомерСотрудника является, скорее всего, уникальным идентификатором, а ИмяСотрудника — неуникальныл| (например, может быть несколько сотрудников по имени Джон Смит). Идентификаторы, состоящие из нескольких атрибутов, называются композитнылги идеитигрикагпораии (сои|ровд|с 1г)епг!!1егз). Прпмерамп могут служить совокупности вида (КодРегиона, МестныйНомер), (НазааниеПроекта, НазваниеЗадачи) и (Имя, фамилия, ДобавочныйНоиерТелефона).