Досить потужною субд і одночасно. Бази даних

Реляційні бази даних вже давно використовуються у програмуванні. Свого часу вони набули популярності завдяки простоті та зручності реляційної моделі роботи з даними.

Ця стаття аналізує різницю між найбільш популярними реляційними системами управління базами даних (СУБД): SQLite, MySQL і PostgreSQL.

Системи управління базами даних

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

Реляційні системи управління базами даних

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

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

Відносини та типи даних

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

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

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

Примітка: Бази даних NoSQL не мають таких суворих обмежень, оскільки вони не вибудовують таких відносин між даними. Щоб дізнатися більше про NoSQL, читайте .

Популярні реляційні бази даних

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

  • SQLite: вбудована потужна система керування базами даних.
  • MySQL: найпопулярніша і найпоширеніша БД.
  • PostgreSQL: просунута SQL-сумісна об'єктна СУБД із відкритим вихідним кодом.

Примітка: Програми з відкритим кодом майже завжди дають користувачам право на вільне використання та зміну коду. Відгалужуючи код, ви можете створити зовсім нову програму. Одним із відгалужень MySQL, наприклад, є MariaDB.

SQLite

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

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

Типи даних SQLite

  • NULL: пусте значення.
  • INTEGER: ціле чисельне значення (залежно від обсягу значення зберігається в 1, 2, 3, 4, 6 або 8 байтах).
  • REAL: число з точкою, що плаває, зберігається у вигляді 8-байтного IEEE.
  • TEXT: текстовий рядок зберігається в зашифрованому вигляді (UTF-8, UTF-16BE або UTF-16LE).
  • BLOB: бінарні дані зберігаються в тому вигляді, в якому були введені.

Переваги SQLite

  • Проста будова на основі файлів: вся база даних складається всього з одного файлу, що збільшує її портативність.
  • Стандарти: незважаючи на простоту, SQLite базується на SQL. Деякі функції опущені (RIGHT OUTER JOIN або FOR EACH STATEMENT), проте замість них додані інші.
  • SQLite чудово підходить для розробки або тестування. На цих етапах майже завжди необхідне просте, але масштабоване рішення.

