Файл: дипломная проектирование БД рекламного агентства.doc

ВУЗ: Не указан

Категория: Дипломная работа

Дисциплина: Базы данных

Добавлен: 19.10.2018

Просмотров: 3956

Скачиваний: 67

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Содержание:

1 ОПИСАНИЕ АВТОМАТИЗИРУЕМЫХ ФУНКЦИЙ

В данном подразделе дается краткое описание предметной области, в которой функционирует информационная система «Рекламное агентство». Описываются среда функционирования, объект и субъект управления, цели и задачи управления.

2 ОГРАНИЧЕНИЯ ЦЕЛОСТНОСТИ И ОПЕРАЦИОННЫЕ

ОГРАНИЧЕНИЯ

3 ПРОЕКТИРОВАНИЕ

ЛОКАЛЬНЫХ МОДЕЛЕЙ

В данном подразделе на основе анализа и преобразования исходных иерархических моделей для каждой автоматизируемой функции строятся нормализованные ER-модели, не содержащие «скрытых» сущностей (т.е. каждая сущность находится в третьей нормальной форме). Ниже приведены описания моделей; диаграммы моделей (рис. 3.1–3.5) вынесены в конец раздела.

4 ПРОЕКТИРОВАНИЕ

ГЛОБАЛЬНОЙ ER-МОДЕЛИ

5 ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННОЙ МОДЕЛИ И

РАЗРАБОТКА SQL-КОДА БАЗЫ ДАННЫХ

Примечания:

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 Глобальная реляционная модель базы данных (конец)

68