Теоретичні ази БД (введення до SQL). Даталогічна модель даних. Вам буде цікаво

Додати - внести запис до БД і, залежно від режиму включення, або включити їх у групове ставлення, де вона оголошена підлеглої, або включати ні в яке групове ставлення.
Включити до групового відношення - пов'язати існуючий підпорядкований запис із записом-власником.
Переключити - пов'язати існуючий підпорядкований запис з іншим записом-власником у тому самому груповому відношенні.
Оновити - Змінити значення елементів попередньо отриманого запису.
Вилучити - Витягти записи послідовно за значенням ключа, а також використовуючи групові відносини - від власника можна перейти до записів - членам, а від підлеглого запису до власника набору.
видалити - Прибрати з БД запис. Якщо цей запис є власником групового відношення, то аналізується клас членства підлеглих записів. Обов'язкові члени повинні бути попередньо виключені із групового відношення, фіксовані видалені разом із власником, необов'язкові залишаться у БД.
Виключити із групового відношення - розірвати зв'язок між записом-власником та записом-членом.

Реляційна модель бази даних

По перше, всі дані моделі представлені лише як таблиць і зв'язків з-поміж них. Реляційна модель - єдина з усіх забезпечує однаковість уявлення даних.

Другий елементмоделі – реляційно-повна мова. Повнотамови в додатку до реляційної моделі означає, що вона повинна виконувати будь-яку операцію реляційної алгебри . Більш того, мову має описувати будь-яка запитяк операцій із таблицями, а чи не з їх рядками. Однією з таких мов є SQL.

Третій елементреляційної моделі вимагає від реляційної моделі підтримки деяких обмежень цілісності. Кожен рядок у таблиці повинен мати якийсь унікальний ідентифікатор, що називається первинним ключем. Друге обмеження накладається на цілісністьпосилань між таблицями.

Об'єктно-орієнтована модель.

