Введіть щонайменше 2 символи для пошуку в усіх галузях.
Англійська термінологія баз даних і SQL — пояснення українською
Запити SQL, повідомлення про помилки, плани виконання й документація СКБД містять спільну англійську лексику. Тут можна розібрати значення термінів про таблиці, ключі, індекси, транзакції та резервне копіювання, щоб точніше читати документацію й обговорювати зміни бази даних з командою.
- 100 термінів
- 10 тем
- 47 основних термінів
- 200 прикладів
Основи баз даних
Упорядкована сукупність даних, збережених на комп’ютері, щоб програми й люди могли швидко знаходити, додавати, змінювати та видаляти інформацію.
Тип бази даних, у якій дані зберігаються в таблицях із рядками та стовпцями, а таблиці пов’язуються ключами. Даними зазвичай керують за допомогою SQL.
Database management system — програмне забезпечення, що зберігає дані, виконує запити, керує доступом і захищає дані, наприклад PostgreSQL або Oracle.
Object-relational mapping — бібліотека, що дає змогу працювати з рядками бази як з об’єктами мови програмування та генерує для них SQL.
Create, Read, Update, Delete — чотири базові операції з даними, яким відповідають інструкції SQL INSERT, SELECT, UPDATE та DELETE.
Центральна база для звітів і аналізу, що збирає історичні дані з багатьох систем і розрахована на великі запити читання, а не часті дрібні оновлення.
Online transaction processing — навантаження бази з багатьох невеликих швидких операцій читання й запису від користувачів, наприклад оформлення замовлень або оновлення профілів.
Таблиці, схеми та об’єкти баз даних
Структура реляційної бази даних, що зберігає дані про один тип об’єктів у рядках і стовпцях, наприклад усіх клієнтів або замовлення.
Один горизонтальний рядок таблиці, що містить усі значення для окремого елемента, наприклад клієнта чи замовлення.
Вертикальна частина таблиці з назвою й типом даних, яка зберігає дані одного типу для кожного рядка, наприклад email або created_at.
Структура бази даних: її таблиці, стовпці, типи даних, ключі та зв’язки. У деяких продуктах це також іменована група таблиць усередині бази даних.
Повний набір даних про один об’єкт, наприклад клієнта чи рахунок; у реляційній таблиці це те саме, що рядок.
Вид значень, які може містити стовпець: наприклад, цілі числа, текст, дати або булеві значення. Він визначає допустимі дані та обсяг пам’яті.
Спеціальна позначка, що означає відсутнє або невідоме значення. Це не те саме, що нуль чи порожній рядок.
Інструкція SQL, що створює таблицю, задаючи її назву, стовпці з типами даних та обмеження, наприклад первинний ключ.
Інструкція SQL, що змінює структуру наявної таблиці, наприклад додає, перейменовує чи видаляє стовпець або додає обмеження.
Збережений запит SELECT, яким можна користуватися як таблицею. Зазвичай власних даних він не зберігає, а щоразу показує поточний результат запиту.
Іменований блок SQL-коду, збережений у базі даних; він може приймати параметри й повторно виконуватися одним викликом.
Значення, яке стовпець отримує автоматично, коли під час додавання рядка для нього не вказано значення, наприклад 0, pending або поточний час.
Фрагмент коду, збережений у базі даних і автоматично виконуваний, коли з таблицею відбувається подія, наприклад вставлення, оновлення чи видалення.
Версійований скрипт, що контрольовано змінює схему бази даних; у ширшому значенні — проєкт перенесення даних між базами або системами.
Оператори й запити SQL
Structured Query Language — стандартна мова для створення таблиць і читання, додавання, зміни та видалення даних у реляційних базах даних.
Звернення до бази даних для читання або зміни даних, зазвичай записане мовою SQL. Як дієслово to query означає запитувати дані в бази.
Інструкція SQL, яка читає дані з однієї чи кількох таблиць і повертає відповідні рядки, не змінюючи базу даних.
Частина SQL-інструкції, що задає умову: читаються, оновлюються або видаляються лише рядки, які їй відповідають.
Операція SQL, що поєднує рядки двох або більше таблиць за пов’язаним стовпцем, наприклад ідентифікатором клієнта. Як дієслово, to join означає так об’єднувати таблиці.
Інструкція SQL, що додає до таблиці один або кілька нових рядків: INSERT INTO, далі назви стовпців і їхні значення.
Інструкція SQL, що змінює значення в наявних рядках; зазвичай її обмежують умовою WHERE, щоб змінити лише потрібні записи.
Інструкція SQL, що видаляє рядки з таблиці. З умовою WHERE вона видаляє лише відповідні рядки, а без неї — усі.
Частина SQL-запиту, що сортує рядки результату за одним або кількома стовпцями за зростанням (ASC) або спаданням (DESC).
Частина SQL-запиту, що об’єднує рядки з однаковими значеннями в групи, щоб для кожної групи обчислити суму, кількість або середнє.
Функція SQL, що приймає багато рядків і повертає одне підсумкове значення, наприклад COUNT, SUM, AVG, MIN або MAX.
Об’єднання, що повертає лише рядки, які мають відповідник в обох таблицях; рядки без пари відкидаються.
Об’єднання, що повертає всі рядки першої (лівої) таблиці та відповідні рядки другої; якщо відповідника немає, стовпці другої таблиці матимуть NULL.
Запит у дужках усередині іншого запиту, результат якого використовує зовнішній запит, наприклад як список значень для фільтрування.
Частина SQL-запиту, що фільтрує групи після виконання GROUP BY, зазвичай за результатом агрегатної функції COUNT або SUM.
Форма інструкції SELECT, що вилучає дублікати з результату, залишаючи кожну комбінацію повернутих значень лише один раз.
Тимчасова коротка назва таблиці або стовпця в запиті, зазвичай із ключовим словом AS, що робить запит коротшим або результат зрозумілішим.
Вставляти рядок, якщо його ще немає, або оновлювати його, якщо він уже існує, однією операцією. Слово поєднує update та insert.
Common table expression — іменований тимчасовий результат, визначений через WITH на початку запиту, який основний запит далі використовує як таблицю.
Функція SQL, що обчислює значення для набору пов’язаних рядків, наприклад накопичувальну суму чи ранг, але повертає кожен окремий рядок.
Оператор SQL, що ставить результати двох чи більше SELECT один під одним в один набір, вилучаючи повторювані рядки.
Видаляти всі рядки таблиці одразу командою TRUNCATE TABLE, зберігаючи саму таблицю та її структуру; це значно швидше, ніж видаляти рядки по одному.
Data definition language — інструкції SQL для створення, зміни й видалення об’єктів бази даних, наприклад CREATE, ALTER і DROP.
Data manipulation language — інструкції SQL для роботи з даними в таблицях, насамперед INSERT, UPDATE, DELETE і часто SELECT.
Ключі та обмеження
Стовпець або набір стовпців, значення яких однозначно визначає кожен рядок таблиці. Значення не може бути порожнім, і в різних рядках воно не повторюється.
Стовпець однієї таблиці, що посилається на первинний ключ іншої таблиці, пов’язує їх і не дає зберігати посилання на відсутні рядки.
Правило для таблиці або стовпця, яке база даних застосовує автоматично й відхиляє дані, що його порушують.
Правило, що забороняє двом рядкам мати однакове значення в одному стовпці або комбінації стовпців, наприклад однакову адресу електронної пошти.
Описує числовий стовпець, значення якого база автоматично заповнює наступним числом послідовності під час додавання кожного рядка.
Ключ із двох або більше стовпців, які ідентифікують рядок лише разом, наприклад ID замовлення та ID товару в таблиці позицій замовлення.
Штучний ключ без значення для бізнесу, наприклад автоінкрементне число або UUID, створений лише для ідентифікації кожного рядка.
Правило, за яким кожне посилання між таблицями має вказувати на наявний рядок, щоб не виникали замовлення для відсутніх клієнтів.
Про видалення чи оновлення: автоматично поширювати дію з батьківського рядка на всі дочірні рядки, пов’язані з ним зовнішнім ключем.
Моделювання даних і нормалізація
Упорядкування таблиць так, щоб кожен факт зберігався лише в одному місці; це зменшує дублювання даних і запобігає помилкам під час оновлення.
Схематичне зображення проєкту бази даних, що показує сутності (зазвичай таблиці), їхні атрибути та зв’язки, наприклад один-до-багатьох.
Зв’язок між двома таблицями, у якому одному рядку першої можуть відповідати багато рядків другої, але кожен із них належить лише до одного рядка першої таблиці, як клієнт і його замовлення.
Зв’язок, у якому багато рядків однієї таблиці можуть відповідати багатьом рядкам іншої, як студенти й курси. Для пар потрібна проміжна таблиця.
Навмисне зберігання тих самих даних у кількох місцях або об’єднання таблиць для швидшого читання з додатковою потребою підтримувати копії узгодженими.
Один із набору правил проєктування таблиць (1NF, 2NF, 3NF і вище); кожен рівень усуває певний вид повторюваних або неправильно розміщених даних.
Або тип зв’язку між таблицями (один-до-одного, один-до-багатьох, багато-до-багатьох), або кількість різних значень у стовпці.
Індекси та продуктивність запитів
Додаткова структура даних, побудована за одним або кількома стовпцями, яка допомагає швидко знаходити рядки без читання всієї таблиці, подібно до покажчика наприкінці книжки.
Покрокова стратегія, яку база даних обирає для виконання запиту; вона показує використані індекси, спосіб об’єднання таблиць і очікувану кількість рядків.
Компонент рушія бази даних, який аналізує запит і статистику таблиць, обирає найдешевший спосіб виконання та формує план виконання.
Індекс, що визначає фізичний порядок зберігання рядків таблиці; тому в таблиці може бути лише один такий індекс, а решта є некластерними.
Читання кожного рядка таблиці, щоб знайти потрібні запиту, замість переходу безпосередньо до них за індексом.
Запит, що виконується довше за погоджений поріг, сповільнює застосунок і витрачає ресурси бази даних.
Набір відкритих з’єднань із базою, які застосунок тримає напоготові й повторно використовує замість повільного створення нового з’єднання для кожного запиту.
Поділ великої таблиці на менші частини — партиції — за правилом на кшталт діапазону дат або регіону, при цьому для запитів вона й далі виглядає як одна таблиця.
Швидкий рівень зберігання, що тримає копії часто використовуваних даних або результатів запитів, аби віддавати їх без повторного звернення до бази.
Робота з прискорення повільних запитів через аналіз планів виконання, додавання індексів, переписування SQL або зміну налаштувань бази.
Транзакції та конкурентний доступ
Група операцій бази даних, що вважаються однією одиницею: або всі успішно виконуються разом, або жодна не застосовується.
Завершити транзакцію й зробити всі її зміни постійними, щоб їх бачили інші сеанси й вони збереглися після збою.
Скасування транзакції, унаслідок якого всі її зміни відкидаються й дані повертаються до стану перед її початком.
Atomicity, Consistency, Isolation, Durability — чотири гарантії надійності транзакцій бази даних навіть за помилок, збоїв і одночасної роботи багатьох користувачів.
Налаштування, що визначає, наскільки зміни інших транзакцій видимі поточній; воно встановлює компроміс між безпекою даних, швидкістю та паралельністю.
Позначка, яку база ставить на рядок, сторінку або таблицю, щоб інші транзакції не могли змінити її, а іноді й прочитати, доки поточна транзакція не завершиться.
Ситуація, коли дві чи більше транзакцій чекають на блокування, яке утримує інша, і жодна не може продовжити, доки база не скасує одну з них.
Бази даних NoSQL
Широка група баз даних, що не використовують класичну модель таблиць і SQL, а зберігають дані як документи, пари ключ-значення, широкі стовпці або графи.
База NoSQL, що зберігає кожен елемент як самодостатній документ, зазвичай у форматі на кшталт JSON, тож пов’язані дані можна тримати разом без фіксованих таблиць.
Найпростіший тип бази NoSQL, у якому кожне значення зберігається під унікальним ключем і швидко знаходиться за цим ключем.
Гарантія, що за відсутності нових змін усі копії даних згодом стануть однаковими, хоча читання може тимчасово повертати застарілі значення.
Ідея про те, що під час мережевого розділення розподіленої бази вона мусить обирати між узгодженістю (однаковими даними всюди) та доступністю (відповідями на запити).
База NoSQL, що зберігає дані як вузли, пов’язані ребрами, і швидко проходить зв’язками на кшталт «друзі друзів».
У документній базі, наприклад MongoDB, група документів, що зберігаються разом; подібна до таблиці в реляційній базі.
База даних, що зберігає основну частину даних у RAM, а не на диску, завдяки чому читання й запис відбуваються надзвичайно швидко.
Резервне копіювання, реплікація та масштабування
Копія бази даних, збережена на певний момент часу, з якої можна відновити дані після збою, помилки чи атаки.
Підтримання копій тієї самої бази на кількох серверах шляхом передавання кожної зміни з одного сервера на інші — для надійності та розподілу навантаження.
Повертати базу даних з резервної копії, щоб виправити втрату даних або створити її копію на іншому сервері.
Повернення бази до точного стану на вибраний момент, наприклад за хвилину до помилкового DELETE, шляхом відтворення збережених журналів змін поверх резервної копії.
Копія бази даних, що отримує зміни з основного сервера й використовується лише для запитів читання, зменшуючи навантаження на основний сервер.
Перенесення роботи з несправного основного сервера бази даних на резервний сервер або репліку, щоб застосунок міг і далі працювати.
Розподіл великого набору даних між кількома серверами, кожен з яких зберігає окрему частину рядків, щоб система могла перерости можливості однієї машини.
Проєктування системи бази даних так, щоб вона працювала майже без простоїв навіть у разі відмови сервера, диска або дата-центру.
Файл зі структурою й даними бази, записаними як інструкції SQL або в спеціальному форматі експорту, який можна завантажити в іншу базу.
Адміністрування та безпека
Database administrator — фахівець, відповідальний за встановлення, захист, резервне копіювання, налаштування продуктивності та безперебійну роботу баз даних компанії.
Дозвіл, що надає користувачу або ролі бази даних право на конкретну дію, наприклад читати таблицю, вставляти рядки чи створювати об’єкти.
Атака, під час якої зловмисник вводить SQL-код у поле введення, через що застосунок виконує його й дає змогу прочитати, змінити або видалити дані.
Надавати користувачу або ролі бази даних дозвіл на певну дію за допомогою SQL-інструкції GRANT; REVOKE відкликає дозвіл.
Іменований набір привілеїв бази даних, який можна призначити багатьом користувачам, наприклад read_only або app_writer, щоб спростити керування дозволами.
Короткий тест: чи знаєте ви ці терміни?
Десять запитань зі словника. Оберіть правильне значення кожного терміна та перевірте результат.
Як вивчати лексику: Бази даних
- Читайте англійські описи помилок і плани виконання власних запитів; звіряйте незнайомі слова з документацією своєї СКБД.
- Вивчайте сполучення цілком: run a query, create an index, take a backup, restore a database, commit a transaction.
- Порівнюйте близькі терміни: DELETE, TRUNCATE і DROP; WHERE і HAVING; backup і replica. Запишіть, яка саме дія або об’єкт відрізняє кожну пару.
- Поясніть один свій SQL-запит англійською: які стовпці він вибирає, звідки бере дані та як їх фільтрує.
- Перевіряйте вимову query, schema і cache окремо від написання; cache звучить так само, як cash.
Поширені запитання
З яких англійських термінів баз даних почати?
Почніть із table, row, column, query, primary key, foreign key, index, schema, transaction і NULL, а також SELECT, INSERT, UPDATE та DELETE. Далі переходьте до об’єднання таблиць, групування, планів виконання й відновлення даних.
Як учити терміни SQL у робочому контексті?
Читайте документацію, повідомлення про помилки та пояснення планів виконання. Використовуйте нові сполучення в описах міграцій і коментарях до запитів: так слово пов’язується з реальною дією, а не лише з перекладом.
Як вимовляють SQL?
Поширені обидва варіанти: назви англійських літер S-Q-L і слово sequel. У назвах конкретних продуктів можуть бути усталені варіанти вимови; слухайте, як назву використовує розробник продукту.
Чи однакові назви використовують різні СКБД?
Базові поняття таблиці, ключа, індексу й транзакції спільні, але конкретні засоби та синтаксис різняться. Наприклад, автоматичну нумерацію можна зустріти як AUTO_INCREMENT у MySQL, IDENTITY у SQL Server або identity column у PostgreSQL. Спершу засвойте поняття, потім назву у своїй системі.
Навіщо знати й український відповідник, і англійський термін?
Український відповідник допомагає пояснити поняття, а англійський потрібен для документації, пошуку помилок і спілкування з міжнародною командою. Корисно записувати пари на зразок primary key — первинний ключ і stored procedure — збережена процедура.
Пов’язані галузі
Закріплюйте лексику читанням
Тексти відповідного рівня допомагають запам’ятовувати нові слова. Оберіть безкоштовні книжки англійською:
