Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра «Безпеки інформації»
Звіт
Про виконання лабораторної роботи №2
З дисципліни: «Бази даних та знань»
Варіант-1 (Товариство філателістів)
Виконав:
ст.гр. БІ-31
Прийняв:
Львів-2010
Завдання
1. На мові SQL написати скріпт (послідовність команд) для створення бази даних відповідно до структури, розробленої в результаті виконання лабораторної роботи №1.
2. Створити відповідну базу даних, шляхом застосування скріпта з п.1. Рекомендується використання СУБД MySQL. Допускається використання інших СУБД, при умові підтримання нею мови SQL.
3. Написати скріпт на мові SQL для внесення до розробленої та реалізованої БД тестових даних. Забезпечити не менше 5 кортежів у кожному з відношень бази даних, якщо це допускає доменна структура відношення.
4. Написати скріпти на мові SQL для вибору з БД даних із кожної з її таблиць.
Варіант № 1
Товариство філателістів
Скріпт 1
CREATE DATABASE tovarustvo_filatelistiv;
USE tovarustvo_filatelistiv;
CREATE TABLE `marka`
(
`id_marku` INT( 5 ) NOT NULL,`name` VARCHAR( 20 ) NOT NULL ,`height` FLOAT( 5 ) NOT NULL ,`width` FLOAT( 5 ) NOT NULL ,`form` VARCHAR( 20 ) NOT NULL ,`prise` FLOAT( 10 ) NOT NULL ,`country` VARCHAR( 20 ) NOT NULL ,`year` INT( 4 ) NOT NULL ,`id_club_person` INT( 5 ) NOT NULL,
PRIMARY KEY ( `id_marku` )
);
CREATE TABLE `club_person`
(
`id_club_person` INT( 5 ) NOT NULL ,`FSname` VARCHAR( 30 ) NOT NULL ,`telephone` INT( 10 ) NOT NULL ,`rank` VARCHAR( 20 ) NOT NULL ,`year_enter` INT( 4 ) NOT NULL,
PRIMARY KEY ( `id_club_person` )
);
CREATE TABLE `club_partner`
(
`id_club_person` INT( 5 ) NOT NULL ,`name_club_partner` VARCHAR( 20 ) NOT NULL ,`adress_club_partner` TEXT NOT NULL ,`FSname_gover` VARCHAR( 40 ) NOT NULL,
PRIMARY KEY (`name_club_partner` )
);
Узагальнений вигляд створення всіх трьох таблиць:
Скріпт2
use `tovarustvo_filatelistiv`;
INSERT INTO `tovarustvo_filatelistiv`.`marka` (
`id_marku` ,`name` ,`height` ,`width` ,`form` ,`prise` ,`country` ,`year` ,`id_club_person`
) VALUES
('1', 'moskow', '35', '45', 'pryamokutna', '3,00', 'russia', '2003', '1354'),
('2' , 'kiev', '32', '45', 'pryamokutna', '2,70', 'ukraine', '2007', '765'),
('3' , 'lviv', '32', '45', 'pryamokutna', '2,80', 'ukraine', '2005', '555'),
('4' , 'london', '40', '30', 'ovalna', '7,30', 'england', '2002', '403'),
('5', 'lusk', '30', '45', 'pryamokutna', '2,00', 'ukraine', '2010', '766');
INSERT INTO `tovarustvo_filatelistiv`.`club_person` (
`id_club_person` ,`FSname` ,`telephone` ,`rank` ,`year_enter`
)VALUES
('1354', 'lisenko o.a.', '2-65-44', 'member', '1996'),
('765', 'antonov v.b.', '3-54-79', 'member', '2000'),
('555', 'bogaichuk d.b.', '3-85-25', 'member', '1998'),
('403', 'petrov d.o.', '2-44-80', 'member', '2000'),
('766', 'gavrilenko i.s.', '3-55-14', 'member', '2005');
INSERT INTO `tovarustvo_filatelistiv`.`club_partner` (
`id_club_person` ,`name_club_partner` ,`adress_club_partner` ,`FSname_gover`
)VALUES
('1354', 'lviv ktf', 'luganska str, 54', 'melnichuk a.i.'),
('765', 'kiev ktf', 'kovelska str,102/49', 'kuznin d.a.'),
('555', 'odessa ktf', 'kiev str, 4', 'kovalsky v.o.'),
('403', 'kiev ktf', 'kovelska str,102/49', 'kuznin d.a.'),
('766', 'lviv ktf', 'luganska str, 54', 'melnichuk a.i.');
Скріпт3
USE `tovarustvo_filatelistiv`;
SELECT `name`
FROM `marka`
WHERE `country` = 'ukraine';
SELECT *
FROM `club_partner`
WHERE `id_club_person` = '1354';
SELECT `name_club_partner`, `adress_club_partner`
FROM `club_partner`
WHERE `FSname_gover` = 'kovalsky v.o.';
Висновок: На цій лабораторній роботі я навчився проектувати на концептуальному рівні реляційну базу даних на мові SQL.