====== Поняття бази даних ====== ===== Вступ ===== Щоб користувач легко міг знаходити потрібну інформацію, во­на має бути організована певним чином. Це стосується не лише інформації в комп'ютері, а й будь-якої інформації про об'єкти реаль­ного світу. Скажімо, зручно знаходити потрібну книгу в бібліотеці, користуючись каталогом. Легко відшукати в газеті оголошення, що вас цікавлять. Така легкість пошуку можлива завдяки тому, що дані в каталозі або газеті мають структуру, або, інакше, є структурованими. **База даних** (англ. database) – сукупність даних, організованих відповідно до концепції, яка описує характеристику цих даних і взаємозв'язки між їх елементами; ця сукупність підтримує щонайменше одну з областей застосування (за стандартом ISO/IEC 2382:2015((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))) ===== Історія розвитку ===== * 1960-ті рр. розроблення перших БД. CODASYL — мережева модель даних та одночасно незалежне розроблення ієрархічної БД фірмою North American Rockwell, яка пізніше взята за основу IMS — власної розробки IBM. * 1970-ті рр. наукове обґрунтування Едгаром Ф. Коддом основ реляційної моделі, котра на початку зацікавила лише наукові кола. Уперше цю модель було використано у БД Ingres (Берклі) та System R (IBM), що були лише дослідними прототипами, анонсованими протягом 1976 року. * 1980-ті рр. поява перших комерційних версій реляційних БД Oracle та DB2. Реляційні БД починають успішно витісняти мережеві та ієрархічні. Дослідження децентралізованих (розподілених) систем БД, проте вони не відіграють особливої ролі на ринку БД. * 1990-ті рр. увага науковців спрямовується на об'єктно-орієнтовані БД, які знайшли застосування в першу чергу в тих галузях, де використовуються комплексні дані: інженерні, мультимедійні БД. * 2000-ні рр. головним нововведенням є підтримка та застосування XML у БД. Розробники комерційних БД, які панували на ринку у 1990-их рр., отримують все більшу конкуренцію з боку руху відкритого програмного забезпечення. Реакцією на це стає поява безкоштовних версій комерційних БД. ===== Сфери використання баз даних ===== Первинним призначенням бази даних є зберігання масивів даних. Але їх широко використовують і для збереження адміністративної інформації та спеціалізованих даних, наприклад, для інженерних даних чи для економічних моделей. Прикладами використання баз даних можуть бути: * автоматизовані системи обліку; * реєстри та каталоги; * геоінформаційні системи; * лінгвістичні бази даних, тобто машинні словники різного типу і призначення; * бази даних транспортних систем; * системи керування вмістом Інтернет-сайтів, які зберігають у базах даних інформацію про web-сторінки сайту (прикладом можуть бути широко вживані системи керування вмістом Joomla! та WordPress). ===== Види баз даних ===== Бази даних класифікують за різними критеріями.\\ **За моделлю організації даних розрізняють такі бази даних:**\\ * **Ієрархічна база даних**: Ієрархічна база даних може бути представлена як дерево, де кожен об'єкт має одного предка і може мати декілька нащадків. Зазвичай використовується для моделювання структурних відносин, таких як організаційна структура або каталоги файлів. * **Нереляційні (NoSQL) бази даних**: Ці бази даних використовують різні моделі для зберігання даних, такі як дерева, графи, ключ-значення, документи тощо. Вони надають більшу гнучкість для зберігання та обробки неструктурованих або півструктурованих даних. * MongoDB * Cassandra * Redis * Couchbase * Neo4j (графова база даних) * Amazon DynamoDB * Firebase Realtime Database * Apache HBase * CouchDB * **Мережева база даних**: Мережева база даних схожа на ієрархічну, але дозволяє об'єктам мати більше одного предка. Це забезпечує більшу гнучкість в моделюванні складних відносин, але може бути складніше у використанні та управлінні. * InterSystems Caché * GT.M * Berkeley DB * Amazon Aurora * **Реляційна база даних (RDBMS)**: Реляційна база даних зберігає дані у вигляді таблиць, де кожна таблиця представляє собою тип даних, а кожен рядок таблиці - запис цього типу. Вона використовує мову запитів SQL для маніпулювання даними. Реляційні бази даних добре підходять для багатьох типів даних та операцій. * MySQL * PostgreSQL * Oracle Database * Microsoft SQL Server * SQLite * IBM Db2 * MariaDB * Amazon RDS * Google Cloud SQL * **Об'єктно-орієнтована база даних (OODBMS)**: У базі даних цього виду дані оформляють у вигляді моделей об'єктів, де кожен об'єкт має властивості та методи. Вона часто використовується для програм, основаних на об'єктно-орієнтованому програмуванні і дозволяє зберігати об'єкти як їхні еквіваленти в базі даних. * ObjectDB * Neo4j * ArangoDB За розміщенням даних виділяють такі види баз: * **Локальна (Централізована) база даних**: Цей тип бази даних зазвичай розташовується на одному центральному комп'ютері або сервері. Усі дані зберігаються та обробляються на цьому самому пристрої. Це може бути добрим варіантом для невеликих організацій або для проектів, де важлива централізована контрольованість даних. * **Розподілена база даних**: У розподіленій базі даних дані розподілені на різних комп'ютерах або серверах, які можуть бути розташовані в різних фізичних місцях або підключені до мережі. Це дозволяє розділити навантаження та підвищити доступність даних. Розподілені бази даних часто використовуються в великих корпораціях або проектах з великою кількістю користувачів і обсягом даних. За технологією фізичного зберігання виділяють: * **БД у вторинній пам'яті (традиційні)**: Цей тип бази даних використовує традиційні методи фізичного зберігання, де дані зберігаються на постійних носіях, таких як жорсткі диски. Доступ до даних може бути трохи повільнішим в порівнянні з іншими типами, але вони зазвичай забезпечують надійне зберігання та підтримку великих обсягів даних. * **БД в оперативній пам'яті (in-memory database)**: У цьому типі баз даних дані зберігаються в оперативній пам'яті комп'ютера, а не на постійних носіях. Це дозволяє забезпечити дуже швидкий доступ до даних, оскільки операції зчитування та запису в пам'ять відбуваються набагато швидше, ніж на жорстких дисках. Ін-memory бази даних добре підходять для великих обсягів даних, де швидкість операцій критично важлива. * **БД у третинній пам'яті (tertiary database)**: Цей термін рідко використовується і не є стандартним. Зазвичай третинна пам'ять вказує на зовнішні носії даних, такі як архівні жорсткі диски або хмарні сховища. Можливо, ви маєте на увазі різні методи архівування або зберігання даних на третинних носіях для довгострокового зберігання. **Структуровані та неструктуровані БД**\\ Структуровані БД використовують структури даних, тобто структурований опис типу фактів за допомогою схеми даних, більш відомої як модель даних. Модель даних описує об'єкти та взаємовідношення між ними. Існує декілька моделей (чи типів) баз даних, основні: ієрархічна, мережна та реляційна. До неструктурованих БД належать повнотекстові бази даних, які містять неструктуровані тексти статей чи книг у формі, що дозволяє здійснювати швидкий пошук (наприклад, як Вікіпедія). {{ :subjects:basic:informatika:db_net.png?nolink&400 }} **Мережева модель БД** — має складові структури, як і реляційна, але відрізняється характером відношень між ними: існує можливість встановлення додаткових зв'язків. {{ :subjects:basic:informatika:db_hierarchical.png?nolink&400 }} Ієрархічна модель БД — зберігає інформацію, організовану по­слідовно: один елемент вважається головним, інші йому під­порядковуються. {{ :subjects:basic:informatika:db_relational.png?nolink |}} **Реляційна модель БД** — побудована на взаємовідношеннях між складовими структури: складається з сукупності взаємо­пов'язаних двовимірних таблиць.\\ - Кількість полів визначається розробником і не може змінюватися користувачем. - Будь-яке поле повинне мати унікальне ім’я. - Поля можуть мати різний тип: * рядок символів (довжиною до 255 символів) * дійсне число (з дробовою частиною) * ціле число * грошова сума * дата, час, дата и час * логічне поле (істина або лож, так або ні) * багаторядковий текст (МЕМО) * малюнок, звук або інший об’єкт (об’єкт OLE) - Поля можуть бути обов’язковими для заповнення або ні. - Таблиця може містити скільки завгодно записів (ця кількість обмежена тільки об’ємом диску); записи можна додавати, видаляти, редагувати, сортувати, шукати. **Ключове поле (ключ таблиці)**\\ **Ключове поле (ключ)** – це поле (або комбінація полів), яке однозначно визначає запис. В таблиці не може бути двох записів з однаковим значенням ключа. ===== Мови для роботи з базами даних ===== **При роботі з базами даних використовують мови спеціального призначення:**\\ Мова визначення даних (Data definition language, DDL) — це мова, яка описує дані та структури даних, а також визначає взаємозв'язки між ними (за стандартом ISO/IEC 2382:2015((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»))). Мова маніпулювання даними (Data manipulation language, DML) — це мова, яку підтримує СКБД і яка забезпечує виконання операцій отримання, додавання, зміни та видалення даних (за стандартом ISO/IEC 2382:2015((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»))). Мова запитів (Query language) — це мова для користувачів, яка забезпечує отримання та оброблення даних у базі даних (за стандартом ISO/IEC 2382:2015((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»))). При роботі з реляційними базами даних використовують мову структурних запитів SQL (Structured Query Language), яка поєднує всі три функції (визначення даних, модифікація даних та формування вибірок). Мова SQL стандартизована ANSI та ISO: починаючи з 1986 року, регулярно виходять поновлені стандарти. Слід зауважити, що кожна сучасна СКБД (MySQL, PostgreSQL, Microsoft SQL Server та інші) підтримує свою власну видозміну SQL, так що SQL-запит для однієї СКБД може не працювати в середовищі іншої. Але головні принципи формування SQL-запитів та їх структура однакові та відповідають стандартам ANSI/ISO. При необхідності виконання якоїсь операції над даними клієнт формує лінгвістичну конструкцію мовою SQL, яку називають SQL-запитом, і надсилає її до СКБД. СКБД опрацьовує запит, і результат його виконання (наприклад, вибірку даних) повертає клієнту. Мова, якою оперує СКБД, також може містити засоби для * конфігурування СКБД, * модифікації, форматування даних та розрахунків, * формування обмежень даних. ===== База даних в Україні ===== Перша в Україні комп’ютерна база даних була розроблена в ході робіт з проектування і експлуатації електронної обчислювальної машини «Київ» (1959 р.). ЕОМ була розроблена для обчислювального центру Академії наук УРСР Л.Н. Дашевським, К.Л. Ющенко, К.О.Шкарабарою, С.Б. Погребинським під науковим керівництвом Б.В. Гніденка та В.М.Глушкова. ===== Джерела ===== * [[wp>База_даних|База_даних]] * [[https://sites.google.com/site/saitkvadr/%D0%BA%D0%B5%D0%B9%D1%81%D0%B8-%D1%83%D1%80%D0%BE%D0%BA%D1%96%D0%B2/9-%D0%BA%D0%BB%D0%B0%D1%81/%D1%83%D1%80%D0%BE%D0%BA-38-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%82%D1%8F-%D0%B1%D0%B0%D0%B7%D0%B8-%D0%B4%D0%B0%D0%BD%D0%B8%D1%85-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D1%82%D1%8F-%D0%BF%D1%80%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F-%D0%B9-%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%96-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D1%96%D1%97-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%96%D0%BD%D0%BD%D1%8F-%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC%D0%B8-%D0%B4%D0%B0%D0%BD%D0%B8%D1%85|ІнфоІДЕЇ]]