Реляційні бази даних
Основи
База даних (БД) — це набір з однієї та більше таблиць з даними. Кожна таблиця містить інформацію в 1 та більше стовпцях (полях). Один елемент даних (запис) — це один рядок у таблиці.
Ключ — унікальне поле, яке однозначно ідентифікує запис.
Primary key — унікальний ключ, який не повторюється у таблиці.
Foreign key — посилання на унікальний ключ, який НЕ ПОВТОРЮЄТЬСЯ у своїй таблиці.
Взаємини:
- один до одного — таблиці пов'язані один до одного тоді, коли одному рядку (запису) таблиці A відповідає один рядок таблиці B, та одному запису таблиці B відповідає один запис таблиці A;
- один до багатьох — це зв'язок у реляційних базах даних реалізується тоді, коли одному рядку таблиці A може належати або відповідати кілька записів у таблиці B, але запису з таблиці B може відповідати лише один запис таблиці А. Приклад: у користувача може бути кілька телефонних номерів;
- багато до багатьох — реалізується в тому випадку, коли кільком записам з таблиці A може відповідати кілька записів з таблиці B, і водночас декільком записам з таблиці B відповідає кілька записів з таблиці A;
- багато до одного — зворотна ситуація один до багатьох, тільки тепер таблиці A та B треба поміняти місцями;
Нормалізація — процес приведення структури БД до виду, що забезпечує мінімальну логічну надмірність, і не має на меті зменшення або збільшення продуктивності роботи або зменшення або збільшення фізичного обсягу бази даних. Кінцевою метою нормалізації є зменшення потенційної суперечливості збереженої в базі даних інформації.
Основний інструмент спілкування з реляційними БД — SQL (Structured Query Language).
SQL — мова структурованих запитів.
Основні оператори SQL:
- оператори визначення даних (Data Definition Language, DDL):
- CREATE створює об'єкт БД (саму базу, таблицю, уявлення, користувача тощо),
- ALTER змінює об'єкт,
- DROP видаляє об'єкт;
- оператори маніпуляції даними (Data Manipulation Language, DML):
- SELECT вибирає дані, що задовольняють заданим умовам,
- INSERT додає нові дані,
- UPDATE змінює наявні дані,
- DELETE видаляє дані;
- оператори визначення доступу до даних (Data Control Language, DCL):
- GRANT надає користувачеві (групі) дозволи на певні операції з об'єктом,
- REVOKE відкликає раніше видані дозволи,
- оператори управління транзакціями (Transaction Control Language, TCL):
- COMMIT застосовує транзакцію,
- ROLLBACK відкочує всі зміни, зроблені в контексті поточної транзакції,
- SAVEPOINT ділить транзакцію на дрібніші ділянки.
ER (Entity–relationship) - діаграми.
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
придумайте свій пароль для підключення до бази даних
Тепер нам потрібно підключитись до нашої бази.
Початкові налаштування вже повинні бути правильні, в полі password впишіть пароль який ви встановили.
Натискаємо Тест з'єднання...
має бути таке повідомлення.
Якщо все добре, у списку з'явиться сервер, відкрийте його, у вас буде як на скрині нижче
І вже є готова база даних із ім'ям postgres
Підключення до SQLite бази даних відбувається ще простіше. По суті, це локальний файл, який потрібно створити.
Пропишіть шлях та ім'я файлу, де ви хочете, щоб зберігався наш файл з базою даних
Якщо все добре, у вас у списку з'явиться база даних SQLite, відкрийте її, у вас буде як на скріні нижче