База даних

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

База даних (англ. database) – це сукупність даних, організованих відповідно до концепції, яка описує характеристику цих даних і взаємозв'язки між їх елементами; ця сукупність підтримує щонайменше одну з областей застосування (за стандартом ISO/IEC 2382:2015[1]). В загальному випадку база даних містить схеми, таблиці, подання, збережені процедури та інші об'єкти. Дані у базі організовують відповідно до моделі організації даних. Таким чином, сучасна база даних, крім саме даних, містить їх опис та може містити засоби для їх обробки.

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

Історія розвитку[ред.ред. код]

  • 1960-ті рр. розроблення перших БД. CODASYL — мережева модель даних та одночасно незалежне розроблення ієрархічної БД фірмою North American Rockwell, яка пізніше взята за основу IMS — власної розробки IBM.
  • 1970-ті рр. наукове обґрунтування Едгаром Ф. Коддом основ реляційної моделі, котра на початку зацікавила лише наукові кола. Уперше цю модель було використано у БД Ingres (Берклі) та System R (IBM), що були лише дослідними прототипами, анонсованими протягом 1976 року.
  • 1980-ті рр. поява перших комерційних версій реляційних БД Oracle та DB2. Реляційні БД починають успішно витісняти мережеві та ієрархічні. Дослідження децентралізованих (розподілених) систем БД, проте вони не відіграють особливої ролі на ринку БД.
  • 1990-ті рр. увага науковців спрямовується на об'єктно-орієнтовані БД, які знайшли застосування в першу чергу в тих галузях, де використовуються комплексні дані: інженерні, мультимедійні БД.
  • 2000-ні рр. головним нововведенням є підтримка та застосування XML у БД. Розробники комерційних БД, які панували на ринку у 1990-их рр., отримують все більшу конкуренцію з боку руху відкритого програмного забезпечення. Реакцією на це стає поява безкоштовних версій комерційних БД.

Системи керування базами даних (СКДБ)[ред.ред. код]

У сучасних інформаційних системах для забезпечення роботи з базами даних використовують системи керування базами даних (СКДБ). Система керування базами даних — це система, основана на програмних та технічних засобах, яка забезпечує визначення, створення, маніпулювання, контроль, керування та використання баз даних (за стандартом ISO/IEC 2382:2015[2]). Застосунки для роботи з базою даних можуть бути частиною СКБД або автономними. Найпопулярнішими СКДБ є MySQL, PostgreSQL, Microsoft SQL Server, Oracle, Sybase, Interbase, Firebird та IBM DB2. СКДБ дозволяють ефективно працювати з базами даних, обсяг яких робить неможливим їх ручне опрацювання.

Через тісний зв'язок баз даних з СКДБ під терміном «база даних» інколи необґрунтовано та неточно мають на увазі систему керування базами даних. Але варто розрізняти базу даних — сховище даних, та СКДБ — засоби для роботи з базою даних. СКДБ з інформаційної системи може бути видалена, але база даних продовжить існувати. І навпаки: СКДБ може функціонувати без жодної бази даних.

В загальному базу даних неможливо просто перемістити з однієї СКДБ до іншої. Але СКДБ використовують стандарти (SQL, ODBC, JDBC), які уніфікують ряд операцій по роботі з даними і дозволяють різним застосункам працювати з базами даних різних СКДБ. СКДБ часто класифікують за моделлю організації даних. Найвживаніші СКДБ використовують реляційну модель, у якій дані подають у виді таблиць. Для кінцевого користувача (та прикладних програм) робота з базою даних напряму неможлива. Всі маніпуляції над даними здійснюють через спеціальні запити, які надсилають до СКДБ. СКДБ опрацьовує їх і повертає результат. Безпосередньо з базою даних працює виключно СКДБ.

Сучасні СКДБ забезпечують функції щодо керування даними, які можна поділити на такі групи:

  • Оголошення даних — створення, зміна та видалення визначень, які описують організацію даних.
  • Модифікація даних — додавання даних, їх редагування та видалення.
  • Отримання даних — надання даних за запитом застосунку у формі, яка дозволяє їх безпосереднє використання. Дані можуть надаватись або у формі, в якій вони зберігаються у базі даних, або в іншій формі (наприклад, через поєднання різних даних).
  • Адміністрування даних — реєстрування та відслідковування дій користувачів, дотримання безпеки роботи з даними, забезпечення надійності та цілісності даних, моніторинг продуктивності, резервне копіювання та відновлення даних тощо.

Архітектура СКДБ[ред.ред. код]

Архітектура «файл-сервер»[ред.ред. код]

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

Архітектура «клієнт-сервер»[ред.ред. код]

