МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
З В І Т
до лабораторної роботи №2
з курсу: « Бази даних та знань »
на тему: « Реалізація функцій СУБД на прикладі MySQL »
ВАРІАНТ - 4
Мета роботи – ознайомитися з СУБД MySQL, написати скріпт для створення бази даних відповідно до структури, розробленої в результаті виконання лабораторної роботи №1.
ЗАВДАННЯ
1. На мові SQL написати скріпт (послідовність команд) для створення бази даних відповідно до структури, розробленої в результаті виконання лабораторної роботи №1.
2. Створити відповідну базу даних, шляхом застосування скріпта з п.1. Рекомендується використання СУБД MySQL. Допускається використання інших СУБД, при умові підтримання нею мови SQL.
3. Написати скріпт на мові SQL для внесення до розробленої та реалізованої БД тестових даних. Забезпечити не менше 5 кортежів у кожному з відношень бази даних, якщо це допускає доменна структура відношення.
4. Написати скріпти на мові SQL для вибору з БД даних із кожної з її таблиць.
5. Оформити звіт про виконання лабораторної роботи, до якого включити усі розроблені скріпти, доповнюючи їх усіма необхідними коментарями.
Варіант №4. Оперний театр
1) Атрибути
1. Вистава
2. Дата проведення
3. id спектаклю
4. Жанр
5. id працівника
6. П.І.Б.
7. Посада
8.Зарплата
9. Номер телефону
10.Адреса працівника
11.Гонорар
12.Дата народженння
13. Назва майна
14.id майна
15.Тип майна
16.Кількість проданих квитків
17.Прибуток
18.Вартість квитка
2) Схема функціональних залежностей
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
3)Схема залежностей без надлишкових зв’язків
4) Визначення можливих ключів
7
8
Ключ 7
14
15
13
Ключ 14
3
4
1
2
18
16
Ключ 3
6
12
10
9
Ключ 6
5
14
7
6
Ключ 5
3
5
11
Ключ 3,5
18
16
17
Ключ 18,16
Детермінанти: 7,14,3,6,5,18,16.
ЗАБЕЗПЕЧЕННЯ КОРТЕЖАМИ ВІДНОШЕНЬ БД
T1
posada
zarplatnia
actor
3000
administrator
2500
durector
5000
pruberalnuk
2000
rejuser
3500
T2
ID_maina
tup_maina
nazva_maina
11
inventar
lopata
3
decoratsii
dim
17
actorske
kostum
22
decoratsii
derevo
23
actorske
zbroja
T3
ID_spect
janr
vustava
data
vartist_kv
kilkist_prod
102
tragedia
Kruza
23
30
60
197
comedia
Sharika
17
35
39
205
drama
Poliann
22
45
52
274
drama
Kateruna
20
30
54
302
comedia
Kaidash_simja
21
30
47
T4
PIB
data_nar
adresa
telefon
matvijiv_ei
15_12_1979
puluja_11_62
2147483647
oleksa_pa
26_10_1983
boichuka_6_172
2147483647
petrenko_ra
14_03_1987
stysa_5_28
2147483647
titov_ta
29_04_1972
gazova_3_6
2147483647
yakum_vv
19_02_1988
banderu_27_15
2147483647
T5
ID_prats
ID_maina
posada
PIB
12
47
administrator
oleksa_pa
44
77
rejuser
yakum_vv
46
43
actor
petrenko_ra
76
12
actor
titov_ta
93
52
actor
matvijiv_ei
T6
ID_spect
ID_prats
gonorar
123
65
2000
145
23
1800
167
12
2000
294
24
3000
T7
vartist_kv
kilkist_prod
prubytok
30
65
2000
40
94
3800
45
150
6800
50
130
6500
70
90
6300
СКРІПТ ТЕКСТ СТВОРЕННЯ БАЗИ ДАНИХ І РЕЗУЛЬТАТ ВИКОНАННЯ
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.1.57-community MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2013-05-13 12:39:11 |
+---------------------+
1 row in set (0.00 sec)
mysql> create database teatr;
Query OK, 1 row affected (0.03 sec)
mysql> use teatr;
Database changed
mysql> create table T1 (posada varchar(15) primary key not null, zarplata int(5) not null);
Query OK, 0 rows affected (0.13 sec)
mysql> create table T2 (ID_maina int(5) primary key not null, tup_maina varchar(15) not null, nazva_maina varchar(15) not null);
Query OK, 0 rows affected (0.08 sec)
mysql> create table T3 (ID_spect int(5) primary key not null, janr varchar(10) not null, vustava varchar(20) not null, data int(10) not null, vartist_kv int(5) not null, kilkist_prod int(4) not null);
Query OK, 0 rows affected (0.08 sec)
mysql> create table T4 (PIB varchar(15) primary key not null, data_nar varchar(10) not null, adresa varchar(20) not null, telefon int(15) not null);
Query OK, 0 rows affected (0.11 sec)
mysql> create table T5 (ID_prats int(5) primary key not null, ID_maina int(5) not null, posada varchar(15) not null, PIB varchar(15) not null);
Query OK, 0 rows affected (0.11 sec)
mysql> create table T6 (ID_spect int(5) primary key not null, ID_prats int(5) not null, gonorar int(5) not null);
Query OK, 0 rows affected (0.11 sec)
mysql> create table T7 (vartist_kv int(5) primary key not null, kilkist_prod int(5) not null, prubytok int(5) not null);
Query OK, 0 rows affected (0.11 sec)
mysql> describe T1;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| posada | varchar(15) | NO | PRI | NULL | |
| zarplata | int(5) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> load data local infile 'C:/T1.txt' into table T1;
Query OK, 5 rows affected (0.02 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from T1;
+---------------+----------+
| posada | zarplata |
+---------------+----------+
| actor | 3000 |
| administrator | 2500 |
| durector | 5000 |
| pruberalnuk | 2000 |
| rejuser | 3500 |
+---------------+----------+
5 rows in set (0.00 sec)
mysql> describe T2;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| ID_maina | int(5) | NO | PRI | NULL | |
| tup_maina | varchar(15) | NO | | NULL | |
| nazva_maina | varchar(15) | NO | | NULL | |
+-------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> load data local infile 'C:/T2.txt' into table T2;
Query OK, 5 rows affected (0.02 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from T2;
+----------+------------+-------------+
| ID_maina | tup_maina | nazva_maina |
+----------+------------+-------------+
| 11 | inventar | lopata
|3 | decoratsii | dim
| 17 | actorske | kostum
| 22 | decoratsii | derevo |
| 23 | actorske | zbroja
+----------+------------+-------------+
5 rows in set (0.00 sec)
mysql> describe T3;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| ID_spect | int(5) | NO | PRI | NULL | |
| janr | varchar(10) | NO | | NULL | |
| vustava | varchar(20) | NO | | NULL | |
| data | int(10) | NO | | NULL | |
| vartist_kv | int(5) | NO | | NULL | |
| kilkist_prod | int(4) | NO | | NULL | |
+--------------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
mysql> load data local infile 'C:/T3.txt' into table T3;
Query OK, 5 rows affected (0.02 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from T3;
+----------+----------+---------------+------+------------+--------------+
| ID_spect | janr | vustava | data | vartist_kv | kilkist_prod |
+----------+----------+---------------+------+------------+--------------+
| 102 | tragedia | Kruza | 23 | 30 | 60 |
| 197 | comedia | Sharika | 17 | 35 | 39 |
| 205 | drama | Poliann | 22 | 45 | 52 |
| 274 | drama | Kateruna | 20 | 30 | 54 |
| 302 | comedia | Kaidash_simja | 21 | 30 | 47 |
+----------+----------+---------------+------+------------+--------------+
5 rows in set (0.00 sec)
mysql> describe T4;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| PIB | varchar(15) | NO | PRI | NULL | |
| data_nar | varchar(10) | NO | | NULL | |
| adresa | varchar(20) | NO | | NULL | |
| telefon | int(15) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> load data local infile 'C:/T4.txt' into table T4;
Query OK, 5 rows affected (0.02 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from T4;
+-------------+------------+----------------+------------+
| PIB | data_nar | adresa | telefon |
+-------------+------------+----------------+------------+
| matvijiv_ei | 15_12_1979 | puluja_11_62 | 2147483647 |
| oleksa_pa | 26_10_1983 | boichuka_6_172 | 2147483647 |
| petrenko_ra | 14_03_1987 | stysa_5_28 | 2147483647 |
| titov_ta | 29_04_1972 | gazova_3_6 | 2147483647 |
| yakum_vv | 19_02_1988 | banderu_27_15 | 2147483647 |
+-------------+------------+----------------+------------+
5 rows in set (0.00 sec)
mysql> describe T5;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID_prats | int(5) | NO | PRI | NULL | |
| ID_maina | int(5) | NO | | NULL | |
| posada | varchar(15) | NO | | NULL | |
| PIB | varchar(15) | NO | | NULL | |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> load data local infile 'C:/T5.txt' into table T5;
Query OK, 5 rows affected (0.02 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from T5;
+----------+----------+---------------+--------------+
| ID_prats | ID_maina | posada | PIB |
+----------+----------+---------------+--------------+
| 12 | 47 | administrator | oleksa_pa
| 44 | 77 | rejuser | yakum_vv
| 46 | 43 | actor | petrenko_ra
| 76 | 12 | actor | titov_ta
| 93 | 52 | actor | matvijiv_ei |
+----------+----------+---------------+--------------+
5 rows in set (0.00 sec)
mysql> describe T6;
+----------+--------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------+------+-----+---------+-------+
| ID_spect | int(5) | NO | PRI | NULL | |
| ID_prats | int(5) | NO | | NULL | |
| gonorar | int(5) | NO | | NULL | |
+----------+--------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> load data local infile 'C:/T6.txt' into table T6;
Query OK, 5 rows affected (0.02 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from T6;
+----------+----------+---------+
| ID_spect | ID_prats | gonorar |
+----------+----------+---------+
| 123 | 65 | 2000 |
| 145 | 23 | 1800 |
| 167 | 12 | 2000 |
| 294 | 24 | 3000 |
+----------+----------+---------+
4 rows in set (0.00 sec)
mysql> describe T7;
+------------+--------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------+------+-----+---------+-------+
| vartist_kv | int(5) | NO | PRI | NULL | |
| kilkist_pr | int(5) | NO | | NULL | |
| prubytok | int(5) | NO | | NULL | |
+------------+--------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> load data local infile 'C:/T7.txt' into table T7;
Query OK, 5 rows affected (0.02 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from T7;
+------------+--------------+----------+
| vartist_kv | kilkist_prod | prubytok |
+------------+--------------+----------+
| 30 | 65 | 2000 |
| 40 | 94 | 3800 |
| 45 | 150 | 6800 |
| 50 | 130 | 6500 |
| 70 | 90 | 6300 |
+------------+--------------+----------+
5 rows in set (0.00 sec)
mysql> show tables;
+-----------------+
| Tables_in_teatr |
+-----------------+
| t1 |
| t2 |
| t3 |
| t4 |
| t5 |
| t6 |
| t7 |
+-----------------+
7 rows in set (0.00 sec)
mysql> select * from T3 where janr='drama';
+----------+-------+----------+------+------------+--------------+
| ID_spect | janr | vustava | data | vartist_kv | kilkist_prod |
+----------+-------+----------+------+------------+--------------+
| 205 | drama | Poliann | 22 | 45 | 52 |
| 274 | drama | Kateruna | 20 | 30 | 54 |
+----------+-------+----------+------+------------+--------------+
2 rows in set (0.01 sec)
mysql> select * from T1 where zarplata=3000;
+--------+----------+
| posada | zarplata |
+--------+----------+
| actor | 3000 |
+--------+----------+
1 row in set (0.00 sec)
mysql>
ВИСНОВОК
В даній лабораторній роботі на прикладі СУБД MySQL я написав скріпт для створення БД відповідно до структури БД з лабораторної роботи №1. Вивчив синтаксис середовища MySQL, створив базу даних і таблиці в ній. Завантажив дані в таблиці за допомогою створених раніше txt-файлів. За допомогою відповідних команд вивів/змінив значення атрибутів у таблицях.