Теория и практика построения баз данных (1088289), страница 16
Текст из файла (страница 16)
Если же пользовательская модель данных отображена в локументированной модели неалекватно, то приложение вряд лн приблизится к тому, что действительно нужно пользователям. Моделирование в многопользовательских системах Процесс моделирования ланпых еще больше усложняется в многопользователь- ских коллективных и организационных базах данных, поскольку различные пользователи могут представлять себе различные модели данных. Эти модели 7Б Глава 2.
Введение э разработку баз данных Вопросы г группы 77 могут оказаться несогласованными, хотя в большинстве случаев несоответствия между ними могут быть устранены. Например, пользователи могут употреблять один и тот же термин для разных вещей или различные термины для одной и той же вещи, Но иногда имеющиеся различия не дают возможности согласованного решения. В таких случаях разработчик базы данных должен документировать эти различия и помочь пользователям разрепшть нх, а это, как правило, означает, что некоторым людям придется изменить свой взгляд на мнр.
Недоразумения по поводу термина «модель» В следующих двух главах представлены два альтернативных средства для построения моделей данных: модель «сущность — связь» и семантическая объектная модель. Обе модели представляют собой структуры для описания и документирования требований пользователя к данным. Чтобы избежать недоразумений, обратите внимание на различное использование термина модель.
Команда разработчиков анализирует требования и строит пользоваигв»гьскую моделг даииых, пли лгодвль трвбоваггий к данным (гег)пггегпепсз дага гподе1). Эта модель является представлением требований пользователя к структуре и связям объектов, которые должны храниться в базе данных. Для создания пользовательской модели данных команда разработчиков использует средства, которые называются моделью «сущность — связь» и семантической обьвкгииой моделью.
Эти средства состоят из языковых и изобразительных стандартов для представления пользовательской модели данных. Их роль в разработке баз данных подобна той роли, которую выполняют алгоритмы и псевдокод в программировании. Резюме Компонентами системы базы данных являются база данных, СУБД н прикладные программы, с которыми работангг как пользователи, так и разработчики. База данных состоит нз данных, метаданных, индексов и метаданных приложения. Большинство современных баз данных представляют данные в виде отношений, или таблиц, хотя не все отношения одинаково желательны.
Нежелательные отношения могут быть преобразованы в два или более желательных с помощью процесса, называемого нормализацией, Метаданные часто хранятся в специальных таблицах, которые называются системными таолицами, Характеристики и функции СУБД можно сгруппировать в три подсистемы. С ггомосцькг подсистемы средств проектирования определяется структура базы данных, приложений и их компонентов. Фуггкцией подсистемы обработки является материализация форм, отчетов и запросов путем чтения нли записи данных в базу.
Ядро СУБД является посредником между двумя другими подсистемами и операционной системой. Она принимает запросы, выраженные в терминах таблиц, строк и столбцов, и преобразует их в запросы на физическое чтение и запись. Схема — это описание структуры базы данных. Она включает в себя описание таблиц, связей и доменов, а также деловой регламент. Строки одной таблицы могут быть связаны со строками других таблиц. В этой главе проиллюстрирована связь вида 1:гч' между двумя таблицами; как вы увидите из следующей главы, есть и другие типы связей. Домен — это множество значений, которые может иметь столбец. Мы должны указывать домен для каждого столбца каждой таблицы. Наконец, деловой регламент — это ограничения па виды деловой активности, которые должны быть отражены в базе данных и ее приложениях.
Для создания табличных структур, определения связей и создания форм, запросов, отчетов и меню используются средства, предоставляемые СУБД. СУБД также включают в себя средства для взаимодействия с прикладныащ программамп, наннсаннымп либо на входном языке СУБД, либо на стандартных языках, таких как йагга. Поскольку база данных является моделью пользовательской модели деловой активности, разработка базы данных начинается с изучения н записи этой модели.
Иногда опа выражается в форме прототипов будущего приложения или компонентов приложения. Два общих стиля разработки таковы: разработка сверху вниз, которая идет от общего к частному, и разработка снизу вверх, которая идет от частного к общему. В первом случае приложения разрабатываются с глобальной перспективой, зато во втором случае разработка идет быстрее. Иногда используется комбинация этих двух подходов. Модели данных конструируются путем делания выводов из высказываний пользователя. Собираются формы, отчеты и запросы, и на их основании разработчики делают вывод о структурах, существующих в воображении пользователей. Это необходимо, поскольку болынииство пользователей не способны непосредственно описать свои модели данных.
Моделирование данных может быть особенно затруднительным в многопользовательских приложениях, где представления различных пользователей могут противоречить друг другу, и ни один пользователь не может представить себе всю картину деловой активности. Термин модель даггггых используйся двояко: он может означать как модель пользовательских представлений о дагсных, так и средства, используемые для описания этих представлений. Вопросы ! группы 1. Назовите основные компоненты системы базы данных и кратко поясните функцию каждого из них. 2.
Приведите пример опгошения (отличный от представленного в этой главе), обновление которого может быть сопряжено с проблемами. В качестве образца используйте отношение й1. 78 Вопросы к проекту РКео0р 78 Глава 2. Введение в разработку баз данных 3. Преобразуйте отношение из вашего ответа на вопрос 2 в два или более от- ношения, для которых проблем при обновлении не возникнет. В качестве образца используйте отношения 22 и КЗ. Поясните роль, которую играют метаданные и системные таблицы. 5. Какова функция индексов? В каких случаях нх применение оправдано и чем приходится за них платить? 6. Какова функция метаданных приложения? В чем пх отличие от метаданных? 7.
Дайте описание характеристик и функций подсистемы средств разра ботки СУБД. 8. Дайте описание характеристик и функций подсистемы обработки СУБД. 9. Дайте описание характеристик и функций ядра СУБД. 10. Что ~акое схема базы данных? Перечислите ее компоненты. 11. Как представляются связи в проекте реляционной базы данных? Привели- те пример двух таблиц, имеющих связь вида 1:Ы, и объясните, каким образом эта связь отражается на данных. 12.
Что такое домены и зачем онп нужны? 13. Что такое деловой регламент? Приведите пример делового регламента для отношений из вашего ответа на вопрос 11. 14. Что такое внешний ключ? Какой столбец (или столбцы) отношений пз вашего ответа на вопрос 11 является внешним ключом? 15. Опишите назначение форм, отчетов, запросов и меню. 16.
Поясните разницу между запросом по образцу и запросом по форме. 17. Какова первая важнейшая задача при разработке базы данных и ее приложений? 18. Какую роль играют прототипы? 19. Опишите процесс разработки базы данных сверху вниз. Каковы его преимущества и недостатки? 20. Опишите процесс разработки базы данных снизу вверх. Каковы его пре- имущества и недостатки? 21. Дайте два различных толкования термина модель данных. Вопросы П группы 22. Реализуй~в базу данных с отношениями САРТА1Н и 1ТЕМ в любой СУБД к которой у вас есть доступ.
Используйте средства, предлагаемые данной СУБД, для ввода данных в каждое из этих двух отношений. С помощью средств, предоставляемых СУБД, создайте и обработайте запрос, который показывает список инвентаря, выданного на руки до 1 сентября 2001 г., но еще не возвращенного. Распечатайте для такого инвентаря имя капитана, сго номер телефона, а также количество и описание. 23. Поговорите с профессиональным разработчиком приложений баз данных и выясните, какой процесс он использует для разработки баз данных. Разработка ли это сверху вниз, снизу вверх или какая-то другая стратегия? Как этот разработчик строит модели данных и какие средства он для этого использует? Каковы главные проблемы, возникающие при разработке базы данных? 24.
Проанализируйте утверждение: «База данных — это модель пользовательской модели реальности». В чем его отличие от утверждения «База данных — это модель реальности»? Представьте себе, что у двоих разработчиков возник спор по повалу модели данных, и один из них заявляет: «Моя модель лучше представляет реальность».
Что этот разработчик подразумевает в действительности? Какие отличия могут возникнуть, если разработчик более склонен верить первому утверждению, чем второму? Вопросы к проекту Г1гед0р Рассмотрим ситуацию с компанией Р1геоПр, с ко~эрой вы познакомились в первой главе. С каждой горелкой покупатель получает бланк регистрации продукта, содержащий следующие данные: имя покупателя, почтовый адрес (улица, дом, квартира, город, штат, почтовый индекс, страна), адрес электронный почты, телефон, дата покупки и серийный номер.
Предположим, что Р1геЮр решает созда~ь персональную базу данных со гчедующими таблицами: КЛИЕНТ (Имя, Улица, Дом, Квартира, Город, Штат, ПочтовыйИндекс, Страна, ЗлектронныйАдрес, Телефон) и ПОКУПКА (ДатаПокупки, СерийныйНомер). 1. Создайтс таблицу с данными, структура которой будет соответствовать таблице КЛИЕНТ. В таблице должно быть по мсныпей мере четыре строки. (Для ответа на вопросы 1-7 достаточно внести данные в текстовом редакторе.) 2. Какой из столбцов таблицы КЛИЕНТ можно использовать дчя однозначной идентификации строки в таблице? Такой столбец иногда называется первичпын ключом, как вы позже узнаете из этой книги. 3. Создайте таблицу с данными, структура которой будет соответствовать таблице ПОКУПКА.