Розробка проекту баз даних

Автор работы: Пользователь скрыл имя, 06 Сентября 2013 в 02:40, курсовая работа

Краткое описание

У реляційних СКБД застосовується мова 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. Оператор видалення рядка, оператор вставлення рядків, оператор зміни рядка даних, було створено таблиці та індекси, а також розглянуто їх видалення, оператор заміни таблиць. Оновлювати дані в таблиці може лише один користувач, на відміну від того, що вибирати одні й тіж самі дані можуть декілька користувачів одночасно.

 

 

 

 

 

Список використаної літератури

  1. Лекції з дисципліни „Організація баз даних і знань”. Харченко О.Г.
  2. К.Дж.Дейт  Введение в системы баз данных 8-е издание.:Издательский дом Вильямс, 2006 – 1328с
  3. Грофф, Вайнберг - SQL. Полное руководство.
  4. Manual по MySQL.
  5. Харченко О.Г.,Райчев І.Е Лабораторний практикум для студентів спеціальності 8.080401 «Інформаційні управляючі системи та технології».:Видавництво НАУ.

 

 

 


Информация о работе Розробка проекту баз даних