Hodnotenie databáz pre programovanie. Najlepšie SQL databázy

Relačné databázy sa v programovaní používajú už dlho. Svojho času si získali obľubu vďaka jednoduchosti a pohodlnosti relačného modelu práce s údajmi.

Tento článok analyzuje rozdiely medzi najpopulárnejšími systémami správy relačných databáz (DBMS): SQLite, MySQL a PostgreSQL.

Systémy na správu databáz

Databázy sú logicky modelované úložiská rôznych informácií (údajov) všetkých typov. Každá databáza SQL je založená na modeli, ktorý poskytuje štruktúru pre uložené údaje. Systémy správy databáz sú aplikácie (alebo knižnice), ktoré spravujú databázy rôznych tvarov, veľkostí a typov.

Systémy správy relačných databáz

Relačné DBMS používajú na prácu s údajmi relačný model. Tento model ukladá akékoľvek informácie do tabuliek vo forme súvisiacich záznamov s atribútmi.

Tento typ DBMS vyžaduje štruktúry tabuliek. Stĺpce (atribúty) takejto tabuľky obsahujú rôzne typy údajov. S každým záznamom databázy sa zaobchádza ako s riadkom v tabuľke, ktorej atribúty sú reprezentované ako stĺpce.

Vzťahy a typy údajov

Vzťahy si možno predstaviť ako matematické množiny obsahujúce množstvo atribútov, ktoré spoločne predstavujú databázu a informácie v nej uložené.

Pri pridávaní záznamu do tabuľky je potrebné distribuovať všetky jeho komponenty (atribúty) podľa typu údajov. Rôzne relačné DBMS používajú rôzne typy údajov a nie sú vždy zameniteľné.

Takéto obmedzenia (ako napríklad pri typoch údajov) sú typické pre relačné DBMS, pretože v skutočnosti sú vzťahy medzi údajmi postavené na základe obmedzení.

Poznámka: NoSQL databázy nemajú také prísne obmedzenia, pretože nevytvárajú také vzťahy medzi dátami. Ak sa chcete dozvedieť viac o NoSQL, prečítajte si.

Populárne relačné databázy

V tomto článku sa pozrieme na tri najdôležitejšie a najpopulárnejšie open source DBMS.

  • SQLite: Vstavaný výkonný systém správy databáz.
  • MySQL: najpopulárnejšia a najpoužívanejšia databáza.
  • PostgreSQL: Pokročilý, open source, SQL kompatibilný objekt DBMS.

Poznámka: Aplikácie s otvoreným zdrojovým kódom takmer vždy poskytujú používateľom právo voľne používať a meniť kód. Forkovaním kódu môžete vytvoriť úplne novú aplikáciu. Jedným z forkov MySQL je napríklad MariaDB.

SQLite

SQLite je výkonná knižnica, ktorú je možné vložiť do aplikácií. Plnohodnotná databáza SQLite založená na súboroch ponúka širokú škálu nástrojov na spracovanie všetkých typov údajov a ukladá oveľa menej obmedzení ako iné relačné databázy.

Aplikácie využívajúce SQLite nekomunikujú pomocou rozhrania (porty, zásuvky), ale odosielajú priame požiadavky do súboru, v ktorom sú dáta uložené (napríklad databáza SQLite). Vďaka tomu je aplikácia SQLite veľmi rýchla a výkonná.

Typy údajov SQLite

  • NULL: prázdna hodnota.
  • INTEGER: celočíselná hodnota (v závislosti od veľkosti je hodnota uložená v 1, 2, 3, 4, 6 alebo 8 bajtoch).
  • REAL: číslo s pohyblivou rádovou čiarkou, uložené ako 8-bajtový IEEE.
  • TEXT: textový reťazec uložený v zašifrovanej forme (UTF-8, UTF-16BE alebo UTF-16LE).
  • BLOB: binárne dáta uložené vo forme, v akej boli zadané.

Výhody SQLite

  • Jednoduchý dizajn založený na súboroch: celá databáza pozostáva len z jedného súboru, čo zvyšuje jej prenosnosť.
  • Štandardy: Napriek svojej jednoduchosti je systém SQLite založený na SQL. Niektoré funkcie sú vynechané (PRÁVA VONKAJŠIE SPOJENIE alebo PRE KAŽDÝ VÝKAZ), ale namiesto toho sú pridané iné.
  • SQLite je skvelý na vývoj alebo testovanie. V týchto fázach je takmer vždy potrebné jednoduché, ale škálovateľné riešenie.

Nevýhody SQLite

  • Žiadna správa používateľov. Zložitejšie DBMS podporujú správu používateľov (ich vzťahy, privilégiá atď.). Jednoduchý SQLite DBMS takúto funkciu neposkytuje.
  • Nedá sa zlepšiť výkon. Knižnica SQLite sa ľahko konfiguruje a používa. Je však navrhnutý tak, že neumožňuje získať dodatočný výkon jemným doladením. To znamená, že je technicky nemožné, aby bol SQLite produktívnejší.

Kedy je najlepší čas použiť SQLite?

  • Jednoduché vstavané aplikácie, ktoré vyžadujú prenosnosť, ako sú lokálne aplikácie pre jedného používateľa, mobilné aplikácie, hry.
  • Výmena disku. Aplikácie, ktoré potrebujú čítať alebo zapisovať súbory na disk, môžu zvyčajne použiť SQLite na získanie ďalších funkcií.
  • Testovanie.

