Добавлен: 19.10.2018
Просмотров: 5597
Скачиваний: 75
Примечания:
1) «М», «Ж».
2) дд.мм.гг
3 Русскоязычные фамилии, имена, отчества (первая буква прописная, остальные — строчные; возможны двойные фамилии, разделенные дефисом, многословные имена, разделенные пробелами.
4) Следующее значение (инкремент).
5) «служ», «дом», «мбл», «проч».
6) число от 3 до 5, макс 2 знака после запятой.
7) необязательный (цифровой код города) цифровой номер, допустимы разделители-дефисы.
Таблица 5.2.
Ограничения кортежей
|
№ п/п |
Группа атрибутов |
Ограничение |
|
1 |
Дата рождения, Дата прихода |
Дата прихода – Дата рождения >= 25 лет |
|
2 |
Дата прихода, Дата ухода |
Дата ухода > Дата прихода |
|
3 |
Дата поступления, Дата окончания |
Дата окончания>Дата поступления |
|
4 |
Успеваемость |
Успеваемость<=5 |
|
5 |
Дата заключения, Дата окончания |
Дата заключения > Дата окончания |
|
6 |
Дата прихода, Дата ухода, Стаж |
Стаж >= Дата ухода – Дата прихода |
|
7 |
Покупка оборудования, Доставка оборудования |
Покупка оборудования < Доставка оборудования |
|
8 |
Время открытия, Время закрытия |
Время закрытия>Время открытия |
|
9 |
Набор персонала, Обучение персонала |
Набор персонала < Обучение персонала |
|
10 |
Дата выпуска, Дата закупки |
Дата выпуска < Дата закупки |
Таблица 4.3.
Ограничения уникальности
|
№ п/п |
Атрибут или группа атрибутов |
Среди каких экземпляров какой сущности или связи имеет место уникальность |
|
1 |
Сотрудник.Табельный номер |
всех экз. сущности Сотрудник |
|
2 |
ФИО |
« |
|
3 |
Клиент.Код клиента |
Всех экз. сущность Паспорт |
|
4 |
Телефон.Номер |
всех экз. сущности Телефон |
|
5 |
Место.Нпп |
всех экз. связи Место одного сотрудника |
|
6 |
Место.Дата прихода |
« |
|
7 |
Место.Дата ухода |
« |
|
8 |
Кредит.Номер договора |
Среди всех экз. сущности кредит |
|
9 |
Место.Должность |
Среди всех экз. связи место |
|
10 |
Платеж.Номер |
Среди всех экз. сущности платеж |
|
11 |
Оборудование.Код единицы |
Среди всех экз. сущности оборудование |
|
12 |
Оборудование.Дата покупки |
« |
Таблица 4.4.
Динамические ограничения
|
№ п/п |
Группа атрибутов |
Ограничение |
|
1 |
Стаж |
Стаж ←Стаж + 1 – значение атрибута «стаж» может лишь увеличиваться на единицу |
|
2 |
Счет в банке.Расходы в месяц. |
Расходы в месяц ← Расходы в месяц ± Х — значение атрибута «Расходы в месяц» может лишь увеличиваться |
|
3 |
Цена |
Цена ← Цена ± Х – значения атрибута «Цена» может увеличиваться или уменьшаться |
|
4 |
Договор с заказчиком.Сумма |
Сумма ← Сумма ± Х – значения атрибута «Сумма» может увеличиваться или уменьшаться |
|
5 |
Банк.Дата открытия счета |
Дата открытия счета ← Дата открытия счета + Х – значения атрибута «Дата открытия счета» может лишь увеличиваться. |
|
6 |
Дата закупки |
Дата закупки ← Дата закупки + Х – значение атрибута «дата закупки» может лишь увеличиваться. |
|
7 |
Дата выпуска |
Дата выпуска ← Дата выпуска + Х – значение атрибута «дата выпуска» может лишь увеличиваться. |
Таблица 4.5.
Другие ограничения
|
№ п/п |
Группа атрибутов |
Ограничение |
|
1 |
Место.Дата ухода |
«Дата ухода», соответствующая данному сотруднику, может быть незаполненной только для последнего места его работы (текущей) |
|
2 |
Место.Нпп, Дата прихода, Дата ухода |
Хронологическая последовательность значений «Дата прихода», «Дата ухода» в агрегатах «Место работы», соответствующих одному сотруднику, упорядоченных по «Номеру места» |
|
3 |
Дата выпуска.Дата закупки |
Хронологическая последовательность значений «Дата выпуска», «Дата закупки» в агрегатах «оборудование», соответствующих одному сотруднику, упорядоченных по «Названию оборудования» |
|
4 |
Дата заключения.Дата окончания |
Хронологическая последовательность значений «Дата заключения», «Дата окончания» в агрегатах «Договор с заказчиком», соответствующих одному сотруднику, упорядоченных по «Номеру договора» |
|
5 |
Сотрудник.Дата рождения, Место.Дата прихода |
для одного сотрудника:Дата прихода – Дата рождения >= 25 лет |
Таблица 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 Глобальная реляционная модель базы данных (конец)