Що таке база даних? 📁
База даних — це організована колекція структурованих даних, що зберігаються в електронному вигляді.
Уявіть її як цифрову систему архівування, яка дозволяє вам:
- Систематично зберігати дані
- Швидко отримувати інформацію
- Оновлювати записи ефективно
- Підтримувати точність даних
Що таке реляційна база даних? 🔗
Реляційна база даних організовує дані в таблицях з рядками та стовпцями, де дані пов'язані через відношення.
-- Таблиця книг
BookID | Title | Author | ISBN | Location
1 | SQL Basics | John Doe | 123-456 | Shelf A2
2 | Data Magic | Jane Smith | 789-012 | Shelf B1
Що таке СУБД (система управління базами даних)?
Система управління базами даних (СУБД) — це програмне забезпечення, яке допомагає нам керувати базою даних.
Якщо база даних — це бібліотека, то СУБД — це бібліотекар, який організовує книги.
Що таке SQL?
SQL — Structured Query Language (Структурована мова запитів) — це мова для доступу до даних у базі даних.
SQL vs MySQL 💻
SQL (Structured Query Language):
- Стандартизована мова
- Використовується в різних системах
MySQL:
- Конкретна СУБД
- Реалізує SQL
Приклад основних SQL команд:
-- Створення таблиці
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name VARCHAR(50),
Department VARCHAR(50)
);
-- Вставка даних
INSERT INTO Employees VALUES (1, 'John Doe', 'IT');
-- Запит даних
SELECT * FROM Employees WHERE Department = 'IT';
Властивості ACID ⚡
ACID означає Atomicity (Атомарність), Consistency (Цілісність), Isolation (Ізоляція), Durability (Довговічність).
Кожна буква в ACID позначає критичну властивість, яка забезпечує надійність транзакцій бази даних:
A — Атомарність
- Або всі операції завершуються, або жодна не завершується
- Як вимикач — немає проміжних станів
- Приклад: Переказ грошей повинен завершити як дебет, так і кредит, або не виконати жодного
C — Цілісність
- Дані повинні відповідати всім правилам і обмеженням
- База даних переходить з одного правильного стану в інше
- Приклад: Якщо баланс рахунку не може бути негативним, транзакція, яка робить його негативним, зазнає помилки
I — Ізоляція
- Транзакції виконуються незалежно
- Багато транзакцій не перешкоджають одна одній
- Приклад: Якщо двоє людей бронюють останнє місце, одна транзакція повинна завершитися невдало
D — Довговічність
- Завершені транзакції є постійними
- Зміни переживають збої системи або відключення живлення
- Приклад: Після підтвердження платежу цей запис є постійним
Приклад з реального світу: подумайте про банківський переказ:
- Атомарність: Обидва рахунки повинні бути оновлені одночасно
- Цілісність: Правила балансу повинні дотримуватися
- Ізоляція: Інші транзакції не побачать часткові оновлення
- Довговічність: Після підтвердження переказу він є постійним
Обмеження бази даних 🔒
Уявіть їх як правила, що контролюють, які дані можуть бути збережені. Вони схожі на охоронців клубу — вони забезпечують, щоб лише правильні дані потрапили всередину!
Типи обмежень:
- PRIMARY KEY (Первинний ключ)
- Робить кожен рядок унікальним (як номер Aadhaar)
- Не може містити значення NULL
- Тільки одне на таблицю
- Приклад:
StudentID
у таблиці студентів
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(50)
);
- FOREIGN KEY (Зовнішній ключ)
- Створює зв'язки між таблицями
- Має відповідати первинному ключу іншої таблиці
- Може бути NULL
- Приклад: Зв'язок між працівниками та відділами
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
DepartmentID INT,
FOREIGN KEY (DepartmentID) REFERENCES Departments(DeptID)
);
- NOT NULL (Не NULL)
- Забезпечує, щоб у колонці було значення
- Не можна залишати порожнім
- Приклад: Неможливо мати студента без імені
CREATE TABLE Students (
StudentID INT,
Name VARCHAR(50) NOT NULL
);
- UNIQUE (Унікальне)
- Забезпечує, щоб усі значення в колонці були різними
- Може містити NULL (на відміну від PRIMARY KEY)
- Приклад: Адреси електронної пошти повинні бути унікальними
CREATE TABLE Users (
UserID INT,
Email VARCHAR(100) UNIQUE
);
- CHECK (Перевірка)
- Створює конкретну умову, що повинна бути істинною
- Приклад: Вік повинен бути додатнім
CREATE TABLE Employees (
ID INT,
Age INT CHECK (Age >= 18)
);
**DEFAULT (Значення за замовчуванням)**
- Встановлює значення за замовчуванням, якщо не вказано інше
- Приклад: Встановлення поточної дати для реєстрації
CREATE TABLE Orders (
OrderID INT,
OrderDate DATE DEFAULT CURRENT_DATE
);
```
Приклад з реального світу: уявіть базу даних школи:
- Кожен студент потребує унікального ID (PRIMARY KEY)
- Студенти повинні мати ім’я (NOT NULL)
- Кожен студент має бути у дійсному класі (FOREIGN KEY)
- Кожен email повинен бути унікальним (UNIQUE)
- Вік повинен бути від 5 до 18 років (CHECK)
- Дата реєстрації за замовчуванням — сьогодні (DEFAULT)
Це гарантує:
- Відсутність дублювання студентів
- Відсутність відсутньої критичної інформації
- Узгодженість даних між таблицями
- Правильний ввід даних
Відносини в базах даних 🤝
Відносини в базах даних — це спосіб, яким ми зв’язуємо або «пов’язуємо» різні таблиці в базі даних одна з одною. Уявіть їх як логічні зв’язки між даними.
Чому відносини важливі? 🎯
- Запобігають дублюванню даних
- Підтримують узгодженість даних
- Дозволяють створювати складні запити між таблицями
- Спрощують управління даними
- Відображають реальні відносини між даними
Типи відносин 📊
1. Відносини "Один до одного" (1:1)
Як людина та її паспорт:
- Одна людина має рівно один паспорт
- Один паспорт належить лише одній людині
-- Приклад: Людина і Паспорт
CREATE TABLE Person (
PersonID INT PRIMARY KEY,
Name VARCHAR(50)
);
CREATE TABLE Passport (
PassportID INT PRIMARY KEY,
PersonID INT UNIQUE,
FOREIGN KEY (PersonID) REFERENCES Person(PersonID)
);
2. Відносини "Один до багатьох" (1:N)
Як вчитель і учні:
- Один вчитель може мати багато учнів
- Кожен учень має тільки одного вчителя
-- Приклад: Вчитель і Учні
CREATE TABLE Teacher (
TeacherID INT PRIMARY KEY,
Name VARCHAR(50)
);
CREATE TABLE Student (
StudentID INT PRIMARY KEY,
Name VARCHAR(50),
TeacherID INT,
FOREIGN KEY (TeacherID) REFERENCES Teacher(TeacherID)
);
3. Відносини "Багато до багатьох" (M:N)
Як студенти і курси:
- Один студент може пройти багато курсів
- Один курс може мати багато студентів
- Потрібна таблиця зв’язку/мостова таблиця
-- Приклад: Студенти і Курси
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(50)
);
CREATE TABLE Courses (
CourseID INT PRIMARY KEY,
CourseName VARCHAR(50)
);
CREATE TABLE Enrollments (
StudentID INT,
CourseID INT,
PRIMARY KEY (StudentID, CourseID),
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);
Висновок
Розуміння баз даних і SQL є важливим для кожного розробника. Почніть з цих основ, практикуйте написання запитів і поступово досліджуйте більш складні концепції. Пам’ятайте: кожен великий додаток, який ви використовуєте сьогодні, залежить від цих основних концепцій!
Кращі практики:
- Завжди робіть резервні копії ваших даних
- Використовуйте відповідні обмеження
- Ретельно плануйте відносини
- Пишіть чистий, задокументований код
Продовжуйте вчитися та експериментувати. Світ баз даних великий і захоплюючий! 🚀
Follow for more technical guides and programming tips!
SQL #Database #Programming #WebDevelopment #Tech #Coding
Перекладено з: Understanding Basics of SQL and Databases