Kedy je lepšie nepoužívať SQLite

  • Aplikácie pre viacerých používateľov. Ak je aplikácia postavená tak, že veľké množstvo klientov súčasne používa jednu databázu, potom je lepšie do takejto aplikácie implementovať plnohodnotnú relačný DBMS (napríklad MySQL).
  • Aplikácie, ktoré zaznamenávajú veľké množstvo údajov. operácia zápisu je jedným z obmedzení SQLite. Tento DBMS umožňuje naraz iba jednu operáciu zápisu, a preto obmedzuje priepustnosť.

MySQL

MySQL je najpopulárnejší DBMS. Ide o multifunkčnú otvorenú aplikáciu, ktorá podporuje obrovské množstvo stránok. MySQL sa pomerne ľahko používa a dokáže ukladať veľké množstvo údajov.

Poznámka: Vzhľadom na popularitu MySQL bolo pre tento systém vyvinutých veľké množstvo aplikácií, nástrojov a knižníc tretích strán.

MySQL neimplementuje úplný štandard SQL. Napriek tomu MySQL ponúka používateľom množstvo funkcií: samostatný databázový server, interakciu s aplikáciami a webovými stránkami atď.

Typy údajov MySQL

  • TINYINT: celé číslo v rozsahu -128 až 127 (1 bajt).
  • SMALLINT: celé číslo od -32768 do 32767 (2 bajty).
  • MEDIUMINT: číslo od -8388608 do 8388608 (3 bajty).
  • INT alebo INTEGER: číslo v rozsahu -2147683648 až 2147683648 (4 bajty).
  • BIGINT: číslo od -2 63 do 2 63 -1 (8 bajtov).
  • FLOAT: číslo s pohyblivou rádovou čiarkou (4 bajty).
  • DOUBLE, DOUBLE PRECISION, REAL: dvojitá presnosť čísla s pohyblivou rádovou čiarkou.
  • DECIMAL, NUMERIC: hodnoty so zvýšenou presnosťou.
  • DATE: dátum.
  • DATETIME: dátum a čas.
  • TIMESTAMP: časová pečiatka.
  • TIME: čas vo formáte hh:mm:ss.
  • ROK: rok (štandardne uložené ako 4 číslice, ale možno nakonfigurovať 2).
  • CHAR: šnúrka s pevnou dĺžkou.
  • VARCHAR: variabilné reťazce.
  • TINYBLOB, TINYTEXT: Typ TEXT umožňuje ukladať text a typ BLOB umožňuje ukladať obrázky, zvuk, elektronické dokumenty atď. Maximálna dĺžka je 225 znakov.
  • BLOB, TEXT: veľké množstvo textu, maximálne 65535 znakov.
  • MEDIUMBLOB, MEDIUMTEXT: podobné predchádzajúcemu, ale maximálne do 16777215 znakov.
  • LONGBLOB, LONGTEXT: podobné predchádzajúcemu, ale maximálne do 4294967295 znakov.
  • ENUM: akceptuje iba jednu z hodnôt danej množiny.
  • SET: Prijíma niektoré alebo všetky prvky z hodnôt danej množiny.

Výhody MySQL

  • Jednoduché použitie: MySQL sa veľmi jednoducho inštaluje a konfiguruje. Nástroje tretích strán vrátane vizualizérov (rozhraní) výrazne zjednodušujú prácu s údajmi.
  • Funkčnosť: MySQL podporuje veľké množstvo funkcií SQL.
  • Zabezpečenie: MySQL poskytuje mnoho vstavaných pokročilých funkcií na ochranu vašich údajov.
  • Škálovateľnosť a výkon: MySQL dokáže spracovať veľké množstvo údajov.

Nevýhody MySQL

  • Obmedzenia: Štruktúra MySQL ukladá určité obmedzenia, ktoré môžu brániť spusteniu pokročilých aplikácií.
  • Zraniteľnosť: Spôsob spracovania údajov používaný v MySQL robí tento DBMS o niečo menej spoľahlivým v porovnaní s inými DBMS.
  • Pomalý vývoj: Hoci je MySQL produkt s otvoreným zdrojovým kódom, vyvíja sa veľmi pomaly. Treba si však uvedomiť, že viaceré plnohodnotné databázy sú založené na MySQL (napríklad MariaDB).

Kedy použiť MySQL

  • Distribuované operácie: Samostatný databázový server MySQL podporuje mnoho operácií a poskytuje niekoľko ďalších funkcií.
  • Vysoká bezpečnosť dát: MySQL ponúka vysokú bezpečnosť dát.
  • Webové stránky a webové aplikácie: Napriek svojim obmedzeniam môže MySQL poháňať takmer všetky webové stránky a webové aplikácie. Tento flexibilný a škálovateľný nástroj sa ľahko používa.
  • Vlastné riešenia: MySQL je možné prispôsobiť tak, aby spĺňalo presné požiadavky lokality alebo aplikácie.

Kedy je lepšie nepoužívať MySQL?

  • Konflikty s SQL: Keďže MySQL stále plne neimplementuje štandardy SQL, nie je plne kompatibilné s SQL. Preto nie je možné vždy integrovať MySQL s iným DBMS.
  • Slabá podpora súbežnosti: Hoci MySQL vykonáva operácie čítania dobre, súčasné operácie čítania a zápisu môžu spôsobiť problémy.
  • Nedostatok niektorých funkcií (napríklad fulltextové vyhľadávanie).