В сучасних мережевих інформаційних системах для роботи із загальною базою даних використовують архітектуру «клієнт-сервер». При цьому в мережі розміщують сервер баз даних. Ним виступає комп'ютер (або комп'ютери), який містить бази даних, СКДБ та пов'язане з ними програмне забезпечення, і налаштований для надання користувачам інформаційної системи доступу до бази даних. Клієнти, які працюють із даними (вони можуть бути розташовані на різних комп'ютерах мережі), надсилають відповідні запити серверу. Сервер їх отримує, опрацьовує, та надсилає відповідь клієнту. Сучасні СКДБ (MySQL, PostgreSQL, Microsoft SQL Server та інші) працюють відповідно до цієї архітектури. Сервер баз даних, як правило, є достатньо потужною багатопроцесорною системою, яка використовує масиви дисків RAID для підвищення надійності зберігання даних. Використання дискових масивів RAID дозволяє відновити дані, навіть якщо один з дисків вийшов з ладу.

Реалізації СКДБ[ред.ред. код]

Комерційні СКДБ[ред.ред. код]

СКДБ з відкритим кодом[ред.ред. код]

Сфери використання баз даних[ред.ред. код]

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

  • автоматизовані системи обліку ;
  • реєстри та каталоги;
  • геоінформаційні системи;
  • лінгвістичні бази даних, тобто машинні словники різного типу і призначення;
  • бази даних транспортних систем;
  • системи керування вмістом Інтернет-сайтів, які зберігають у базах даних інформацію про web-сторінки сайту (прикладом можуть бути широко вживані системи керування вмістом Joomla! та WordPress).

Види баз даних[ред.ред. код]

Бази даних класифікують за різними критеріями. За моделлю організації даних розрізняють такі бази даних:

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

За розміщенням даних виділяють такі види баз:

  • Локальна, або централізована. Така база даних підтримується на одному комп'ютері.
  • Розподілена. Частини такої бази даних розміщують на різних комп'ютерах мережі.

Структуровані та неструктуровані БД[ред.ред. код]

Структуровані БД використовують структури даних, тобто структурований опис типу фактів за допомогою схеми даних, більш відомої як модель даних. Модель даних описує об'єкти та взаємовідношення між ними. Існує декілька моделей (чи типів) баз даних, основні: ієрархічна, мережна та реляційна.

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

Мови для роботи з базами даних[ред.ред. код]

При роботі з базами даних використовують мови спеціального призначення:

  • Мова визначення даних (Data definition language, DDL) — це мова, яка описує дані та структури даних, а також визначає взаємозв'язки між ними (за стандартом ISO/IEC 2382:2015[3]).
  • Мова маніпулювання даними (Data manipulation language, DML) — це мова, яку підтримує СКДБ і яка забезпечує виконання операцій отримання, додавання, зміни та видалення даних (за стандартом ISO/IEC 2382:2015[4]).
  • Мова запитів (Query language) — це мова для користувачів, яка забезпечує отримання та оброблення даних у базі даних (за стандартом ISO/IEC 2382:2015[5])..

При роботі з реляційними базами даних використовують мову структурних запитів SQL (Structured Query Language), яка поєднує всі три функції (визначення даних, модифікація даних та формування вибірок). Мова SQL стандартизована ANSI та ISO: починаючи з 1986 року, регулярно виходять поновлені стандарти. Слід зауважити, що кожна сучасна СКДБ (MySQL, PostgreSQL, Microsoft SQL Server та інші) підтримує свою власну видозміну SQL, так що SQL-запит для однієї СКДБ може не працювати в середовищі іншої. Але головні принципи формування SQL-запитів та їх структура однакові та відповідають стандартам ANSI/ISO. При необхідності виконання якоїсь операції над даними клієнт формує лінгвістичну конструкцію мовою SQL, яку називають SQL-запитом, і надсилає її до СКДБ. СКДБ опрацьовує запит, і результат його виконання (наприклад, вибірку даних) повертає клієнту. Мова, якою оперує СКДБ, також може містити засоби для

  • конфігурування СКДБ,
  • модифікації, форматування даних та розрахунків,
  • формування обмежень даних.

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

Примітки[ред.ред. код]

  1. ISO/IEC 2382:2015, Information technology — Vocabulary — Part 1: Terms and definitions:
    «database: collection of data organized according to a conceptual structure describing the characteristics of these data and the relationships among their corresponding entities, supporting one or more application areas»
  2. ISO/IEC 2382:2015, Information technology — Vocabulary — Part 1: Terms and definitions:
    «database management system: system, based on hardware and software, for defining, creating, manipulating, controlling, managing, and using databases»
  3. ISO/IEC 2382:2015, Information technology — Vocabulary — Part 1: Terms and definitions:
    «data definition language: database language for describing data and data structures in a database»
  4. ISO/IEC 2382:2015, Information technology — Vocabulary — Part 1: Terms and definitions:
    «data manipulation language: database language, supported by a database management system, used to access a database for operations such as creating, retrieving, reading, writing, and deleting data»
  5. ISO/IEC 2382:2015, Information technology — Vocabulary — Part 1: Terms and definitions:
    «query language: data manipulation language for users to retrieve and possibly modify data in a database»