База даних — це організована колекція структурованої інформації або даних, зазвичай зберігається в електронному вигляді в комп'ютерній системі. Бази даних дозволяють легко отримувати доступ, керувати, змінювати, оновлювати та видаляти дані. Вони є основою різних додатків — від соціальних медіа платформ до інтернет-магазинів і фінансових систем, що використовують бази даних для зберігання профілів користувачів, продуктів, транзакцій тощо.
Основні характеристики баз даних
- Постійне зберігання: Дані зберігаються на довгий час, переживаючи перезавантаження додатків і системи.
- Структурованість і організація: Дані систематично впорядковані, щоб уникнути дублювання та невідповідностей.
- Легкість доступу: Існують ефективні методи запиту, фільтрації та швидкого отримання збережених даних.
- Одночасний доступ: Кілька користувачів і додатків можуть використовувати базу даних одночасно, не пошкоджуючи дані.
- Безпека та цілісність: Доступ можна контролювати, а дані захищати від несанкціонованого використання або пошкодження.
Навіщо використовувати базу даних?
- Для збереження постійного запису інформації.
- Для забезпечення цілісності даних і зменшення їх надлишковості.
- Для ефективної обробки великих обсягів даних і забезпечення швидкого доступу.
- Для дозволу кільком користувачам та додаткам одночасно доступати та працювати з даними безпечно.
- Для резервного копіювання та відновлення даних у разі збоїв апаратного забезпечення або пошкодження даних.
Системи управління базами даних (DBMS)
Це програмне забезпечення, яке керує базами даних, обробляючи зберігання даних, їх отримання, оновлення та безпеку. Воно виступає як інтерфейс між базами даних і користувачами/додатками.
Приклади DBMS:
- Реляційні DBMS (RDBMS): MySQL, PostgreSQL, Oracle, SQL Server
- NoSQL DBMS: MongoDB, Cassandra, DynamoDB
- In-memory DBMS: Redis, Memcached
У цьому курсі ми зосередимось на MySQL, яке є популярним відкритим RDBMS.
Вступ до реляційної моделі даних
Реляційна модель даних організує дані в одну або кілька таблиць (також відомих як відносини) з рядками та стовпцями. Ідея, запропонована Е.Ф. Коддом у 1970 році, революціонізувала способи структурування та запиту баз даних.
Основні поняття реляційної моделі
- Таблиці (відносини): Таблиця представляє сутність або концепцію. Наприклад, співробітники, клієнти, продукти. Кожна таблиця складається з рядків та стовпців.
- Стовпці (атрибути): Стовпці визначають тип збережених даних. Наприклад, у таблиці співробітників можуть бути стовпці employeeid, firstname, lastname, hiredate. Усі рядки в одному стовпці мають однаковий тип і значення даних.
- Рядки (записи): Кожен рядок у таблиці представляє одну конкретну одиницю або запис. Наприклад, один рядок у таблиці співробітників буде представляти одного конкретного співробітника.
- Ключі: Первинний ключ і зовнішній ключ
- Відносини між таблицями: 1:1, 1:M і M:N
Первинний ключ
Стовпець або набір стовпців, які унікально ідентифікують кожен рядок у таблиці. Наприклад, employee_id може бути первинним ключем, якщо він унікально ідентифікує кожного співробітника.
Зовнішній ключ
Стовпець в одній таблиці, який посилається на первинний ключ іншої таблиці. Наприклад, departmentid у таблиці співробітників, який посилається на departmentid у таблиці відділів.
Один до одного (1:1)
Кожен рядок у таблиці A пов'язаний з точно одним рядком у таблиці B. Наприклад, одному співробітнику може бути призначено один унікальний службовий автомобіль.
Один до багатьох (1:N)
Один рядок у таблиці A може бути пов'язаний з кількома рядками в таблиці B. Наприклад, один відділ може мати багато співробітників.
Багато до багатьох (M:N)
Кілька рядків у таблиці A можуть бути пов'язані з кількома рядками в таблиці B. Наприклад, співробітники можуть працювати над кількома проектами, а проекти можуть мати кілька співробітників.
Чому реляційна модель?
- Цілісність даних: Використовуючи первинні та зовнішні ключі, реляційна модель забезпечує референтну цілісність.
Це означає, що не повинно бути "сирітських" записів (наприклад, запису співробітника, який посилається на відділ, що не існує). - Зменшена надмірність: Завдяки процесу, званому нормалізацією, реляційні бази даних створені для мінімізації дублювання та підтримки консистентних даних.
- Гнучкість у запитах: Structured Query Language (SQL) надає потужний, декларативний спосіб отримання та маніпулювання даними складним чином без зміни структури бази даних.
Перекладено з: What is a Database?