Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик «разработка Базы Данных Для Ресторана» По Базам Данных (Марков А. А.).doc
Скачиваний:
63
Добавлен:
07.10.2014
Размер:
666.11 Кб
Скачать

Модель ansi-sparc

Модель ANSI – SPARC определяет три уровня абстракции: внешний, концептуальный и внутренний. Внешний уровень — уровень, на котором данные воспринимаются пользователями (интерфейсная часть). Внутренний уровень — уровень, на котором воспринимают данные операционная система и СУБД (данные в виде структур и таблиц сохраняются с использованием файлов). Концептуальный уровень представления данных предназначен для отображения внешнего уровня на внутренний и обеспечения независимости друг от друга.

Внешний уровень

База данных ресторана

Нормализованные таблицы

ID_order

date

ID_table

reserve

discount

Уникальный идентификатор

дата

Уникальный

идентификатор

Резерви-

рование

Скидка

ID_order

ID_dish

quantity

Уникальный идентификатор

Уникальный идентификатор

Количество

ID_dish

name

descr

price

kind

Уникальный идентификатор

Название

Описание

Цена

вид

ID_firm

Уникальный идентификатор

ID_table

type

smoking

busy

Уникальный идентификатор

Тип

Зона

занятость

ID_waiter

name

surname

address

tel

Уникальный идентификатор

Имя

Фамилия

адрес

телефон

ID_waiter

ID_table

Уникальный

идентификатор

Уникальный идентификатор

Концептуальный

уровень

Внутренний уровень

Реализация таблиц базы данных

create table dishes

(ID_dish int unsigned not null auto_increment primary key,

name varchar(100) not null,

descr text,

price int unsigned not null,

kind varchar(20) not null);

Физическая организация данных

Рис. 1. Модель ANSI-SPARC.

На внешнем уровне находится единый интерфейс пользователя — «База данных ресторана».

На концептуальном уровне хранятся нормализованные таблицы:

orders (ID_order, date, ID_table, reserve, discount);

order_dishes (ID_order, ID_dish, quantity);

dishes (ID_dish, name, descr, price, kind);

firm (ID_firm);

tables (ID_tables, type, smoking, busy);

waiters (ID_waiter, name, surname, address, tel);

waiter_tables (ID_waiter, ID_table);

Внутренний уровень содержит таблицы, реализованные в БД, которые будут подробно описаны ниже в разделе «Описание структуры таблиц».

Описание структуры таблиц

Разработанная ER-диаграмма была преобразована в набор таблиц. В результате множества сущностей и связи были представлены отношениями. Каждой сущности или связи на ER-диаграмме соответствует таблица, всего таблиц 7. Ниже приводится описание таблиц.

Таблица «orders» («Заказы»)

ID_order

date

ID_table

reserve

discount

Уникальный идентификатор

дата

Уникальный

идентификатор

Резерви-

рование

Скидка

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

Таблица «dishes» («Блюда»)

ID_dish

name

descr

price

kind

Уникальный идентификатор

Название

Описание

Цена

вид

Таблица содержит информацию о блюдах ресторана (меню) – номер блюда, его название, описание, цена и вид. Атрибут «kind» может принимать значения: «drink» – безалкогольный напиток, «beer» - пиво, «wine» - вино, «alcohol» - др. алкогольный напиток, «dessert» - десерт, «shashlick» - шашлык, «cold snack» - холодная закуска, «hot snack» - горячая закуска, «for_beer» - закуска к пиву, «salad» - салат, «soup» - суп, «dish» - горячее блюдо, «garnish» - гарнир, «sauce» - соус.

Таблица «order_dishes» («состав заказа»)

ID_order

ID_dish

quantity

Уникальный идентификатор

Уникальный идентификатор

Количество

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

Таблица «firm» («Фирменные блюда»)

ID_firm

Уникальный идентификатор

Таблица содержит номера фирменных блюд. Остальная информация об этих блюдах содержится в таблице «dishes» («Блюда») под теми же номерами.

Таблица «tables» («места»)

ID_table

type

smoking

busy

Уникальный идентификатор

Тип

Зона

занятость

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

Таблица «waiters» («Официанты»)

ID_waiter

name

surname

address

tel

Уникальный идентификатор

Имя

Фамилия

адрес

телефон

Таблица содержит информацию об официантах – имя, фамилия, адрес и телефон.

Таблица «waiter_tables» («официант_столики»)

ID_waiter

ID_table

Уникальный

идентификатор

Уникальный идентификатор

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

Исходные коды для создания таблиц находятся в приложении №2.