Переваги та недоліки мови SQL. Складність роботи з ієрархічними структурами

Незалежність від конкретної СУБД

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

Наявність стандартів

Наявність стандартів і набору тестів виявлення сумісності та відповідності конкретної реалізації SQL загальноприйнятому стандарту лише сприяє «стабілізації» мови. Щоправда, варто звернути увагу, що сам собою стандарт місцями надто формалізований і роздутий у розмірах.

Декларативність

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

Недоліки

Невідповідність реляційної моделі даних

Творці реляційної моделіданих Едгар Кодд, Крістофер Дейт та їх прихильники вказують на те, що SQL не є істинно реляційною мовою. Зокрема, вони вказують на такі проблеми SQL:

  • Повторювані рядки
  • Невизначені значення
  • Явна вказівка ​​порядку колонок зліва направо
  • Колонки без імені та імена колонок, що дублюються.
  • Відсутність підтримки якості «=»
  • Використання покажчиків
  • Висока надмірність

Складність

Хоча SQL і замислювався як засіб роботи кінцевого користувачаНарешті він став настільки складним, що перетворився на інструмент програміста.

Відступи від стандартів

Незважаючи на наявність міжнародного стандарту ANSI SQL-92, багато компаній, що займаються розробкою СУБД, вносять зміни в мову SQL, що застосовується в СУБД, що розробляється, тим самим відступаючи від стандарту. Таким чином, з'являються специфічні для кожної конкретної СУБД діалекти мови SQL.

Складність роботи з ієрархічними структурами

Раніше діалекти SQL більшості СУБД не пропонували способу маніпуляції деревоподібними структурами. Деякі постачальники СУБД пропонували свої рішення. В даний час в ANSI стандартизовано рекурсивну конструкцію WITH з діалекту SQL DB2. У MS SQL Server рекурсивні запитиз'явилися лише у версії MS SQL Server 2005.

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

Зручність та доступність. Великим плюсом SQL Server завжди була простота вивчення та освоєння, особливо в порівнянні з іншими реляційними базамиданих. Як я вже зазначав у своїх статтях, спільнота користувачів продуктів Microsoft, особливо SQL Server, відрізняється відкритістю та щедрістю. Прагнучи завоювати мир з SQL Server, компанія надає чудову документацію, навчальні курси, вичерпну підтримку та різні варіантинавчання.

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

Підтримка розробників. Збережені процедури завжди були дуже корисні для користувачів SQL Server, а завдяки підтримці ODBC та OLEDB вони доступні на найрізноманітніших платформах. Крім того, успіх і широке поширення багато в чому зумовлено чудовою взаємодією між SQL Server та. NET.

Бізнес-аналітика. Ще однією перевагою, що сприяє поширенню SQL Server, стали зусилля компанії, спрямовані на розширення доступності бізнес-аналітики (BI). Багато розробників не надають значення цьому питанню, але немає сумнівів, що переваги доступу, що надається єдиною ліцензією SQL Server до потужного механізму OLTP, функцій OLAP та зберігання даних, і навіть інструментарію ETL (SSIS) та підготовки звітів (SSRS) - ключовий елементуспіху SQL Server.

Нова особа SQL Server

Нещодавно випущені версії SQL Server – наочне підтвердження того, що Microsoft не послаблює зусиль, додаючи нові функції бізнес-аналітики (хоча доводиться чути скарги на недоліки інструментарію та підготовки звітів). Так само, я впевнений, що зручність і доступність SQL Server ще ніколи не були на такому рівні завдяки SQLSaturday, хеш-тегу #SQLHelp Twitter, достатку блогів SQL Server, безкоштовним навчальним курсамта безлічі інших переваг.

Останньою важливою новацією, орієнтованою на розробників, була поява CLR у SQL Server 2005. Інші покращення були меншими і поступовими, нічого радикального. Я не зважаю на такі нововведення, як RCSI і навіть підтримка Hekaton, запланована в SQL Server 2014. Це хороші функції, корисні для розробників, але лише щодо підвищення пропускну здатністьта масштабованості.

