Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3. Бази даних та сховища даних.docx
Скачиваний:
24
Добавлен:
17.07.2024
Размер:
157.04 Кб
Скачать

3.4. Реляційні бази даних: особливості організації та зберігання даних у реляційних базах даних; основні характеристики реляційних баз даних; dbms (Database Management System)

Реляційна база даних — база даних, заснована на реляційній моделі даних. Слово «реляційний» походить від англ. relation (відношення). Для роботи з реляційними БД застосовують реляційні СКБД. Інакше кажучи, реляційна база даних — це база даних, яка сприймається користувачем як набір нормалізованих відношень різного ступеня.

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

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

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

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

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

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

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

Уявіть собі таблицю під назвою “Співробітники”, де кожен рядок представляє інформацію про конкретного співробітника, а стовпці можуть містити його ім’я, прізвище, посаду, зарплату тощо. Кожен рядок – це кортеж (запис), а кожен стовпець – атрибути.

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

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

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

  • Рядки (кортежі). Кожен рядок у реляційній таблиці представляє окремий запис і містить інформацію про об’єкт. Кожен запис є унікальним та ідентифікується за допомогою ключа.

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

  • Ключі. У реляційній моделі використовуються ключі для унікальної ідентифікації рядків у таблиці. Основний ключ (Primary Key) забезпечує унікальність кожного рядка, а зовнішній ключ (Foreign Key) створює зв’язки між таблицями.

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

  • SQL (Structured Query Language). SQL використовується для виконання операцій з даними в реляційних базах даних. Він дає змогу створювати, змінювати, видаляти та витягувати дані з таблиць, а також визначати правила для цілісності даних.

  • Нормалізація. Реляційні бази даних використовують процес нормалізації для зменшення надмірності даних і забезпечення їхньої цілісності.

  • Транзакції. РБД підтримують транзакції, що забезпечує атомарність, узгодженість, ізольованість і довговічність даних (ACID-властивості) під час одночасного доступу кількох користувачів до бази даних.

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

Для чого потрібна нормалізація даних:

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

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

  • Добре нормалізовані дані дають змогу виконувати запити більш ефективно, оскільки дані розподілені за дрібнішими таблицями, що зменшує необхідність в об’ємних операціях об’єднання даних.

Робота з реляційними базами даних передбачає виконання запитів і операцій з даними з використанням SQL (Structured Query Language), який є стандартною мовою для взаємодії з реляційними СУБД (системами управління базами даних). Ось кілька прикладів запитів і операцій.

Запит SELECT використовується для вилучення даних із таблиці: SELECT first_name, last_name FROM employees WHERE department = 'HR';

Операція INSERT використовується для вставки нових даних у таблицю: INSERT INTO customers (first_name, last_name, email) VALUES ('John', 'Doe', 'john.doe@example.com'); Цей запит додає нового клієнта в таблицю “customers”.

Операція UPDATE дає змогу оновлювати наявні дані в таблиці: UPDATE products SET price = 29.99 WHERE product_id = 123; Цей запит змінює ціну продукту з ідентифікатором 123.

Операція DELETE використовується для видалення даних із таблиці: DELETE FROM orders WHERE order_id = 456; Цей запит видаляє замовлення з ідентифікатором 456.

Система управлння базами даних (СУБД, СКБД англ. Database Management System, DBMS) — набір взаємопов'язаних даних (база даних) і програм для доступу до цих даних[1]. Надає можливості створення, збереження, оновлення та пошуку інформації в базах даних з контролем доступу до даних. Основні характеристики СКБД:

  • Контроль за надлишковістю даних

  • Несуперечливість даних

  • Підтримка цілісності бази даних (коректність та несуперечливість)

  • Цілісність описується за допомогою обмежень

  • Незалежність прикладних програм від даних

  • Спільне використання даних

  • Підвищений рівень безпеки

Можливості СКБД:

  • Дозволяється створювати БД (здійснюється за допомогою мови визначення даних DDL (Data Definition Language))

  • Дозволяється додавання, оновлення, видалення та читання інформації з БД (за допомогою мови маніпулювання даними DML, яку часто називають мовою запитів)

  • Можна надавати контрольований доступ до БД за допомогою:

  1. Системи забезпечення захисту, яка запобігає несанкціонованому доступу до БД;

  2. Системи керування паралельною роботою прикладних програм, яка контролює процеси спільного доступу до БД;

  3. Система відновлення — дозволяє відновлювати БД до попереднього несуперечливого стану, що був порушений в результаті збою апаратного або програмного забезпечення.

Існує трирівнева система організації СКБД ANSI-SPARC, при якій існує незалежний рівень для ізоляції програми від особливостей представлення даних на нижчому рівні. Рівні:

  • Зовнішній — представлення БД з точки зору користувача.

  • Концептуальний — узагальнене представлення БД, описує які дані зберігаються в БД і зв'язки між ними. Підтримує зовнішні представлення, підтримується внутрішнім рівнем.

  • Внутрішній — фізичне представлення БД в комп'ютері.

Логічна незалежність — повна захищеність зовнішніх моделей від змін, що вносяться в концептуальну модель.

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

Огляд популярних систем керування реляційними базами даних (СУБД):

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

  • PostgreSQL також є відкритою СУБД і відомий своєю розширюваністю та підтримкою складних типів даних. Він підходить для великого спектра додатків, включно з геоданими та аналітичними системами.

  • Microsoft SQL Server розроблений Microsoft і часто використовується в корпоративних середовищах. Він забезпечує хорошу інтеграцію з іншими продуктами Microsoft і підтримує масштабованість.

  • Oracle Database є потужною і поширеною СУБД для корпоративних додатків і баз даних великого розміру. Він має багатий набір функцій і високу продуктивність.

  • SQLite – це легковажна вбудована СУБД, яка ідеально підходить для мобільних і вбудованих додатків. Вона не потребує окремого сервера і зберігається в одному файлі.

  • MariaDB є форком MySQL і надає схожий функціонал, але з акцентом на відкритості та спільнотній розробці.

Вибір конкретної СУБД залежить від потреб проекту, вимог до продуктивності, масштабованості та ліцензійних обмежень.

“Найкращі практики” (best practices) – це набір методів, процесів, стратегій або підходів, що вважаються найефективнішими, найбезпечнішими та найоптимальнішими в певній галузі. Ці практики базуються на досвіді, дослідженнях, успішних результатах і загальноприйнятих стандартах. Якщо говорити простіше, найкращі практики – це рекомендації для досягнення найкращих результатів і уникнення поширених помилок. У випадку реляційних баз даних, найкращі практики такі:

  • Індексування. Створюйте індекси для часто використовуваних полів, щоб прискорити операції вибірки даних.

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

  • Оптимізація запитів. Періодично аналізуйте та оптимізуйте SQL-запити, щоб зменшити навантаження на базу даних.

  • Кешування. Використовуйте кешування на рівні програми або СУБД для зменшення навантаження на базу даних.

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

  • Резервне копіювання та відновлення. Регулярно створюйте резервні копії бази даних і розробляйте план відновлення даних для забезпечення безпеки.