Kodulehed
[381] - Andmebaasid II (ITI0207) (sügis 2021)
pinned Kiirvalik Kõige olulisemate tegevuste kiirvalik
Üldist
Materjalid Materjalide kataloogid
Vaated Erinevad väljavõtted kataloogides olevatest materjalidest. Alternatiivsed juurdepääsuteed materjalidele.
Isiklik Info ainult Sulle - teised kasutajad seda ei näe
Abi Võimalus küsida õppejõult abi (nagu foorum, kus saab küsida küsimusi ja kommenteerida vastuseid)
Mitmesugust
Abi / Kasutajatugi / Andmebaasisüsteemid (Üldine)

Avalikud küsimused ja vastused:
Teemad:

                         
Anonüümne:
Millised on PostgreSQLi ja Oracle eelised võrreldes üksteisega?
Vastus: Vastus peegeldab õppejõu isiklikku seisukohta, puudutab eeskätt andmebaaside programmeerimist ning välja toodud nimekirjad pole kaugeltki mitte ammendavad. Punktid ei ole tähtuse järjekorras - erinevatele inimestele ja erinevates olukordades on tähtsad erinevad asjad.

PostgreSQL eeliseid võrreldes Oraclega.

  • Avatud lähtekood, kusjuures litsents on väga liberaalne, st ei sea märkimisväärseid piiranguid.
  • Litsentsitasuta.
  • Lisaks lähtekoodi avalikkusele on ka andmebaasisüsteemi endasse sisse ehitatud mitmed vahendid süsteemi funktsionaalsuse suurendamiseks - näiteks võimaldab PostgreSQL võtta kasutusele uusi protseduurseid keeli (PL) Näide: Skype – PL/Proxy, Slaidid 6, 11–29 ja arendada laiendusi.
  • Tõeliselt serialiseeritavad transaktsioonid, mis muudab oluliselt lihtsamaks andmete reeglitele vastavuse kontrollimise.
  • Minu arvates parem vastavus SQL standardile. Näiteks Oracles ei saa kasutada nt INFORMATION_SCHEMA skeemi; domeene; BOOLEAN, BIGINT, INTEGER, SMALLINT, DECIMAL andmetüüpe tabelite veergude tüübina; ON UPDATE CASCADE välisvõtme kompenseerivat tegevust. Slaidiettekanne sellest, kuidas PostgreSQLis on konkurentidest parem tugi SQL standardile.
  • EXCLUSION kitsendused koos vahemiku tüüpidega (mida saab ise juurde defineerida) võimaldavad väga lihtsalt jõustada reegleid, et vahemiku tüüpi väärtused ei tohi kattuda (nt kaks broneeringut samasse tuppa ei tohi ajaliselt ei osaliselt ega täielikult kattuda).
  • Serveris saab olla andmebaaside klaster väga suure hulga andmebaasidega, selle asemel, et nagu Oracles jännata alates Oracle versioonist 12.1 allüürnike arhitektuuri toel võimaliku andmebaasile alamandmebaaside defineerimisega.
    • Allüürnike arhitektuuri toe eest tuleb Oracles eraldi litsentsitasu maksta. Enne Oracle 19c ei olnud seda vaja teha kui kasutati eksemplari + konteinerandmebaasi + ühte alamandmebaasi (single-tenant architecture; lone‑PDB architecture).
    • Alates Oracle 19c ei ole seda vaja teha kui kasutusel on kuni kolm alamandmebaasi.
    • Alates Oracle 20c ei ole allüürnike arhitektuuri mittekasutamine enam toetatud (kui just ei olda nõus andmebaasisüsteemi käitama ilma kasutajatoeta).
    • Oracle 21c võib alamandmebaase olla kuni 4098, samas kui PostgreSQLi andmebaaside klastris saab andmebaase olla üle nelja miljardi, kusjuures katsetused näitavad, et suur andmebaaside hulk ei mõjuta PostgreSQLis halvasti operatsioone jõudlust.
  • Väliste andmete pakendajate, väliste serverite ja väliste tabelite funktsionaalsus võimaldab PostgreSQLi andmebaasi abil üles ehitada andmete integreerimise keskkonna. Saan teha nii, et PostgreSQL andmebaasis on tabelid, mille kaudu näen andmeid teistest andmebaasidest ja mille kaudu saan nendes nii andmeid lugeda kui ka muuta.
  • Võimalus koondada andmekirjelduskeele lauseid ühte transaktsiooni, mis lubab teha andmebaasi skeemimuudatusi ühe loogilise tervikuna (kõik laused kas täidetakse, või jäetakse kõik täitmata). Oracles on selleks suurte piirangutega CREATE SCHEMA lause.
  • Plokkide vahemiku indeks - BRIN indeks. Annab B-puu indeksiga võrreldes väiksema võidu töökiiruses, kuid samas mahult väiksem, kiirem luua ja kiirem uuendada. Oracle analoog - tsoonikaardid (zone maps) - on kasutatavad ainult spetsiaalse riist- ja tarkvara kombinatsiooni korral.
  • Kitsenduste trigerid (constraint triggers), mille protseduuri käivitamise saab lükata transaktsiooni lõppu. Võimaldavad jõustada keerukamaid kitsendusi. Kitsenduste trigerite kasutamine vähendab vajadust lukustada trigeri protseduuris LOCK või SELECT ... FOR UPDATE lausete abil terveid tabeleid või nende üksikuid ridu.

