Розуміння основ SQL та баз даних

Що таке база даних? 📁

База даних — це організована колекція структурованих даних, що зберігаються в електронному вигляді.
Уявіть її як цифрову систему архівування, яка дозволяє вам:

  • Систематично зберігати дані
  • Швидко отримувати інформацію
  • Оновлювати записи ефективно
  • Підтримувати точність даних

Що таке реляційна база даних? 🔗

Реляційна база даних організовує дані в таблицях з рядками та стовпцями, де дані пов'язані через відношення.

-- Таблиця книг  
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 — Довговічність

  • Завершені транзакції є постійними
  • Зміни переживають збої системи або відключення живлення
  • Приклад: Після підтвердження платежу цей запис є постійним

Приклад з реального світу: подумайте про банківський переказ:

  • Атомарність: Обидва рахунки повинні бути оновлені одночасно
  • Цілісність: Правила балансу повинні дотримуватися
  • Ізоляція: Інші транзакції не побачать часткові оновлення
  • Довговічність: Після підтвердження переказу він є постійним

Обмеження бази даних 🔒

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

Типи обмежень:

  1. PRIMARY KEY (Первинний ключ)
  • Робить кожен рядок унікальним (як номер Aadhaar)
  • Не може містити значення NULL
  • Тільки одне на таблицю
  • Приклад: StudentID у таблиці студентів
CREATE TABLE Students (  
 StudentID INT PRIMARY KEY,  
 Name VARCHAR(50)  
);
  1. FOREIGN KEY (Зовнішній ключ)
  • Створює зв'язки між таблицями
  • Має відповідати первинному ключу іншої таблиці
  • Може бути NULL
  • Приклад: Зв'язок між працівниками та відділами
CREATE TABLE Employees (  
 EmployeeID INT PRIMARY KEY,  
 DepartmentID INT,  
 FOREIGN KEY (DepartmentID) REFERENCES Departments(DeptID)  
);
  1. NOT NULL (Не NULL)
  • Забезпечує, щоб у колонці було значення
  • Не можна залишати порожнім
  • Приклад: Неможливо мати студента без імені
CREATE TABLE Students (  
 StudentID INT,  
 Name VARCHAR(50) NOT NULL  
);
  1. UNIQUE (Унікальне)
  • Забезпечує, щоб усі значення в колонці були різними
  • Може містити NULL (на відміну від PRIMARY KEY)
  • Приклад: Адреси електронної пошти повинні бути унікальними
CREATE TABLE Users (  
 UserID INT,  
 Email VARCHAR(100) UNIQUE  
);
  1. 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

Leave a Reply

Your email address will not be published. Required fields are marked *