Недоліки SQLite

  • Немає керування користувачами. Більш складні СУБД підтримують управління користувачами (їхні взаємозв'язки, привілеї тощо). Проста СУБД SQLite такої функції не надає.
  • Неможливо підвищити продуктивність. Бібліотека SQLite проста в налаштуванні та використанні. Однак вона розроблена таким чином, що не дозволяє шляхом тонкого налаштуванняотримати додаткову продуктивність. Тобто зробити SQLite продуктивнішою технічно неможливо.

Коли краще використовувати SQLite

  • Прості вбудовані програми, яким потрібна портативність, наприклад, однокористувацькі локальні програми, мобільні програми, ігри.
  • Заміна диска. Зазвичай програми, які потрібно читати або записувати файли на диск, можуть використовувати SQLite для отримання додаткових функцій.
  • Тестування.

Коли краще не використовувати SQLite

  • Розраховані на багато користувачів додатки. Якщо програма побудована таким чином, що велика кількість клієнтів одночасно використовує одну БД, то в таку програму краще впровадити повнофункціональну реляційну СУБД (наприклад, MySQL).
  • Програми, що записують велику кількість даних. Операція запису є одним із обмежень SQLite. Ця СУБД дозволяє виконувати лише одну операцію запису за один момент часу, отже, вона обмежує пропускну здатність.

MySQL

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

Примітка: Враховуючи популярність MySQL, для цієї системи було розроблено велику кількість сторонніх додатків, інструментів та бібліотек.

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

Типи даних MySQL

  • TINYINT: ціле число від -128 до 127 (1 байт).
  • SMALLINT: ціле число від -32768 до 32767 (2 байти).
  • MEDIUMINT: число від -8388608 до 8388608 (3 байти).
  • INT або INTEGER: число в діапазоні від -2147683648 до 2147683648 (4 байти).
  • BIGINT: число від -263 до 263 -1 (8 байт).
  • FLOAT: число з плаваючою точкою (4 байти).
  • DOUBLE, DOUBLE PRECISION, REAL: число з подвійною точністю та плаваючою точкою.
  • DECIMAL, NUMERIC: величина підвищеної точності.
  • DATE: Дата.
  • DATETIME: дата та час.
  • TIMESTAMP: тимчасова мітка.
  • TIME: час у форматі hh:mm:ss.
  • YEAR: рік (за замовчуванням зберігається у вигляді 4 цифр, але можна налаштувати 2).
  • CHAR: рядок фіксованої довжини.
  • VARCHAR: рядки змінних.
  • TINYBLOB, TINYTEXT: Тип TEXT дозволяє зберігати текст, а BLOB — зображення, звук, електронні документиі т.п. Максимальна довжина – 225 символів.
  • BLOB, TEXT: великі обсяги тексту, максимум 65 535 символів.
  • MEDIUMBLOB, MEDIUMTEXT: аналогічно до попереднього, але максимум до 16777215 символів.
  • LONGBLOB, LONGTEXT: аналогічно до попереднього, але максимум до 4294967295 символів.
  • ENUM: приймає лише одне із значень заданої множини.
  • SET: приймає будь-який або всі елементи значень заданої множини.

Переваги MySQL

  • Простота в роботі: MySQL дуже просто встановити та налаштувати. Сторонні інструменти, зокрема візуалізатори (інтерфейси) значно спрощують роботу з даними.
  • Функціональність: MySQL підтримує безліч функцій SQL.
  • Безпека: MySQL надає багато вбудованих функцій для захисту даних.
  • Масштабованість та продуктивність: MySQL може працювати з великими обсягами даних.

Недоліки MySQL

  • Обмеження: структура MySQL накладає деякі обмеження, через які не зможуть працювати нові програми.
  • Уразливості: метод обробки даних, застосовуваний MySQL, робить цю СУБД трохи менш надійною порівняно з іншими СУБД.
  • Повільний розвиток: хоча MySQL є продуктом з відкритим кодом, він дуже повільно розвивається. Однак тут слід зауважити, що на MySQL засновано кілька повноцінних баз даних (наприклад, MariaDB).

Коли використовувати MySQL

  • Розподілені операції: автономний сервер баз даних MySQL підтримує безліч операцій та надає кілька додаткових функцій.
  • Висока безпека даних: MySQL пропонує високий захист даних.
  • Веб-сайти та веб-програми: незважаючи на обмеження MySQL може підтримувати роботу майже будь-якого сайту та веб-додатків. Цей гнучкий та масштабований інструмент простий у використанні.
  • Рішення користувача: MySQL можна підігнати під суворі вимоги сайту або додатки.

Коли краще не використовувати MySQL

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

PostgreSQL

PostgreSQL – це просунута відкрита об'єктно-орієнтована СУБД. PostgreSQL реалізує SQL-стандарти ANSI/ISO.

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

Заснована на надійній технології СУБД PostgreSQL може одночасно обробляти велику кількість завдань. Підтримка узгодженості досягається без блокування операцій читання завдяки MVCC.

Хоча СУБД PostgreSQL не така популярна, як MySQL, для неї також розроблено велику кількість додаткових інструментів та бібліотек, які спрощують роботу з даними та збільшують продуктивність СУБД.

Типи даних PostgreSQL

  • bigint: знакове восьмибайтне ціле число.
  • bigserial: восьмибайтне ціле число з автоінкрементом.
  • bit [(n)]: бітовий рядок фіксованої довжини.
  • bit varying [(n)]: бітовий рядок зі змінною довжиною.
  • boolean: логічне значення (true/false).
  • box: чотирикутник на площині.
  • bytea: бінарні дані.
  • character varying [(n)]: рядок символів із змінною довжиною.
  • character [(n)]: рядок символів із фіксованою довжиною
  • cidr: адреса мережі IPv4 чи IPv6.
  • circle: коло на площині.
  • date: дата (рік, місяць, день).
  • double precision: число з плаваючою точкою подвійної точності (8 байт).
  • inet: адреса хоста IPv4 чи IPv6.
  • integer: знакове чотирибайтове ціле число.
  • interval [(p)]: проміжок часу.
  • line: нескінченна лінія на площині.
  • lseg: сегмент лінії на площині.
  • macaddr: MAC (Media Access Control) адресу.
  • гроші: валюта.
  • numeric [(p, s)]: точне числове значення з вибраною точністю.
  • path: геометричні шлях на площині.
  • point: геометричні точки на площині.
  • polygon: закритий геометричний шлях на площині (полігон)
  • real: число з плаваючою точкою одинарної точності (4 байти).
  • smallint: знакове двобайтне ціле число.
  • serial: чотирибайтне ціле число з автоінкрементом.
  • text: рядок символів із змінною довжиною.
  • time [(p)] : час дня (без часового поясу).
  • time [(p)] with time zone: час дня та часовий пояс.
  • timestamp [(p)] : тимчасова мітка (дата та час) без часового поясу.
  • timestamp [(p)] with time zone: тимчасова мітка з часовим поясом.
  • tsquery: запит текстового пошуку.
  • tsvector: документ текстового пошуку.
  • txid_snapshot: снапшот ID-транзакції рівня користувача.
  • uuid: універсальний унікальний ідентифікатор.
  • xml: дані XML.

Переваги PostgreSQL

  • Система управління базами даних PostgreSQL відкрита, SQL-сумісна, вільна.
  • Активне співтовариство PostgreSQL допоможе знайти вирішення будь-якої проблеми, пов'язаної з СУБД, у будь-який час.
  • Підтримка сторонніх інструментів: крім вбудованих функцій, PostgreSQL підтримує безліч відкритих сторонніх інструментів для проектування, управління даними і т.п.
  • Масштабованість та розширюваність.
  • Об'єктно-орієнтованість.

Недоліки PostgreSQL

  • Продуктивність: у деяких ситуаціях продуктивність PostgreSQL нижча, ніж у MySQL.
  • Невисока популярність.
  • У зв'язку з переліченими вище недоліками не всі хостинг-провайдери підтримують PostgreSQL.

Коли використовувати PostgreSQL

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

Коли краще не використовувати PostgreSQL

  • Якщо додатку потрібні швидкі операціїчитання.
  • Якщо програмі не потрібна абсолютна цілісність даних, ACID або складна структура, PostgreSQL може стати надто складним рішенням.
  • Реплікація даних складніша, ніж у MySQL, тому в кластерах PostgreSQL краще не використовувати.
Tags:

1. Які тренди у розвитку серверних СУБД ви могли б відзначити у 2015–2016 роках?

Віталій Чесноков, QSOFT
Найголовніші тренди у розвитку сучасних СУБД: використання віртуалізації та GRID-технології, самодіагностика та автоматичне виправлення, використання NoSQL-СУБД у Big Data, використання NewSQL-СУБД, виконання C/C++ коду в адресному просторі СУБД.

За останні кілька років багаторазово зросли обсяги даних, придатних для обробки та зберігання у БД. Було прийнято зміну закону «Про персональні дані», що свідчить, що персональні дані громадян РФ необхідно зберігати біля РФ. У деяких західних країнах так само діють такі закони. Все це призводить до необхідності кластеризації та розбиття даних на частини.

Повсюдно зростає відсоток використання NoSQL-СУБД, де це можливо, через високу швидкість роботи з даними та можливість порівняно простої кластеризації. Набуває поширення новий тип СУБД - NewSQL. В основні безпрецедентні функції NewSQL входять: можливість асинхронної майстер-майстер реплікації, що замінює класичну master-slave схему та забезпечує велику гнучкість для високонавантажених проектів; спрощення адміністрування та забезпечення динамічного управління базою; підтримка процедур, що зберігаються на C/C++ і можливість виконання C/C++ коду в адресному просторі СУБД (забезпечують практично необмежену розширюваність і неймовірний приріст у продуктивності); поліпшення засобів діагностики та налагодження.

До того ж використання віртуалізації в СУБД дає необхідну стійкість до відмов і можливість масштабування.

Микола Фетюхін, MST
Перехід до NoSQL та спеціалізація баз даних. Наприклад, можна звернути увагу на Redis та Tarantool. Останній містить навіть свій сервер додатків. Цікавий тренд – поєднані СУБД та backend, як Parse від Facebook. Також плавна міграція баз даних у хмари.

Петро Урваєв, SimbirSoft
Функції, які успішно себе зарекомендували в одних СУБД, через деякий час реалізуються і в інших продуктах. Наприклад, матеріалізовані уявлення, що спочатку з'явилися в Oracle DBMS, через деякий час були реалізовані в MS SQL Server, а потім з'явилися і в PostgreSQL. Переваги, які надають NoSQL-рішення, поступово також реалізуються в реляційних СУБД. Наприклад, у останніх версіях PostgreSQL реалізовано підтримку роботи з даними у форматі JSON.

Євген Гусєв, ITECH
Зміни останніх років у сегменті СУБД носили як приватний - стосовно окремих лідируючих продуктів, так і структурний характер, так що трендів безліч. По-перше, гетерогенність. Перехід до моделі мікросервісів дав можливість гнучко підбирати засоби розв'язання задачі зберігання даних, не обмежуючись одним. По-друге, розвиток NoSQL, in-memory storages. По-третє, Big Data - революція, що зажадала переосмислити як методику зберігання даних, і саме поняття «дані». По-четверте, колонкові (column-oriented) БД.

2. На вашу думку, чи існує тенденція переходу СУБД до «хмар»? Які існують плюси та мінуси цього підходу?

Віталій Чесноков, QSOFT
Так, безумовно, така тенденція існує. Для початку необхідно розділяти два важливі підходи у роботі СУБД у хмарі.

Перший - розгортання у хмарі віртуальної машини із СУБД. Можна завантажити на неї власний образ або скористатися заздалегідь заготовленим з уже оптимізованою СУБД. По суті, така віртуальна машина принципово не відрізняється від звичайного фізичного сервера. Основною перевагою в порівнянні з фізичним серверомє легкість масштабування, як вертикального (можна будь-якої миті виділити для цієї «віртулки» більше ресурсів), і горизонтального (створення нової «віртуалки» займає лише кілька хвилин). Ще один суттєвий плюс – висока доступність хмарних віртуальних машин(99,9% - 99,99%). Також хмари надають безліч додаткових послуг, таких як моніторинг, резервне копіювання, панель керування сервером і т.д.

Важливо іншим підходом є хмарна СУБД. У разі клієнт купує не сервер, а просто послугу використання СУБД. Поточний ринокпублічних хмарних СУБД, що становлять $400 млн, до 2017 року збільшиться до $1,2 млрд. Основні плюси даного підходу: оплата не наданих ресурсів (які можуть і «простаювати»), а лише реально використаних: обсяг даних, що зберігаються, кількість оброблюваних СУБД операцій; немає необхідності налаштовувати та адмініструвати СУБД – ці завдання повністю лежать на хостері; немає необхідності замислюватися про масштабування; хостер надає безліч зручних та інтуїтивно зрозумілих інструментів для управління СУБД; Висока доступність. Основним мінусом є можливість тонкої настройки СУБД.

Також можна окремо виділити такий вид хмарної СУБД як DbaaS (Database as a Service). Практично завжди конкретний DbaaS – це одна певна СУБД, що надається у хмарі безпосередніми розробниками. Звідси очевидно виводиться й різниця у бізнес-моделях: хмарні СУБД підходять для масштабних типових завдань, а DbaaS - для спеціалізованих, під конкретну марку двигуна БД, з можливістю прямого спілкування з його розробниками. Крім того, DbaaS дозволяє значно точніше підібрати систему під необхідне навантаження, зокрема, за рахунок регулювання кількості клієнтських підключень.

Микола Апурін, Artwell
Тенденція існує. Більшість великих (загальноросійських) систем використовують хмарні БД.

Микола Фетюхін, MST
Тенденція слабка. Використання хмар хоч і знижує деякі витрати, але призводить до нових витрат. Використання хмари може бути вигідним лише для проектів зі слабкою відвідуваністю.

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

Петро Урваєв, SimbirSoft
Тенденція переходу СУБД до хмар існує як частина загального тренду з перенесення в хмари всієї IT-інфраструктури організацій. Основним плюсом такого підходу є можливість передати супровід БД. До мінусів можна віднести зберігання важливих даних на непідконтрольному майданчику. Користувач хмарного сховищапри необхідності знищення даних, що зберігаються, не може бути впевнений, що дані дійсно стерті.

Євген Гусєв, ITECH
Існує і є однією з первинних. Плюсів у розміщення БД у хмарі маса: простота шардингу та реплікації, можливість ефективно в контексті продуктивності відокремити дані від бізнес-логіки, легке та зрозуміле управління обчислювальними потужностями та цілий рядінших. Критичних мінусів, ґрунтуючись на досвіді, ми не бачимо. Чим більшими обсягами даних доводиться оперувати, що більше потрібно горизонтального масштабування, то більш виправданим стає використання хмар.

3. Які чинники впливають вплинув на вибір СУБД? Для яких проектів більше підходять SQL бази даних, а для яких – NoSQL?

Віталій Чесноков, QSOFT
Основним чинником під час виборів між SQL і NoSQL-СУБД є потреби докладання. Для одних завдань найкраще підходить SQL, для інших – NoSQL.

Можна виділити кілька ключових відмінностей між цими типами СУБД. Формат даних у SQL дуже строгий, є чіткі схеми таблиць із зазначенням, де використовується якийсь тип даних. У NoSQL немає заздалегідь заданих схем документів – будь-яка інформація може бути додана у будь-який документ.
У SQL існують складні зв'язки між різними таблицями. Дані в одній таблиці часто є посиланням на дані до іншої (принцип нормалізації даних). У NoSQL зазвичай кожен документ є ізольованою інформаційною одиницею і зберігає в собі всі наявні дані (принцип денормалізації).
SQL має вбудовані механізми підтримки цілісності даних (наприклад, не можна видалити запис з таблиці, якщо на неї посилаються в інших таблицях). У NoSQL таких механізмів немає, тому важливою є денормалізація даних (в ідеалі - кожен документ зберігає абсолютно всю інформацію про якийсь об'єкт).
SQL має механізм транзакцій, який дозволяє виконати кілька SQL-запитів за принципом «все чи нічого». У NoSQL такий механізм існує лише в межах одного документа.
В ідеальному випадку NoSQL працює швидше, ніж SQL, за рахунок простішого методу зберігання даних, який дозволяє отримати всю інформацію про об'єкт простим запитом одного документа. Однак є проблема, пов'язана з тим, що найпопулярніші NoSQL-СУБД з'явилися досить недавно. Наслідком цього є менша кількість інформації щодо цих СУБД і більша кількість поки що невирішених проблем.
NoSQL набагато простіше масштабувати з допомогою відсутності складних логічних зв'язків між документами. До того ж більшість NoSQL-СУБД спочатку створювалася з упором на механізми масштабування.

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

Микола Апурін, Artwell
NoSQL – для нестандартних обчислень з величезним обсягом даних. Але як показала практика, обсяги до 20 мільйонів записів добре переробляються SQL-базами.

Микола Фетюхін, MST
Технології NoSQL активно використовуються відомими компаніями, зокрема у високонавантажених проектах. Збереження даних та прості вибірки при використанні NoSQL будуть справді швидкими. У разі складніших запитів завдання доведеться вирішувати за продукту, що ускладнює сам продукт. У чистому вигляді ми не вибираємо NoSQL. Ускладнення логіки продукту та емуляції базових речей SQL призводить до подорожчання проекту. І не кожне NoSQL-рішення забезпечує безпеку даних у критичних ситуаціях.

Петро Урваєв, SimbirSoft
Вибір БД часто залежить від переваг архітектора, можливого навантаження, необхідного функціоналу. SQL-БД дозволяють чітко визначати схеми зберігання даних та витягувати дані з використанням складних запитів, NoSQL-БД дозволяють зберігати дані у менш упорядкованому форматі та підтримують горизонтальне масштабування. Найчастіше в розподілених системах використовуються одночасно SQL та NoSQL бази даних, кожна з яких вирішує свої завдання.

Євген Гусєв, ITECH
У сучасному стані SQL/NoSQL – скоріше не конкуруючі, а доповнюючі один одного сутності. Використання в одному додатку SQL-рішень, коли потрібно працювати зі складними даними в їхньому взаємозв'язку, і NoSQL, коли на передній план виходить швидкість роботи з неструктурованою інформацією, - цілком природна практика.

4. Як ви оцінюєте рівень поширення платних ліцензій СУБД серед користувачів? У яких випадках є сенс купувати ліцензію?

Віталій Чесноков, QSOFT
Є два різні варіанти поділу СУБД на платні та безкоштовні.

Перший - безкоштовні версії комерційних СУБД (є MS SQL, Oracle тощо.) По суті це урізана версія СУБД, у якій відсутня частина функціоналу. Тут основний фактор вибору дуже простий - чи потрібний даному проекту цей функціонал. Рідше буває безкоштовна версія, яка відрізняється від комерційної за функціоналом, але рідше оновлюється (Couchbase Server).

Другий – безкоштовні СУБД, для яких є аналогічні комерційні продукти (MySQL від Oracle, Percona Server або MariaDB). У разі перевага комерційного продукту зазвичай полягає у наявності більш серйозної технічної підтримки. З погляду функціоналу платні та безкоштовні СУБД мало відрізняються один від одного, хоча і в тих, і в інших можуть бути свої інструменти, які відсутні в інших версіях.

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

Микола Апурін, Artwell
Навіщо платити, якщо є безкоштовні? Проте багато рішень, які можуть працювати тільки з платними БД. Здебільшого це іноземні практики.

Микола Фетюхін, MST
Питання неоднозначне. Часто і платні СУБД мають безкоштовні версії, і безкоштовні компоненти, які можна придбати за гроші. Різниця найчастіше у вбудованих інструментах аналітики та моніторингу БД. Тому платні СУБД найбільше підходять для великих проектів з великими розподіленими системами.

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

  • Category: База даних
  • Publisher: сайтworks
  • March 24,2017

Бази даних для даних!

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

Oracle 12c випуск 2

Ліцензія: Власність

База даних Oracle є реляційною базою даних, що використовується для зберігання інформації. Він опрацьовує збір даних як єдине ціле. Там, як правило, величезний рівень комфорту, незалежно від того, який продукт чи промисловості, при переході з найстарішим і найвстановленішим продуктом на ринку. Аргумент на користь Oracle 12c, однак, не тільки включати довговічність; продукт також підтримує більшість серверних операційних систем і добре відомий і шанований за його стабільність, потужні функції управління базами даних та практично непорушної доставки даних. Але, мабуть, найкращий аргумент для цієї SQL платформи у його імені; «с» в 12с виступає за хмари, і новітній Oracle ітерація є особливо ефективною у своїй здатності керувати базами даних як реальні хмарними послуги завдяки обробці даних у оперативної пам'ятіта розрахована на багато користувачів архітектуру. Додаткові і вражаючі функції включають нову функцію бази даних, що підключається, яка покращує використання ресурсів, роблячи це легко і безпечно для консолідації баз даних на меншій кількості серверів, а також ряд удосконалень, що підвищують загальну швидкість роботи. бази даних SQL Oracle завжди були відмінним вибором; 12с ще краще. Вона доступна на підприємстві, стандартні та стандартні одного видання, з різними функціями та цінами, щоб відповідати.


MySQL

Ліцензія: Open Source

MySQL використовується сотнями тисяч веб-сайтів, а також є основою внутрішнього застосування. Залишається (в основному) з відкритим вихідним кодом та безкоштовним для користувачів спільноти. Він працює практично з будь-якою операційною системою ви можете думати і простий у встановленні та роботі.
Він також виконує дуже добре для більшості апаратної конфігурації. Хоча це іноді отримують спритним з точки зору використання CPU та таблиці корупції, і це не самий найкращий вибірдля збільшення масштабування. Якщо у вас є гроші та вимоги, Oracle 12c є найкращим продуктом - але MySQL був промисловим стандартом протягом дуже довгого часу, і це, як і раніше, «простий» зробити вибір.

Microsoft SQL Server

Ліцензія: Власність

Це реляційна система управління базами даних, розроблена Microsoft. Сервер бази даних в основному сервер з великими обсягами даних, які можуть бути доступні кілька користувачів з віддалених районів. Це означає, що будь-яка програма, програмне забезпечення, що працює на будь-якій системі, в будь-якій частині світу, повинна бути в змозі зберігати та вилучати дані з сервера бази даних через будь-яку мережу. Є багато релізів Microsoft SQL Server до цих пір з останнім релізом є SQL Server 2016. Microsoft пропонує безліч видань для користувачів, щоб вибрати з кожного видання, пропонуючи різні функції. Деякі видання згадані нижче.
Enterprise
Стандартний
Web
Бізнес-аналітика
Робоча група

PostgreSQL

Ліцензія: Open Source

Ви не чуєте, як багато про PostgreSQL в якості двох інших учасників у цьому списку набуває максимальної цільової аудиторії, але PostgreSQL зробила величезний знак по роботі з базами даних для таких важкоатлетів, як Yahoo і Skype, а також багато сайтів онлайн ігор- і має свій розмір ринку браконьєрства давніх користувачів Oracle. Одна величезна перевага PostgreSQL є те, що це з відкритим вихідним кодом, але має великі експлуатаційні переваги, як: багатоверсійне управління паралелізмом, гаряче резервне копіювання, асинхронна реплікація та підтримка табличних просторів між ними. PostgreSQL ваги дуже добре, дуже легко керувати та використовувати і добре грає з усіма основними операційними системами. І якщо ви шукаєте допомогу або пропозиції, є дуже активна спільнота PostgreSQL, яка зробила великий внесок у розвиток та вдосконалення бази даних.

MariaDB

Ліцензія: Open Source

Один з найпопулярніших Open Source реляційних баз даних MariaDB була створена тим же набором людей, які створили MySQL (придбаний Oracle). Необхідність створення альтернативи MySQL зробив шлях для розвитку MariaDB.
MariaDB побудований на сучасній архітектурі, що надає йому гнучкість, яка підтримує використання ринків, що виникають.

Деякі з точок, що робить MariaDB настільки популярним

Ефективні двигуни зберігання

MariaDB поставляється разом з плагінами та зберігання машин, таких як Connect та Cassandra двигунів для зберігання NoSQL движків; прокатки міграції із застарілих баз даних; Павук для сегментування; TokuDB з фрактальними індексами etc.Most з них екранні для MySQL через третю особу. Тим не менш, MariaDB вивільняється з ними і, отже, робить його та ефективна проста у використанні.

перевага продуктивності

Він розробив покращений оптимізатор запитів та інші показники, пов'язані з чеком, який практично робить це швидше, ніж MySQL. Тим не менш, ці претензії MariaDB є результатом comparrison на основі ситуації.

Легко перейти

Якщо ви використовуєте один і той же базову версію MySQL, можна практично видалити його і встановити MariaDB, і ви добре йти.
Перехід до MariaDB так само легко, як встановлення MariaDBабо еквівалентну команду на вибраному Linux присмаком.

Якщо ви плануєте брати участь у будь-якій серйозній розробці, знати бази даних - життєво необхідно. Вони всюди, навіть якщо ви про це не здогадуєтеся. Рейтинг PYPL, який обчислює популярність, та баз даних, виділяє 14 систем управління базами даних, якими користується принаймні 1% користувачів. PYPL індексує популярність, виходячи з кількості запитів у пошуку Google. Згідно з опрацюванням результатів колективного розуму, станом на жовтень 2017 року найпопулярнішою базою даних залишається Oracle з результатом 32.26%. Ця кросплатформова СУБД – старійшина світу баз даних. Складно повірити, але перша версія, яка з невідомих нам причин називається Oracle v2, вийшла ще в 1979 році. Найновіша на сьогоднішній день – Oracle 12.2 – у вересні 2016 року. Базу даних Oracle найчастіше використовують великі компанії, але є і безкоштовна версія, якщо захочете потренуватися, щоб знайти роботу, пов'язану з «дорослою» версією. Називається вона Oracle Database Express Edition, її можна завантажити із сайту Oracle. Зрозуміло, вона має велику кількість обмежень (вона використовує до 1 ГБ ОЗУ, лише 1 процесор, лише одна БД до 11 ГБ).

Друге місце дісталося MySQL. Ті, хто вивчав бази даних в університеті або намагався освоїти їх самостійно, швидше за все користувалися цією безкоштовною базою даних. Це цікаве рішення для середніх і малих програм, зараз також належить Oracle. До речі, у володіння цієї компанії MySQL перейшла разом із нашою улюбленою мовою Java у процесі поглинання Sun Microsystems. За даними PYPL, MySQL цікавить 21.15% від загальної кількостікористувачів чи програмістів.

На третьому місці з комфортом та 16.78% розташувалася SQL Server виробництва Microsoft. Ця СУБД відмінно підходить для управління базами даних різного розміру, від персональних до Enterprise. Вона також на ринку вже дуже давно, хоч і на декаду менше, ніж Oracle: датою її народження вважається 24 квітня 1989 року. Як і переважна кількість продуктів Microsoft, SQL Server – платна (у випадку з Enterprise-версією – навіть дуже платна), але є і безкоштовні варіанти. Найпростіший із них - SQL Server Express, вона добре підходить для навчальних цілей і її можна розгорнути на малих серверах або звичайних комп'ютерах. Розмір бази даних – до 10 ГБ. Також є безкоштовна версія для програмістів. Призначена вона для створення, тестування та демонстрації програми на базі «справжньої» SQL Server. За продуктом Microsoft з великим відривом слідує PostgreSQL. Ця opens-source розробка Каліфорнійського університету в Берклі довгий час була у тіні своїх конкурентів, але останніми роками її частка повільно, але вірно зростає. А все завдяки її безкоштовності, легкій розширюваності та системі вбудованих мов програмування.

П'яте і шосте місце дісталися нереляційним баз даних MongoDB і ще молодий Firebase. Інтерес до обох явно зростає, особливо Firebase: порівняно з жовтнем минулого року, інтерес до неї зріс на 1.4% і тепер її результат - 2.19%. Замикають десятку SQLite, elasticsearch, Apache Hive та DB2.

Рейтинг PYPL популярності СУБД, жовтень 2017 та зростання порівняно з жовтнем-2016

Rank Change Database Share Trend
1 Oracle 32.26 % -2.7 %
2 MySQL 21.15 % -0.7 %
3 SQL Server 16.78 % -0.7 %
4 PostgreSQL 3.65 % +0.4 %
5 MongoDB 3.34 % +0.4 %
6 Firebase 2.6 % +1.4 %
7 SQLite 2.19 % -0.0 %
8 elasticsearch 2.1 % +0.5 %
9 Apache Hive 1.99 % +0.2 %
10 ↓↓↓ DB2 1.89 % -0.0 %
А ви вже працювали із СУБД? Якщо так, то з якими?

У статті розглянемо види систем управління базами даних.База даних – спільно використовуваний набір логічно пов'язаних даних (та опис цих даних), призначений задоволення інформаційних потреб організації. Виділяють такі види баз даних, наприклад, серверні та локальні, реляційні і не реляційні, що підтримують транзакції без них, і тп.

Ознайомимося з найпопулярнішими та актуальнимина даний моментсистем управління БД.

За способом доступу до БД виділяють такі типи систем управління базами даних:файл-серверні (дана технологія нині мало використовується, в її основі – доступ до СУБД через локальну мережу, як перевагу - низьке навантаження на ЦП сервера, до цього виду баз даних відносять Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro),клієнт-серверні (Доступ до БД здійснюється безпосередньо, оскільки СУБД розміщується на сервері разом з БД, недолік - підвищені вимоги до заліза, до цього виду баз даних відносять Oracle, Firebird, Interbase, IBM DB2, Informix, MS SQL Server, Sybase Adaptive Server Enterprise, PostgreSQL, MySQL, Caché, LINTER),вбудовані (є частиною програмного продукту, не потрібно робити самостійну установку, не розраховані для великої кількості користувачів, призначені для локального зберігання інформації, до цього виду БД відносять OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Sav Zigzag, Microsoft SQL Server Compact, LINTER).

Основні та популярні реляційні бази даних:SQLite, MySQL, PostgreSQL . Однак розглянемо основні відмінності між ними та функціональні можливості кожної, залежно від того, які цілі розробки ви маєте на меті.


Почнемо зSQLite- Швидка і потужна система управління БД, яка легко вбудовується в додатки. Має великий набір інструментів для роботи з файлами, Порівняно з іншими СУБД, так як сама є по суті файлом. Використовує технологію бібліотек, в результаті чого система дуже швидка. Система має відкритий вихідний код – Open Source.

Типи даних SQLite: NULL, INTEGER, REAL, TEXT, BLOB. До переваг SQLite можна віднести: можливість швидко і легко переносити базу даних з машини на машину, адже SQLite складається з файлу; використовуються стандарти SQL, хоча деякі з їх можливостей не враховані; якісно показує свої функції розробки та тестуванні. Але як і будь-яка інша система SQLite має недоліки: немає системи користувачів, яка використовується великими СУБД; немає функції збільшити продуктивність.

Навіщо використовують SQLite? Насамперед для вбудованих програм, якщо вам потрібно легко їх переносити і не важлива масштабованість, наприклад, це можуть бути ігри або мобільні програми; щоб мати прямий доступ до диска; для тестування, щоб уповільнити програму.


Про цю систему, напевно, чули всі, хто має хоч якесь відношення до веб-індустрії.MySQLдуже популярна та повноцінна СУБДяка відрізняється своєю широкою функціональністю. Серверна СУБД відмінно працює з різними видами сайтів та додатків. Однак працювати з системою дуже просто, тому що надається дуже багато інформації та документації щодо вивчення MySQL. Крім того, розроблено багато плагінів і розширень, які додатково полегшують роботу з даною системою. Весь функціонал SQL не реалізований в MySQL, але інструментів для розробки веб-додатків достатньо. Типи даних: TINYINT, SMALLINT, MEDIUMINT, INTEGER, BIGINT, FLOAT, DOUBLE, DECIMAL та інші.

Переважні особливості MySQL: простота та легкість роботи з даною СУБД; безліч корисних функцій; легкість масштабування; швидка та безпечна робота.

Недоліки MySQL: повільна розробка проекту, що часто спричиняє скарги з боку користувачів; іноді виникають проблеми з надійністю і є деякі обмеження щодо функціоналу, який потрібен окремим додаткам.

Для чого потрібний MySQL? Якщо для реалізації вашого проекту не вистачає функціоналу SQLite, MySQL стане для вас відмінним рішенням, оскільки має вільний доступ до вихідного коду та безліч функцій. Має хорошу систему захисту доступу до даних, що забезпечує безпеку. MySQL перевірена часом та добре підходить для розробки індивідуальних рішень.

Третя, але не менш популярна у своїх колах –порівняно з попередніми професійніша СУБД, яка поширюється вільно і за максимальними критеріями відповідає SQL. У системі підтримується реляційний підхід БД. Наприклад: Atomicity, Consistency, Isolation, Durability (ACID). У Postgre відзначається велика продуктивність, крім того систему легко розширити за допомогою так званих процедур, що зберігаються. Ця СУБД не така популярна як MySQL, але встановити її дуже легко за допомогою стандартних менеджерів пакетів ОС. Типи даних у Postgre: bigint, bigserial, bit, bit varying, boolean, box, bytea, character varying, circle та інші.

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

Недоліки PostgreSQL: може уповільнювати роботу сервера порівняно з конкуруючими БД; не всякий хостинг підтримує роботу з даною СУБД, оскільки вона не є настільки популярною. Але в компанії Hyper Host™ ця база даних підтримується, тому Ви можете сміливо вибирати наші , якщо використовуєте PostgreSQL.

З якою метою використовується PostgreSQL?

1) Коли ваша інформація має бути цілісною та зберігатися в надійному місці.

2) Якщо ви використовуєте складні користувальницькі процедури.

3) Якщо плануєте перехід на платні СУБД, з цієї системи цей перехід можна буде зробити без особливих зусиль, оскільки Postgre добре інтегрується коїться з іншими СУБД.

4) У Postgre є складна структура даних, що дає більше можливостей для роботи з ними.

Сподіваємося, дана інформація стала для Вас корисною і Ви вже визначилися, яка СУБД потрібна для Вашого проекту. Але якщо ще залишилися питання, звертайтеся, ми будемо раді допомогти! Хочемо також нагадати, що хостинг компанії Hyper Host™ підтримує роботу з усіма перерахованими системами 😉

У роботі із сервером стануть корисними інструкції “” та “?”.

7961 раз(и) 2 Сьогодні переглянуто раз(и)