Oracle eeliseid võrreldes PostgreSQLiga.

  • Application Express andmetega juhitav veebirakenduste kiirprogrammeerimise vahend. AGA, sellist süsteemi on võimalik realiseerida ka PostgreSQLi põhjal ning seda tõestab selle magistritöö ning selle bakalaureusetöö ja selle bakalaureusetöö tulemus.
  • Rohkem sisseehitatud andmete turvalisuse tagamise vahendeid. AGA, PostgreSQL 9.5 lisandus reapõhiste juurdepääsupiirangute võimalus, st PostgreSQL tõmbab Oraclele selles küsimuses järgi.
  • Hetktõmmiste puhul on võimalik nende osaline värskendamine ning võimalik kohe andmebaasisüsteemis ära kirjeldada nende värskendamise sagedus (ei pea hakkama Cron plaanurit kasutama).
  • Andmebaasisüsteemi sisseehitatud võimalus tööde defineerimiseks ja automaatseks käivitamiseks (töö sisuks võib olla tegevus andmebaasis sh andmebaasiserveris talletatud rutiini käivitamine) (ei pea hakkama Cron plaanurit kasutama).
  • Väiksemad piirangud vaadetele, mille kaudu saab vaikimisi andmeid muuta.
  • Suuremad võimalused mõjutada tabelis olevate andmete salvestamist andmebaasi sisemisel tasemel (sh võimalus koondada tabeleid klastrisse) ja andmete muutmällu lugemist. Selles bakalaureusetöös on mitmete nende Oracle võimaluste kasutamise mõju katsetatud. AGA, PostgreSQL viimastes versioonides pööratakse suurt tähelepanu tabelite sektsioonideks jagamisele (st suure tabeli väiksemateks osadeks jagamisele andmebaasi sisemisel tasemel). Samas on Oracles sektsioonideks jagamine endiselt lihtsam, suuremate võimalustega ja väiksemate piirangutega.
  • Võimalus tabelite denormaliseerimise asemel neid andmebaasi sisemisel tasemel klastrisse koondada (st kasutaja jaoks andmebaasi struktuur ei muutu).
  • Baastabeli veeru tüüpi saab muuta ka siis, kui andmebaasis on loodud vaade, mis viitab sellele veerule. See omakorda lihtsustab andmebaasi evolutsiooni. PostgreSQLis sellisel juhul baastabeli veeru tüüpi muuta ei saa - eelnevalt tuleb vaated kustutada, siis muuta tüüpi ja siis luua vaated uuesti.
  • Võimalus luua (SQL standardis mitte ette nähtud) sünonüüme, mis lihtsustab andmebaasiobjektide ümbernimetamist ja lihtsustab seega andmebaasi evolutsiooni.
  • Bitmap indeks, et kiirendada koondandmete päringuid andmeaitades ja andmevakkades.
  • Suurem hulk sündmuseid (sh näiteks andmebaasi käivitamine, töö lõpetamine, kasutaja sisse- ja väljalogimine), millele reageerimiseks saab luua trigereid.
  • Suund isejuhtivale andmebaasisüsteemile (võimalikult palju administreerimise/disaini oludele vastavalt häälestamise tegevusi automaatselt ning ilma inimkasutaja vahelesegamiseta e autonoomselt)

