Kodulehed
[387] - Andmebaasid II (ITI0207) (sügis 2024)
Esiletöstetud Kiirvalik
Lisainfo Kõige olulisemate tegevuste kiirvalik. Failide saatmiseks valige Vastamine alt sobiv ülesanne.
Üldist
Materjalid
LisainfoMaterjalide kataloogid.
Värvilised mummud tähistavad hinnangulist kataloogide lugemise vajadust. Roheline - suurim, kollane - keskmine, punane või mummuta - väikseim
Isiklik
Lisainfo Info ainult Sulle - teised kasutajad seda ei näe
Abi
Lisainfo 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:

Küsimuste teemade nimekiri

Anonüümne:
Millised on PostgreSQLi ja Oracle eelised võrreldes üksteisega?
Vastus (18.10.2024 10:04): Vastus peegeldab õppejõu isiklikku seisukohta, puudutab eeskätt andmebaaside programmeerimist ning välja toodud nimekirjad pole kaugeltki mitte ammendavad. Punktid ei ole tähtsuse 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.
    • NB! domeenide ja BOOLEAN tüübi veeru tüübina kasutamise võimalus lisandus Oracle 23ai.
  • 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.
Siin on 2023. aasta küsitluse tulemused PostgreSQL kasutamise kohta (State of PostgreSQL). Muutke URLis aastaarvu, et näha teiste aastate küsitluste tulemusi. PostgreSQLi kasutamise põhiliste põhjustena tuuakse seal välja avatud lähtekoodi ning suurt võimaluste hulka. Rohkelt mainitavate omaduste seas on ka usaldusväärsus ning transaktsioonide tugi.

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). PostgreSQL puhul saab kasutada operatsioonisüsteemi utiliiti - Cron plaanurit või tuleb eraldi installeerida mõni andmebaasisüsteemi laiendus nagu näiteks pg_timetable, pg_cron, pgAgent, jpgAgent või pgbucket. Teiste sõnadega, PostgreSQLis tuleb võimaluse kasutusele võtuks teha lisatööd - see ei ole valmiksujul süsteemis olemas.
  • 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.

Hinda vastust:

Keskmine hinne : Pole veel hinnanguid!