PostgreSQL

PostgreSQL je pokročilý otvorený objektovo orientovaný DBMS. PostgreSQL implementuje ANSI/ISO SQL štandardy.

Na rozdiel od iných DBMS, PostgreSQL podporuje veľmi dôležité objektovo orientované a relačné databázové funkcie: spoľahlivé ACID transakcie (atomicita, konzistencia, izolácia, trvanlivosť) atď.

Na základe spoľahlivej technológie dokáže PostgreSQL DBMS súčasne spracovať veľké množstvo úloh. Podpora konzistencie je dosiahnutá bez blokovania čítaní vďaka MVCC.

PostgreSQL DBMS síce nie je taký populárny ako MySQL, no aj preň bolo vyvinuté veľké množstvo doplnkových nástrojov a knižníc, ktoré zjednodušujú prácu s dátami a zvyšujú výkon DBMS.

Typy údajov PostgreSQL

  • bigint: osembajtové celé číslo so znamienkom.
  • bigserial: Osembajtové automaticky sa zvyšujúce celé číslo.
  • bit [(n)]: bitový reťazec s pevnou dĺžkou.
  • bitové premenné [(n)]: bitový reťazec s premenlivou dĺžkou.
  • boolean: boolovská hodnota (pravda/nepravda).
  • box: štvoruholník na rovine.
  • bytea: binárne dáta.
  • premenlivý znak [(n)]: Reťazec znakov s premenlivou dĺžkou.
  • znak [(n)]: reťazec znakov s pevnou dĺžkou
  • cidr: sieťová adresa IPv4 alebo IPv6.
  • kruh: kruh na rovine.
  • dátum: dátum (rok, mesiac, deň).
  • dvojitá presnosť: dvojitá presnosť čísla s pohyblivou rádovou čiarkou (8 bajtov).
  • inet: IPv4 alebo IPv6 adresa hostiteľa.
  • celé číslo: štvorbajtové celé číslo so znamienkom.
  • interval [(p)]: časový interval.
  • priamka: nekonečná priamka na rovine.
  • lseg: úsečka na rovine.
  • macaddr: MAC (Media Access Control) adresa.
  • peniaze: mena.
  • numeric [(p, s)]: presná numerická hodnota so zvolenou presnosťou.
  • cesta: geometrická cesta na rovine.
  • bod: geometrický bod na rovine.
  • polygón: uzavretá geometrická cesta v rovine (polygón)
  • real: jedno presné číslo s pohyblivou rádovou čiarkou (4 bajty).
  • smallint: dvojbajtové celé číslo so znamienkom.
  • sériové: štvorbajtové celé číslo s automatickým prírastkom.
  • text: reťazec znakov s premenlivou dĺžkou.
  • čas [(p)] : čas dňa (bez časového pásma).
  • čas [(p)] s časovým pásmom: čas dňa a časové pásmo.
  • časová pečiatka [(p)] : časová pečiatka (dátum a čas) bez časového pásma.
  • časová pečiatka [(p)] s časovým pásmom: časová pečiatka s časovým pásmom.
  • tsquery: textový vyhľadávací dopyt.
  • tsvector: Dokument na vyhľadávanie textu.
  • txid_snapshot: Snímka ID transakcie na úrovni používateľa.
  • uuid: univerzálne jedinečný identifikátor.
  • xml: údaje XML.

Výhody PostgreSQL

  • Systém správy databázy PostgreSQL je otvorený, kompatibilný s SQL a bezplatný.
  • Aktívna komunita PostgreSQL vám pomôže nájsť riešenie akéhokoľvek problému súvisiaceho s DBMS, kedykoľvek počas dňa.
  • Podpora nástrojov tretích strán: Okrem vstavaných pokročilých funkcií podporuje PostgreSQL mnoho otvorených nástrojov tretích strán na návrh, správu údajov a ďalšie.
  • Škálovateľnosť a rozšíriteľnosť.
  • Orientácia objektu.

Nevýhody PostgreSQL

  • Výkon: V niektorých situáciách je výkon PostgreSQL nižší ako výkon MySQL.
  • Nízka popularita.
  • Vzhľadom na vyššie uvedené nevýhody nie všetci poskytovatelia hostingu podporujú PostgreSQL.

Kedy použiť PostgreSQL

  • Ak aplikácia vyžaduje integritu údajov.
  • Na vykonávanie zložitých úloh používateľa.
  • Ak bude v budúcnosti aplikácia potrebovať spoľahlivejšiu platenú databázu, bude jednoduchšie prejsť z PostgreSQL.
  • Na podporu aplikácií so zložitými štruktúrami ponúka PostgreSQL špeciálnu sadu funkcií.

Kedy je lepšie nepoužívať PostgreSQL

  • Ak aplikácia potrebuje rýchle operácie čítania.
  • Ak vaša aplikácia nepotrebuje absolútnu integritu dát, ACID alebo komplexnú štruktúru, PostgreSQL môže byť príliš zložité riešenie.
  • Replikácia dát je zložitejšia ako v MySQL, preto je lepšie nepoužívať PostgreSQL v klastroch.
Značky:

