- •Тема 10. Структури баз даних
- •Основні поняття бази даних Категорії „Дані“ та „Модель даних“ є однією з базових концепцій Баз даних
- •Багаторівневий підхід до реалізації баз даних
- •Реляційна модель баз даних
- •Реляційні операції
- •Реляційна модель бд – реляційне проектування
- •Мова sql
- •Об'єктно-орієнтовані бази даних
- •Забезпечення цілісності бд - протокол фіксації / відкоту змін в бд
- •Вплив технологій баз даних на суспільство
Реляційна модель баз даних
Реляційна модель даних - найпопулярніший спосіб представлення внутрішньої організації БД
Дані в реляційній моделі представляються у вигляді звичайних прямокутних таблиць (які називаються відношеннями), які схожі на формат представлення даних в електронних таблицях
Наприклад, інформацію про співробітників однієї фірми можна представити у вигляді відношень
Рядок у відношенні називається кортежом
Стовпець у відношенні називається атрибутом, оскільки описує певну характеристику однієї сутності, яка представляється кортежом
Проектування БД в термінах реляційної моделі зводиться до розробки відношень, які входять до даної бази
Однак таке проектування може стати причиною потрапляння до різних пасток
Нехай, нам потрібно розширити інформацію про працівників:
Найпростішим вирішенням даної проблеми є додавання нових стовпців до наявних даних
Однак аналіз такого методу вказує на ряд недоліків
Втрата ефективності
Таке відношення вже не відповідає одному кортежу кожного працівника
Проблема полягає в тому, що інформація про кожного працівника буде дублюватися
Якщо будь-яку посаду займають декілька працівників одночасно, тоді назва підрозділу та код відповідного рівня навиків будуть дублюватися у даному кортежі
Інша проблема пов’язана з видаленням даних
Якщо у нас є працівник, який займає єдину посаду в організації, то його видалення викличе і видалення даної посади з БД
Для розв’язку даної проблеми можна розділити структуру бази даних, і включення до її складу трьох відношень
Реляційні операції
Розглянемо яким чином дана структура може використовуватися при розробці програм
Розпочнемо обговорення з декількох операцій між відношенням
В деяких випадках потрібно просто отримувати кортежі з відношень
В результаті виконання операції вибору (SELECT) буде здійснюватися вибірка, яка формуватиме нове відношення (таблицю) з відповідних кортежів
Формат операції вибору можна записати наступним чином:
NEW SELECT from EMPLOYEE where EmplId = “34Y70”
Семантика даного правила визначає нове відношення з іменем NEW, яке містить ті кортежі відношення EMPLOYEE, в яких значення атрибуту дорівнюють “34Y70”
На противагу операції SELECT існує операція PROJECT, яка призначена для отримання стовпців
Як було вказано у попередньому прикладі, SELECT вибирає дані з кортежів, що відповідають заданим умовам
У випадку потреби отримання даних зі сформованого відношення напр. посади, слід скористатися наступною операцією
NEW2 PROJECT JobTitle from NEW1
Іншим прикладом використання є наступна операція
MAIL PROJECT Name, Address from EMPLOYEE
Третьою операцією є операція JOIN
Основна задача — об’єднання двох різних відношень
набір атрибутів включає всі атрибути вхідних відношень
імена атрибутів вхідних відношень не відрізняються нічим окрім наявності префіксу материнського відношення
такий принцип гарантує унікальність атрибутів, навіть в тому випадку, коли вони мають однакові імена C JOIN A and B where A.W = B.X
Нові кортежі формуються шляхом конкатенації кортежів вхідних повідомлень
Для того щоб об’єднати 2 структури потрібно:
NEW1 ← JOIN ASSIGNMENT and JOB where ASSIGNMENT.Jobld = JOB.Jobld
NEW2 ← SELECT from NEW1 where ASSIGNMENT .TermDate = "*"
LIST ← PROJECT ASSIGNMENT.EmplId, JOB.Dept from NEW2
