Шаблон бази даних

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Шаблони реляційних баз даних — це шаблони, які використовуються в проекті реляційних баз даних.

Основні типи таблиць

[ред. | ред. код]
Довідкова Таблиця
Довідкова таблиця — це таблиця, яка залишається відносно постійною протягом часу і має відносно невелику кількість стовпців. Часто зустрічаються Ключ — Значення — Довідкова таблиця, тільки з двома стовпцями. Як ключі слід використовувати рядки, щоб уникнути об'єднання[1][2]
Головна таблиця
Головна таблиця — це таблиця, яка поміщає властивості об'єкта (особа, адреса і т. д.) в окремі стовпці. При цьому маленькі головні таблиці повинні містити унікальну рядок; для великих головних таблиць, вміст яких часто змінюється, ціле число повинно бути створено як ключ.
Таблиця транзакцій
Таблиця транзакцій — зберігає взаємодії або події між головними таблицями. Наприклад, список об'єктів, які клієнт поклав у кошик. Як ключ слід використовувати автоматично згенеровані цілі числа.
Таблиця перехресних посилань
Таблиця перехресних посилань — являє собою таблицю у відносини між майстром таблиць зберігаються. В таблиці перехресних посилань відношення n: n і відображаються в кількох рядках. Як ключ слід вибрати комбінацію з декількох стовпців.

Додаткові типи таблиць

[ред. | ред. код]
Обмежені транзакції
Обмеженою транзакцією називається обмеження на таблиці, яке визначає, які транзакції дозволені і коли. Цей шаблон можна використовувати для зниження відповідних перевірок на сторінці додатка і для підвищення безпеки бази даних від неправильно реалізованих програм.[2]
Перехідний первинний ключ
Перехідний первинний ключ використовується, коли властивість об'єкта пропонується як первинний ключ (наприклад — номер клієнта), але може бути змінена. У цьому разі відповідну властивість можна використовувати як первинний ключ, але зміни повинні реєструватися в таблиці історії, щоб гарантувати подальше зіставлення.[3]

Шаблон зовнішнього ключа

[ред. | ред. код]
Обмеження зовнішнього ключа
Обмеження зовнішнього ключа — вказує, якщо видалення записів (рядків) з однієї таблиці не видаляє записи, пов'язані із записами в іншій таблиці. Таким чином, обмеження зовнішнього ключа є протилежністю зовнішнього ключа каскаду. У SQL робиться обмеження зовнішнього ключа за допомогою команди DELETE RESTRICT. Ця поведінка за замовчуванням для більшості реалізацій баз даних, якщо вказана тільки команда DELETE
Зовнішній ключ
Каскад іноземних ключів є протилежністю обмеження зовнішнього ключа. Видаляючи запис, пов'язані з ним записи також видаляються.
У SQL виникає обмеження зовнішнього ключа за допомогою команди DELETE CASCADE.
Перевірка перехресних посилань
Перевірка перехресних посилань використовується, коли стовпчики в головній таблиці повинні мати певний зв'язок. Це відношення зберігається в окремій таблиці перехресних посилань. Розділена таблиця перехресних посилань збільшує споживання ресурсів бази даних, але її необхідно використовувати для перевірки достовірності даних.

Шаблон безпеки

[ред. | ред. код]
Таблиця пошуку тільки для читання
Таблиця пошуку тільки для читання — це таблиця, що визначає зв'язок між двома таблицями, вміст якої можна задати, але може бути змінено тільки певними ролями або групами. Прикладом є зв'язування деяких продуктів зі знижкою.

Шаблон денормалізації

[ред. | ред. код]

Шаблони денормалізації дозволяють денормалізувати базу даних з метою покращення її поведінки під час виконання.

Вибірка
При вибірці дані копіюються з однієї таблиці в іншу (тимчасову) таблицю (наприклад, таблицю транзакцій). Зверніть увагу, що зміна вихідної таблиці не буде автоматично застосовано до таблиці.
Попередня агрегація
За попередньою агрегації значення з різних джерел обчислюються заздалегідь в ході однієї (тривалої) пакетної обробки і зберігається в іншій таблиці. Значення не перераховуються при кожному запиті, а обчислюються тільки в ході наступної пакетної обробки. Перевага полягає в тому, що доступ до бази даних значно швидший, а ресурси можна заощадити. Негативно позначається на тому, що недавні зміни в розрахунках не враховуються.
Розширення
Розширення таблиці відбувається, коли стовпець у таблиці формується шляхом обчислення з інших стовпців. Це означає, що обчислення не потребуется повторно при кожному запиті, а тільки в тому випадку, якщо запис змінюється.

Об'єктно-реляційна модель поведінки

[ред. | ред. код]
Таблиця для ієрархії спадкування
(англійською мовою: Single Table Inheritance) використовується одна таблиця для кожного класу, щоб клас дерево відобразити у базі даних.[4]
Таблиця для підкласу
(англійською мовою: Table Class Inheritance) використовує свою власну таблицю для кожного конкретного або абстрактного класу, щоб клас дерево відобразити в базі даних.[4]
Таблиця для конкретного класу
(англійською мовою: Concrete Table Inheritance) використовує свою власну таблицю для кожного конкретного класу, щоб клас дерево відобразити в базі даних.[4]

Бібліографія

[ред. | ред. код]
  1. Database Skills: A Sane Approach To Choosing Primary Keys. The Database Programmer (англ.). 14 січня 2008. Архів оригіналу за 30 квітня 2018. Процитовано 6 березня 2013.
  2. а б Table Design Pattern: Limited Transaction. The Database Programmer (англ.). 27 лютого 2008. Архів оригіналу за 1 квітня 2018. Процитовано 6 березня 2013.
  3. The Primary Key That Wasn’t. The Database Programmer (англ.). 24 лютого 2008. Архів оригіналу за 1 квітня 2018. Процитовано 6 березня 2013.
  4. а б в Martin Fowler: Patterns of Enterprise Application Architecture. Addison-Wesley-Longman, Amsterdam, ISBN 0-321-12742-0.