Зрештою, важливим пунктомстали ціни. Про перехід SQL Server 2012 від ліцензування процесорів до ліцензування ядер не йдеться. На мій погляд, це рішення цілком справедливе і прийнятне, тому що в даний час процесори стали набагато потужнішими, ніж раніше, а ліцензії SQL Server завжди надавалися за принципом ви платите за те, чим користуєтеся. Мене більше турбує інша проблема: в умовах ліцензування SQL Server 2008 R2 і новіших випусків помітне прагнення прив'язати споживачів до продукту і змусити його оновлювати версії. Такий підхід суперечить справедливому ліцензуванню, що сприяло виходу SQL Server на провідні позиції на ринку. Зокрема, я маю на увазі ту обставину, що в SQL Server 2008 R2 і новіших версіях робочі навантаження Standard Editionштучно обмежені до 64 Гбайт оперативної пам'яті. Враховуючи, що в перспективі очікується поява DDR4, сміхотворність цього обмеження стане очевидною, коли через кілька років до кінця життєвого циклу SQL Server 2014, у продажу почнуть з'являтися модулі DIMMємністю 64 Гбайт.

PostgreSQL: перспективи для розробника

Завдяки SQL Server я сплачував іпотеку протягом десяти років. Мені навіть не спадало на думку, що колись я подумаю про зраду. Але нещодавні дивацтва з ліцензуванням Standard Edition і нестача уваги з боку розробників до недавніх версій SQL Server похитнули мою впевненість.

З одного боку, не проходить тижня, щоб я з подивом не згадав про несумісність SQL Server з JSON. SQL Server? XML? Мова XMLкружляв голови у 1999 році, але сьогодні його колишнє значення безнадійно втрачено. З іншого боку, абсолютно безкоштовний продукт PostgreSQL не просто сумісний з JSON, а й забезпечує індексацію даних JSON. І це лише вершина айсберга - у PostgreSQL безліч дуже потужних функцій, які сподобаються розробникам. Пройде трохи часу, і я обов'язково познайомлюся з PostgreSQL ближче, особливо враховуючи, що розгорнути продукт не важко.

Ні, поки я не готовий змінити продукт, але, схоже, розробники SQL Server зібралися на лаврах. PostgreSQL не позбавлений недоліків, але в останні кілька років він став набагато кращим. Це продукт з широкими можливостями, надзвичайно зручний для розробників, і безумовно націлений на збільшення частки ринку. Можу лише сподіватися, що SQL Server отримає новий імпульс розвитку та відновить визнання та підтримку розробників. Неприпустимо забувати, яка робота зроблена творцями продукту шляху до успіху.

В даний час існує досить багато різних серверних СУБД– це MS SQL Server, Oracle, IBM DB2, Interbase, MySQL тощо. Але широке поширення та застосування на практиці для великих системотримали 3 системи - MS SQL, Oracle та IBM DB2.

Для вибору СУБД порівняємо їх за наступним параметрам: продуктивність, ціна, доступність, зручність використання, можливості. При виборі СУБД використовувалися дані, наведені на сайтах www.tpc.org і www.sql.ru.

На сайті www.tpc.org опубліковано дані TPC тестів та порівняння цін серверів. За даними цього сайту, перше місце за продуктивністю, яке визначається як кількістю вироблених бізнес транзакцій за хвилину, займає MS SQL Server 2000 з показником tpmC=505302, далі слідує IBM DB2 UDB 7.1 з tpmC=440879. СУБД Oracle 8i Enterprise Edition v. 8.1.7 займає лише п'яту позицію (tpmC=220807). Крім того, MS SQL Server 2000 лідирує і за показником вартості системи на одну транзакцію. Вартість системи в перерахунку на одну транзакцію для системи MS SQL Server 2000 складає близько $20, що в 1.5 нижче, ніж для системи DB2, і в 2 рази нижче, ніж для Oracle.

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

Сайт www.sql.ru наводить результати опитування (див. рис 3.3) користувачів з питання, які СУБД використовуються найчастіше. Результати цього опитування знову на користь MS SQL Server – понад 30% усіх учасників голосування віддали перевагу цій СУБД всім іншим. Більше широке використання MS SQL Server забезпечить меншу вартість застосування та підтримки, т.к. Існує велика ймовірність, що MS SQL Server вже використовується в даній компанії.

Мал. Відсоток використання СУБД

Таблиця. Порівняльні характеристикиСУБД.

У таблиці наведені основні переваги та недоліки СУБД, що розглядаються. Для системи, що розробляється, буде використовуватися СУБД MS SQL 2000. Цей вибіробґрунтовується широким поширенням даної системи, високою продуктивністюза низької вартості сервера та простоти підтримки системи. Крім того, серверний комп'ютер буде працювати під керуванням операційної системи з сімейства Windows NT що забезпечує ще одну перевагу MS SQL Server 2000, т.к. саме дана СУБД найкращим чиномоптимізовано для операційної системи Windows.

Вибір та обґрунтування використання MS Visual Studioі MS Visual C++, як засоби розробки.

