Теория и практика построения баз данных (1088289), страница 25
Текст из файла (страница 25)
Наконец, агентство предоставляет информацию о таком жилье другим агентствам, работающим с малообеспеченными и бездомными. 1. Зайдите на сайт производителя компьютеров, например Т)е1! (»»аа.йе11.сов). Пользуясь средствами сайта, определите, какой ноутбук вы могли бы приобрести для пользователя с бюджетом $10 000. Занимаясь выяснением это* го вопроса, подумайте о том, какой структурой может обладать база данных по компьютерным системам и подсистемам, используемая для поддержки данного сайта.
Разработайте ЕК-диаграмму для базы данных по компьютерным системам и подсистемам для этого сайта. Изобразите на ней все сущности и связи, причем у сущности должно быть минимум два атрибута. Укажите минимальное н максимальное кардинальное число для обеих сторон каждой связи. Возможными сущностями являются БАЗОВАЯ КОНФИГУРАЦИЯ, ОБЪЕМ ПАМЯТИ, ВИДЕОКАРТА и ПРИНТЕР. (Разумеется, в реальности возможных сущностей гораздо болыпе.) Введитс какне-нибудь многозначные атрибуты, как показано в тексте.
Используйте подтипы, где это имеет смысл, Чтобы проект не оказался чрезмерно велик, ограничьтесь тем, что требуется для человека, который точно решил купить компьютер, но еще пе выбрал, какой именно, 2. Зайдите на сайт виртуального книжного магазина, например Ащахоп (»»а»г. авагоп.сов). Пользуясь средствамн сайта, найдите три лучших книги по ХМЬ для человека, который только начал изучать этот предмет.
Занимаясь выяснением данного вопроса, подумайте о том, какой может быть структура базы данных по книгам, авторам, предметам и родственным темам. Вопросы к проекту Е!гесГОр 117 116 Глава 3. Модель «сущность — связь» Разработайте ЕК-диаграмму для базы данных этого сайта.
Изобразите на ней все сущности и связи, причем каждая сущность должна иметь не меньше двух- трех атрибутов. Укажите минимальное и максимальное кардинальное число для обеих сторон каждой связи. Возможными сущностями являются ЗАГОЛОВОК, АВТОР, ИЗДАТЕЛЬ, ЭКЗЕМПЛЯР и ТЕМА. (Разумеется, в реальности возможных сущностей гораздо больше.) Введите какие-нибудь многозначные атрибуты, как показано в тексте. Используйте подтипы, где это имеет смысл. Чтобы проект не слишком разрастался, предположим, что учет нужен только для книг. Далее ограничьтесь потребностями человека, который точно решил купить книгу, но еще не выбрал, какую. Не рассматривайте заказ клиента, выполнение заказа, заказ на поставку и другие подобные деловые операции.
Вопросы к проекту йгеб0р Рассмотрим ситуацию, обсуждаемую в конце глав 1 и 2. Предположим, что фирма ГйгеЖр разработала линию из трех горелок: Рггег)Хоч, Р)тес(А!чауз и Рйгес)АсСашр. Предположим далее, что фирма продает запасные части для каждого типа горелок, а также производит их ремонт. В одних случаях ремонт является бесплатным, поскольку выполняется в течение гарантийного срока, в других случаях взимается только стоимость деталей, в третьих взимается стоимость деталей и работы.
Фирма Р)гедБр желает вести учет всех этих данных. Когда владельцев фирмы спросили о подробностях„опп составили следующий список: КЛИЕНТ: Имя, Улица, Дом, Квартира, Город, Штат, Индекс, Страна, ЭлектронныйАдрес, Телефон ГОРЕЛКА: СерийныйНомер, Тип, ДатаИзготовления, ИнициалыПроверяющего СЧЕТ-ФАКТУРА: НомерСчета, Дата, Клиент (со списком проданных товаров и указанием пх стоимости), Сумма РЕМОНТ: НомерРемонта, Клиент, Горелка, Описание (со списком деталей, использованных прп ремонте, и указанием пх стоимости, если таковая взимается), Сумма ДЕТАЛЬ: Номер, Описание, Стоимость, ПродажнаяЦена 1. Создайте диаграмму»сугцггость — связь» для базы данных фирмы Бгег)Пр.
Задайте на свое усмотрение минимальную и максималыгую кардипальность для связей между сущностями. Дайте объяснение каждому кардинальному числу. Используйте слабые сущности там, где считаете это нужным. Не используйте подтипы. Укажите идентификационно-зависимые сущности, если таковые имеются. 2.
Модпфицируйте ЕК-диаграмгиу из вашего ответа на вопрос 1, представив сущности СЧЕТ-ФАКТУРА и РЕМОНТ соответствующими подтипами. При каких условиях эта структура окажется лучше, чем предьгдущаяр 3. 1)редположим, что фирма Р)гесП)р хочет записывать домашний и мобильный телефон, факс и несколько адресов электронной почты своих клиентов. Модифицируйте свою ЕВ-диаграмму, введя множественные значения атрибутов Телефон и ЭлектронныйАдрес. 4. П редположим, что фирма Р)геЖ)р разрабатывает различныс версии одной и той же горелки, то есть Р)гег)Ь)оч Ъ'егсбоп 1, ангес)Хоч Ъ'егз(оп 2 и т. д.
Модифицируйте необходимым образом вашу ЕВ-диаграмгиу из ответа на вопрос 1, чтобы учесть эту ситуацию. 5. К Когда пользователеи спрашивают о том, какие данные они хотели бы отслеживать, они пе всегда помнят все, что им нужно. Пользуясь своими знаниями об операциях малого предприятия, составьте список сущностей, которые они могли забыть. Покажите потенциальные связи между этими сущностями на ЕВ-диаграмьге. Что бы вы сказали по поводу необходимости каких-либо из этих дополнительных данных для ГйгесП)р? Семантические объекты 119 Модель «сущность — связь» Семантическая объектная модель Глава 4 Семантическая объектная модель В этой главе обсуждается сел>аптическая объектная модель (зегпап11с о)>)ест щоде1), которая, так же как и модель «сущность — связь», описанная в главе 3, используется для моделирования данных. Как показано на рис.
4.1, команда разработчиков опрашивает пользователей, анализирует предоставленные ими отчеты, формы и запросы и на их основе строит пользовательскую модель данных. Эта модель данных в дальнейшем воплощается в структуре базы данных. Конкретная форма модели данных зависит от конструкций, используемых для ее построения. Если используется модель «сущность — связь», конструируемая модель будет содержать сущности, связи и т. п, В случае использования семантической объектной модели конструируемая модель будет содержать семантические объекты и связанные с ними конструкции, которые описываются в данной главе.
Модель «сущность — связь» и семантическая объектная людель подобны двум различным линзам, сквозь которые смотрят разработчики баз данных при изучении и документировании пользовательских данных. Обе линзы действуют, и обе они в конечном счете воплощаются в определенной структуре базы данных.
Однако, поскольку этн линзы не одинаковы и создают разные изображения, структура баз данных, полученных с нх помощью, может несколько различаться. Разрабатывая базу данных, вы должны решить, какой подход применять, так же как фотографу приходится решать, какую использовать линзу. Каждый подход имеет свои сильные и слабые стороны, которые мы обсудим в конце этой главы. Семантическая объектная модель была впервые представлена в третьем издании этой книги в 1988 г.
Она основана на концепциях, разработанных и опубликованных Коддом, Хамксероьс и Мак-Леодом'. Семантическая объектная модель— это молель данных. Ее не следует путать с объектно-ориентированнои обраооткой баз данных, о которой пойдет речь в главе 18. Вы узнаете, чем цели, свойства и конструкции семантической объектной модели отличаются от объектно-ориентированных баз данных. ' Е. Е.
Со~И, «Ехгепсйпх гЬе Пе!ацопе! Мозес со Сер>те Маге Мелл>пб», АСМ Тгалсасбопс ол Расаба>е ууссеаи, лекебрь 1976, с. 397 — «2«, М>сЬее1 Не>пптег пЫ Роллы >Мсьео>1, «РегаЬаее Рекспрйоп мпЬ 5РМ: А 5е>лаппо РасаЬаее Мобейь АСМ Т>асмаспогм ол Ра>аба>е ууссемд гентябрь 1981, «.351-386. Рис. 4.1. Использование различных моделей при разработке бвз данных Семантические объекты Задача приложения базы данных состоит в том, чтобы предоставлять формы, отчеты и запросы, с помощъю которых пользователи могли бы отслеживать сущности или объекты, представляющие интерес для их деятельности.
Целью ранних стадий разработки базы данных является определение того, какие вещи должны быть представлены в базе данных, задание характеристик этих вещей и установление связи между ними. В главе 3 мы называли эти вещи сущностями. В этой главе мы будем их называть селсантическиии объекта>ссс (зе>папг>с о1>)ессз), а иногда просто объектами. Слово семантический означает «смью.лозой», и семантический объект — это объект, который в определенной степени моделирует смысл пользовательских данных. Семантические объекты моделируют восприятие пользователя более точно, чем модель <сущность — связь». Мы используем со словом обьвкт прилагательное селсаптический, чтобы отличать объекты, о которых идет речь в этой главе, от объектов, которыми оперируют объектно-ориентированные языки программирования.
Определение семантических объектов Су>цностн и объекты в некоторых отношениях схожи, но у нпх есть и различия. Мы начнем со сходства. Сел>антический объект — это представление некоторой вещи, идентифицируемой в рабочей среде пользователя. Если выражаться более формально, семантический объект — это иие>саван>сая совокупность атрибутов, которая в достаточной степени оаисьтает отдельный»>е>галсе>с.
Семантические объекты 121 Атрибуты 120 Глава 4. Семантическая объектная модель Подобно сущностям, селгантические объекты групггируются в классы. У объектного класса есть имя, которое отличает его от других классов и соответствует именам вещей, представляемых этим классом.
Так, в базе данных, солержашей информацию о студентах, имеется объектный класс под названием СТУДЕНТ. Обратите внимание, что имена объектных классов, как и имена классов сущностей, пишутся заглавными буквами. Отдельный семантический объект представляет собой экземпляр класса. Например, Уильям Джонс является экземпляром класса СТУДЕНТ, а Бухгалтерия является экземпляром класса ОТДЕЛ. Подобно сущностям, объект имеет либор атрибутов.