Як працює двигун бази даних SQL

  • 1 февраля, 16:31
  • 2868
  • 0

Кожен програміст знає, що таке SQL, і ймовірніше, має досвід роботи з цією базою данних. Але чи знаєте ви що таке двигун SQL і як насправді він працює? Давайте розглянемо.

SQL - мова програмування чи мова запитів?

За допомогою SQL ми можемо взаємозамінно використовувати мову запитів і програмування, тож багато розробників називають SQL своєрідною мовою програмування, оскільки SQL-двигун містить: компілятор, що компілює команди запитів у процедури та віртуальну машину, що виконує ці процедури. Концепція двигуна SQL та виконання запиту роблять його мовою програмування. Тож якщо хтось каже, що SQL - мова програмування, то він певною мірою правий.

  Як працює двигун бази даних SQL

Навіщо використовувати SQL, якщо будь-яка мова програмування може створити CRUD?

За допомогою будь-якої мови програмування ми можемо створити програму, яка може виконувати прості операції CRUD (Create Read Update and Delete), але коли надходять складні запити, потрібно буде написати сотні рядків для еквівалентних кількох рядків SQL.

Огляд SQL

SQL розшифровується як "Структурована мова запитів", яку можна називати або мовою програмування, або мовою запиту, головне призначення SQL - взаємодія з реляційною базою даних, в якій зберігаються дані в табличній формі. SQL може керувати великою кількістю даних, особливо якщо дані записуються одночасно і у нас є багато переходів над цими даними.

Коли користувач використовує SQL для управління даними, то отримує можливість створювати, отримувати, оновлювати та видаляти дані між різними базами даних. Існують різні системи управління реляційними базами даних (СУБД), такі як MySQL, SQLite, Postgres SQL.

Що таке двигун SQL?

Двигун SQL - це певне програмне забезпечення, яке збирає та інтерпретує команди SQL, щоб відповідні операції можна було виконати на реляційній базі даних. Завдання двигуна SQL - створення, зчитування, оновлення та видалення (CRUD) інформації із бази даних.

Синонім: storage engine або database engine

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

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

Як працює двигун бази даних SQL?

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

Повне виконання запиту - це 3 основні етапи:

  1. Компіляція (синтаксичний аналіз, перевірка та семантика, зв'язок)
  2. Оптимізація
  3. Виконання

Компіляція-синтаксичний аналіз

Це частина компілюючого процесу, при синтаксичному аналізі запит токенізується в окремі слова.

Компіляція-перевірка-семантика

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

Компіляція-зв'язування

Вона створює відповідне бінарне представлення для введеного оператора запиту. Усі двигуни SQL-сервера мають цей стан компіляції, коли генерується байт-код. На цьому етапі оператор компілюється і буде відправлений на сервер бази даних для оптимізації та виконання.

Оптимізація

Оптимізує найкращий алгоритм для байтового коду. Ця функція також відома як Оптимізатор запитів або Реляційний двигун.

Виконання

Віртуальна машина отримує Оптимізований байт-код і виконує його.

SQL STATEMENT --> Parsing -->Binding --> Query Optimization --> Query Execution --> Result

Перетворення SQL даних у таблицю

SQL був написаний на C, і він використовує принцип Binary-Tree, який дозволяє зберігати вхідні дані в рядках і стовпцях. У двійковій структурі дерева у нас є кілька гілок, які постійно вказують на новий елемент даних, та ж структура йде в базі даних SQL, в якій дані перетворюються на таблиці, де кожен стовпець і рядки даних вказують один на одного.

Джерело перекладу


0 комментариев
Сортировка:
Добавить комментарий