Andmebaaside ajaveeb

Mõtteid andmebaasidest, andmebaasisüsteemidest ja nende kavandamisest

Kas PostgreSQLis ON DELETE CASCADE kasutamine välisvõtme deklaratsioonis põhjustab halba kustutamise töökiirust e jõudlust?

Ei tekita.Põhjendan vastust. Tegin katsetusi PostgreSQL 15 andmebaasis, millel on järgmine kontseptuaalne struktuur:[Facility]-0..1-----------------0..*-[Health_care_visit]Tabel Facility: 50 000 rida...


Mis võib mõjutada andmebaasis toimuvate lugemis ja muutmisoperatsioonide töökiirust? Millele võiks töökiiruse parandamisel tähelepanu pöörata?

Nimetan järgnevalt mõningaid aspekte koos viidetega lõputöödele, mis seda aspekti käsitlevad. Indekseid ei ole piisavalt, indekseid on liiga palju, indeksid on üleliigsed.


Juhul kui välisühendamist ei ole lause õige tulemuse saavutamiseks vaja, siis kas OUTER JOIN operatsiooni kasutamine INNER JOIN asemel mõjutab lause täitmisplaani valikut ja seega ka lause täitmise kiirust? (2)

Sõltub päringust ja andmebaasisüsteemist.Katsetasin Oracles (12.1) ja PostgreSQL (14) põhjal, mis olid samas serverarvutis. Katsetamisel kasutatud andmebaas ja andmed olid ühesugused.Vähemalt konkreetsete süsteemide ja katseta...


Kas NoSQL andmebaasisüsteemides ja uue põlvkonna SQL-andmebaasisüsteemides (NewSQL süsteemid) saab luua vaateid, hetktõmmiseid ja rutiine?

Vaadetest, hetktõmmistest ja rutiinidest saab moodustada andmebaasi avaliku liidese (virtuaalse andmete kihi), läbi mille kasutada andmebaasi. Andmebaasiserveris talletatud rutiinide kasutamisele tuuakse nii


Kas olemasolevates "päriselu" SQL-andmebaasides jõustatakse välisvõtme kitsendusi?

Mitte nii palju kui peaks.B. Karwini SQL-andmebaasi disaini antimustrite raamatu peatükis 5 (Keyle...


Töökiiruse tõstmiseks ei kirjuta andmebaasisüsteemid andmemuudatusi kohe kettale, küll aga kirjutavad kohe kettale andmemuudatuse kohta käiva logi. Kuidas see töökiirust tõstab? Logi kirjutamine on ju samuti kõvaketta poole pöördumine. Kirjeldasite, et bloki kettale salvestamisel kustutatakse see muutmälust ära. Seega proovid süsteem salvestamist edasi lükata, kuna blokki võib kohe järgmistes päringutes jälle vaja olla ning oleks hea, kui see oleks muutmälus olemas. Miks mitte blokki kettale kirjutada, kuid jätta see ka muutmällu alles?

Logi kirjutamine enne muudatusi sisalduvate plokkide (räpaste plokkide) kettale kirjutamist pakub paindlikust, sest andmebaasisüsteem saab nende plokkide kettale kirjutamist edasi lükata ja valida selleks selleks endale sobivaima aja. Meetodit, kus e...


Juhul kui välisühendamist ei ole lause õige tulemuse saavutamiseks vaja, siis kas OUTER JOIN operatsiooni kasutamine INNER JOIN asemel mõjutab lause täitmisplaani valikut ja seega ka lause täitmise kiirust?

Sõltub päringust ja andmebaasisüsteemist.Katsetasin Oracles (12.1) ja PostgreSQL (14) põhjal, mis olid samas serverarvutis. Katsetamisel kasutatud andmebaas ja andmed olid ühesugused.Oletame, et andmebaasis on järgnevale konts...


Miks õppida SQLi?

SQLis kui keeles võiks kahtlemata olla palju asju teistmoodi ja paremini (vt "Andmebaasid I" teema 6 materjale). Arendajad kiristavad mõnikord SQLi peale hambaid ja kiruvad, kuid ikkagi kasutavad seda. Miks nad seda teevad? 2024. aasta märtsi sei...


PostgreSQL EXCLUDE kitsendus: millal seda kasutada ning miks ilmub see kõikides näidetes fraasi "EXCLUDE USING gist" kujul?

EXCLUDE on PostgreSQLi laiendus - SQL standard seda ette ei näe ja teised andmebaasisüsteemid seda ei paku. Kuid see on väga kasulik laiendus. See on UNIQUE kitsenduse üldistus selles mõttes, et unikaalsuse kontrollimisele saab kasutada väärtuste võr...


Kas andmete andmebaasi tasemel valideerimine (eelnevalt defineeritud reeglitele vastavuse kontrollimine) on hea mõte või mitte?

Minu arvates on hea mõte. Järgnev tekst üritab seda põhjendada.Väide: Kui rakenduse tasemel andmeid valideeritakse, siis andmebaasi tasemel pole seda enam vaja teha, sest see on liiga keeruline. Vastus: Kõik sõltub selle...