Veel üks võrdlus.

Ja veel üks.

Konkreetne näide, kuidas suur infosüsteem vahetas Oracle PostgreSQLi vastu. Siin on lühike tekstiline ülevaade.

2019. aasta sügisel teatas Amazon, et lõpetas suuremas osas Oracle andmebaasisüsteemi kasutamise. Läbiviidud andmebaaside migreerimise tulemusena kanti ligi 7500-st Oracle andmebaasist kokku 75 petabaiti andmeid erinevatesse Amazoni enda pilvepõhiste andmebaasisüsteemide abil loodud andmebaasidesse. Mõned kolmandate osapoolte rakendused vajavad tööks ilmtingimata Oracle andmebaase ja need jäid ülekandmata. Sellest migreerimisest kirjutatakse pikemalt siin.

Seda, et PostgreSQL on hästi kasutatav suurtes ja kriitilise tähtsusega süsteemides (st ei saa öelda, et Oracle sobib sellistesse süsteemidesse, kuid PostgreSQL ei sobi), näitab näiteks selle andmebaasisüsteemi laialdane kasutamine riigi infosüsteemides. 2018. aastal avaldatud siseministeeriumi haldusala IKT teenuste finantseerimise uuring toob välja, et enamasti on andmebaasisüsteemiks PostgreSQL ja rakendusserveriks Tomcat. Samuti nähti 2019. aasta jaanuari keskel välja kuulutatud sotsiaalkaitse infosüsteemi hanke avalikes dokumentides ette, et uues süsteemis tuleb eelistatult kasutada PostgreSQL andmebaasisüsteemi.

Näiteid huvitavatest võimalustest, mida PostgreSQL pakub päringute kirjutajatele on SIIN.

Lõpetuseks tõstaksin esile Markus Winandi (mees veebilehe taga modern-SQL, mis tutvustab kaasaegset SQLi kogu oma vägevuses) kiidusõnu PostgreSQLi aadressil: Küsimusele kuidas Teile meeldib PostgreSQL vastas ta nii: "PostgreSQL on väga tugevas positsioonis. Arendajate vaatepunktist on selle pakutavad võimalused lähemal kommertssüsteemidele kui avatud lähtekoodiga võistlejatele nagu MySQL/MariaDB. Mulle meeldib eriti PostgreSQLi pakutav rikkalik SQL standardi toetus, mis tähendab selliseid asju nagu täielik VALUES klausli toetus, rekursiivsed päringud, over, lateral ja massiivide kasutamise võimalus."

Ühes teises kohas vastas ta küsimusele, millist andmebaasisüsteemi ta eelistab, et kõik sõltub nõuetest, arendusmeeskonnast ja eelarvest, kuid kui need pole veel selged, siis on PostgreSQL parim vaikimisi valik.




1.
Erki Eessaar:
2.
Anonüümne:
3.
Anonüümne:
4.
Erki Eessaar:
5.
Anonüümne:
6.
Anonüümne:
7.
Anonüümne:
8.
Anonüümne:
9.
Anonüümne: