Andmebaaside ajaveeb

Mõtteid andmebaasidest, andmebaasisüsteemidest ja nende kavandamisest

Millised on PostgreSQLi ja Oracle eelised võrreldes üksteisega?

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äht...


Milliseid raamatuid soovitate erinevate andmemudelite kohta (andmemudel kui andmebaasikeele aluseks olev üldiste andmebaasi ehitusplokkide, kitsenduse tüüpide, andmetüüpide ja operatsioonide kirjeldus)?

Relatsiooniline andmemudel (mitte ajada segi SQLiga)Date, C.J., 2015. SQL and Relational Theo...


Kuidas saaks vaadata olemasoleva PostgreSQL andmebaasi tabelite kirjeldust diagrammina?

1. Leidub eraldi andmebaaside haldusvahendeid, mis sellist funktsionaalsust pakuvad. Tõstan esile: D...


Kas oleks otstarbekas siduda domeeniga mingi veeru omadus ja lisada sellele täiendav tabelipõhine piirang? Näiteks andmetüüp, NOT NULL ja tühikutest koosnemise piirang tulev domeeni poolt ja tabelis lisan täiendava piirangu pikkusele.

Tehniliselt oleks see võimalik. Ma mõtlen, et hallatavuse mõttes pole see kõige parem, sest pakutud juhul tuleb veerule rakenduvaid CHECK kitsendusi otsida (ja vajadusel muuta kahes kohas) - domeenis ja otse tabeli veeru küljes.


Teatavasti saavad Oracles (12c Release 1.0.1) enamik identifikaatoreid (nt tabelite ja kitsenduste nimed) olla maksimaalselt 30 baidi suurused. Kas on mõni abivahend, mis lihtsustakse andmebaasikeele lausete kirjutamisel selle pikkuse kontrollimist?

See veebipõhine vahend pakub võimaluse pikkust kontrollida. Meie kasutatavates CASE vahendites (Enterprise Architect, Rational Rose) pole paraku sellist kontrolli sisse ehitatud. Soovijad sa...


Millist regulaaravaldist tuleks kasutada Oracles, et kontrollida andmebaasi tasemel kolmetähelisi riigi koode?

Märkus: Paraku ei toeta Oracle andmebaasimootor BOOLEAN tüüpi ja seetõttu tuleb järgnevas PL/SQL anonüümses plokis tulemuse väljastamiseks asendada tõeväärtus tekstilise väärtusega. DECLARE resu...


Milleks on hea Oracle kitsenduse seisund DISABLE VALIDATE?

Kui kitsendus luuakse sellises seisundis, siis andmemuudatuste korral kitsenduse kontrolli ei toimu, kuid tabelis olemasolevad andmed peavad olema kitsendusega kooskõlas - vastasel juhul kitsendust ei looda. Tsitaat Oracle dokumentatsioonist:


Ühes õppematerjalis on öeldud "Objekt-relatsiooniliste andmebaasisüsteemide loomine tuleneb lõppkokkuvõttes sellest, et tänapäeva SQL-andmebaasisüsteemid ei realiseeri täies ulatuses relatsioonilist mudelit ja see tekitab probleeme." Millist osa relatsioonilisest mudelist SQL andmebaasisüsteemid ei realiseeri? Miks nõnda?

Põhinemine hulkade asemel multihulkadel (korduvad read ja veerud on lubatud),tühjade võtmete ja ilma veergudeta tabelite mitte lubamine (kuigi ka tühi hulk on hulk),NULLide kasutamine puuduvate andmete esitamiseks, liigsete piirangu...


Kas olemasse tabelisse T ridade lisamiseks võib MS Accessis kasutada SELECT ... INTO T FROM ... lauset?

Ei! See oleks ränk viga. SELECT ... INTO T … põhjustab MS Accessis tabeli T kustutamise...


Kui tekstilist väärtust hoidev väli või olla ka tühi, kas parem on lubada NULL väärtust või tühja stringi? Kas võib olla põhjust lubada ka mõlemat?

Tabeli väljast võivad väärtused puududa erinevatel põhjustel. Näiteks väärtus ei ole veel andmete sisestajateni jõudnud või sellist väärtust kunagi ei tekigi.  Üheks põhjenduseks, miks lubada tekstilises veerus NULLi ja tühja stringi oleks see, et ne...