Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kurs_main.doc
Скачиваний:
1
Добавлен:
07.09.2019
Размер:
2.57 Mб
Скачать

4.1 Обоснование выбора субд

Модель данных СУБД – это инструмент представления концептуальной модели предметной области и динамики ее изменения в виде базы данных.

Важнейшим понятием концептуальной модели является понятие связи между объектами. В моделях данных СУБД соответствующее понятие отражается понятием "групповое отношение".

Групповое отношение – поименованное бинарное отношение, заданное на двух множествах экземпляров рассматриваемых групп. По характеру бинарных связей различают групповые отношения вида 1:1, 1:∞, ∞:∞. Пары чисел называют коэффициентами группового отношения. В групповом отношении один член группы назначается владельцем отношения, другой – членом.

Модель данных СУБД бывает двух видов:

  1. Графовая. Группы изображаются вершинами графа, связи между группами – дугами, направленными от группы-владельца к группе-члену с указанием имени отношения и коэффициента.

  2. Табличная. Связь между группами изображается таблицей, столбцы которой представляют ключи соответствующих групп. Соответствующая модель данных называется реляционной моделью.

На следующей стадии, после того, как выбрана определенная СУБД с конкретной моделью данных, необходимо записать концептуальную схему в терминах и понятиях выбранной СУБД. На этой стадии каждая сущность концептуальной модели описывается как запись, состоящая из полей. Каждый атрибут описывается как поле с типом и характеристиками, возможными в выбранной СУБД. Описываются связи концептуальной модели в понятиях, соответствующих выбранной СУБД, определяется порядок реализации запросов пользователей к базе данных с помощью типовых операций СУБД и т.д.

Результатом этой стадии проектирования будет концептуальная модель, специфицированная к конкретной СУБД.

Для организации заданной базы данных выбрана СУБД MS Access 2003. Специфицированная концептуальная модель представлена на рисунке 4.1.

Рассмотрим связь между таблицами.

Между таблицами установлены связи 1: ∞.

Во всех связях присутствует обеспечение целостности данных.

Каскадное удаление не установлено в связях «Аптека» - «Владелец», «Медикамент» - «Тип», «Медикамент» - «Препарат» и «Медикамент» - «Изготовитель», т.к. даже при удалении медикамента нам нужна информация о типах, препаратах и изготовителях. Во всех остальных связях есть каскадное удаление, т.к. не имеет смысла хранить информацию о поступлении медикамента без медикамента.

Каскадное обновление установлено во все связях, т.к. в поле подстановок для каждого поля присутствуют не только первичные ключи (счетчики), а в связанных таблицах мы должны иметь возможность пользоваться измененными данными.

Рисунок 5.1 – Схема базы данных

Рисунок 4.1 – Схема базы данных

4.2 Описание таблиц

База данных в СУБД MS Access представлена совокупностью таблиц, хранящих информацию о предметной области.

Для реализации СУБД «Сеть аптек» было разработано семь таблиц, хранящих информацию о владельцах, аптеках, изготовителях и медикаментах.

Таблица Аптека, изображенная на рисунке 4.2, хранит список аптек

Поле Название – текстовое поле, длинною 15 символов. Является обязательным полем и совпадения не допускаются.

Поле № Аптеки – текстовое поле, длинною 3 символа, формат поля \99\L. Является обязательным полем и совпадения не допускаются.

Поле Адрес – текстовое поле, длинною 40 символов. Является обязательным полем и совпадения не допускаются.

Поле Телефон – текстовое поле, длинною 9 символов, маска ввода 000"-"00"-"00. Является обязательным полем и совпадения не допускаются.

Поле Лицензия – текстовое поле, длинною 6 символов, маска ввода LL " "000. Является обязательным полем и совпадения не допускаются.

Поле Владелец – числовое поле, имеет тип Длинное целое, является внешним ключом таблицы «Владелец», обязательное для ввода, допускаются совпадения, подстановкой в поле помещается поле «владелец» из таблицы «Владелец». Хранит владельца, которому принадлежит аптека.

Поле #Код аптеки – первичный ключ таблицы, имеет тип счетчик, совпадения не допускаются.

Рисунок 4.2 – Таблица «Аптека»

Таблица Владелец, изображенная на рисунке 4.3, содержит информацию о всех владельцах.

Поле ФИО – текстовое поле длинною 35 символов, обязательное для ввода, повторения не допускаются, пустые строки также не допускаются. Хранит ФИО владельца.

Поле Дата рождения – имеет тип Дата/время. Есть условие на ограничение <Date(), так как дата рождения не может быть больше текущей даты. Является обязательным полем и совпадения не допускаются.