У зв'язку з тим, що сьогодні рівень складності програмного забезпеченнядуже високий, розробка додатків Windowsз використанням лише будь-якої мови програмування (наприклад, мови C) значно утруднюється. Програміст повинен витратити багато часу на рішення стандартних завданьстворення багатовіконного інтерфейсу. Реалізація технології зв'язування та вбудовування об'єктів – OLE – вимагатиме від програміста ще більш складної роботи.

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

На сьогоднішній день існує велика різноманітність та достаток засобів розробки. Розглянемо основні переваги та недоліки трьох з них, як най- Delphi, С++ Builder і MS Visual C++/Visual Studio.

Delphi є потужним і універсальним засобомрозробки програм. Його RAD-оболонка вважається однією з найкращих. Її разом із бібліотекою VCL, на якій оболонка заснована та написана, можна назвати справді революційною. Delphi надає програмісту широкі можливостіз розробки графічного інтерфейсупрограм (GUI). Він оптимально підходить для невеликих проектів, коли на перше місце ставиться швидкість розробки. Delphi дуже популярний у нашій країні, проте за кордоном його популярність набагато нижча, і при реалізації великих проектівпереваги віддаються С++.

Переваги:

………………………

Недоліки

………………………

C++ Builder

Якийсь "гібрид" Delphi і C++, про що говорить хоча б те, що C++ Builder використовує ту ж бібліотеку VCL, що і Delphi, причому написану на Delphi. У світлі цього логічної виглядає сумісність C++ Builder з Delphi лише на рівні компонентів і вихідного коду.

Переваги:

…………………..

Недоліки:

……………………

MS Visual C++

Продукт Microsoft Visual C++ .NET - потужний засіброзробки, що дозволяє створювати програми на базі Microsoft Windows, з підтримкою технології Microsoft.NET, динамічні web-додатки та web-служби XML із використанням мови програмування C++. Бібліотека класів MFC, що входить до складу Visual C++, дозволяє суттєво полегшити створення графічного інтерфейсу додатків. Проте від програмістів VC++ потрібно набагато більша кваліфікація, ніж від програмістів Delphi, т.к. MFC, незважаючи на всю свою «потужність», є лише тонкою «оберткою» над WinApi, і тому при написанні додатків багато доводиться робити вручну. З одного боку, це є мінусом, т.к. сильно знижується швидкість розробки. З іншого боку, це дає більш широкі можливості та гнучкість при реалізації великих проектів і дозволяє досягти їх максимальної продуктивності.

Переваги:

…………………………

Недоліки:

Access

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

Підходить для:Невеликі об'єкти з невисокою завантаженістю, за наявності 1 або 2 робочих місць.
Швидкодія: Microinvest Склад Pro чудово працює з до 200 000 записами бази даних. Це 40 000 документів з 5 позиціями кожен.
Безпека:Т.к. база зберігається в одному файлі, який доступний усім робочим місцям, безпека даних не дуже висока. Майже кожне робоче місце має прямий доступ до бази даних і може її пошкодити.
Простота установки:Цей вид бази даних вимагає центрального сервера. Достатньо мати один комп'ютер, який зберігає файл з базою і щоб інші комп'ютери мали доступ до цього файлу через мережу.
Зв'язок у мережі:Для роботи в мережі достатньо визначити одну папку, яка доступна всім комп'ютерам, і визначити місце для файлу. Цей файл окремо відкривається з кожного комп'ютера.
Інші особливості: Microinvest Склад Pro працює з базою Access без необхідності придбання та установки Accessна комп'ютер. У саму програму вбудовано всі необхідні модулікерування базою даних у форматі Access. База даних безкоштовна.

MSDE (Microsoft Desktop Engine)

MSDE це невеликий і моторний SQL серверздатний забезпечити чудову швидкість роботи в мережах з розміром до 5 робочих місць. MSDE встановлюється на центральний серверабо на одне з робочих місць і всі інші комп'ютери зв'язуються з цим сервером. Перевагою є відмінна швидкодія та повноцінне використанняресурсів комп'ютера

