Перейти до основного вмісту

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

Основи

База даних (БД) це набір з однієї та більше таблиць з даними. Кожна таблиця містить інформацію в 1 та більше стовпцях (полях). Один елемент даних (запис) це один рядок у таблиці.

Ключ унікальне поле, яке однозначно ідентифікує запис.

Primary key унікальний ключ, який не повторюється у таблиці.

Foreign key посилання на унікальний ключ, який НЕ ПОВТОРЮЄТЬСЯ у своїй таблиці.

Взаємини:

  • один до одного таблиці пов'язані один до одного тоді, коли одному рядку (запису) таблиці A відповідає один рядок таблиці B, та одному запису таблиці B відповідає один запис таблиці A;
  • один до багатьох це зв'язок у реляційних базах даних реалізується тоді, коли одному рядку таблиці A може належати або відповідати кілька записів у таблиці B, але запису з таблиці B може відповідати лише один запис таблиці А. Приклад: у користувача може бути кілька телефонних номерів;
  • багато до багатьох реалізується в тому випадку, коли кільком записам з таблиці A може відповідати кілька записів з таблиці B, і водночас декільком записам з таблиці B відповідає кілька записів з таблиці A;
  • багато до одного зворотна ситуація один до багатьох, тільки тепер таблиці A та B треба поміняти місцями;

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

Основний інструмент спілкування з реляційними БД SQL (Structured Query Language).

SQL мова структурованих запитів.

Основні оператори SQL:

  1. оператори визначення даних (Data Definition Language, DDL):
  • CREATE створює об'єкт БД (саму базу, таблицю, уявлення, користувача тощо),
  • ALTER змінює об'єкт,
  • DROP видаляє об'єкт;
  1. оператори маніпуляції даними (Data Manipulation Language, DML):
  • SELECT вибирає дані, що задовольняють заданим умовам,
  • INSERT додає нові дані,
  • UPDATE змінює наявні дані,
  • DELETE видаляє дані;
  1. оператори визначення доступу до даних (Data Control Language, DCL):
  • GRANT надає користувачеві (групі) дозволи на певні операції з об'єктом,
  • REVOKE відкликає раніше видані дозволи,
  1. оператори управління транзакціями (Transaction Control Language, TCL):
  • COMMIT застосовує транзакцію,
  • ROLLBACK відкочує всі зміни, зроблені в контексті поточної транзакції,
  • SAVEPOINT ділить транзакцію на дрібніші ділянки.

ER (Entity–relationship) - діаграми.

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

ER

Підключення

Програм для робіт із SQL базами досить багато, але рекомендувати ми будемо дві: HeidiSQL та DBeaver.

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

Завантажуємо із сайту розробників https://dbeaver.io/download/

Для запуску бази даних postgres ми використовуємо Docker. У командному рядку необхідно виконати таку команду

docker run --name some-postgres -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword -d postgres

Замість some-postgres виберіть свою назву контейнера, а замість mysecretpassword придумайте свій пароль для підключення до бази даних

Тепер нам потрібно підключитись до нашої бази.

connect

Початкові налаштування вже повинні бути правильні, в полі password впишіть пароль який ви встановили.

password

Натискаємо Тест з'єднання... має бути таке повідомлення.

test

Якщо все добре, у списку з'явиться сервер, відкрийте його, у вас буде як на скрині нижче

done-pg

І вже є готова база даних із ім'ям postgres

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

sqlite

Пропишіть шлях та ім'я файлу, де ви хочете, щоб зберігався наш файл з базою даних

sqlite

Якщо все добре, у вас у списку з'явиться база даних SQLite, відкрийте її, у вас буде як на скріні нижче

sqlite