Поле Страховка – текстовое поле, длинною 5 символов, маска ввода LL" "000, необязательное для ввода, совпадения не допускаются.

#Код Владельца – первичный ключ данной таблицы, имеет тип счетчик. Обязательное для заполнения, совпадения не допускаются.

Рисунок 4.3 – Таблица «Владелец»

Таблица Изготовитель, изображенная на рисунке 4.4, хранит информацию об изготовителях.

Поле Название – текстовое поле, длинною 15 символов. Является обязательным полем и совпадения не допускаются.

Поле Телефон – текстовое поле, длинною 9 символов, маска ввода 000"-"00"-"00. Является обязательным полем и совпадения не допускаются.

Поле Адрес – текстовое поле, длинною 40 символов. Является обязательным полем и совпадения не допускаются.

Поле #Код изготовителя – первичный ключ таблицы, имеет тип счетчик. Обязательное для заполнения, совпадения не допускаются.

Рисунок 4.4 – Таблица «Изготовитель»

Таблица Медикамент, изображенная на рисунке 4.5, хранит информацию о медикаментах, которые имеются в аптеки.

Поле Название – текстовое поле длинною 20, обязательное для заполнения, пустые строки не допускаются, совпадения не допускаются. Хранит названия медикаментов.

Поле Тип – числовое поле, имеет тип Длинное целое, является внешним ключом таблицы «Тип», обязательное для ввода, не допускаются совпадения, подстановкой в поле помещается поле «тип» из таблицы «Тип». Хранит тип медикамента.

Поле Цена – имеет денежный тип, формат поля 0 "грн." Является обязательным полем и совпадения не допускаются. Хранит цену медикаментов.

Поле Изготовитель – числовое поле, имеет тип Длинное целое, является внешним ключом таблицы «Изготовитель», обязательное для ввода, не допускаются совпадения, подстановкой в поле помещается поле «изготовитель» из таблицы «Изготовитель». Хранит информацию о изготовителях.

Поле Препарат – числовое поле, имеет тип Длинное целое, является внешним ключом таблицы «Препарат», обязательное для ввода, не допускаются совпадения, подстановкой в поле помещается поле «препарат» из таблицы «Препарат». Хранит название препарата.

Поле #Код медикамента – является первичным ключом таблицы, имеет тип счетчик, совпадений не допускает.

Рисунок 4.5 – Таблица «Медикамент»

Таблица Поступает, изображенная на рисунке 4.6, необходима для того, чтобы какой медикамент в какую аптеку поступает.

Поле Дата поступления – имеет тип Дата/время, условие ограничения <Date(), так как дата поступления не может быть больше текущей даты. Является обязательным полем и совпадения не допускаются.

Поле Кол-во – имеет числовое поле. Является обязательным полем и совпадения не допускаются. Есть условие ограничения >0, так как кол-во не может быть меньше 0. Необходим для того, чтобы знать какое кол-во препаратов поступает в аптеку.

Поле Аптека - числовое поле, имеет тип Длинное целое, является внешним ключом таблицы «Аптека», обязательное для ввода, не допускаются совпадения, подстановкой в поле помещается поле «аптека» из таблицы «Аптека». Хранит в какую аптеку поступает медикамент.

Поле Медикамент - числовое поле, имеет тип Длинное целое, является внешним ключом таблицы «Медикамент», обязательное для ввода, не допускаются совпадения, подстановкой в поле помещается поле «медикамент» из таблицы «Медикамент». Хранит какой медикамент поступает в какую аптеку.

Поле #Код поступления – первичный ключ данной таблицы, имеет тип счетчик, совпадения не допускаются.

Рисунок 4.6 – Таблица «Поступает»

Таблица Препараты, изображенная на рисунке 4.7, хранит информацию о каждом препарате.

Поле Название – текстовое поле, длинною 20 символов. Является обязательным полем, пустых строк не допускается, совпадения допускаются.

Поле Дата изготовления – имеет тип Дата/время. Есть условие ограничения <Date(). Является обязательным полем и совпадения не допускаются.

Поле Рецепт – текстовое поле, длинною 12 символов. Является необязательным полем и совпадения допускаются.

Поле #Код препарата – первичный ключ таблицы, имеет тип последовательный счетчик, совпадения не допускаются.

Рисунок 4.7 – Таблица «Препараты»

Таблица Тип, изображенная на рисунке 4.8, хранит тип медикаментов, которые хранятся в аптеке.

Поле Название – – текстовое поле, длинною 14 символов. Является обязательным полем и совпадения не допускаются. Хранит название препарата.

Поле #Код типа – имеет тип счетчик, так как является первичным ключом таблицы, совпадения не допускаются.

Рисунок 4.8 – Таблица «Тип»

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]