V súčasnosti existuje veľké množstvo DBMS od rôznych výrobcov a najčastejšie DBMS sú univerzálne, t.j. možno použiť v rôznych oblastiach a na riešenie rôznych problémov. Systémy sa líšia výkonom, požiadavkami na zdroje a nákladmi na údržbu.

Najbežnejšími priemyselnými DBMS sú stále systémy americkej spoločnosti Oracle, výrobcu prvých komerčných priemyselných DBMS. Tieto systémy sa vyznačujú vysokou spoľahlivosťou, schopnosťou doladiť sa na riešené úlohy, flexibilnou správou RAM, vysokým výkonom, multiplatformnosťou - t.j. schopnosť pracovať pod kontrolou oboch počítačov rôznych architektúr a rôznych operačných systémov. Spolu s verziou Oracle DBMS pre viacerých používateľov existuje aj jej „odľahčená“ verzia – Personal Oracle alebo Oracle Lite. Táto verzia sa zvyčajne používa v malých AIS s obmedzeným počtom používateľov (zvyčajne nie viac ako 5 - 10 osôb).

Priemyselná DBMS od Microsoftu, nazývaná SQL Server, nemá o nič menej možností ako DBMS od Oracle. Jeho nevýhodou však je, že môže fungovať len pod operačnými systémami samotného Microsoftu, čo znemožňuje jeho použitie na serveroch s populárnymi operačnými systémami ako Unix, Linux, Solaris a iné. Ďalším populárnym DBMS od spoločnosti Microsoft je MS Access, súčasť softvérového balíka Microsoft Office. Tento DBMS je pre jedného používateľa a je určený na údržbu malých databáz.

