-
Notifications
You must be signed in to change notification settings - Fork 0
/
ExamplesNormalization.sql
85 lines (72 loc) · 4.93 KB
/
ExamplesNormalization.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
USE DBTheater;
GO;
-- SET COLLATION TO: Latin1_General_100_CI_AS_KS_WS_SC_UTF8
CREATE TABLE Employees
(
id INT,
full_name VARCHAR(100),
job_position VARCHAR(100),
department VARCHAR(100),
department_description VARCHAR(1000)
)
GO;
INSERT INTO Employees (id, full_name, job_position, department, department_description)
VALUES (1, N'Дреля Є. В.', N'Художній керівник', N'Організатори',
N'Управлінська позиція. До їх завдань входять такі обов''язки: контроль за виконанням посадових обов''язків колективом театру, підготовка та узгодження репертуару на квартал, рік, та інші.'),
(2, N'Каркушевський В. Л.', N'Художній режисер', N'Режисери',
N'Режисери разом із художніми керівниками підбирають актуальні п''єси для вистав, відповідають за підготовку репертуару. Крім того, вони зобов''язані брати участь у репетиціях, відпрацьовувати з акторським складом складні розуміння ділянки п''єси. Режисер обирає артистів на ролі, а також контролює підготовку вбрання, реквізиту, декорацій.'),
(3, N'Biden Joe', N'Звукорежисер', N'Режисери',
N'Режисери разом із художніми керівниками підбирають актуальні п''єси для вистав, відповідають за підготовку репертуару. Крім того, вони зобов''язані брати участь у репетиціях, відпрацьовувати з акторським складом складні розуміння ділянки п''єси. Режисер обирає артистів на ролі, а також контролює підготовку вбрання, реквізиту, декорацій.')
GO;
-- Ненормалізована таблиця за 3NF
SELECT id AS [ID],
full_name AS [ПІБ],
job_position AS [Посада],
department AS [Підрозділ],
department_description AS [Опис підрозділу]
FROM Employees
GO;
DROP TABLE IF EXISTS Employees;
-- РЕЗУЛЬТАТИ НОРМАЛІЗАЦІЇ
CREATE TABLE Departments
(
id INT,
title VARCHAR(100),
description VARCHAR(1000)
)
GO;
CREATE TABLE Employees
(
id INT,
full_name VARCHAR(100),
job_position VARCHAR(100),
department_id INT,
)
GO;
INSERT INTO Departments(id, title, description)
VALUES (1, N'Організатори',
N'Управлінська позиція. До їх завдань входять такі обов''язки: контроль за виконанням посадових обов''язків колективом театру, підготовка та узгодження репертуару на квартал, рік, та інші.'),
(2, N'Бухгалтерія', N'Ведення бухгалтерського та податкового обліку фінансово-господарської діяльності'),
(3, N'Режисери',
N'Режисери разом із художніми керівниками підбирають актуальні п''єси для вистав, відповідають за підготовку репертуару. Крім того, вони зобов''язані брати участь у репетиціях, відпрацьовувати з акторським складом складні розуміння ділянки п''єси. Режисер обирає артистів на ролі, а також контролює підготовку вбрання, реквізиту, декорацій.')
GO;
INSERT INTO Employees(id, full_name, job_position, department_id)
VALUES (1, N'Дреля Є. В.', N'Художній керівник', 1),
(2, N'Каркушевський В. Л.', N'Художній режисер', 3),
(3, N'Biden Joe', N'Звукорежисер', 3)
GO;
-- Таблиця "Підрозділи"
SELECT id AS [ID],
title AS [Назва],
description AS [Опис підрозділу]
FROM Departments
GO;
-- Таблиця "Працівники"
SELECT id AS [ID],
full_name AS [ПІБ],
job_position AS [Посада],
department_id AS [Номер підрозділу]
FROM Employees
GO;
DROP TABLE IF EXISTS Employees;
DROP TABLE IF EXISTS Departments;