Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра автоматизації проектування енергетичних процесів і систем
ЛАБОРАТОРНА РОБОТА №2
з дисципліни «Системи баз даних»
Варіант № 9
Тема: Створення БД. Аналіз функцій та побудова діаграми прецедентів в
середовищі IBM Rational Rose
Мета: Самостійно спроектувати БД по заданому опису предметної області.
Створити та заповнити відношення БД згідно свого варіанту. Визначити первинні ключі. Встановити зв`язки між таблицями. Задати обмеження цілісності. Освоїти основні етапи проектування та особливості розробки діаграми діяльності в середовищі IBM Rational Rose.
Завдання:
1) створити БД, модель якої розроблено як індивідуальне завдання та
перевірене викладачем;
2) створити таблиці спроектованої бази даних;
3) за допомогою візуальних засобів при редагуванні структури таблиці
створити первинні та зовнішні ключі, та встановити необхідні правила на
зв`язки між таблицями;
4) проаналізувати функції і побудувати відповідну діаграму прецедентів.
Створення БД, модель якої розроблено як індивідуальне завдання та таблиці спроектованої баз даних:
Скрипт:
#Створення бази даних
CREATE DATABASE IF NOT EXISTS lab;
USE lab;
#Створення таблиці відділів
create table IF NOT EXISTS department(
ID_department INT auto_increment primary key,
Department varchar(30) not null unique
) engine = INNODB;
#Створення таблиці працівників
CREATE TABLE IF NOT EXISTS person (
ID_person INT AUTO_INCREMENT PRIMARY KEY,
ID_department INT,
FOREIGN KEY (ID_department)
REFERENCES department(ID_department),
Table_number INT NOT NULL UNIQUE,
FIO_person VARCHAR(50) NOT NULL,
Salary INT CHECK (salary > 0),
Gained BOOL # Отримав або ні
) ENGINE=INNODB;
create table IF NOT EXISTS money(
ID_money INT auto_increment primary key,
ID_person INT,
FOREIGN KEY(ID_person)
REFERENCES person(ID_person),
Code_money INT unique not null,
Amount_money Int not null,
Type_money varchar(50)
) engine = INNODB;
#Заповнення таблиці відділів
INSERT INTO department (Department)
VALUES
('Marketing department'),
('Sales department'),
('Production department');
#Заповнення таблиці працівників
INSERT INTO person (ID_department, Table_number, FIO_person, Salary, Gained)
VALUES
(1, 0001, 'Medvedev I.O.', 1900, true),
(2, 0002, 'Ivanov V.A.', 2100, false),
(3, 0003, 'Smirnov K.L.', 1800, true),
(1, 0004, 'Petrov G.G.', 1850, true);
#Заповнення таблиці надходжень
INSERT INTO money (ID_person, Code_money, Amount_money, Type_money)
VALUES
(1, 001, 1900, 'Earnings'),
(2, 002, 200, 'Award'),
(3, 101, 100, 'Penalty for inappropriate behavior'),
(4, 102, 50, 'Late penalty');
#Вивід таблиць
SELECT * FROM department;
SELECT * FROM person;
SELECT * FROM money;
#Видалення таблиць
DROP table department, person, money;
DROP database lab;
Таблиця відділів:
/
Таблиця працівників:
/
Таблиця надходжень:
/
Встановлення необхідних правил на зв’язки між таблицями, за допомогою візуальних засобів:
/
Проаналізувати функції і побудувати відповідну діаграму прецедентів:
/
Висновок: Виконуючи лабораторну роботу, було виконано завдання за варіантом, створено зовнішні та первинні ключі, зв’язано таблиці між собою за допомогою зовнішніх ключів.