Создание базы данных аптеки

Автор работы: Пользователь скрыл имя, 31 Октября 2009 в 12:31, Не определен

Описание работы

База данных

Файлы: 1 файл

Аптека. Обслуживание по заказам медицинских учреждений (2).doc

— 50.00 Кб (Скачать файл)

АПТЕКА: ОБСЛУЖИВАНИЕ ПО ЗАКАЗАМ  МЕДИЦИНСКИХ УЧРЕЖДЕНИЙ. 

Дадим имена  атрибутам, определим домена для  них и выпишем универсальное  отношение для данной предметной области. Декларируем функциональные зависимости между атрибутами.

Задана следующая  информация о поставках комплектующих изделий со склада по заказам предприятий:

  • Название препарата
  • Назначение препарата
  • Разновидность
  • Количество штук для каждого хранящегося на складе аптеки изделия
  • Отпускная цена
  • Наименование медицинского учреждения – заказчика
  • Адрес учреждения
  • Количество штук заказываемого препарата
  • Дата заказа
  • Дата поставки

Заголовок универсального отношения

Препар Разн Кол С Цена Мед Уч Адрес Назнач Кол Зак Дата З Дата П

     D1          D2         D3       D4             D5          D6            D10       D7         D8                 D 9

Обозначили домены для атрибутов.

D1, D2, D10 перечислимые домены (конечные множества конечных значений)

D3 и  D7 множества целых чисел, больших или равных 1.

D4 - множество значений денежного типа.

D6 и D5 – множества значений символьного типа

D9 и D8 – множества значений типа дата – время

Исходя из ограничений  предметной области можно декларировать  следующие ФЗ:

(Препар, Разн, Назнач)     Кол С; (Препар, Разн, Назнач)      Цена;

Адрес        Мед Уч; (Адрес, Препар, Разн, Назнач, Дата З)      Кол Зак;

(Адрес, Препар, Разн, Назнач, Дата З)      Дата П. 

Ограничения:

  • Название препарата уникально;
  • Для каждого препарата есть несколько разновидностей;
  • Адрес учреждения уникален;
  • В одном заказе медицинское учреждение может заказать один препарат.
 

Выделим и классифицируем сущности и связи. Затем, пользуясь  ограничениями модели, выберем для  каждой сущности ключи, т.е спроектируем инфологическую модель. Проектные решения  опишем на ЯИМ.

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

Стержни:

ВИДЫ (Код вида, Разновидность)

НАЗНАЧЕНИЕ (Код назначения, Назначение)

ПРЕПАРАТЫ (Код препарата, Препарат, Код вида, Код назначения)

ТИП УЧРЕЖДЕНИЯ (Код типа учреждения, Тип учреждения) 

Обозначения:

МЕДИЦИНСКИЕ УЧРЕЖДЕНИЯ (Код учреждения, Адрес, Учреждение, Код типа учреждения)[ТИП УЧРЕЖДЕНИЯ]

ХРАНИЛИЩЕ (Код препарата, Количество на складе, Цена)[ПРЕПАРАТЫ]

ПОСТАВКИ (Номер заказа, Дата поставки)[ЗАКАЗЫ] 

Ассоциации:

ЗАКАЗЫ [МЕДИЦИНСКИЕ УЧРЕЖДЕНИЯ N, ХРАНИЛИЩЕ M] (Номер заказа, Код учреждения, Код препарата, Количество заказа, Дата заказа) 
 

Опишем  проектные решения  в виде операторов CREATE  TABLE SQL: 

CREATE TABLE ВИДЫ                                              --стержень

     (Код вида INTEGER PRIMARY KEY,

       Разновидность CHAR(15)) NOT NULL UNIQUE,

CHECK (Разновидность IN (“Таблетки”, “Капсулы”, “Порошок”, “Суспензии”, “Раствор”, “Мазь”, “100 шт/уп”))); 

CREATE TABLE НАЗНАЧЕНИЕ  

     (Код препарата INTEGER PRIMARY KEY,

      Назначение CHAR(250) NOT NULL); 

CREATE TABLE ПРЕПАРАТЫ                                   

     (Код препарата INTEGER PRIMARY KEY,

      Препарат CHAR(70) NOT NULL,

FOREIGN KEY (Код вида) REFERENCES ВИДЫ,

ON UPDATE CASCADE,

ON DELETE RESTRICT,

CHECK(ПРЕПАРАТЫ IN(“МЕТРОГИЛ”,КОРВАЛОЛ”,НОВОКАИН”,                                          “АНАФЕРОН”,СТОПТУССИН”,ПРЕДНИЗОЛОН”,ПАНТОГАМ “,” ГАСТАЛ” ,ПЕРЧАТКИ DERMAGRIP”,АЦЕТИЛСАЛИЦИЛОВАЯ КИСЛОТА”, “АНТИГРИППИН”)),

CHECK(Количество на складе аптеки>=1));

CREATE TABLE ТИП УЧРЕЖДЕНИЯ

     (Код типа учреждения INTEGER PRIMARY KEY,

      Тип учреждения CHAR(250) NOT NULL); 
 

CREATE TABLE ХРАНИЛИЩЕ                                     --обозначения                                    (Код препарата INTEGER PRIMARY KEY,

      Код вида INTEGER NOT NULL,

      Количество на складе аптеки INTEGER NOT NULL,

      Цена CURRENCY NOT NULL,

FOREIGN KEY (Код препарата) REFERENCES ПРЕПАРАТЫ,

ON UPDATE CASCADE,

ON DELETE RESTRICT; 

CREATE TABLE МЕДИЦИНСКИЕ УЧРЕЖДЕНИЯ

     (Код учреждения INTEGER PRIMARY KEY,

      Адрес CHAR (255) NOT NULL UNIQUE,

      Учреждение CHAR(250) NOT NULL); 

--Ассоциация  между МЕДИЦИНСКИЕ УЧРЕЖДЕНИЯ и ХРАНИЛИЩЕ

 CREATE TABLE ЗАКАЗЫ

      (Номер заказа INTEGER PRIMARY KEY,

       Код учреждения INTEGER NOT NULL,

       Код препарата INTEGER NOT NULL,

       Количество заказа INTEGER NOT NULL,

       Дата заказа DATE NOT NULL,

FOREIGN KEY (Код препарата) REFERENCES ХРАНИЛИЩЕ,

ON UPDATE CASCADE,

ON DELETE CASCADE,

FOREIGN KEY (Код учреждения) REFERENCES МЕДИЦИНСКИЕ УЧРЕЖДЕНИЯ,

ON UPDATE CASCADE,

ON DELETE RESTRICT,

CHECK (Количество заказа>=1)); 

CREATE TABLE ПОСТАВКИ                                

      (Номер заказа INTEGER PRIMARY KEY,

        Дата поставки DATE NOT NULL,

FOREIGN KEY (Номер заказа) REFERENCES ЗАКАЗЫ,

ON UPDATE CASCADE,

ON DELETE RESTRICT); 
 

Информация о работе Создание базы данных аптеки