· 5 years ago · May 23, 2020, 03:18 PM
1-- Лабораторная работа №3, дисциплина "Базы данных", СПбГУАП, весенний семестр 2020
2-- Fedoriy D.A.//4742
3
4-- Включение форсирования ограничений ссылочной целостности
5PRAGMA foreign_keys = ON;
6
7-- ОХимия схемы данных
8-- DROP TABLE IF EXISTS Table1 ...
9-- ваш код здесь!
10DROP TABLE IF EXISTS Клиент;
11DROP TABLE IF EXISTS Заказ;
12DROP TABLE IF EXISTS Сотрудник;
13DROP TABLE IF EXISTS Материал;
14DROP TABLE IF EXISTS Тип;
15DROP TABLE IF EXISTS Вещь;
16DROP TABLE IF EXISTS Результат;
17DROP TABLE IF EXISTS Попытка;
18DROP TABLE IF EXISTS ХимияДляПопытки;
19DROP TABLE IF EXISTS Химия;
20-- Конец очистки
21
22-- Создание схемы данных
23-- CREATE TABLE Table1 ...
24Create Table Клиент (
25Телефон char(12) not null,
26ФИО varchar(40) not null,
27ДатаРождения date not null,
28Пол char(1),
29Email varchar(40),
30Primary key(Телефон));
31
32Create Table Сотрудник (
33id integer not null check (id>0),
34ФИ varchar(30) not null,
35Материал varchar(80) not null,
36Оклад decimal(10,2) not null check (Оклад>0);
37Primary key(id));
38
39Create Table Заказ (
40Стоимость decimal(10,2) not null check (Стоимость>0),
41ТелефонКлиента char(12) not null references Клиент(Телефон),
42КодСотрудника integer not null references Сотрудник(id),
43ПриемЗаказа date not null,
44ФактДата date not null,
45НомерЗаказа integer not null,
46Компенсация decimal(10,2) not null,
47Primary key(НомерЗаказа),
48Check (Планируемый_срок>date(Дата_приёма_заказа, '+ 2 DAY')) and (Стоимость>decimal(10,2)Компенсация));
49
50Create Table Материал (
51МатериалВещи varchar(20) not null,
52КомпенсацияМатериала decimal(10,2) not null,
53Primary key(МатериалВещи));
54
55Create Table Тип (
56ТипВещи varchar(20) not null,
57МатериалВещи varchar (20) not null references Материал(МатериалВещи),
58КоэффКомпенсации decimal(10,2) not null check (КоэффКомпенсации>0),
59ТребованияОбработки char(25) not null,
60Primary key(ТипВещи, МатериалВещи),
61Foreign key(МатериалВещи));
62
63Create Table Вещь (
64КодЗаказа integer not null references Заказ(НомерЗаказа),
65Наименование integer not null,
66ТипВещи varchar(20) not null references Тип(ТипВещи),
67МатериалВещи varchar (20) not null references Тип(МатериалВещи),
68Primary key (КодЗаказа, Наименование),
69Foreign key (КодЗаказа, ТипВещи, МатериалВещи));
70
71Create Table Результат (
72Результат varchar(35) not null primary key);
73
74Create Table Попытка (
75КодСотрудника integer not null references Сотрудник(id),
76НомерПопытки integer not null,
77ДатаПопытки date not null,
78КодЗаказа integer not null references Вещь(НомерЗаказа),
79НаименованиеВещи integer not null references Вещь(Наименование),
80РезультатДляВещи varchar(30) not null primary key references Результат(Результат),
81Primary Key(НомерПопытки, КодЗаказа, НаименованиеВещи),
82Foreign key(КодСотрудника, КодЗаказа, НаименованиеВещи, РезультатДляВещи));
83
84Create Table Химия (
85Название varchar(30) not null,
86Primary key(Название));
87
88Create Table ХимияДляПопытки (
89Название varchar(30) not null references Химия(Название),
90НомерПопытки integer not null references Попытка(НомерПопытки),
91КодЗаказа integer not null references Попытка(КодЗаказа),
92НаименованиеВещи integer not null references Попытка(НаименованиеВещи),
93Foreign key (НомерПопытки, КодЗаказа, НаименованиеВещи, Название));
94-- Конец заполнения схем данных