Підходить для:Невеликі об'єкти з високою завантаженістю, за наявності до 5 робочих місць.
Швидкодія: Microinvest Склад Pro чудово працює з базою даних до 2 GB. Це понад 1000000 документів.
Безпека: MSDE є повноцінним SQL сервером, який піклується про управління базою даних, її безпеку і стабільність при роботі. MSDE забезпечує самий високий рівеньзахисту даних і практично не створює жодних проблем.
Простота установки: Microinvest надає один інсталяційний файл MSDE, який встановлює все необхідні компоненти, без будь-яких додаткових налаштувань. Через обмеження технології в MSDE цей сервер не може бути встановлений на Windows Vista, Windows 7, Windows 8 або Windows 10.
Зв'язок у мережі:Для всіх комп'ютерів у мережі відкривається порт 1433 у мережі Firewall. Зв'язок між окремими комп'ютерамиздійснюється за допомогою заповнення IP адреси сервера (комп'ютер, відведений для цього, із встановленим MSDE), імені користувача (зазвичай sa), пароля для зв'язку та імені бази даних.
Інші особливості: MSDE – це безкоштовний сервер, що має низькі вимоги до параметрів комп'ютера, що підтримує все необхідні системизахисту даних і працюючий виключно швидко. Повна інструкціяпо установці MSDE розміщена на настановному диску Microinvest.

MySQL

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

Підходить для:Невеликих об'єктів з високою завантаженістю, кількість робочих місць будь-яка. При об'єктах до 5 робочих місць рекомендується використання MSDE, т.к. MSDE працює швидше ніж MySQL. Якщо кількість робочих місць більше 5, краще встановити MySQL.
Швидкодія:Сервер немає обмежень за розміром бази даних і може витримати практично необмежену навантаження.
Безпека: MySQL є повноцінним SQL сервером, який піклується про управління базою даних, її безпеку та стабільній роботі. MySQL забезпечує найвищий рівень захисту даних та роботу з транзакціями. MySQL дуже чутливий до відключення живлення, тому для машини, на якій встановлено сервер, необхідно забезпечити ДБЖ (UPS).
Простота установки: Microinvest надає два інсталяційного файлу MySQL (файл із сервером та файл із інструментами для управління сервером). MySQL працює з усіма версіями Windows. У настановному диску є докладні інструкціївстановлення цього сервера. При установці важливо вибрати кодування UTF-8, щоб не виникло проблем із кирилицею.
Зв'язок у мережі:Для всіх комп'ютерів у мережі відкривається порт 3306 Firewall. Зв'язок між окремими комп'ютерами здійснюється за допомогою заповнення IP адреси сервера (комп'ютер, відведений для цього, встановленим MySQL), імені користувача (зазвичай root), пароля зв'язку та назви бази даних.
Інші особливості: MySQL – це безкоштовний SQL сервер, який має величезні можливостідля роботи з високим ступенем завантаження. Повна інструкція з установці MySQLрозміщена на інсталяційному диску Microinvest.

MS SQL (Microsoft SQL Server)

MS SQL є узагальненим найменуванням Microsoft SQL Server 2005/2008/2012/2014/2016 Express Edition. Це чудовий сервер з відмінними можливостями, високою швидкістюі максимальною безпекою. MS SQL встановлюється на центральний сервер і всі інші комп'ютери підключаються до цього сервера.

Підходить для:Середні та великі об'єкти з високим завантаженням.
Швидкодія: Microinvest Склад Pro працює відмінно при будь-якому навантаженні. Практично не має обмежень в обсязі даних та швидкодії системи.
Безпека: MS SQL це SQL сервер високого класу, який піклується про управління базою даних, її безпеку та стабільність роботи. MS SQL гарантує найвищий рівень захисту даних та практично не створює жодних проблем. Ця система корпоративного значення може використовуватися у кожного клієнта.
Простота установки: Microinvest надає два інсталяційного файлу MS SQL (x86 та x64). MS SQL працює з усіма версіями Windows. У диску є докладні інструкції для встановлення цього сервера.
Зв'язок у мережі:Для всіх комп'ютерів у мережі відкривається порт 1433 у мережі Firewall. Зв'язок між окремими комп'ютерами здійснюється за допомогою заповнення IP адреси сервера (комп'ютер, відведений для цього з встановленим SQL Server), імені користувача (зазвичай sa), пароля зв'язку та назви бази даних.
Інші особливості: Microsoft SQL Server 2005/2008/2012/20014 Express Edition – це безкоштовний сервер, який має високі експлуатаційні характеристики. Повна інструкція з установці SQL Server розміщена на інсталяційному диску Microinvest. Важливо, що наданий на диску сервер безкоштовний для використання клієнтами.

Деякі корисні ресурси

  • Документація з усіх продуктів;
  • Форум технічної підтримки Microinvest, де Ви зможете швидко отримати відповідь на питання, що цікавить;
  • Приклади автоматизації ресторанів та торгівлі на базі Microinvest у Росії та країнах СНД;
  • Графік майбутніх навчань у Росії та країнах СНД;