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

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

ред.
Довідкова Таблиця
Довідкова таблиця — це таблиця, яка залишається відносно постійною протягом часу і має відносно невелику кількість стовпців. Часто зустрічаються Ключ — Значення — Довідкова таблиця, тільки з двома стовпцями. Як ключі слід використовувати рядки, щоб уникнути об'єднання[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.