База данных

  • 20 сент. 2011 г.
  • 1479 Слова
1 Описание предметной области

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

2 Разработка схемы базы данных

Схему базы данных разработаем с помощью программы ERWin 4.0, котораясчитается одной из лучших по простоте и функциональности.
Сначала создадим логическую модель базы данных (БД), представленную на рис. 2.1.
[pic]
Рис. 2.1. – Логическая модель БД.
Затем разработаем физическую модель для СУБД Firebird. Данная СУБД относится к разряду промышленных и поддерживает все свойственные промышленным СУБД функции. Вместе с тем она распространяется бесплатно как дляразработчиков, так и для пользователей БД. Все вышеперечисленное позволяет выбрать Fireberd в качестве средства поддержки БД. Физическая модель БД представлена на рис. 2.2.
[pic]
Рис. 2.2. – Физическая модель БД.
На основе физической модели автоматически сгенерируем скрипт БД на SQL (диалект третий):
CREATE TABLE Food (
Name VARCHAR(24),
IDINTEGER NOT NULL,
Cost INTEGER,
PRIMARY KEY (ID));
CREATE TABLE Level_ (
Number INTEGER,
ID INTEGER NOT NULL,
PRIMARY KEY (ID));
CREATE TABLE Type_ (
Name VARCHAR(24),
ID INTEGER NOT NULL,
PRIMARY KEY (ID));
CREATE TABLE Block (
LiterVARCHAR(8),
ID INTEGER NOT NULL,
PRIMARY KEY (ID));
CREATE TABLE Numer (
Number INTEGER,
ID INTEGER NOT NULL,
Block INTEGER,
Type_ INTEGER,
Places INTEGER,
Level_ INTEGER,
PRIMARY KEY (ID),
FOREIGN KEY(Level_) REFERENCES Level_,
FOREIGN KEY (Type_) REFERENCES Type_,
FOREIGN KEY (Block) REFERENCES Block);
CREATE TABLE Client (
Number VARCHAR(18),
ID INTEGER NOT NULL,
Name VARCHAR(36),
PRIMARY KEY (ID));
CREATETABLE Quota (
Date_Out DATE,
ID INTEGER NOT NULL,
Date_Return DATE,
Client INTEGER,
Number INTEGER,
PRIMARY KEY (ID),
FOREIGN KEY (Number) REFERENCES Numer,
FOREIGN KEY (Client) REFERENCES Client);
CREATE TABLEResidance (
Client INTEGER,
ID INTEGER NOT NULL,
Price FLOAT,
Date_Out DATE,
Number INTEGER,
Date_Return DATE,
Food INTEGER,
PRIMARY KEY (ID),
FOREIGN KEY (Food) REFERENCES Food,
FOREIGN KEY (Number)REFERENCES Numer,
FOREIGN KEY (Client) REFERENCES Client);
CREATE TABLE Job (
Name VARCHAR(24),
ID INTEGER NOT NULL,
PRIMARY KEY (ID));
CREATE TABLE Worker (
Number VARCHAR(12),
ID INTEGER NOT NULL,
Name...
tracking img