Файл: Практикум по дисциплине базы данных Лабораторная работа n 1 Построение концептуальной модели базы данных.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.05.2024
Просмотров: 53
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Рассмотрим процесс построения концептуальной модели коммерческого банка. Предположим, в процессе управления банком главный менеджер должен оперативно получать ответы на следующие вопросы: Сколько у нас текущих счетов? Сколько сберегательных счетов? Сколько клиентов? У каких клиентов есть и текущие, и сберегательные счета? Каков процент сберегательных счетов, баланс которых не превышает 1000 долларов? Какой тип клиентов имеет самый высокий средний баланс счетов? Сколько клиентов помимо обладания текущими и сберегательными счетами брали у нас ссуды?
У банка есть текущие счета, сберегательные счета и клиенты. Мы установим подходящие отношения между ними, как показано на рис. 19.
Рис. 19. Модель данных банка: основные объекты и отношения
Сейчас мы рассматриваем следующие вопросы:
Сколько у нас текущих счетов?
Сколько сберегательных счетов?
Сколько клиентов?
Ответы на эти вопросы можно получить, просто сосчитав количество элементов каждого из трех объектных множеств. При помощи соответствующего программного обеспечения менеджер сможет задавать эти вопросы своему персональному компьютеру в любое время или же получать регулярный отчет.
Обратите внимание, насколько более понятным образом эти вопросы обрабатывает база данных, чем: традиционная файловая система. В файловой системе, не имеющей межфайловых связей, обеспечиваемых базой данных, может быть только два файла: один для сберегательных счетов и один — для текущих. В каждом из этих файлов информация о клиенте будет распределена по нескольким полям (имя клиента, адрес и т.д.). На третий вопрос — «Сколько клиентов» — может оказаться непросто ответить, поскольку нам придется извлекать данные о клиентах из двух файлов и отбрасывать повторы. В базе данных же эти данные о клиентах могут храниться отдельно, при этом будут поддерживаться нужные связи с информацией о счетах.
У кого из клиентов есть и текущие счета, и сберегательные?
На этот вопрос можно ответить только рассмотрев отношения. У клиента есть текущий счет, если он (или она) связан посредством отношения ИМЕЕТ-ТЕКУЩИЙ-СЧЕТ с некоторым элементом объектного множества ТЕКУЩИЙ-СЧЕТ. Аналогично, у клиента есть сберегательный счет, если он связан посредством отношения ИМЕЕТ-СБЕРЕГАТЕЛЬНЫЙ-СЧЕТ с некоторым элементом объектного множества СБЕРЕГАТЕЛЬНЫЙ-СЧЕТ. Наконец, у клиента есть и текущий счет, и сберегательный, если он связан посредством обоих этих отношений с некоторыми элементами объектных множеств ТЕКУЩИЙ-СЧЕТ и СБЕРЕГАТЕЛЬНЫЙ-СЧЕТ. Для того чтобы ответить на предыдущий вопрос, нам нужно просто подсчитать число клиентов, имеющих обе связи.
Мощности. На рис. 19 были намеренно опущены мощности отношений. Давайте займемся ими теперь. Допустим, мы определили мощности, как показано на рис. 20. Они означают, что у клиента не может быть более одного текущего или сберегательного счета. Каждый счет принадлежит ровно одному клиенту.
Рис 20. Мощности отношений банка
Однако такие мощности могут не отражать действительное положение вещей. Рассмотрим мощность со стороны объекта ТЕКУЩИЙ-СЧЕТ. Владеет ли каждый клиент только одним текущим счетом? АВТ, как и большинство банков, позволяет своим клиентам открывать несколько текущих счетов, однако мощности на рис. 20 этого не позволяют.
Теперь посмотрим на остальные мощности. Реально ли предположить, что счет может относиться к нескольким клиентам? Это тоже вполне вероятно, поскольку общие счета — мужа и жены или родителей и детей — весьма широко распространены. Для того чтобы отразить наше более точное восприятие действительности, мы исправили рис. 20 (рис. 21).
Рис. 21. Пересмотренные мощности отношений банка
Модель на рис. 20 неверна, поскольку не отражает наше представление о реальном банке. Для другого представления реальности модель, приведенная на рис. 20 может оказаться верной. Например, банк может позволить клиентам открывать только один текущий счет и запретить совместные счета. В этом случае рис. 20 будет верно отражать реальность такого банка. Модель верна или неверна только в том смысле, правильно ли она отражает реальность, в которой мы заинтересованы.
Обратившись к модели на рис. 21, мы можем теперь ответить на дополнительные вопросы:
У скольких клиентов по несколько текущих счетов?
Сколько у нас общих счетов?
Сколько обладателей нескольких текущих счетов имеют также сберегательные счета?
Давайте посмотрим, как ответить на первый из этих вопросов. Клиент обладает несколькими текущими счетами, если он связан посредством отношения ИМЕЕТ-ТЕКУ ЩИЙ-С ЧЕТ как минимум с двумя элементами объектного множества ТЕКУЩИЙ-СЧЕТ. Мы ответим на первый вопрос, рассмотрев каждый элемент множества КЛИЕНТ и проверив, имеет ли он такие связи, и подсчитав число таких элементов. Мы рекомендуем вам попытаться рассмотреть процесс поиска ответов на все сформулированные вопросы с помощью передвижений по диаграмме на рис. 21.
Конкретизация клиентов банка. Всегда ли клиентами банка являются люди? Клиентами банка могут быть организации: коммерческие предприятия, некоммерческие организации, церкви, правительственные учреждения. Хочет ли менеджер различать типы клиентов? Да, поскольку у разных типов клиентов могут быть разные атрибуты. Кроме того, их счета могут обладать разными характеристиками. На рис. 22 представлены две конкретизации объекта КЛИЕНТ, ФИЗИЧЕСКОЕ ЛИЦО, разумеется, включает клиентов-людей. ЮРИДИЧЕСКОЕ ЛИЦО объединяет клиентов-организации.
Рис. 22. Конкретизации объекта КЛИЕНТ
Одно из основных преимуществ использования обобщения и конкретизации состоит в том, что мы можем создавать разные атрибуты для конкретизации объектного множества, сохраняя при этом общие атрибуты объемлющего уровня. На рис. 23 показано, что у каждого клиента есть номер, который может использоваться в качестве ключа, но атрибуты физического лица могут отличаться от атрибутов юридического лица.
Рис. 23. Атрибуты типов клиентов
Давайте, модифицируем рис. 21, отразив конкретизации объекта КЛИЕНТ. Наша модификация представлена на рис. 24, который является комбинацией рисунков 21 и 23. (На этом рисунке мы опустили ромбы при обозначении отношений. Впредь мы обычно будем их опускать.) Мы также добавили атрибут БАЛАНС к каждому объектному множеству счетов.
Рис. 24. Счета клиентов разных типов
Теперь мы готовы ответить на несколько новых вопросов:
Каков процент сберегательных счетов, баланс которых не превышает 1000 долларов? Какой тип клиентов имеет самый высокий средний баланс счетов?
Ответ на второй вопрос зависит от того, что мы подразумеваем под «типом клиента». Структура нашей базы данных позволяет нам различать физические лица и юридические лица. Мы также можем определить отличия внутри объекта ЮРИДИЧЕСКОЕ ЛИЦО с помощью атрибута ТИП ОРГАНИЗАЦИИ. Например, типом организации может быть Коммерческое Предприятие, Некоммерческая Организация, Церковь или Правительственное Учреждение. Для того чтобы ответить на второй вопрос, мы начнем с объекта ФИЗИЧЕСКОЕ ЛИЦО и перейдем от него, минуя объект КЛИЕНТ, к объекту ТЕКУЩИЙ-СЧЕТ через ИМЕЕТ-ТЕКУЩИЙ-СЧЕТ. Мы проделаем это для каждого физического лица, записывая баланс. Закончив с физическими лицами, мы подсчитаем средний баланс физических лиц. Затем мы проделаем все то же самое с юридическими лицами. Для того чтобы ответить на наш вопрос, нужно только сравнить два результата.
-
ПОСТРОЕНИЕ КОНЦЕПТУАЛЬНОЙ МОДЕЛИ ДЛЯ СИСТЕМ ОБРАБОТКИ ДАННЫХ
Модель, которая была построена выше, основывались на информации, заложенной в типах вопросов, которые задают менеджеры, или управляющие. Таким образом, эти модели являются фундаментом информационно-управляющих систем.
Однако возникает необходимость разработки моделей, которые могли бы быть использованы в системах обработки данных, обрабатывающих операции, ежедневно выполняемые работниками компании.
В этом пункте рассмотрим две формы отчетов, используемых в деловых операциях многими компаниями, и покажем, как из этих форм можно вывести концептуальную модель данных. Эти формы взяты из опыта Консультационной Службы.
Описание деятельности консультационной службы
Джоан Мэнуоринг, дипломированный бухгалтер, управляет Консультационной Службой на протяжении последних десяти лет. В фирме работает шесть консультантов, которые выполняют консультационные проекты для клиентов. Над каждым проектом работает один или несколько консультантов. Работа над проектом может продолжаться от нескольких недель до нескольких месяцев, в зависимости от масштаба проекта.
Смета. Каждому клиенту, с которым заключается контракт, Джоан должна предложить план проекта. Он включает, среди прочего, тип проекта, цель, структуру задачи и структуру оплаты. Оплата в зависимости от плана, работы может сильно различаться. Она зависит от услуг, предоставляемых клиенту, а также от времени и усилий, необходимых для выполнения контракта. Вся информация о контракте сохраняется для дальнейшего использования. Обо всех изменениях, вносимых в смету, сообщается клиенту; они также записываются.
Приход. Хотя по многим контрактам на небольшие суммы расплачиваются наличными, большинство клиентов платят чеками. Оплата должна производиться по исполнении контракта, если не было согласовано предоставление кредита. Кредиты обычно оплачиваются клиентами вовремя но иногда Джоан приходится рассылать клиентам повторные счета.
Расход. Хотя многие расходы непосредственно вносятся в сумму определенного контракта, многие расходы на материалы и оборудование относятся к нескольким контрактам или производятся заранее. Оплата закупок всегда производится чеками.
Модель данных о закупках
Форма заказа фирмы Мэнуоринг, которая используется для заказа товаров, представлена на рис. 25. Она содержит название и адрес поставщика, дату, номер заказа и номер поставщика. В ней также указан инвентарный номер, товар и цена каждого товара. Общая сумма, включая налог, указана внизу.
Рис. 25. Форма заказа Консультационной Службы
Из этой формы мы можем вывести следующие объектные множества:
ПОСТАВЩИК, ЗАКАЗ, ТОВАР. Атрибуты этих трех множеств, как и отношения между ними, показаны на рис. 26. Обратите внимание на мощности отношений. Отношение между множествами ЗАКАЗ и ПОСТАВЩИК имеет мощность один-ко-многим, так как каждый заказ делается одному поставщику, но данному поставщику может быть сделано несколько заказов. Отношение ВКЛЮЧАЕТ между объектами ЗАКАЗ и ТОВАР имеет мощность много-ко-многим, так как заказ содержит несколько товаров, и товар может встречаться в нескольких заказах.
Рис. 26. Исходная модель данных о закупках Консультационной Службы
В конце концов заказ будет оплачен. Для того чтобы записать эту информацию, мы расширим модель до представленной на рис. 27. Мы добавили объектное множество ОПЛАТА с атрибутами НОМЕР ЧЕКА и ДАТА. Мощность один-к-одному обозначает, что один заказ оплачивается одним чеком.
Рис. 27. Расширенная модель данных о закупках Консультационной Службы
5. ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
В процессе выполнения самостоятельной работы по изучаемой теме необходимо выполнить два задания:
-
Построить концептуальную модель базы данных для информационно-управляющей системы.
Исходными данными для построения модели является набор вопросов, на которые должна система отвечать. Для выполнения этого задания необходимо описать предметную область. Проанализировать вопросы и определить объектные множества, отношения, атрибуты, мощности и ключи. Система должна давать ответы на все ниже перечисленные и подобные им вопросы.
-
Сколько преподавателей работает на математическом факультете? Их фамилии? Кто работает на музыкальном факультете? (3амечание «математический» и «музыкальный» факультеты взяты для примера). Ваша модель должна также отвечать на аналогичные вопросы, касающиеся факультетов социологии, политологии, инженерного и т.д.) -
Какие студенты специализируются в истории? В английском? -
Кто из преподавателей читает социологические курсы? Какие курсы они читают? -
Сколько студентов занимаются по программе Физика 201 ? Какой раздел изучает Андреа Иденс? -
Сколько студентов, чьей специальностью является немецкий язык, официально зарегистрированы на усиленной программе? Кто является преподавателем каждого из них? Следующие модели создаются для торговой фирмы. -
Какие товары имеют продажную цену более 200 долларов? Какие из них имеют закупочную цену менее 150 долларов? Какие товары произведены на Среднем Западе? Кто их изготовители? -
Кто из продавцов продал товары ценой более 200 долларов? Даты этих продаж? Какова базовая зарплата этих продавцов? Следующие модели создаются для банка. Начните с модели на рис. 21 и добавляйте к ней все, что необходимо. -
Какой процент обладателей текущих счетов банка составляют его служащие? -
Сколько кассиров имеют в банке сберегательные счета? Сколько менеджеров? Сколько кассиров не имеют таких счетов? -
Кто из менеджеров, имеющих в банке сберегательные счета, руководит служащими, имеющими в банке сберегательные счета?