- •База данных
- •Введение
- •1.2 Выбор и описание автоматизируемых функций
- •1.3 Первичное описание информационного обеспечения
- •1.4 Вывод
- •2 Выявление ограничений и правил поддержания целостности
- •2.1 Уровень атрибутов
- •2.3 Уровень множеств кортежей
- •2.4 Уровень базы данных
- •2.5 Вывод
- •Фио Отчество
- •3.4 Вывод
- •5.2 Спецификация ограничений и правил поддержания целостности
- •5.3 Sql-код для создания реляционной модели
- •5.4 Вывод
- •6.2 Sql-код локальных просмотров для автоматизируемых функций
- •4.Маклаков с.В. BPwinиErwin.Case-средства разработки информационных систем. — м.: диалог–мифи, 1999
5.2 Спецификация ограничений и правил поддержания целостности
Все ограничения и правила поддержания целостности были рассмотрены на предыдущих этапах, на этом этапе новых не обнаружено.
5.3 Sql-код для создания реляционной модели
CREATE TABLE Клиент
(Шифр CHAR (6) NOT NULL PRIMARY KEY,
ФИО_Фамилия CHAR (20) NOT NULL,
ФИО_Имя CHAR (20),
ФИО_Отчество CHAR (20),
Паспорт CHAR (20) NOT NULL,
Адрес CHAR (30) NOT NULL) ;
CREATE TABLE CD
(ID_экземпляра CHAR (6) NOT NULL PRIMARY KEY,
Стиль CHAR (10),
Стоимость INTEGER NOT NULL CHECK (Стоимость > 0),
Стоимость_проката INTEGER NOT NULL
CHECK (Стоимость_проката > 0) ,
Особенности_CD CHAR (30),
Код_партии CHAR (6) NOT NULL,
FOREIGN KEY Код_партии REFERENCES Партия_CD,
UPDATE OF Партия_CD CASCADES,
DELETE OF Партия_CD RESTRICTED) ;
CREATE TABLE Композиция
(Шифр CHAR (6) NOT NULL PRIMARY KEY,
Название_композиции CHAR (20) NOT NULL,
Название_исполнителя CHAR (20) NOT NULL) ;
CREATE TABLE Заказчик
(Код_организации CHAR (6) NOT NULL PRIMARY KEY, Название_организации CHAR (20) NOT NULL);
CREATE TABLE Поставщик
(Код_организации CHAR (6) NOT NULL PRIMARY KEY, Название_организации CHAR (20) NOT NULL);
CREATE TABLE Партия_CD
(Код_партии CHAR (6) NOT NULL PRIMARY KEY,
Количество_в_партии INTEGER NOT NULL
CHECK (Количество_в_партии > 0),
Название CHAR (20) NOT NULL,
Год_издания CHAR (4));
CREATE TABLE Телефон
(Номер CHAR (8) NOT NULL PRIMARY KEY,
Тип CHAR (10),
Примечание CHAR (20));
CREATE TABLE Работник_продавец
(Табельный_номер CHAR (6) NOT NULL PRIMARY KEY,
ФИО_Фамилия CHAR (20) NOT NULL,
ФИО_Имя CHAR (20),
ФИО_Отчество CHAR (20));
CREATE TABLE Работник_проверяющий
(Кодовый_номер CHAR (6) NOT NULL PRIMARY KEY,
ФИО_Фамилия CHAR (20) NOT NULL,
ФИО_Имя CHAR (20),
ФИО_Отчество CHAR (20));
CREATE TABLE Работник_оформитель
(Должность CHAR (10) NOT NULL PRIMARY KEY,
ФИО_Фамилия CHAR (20) NOT NULL,
ФИО_Имя CHAR (20),
ФИО_Отчество CHAR (20));
CREATE TABLE Продажа
(Шифр_клиента CHAR (6) NOT NULL,
ID_экземпляра CHAR (6) NOT NULL,
Шифр_продавца CHAR (6) NOT NULL,
Дата_время TIMESTAMP NOT NULL,
Количество INTEGER NOT NULL CHECK (Количество > 0) ,
FOREIGN KEY (Шифр_клиента) REFERENCES Клиент (Шифр),
FOREIGN KEY ID_экземпляра REFERENCES CD,
FOREIGN KEY (Шифр_продавца) REFERENCES
Работник_продавец (Табельный_номер),
UPDATE OF Клиент CASCADES,
DELETE OF Клиент RESTRICTED,
UPDATE OF CD CASCADES,
DELETE OF CD RESTRICTED,
UPDATE OF Работник_продавец CASCADES,
DELETE OF Работник_продавец RESTRICTED);
CREATE TABLE Сдача
(Шифр_клиента CHAR (6) NOT NULL,
ID_экземпляра CHAR (6) NOT NULL,
Шифр_проверяющего CHAR (6) NOT NULL,
Дата_время TIMESTAMP NOT NULL,
Пометки_возврата CHAR (50),
FOREIGN KEY (Шифр_клиента) REFERENCES Клиент (Шифр),
FOREIGN KEY ID_экземпляра REFERENCES CD,
FOREIGN KEY (Шифр_проверяющего) REFERENCES
Работник_проверяющий (Кодовый_номер),
UPDATE OF Клиент CASCADES,
DELETE OF Клиент RESTRICTED,
UPDATE OF CD CASCADES,
DELETE OF CD RESTRICTED,
UPDATE OF Работник_проверяющий CASCADES,
DELETE OF Работник_проверяющий RESTRICTED);
CREATE TABLE Рекламация
(Шифр_клиента CHAR (6) NOT NULL,
ID_экземпляра CHAR (6) NOT NULL,
Шифр_проверяющего CHAR (6) NOT NULL,
Причина CHAR (20) NOT NULL,
Дата_сдачи DATE NOT NULL,
Дата_проверки DATE NOT NULL,
Дата_возврата DATE NOT NULL,
Возврат CHAR (20) NOT NULL,
FOREIGN KEY (Шифр_клиента) REFERENCES Клиент (Шифр),
FOREIGN KEY ID_экземпляра REFERENCES CD,
FOREIGN KEY (Шифр_проверяющего) REFERENCES
Работник_проверяющий (Кодовый_номер),
UPDATE OF Клиент CASCADES,
DELETE OF Клиент RESTRICTED,
UPDATE OF CD CASCADES,
DELETE OF CD RESTRICTED,
UPDATE OF Работник_проверяющий CASCADES,
DELETE OF Работник_проверяющий RESTRICTED,
CHECK (Дата_сдачи <= Дата_проверки
AND Дата_проверки <= Дата_возврата));
CREATE TABLE Запись
(ID_экземпляра CHAR (6) NOT NULL,
Шифр_композиции CHAR (6) NOT NULL,
Качество_записи CHAR (10) NOT NULL,
Длительность_звучания CHAR (5) NOT NULL,
FOREIGN KEY ID_экземпляра REFERENCES CD,
FOREIGN KEY (Шифр_композиции) REFERENCES
Композиция (Шифр),
UPDATE OF CD CASCADES,
DELETE OF CD RESTRICTED,
UPDATE OF Композиция CASCADES,
DELETE OF Композиция RESTRICTED);
CREATE TABLE Заказ
(Шифр_заказчика CHAR (6) NOT NULL,
Код_партии CHAR (6) NOT NULL,
Шифр_оформителя CHAR (6) NOT NULL,
Дата_время TIMESTAMP NOT NULL,
Планируемая_дата_исполнения DATE,
Вид CHAR (10),
FOREIGN KEY (Шифр_заказчика) REFERENCES
Заказчик (Код_организации),
FOREIGN KEY Код_партии REFERENCES Партия_CD,
FOREIGN KEY (Шифр_оформителя) REFERENCES
Работник_оформитель (Должность),
UPDATE OF Заказчик CASCADES,
DELETE OF Заказчик RESTRICTED,
UPDATE OF Партия_CD CASCADES,
DELETE OF Партия_CD RESTRICTED,
UPDATE OF Работник_оформитель CASCADES,
DELETE OF Работник_оформитель RESTRICTED);
CREATE TABLE Поставка
(Шифр_поставщика CHAR (6) NOT NULL,
Код_партии CHAR (6) NOT NULL,
Шифр_оформителя CHAR (6) NOT NULL,
Дата_время TIMESTAMP NOT NULL,
Вид_оплаты CHAR (20) NOT NULL,
FOREIGN KEY (Шифр_поставщика) REFERENCES
Поставщик (Код_организации),
FOREIGN KEY Код_партии REFERENCES Партия_CD,
FOREIGN KEY (Шифр_оформителя) REFERENCES
Работник_оформитель (Должность),
UPDATE OF Поставщик CASCADES,
DELETE OF Поставщик RESTRICTED,
UPDATE OF Партия_CD CASCADES,
DELETE OF Партия_CD RESTRICTED,
UPDATE OF Работник_оформитель CASCADES,
DELETE OF Работник_оформитель RESTRICTED);