Populárne a pomerne bežné DBMS sú tiež DB2 od IBM, Sybase, Informix, PostgreSQL („ Post-Gres-Q-El", "postgres"), Interbase a niektoré ďalšie. Samostatne stojí za zmienku voľne distribuované DBMS, z ktorých mnohé sú vhodné na riešenie pomerne zložitých problémov. Aj keď nemajú plne funkcie, ktoré sú súčasťou komerčných DBMS, majú zároveň významnú výhodu – nulové náklady. Takéto DBMS sú spravidla podporované nezávislými skupinami vývojárov a distribuované vo forme zdrojových kódov programových modulov. Najpopulárnejšie z týchto DBMS u nás sú MySQL a takzvané „klony“ komerčného DBMS Interbase – FireBird a Yaffil.

Výber DBMS by mal zohľadňovať potreby zákazníka, možnosť ďalšieho rozširovania informačného systému, faktory obstarávacej ceny a ďalšie parametre.

Ak sa plánujete zúčastniť na akomkoľvek serióznom vývoji, znalosť databáz je životne dôležitá. Sú všade, aj keď o tom neviete. Rebríček PYPL, ktorý počíta obľúbenosť databáz a databáz, identifikuje 14 systémov správy databáz, ktoré používa aspoň 1 % používateľov. PYPL indexuje popularitu na základe počtu dopytov vo vyhľadávaní Google. Podľa spracovania výsledkov kolektívneho spravodajstva zostáva k októbru 2017 najobľúbenejšou databázou Oracle so skóre 32,26 %. Tento multiplatformový DBMS je starším databázovým svetom. Je ťažké uveriť, ale prvá verzia, ktorá sa z nám neznámych dôvodov nazýva Oracle v2, bola vydaná už v roku 1979. K dnešnému dňu je najnovší Oracle 12.2 vydaný v septembri 2016. Databázu Oracle najčastejšie využívajú veľké spoločnosti, no existuje aj bezplatná verzia, ak si chcete precvičiť a následne si nájsť prácu súvisiacu s verziou „pre dospelých“. Volá sa Oracle Database Express Edition a dá sa stiahnuť z webovej stránky Oracle. Samozrejme má veľké množstvo obmedzení (využíva do 1 GB RAM, len 1 procesor, len jeden DB do 11 GB).

Druhé miesto obsadil MySQL. Každý, kto študoval databázy na univerzite alebo sa ich pokúšal naučiť sám, pravdepodobne použil túto bezplatnú databázu. Ide o zaujímavé riešenie pre stredné a malé aplikácie, ktoré teraz vlastní aj Oracle. Mimochodom, MySQL sa dostal do vlastníctva tejto spoločnosti spolu s naším obľúbeným jazykom Java, v procese absorpcie Sun Microsystems. Podľa údajov PYPL má MySQL záujem 21,15 % z celkového počtu používateľov alebo programátorov.

Na treťom mieste s 16,78 % je SQL Server od spoločnosti Microsoft. Tento DBMS je ideálny na správu databáz rôznych veľkostí, od osobných po podnikové. Na trhu je tiež veľmi dlho, hoci o desaťročie menej ako Oracle: za dátum narodenia sa považuje 24. apríl 1989. Ako prevažná väčšina produktov Microsoftu, aj SQL Server je platený (v prípade Enterprise verzie dokonca veľmi platený), no existujú aj bezplatné možnosti. Najjednoduchším z nich je SQL Server Express, ktorý je vhodný na vzdelávacie účely a môže byť nasadený na malých serveroch alebo bežných počítačoch. Veľkosť databázy je až 10 GB. K dispozícii je aj bezplatná verzia pre programátorov. Je určený na vytváranie, testovanie a predvádzanie aplikácií založených na „skutočnom“ SQL Serveri. Produkt Microsoftu s veľkým náskokom nasleduje PostgreSQL. Tento open-source vývoj z Kalifornskej univerzity v Berkeley bol dlho zatienený konkurenciou, no v posledných rokoch jeho podiel pomaly, ale isto rastie. A to všetko vďaka svojej voľnej povahe, ľahkej rozšíriteľnosti a systému vstavaných programovacích jazykov.

Piate a šieste miesto obsadili nerelačné databázy MongoDB a stále mladý Firebase. Záujem o obe jednoznačne rastie, najmä o Firebase: v porovnaní s októbrom minulého roka sa záujem o ňu zvýšil o 1,4 % a teraz je jej výsledok 2,19 %. Prvú desiatku uzatvárajú SQLite, elasticsearch, Apache Hive a DB2.

PYPL hodnotenie popularity DBMS, október 2017 a rast v porovnaní s októbrom 2016

Poradie Zmeniť Databáza zdieľam 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 %
Pracovali ste už s DBMS? Ak áno, ktoré?

1. Aké trendy vo vývoji serverových DBMS by ste mohli zaznamenať v rokoch 2015–2016?

Vitalij Česnokov, QSOFT
Najdôležitejšie trendy vo vývoji moderných DBMS: využitie virtualizácie a technológie GRID, autodiagnostika a automatická korekcia, využitie NoSQL DBMS v Big Data, využitie NewSQL DBMS, vykonávanie C/C++ kódu v DBMS adresný priestor.

Za posledných niekoľko rokov objem údajov vhodných na spracovanie a uloženie v databáze exponenciálne vzrástol. Bola prijatá novela zákona o osobných údajoch, v ktorej sa uvádza, že osobné údaje ruských občanov sa musia uchovávať na území Ruskej federácie. Podobné zákony majú aj niektoré západné krajiny. To všetko nás vedie k potrebe klastrovania a rozdeľovania údajov na časti.

Percento využívania NoSQL DBMS rastie všade, kde sa dá, vďaka vysokej rýchlosti práce s dátami a možnosti relatívne jednoduchého klastrovania. Rozšírený je nový typ DBMS – NewSQL. Medzi hlavné bezprecedentné vlastnosti NewSQL patrí: možnosť asynchrónnej replikácie master-master, ktorá nahrádza klasickú schému master-slave a poskytuje väčšiu flexibilitu pre projekty s vysokou záťažou; zjednodušenie správy a poskytovanie dynamickej správy databáz; podpora uložených procedúr v C/C++ a schopnosť spúšťať kód C/C++ v adresnom priestore DBMS (poskytujú prakticky neobmedzenú rozšíriteľnosť a neuveriteľné zvýšenie výkonu); vylepšené nástroje na diagnostiku a ladenie.

Okrem toho, použitie virtualizácie v DBMS poskytuje potrebnú odolnosť voči chybám a škálovateľnosť.

Nikolay Fetyukhin,MST
Prechod na NoSQL a databázovú špecializáciu. Môžete napríklad venovať pozornosť Redis a Tarantool. Ten dokonca obsahuje vlastný aplikačný server. Zaujímavým trendom je kombinácia DBMS a backendu, ako Parse od Facebooku. Tiež hladká migrácia databáz do cloudu.

Petra Urvajeva, SimbirSoft
Funkcie, ktoré sa úspešne osvedčili v niektorých DBMS, sú po určitom čase implementované do iných produktov. Napríklad materializované pohľady, ktoré sa prvýkrát objavili v Oracle DBMS, boli neskôr implementované v MS SQL Server a potom sa objavili v PostgreSQL. Výhody, ktoré riešenia NoSQL poskytujú, sa postupne realizujú aj v relačných DBMS. Napríklad najnovšie verzie PostgreSQL implementujú podporu pre prácu s dátami vo formáte JSON.

Jevgenij Gusev ITECH
Zmeny v posledných rokoch v segmente DBMS sú súkromného charakteru – vo vzťahu k jednotlivým popredným produktom a štrukturálneho charakteru, takže trendov je veľa. Po prvé, heterogenita. Prechod na model mikroslužieb umožnil flexibilne vybrať prostriedky riešenia problému ukladania dát bez toho, aby sme sa obmedzovali len na jeden. Po druhé, vývoj NoSQL, in-memory storage. Po tretie, veľké dáta sú revolúciou, ktorá si vyžaduje prehodnotenie metodiky ukladania dát aj samotného konceptu „údajov“. Po štvrté, stĺpcové databázy.

2. Je podľa vás tendencia DBMS presúvať sa do „cloudu“? Aké sú výhody a nevýhody tohto prístupu?

Vitalij Česnokov, QSOFT
Áno, tento trend určite existuje. Najprv musíte oddeliť dva základné prístupy k prevádzke DBMS v cloude.

Prvým je nasadenie virtuálneho stroja s DBMS v cloude. Môžete si doň nahrať vlastný obrázok alebo použiť predpripravený s už optimalizovaným DBMS. V podstate sa takýto virtuálny stroj zásadne nelíši od bežného fyzického servera. Hlavnou výhodou v porovnaní s fyzickým serverom je jednoduchosť škálovania, a to vertikálne (pre daný „virtuálny stroj“ môžete kedykoľvek alokovať viac zdrojov) aj horizontálne (vytvorenie nového „virtuálneho stroja“ trvá len niekoľko minút). Ďalšou významnou výhodou je vysoká dostupnosť cloudových virtuálnych strojov (99,9 % – 99,99 %). Cloud hostitelia tiež poskytujú mnoho doplnkových služieb, ako je monitorovanie, zálohovanie, ovládací panel servera atď.

Zásadne odlišným prístupom je cloudová DBMS. V tomto prípade si klient nekupuje server, ale jednoducho službu používania DBMS. Súčasný trh s verejnými cloudovými DBMS vo výške 400 miliónov USD sa do roku 2017 zvýši na 1,2 miliardy USD. Hlavné výhody tohto prístupu: neplatí sa za poskytnuté zdroje (ktoré môžu byť „nečinné“), ale iba za tie, ktoré skutočne použité: objem uložených údajov, počet spracovaných operácií DBMS; nie je potrebné konfigurovať a spravovať DBMS - tieto úlohy sú plne v zodpovednosti hostiteľa; nie je potrebné myslieť na škálovanie; Hoster poskytuje mnoho pohodlných a intuitívnych nástrojov na správu DBMS; vysoká dostupnosť. Hlavnou nevýhodou je nedostatok schopnosti doladiť DBMS.

Môžete tiež samostatne rozlíšiť taký podtyp cloudového DBMS ako DbaaS (Databáza ako služba). Takmer vždy je špecifický DbaaS jeden konkrétny DBMS poskytovaný v cloude priamymi vývojármi. To samozrejme vedie k rozdielom v obchodných modeloch: cloudové DBMS sú vhodné pre rozsiahle štandardné úlohy, zatiaľ čo DbaaS je vhodné pre špecializované, pre konkrétnu značku databázového stroja, s možnosťou priamej komunikácie s jeho vývojármi. Okrem toho vám DbaaS umožňuje výrazne presnejšie vybrať systém pre požadovanú záťaž, najmä reguláciou počtu klientskych pripojení.

Nikolaj Apurin, Artwell
Existuje trend. Väčšina veľkých (celoruských) systémov už používa cloudové databázy.

Nikolay Fetyukhin,MST
Trend je slabý. Používanie cloudov, hoci znižuje niektoré náklady, vedie k novým výdavkom. Používanie cloudu môže byť prospešné len pre projekty s nízkou návštevnosťou.

Výhody cloudu: ľahká škálovateľnosť, vysoká odolnosť voči chybám, dostupnosť serverov po celom svete, jednoduché klonovanie a nasadenie dát. Nevýhody: zatiaľ čo cloudy ako produkt sú „surové“ - údaje nie je možné fyzicky kontrolovať, pretože sú pod kontrolou poskytovateľa cloudu.

Petra Urvajeva, SimbirSoft
Trend presúvania DBMS do cloudu existuje ako súčasť všeobecného trendu k presunu celej IT infraštruktúry organizácií do cloudu. Hlavnou výhodou tohto prístupu je možnosť prenosu údržby databázy. Medzi nevýhody patrí ukladanie dôležitých údajov na nekontrolovanej stránke. Ak je potrebné zničiť uložené dáta, užívateľ cloudového úložiska si nemôže byť istý, že dáta sú skutočne vymazané.

Jevgenij Gusev ITECH
Existuje a je jedným z primárnych. Hosting databázy v cloude má množstvo výhod: jednoduchosť shardovania a replikácie, možnosť efektívneho oddelenia dát od obchodnej logiky z hľadiska výkonu, jednoduché a zrozumiteľné riadenie výpočtového výkonu a množstvo ďalších. Na základe skúseností nevidíme žiadne kritické nevýhody. Čím väčšie objemy dát musíte prevádzkovať, čím je potrebné horizontálne škálovanie, tým je použitie cloudov opodstatnenejšie.

3. Aké faktory ovplyvňujú výber DBMS? Pre ktoré projekty sú vhodnejšie SQL databázy a pre ktoré - NoSQL?

Vitalij Česnokov, QSOFT
Hlavným faktorom pri výbere medzi SQL a NoSQL DBMS sú potreby aplikácie. Na niektoré úlohy sa lepšie hodí SQL, na iné NoSQL.

Medzi týmito typmi DBMS je niekoľko kľúčových rozdielov. Formát údajov v SQL je veľmi prísny, existujú prehľadné tabuľkové schémy označujúce, kde sa ktorý typ údajov používa. NoSQL nemá žiadne preddefinované schémy dokumentov – do akéhokoľvek dokumentu je možné pridať akékoľvek informácie.
V SQL existujú zložité vzťahy medzi rôznymi tabuľkami. Údaje v jednej tabuľke sú často odkazom na údaje v inej tabuľke (princíp normalizácie údajov). V NoSQL je spravidla každý dokument izolovanou informačnou jednotkou a uchováva všetky dostupné údaje (princíp denormalizácie).
SQL má vstavané mechanizmy na udržanie integrity údajov (napríklad nemôžete odstrániť záznam z tabuľky, ak sa naň odkazuje v iných tabuľkách). V NoSQL takéto mechanizmy neexistujú, preto je dôležitá denormalizácia údajov (v ideálnom prípade každý dokument uchováva úplne všetky informácie o objekte).
SQL má transakčný mechanizmus, ktorý vám umožňuje vykonávať viacero SQL dotazov na princípe všetko alebo nič. V NoSQL existuje podobný mechanizmus iba v rámci jedného dokumentu.
V ideálnom prípade je NoSQL rýchlejší ako SQL vďaka jednoduchšej metóde ukladania údajov, ktorá vám umožňuje získať všetky informácie o objekte jednoduchým dotazom na jeden dokument. Je tu však problém súvisiaci s tým, že najpopulárnejšie NoSQL DBMS sa objavili pomerne nedávno. Dôsledkom toho je menšie množstvo informácií o týchto DBMS a väčší počet doteraz nevyriešených problémov.
NoSQL je oveľa jednoduchšie škálovateľné vďaka absencii zložitých logických spojení medzi dokumentmi. Navyše väčšina NoSQL DBMS bola pôvodne vytvorená s dôrazom na škálovacie mechanizmy.

Vďaka tomu je NoSQL vhodnejší pre projekty s veľkým množstvom dát, ktoré možno jednoducho rozdeliť do samostatných nezávislých objektov. Poskytuje vysokú rýchlosť a škálovateľnosť. SQL je vhodný pre projekty, kde rôzne dáta majú medzi sebou zložité logické vzťahy a ich integrita je mimoriadne dôležitá.

Nikolaj Apurin, Artwell
NoSQL - pre neštandardné výpočty s obrovským množstvom dát. Ale ako prax ukázala, objemy až 20 miliónov záznamov sú dokonale spracované SQL databázami.

Nikolay Fetyukhin,MST
Technológie NoSQL aktívne využívajú známe spoločnosti, a to aj v projektoch s vysokým zaťažením. Ukladanie dát a jednoduché vyhľadávanie pomocou NoSQL bude naozaj rýchle. V prípade zložitejších dopytov bude potrebné problém riešiť na strane produktu, čo zvyšuje zložitosť samotného produktu. V čistej forme si NoSQL nevyberáme. Zvyšujúca sa zložitosť logiky produktu a emulácia základných vecí SQL vedie k zvýšeniu nákladov na projekt. A nie každé riešenie NoSQL poskytuje bezpečnosť údajov v kritických situáciách.

Petra Urvajeva, SimbirSoft
Výber databázy často závisí od preferencií architekta, možného zaťaženia a požadovanej funkcionality. SQL databázy umožňujú jasne definovať schémy ukladania údajov a získavať údaje pomocou zložitých dotazov, databázy NoSQL umožňujú ukladať údaje v menej usporiadanom formáte a podporujú horizontálne škálovanie. Distribuované systémy často používajú súčasne databázy SQL a NoSQL, z ktorých každá rieši svoje vlastné problémy.

Jevgenij Gusev ITECH
V súčasnom stave nie sú SQL / NoSQL skôr konkurenčné, ale doplnkové entity. Používanie SQL riešení v jednej aplikácii, keď potrebujete pracovať s komplexnými dátami v ich vzájomných vzťahoch, a NoSQL, keď sa do popredia dostáva rýchlosť práce s neštruktúrovanými informáciami, je úplne prirodzená prax.

4. Ako hodnotíte rozsah, v akom sú platené licencie DBMS distribuované medzi používateľov? V akých prípadoch má zmysel kupovať licenciu?

Vitalij Česnokov, QSOFT
Existujú dve rôzne možnosti rozdelenia DBMS na platené a bezplatné.

Prvou sú bezplatné verzie komerčných DBMS (dostupné sú MS SQL, Oracle atď. V podstate ide o skrátenú verziu DBMS, ktorej chýbajú niektoré funkcie). Tu je hlavný faktor výberu veľmi jednoduchý – potrebuje tento projekt túto funkciu? Menej často existuje bezplatná verzia, ktorá sa funkčnosťou nelíši od komerčnej verzie, ale je menej často aktualizovaná (Couchbase Server).

Druhým je bezplatný DBMS, pre ktorý existujú podobné komerčné produkty (MySQL od Oracle, Percona Server alebo MariaDB). V tomto prípade je výhodou komerčného produktu zvyčajne dostupnosť serióznejšej technickej podpory. Pokiaľ ide o funkčnosť, platené a bezplatné DBMS sa od seba líšia len málo, hoci obe môžu mať svoje vlastné nástroje, ktoré nie sú dostupné v iných verziách.

V dôsledku toho existujú dva hlavné dôvody, prečo si vybrať platenú DBMS: dostupnosť funkcií, ktoré nie sú dostupné v bezplatných analógoch, a možnosť požiadať o pomoc technickú podporu výrobcu.

Nikolaj Apurin, Artwell
Prečo platiť, keď sú zadarmo? Existuje však veľa riešení, ktoré dokážu fungovať len s platenými databázami. V podstate ide o zahraničné praktiky.

Nikolay Fetyukhin,MST
Otázka je nejednoznačná. Platené DBMS majú často bezplatné verzie a tie bezplatné majú komponenty, ktoré je možné zakúpiť za peniaze. Rozdiel najčastejšie spočíva vo vstavaných nástrojoch na analýzu a monitorovanie databáz. Preto sú platené DBMS vhodnejšie pre veľké projekty s veľkými distribuovanými systémami.

Petra Urvajeva, SimbirSoft
Platené licencie DBMS sú vhodnejšie ako bezplatné, keď sa projekt spolieha na možnosti konkrétnej databázy a je preň dôležité, aby použité funkcie fungovali tak, ako je uvedené, a problémy s ich prevádzkou boli promptne odstránené. V súčasnosti sa komerčné a bezplatné databázy používajú rovnako často a väčšina nových projektov si vyberá bezplatné databázy, pretože možnosti práce s údajmi a stabilita sú približne na rovnakej úrovni ako platené a bezplatné DBMS.

Pojem databázy sa v našich životoch udomácnil natoľko, že sa stal samozrejmosťou a nezaslúži si osobitnú pozornosť. O IT startupoch, algoritmoch , hackerské útoky, kryptomena, (čo si povieme, aj o cloudoch) v špecializovaných médiách bolo napísaných oveľa viac článkov ako o „obyčajných“, ale tak dôležitých a potrebných databázach a ich riadiacich systémoch. Takže my, opakovane vykonávané naše miništúdie v rôznych oblastiach sveta IT, sme sa tejto téme nikdy nezaoberali. No hneď sa opravíme a podelíme sa s vami o zaujímavé novinky a najnovšie štatistiky.

A medzi DBMS sú obľúbené

Systém správy databáz (DBMS) je softvérový nástroj (typicky rozhranie medzi koncovým používateľom/aplikáciou a samotnou databázou), ktorý uľahčuje a spríjemňuje prácu s informáciami. Napríklad vytvárať, aktualizovať, vyhľadávať, mazať a obnovovať údaje v databáze, ako aj určovať vzťahy medzi jej komponentmi (tabuľkami).

DBMS zvyčajne obsahuje tri hlavné komponenty: samotné údaje, databázový stroj a schému, ktorá definuje logickú štruktúru údajov. Práve tieto tri komponenty pomáhajú zabezpečiť bezpečnú správu aochrana databáz,integrita v ňom uložených informácií a jednotné postupy administrácie – riadenie zmien, konfigurácia a kontrola výkonu, zálohovanie, obnova po havárii atď.

Samozrejme, existuje neuveriteľné množstvo samotných systémov na správu databáz, ale tých, o ktorých každý vie, je sotva tucet. Aby sa zistilo, ktorý z existujúcich DBMS je právom zaradený do zoznamu najpopulárnejších, DB-Engines zostavil druh hodnotenia obľúbených. Na tento účel odborníci analyzovali množstvo faktorov: počet zmienok o systémoch na webových stránkach (používali sa vyhľadávače Google, Yandex a Bing), všeobecný záujem používateľov o Google Trends, zmienky v diskusiách na špecializovaných stránkach Stack Overflow a DBA Stack Exchange, na stránkach s agregátormi pracovných miest Indeed a Simply Hired, v profesionálnych profiloch špecialistov na Linkedin a Upwork a napokon aj počet relevantných tweetov. Upozorňujeme však, že celkový počet inštalácií DBMS nebol započítaný, takže tento vrchol, aj keď je zaujímavý, je stále relatívny. Podľa DB-Engines sú tri najpopulárnejšie systémy správy: Oracle, MySQL, Microsoft SQL Server.

Je zaujímavé, že medzi programátormi boli najžiadanejšie zručnosti práca s DBMS ako MySQL, MongoDB a PostgreSQL a vývojári vo všeobecnosti zaradili Oracle na posledné miesto, keďže tento systém zaznamenalo len 12 % respondentov (zdroj: Stack Exchange ( Stack Overflow Talent)) .

Na základe výsledkov dvoch štúdií teda vidíme, že zatiaľ majú používatelia najväčší záujem o systém MySQL. Možno tu zohráva dôležitú úlohu skutočnosť, že ide o open source produkt. Mimochodom, práve z tohto dôvodu bolo v roku 2016 MySQL odstránených najväčší počet zraniteľností - 133. A táto skutočnosť neznamená, že samotný systém je zle chránený, ale naopak naznačuje, že jeho výkon bol kontrolovaný väčším počet špecialistov, čo zvýšilo šance na identifikáciu jeho „slabých miest“ v informačnej bezpečnosti.

Bežné bezpečnostné hrozby

Je pozoruhodné, že je to počet záplat, ktorý nám umožňuje nepriamo určiť stupeňochrana informácií v systémoch správy databáza identifikovať najčastejšie zraniteľné miesta. Štúdia Trustwave teda ukázala, že v roku 2016 sa používatelia DBMS najčastejšie stretávali s týmito kategóriami kybernetických hrozieb:

  • Neoprávnené rozšírenie privilégií.Tieto zraniteľnosti umožnili neoprávneným osobám využívať administrátorské práva na získanie prístupu k databázovým tabuľkám a konfiguráciám.
  • Pretečenie vyrovnávacej pamäte.To spôsobilo zlyhanie servera, čo podkopalohardvérová ochrana databázy,a tiež spôsobila odmietnutie služby a mohla viesť k spusteniu cudzieho škodlivého kódu.
  • Predvolené povolenia.Správcovské účty, ponechané s predvoleným heslom by mohli poskytnúť dodatočný priestor pre podvodné aktivity kyberzločincov.

Toto boli výsledky nedávnych štúdií. Naozaj dúfame, že v budúcnosti sa systémy správy databáz stanú bezpečnejšími a nové mená sa objavia v top rebríčkoch popularity DBMS. Sľubujeme, že budeme sledovať novinky a budeme vás informovať o najnovších trendoch.

 

Môže byť užitočné prečítať si: