Таблиці даних та індекси можуть бути збережені на диск в одній з декількох форм, включаючи впорядковані/невпорядковані плоскі файли, ISAM, хеш файли, хеш-таблиці, або B+ дерева. Кожна форма має свої особливі переваги та недоліки. Найбільш часто використовувані форми B+ дерева і ISAM[1] (англ. Indexed Sequential Access Method — індексно-послідовний метод доступу). Такі форми або структури є одним з аспектів загальної схеми, яка використовується рушієм бази даних для зберігання інформації.

Невпорядкована плоска база даних ред.

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

 
Плоска база даних

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

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

Впорядкована плоска база даних ред.

Впорядковане збереження, як правило, зберігає записи впорядковано, при додаванні нового запису вимагається зміна порядку або збільшення розміру файлу, в результаті ми маємо низьку ефективність при додаванні нового запису. Проте, упорядковане збереження забезпечує більш ефективний пошук, коли записи попередньо відсортовані, у результаті чого складність становить  .

Структуровані файли ред.

Купа ред.

Тут мається на увазі невпорядковані записи змінного розміру, не плутати з купою - структурою даних, що є впорядкованою.

  • Найпростіший метод збереження
    • ефективне додавання елементів, нові записи додаються в кінець файлу, в хронологічному порядку.
    • неефективний пошук, бо він має лінійну складність.
    • видалення здійснюється шляхом маркування вибраних записів маркером «видалені»
    • вимагає періодичної реорганізації, якщо файл часто змінюється
  • Переваги методу
    • ефективний для масового завантаження даних
    • ефективний для відносно невеликих взаємозв'язків, оскільки дозволяє зекономити на процедурі реіндексу.
    • ефективний при такому типі пошуку, коли результатом пошуку є значна частина записів, що зберігається в такій базі.
  • Недоліки
    • неефективний для вибіркового пошуку з допомогою ключових значень, особливо якщо вони ці значення - великі
    • сортування може зайняти багато часу
    • не підходить для часто змінюваних таблиць
 
Хеш таблиця

Хеш-бакети ред.

Бакетом (англ. bucket — відро) називають набір елементів хеш‑таблиці зі співпадаючими/близькими за значеннями хеш‑функціями.

  • Хеш-функції обчислюють адресу сторінки, в якій записи зберігаються на основі одного або декількох полів запису
    • функції хешування вибрані, щоб переконатися, що адреси рівномірно розподілені по всьому адресному просторі
    • 'місткість' як правило, від 40 % до 60 % від загального розміру файлу
    • унікальність адрес не гарантується, так що необхідно виявляти колізії і використовувати механізми для їх вирішення
  • Відкрита адресація
  • Зв'язані/розв'язані переповнення
  • Плюси і мінуси:
    • ефективний для точного збігу ключових полів
    • не підходить для вилучення діапазону, яке вимагає послідовне зберігання
    • підраховує, де зберігаються записи на основі полів запису
    • хеш-функції забезпечують рівномірне поширення даних
    • можливі колізії, тому необхідне їх виявлення  і відновлення
 
B+ дерево

B+ дерева ред.

Є найбільш часто використовуваними на практиці.

Час, витрачений на доступ до будь-якого запису — це ж те ж саме, що і число шуканих вузлів.

Коли індекс є повним індексом, тоді файл даних не повинен бути рядкованим

  • Плюси та мінуси:
    • універсальна структура даних послідовного і довільного доступу
    • швидкий доступ
    • ефективно підтримується exact, range, part key та pattern matches
    • летючі файли не є ефективними, тому що індекс — динамічно збільшується і зменшується, коли таблиця збільшується і зменшується
    • менше підходить для відносно стабільних файлів — в цьому випадку, ISAM є більш ефективним

Орієнтація даних ред.

Більшість звичайних реляційних баз даних використовують «рядково-орієнтоване» зберігання, що означає, що всі дані, пов'язані з даним рядком, зберігаються разом. «Колонко-орієнтована» СУБД, навпаки, зберігає всі дані з певного стовпця разом для швидшого виконання запитів в базі даних. Кореляційна база даних схожа на «рядково-орієнтовану» базу даних, але використовує багато побічнних шарів для зіставлення декількох примірників одного значення для числового ідентифікатора.

Див. також ред.

  1. Indexed Sequential Access Method (ISAM). www.ibm.com (en-us) . Процитовано 8 серпня 2022.