Data Definition Language (DDL) (мова опису даних) – це словник, який використовується для
визначення чи опису структури бази даних.
В DDL входять такі оператори як: CREATE (створити), ALTER (змінити), DROP (видалити).
Оператор CREATE використовується для визначення нових сутностей.
Оператор ALTER використовується для зміни певних існуючих сутностей.
Оператор DROP використовується для видалення існуючих сутностей.
Цілісність бази даних – властивість бази даних, що забезпечує коректність і несуперечність даних, що зберігаються в будь-який момент часу.
Цілісність БД не гарантує достовірності інформації, що міститься в ній, але забезпечує принаймні правдоподібність цієї інформації, відкидаючи свідомо неймовірні, неможливі значення.
Цілісність бази даних забезпечується обмеженнями на дані, що вводяться користувачами.
Data Manipulation Language (DML) – це сімейство комп'ютерних мов, що використовуються користувачами баз даних для отримання, вставки, видалення або зміни даних у базах даних.
Функції DML:
INSERT – вставка даних
SELECT – вибірка даних
UPDATE – зміна даних
DELETE – видалення даних
Типи цілісності бази даних:
1) Доменна цілісність
2) Цілісність сутностей
3) Посилальна цілісність
Цілісність сутностей гарантує унікальність записів у таблицях (сутності).
Обмеження, що забезпечують цілісність сутностей:
1) Використання обмежень первинного ключа(Primary Key)
2) Використання обмежень на унікальність(UNIQUE)
Primary Key (Первинний ключ) – надає посилання для зв'язку з іншими таблицями, а також
визначає обмеження унікальності для стовпця, на якому задається.
Foreign Key (Зовнішній ключ) – визначає стовпець, який посилається на обмеження Primary Key або UNIQUE. Обмеження Foreign Key забороняє вводити дані, що не існують у стовпцях посилання (стовпці з обмеженням Primary Key або UNIQUE).
Зв'язок - це асоціація між двома таблицями, реалізована за допомогою пари FK -> PK або FK -> UNIQUE
Типи зв'язків
Це три основні типи зв'язків, які використовуються для моделювання відносин між сутностями в базах даних та інших системах моделювання даних:
Один до одного (One-to-one): Кожен екземпляр однієї сутності пов'язаний щонайбільше з одним екземпляром іншої сутності, і навпаки. Наприклад, зв'язок між людиною та її паспортом (якщо припустити, що кожна людина має лише один дійсний паспорт, і кожен паспорт належить лише одній людині).
Один до багатьох (One-to-many): Один екземпляр однієї сутності може бути пов'язаний з багатьма екземплярами іншої сутності, але кожен екземпляр другої сутності може бути пов'язаний лише з одним екземпляром першої. Наприклад, зв'язок між автором і його книгами (один автор може написати багато книг, але кожна книга зазвичай має одного основного автора).
Багато до багатьох (Many-to-many): Багато екземплярів однієї сутності можуть бути пов'язані з багатьма екземплярами іншої сутності. Для реалізації такого зв'язку в реляційних базах даних зазвичай використовується проміжна (з'єднувальна) таблиця. Наприклад, зв'язок між студентами та курсами (багато студентів можуть відвідувати багато курсів, і кожен курс може мати багато студентів).
Q&A
Дякую всім за заняття!🙌🏻
❗️🎓Тема уроку: 2. Основы DDL
Нагадую, що дедлайн здачі домашніх робіт – до наступного уроку.
Якщо виникають складнощі, пишіть, допоможу із задоволенням 😌
Запис лекції тренер опублікує трохи пізніше 🖥
Не забудьте повторити матеріал та підготуватися до наступного уроку📚
Успіху і до зустрічі!🤩
Завдання 1: Просте створення таблиці
Створіть таблицю під назвою Клієнти з наступними стовпцями:
id_клієнта - ціле число, первинний ключ, автоінкрементний.
ім'я - текстове поле (VARCHAR) довжиною до 50 символів, обов'язкове для заповнення.
прізвище - текстове поле (VARCHAR) довжиною до 50 символів.
електронна_пошта - текстове поле (VARCHAR) довжиною до 100 символів, повинно бути унікальним.
дата_реєстрації - дата (DATE) зі значенням за замовчуванням поточної дати.
Завдання 2: Створення таблиці з зовнішнім ключем
Створіть дві таблиці: Категорії та Товари.
Таблиця Категорії:
id_категорії - ціле число, первинний ключ, автоінкрементний.
назва_категорії - текстове поле (VARCHAR) довжиною до 50 символів, обов'язкове для заповнення та унікальне.
Таблиця Товари:
id_товару - ціле число, первинний ключ, автоінкрементний.
назва_товару - текстове поле (VARCHAR) довжиною до 100 символів, обов'язкове для заповнення.
опис - текстове поле (TEXT).
ціна - числове поле (DECIMAL) з 10 знаками до коми та 2 знаками після коми.
id_категорії - ціле число, зовнішній ключ, який посилається на стовпець id_категорії таблиці Категорії.
Додайте обмеження зовнішнього ключа, щоб при видаленні категорії всі пов'язані товари також видалялися (ON DELETE CASCADE).
Завдання 3: Зміна структури таблиці
Виконайте наступні дії з таблицею Клієнти, створеною в Завданні 1:
Додайте новий стовпець телефон - текстове поле (VARCHAR) довжиною до 20 символів.
Змініть тип даних стовпця ім'я на VARCHAR(100).
Додайте обмеження NOT NULL до стовпця прізвище.
Видаліть обмеження унікальності зі стовпця електронна_пошта.
Перейменуйте стовпець дата_реєстрації на дата_створення.
Завдання 4: Створення таблиці з кількома унікальними обмеженнями та перевірками
Створіть таблицю Замовлення з наступними стовпцями:
id_замовлення - ціле число, первинний ключ, автоінкрементний.
номер_замовлення - текстове поле (VARCHAR) довжиною до 20 символів, унікальне.
id_клієнта - ціле число, зовнішній ключ, який посилається на стовпець id_клієнта таблиці Клієнти.
дата_замовлення - дата (DATE) зі значенням за замовчуванням поточної дати.
сума_замовлення - числове поле (DECIMAL) з 10 знаками до коми та 2 знаками після коми, повинно бути більше 0 (додайте обмеження CHECK).
статус - текстове поле (VARCHAR) довжиною до 20 символів, за замовчуванням має значення 'В обробці'.
Завдання 5: Видалення таблиць
Видаліть таблиці Товари та Категорії, створені в Завданні 2. Врахуйте залежності між таблицями.
Ці завдання допоможуть вам попрактикуватися у створенні, зміні та видаленні таблиць, а також у визначенні різних типів обмежень (первинні ключі, зовнішні ключі, унікальні, NOT NULL, CHECK, DEFAULT).
Бажаю успіху! Якщо у вас виникнуть питання щодо виконання цих завдань, не соромтеся питати.