Добавлен: 19.10.2018
Просмотров: 4563
Скачиваний: 71
Примечания:
1) «М», «Ж».
2) дд.мм.гг
3 Русскоязычные фамилии, имена, отчества (первая буква прописная, остальные — строчные; возможны двойные фамилии, разделенные дефисом, многословные имена, разделенные пробелами.
4) Следующее значение (инкремент).
5) «служ», «дом», «мбл», «проч».
6) число от 3 до 5, макс 2 знака после запятой.
7) необязательный (цифровой код города) цифровой номер, допустимы разделители-дефисы.
Таблица 5.2.
Ограничения кортежей
Таблица 4.3.
Ограничения уникальности
Таблица 4.4.
Динамические ограничения
№ п/п |
Группа атрибутов |
Ограничение |
1 |
Стаж |
Стаж ←Стаж + 1 – значение атрибута «стаж» может лишь увеличиваться на единицу |
2 |
Счет в банке.Расходы в месяц. |
Расходы в месяц ← Расходы в месяц ± Х — значение атрибута «Расходы в месяц» может лишь увеличиваться |
3 |
Цена |
Цена ← Цена ± Х – значения атрибута «Цена» может увеличиваться или уменьшаться |
4 |
Договор с заказчиком.Сумма |
Сумма ← Сумма ± Х – значения атрибута «Сумма» может увеличиваться или уменьшаться |
5 |
Банк.Дата открытия счета |
Дата открытия счета ← Дата открытия счета + Х – значения атрибута «Дата открытия счета» может лишь увеличиваться. |
6 |
Дата закупки |
Дата закупки ← Дата закупки + Х – значение атрибута «дата закупки» может лишь увеличиваться. |
7 |
Дата выпуска |
Дата выпуска ← Дата выпуска + Х – значение атрибута «дата выпуска» может лишь увеличиваться. |
Таблица 4.5.
Другие ограничения
Таблица 4.6.
Операционные правила
№ п/п |
Группа атрибутов |
Ограничение |
1 |
Атрибуты, относящиеся к сотруднику: Табельный номер, Фамилия, Имя, Отчество, … и т.д. |
При удалении записи о каком-либо сотруднике все сведения о нем переносятся в архивную базу с указанием даты-времени, причины удаления и имени пользователя, выполнившего удаление. Эти сведения хранятся в архивной базе не менее 1 года, а затем могут быть автоматически удалены |
2 |
Атрибуты, относящиеся к сотруднику: Табельный номер, Фамилия, Имя, Отчество, … и т.д. |
При добавлении записи о сотруднике все сведения переносятся в базу данных, с указанием имени пользователя, выполнившего добавление. Эти сведения будут хранится вечно, если не будут удалены. |
3 |
Атрибуты, относящиеся к сотруднику: Табельный номер, Фамилия, Имя, Отчество, … и т.д. |
При обновлении записи о сотруднике все сведения перезаписываются в базе данных. «Старые сведения» переносятся в архивную базу с указанием даты-времени, причины изменения и имени пользователя, выполнившего изменение. Эти сведения хранятся в архивной базе не менее 1 года, а затем могут быть автоматически удалены |
4 |
Атрибуты, относящиеся к учебному заведению: Код учебного заведения, Факультет, Специальность и т.д. |
При удалении записи об учебном заведении все сведения переносятся в архивную базу с указанием причины удаления. Эти сведения хранятся в архивное базе в течение 1 месяца, затем автоматически удаляются. |
5 |
Атрибуты, относящиеся к учебному заведению: Код учебного заведения, Факультет, Специальность и т.д. |
При добавлении данных об учебном заведении, они переносятся в базу данных, с указанием имени пользователя, выполнившего добавление. Эти сведения будут храниться вечно, если не будут удалены. |
6 |
Атрибуты, относящиеся к учебному заведению: Код учебного заведения, Факультет, Специальность и т.д. |
При обновлении записи об учебном заведнии все сведения перезаписываются в базе данных. Старые сведения переносятся в архивную базу с указанием даты-времени, причины изменения и имени пользователя, выполнившего изменение. Эти сведения хранятся в архивной базе 1 месяц, а затем автоматически удаляются. |
7 |
Атрибуты относящиеся к клиенту: Фамилия, Имя, Отчество и т.д. |
При удалении записи о клиенте все сведения переносятся в архивную базу с указанием причины удаления. Эти сведения хранятся в архивное базе в течение 6 месяцев, затем автоматически удаляются. |
8 |
Атрибуты относящиеся к клиенту: Фамилия, Имя, Отчество и т.д. |
При добавлении данных о клиенте, они переносятся в базу данных, с указанием имени пользователя, выполнившего добавление. Эти сведения будут храниться вечно, если не будут удалены. |
9 |
Атрибуты относящиеся к клиенту: Фамилия, Имя, Отчество и т.д. |
При обновлении записи о клиенте все сведения перезаписываются в базе данных. Старые сведения переносятся в архивную базу с указанием даты-времени, причины изменения и имени пользователя, выполнившего изменение. Эти сведения хранятся в архивной базе 2 года, а затем автоматически удаляются. |
10 |
Атрибуты относящиеся к банку: Номер счета, Название банка, Сумма счета и т.д. |
При добавлении данных о банке, они переносятся в базу данных, с указанием имени пользователя, выполнившего добавление. Эти сведения будут храниться вечно, если не будут удалены. |
11 |
Атрибуты относящиеся к банку: Номер счета, Название банка, Сумма счета и т.д. |
При удалении записи о банке все сведения переносятся в архивную базу с указанием причины удаления. Эти сведения хранятся в архивное базе в течение 2 лет, затем автоматически удаляются. |
12 |
Атрибуты относящиеся к банку: Номер счета, Название банка, Сумма счета и т.д. |
При обновлении записи о банке все сведения перезаписываются в базе данных. «Старые сведения» переносятся в архивную базу с указанием даты-времени, причины изменения и имени пользователя, выполнившего изменение. Эти сведения хранятся в архивной базе не менее 1 года, а затем могут быть автоматически удалены |
13 |
Атрибуты относящиеся к оборудованию: Код оборудования, Название оборудования, Номер оборудования. |
При удалении записи об оборудовании, все сведения переносятся в архивную базу с указанием причины удаления. Эти сведения хранятся в архивной базе в течение 6 месяцев, затем автоматически удаляются. |
14 |
Атрибуты относящиеся к оборудованию: Код оборудования, Название оборудования, Номер оборудования. |
При добавлении данных об оборудовании, они переносятся в базу данных, с указанием имени пользователя, выполнившего добавление. Эти сведения будут храниться вечно, если не будут удалены. |
15 |
Атрибуты относящиеся к оборудованию: Код оборудования, Название оборудования, Номер оборудования. |
При обновлении записи об оборудовании все сведения перезаписываются в базе данных. Старые сведения переносятся в архивную базу с указанием даты-времени, причины изменения и имени пользователя, выполнившего изменение. Эти сведения хранятся в архивной базе 4 месяца, а затем автоматически удаляются. |
16 |
Атрибуты, относящиеся к производителю: Код производителя, Страна, Город и т.д. |
При удалении записи о производителе все сведения переносятся в архивную базу с указанием причины удаления, дате-времени. Эти сведения хранятся в архивной базе в течение 2 лет, затем автоматически удаляются. |
17 |
Атрибуты, относящиеся к производителю: Код производителя, Страна, Город и т.д. |
При добавлении данных о производителе, они переносятся в базу данных, с указанием имени пользователя, выполнившего добавление. Эти сведения будут храниться вечно, если не будут удалены. |
18 |
Атрибуты, относящиеся к производителю: Код производителя, Страна, Город и т.д. |
При обновлении записи о производителе данные перезаписываются в базе данных. Старые сведения переносятся в архивную базу с указанием даты-времени и имени пользователя, выполнившего изменение. Эти сведения хранятся в архивной базе 2 месяца, а затем автоматически удаляются. |
19 |
Атрибуты, относящиеся к адресу: Город, название улицы. |
При удалении записи об адресе все сведения переносятся в архивную базу с указанием причины удаления. Эти сведения хранятся в архивной базе в течение 6 месяцев, затем автоматически удаляются. |
20 |
Атрибуты, относящиеся к адресу: Город, название улицы. |
При добавлении данных об адресе, они переносятся в базу данных, с указанием имени пользователя, выполнившего добавление. Эти сведения будут храниться вечно, если не будут удалены. |
21 |
Атрибуты, относящиеся к адресу: Город, название улицы. |
При обновлении записи об адресе все сведения перезаписываются в базе данных. Старые сведения переносятся в архивную базу с указанием даты-времени, причины изменения и имени пользователя, выполнившего изменение. Эти сведения хранятся в архивной базе 2 месяца, а затем автоматически удаляются. |
22 |
Атрибуты, относящиеся к поставщику: Код поставщика, страна, город и т.д. |
При удалении записи о поставщике сведения переносятся в архивную базу с указанием даты-времени, причины удаления и имени пользователя, выполнившего удаление. Эти сведения хранятся в архивной базе в течение 5 лет, а затем автоматически удаляются. |
23 |
Атрибуты, относящиеся к поставщику: Код поставщика, страна, город и т.д. |
При добавлении записи о платеже сведения переносятся в базу данных, с указанием имени пользователя, выполнившего добавление. Эти сведения будут хранится вечно, если не будут удалены. |
24 |
Атрибуты, относящиеся к подготовке к мероприятию: набор персонала, покупка оборудования, печать рекламы и т.д. |
При добавлении данных о подготовке к мероприятию, они переносятся в базу данных, с указанием имени пользователя, выполнившего добавление. Эти сведения будут храниться вечно, если не будут удалены. |
25 |
Атрибуты, относящиеся к подготовке к мероприятию: набор персонала, покупка оборудования, печать рекламы и т.д. |
При обновлении записи о подготовке к мероприятию данные перезаписываются в базе данных. «Старые сведения» автоматически удаляются. |
26 |
Атрибуты, относящиеся к подготовке к мероприятию: набор персонала, покупка оборудования, печать рекламы и т.д. |
При удалении записи о подготовке к мероприятию все сведения переносятся в архивную базу с указанием причины удаления. Эти сведения хранятся в архивной базе в течение 6 месяцев, затем автоматически удаляются. |
27 |
Атрибуты, относящиеся к договору с заказчиком: номер договора, дата заключения, сумма и т.д. |
При обновлении записи о договоре с заказчиком, данные перезаписываются в базе данных. «Старые сведения» автоматически удаляются. |
28 |
Атрибуты, относящиеся к договору с заказчиком: номер договора, дата заключения, сумма и т.д. |
При добавлении данных, они переносятся в базу данных, с указанием имени пользователя, выполнившего добавление, даты-времени. Эти сведения будут хранится вечно, если не будут удалены. |
29 |
Атрибуты, относящиеся к договору с заказчиком: номер договора, дата заключения, сумма и т.д. |
При удалении записи о договоре с заказчиком все сведения переносятся в архивную базу с указанием причины удаления, даты-времени. Эти сведения хранятся в архивной базе в течение 2 месяцев, затем автоматически удаляются. |
Таблица 5.7
Стандартные ссылочные правила
№ п/п |
Родительская сущность |
Дочерняя сущность |
Правило удаления |
Правило обновления |
Правило вставки |
1 |
Сотрудник |
Место |
каскадное |
каскадное* |
строгое* |
2 |
Сотрудник |
Место |
Каскадное |
« |
« |
3 |
Сотрудник |
Учебное заведение |
Каскадное |
« |
« |
4 |
Сотрудник |
Контакт |
Строгое |
« |
« |
5 |
Телефон |
Контакт |
Каскадное |
« |
« |
6 |
Клиент |
Место |
Строгое |
« |
« |
7 |
Оборудование |
Закупка |
Каскадное |
строгое* |
« |
8 |
Клиент |
Контакт |
Строгое |
строгое* |
« |
9 |
Сумма |
Сумма счета |
Каскадное |
строгое* |
« |
10 |
Поставщик |
Место |
Строгое |
строгое* |
« |
11 |
Адрес |
Учебное заведение |
Каскадное |
каскадное* |
« |
12 |
Заказчик |
Номер договора |
Каскадное |
строгое* |
« |
13 |
Оборудование |
Доставка |
Каскадное |
Строгое* |
« |
Примечания: символами «*» отмечены классы правил, введенные на данном этапе.
5.3 SQL-код создания таблиц
В данном подразделе в соответствии с реляционной моделью записываются SQL-операторы CREATE TABLE, обеспечивающие создание таблиц базы данных. При этом с помощью средств задания табличных ограничений реализуются стандартные ограничения, специфицированные на предыдущем этапе в таблицах 5.1–5.3 и 5.7. При программировании ориентировались на стандартный SQL2 или на диалект Transact-SQL для Microsoft SQL Server 2000. Результаты приведены в таблице 5.8.
Таблица 5.8.
SQL-код создания таблиц базы данных
№ п/п |
SQL-операторы |
1 |
CREATE TABLE Сотрудник ( |
2 |
[Табельный номер] CHAR (6) NOT NULL, |
3 |
[Дата рождения] DATETIME NOT NULL, |
4 |
[Пол] VARCHAR (3) NOT NULL CHECK ([Пол] IN ('М','Ж'), |
5 |
[Фамилия] VARCHAR (20) NOT NULL, |
6 |
[Имя] VARCHAR (20) NOT NULL, |
7 |
[Отчество] VARCHAR (20) NOT NULL, |
8 |
CONSTRAINT PK_Сотрудник |
9 |
PRIMARY KEY ([Табельный номер]), |
10 |
CONSTRAINT UN_Табельный_номер |
11 |
UNIQUE (Табельный номер)); |
12 |
CREATE TABLE Место ( |
13 |
[Табельный номер сотрудника] CHAR (6) NOT NULL, |
14 |
[Нпп] INT (5) NOT NULL CHECK ([Нпп]>0), |
15 |
[Дата прихода] DATETIME NOT NULL, |
16 |
[Дата ухода] DATETIME, |
17 |
[Код подразделения] VARCHAR (20) NOT NULL |
18 |
CONSTRAINT PK_Место |
19 |
PRIMARY KEY ([Табельный номер сотрудника],[Нпп]), |
20 |
FOREIGN KEY ([Табельный номер сотрудника]) |
21 |
REFERENCES Сотрудник([Табельный номер сотрудника]) |
22 |
CONSTRAINT CH_Место |
23 |
CHECK ([Дата прихода]<[Дата ухода])); |
24 |
CREATE TABLE Клиент ( |
25 |
[Табельный номер сотрудника] CHAR (6) NOT NULL, |
26 |
[ФИО клиента] VARCHAR (60) NOT NULL, |
27 |
[Пол] CHAR (1) NOT NULL CHECK ([Пол] IN ('М','Ж'), |
28 |
[Дата рождения] DATETIME NOT NULL, |
29 |
CONSTRAINT PK_Клиент |
30 |
PRIMARY KEY ([Табельный номер сотрудника],[Нпп]), |
31 |
CONSTRAINT UN_ФИО_клиента |
32 |
UNIQUE (ФИО клиента); |
33 |
FOREIGN KEY ([Табельный номер сотрудника]) |
34 |
REFERENCES Сотрудник([Табельный номер сотрудника]) |
35 |
CREATE TABLE Контакт_сотрудника ( |
36 |
[Табельный номер сотрудника] CHAR (6) NOT NULL, |
37 |
[Нпп] INT (5) NOT NULL CHECK ([Нпп]>0), |
38 |
[Примечание] TEXT, |
39 |
CONSTRAINT PK_Контакт_сотрудника |
40 |
PRIMARY KEY ([Табельный номер сотрудника],[Нпп]), |
41 |
FOREIGN KEY ([Табельный номер сотрудника]) |
42 |
REFERENCES Сотрудник([Табельный номер сотрудника])); |
43 |
CREATE TABLE Телефон_сотрудника ( |
44 |
[Номер] VARCHAR (10) NOT NULL, |
45 |
[Нпп контакта] INT (5) NOT NULL, |
46 |
[Тип] VARCHAR (20) NOT NULL CHECK ([Тип] IN ('служ','дом','мбл',’проч’)), |
47 |
CONSTRAINT PK_Телефон_сотрудника |
48 |
PRIMARY KEY ([Номер],[Нпп контакта]), |
49 |
CONSTRAINT UN_Телефон_сотрудника_номер |
50 |
UNIQUE (Номер), |
51 |
FOREIGN KEY ([Нпп контакта]) |
52 |
REFERENCES Контакт([Нпп])); |
53 |
CREATE TABLE Учебное_заведение ( |
54 |
[Табельный номер сотрудника] CHAR (6) NOT NULL, |
55 |
[Код учебного заведения] INT (4) NOT NULL, |
58 |
CONSTRAINT PK_ Учебное_заведение |
59 |
PRIMARY KEY ([Табельный номер сотрудника],[Код учебного заведения], |
60 |
CONSTRAINT UN_ Учебное_заведение |
61 |
UNIQUE (Код учебного заведения), |
62 |
FOREIGN KEY ([Табельный номер сотрудника]) |
63 |
REFERENCES Сотрудник([Табельный номер сотрудника])); |
64 |
CREATE TABLE Образование ( |
65 |
[Код учебного заведения] VARCHAR (10) NOT NULL, |
66 |
[Специальность] VARCHAR (30) NOT NULL, |
67 |
[Факультет] VARCHAR (30) NOT NULL, |
68 |
[Дата поступления] DATETIME NOT NULL, |
69 |
[Дата окончания] DATETIME NOT NULL, |
70 |
[Успеваемость (средний балл)]VARCHAR (3) NOT NULL, |
71 |
CONSTRAINT PK_Образование |
72 |
PRIMARY KEY ([Код учебного заведения],[Специальность]), |
73 |
FOREIGN KEY ([Код учебного заведения]) |
74 |
REFERENCES Учебное заведение([Код учебного заведения])); |
75 |
CREATE TABLE Адрес_учебного_заведения ( |
76 |
[Код учебного заведения] VARCHAR (10) NOT NULL, |
77 |
[Город] VARCHAR (50) NOT NULL, |
78 |
[Название улицы] TEXT NOT NULL, |
79 |
CONSTRAINT PK_Адрес_учебного_заведения |
80 |
PRIMARY KEY ([Код учебного заведения],[Город]), |
81 |
FOREIGN KEY ([Код учебного заведения]) |
82 |
REFERENCES Учебное заведение([Код учебного заведения])); |
83 |
CREATE TABLE Образование ( |
84 |
[Код учебного заведения] VARCHAR (10) NOT NULL, |
85 |
[Специальность] VARCHAR (30) NOT NULL, |
86 |
[Факультет] VARCHAR (30) NOT NULL, |
87 |
[Дата поступления] DATETIME NOT NULL, |
88 |
[Дата окончания] DATETIME NOT NULL, |
89 |
[Успеваемость (средний балл)]VARCHAR (3) NOT NULL, |
90 |
CONSTRAINT PK_Образование |
91 |
PRIMARY KEY ([Код учебного заведения],[Специальность]), |
92 |
FOREIGN KEY ([Код учебного заведения]) |
93 |
REFERENCES Учебное заведение([Код учебного заведения])); |
94 |
CREATE TABLE Заказчик ( |
95 |
[Табельный номер сотрудника] CHAR (6) NOT NULL, |
96 |
[ФИО] VARCHAR (60) NOT NULL, |
97 |
CONSTRAINT PK_Заказчик |
98 |
PRIMARY KEY ([Табельный номер сотрудника],[ФИО]), |
99 |
FOREIGN KEY ([Табельный номер сотрудника], [ФИО]) |
100 |
REFERENCES Сотрудник([Табельный номер сотрудника]), Клиент ([ФИО])); |
101 |
CREATE TABLE Договор_с_заказчиком ( |
102 |
[ФИО клиента] VARCHAR (60) NOT NULL, |
103 |
[Номер договора] INT (4) NOT NULL, |
104 |
[Дата заключения] DATETIME NOT NULL, |
105 |
[Дата окончания] DATETIME NOT NULL, |
108 |
CONSTRAINT PK_Договор_с_заказчиком |
109 |
PRIMARY KEY ([ФИО клиента],[Номер договора],[Дата заключения], [Дата окончания], [Сумма]); |
110 |
CONSTRAINT UN_Договор_с_заказчиком |
111 |
UNIQUE (Дата заключения, Дата окончания, Сумма), |
112 |
FOREIGN KEY ([ФИО клиента]) |
113 |
REFERENCES Заказчик([ФИО клиента])); |
114 |
CREATE TABLE Финансовый баланс ( |
115 |
[Сумма счета] INT (4) NOT NULL, |
116 |
CONSTRAINT PK_Финансовый баланс |
117 |
PRIMARY KEY ([Сумма счета]); |
114 |
CREATE TABLE Разработка_идеи_проведения_мероприятия ( |
115 |
[Разработка идеи мероприятия]VARCHAR (60) NOT NULL, |
116 |
[Разработка дизайна рекламы] VARCHAR (60) NOT NULL, |
117 |
[Разработка дизайна униформы]VARCHAR (60) NOT NULL, |
118 |
CONSTRAINT PK_Разработка_идеи_проведения_мероприятия |
119 |
PRIMARY KEY ([Разработка идеи мероприятия],[Разработка дизайна рекламы], [Разработка дизайна униформы]), |
120 |
FOREIGN KEY ([Разработка идеи мероприятия]) |
121 |
REFERENCES Мероприятие ([Код мероприятия])); |
122 |
CREATE TABLE Подготовка_к_мероприятию ( |
123 |
[Набор персонала] VARCHAR (60) NOT NULL, |
124 |
[Обучение персонала] VARCHAR (60) NOT NULL, |
125 |
[Покупка оборудования] VARCHAR (60) NOT NULL, |
126 |
[Печать рекламы] VARCHAR (60) NOT NULL, |
127 |
[Доставка рекламы] VARCHAR (60) NOT NULL, |
128 |
[Доставка оборудования] VARCHAR (60) NOT NULL, |
129 |
CONSTRAINT PK_Кредит |
130 |
PRIMARY KEY ([Набор персонала]), |
131 |
FOREIGN KEY ([Набор персонала]) |
132 |
REFERENCES Подготовка к мероприятию ([Набор персонала]), [Покупка оборудования], [Печать рекламы]); |
133 |
CREATE TABLE Проведение мероприятия ( |
134 |
[Фотоотчет] VARCHAR (60) NOT NULL, |
135 |
[Видеоотчет] VARCHAR (60) NOT NULL, |
136 |
CONSTRAINT PK_Проведение_мероприятия |
137 |
PRIMARY KEY ([Фотоотчет]), |
138 |
FOREIGN KEY ([Видеоотчет]) |
139 |
REFERENCES Проведение мероприятия([Номер договора])); |
140 |
CREATE TABLE Ответственный_за_мероприятие ( |
141 |
[ФИО] VARCHAR (12) NOT NULL, |
142 |
[Дата рождения] DATETIME NOT NULL, |
143 |
[Пол] VARCHAR (3) NOT NULL, |
144 |
[Дата закупки] DATETIME NOT NULL, |
145 |
[ГОСТ] VARCHAR (6) NOT NULL, |
146 |
[Вид оборудования] VARCHAR (12) NOT NULL, |
147 |
CONSTRAINT PK_Ответственный_за_мероприятие |
148 |
PRIMARY KEY ([ФИО], [Дата рождения], [Пол]), |
149 |
FOREIGN KEY ([Дата закупки], [ГОСТ], [Вид оборудования]) |
150 |
REFERENCES Ответственный_за_мероприятие ([ФИО])); |
151 |
CREATE TABLE Поставщик ( |
153 |
[Код поставщика] VARCHAR (6) NOT NULL, |
154 |
[Адрес] VARCHAR (60) NOT NULL, |
155 |
[Дата закупки] DATETIME NOT NULL, |
158 |
CONSTRAINT PK_Поставщик |
159 |
PRIMARY KEY ([Код поставщика]), |
160 |
FOREIGN KEY ([Адрес], [Дата закупки]) |
161 |
REFERENCES Поставщик ([Табельный номер сотрудника])); |
162 |
CREATE TABLE Производитель ( |
160 |
[Код производителя] VARCHAR (60) NOT NULL, |
161 |
[Страна] VARCHAR (15) NOT NULL, |
162 |
[Город] VARCHAR (15) NOT NULL, |
163 |
CONSTRAINT PK_Производитель |
164 |
PRIMARY KEY ([Код производителя]), |
165 |
FOREIGN KEY ([Страна], [Город]) |
166 |
REFERENCES Производитель([Код производителя])); |
167 |
CREATE TABLE Оборудование ( |
168 |
[Код оборудования] VARCHAR (6) NOT NULL, |
169 |
[Название] VARCHAR (15) NOT NULL, |
170 |
[Тип оборудования] VARCHAR (15) NOT NULL, |
171 |
[Дата выпуска] DATETIME NOT NULL, |
172 |
[Дата закупки] DATETIME NOT NULL, |
173 |
[Срок эксплуатации] VARCHAR (15) NOT NULL, |
174 |
[ГОСТ] VARCHAR (15) NOT NULL, |
175 |
[Вид оборудования] VARCHAR (15) NOT NULL, |
174 |
CONSTRAINT PK_Оборудование |
175 |
PRIMARY KEY ([Код оборудования]), |
176 |
FOREIGN KEY ([Название], [Тип оборудования], [Дата выпуска], [Дата закупки], [Срок эксплуатации], [ГОСТ], [Вид оборудования]) |
177 |
REFERENCES Оборудование ([Вид оборудования], [Код оборудования])); |
178 |
CREATE TABLE Поставка ( |
179 |
[Дата поставки] DATETIME NOT NULL, |
180 |
[Объем поставки] VARCHAR (15) NOT NULL, |
181 |
[Содержимое поставки] VARCHAR (3) NOT NULL, |
182 |
CONSTRAINT PK_Поставка |
183 |
PRIMARY KEY ([Дата поставки]), |
184 |
FOREIGN KEY ([Объем поставки]) |
185 |
REFERENCES Поставка ([Содержимое поставки])); |
186 |
CREATE TABLE Счет_в_банке ( |
187 |
[Номер счета] VARCHAR (60) NOT NULL, |
188 |
[Название банка] VARCHAR (15) NOT NULL, |
189 |
[Сведения о задолжностях по кредитам] VARCHAR (30) NOT NULL, |
190 |
[Дата открытия] DATETIME NOT NULL, |
193 |
CONSTRAINT PK_Счет_в_банке |
194 |
PRIMARY KEY ([Номер счета],[Название банка]), |
195 |
FOREIGN KEY ([Дата открытия]) |
196 |
REFERENCES Счет_в_банке ([Номер счета])); |
197 |
CREATE TABLE Финансовый баланс ( |
198 |
[Сумма счета] INT (4) NOT NULL, |
200 |
[Расходы в месяц] INT (4) NOT NULL, |
201 |
CONSTRAINT PK_Финансовый баланс |
202 |
PRIMARY KEY ([Сумма счета]); |
203 |
FOREIGN KEY ([Расходы в месяц]) |
204 |
REFERENCES Клиент([ФИО клиента])); |
205 |
CREATE TABLE Работу_выполнил ( |
206 |
[ФИО] VARCHAR (60) NOT NULL, |
207 |
[Код работника] CHAR (6) NOT NULL, |
208 |
[Примечание] TEXT, |
209 |
[Стаж] VARCHAR (60) NOT NULL, |
210 |
[Пол] VARCHAR (6) NOT NULL, |
211 |
[Номер телефона] VARCHAR (60) NOT NULL, |
212 |
CONSTRAINT PK_Работу_выполнил |
213 |
PRIMARY KEY ([ФИО],[Код работника]), |
214 |
FOREIGN KEY ([Номер телефона]) |
215 |
REFERENCES Клиент([ФИО клиента])); |
216 |
CREATE TABLE Банк ( |
217 |
[Номер счета] VARCHAR (10) NOT NULL, |
218 |
[Название банка] VARCHAR (5) NOT NULL, |
219 |
[Сумма счета] VARCHAR (20) NOT NULL, |
220 |
CONSTRAINT PK_Банк |
221 |
PRIMARY KEY ([Номер счета]), |
222 |
FOREIGN KEY ([Название банка]) |
223 |
REFERENCES Счет в банке([Название банка])); |
224 |
CREATE TABLE Рекламная_продукция ( |
225 |
[Код работы] VARCHAR (60) NOT NULL, |
226 |
[Вид работы] VARCHAR (25) NOT NULL |
227 |
[Время выполнения] VARCHAR (60) NOT NULL, |
228 |
[Дата выполнения] DATETIME NOT NULL, |
229 |
[Стоимость] VARCHAR (60) NOT NULL, |
230 |
[Разработка дизайна рекламной продукции] VARCHAR (60) NOT NULL, |
231 |
[Печать рекламы] VARCHAR (60) NOT NULL, |
232 |
[Покупка оборудования] VARCHAR (60) NOT NULL, |
233 |
[Доставка рекламы] VARCHAR (60) NOT NULL, |
234 |
[Доставка оборудования] VARCHAR (60) NOT NULL, |
235 |
CONSTRAINT PK_Рекламная_продукция |
236 |
PRIMARY KEY ([Код работы],[Дата выполнения]), |
237 |
FOREIGN KEY ([Вид работы]) |
238 |
REFERENCES Продукция ([Вид работы])); |
5.4 Вывод
В результате проектирования глобальной реляционной модели, соответствующей глобальной ER-модели, получена графическая модель, включающая 21 сущностей-таблиц. Разработанные спецификации ограничений и операционных правил включают все ограничения и правила, полученные на предыдущем этапе и трансформированные для реляционной модели; дополнительно на данном этапе введено 1 ограничение и 0 правил. В результате программирования разработан программный SQL-код, обеспечивающий создание 21 таблиц базы данных и реализующий 300 стандартных ограничений целостности.
Рисунок 5.1 Глобальная реляционная модель базы данных (конец)