Що саме є двигуном бази даних?


14

Я кілька разів пройшов визначення на http://en.wikipedia.org/wiki/Database_engine :

Двигун бази даних (або "двигун зберігання даних") є базовим програмним компонентом, який система управління базами даних (СУБД) використовує для створення, зчитування, оновлення та видалення (CRUD) даних із бази даних.

Що я не розумію - це те, що залишається робити, чи не CRUD все те, що роблять бази даних?

Якщо двигун бази даних виконує ці функції, що робить решта бази даних?


Для прямої відповіді на питання, поставлене жирним шрифтом ( що робить решта бази даних? ), Дивіться відповідь Брайана. Для отримання більш чіткої інформації про те, що робить двигун бази даних, окрім CRUD, дивіться у відповіді Лі.
nealmcb

Відповіді:


15

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

Для порівняння по суті транспортний засіб - це пристрій, що використовується для транспортування. Незважаючи на те, що це правда, це визначення, безумовно, не включає всі деталі, що містяться в сучасному автомобілі.

Двигун бази даних може обробляти декілька користувачів, транзакції , MVCC (Multiversion Concurrency Control) , буфери та кеші, ACID (атомність, консистенція, ізоляція, довговічність) , а також різні рівні ізоляції . Читання може витягувати дані з пам’яті, віддалених баз даних та декількох таблиць при обробці їх на диску за допомогою SQL через декілька явних та / або неявних кодових шляхів, щоб представити їх запитувальній програмі. Створення може виділяти сховища, структури забезпечення, присвоювати значення та робити власну обробку перед зберіганням даних. І т.д.


Це дуже компактний, але повноцінний варіант відповіді. +1 !!!
RolandoMySQLDBA

BTW Приємна аналогія щодо транспортного засобу та конкретного типу транспортного засобу.
RolandoMySQLDBA

На мою думку, транзакціями, гарантією ACID, рівнями ізоляції, контролем сумісності, буферами, кешами все керує сам Механізм баз даних. Чому я так кажу? ... Перевірте це linux.org/threads/an-introduction-to-mysql-storage-engines.4220
Шату

@Leigh, Чи не сумісність (відсутність) особливості двигуна зберігання даних, а не СУБД? Якщо це особливість СУБД, то чому MariaDB / MySQL не може робити транзакції для певних двигунів зберігання даних, таких як MyISAM?
Pacerier

@Pacerier - Це може бути справедливо для систем, які роблять розділення між СУБД і механізмом зберігання даних, для інших це розмежування безглуздо.
Leigh Riffel

12

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

"Решта" програмного забезпечення бази даних забезпечує загальний інтерфейс для використання через API або термінали, дозволяє здійснювати складні дії (наприклад, приєднання, підзапити тощо) та керує здоров'ям / статусом та конфігурацією включених двигунів. Для годування та догляду за двигуном дуже багато, і програмне забезпечення для бази даних приховує всю цю складність.


Дякуємо, що насправді відповідали на поставлене жирне запитання!
nealmcb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.