Зміст
База даних – це масив інформації, до якої ми регулярно звертаємося і навіть не помічаємо цього. Наприклад, ви авторизуєтеся у соціальній мережі або просто завантажуєте картинку на сайт. У першому випадку використовується база даних облікових записів всіх користувачів мережі, у другому – база даних, де зберігається інформація про файли на сервері. Інакше кажучи, база даних – це впорядкований набір інформації, по який можна звертатися за необхідності, доповнюючи і редагуючи його структуру.
Набір даних зазвичай підпорядковується певним правилам. Наприклад, якщо ви видаляєте з бази даних користувача, разом з його ім’ям повинні бути видалені всі параметри – адреса електронної пошти, телефонний номер, інформація про рік народження і т.д. За таким принципом працюють реляційні бази даних.
Реляційна база даних – це інформація, де дані впорядковані, тобто пов’язані між собою певними особливими відносинами. По суті, така база є таблицею, в якій розміщені всі дані. Фізично бази даних – це файли у спеціальному форматі. Для роботи з цими файлами використовується спеціальне програмне забезпечення. Цей софт називається СУБД – система управління базами даних. Оскільки СУБД нерозривно пов’язана з базами даних, ці терміни часто використовуються як синоніми, що, строго кажучи, некоректно.
База даних може належати онлайновому сховищу (наприклад, використовуватися для впорядкування інформації на сайті) або програмі (скажімо, для каталогізації електронних книг). У будь-якому випадку звернення до бази даних відбувається через програмний інтерфейс (API), який приймає команди користувача (або додатки) та спрямовує їх до СУБД.
Існує величезна кількість СУБД, платних та безкоштовних, що відрізняються між собою за функціональністю.
Крім реляційних СУБД, розрізняють такі типи, залежно від моделі БД:
ПЗ для роботи з базами даних може бути локальним або розподіленим. Локальні СУБД розміщують усі свої компоненти на одному комп’ютері, розподілені СУБД можуть розташовуватися на кількох робочих станціях.
Для спілкування з базою даних використовується спеціальний синтаксис, який називається структурованою мовою запитів SQL (Structured Query Language). Для нереляційних БД застосовується інший синтаксис, що називається NoSQL. Такі СУБД застосовуються для зберігання великих даних або БД з великою кількістю внутрішніх зв’язків. Іноді замість стандартної мови запитів використовується якась мова програмування, наприклад JavaScript.
Був час, коли цифрові дані зберігали у форматі перфокарт – паперових карток з дірочками. Для їхнього зчитування була потрібна спеціальна машина, яка «розуміла», що означає послідовність дірочок у папері. Поява комп’ютерних баз даних, а також швидкісних цифрових носіїв значно прискорила процес зчитування та запису нової інформації.
Реляційні СУБД (Oracle, MySQL, Microsoft SQL Server, PostgreSQL) універсальні і підходять майже будь-яких завдань, коли потрібно обробляти дуже великий потік запитів і зберігати занадто великі обсяги даних. Коли ж запитів багато, виникає проблема масштабування, з якою реляційні СУБД поки що нормально впоратися не можуть.
Найпростіша СУБД передбачає використання парадигми «ключ-значення» (наприклад, Redis та Memcached). Зазвичай такі СУБД застосовують коли треба зробити кешування. Окремі СУБД даного типу дозволяють перенести роботу повністю в пам’ять і задати час існування записів (потім вони автоматично будуть видалені). Для баз даних із великим числом і складними структурами сутностей, що зберігаються, ці СУБД незручні.
Якщо необхідно зберігати зв’язки між вузлами у графовій структурі БД (наприклад, у соціальній мережі для опису спільних інтересів чи родинних зв’язків), рекомендуємо звернути увагу на такі СУБД як InfiniteGraph, Neo4j, Amazon Neptune та InfoGrid. Дане ПЗ дозволить вам швидко побудувати систему оцінок та рекомендацій.
У колонкових СУБД використовується особливий спосіб запису інформації, завдяки чому змінювати структуру таблиць можна дуже швидко. Цей тип БД розглядає стовпчик як окрему таблицю. Якщо в звичайній реляційній СУБД зчитування даних відбувається по всьому рядку, доки не буде досягнуто потрібної колонки, в колонковій СУБД зчитується відразу потрібний стовпець. З переваг колонкових СУБД можна виділити добру компресію данних, що помітно зменшує об’єм, що займає БД. Особливістю колонкових баз та колонкових індексів є те, що для них неможлива операція проміжної вставки або апдейта. Часто ці бази не передбачають оператора UPDATE, тільки DELETE та INSERT. Застосовувати такі колонкові СУБД як SAP IQ, Vertica, ClickHouse, Google BigQuery, InfoBright для простої вибірки зі статичними параметрами, де зберігається менше ста мільйонів рядків, немає сенсу.
Документна СУБД оптимальна в тих випадках, коли об’єкти передбачається поміщати, наприклад, у якесь сховище станів або коли записуються складні структури зі списками та словниками (наприклад, якщо ви працюєте з форматом JSON). А от для формування звітності та для реалізації транзакційної моделі документна СУБД це не найкращий варіант.
У цьому розділі ми обговоримо найпоширеніші СУБД, які використовуються у різних системах.
MySQL – це одна з найпопулярніших реляційних баз даних. Цю СУБД часто включають до складу серверів. MySQL працює на всіх основних платформах, включаючи Red Hat, Fedora, Ubuntu, Debian, Solaris, Microsoft Windows та Apple MacOS. Реалізована підтримка кількох процесорів та багатопоточність. Через API з базами даних можна працювати за допомогою популярних мов програмування (C, C++, C#, PHP, Java, Ruby, Python та Perl). Бібліотека функцій SQL реалізується через високооптимізовану бібліотеку класів, завдяки чому досягається висока швидкість роботи і відсутні витоки пам’яті. У MySQL реалізовано підтримку Novell Cluster.
На жаль, MySQL не часто оновлюється та не підтримує гаряче резервне копіювання. MySQL часто критикують за недостатню надійність, а, крім того, вона має проблеми з юнікодом.
Ця СУБД ідеально підходить для великих організацій, які обробляють величезну кількість даних.
Досить поширена СУБД PostgreSQL, яка є безкоштовною та об’єктно-реляційною. Незважаючи на те, що СУБД є повністю безкоштовним ПЗ, за її впровадження, модифікацію та підтримку доведеться все же платити додатково.
PostgreSQL може працювати з базами даних будь-якого розміру та з будь-якою кількістю записів та індексів у таблиці. СУБД відрізняє розширюваність – можна додати власні перетворення типів, домени, індекси, оператори, процедурні мови. Підтримується завантаження C-сумісних модулів. У PostgreSQL реалізовані складні та надійні механізми транзакцій та реплікації. PostgreSQL підтримує бітові рядки та мережеві адреси, масиви даних, у тому числі багатовимірні, композитні типи та інші складні структури. У СУБД є підтримка XML, JSON і NoSQL-баз.
Досить популярна СУБД від Microsoft, яка орієнтована на платформу Windows.
SQL Server добре масштабується, може розгортатися в настільних системах, у центрах обробки даних, а також у «хмарі» (у 32-бітному та 64-бітному варіанті). Підтримується принцип самообслуговування, СУБД оптимізована під екосистеми хмарних обчислень.
MongoDB – це одна з найпопулярніших СУБД із відкритим вихідним кодом типу NoSQL. Зазвичай MongoDB вибирають, коли є необхідність у базі даних, що масштабується. Серед клієнтів, які використовують MongoDB такі великі організації, як IBM, Twitter, Zendesk, Forbes, Facebook, Google.
Система управління базами даних має дуже велике значення. Від неї залежить функціональність величезної кількості додатків та веб-сервісів – від майданчиків для інтернет-маркетингу до синхронізації медичних даних та сервісів продажу квитків.
Великі обсяги інформації, що зберігається, представляють особливий інтерес для маркетологів і аналітиків, які можуть виконувати прогнозування використовуючи складні статистичні методи, штучний інтелект і машинне навчання. Спеціальні інженери (data-scientist) можуть визначати тенденції попиту товар, формувати тарифні плани, затребувані покупцем тощо. Усе це робиться з допомогою масивів інформації, яка керується СУБД. Обсяг аналізованої інформації «біг дата» може досягати сотень петабайт і це число зростає щороку.
Якщо вас зацікавила дана тема, рекомендуємо подивитися відео, в якому просто пояснюються базові речі, які має знати кожен розробник.
Швейцарська компанія з кібербезпеки Prodaft запустила ініціативу під назвою «Продай своє джерело», в рамках якої…
Презентовано JRuby 10 — останню версію реалізації мови програмування Ruby на основі JVM. Вона має…
Компанія Ілона Маска xAI презентувала новий онлайн-інструмент під назвою Grok Studio. Він призначений для редагування…
В освітній платформі «Мрія» планують впровадити генератор тестів на основі штучного інтелекту. Про це в…
OpenAI працює над власною X-подібною соціальною мережею, згідно з кількома джерелами, знайомими з цим питанням,…
Команда Unit 42 з Palo Alto Networks помітила чергову активність хакерської групи з КНДР, яка…