Розробка проекту баз даних
Курсовая работа, 06 Сентября 2013, автор: пользователь скрыл имя
Краткое описание
У реляційних СКБД застосовується мова SQL, що дозволяє формулювати довільні, нерегламентовані запити. Це мова четвертого покоління, тому будь-який користувач може швидко навчитися становити запити. До того ж, існує безліч додатків, що дозволяють будувати логічні схеми запитів у графічному виді. Все це відбувається за рахунок жорсткості вимог до продуктивності комп'ютерів. На щастя, сучасні обчислювальні потужності більш ніж адекватні.
Реляційні бази даних страждають від розходжень у реалізації мови SQL, хоча це й не проблема реляційної моделі. Кожна реляційна СКБД реалізує якусь підмножину стандарту SQL плюс набір унікальних команд, що ускладнює завдання програмістам, які намагаються перейти від однієї СКБД до іншої.
Содержание
Вступ 5
1. Основні теоретичні відомості 6
2. Побудова концептуальної (логічної) моделі даних 7
2.1 Визначення сутностей. 7
2.2 Дослідження зв’язків 7
2.3 Визначення атрибутів. 8
2.4 Побудова E-R діаграми. 9
2.5 Визначення ключів таблиці. 9
2.6 Нормалізація моделі даних. 10
3. Реалізація моделі даних засобами мови SQL. 12
3.1 Створення таблиць СКБД 14
4. Отримані таблиці 15
4.1. project 15
4.2. subdivision 15
4.3. work_project 16
4.4. work 16
4.5. staff_project 16
4.6. staff 16
5. Створення запитів 17
5.1. Оператор SELECT 17
5.2. Використання специфікатора WHERE 17
5.3. Контекстний пошук 18
5.4. Використання функцій 18
5.5. Використання підзапитів 18
5.6. Оператор видалення DELETE 18
5.7. Вставка рядків INSERT 18
5.8. Зміна рядка даних. Оператор UPDATE 19
5.9. Представлення ( VIEW ) 19
5.10. Використання складних під запитів 19
Висновок 20
Список використаної літератури 21
Вложенные файлы: 1 файл
Курсова БД.docx
— 322.48 Кб (Скачать файл)Третя нормальна форма
Таблиця знаходиться у третій нормальній формі, якщо вона знаходиться у другій нормальній формі і кожний не ключовий атрибут нетранзитивно залежить від первинного ключа.
Project:
contract PK
contract → proj_name , proj_name → contract
contract → begin_date, begin_date → contract
contract → end_date, end_date → contract
contract → price, price → contract
Subdivision :
sub_name PK,
sub_name → contract , contract → sub_name
sub_name → work_kind , work_kind → sub_name
sub_name → staff_number, staff_number → sub_name
Work:
work_name PK
work_name → contract, contract → work_name
work_name → beg_work, beg_work → work_name
work_name → end_work, end_work → work_name
work_name → price_work , price_work → work_name
work_name → percent, percent → work_name
Staff :
id PK
id → contract , contract → id
id → qualification, qualification → id
id → subdivis, subdivis → id
id → project_numb, project_numb → id
id → sub_name, sub_name → id
Отже, таблиця знаходиться у третій нормальній формі, бо вона знаходиться у другій нормальній формі і кожний неключовий атрибут нетранзитивно залежить від первинного ключа.
3. Реалізація моделі даних засобами мови SQL.
Для реалізації реляційної моделі даних необхідно визначити домен кожного стовпця таблиці. Домен стовпця описує обмеження цілісності і встановлює дійсні значення атрибутів. Це необхідно для гарантії семантичної цілісності даних моделі й забезпечення правильного відображення предметної області.
Побудуємо таблицю, яка буде містити такі стовпці:
- назва атрибутів;
- типи атрибутів;
- обмеження.
Ім’я |
Тип |
Обмеження |
project |
||
proj_name |
CHAR |
|
contract |
INTEGER |
Primary key |
begin_date |
DATE |
|
end_date |
DATE |
|
price |
INTEGER |
|
subdivision |
||
sub_name |
CHAR |
Primary key |
contract |
INTEGER |
Foreign key |
work_kind |
CHAR |
|
staff_number |
INTEGER |
|
work_project |
||
contract |
INTEGER |
PK, FK |
id |
INTEGER |
|
work_name |
CHAR |
|
work |
||
work_name |
CHAR |
Primary key |
id |
INTEGER |
|
contract |
INTEGER |
Foreign key |
beg_work |
DATE |
|
end_work |
DATE |
|
price_work |
INTEGER |
|
percent |
INTEGER |
|
staff_project |
||
contract |
INTEGER |
Foreign key |
id |
INTEGER |
Primary key |
sub_name |
CHAR |
|
staff |
||
id |
INTEGER |
Foreign key |
sub_name |
CHAR |
Foreign key 1 |
contract |
INTEGER |
|
qualification |
CHAR |
|
subdivis |
CHAR |
|
project_numb |
INTEGER |
|
work_name |
CHAR |
Foreign key 2 |
Тип INTEGER 32-розрядний і може змінюватися в діапазоні від -231 до 231-1.
Тип даних CHAR (n) визначає послідовність символів формату ASCII. Довжина n змінюється від 1 до 32767.
Для зберігання календарних дат використовується тип DATE. Значення типу DATE – це ціле число зі знаком, яке інтерпретується як число повних діб з 31.12.1899 року. Формат значень типу DATE задається в ОС у змінній DBDATE.
3.1 Створення таблиць СКБД
create table project
(
Contract integer primary key,
proj_name char(20char),
begin_date date,
end_date date,
price integer
);
create table subdivision
(
sub_name char(20char) primary key,
contract integer,
work_kind char(20char),
staff_number integer,
foreign key (contract) references project (contract)
);
create table work_project
(
contract integer primary key,
work_name char(20char),
id integer,
foreign key (contract) references project (contract)
);
create table work
(
work_name char(20char) primary key,
contract integer,
id integer,
beg_work date,
end_work date,
price_work integer,
percent integer,
foreign key (contract) references work_project (contract)
);
create table staff_project
(
contract integer primary key,
id integer,
sub_name char(20char),
foreign key (contract) references work_project (contract)
);
create table staff
(
id integer,
f_name char(20char),
l_name char(20char),
qualification char(20char),
subdivis char(20char),
project_numb integer,
foreign key (id) references staff_project (id),
foreign key (sub_name) references subdivision (sub_name),
foreign key (work_name) references work (work_name)
);
4. Отримані таблиці
4.1. project
4.2. subdivision
4.3. work_project
4.4. work
4.5. staff_project
4.6. staff
5. Створення запитів
Мова структурованих запитів SQL розроблена для виконання операцій з даними, поданими у вигляді логічно взаємопов'язаних таблиць (відношень).
У мові SQL визначені такі операції:
- операції визначення даних (визначення баз даних, визначення відношень та індексів);
- запити на вибір даних (SELECT);
- операції модифікації даних;
- операції управління даними.
Крім того, в цих операціях можуть виконуватися:
- арифметичні операції;
- упорядкування рядків і стовпців;
- створення представлень (віртуальних таблиць);
- запам'ятовування вмісту таблиць, що виводиться за запитом (реляційна операція присвоєння);
- агрегування даних.
5.1. Оператор SELECT
SELECT contract, proj_name, price FROM project;
5.2. Використання специфікатора WHERE
SELECT * FROM work WHERE price_work < 4600 AND price_work > 1500;
5.3. Контекстний пошук
SELECT l_name, f_name FROM staff WHERE qualification LIKE 'С%';
5.4. Використання функцій
SELECT COUNT(*) FROM staff WHERE qualification ='Низька';
SELECT MAX(percent) FROM work WHERE end_work BETWEEN TO_DATE('200212','dd/mm/yy') AND TO_DATE('200412','dd/mm/yy');
5.5. Використання підзапитів
SELECT * FROM project WHERE price > (SELECT AVG (price) AVERAGE FROM project);
5.6. Оператор видалення DELETE
DELETE FROM staff WHERE id = 3;
5.7. Вставка рядків INSERT
INSERT INTO staff VALUES (3, 'f_name_3', 'l_name_3', 'Середня', 'SUBDIVIS_1', 3);
5.8. Зміна рядка даних. Оператор UPDATE
UPDATE subdivision SET sub_name = 's_b_2', work_kind = 'w_k_2' WHERE staff_number =2;
5.9. Представлення ( VIEW )
CREATE VIEW staff__ AS SELECT f_name, l_name, qualification FROM staff;
5.10. Використання складних під запитів
SELECT * FROM project WHERE contract = (SELECT contract FROM subdivision WHERE staff_number = 4);
Висновок
Метою виконання
даної курсової було отримання
навиків при розробці
- розробка концептуальної моделі;
- нормалізація;
- створення реляційної моделі.
На основі отриманого завдання ми спроектували базу даних, побудували ODL модель, а також, використовуючи мову структурованих запитів (SQL), виконали команди, які дозволяють створювати таблиці, вносити дані в ці таблиці, робити запити щодо вибірки деяких значень, внесення змін, видалення як окремого кортежу, так і цілої таблиці.
Також використовувався оператор SELECT,а саме: виконано найпростіші види оператора, використання специфікатора WHERE, використано вирази та віртуальні поля, використання функцій, обробка груп рядків, створення з’єднань, використання під запитів.
Для роботи з даними БД застосовувалися оператори такі як INSERT, SELECT, VIEW, DELETE. Оператор видалення рядка, оператор вставлення рядків, оператор зміни рядка даних, було створено таблиці та індекси, а також розглянуто їх видалення, оператор заміни таблиць. Оновлювати дані в таблиці може лише один користувач, на відміну від того, що вибирати одні й тіж самі дані можуть декілька користувачів одночасно.
Список використаної літератури
- Лекції з дисципліни „Організація баз даних і знань”. Харченко О.Г.
- К.Дж.Дейт Введение в системы баз данных 8-е издание.:Издательский дом Вильямс, 2006 – 1328с
- Грофф, Вайнберг - SQL. Полное руководство.
- Manual по MySQL.
- Харченко О.Г.,Райчев І.Е Лабораторний практикум для студентів спеціальності 8.080401 «Інформаційні управляючі системи та технології».:Видавництво НАУ.