У об'єктно-орієнтованих базах даних, на відміну реляційних, зберігаються не записи, а об'єкти (текст, аудіо- і відеоінформація, документи та інші об'єкти). Також важливим є завдання збереження стану об'єктів між повторними запусками прикладної програми. Проте, розвиненого математичного апарату, який міг би спиратися загальна об'єктно-орієнтована модель даних, не існує.

Більшість ООСУБД є бібліотекою, процедури управління даними якої включаються в прикладну програму. Незважаючи на переваги об'єктно-орієнтованих систем – реалізація складних типів даних, зв'язокз мовами програмування тощо. - найближчим часом перевага реляційних СУБДгарантовано.

Об'єктно-реляційні СУБД

Різниця між об'єктно-реляційними та об'єктними СУБД: перші є надбудовою над реляційною схемою, другі ж спочатку об'єктно-орієнтовані. Головна особливістьта відмінність об'єктно-реляційних (як і об'єктних) СУБДвід реляційних у тому, що ОР СУБДінтегровані з Об'єктно-орієнтованою (OO) мовою програмування, внутрішньою або зовнішньою як C++, Java.

Об'єктно-реляційними СУБДє, наприклад, широко відомі Oracle Database , Microsoft SQL Server , PostgreSQL, Microsoft Access.

Реляційний підхід до побудови моделі предметної галузі.

· предметна областьмоделюється сукупністю окремих інформаційних об'єктів(сутностей), кожен із яких описується своєю двовимірною таблицею;

· між таблицями існують зв'язки;

· Кожен елемент таблиці - один елемент даних;

· Усі стовпці в таблиці однорідні, тобто. всі елементи в стовпці мають однаковий тип (числовий, символьний і т.д.) та довжину;

· Кожен стовпець описує один атрибут сутності;

· Кожен стовпець має унікальне ім'я;

· Рядок містить значення атрибутів для одного екземпляра сутності;

· однакових рядків у таблиці відсутні (наявність первинного ключа);

· Порядок прямування рядків і стовпців може бути довільним.

Нормалізація відносин- формальний апарат обмежень формування відносин (таблиць), який дозволяє усунути дублювання, забезпечує несуперечність збережених у базі даних, зменшує трудовитрати ведення (введення, коригування) бази даних.

Перша нормальна форма

Відношення (таблиця) називається нормалізованим або наведеним до першої нормальної формиякщо всі його атрибути прості (далі неподільні).

Перетворення ставлення до першої нормальній форміможе призвести до збільшення кількості реквізитів (полів) відношення та зміни ключа.

Таблиця знаходиться в другий нормальній формі, якщо вона відповідає вимогам першої нормальної формиі всі її поля, що не входять до первинного ключа, пов'язані повною функціональною залежністюз первинним ключем, тобто будь-яке не ключове полеоднозначно ідентифікується повним набором ключових полів.

· Таблиця повинна містити дані про один тип об'єктів;

кожна таблиця повинна містити одне поле або кілька полів, що утворюють унікальний ідентифікатор (або первинний ключ) для кожного рядка;

· Усі неключові поля повинні визначатися повним унікальним ідентифікатором даної таблиці.

Третя нормальна форма

Вимога третьої нормальної формизводиться до того що, щоб усі неключові поля залежали тільки від первинного ключа і залежали друг від друга. Іншими словами, необхідно мати можливість змінювати значення будь-якого неключового поля, не змінюючи значення будь-якого іншого поля бази даних.

Типи зв'язків. Властивості відносин

· Відношення "один-до-одного"(1:1) означає, що кожен запис в одній таблиці відповідає не більше одного запису в іншій таблиці.

· Відношення "один-багатьом"(1:М) означає, що кожен запис в одній таблиці відповідає 0 або 1 або кілька записів в іншій таблиці.

· Відношення "багато до одного"(М:1) аналогічно розглянутому раніше типу "один-багатьом". Тип відносини між об'єктами залежить від погляду.

· Відношення "багато хто до багатьох"(М: М). виникає між двома таблицями тоді, коли кожен запис у одній таблиці відповідає 0 чи більше записів на другий таблиці і навпаки.

Прості та складові ключі

Первинний ключможе складатися з єдиного поля таблиці, значення якого є унікальними для кожного запису. Такий первинний ключназивають простим ключем.

Якщо таблицяне має єдиного унікального поля, первинний ключможе бути складений із кількох полів, сукупність значень яких гарантує унікальність.

Такий первинний ключназивають складовим ключем

Усі види зв'язків реалізуються з допомогою первинних ключів і посилань з їхньої значення інших таблицях. Такі посилання, що є копією первинних ключів інших таблиць, називаються зовнішніми ключами.

Розглянутий ієрархічний та мережевий приклад бази даних, що містить відомості про підрозділи підприємства та працівників, що працюють у них, стосовно реляційної моделі матиме вигляд:

З в'язь"багато хто до багатьохреалізується через додаткову таблицю, за допомогою якої ця зв'язокбуде зведена до двох зв'язків типу " одним-багатьом".

Операції над базою даних

Стандартним способом доступу до даних бази є вхід за асоціативною адресою (зразком), який здійснюється операцією "пошук за зразком". Аргумент операції "пошук за зразком" є структурою, характер якої може змінюватися в достатньо широкому діапазонізалежно від функцій, які виконує база даних. Результатом цієї операції є безліч (можливо, пусте - негативний результат) всіх референтів зразка-аргументу, тобто. фрагментів бази даних, кожен з яких є відповіддю на запит, специфікований у формі цього зразка.

Можна виділити кілька типів зразків.

Простий зразок- це фрагмент структури того самого типу, що й каркас. У вершинах простого зразка компоненти можуть частково вказуватися, наприклад, тільки ім'я або тільки тип. Характер процедури, що реалізується операцією "пошук за зразком", може бути двох видів:

Точний збіг - референти ізоморфні зразку з точністю до відсутніх елементів у зразку;

Покриття може виконуватися в тих випадках, коли задається частковий порядок над символами, що виступають в якості елементів зразка. Референтами в цьому випадку є фрагменти каркаса, що покриваються зразком, у тому сенсі, що графи зразка та референта ізоморфні, а елементи зразка або збігаються з відповідним символом референта, або знаходяться вище за ієрархію.

Розривний зразокце сукупність простих зразків, пов'язаних дугами спеціального видувідсутні в каркасі. У цьому випадку графи зразка та референта не є ізоморфними, оскільки в останньому відсутні спеціальні дуги. Можна сказати, що при розривному зразку пошук відбувається не на самому каркасі, а на його транзитивному замиканні по одному або декількома типами відносин. В. Зразок з негативним контекстом є парою

< положительный образец, отрицательный образец >,

в якій кожен із зразків простий чи розривний. Процедура пошуку такого зразка визначається так. Виконується пошук за позитивним зразком, знайденим референтом Rвизначаються імена вершин, загальних для позитивного та негативного зразків. Ці імена підставляються на відповідні позиції негативний зразок, яким знову здійснюється пошук. Якщо безліч референтів у цьому випадку порожня, то Rприймається як референт пошуку за зразком з негативним контекстом. Інакше пошук не дає результату.

Відсутність зв'язку між позитивним та негативним зразками є окремий випадокописаної вище процедури, при якій пошук за обома зразками здійснюється незалежно, а загальний результатвизначається так само.

Складний зразокє сукупність видів зразків, перерахованих вище. Результатом пошуку за складним зразком є ​​поєднання процедур пошуку за кожним із зразків сукупності.

Ділитимемо операцію "пошук за зразком" на два основні види: одноваріантний та багатоваріантнийпошук.

У разі одноваріантного пошуку в базі даних знаходиться єдиний (перший відповідний) референт, тоді як при багатоваріантному пошуку процес триває доти, доки не будуть знайдені всі можливі фрагменти бази даних, які можуть бути референтами для даного зразка.

Одним із суттєвих факторів, що визначають результат операції "пошук за зразком" при одноваріантному пошуку, є те, чи фіксується порядок сканування каркаса при виконанні операції "пошук за зразком". Наприклад, при каркасі-ланцюжку це може бути перегляд зліва направо або праворуч наліво, при дереві - від кореня до листя або зворотному напрямку. У тих випадках, коли порядок перегляду є зовнішньою характеристикоюбази даних, може бути фіксованим (вбудованим) чи змінюваним у процесі роботи (настраиваемым).

Ще однією операцією над базою даних є додавання. Сенс цієї операції - приєднання нових даних до даних, які у базі. Аргумент цієї операції і двох частин: перша є той фрагмент, який приєднується до бази даних, і має таку ж організацію, тобто. складається з каркасу та набору компонентів, зіставлених його вершин; друга частина є, в загальному випадку, асоціативною адресою, що вказує, до яких вершин каркасу приєднуватиметься новий фрагмент.

Як правило, системи баз даних оснащені мовою запитів, які можуть допомогти користувачам запитувати екземпляри. Існує два таких типи - реляційна алгебра та реляційне обчислення. Перший є процедурним, який приймає екземпляри відносин як вхідні дані і виводить приклади відносин як вихідні. Використовує для цього унарні або двійкові обчислення. Реляційна алгебра виконується рекурсивно, а розглядаються як стосунки.

Декартове твір (Χ)

Поєднує інформацію двох різних відносин в одну.

Позначення - r s,

де r і s - відносини, а їх вихід визначатиметься як

r Χ s = (qt | q ∈ r і t ∈ s).

Висновок. Встановлює ставлення, яке показує всі книги та статті, написані за допомогою підручника.

Перейменувати операцію (ρ).

Відношенням реляційної алгебри є результати, але без будь-якого імені. Операція перейменування дозволяє змінити вихідне значення, що позначається маленькою грецькою літерою ρ .

Позначення - ρ x (E),

де результат виразу E зберігається з ім'ям x.

Додаткові операції:

  • встановити перетин;
  • привласнення;
  • природне з'єднання.

Реляційне літочислення

Є непроцедурною мовою запитів, тобто вона каже, що робити, але не пояснює, як це реалізувати. Реляційне обчислення існує у двох формах:

  • кореляційне обчислення кортежу;
  • фільтрація змінних діапазонів.

Позначення - T/Стан: повертає всі кортежі T, які відповідають умові. Результат. Повертає кортежі з ім'ям. TRC можна кількісно визначити. Можна використовувати екзистенційні (∃) та універсальні квантори (∀). Висновок. Наведений вище запит дасть той же результат, що і попередній.

Доменне реляційне обчислення DRC

Змінна фільтрація використовує домен атрибутів замість цілих значень кортежу (як це зроблено в TRC, згаданому вище).

Позначення - (a 1 , a 2 , a 3 , ..., a n | P (a 1 , a 2 , a 3 , ..., a n)),

де a1, a2 - атрибути, а P означає формули, побудовані внутрішніми значеннями.

Висновок. Встановлює статтю, сторінку та тему з відношення TutorialsPoint, де subject є базою даних.

Подібно до TRC, DRC також може бути записана з використанням екзистенційних та універсальних кванторів. ДРК також включає операторів реляційної алгебри. Сила вираження обчислення, обчислення та кореляції відносин між точками еквівалентна.

Варіації та схеми реляційного обчислення та алгебри

Модель ER, коли вона концептуалізована на діаграмах, дає хороший оглядсутнісні відносини, які легше зрозуміти. Схематичні зображення можна зіставити з реляційної схемою, т. е. їх можна створити разом друг з одним. Неможливо імпортувати всі ER обмеження в реляційну модель, але може бути згенерована приблизна структура. Існує кілька процесів та алгоритмів, доступних для перетворення діаграм у цю систему. Деякі з них автоматизовані, інші створюються вручну. Діаграми ER переважно складаються з наступних критеріїв:

  • сутності та її атрибутів;
  • зв'язку, що є асоціацією між вищезазначеними значеннями.

Зіставлення об'єктів та відносин відбуваються різними шляхами та схемами. Наприклад, сутність – це об'єкт реального світуіз деякими атрибутами. Процес зіставлення, алгоритм наступний:

  • створити таблицю кожного об'єкта;
  • атрибути мають стати полями таблиць із відповідними типами даних;
  • оголосити первинний ключ.

Ставлення – це асоціація між сутностями. Процес складання наступний:

  • створити таблицю для відносин;
  • додати первинні ключі всіх сутностей, що беруть участь в якості полів таблиці з відповідними типами даних;
  • якщо відношення має будь-який атрибут, встановити кожен атрибут як поле таблиці;
  • об'єднати первинний ключ, що становить всі інші для об'єктів, що беруть участь;
  • вказати всі обмеження зовнішнього ключа.

Відображення слабких наборів та ієрархічних об'єктів відбувається за певною системою. Насамперед, необхідно розуміти сутнісні основита значень. Слабкий набір об'єктів - це той, який не має первинного ключа, пов'язаного з ним. Процес відображення наступний:

  • створити таблицю для слабкого набору об'єктів;
  • додати всі атрибути до схеми як поле;
  • вказати первинний ключ для ідентифікації;
  • встановити всі обмеження зовнішнього ключа.

Відображення ієрархічних об'єктів грунтується на спеціалізації чи узагальненні мови реляційної алгебри у вигляді послідовних сутностей. Алгоритм наступний:

  • створити таблиці всім об'єктів вищого нижнього рівня;
  • додати первинні ключі;
  • на низькому рівні реалізувати решту атрибутів об'єктів нижнього рівня;
  • оголосити первинні ключі таблиці;
  • встановити обмеження зовнішнього ключа.

Існуючі варіанти для опису, зберігання, зміни інформації

SQL - це мова програмування для реляційних базданих. Він розроблений над алгеброю та кореляційним обчисленням кортежів. SQL поставляється як пакета з усіма основними дистрибутивами СУБД. Містить як дані, і мови маніпулювання ними. Використовуючи властивості визначення даних SQLреляційної алгебри, можна спроектувати та змінити схему бази, тоді як властивості управління та коригування, а також зміни даних дозволяють зберігати та витягувати встановлену в систему інформацію. Використовує наступний набір команд для визначення структури та системи:

  • створює нові таблиці та подання з СУБД.
  • викидає команди.
  • змінює схему бази даних.
  • ця команда додає атрибут у об'єкт типу string.

SQL оснащений мовою маніпулювання даними (DML). Він змінює екземпляр бази, вставляючи, оновлюючи та видаляючи інформацію. DML відповідає за зміну всіх даних. SQL містить наступний набір команд у розділі DML:

  1. SELECT – це одна з основних команд запиту. Він аналогічний до проекційної операції реляційної алгебри. Він вибирає атрибути на основі умови, описаної в WHERE.
  2. FROM - цей розділ приймає ім'я як аргумент, з якого атрибути мають бути вибрані/спроектовані. Якщо дано більше однієї назви, цей пункт відповідає декартовому твору.
  3. WHERE - цей розділ визначає предикат або умови, які повинні відповідати, щоб кваліфікувати атрибут, що проеціюється.

Існують також команди:

  • вставка;
  • зміна значень;
  • видалення.

Створення запитів реляційної алгебри

При побудові пошуку завдання у тому, щоб знайти структуру операцій, що призведе до правильного висновку. Основними операціями реляційної алгебри є прості операції з одним або двома відносинами як операнди. Комбіновані ефекти послідовності визначають кінцевий результат. Оскільки система реляційної алгебри в базах даних досить проста, багато проміжні результати можуть бути отримані до досягнення кінцевого висновку, вони також використовуються як операнди, які виробляють нові отримані дані.

Для більшості операторів порядок запитів та їх виконання не має значення, а це означає, що один і той самий висновок може бути досягнутий шляхом формування та комбінування проміжних даних по-різному. Насправді пошуки в основі досить легкі. Система виконання операцій та проміжних результатів визначається оптимізатором запитів. При формуванні питань, вимог потрібно
спочатку вибрати, які відносини необхідні для досягнення відповіді, а потім вказати операції та проміжні результати. Структура запиту реляційної алгебри у базі даних з результатами може бути представлена ​​у вигляді діаграми. Оптимізатори вимоги намагаються організувати максимально ефективне виконання. Насправді це зазвичай означає, що вони намагаються якнайшвидше мінімізувати проміжні результати. У цьому вся допоможуть поширені приклади реляційної алгебри.

Інформація про автомобілі моделі 1996 року, де під час інспекції на 1999 рік виявлено недоліки.

Спочатку виводиться інформація про машини, щоб розуміти значення всіх атрибутів відношення. Інформація про інспекції зберігається у таблиці «Перевірка», і, якщо виявлено несправності, вони реєструються у таблиці «Проблема». Таким чином, потрібні ці три таблиці щоб отримати потрібну інформацію.

Цікаві лише автомобілі 1996 року. Модельний рядавтомобіля представлений як значення встановленого атрибутуу рядку таблиці інформації про машину. Перший проміжний результатскладається з кортежів, що становлять варіанти 1996 року.

Таким чином, потрібні лише рядки, які охоплюють цей період. Необхідно використовувати виділення для їх вилучення. Тепер є автомобілі та інспекції, які були потрібні. Потім рядки з'єднуються з допомогою операції об'єднання. До них має бути підключений загальний номер регістру, оскільки він є єдиним спільним стовпцем, використовується природне з'єднання.

Щоб з'ясувати, чи було виявлено несправності під час перевірок, необхідно пов'язати рядки проблем із перевіркою. Після підключення контрольних рядів до автомобілів можна підключити цей результат до таблиці несправностей. Приєднання має ґрунтуватися на загальному реєстраційний номерта перевіреної дати. Це єдині загальні стовпці у таблицях, тому використовується природне з'єднання.

Варіанти обчислень без проміжних результатів

Необхідна інформація: Ім'я водія для модельного року 1995 року або старіші автомобілі, які не були перевірені на 2000 рік. Ім'я знаходиться у таблиці "Водій". Правоохоронні органиописані в таблиці «Інспекція та автомобілі в їдальні». Отже, потрібні ці три таблиці. По-перше, необхідно дізнатися про автомобілі, які не були оглянуті на 2000 рік. Неможливо вирішити цю проблему, використовуючи лише інспекцію, вказану в таблиці, оскільки вона містить дані про ці перевірки, які були зроблені, а не про ті, що не були реалізовані. Ця проблема вирішується шляхом пошуку автомобілів, що доповнюють, які перевіряються до 2000 року. Насправді потрібні лише їхні реєстраційні номери.

Існують і інші приклади, крім зазначених вище, які показують, яким чином можна змінити або знайти якусь інформацію. Варіанти запитів можуть бути оптимізовані за допомогою спеціальних операцій. По суті, щоб пошук та знаходження даних були найбільш легкими та простими, існує реляційна модельобчислення.

Де закріплена та захищена інформація

Алгебри зберігаються у форматах файлів, що містять записи. на фізичному рівніфактичну інформацію закріплено в електромагнітному форматі на якомусь пристрої. Ці пристрої зберігання можуть бути поділені на три категорії:

  1. Первинне. До цієї категорії належить пам'ять, яка доступна для ЦП. Реєстри, швидка пам'ять(кеш) і основна (ОЗП) безпосередньо доступні для центральної, оскільки всі вони розміщені на материнській платі чи чіпсеті. Це сховище, як правило, дуже маленьке, надшвидке та нестійке. Для підтримки стану потрібно постійне джереложивлення. У разі збою всі його дані губляться.
  2. Вторинне. Використовується для зберігання інформації для майбутнього використання або резервного копіювання. Включає в себе пристрої пам'яті, які не є частиною чипсета або материнської платипроцесора, наприклад магнітні диски, оптичні диски (DVD, CD тощо), жорсткі диски, флеш-накопичувачі та магнітні стрічки.
  3. Третинне. Використовується для зберігання великих обсягів даних. Оскільки такі пристрої є зовнішніми по відношенню до комп'ютерної системи, вони є найповільнішими за швидкістю. Ці гаджети зберігання переважно використовуються для резервного копіювання всієї системи. Оптичні дискиі магнітні стрічки широко використовуються як третинне сховище.

Для ефективності запиту важливими є спеціальні операції реляційної алгебри.

Структура зберігання

Комп'ютерна система має чітко певну ієрархіюпам'яті. ЦП має прямий доступ до основної системи, а також до вбудованих регістрів. Час доступу до основної пам'яті, очевидно, менший, ніж швидкість процесора. Щоб мінімізувати цю невідповідність, вводиться кеш. Кеш-пам'ять забезпечує найшвидший час доступу та містить дані, які найчастіше звертаються до ЦП.

Пам'ять із самим швидким доступомє найдорожчою. Великі пристрої зберігання даних забезпечують невелику швидкість, і вони дешевші, однак вони можуть зберігати величезні обсяги даних у порівнянні з регістром процесора або кеш-пам'яттю.

Магнітні та жорсткі диски є найбільш поширеними вторинними пристроями зберігання в сучасних комп'ютерні системи. Вони називаються магнітними, складаються із металевої основи. Ці диски розміщуються вертикально на шпинделі. Головка читання/запису переміщається між ними та використовується для намагнічування або зняття такої плями під нею. Його можна розпізнати як 0 (нуль) або 1 (один).

Жорсткі диски відформатовані у чітко визначеному порядку для ефективного зберігання даних. На ньому багато концентричних кіл, які називають доріжками. Кожен трек далі поділяється на сектори, де зазвичай зберігається 512 байт даних.

Файлові операції

Операції над системою мови реляційної алгебри та її бази даних можна загалом класифікувати за двома категоріями:

  • оновлення;
  • пошук.

Перша категорія змінює значення даних шляхом вставлення, видалення або оновлення. З іншого боку, операції пошуку не редагують інформацію, а виймають її після необов'язкової умовної фільтрації. В обох типах операцій відбір відіграє значну роль. Крім створення та видалення файлу може бути кілька операцій, які можуть виконуватися в них:

  1. Відкрити – існує в одному з двох режимів читання чи запису. У першому випадку, операційна система не дозволяє нікому змінювати дані. Іншими словами, дані лише зчитуються. Файли, відкриті в режимі читання, можуть використовуватися кількома об'єктами. Режим запису дозволяє змінювати дані. Файли можуть бути прочитані, але не можна використовувати спільно.
  2. Закрити – це сама важлива операціяз точки зору операційної системи, тому що вона видаляє всі блокування (якщо в режимі загального доступу), зберігає дані (якщо вони змінені) на вторинний носій та звільняє всі буфери та обробники, пов'язані з файлом.
  3. Індексування - це метод структури інформації для ефективного вилучення записів із файлів системи на основі деяких атрибутів, де була виконана ця система. Визначається з урахуванням атрибутів.

Індексування може бути наступного типу:

  1. Первинний визначається файлом упорядкованих даних. Файл інформації упорядкований у ключовому полі.
  2. Вторинний індекс згенерований з поля, яке є ключем-кандидатом, і має унікальне значення в кожному запису або не ключ з значеннями, що повторюються.
  3. Кластеризація визначається в упорядкованому файлі даних, не ключовому полі.

Система управління базами даних або СУБД відноситься до технології зберігання та вилучення інформації користувачів з максимальною ефективністюпоряд із відповідними заходами безпеки. Детальний розглядцього питання призводить до висновку, що реляційна алгебра є мовою операторів, які застосовують відносини як аргументи та повертають їх у результаті.

Реляційна алгебра виходить з теорії множин і є основою логіки роботи баз даних.
Коли я тільки вивчав пристрій баз даних і SQL, попереднє ознайомлення з реляційною алгеброю дуже допомогло подальшим знанням правильно вкластися в голові, і я постараюся, щоб ця стаття справила подібний ефект.

Так що якщо ви збираєтеся почати своє навчання в цій галузі, або вам просто стало цікаво, прошу під кат.

Реляційна база даних

Для початку введемо поняття реляцинної бази даних, у якій виконуватимемо всі дії.

Реляційною базою даних називається сукупність відносин, містять всю інформацію, що має зберігається у базі. У даному визначеннінам цікавий термін відношення, але поки що залишимо його без строго визначення.
Краще уявімо таблицю продуктів.

Таблиця PRODUCTS

ID NAME COMPANY PRICE
123 Печінки ТОВ ”Темна сторона” 190
156 Чай ТОВ ”Темна сторона” 60
235 Ананаси ВАТ ”Фрукти” 100
623 Томати ТОВ ”Овочі” 130

Таблиця складається з 4-х рядків, рядок у таблиці є кортежем у реляційній теорії. Безліч упорядкованих кортежів називається ставленням.
Перед тим, як дати визначення відносини, введемо ще один термін - домен. Домени стосовно таблиці це стовпці.

Для ясності тепер введемо суворе визначення відносини.

Нехай дані N множин D1, D2, …. Dn (домени), ставленням R над цими множинами називається безліч упорядкованих N-кортежів виду де d1 належить D1 і тд. Безліч D1,D2,..Dn називаються доменами відношення R.
Кожен елемент кортежу є значенням одного з атрибутів, відповідного одному з доменів.

Ключі у відносинах
Щодо вимогою і те, що це кортежі мають різнитися. Для однозначної ідентифікації кортежу є первинний ключ. Первинний ключ це атрибут або набір з мінімальної кількості атрибутів, який однозначно ідентифікує конкретний кортеж і не містить додаткових атрибутів.
Мається на увазі, що всі атрибути в первинному ключі повинні бути необхідними та достатніми для ідентифікації конкретного кортежу, і виключення будь-якого з атрибутів у ключі зробить його недостатнім для ідентифікації.
Наприклад, у такій таблиці ключем буде поєднання атрибутів з першого та другого стовпця.

Таблиця DRIVERS

Видно, що в організації може бути кілька водіїв, і щоб однозначно ідентифікувати водія необхідно і значення зі стовпця “Назва організації” та “Ім'я водія”. Такий ключ називається складеним.

У реляційної БД таблиці взаємопов'язані і співвідносяться один з одним як основні та підлеглі. Зв'язок головної та підпорядкованої таблиці здійснюється через первинний ключ ( primary key) головної таблиці та зовнішній ключ (foreign key) Підпорядкованої таблиці.
Зовнішній ключ - це атрибут або набір атрибутів, який у головній таблиці є первинним ключем.

Цієї підготовчої теорії буде достатньо для знайомства з основними операціями реляційної алгебри.

Операції реляційної алгебри

Основні вісім операцій реляційної алгебри були запропоновані Е. Коддом.
  • Об'єднання
  • Перетин
  • Віднімання
  • Декартове твір
  • Вибірка
  • Проекція
  • З'єднання
  • Поділ
Перша половина операцій аналогічна таким операціям над множинами. Частину операцій можна виразити через інші операції. Розглянемо більшу частину операцій із прикладами.

Для розуміння важливо запам'ятати, що результатом будь-якої операції алгебри над відносинами є ще одне відношення, яке можна потім використовувати в інших операціях.
Створимо ще одну таблицю, яка стане в нагоді в прикладах.

Таблиця SELLERS

ID SELLER
123 ТОВ "Дарт"
156 ВАТ ”Відро”
235 ЗАТ "Овоче База"
623 ВАТ ”Фірма”

Умовимося, що у таблиці ID це зовнішній ключ, пов'язані з первинним ключем таблиці PRODUCTS.

Для початку розглянемо саму просту операцію- Ім'я відносини. Її результатом буде таке саме відношення, тобто виконавши операцію PRODUCTS, ми отримаємо копію відношення PRODUCTS.

Проекція
Проекція є операцією, коли з відношення виділяються атрибути лише з зазначених доменів, тобто з таблиці вибираються лише потрібні стовпці, у своїй, якщо вийде кілька однакових кортежів, то в результуючому відношенні залишається лише з одному екземпляру подібного кортежу.
Наприклад зробимо проекцію на таблиці PRODUCTS вибравши з неї ID і PRICE.

Синтаксис операції:
π (ID, PRICE) PRODUCTS

За умови вибірки ми можемо використовувати будь-яке логічний вираз. Зробимо ще одну вибірку з ціною більше 90 та ID товару менше 300:

σ (PRICE>90 ^ ID<300) PRODUCTS

множення
Множення або декартове твір є операцією, що виробляється над двома відносинами, в результаті якої ми отримуємо відношення з усіма доменами двох початкових відносин. Кортежі в цих доменах будуть являти собою всі можливі поєднання кортежів з початкових відносин. На прикладі буде зрозуміліше.

Отримаємо декартові твори таблиць PRODUCTS та SELLERS.
Синтаксис операції:

PRODUCTS × SELLERS
Можна помітити, що у цих таблиць є однаковий домен ID. У подібній ситуації домени з однаковими назвами одержують префікс у вигляді назви відповідного відношення, як показано нижче.
Для стислості перемножимо не повні стосунки, а вибірки з умовою ID<235

(кольором виділені одні й самі кортежі)

PRODUCTS.ID NAME COMPANY PRICE SELLERS.ID SELLER
123 Печінки ТОВ ”Темна сторона” 190 123 ТОВ "Дарт"
156 Чай ТОВ ”Темна сторона” 60 156 ВАТ ”Відро”
123 Печінки ТОВ ”Темна сторона” 190 156 ВАТ ”Відро”
156 Чай ТОВ ”Темна сторона” 60 123 ТОВ "Дарт"

Для використання цієї операції уявімо необхідність вибрати продавців з цінами менше 90. Без твору необхідно було б спочатку отримати ID продуктів з першої таблиці, потім за цим ID з другої таблиці отримати потрібні імена SELLER, а з використанням твору буде такий запит:

π (SELLER) σ (RODUCTS.ID=SELLERS.ID ^ PRICE<90) PRODUCTS × SELLERS

В результаті цієї операції отримаємо відношення:

SELLER
ВАТ ”Відро”
З'єднання та природне з'єднання
Операція з'єднання зворотна операції проекції і створює нове відношення з двох існуючих. Нове ставлення виходить конкатенацією кортежів першого і другого відносин, у своїй конкатенації піддаються відносини, у яких збігаються значення заданих атрибутів. Зокрема, якщо з'єднати відносини PRODUCTS та SELLERS, цими атрибутами будуть атрибути доменів ID.

Також для зрозумілості можна уявити з'єднання як результат двох операцій. Спочатку береться твір вихідних таблиць, та був з отриманого відношення ми вибираємо з умовою рівності атрибутів з однакових доменів. У разі умовою є рівність PRODUCTS.ID і SELLERS.ID.

Спробуємо поєднати відносини PRODUCTS та SELLERS та отримаємо відношення.

PRODUCTS.ID NAME COMPANY PRICE SELLERS.ID SELLER
123 Печінки ТОВ ”Темна сторона” 190 123 ТОВ "Дарт"
156 Чай ТОВ ”Темна сторона” 60 156 ВАТ ”Відро”
235 Ананаси ВАТ ”Фрукти” 100 235 ЗАТ "Овоче База"
623 Томати ТОВ ”Овочі” 130 623 ВАТ ”Фірма”

Натуральне з'єднання отримує схоже ставлення, але у разі, якщо ми коректно налаштована схема у базі (у разі первинний ключ таблиці PRODUCTS ID пов'язані з зовнішнім ключем таблиці SELLERS ID), то в результуючому відношенні залишається один домен ID.

Синтаксис операції:
PRODUCTS ⋈ SELLERS;

Вийде таке ставлення:

PRODUCTS.ID NAME COMPANY PRICE SELLER
123 Печінки ТОВ ”Темна сторона” 190 ТОВ "Дарт"
156 Чай ТОВ ”Темна сторона” 60 ВАТ ”Відро”
235 Ананаси ВАТ ”Фрукти” 100 ЗАТ "Овоче База"
623 Томати ТОВ ”Овочі” 130 ВАТ ”Фірма”
Перетин та віднімання.
Результатом операції перетину буде відношення, яке складається з кортежів, що повністю входять до складу обох відносин.
Результатом віднімання буде відношення, що складається з кортежів, які є кортежами першого відношення і не є кортежами другого відношення.
Дані операції аналогічні таким самим операціям над безліччю, отже, гадаю, немає необхідності докладно їх розписувати.
Джерела інформації
  • Основи використання та проектування баз даних - В. М. Ілюшечкін
  • курс лекцій Introduction to Databases - Jennifer Widom, Stanford University

Буду вдячний за аргументовані зауваження