PostgreSQL on objekt-relatsiooniline andmebaasisüsteem. Kirjutan objekt-relatsioonilisusest SIIN. Muuhulgas on seal ka pikemalt koos koodinäidetega juttu PostgreSQLi objekt-relatsioonilisuse võimalustest.
Objekt-relatsioonilisusest (OR) tulenevate võimaluste kasutamist ei ole ma päriselu andmebaasides väga palju kohanud. Mulle endale tundub pakutavatest võimalustest kõige kasulikum massiivitüüpide kasutamine veergude ja parameetrite tüüpidena, uute vahemiku tüüpide loomine ning kasutamine ja operaatorite loomine. Kui lugeda OR võimaluste hulka ka andmebaasis suurte objektide (nt failide) salvestamine, siis on ka see kasulik.
Uute baastüüpide loomine - võimalik, kuid PostgreSQLi juba olemasolevate andmetüüpide suur hulk tähendab, et see on vajalik pigem erandjuhtudel.
Loendustüüpide kasutamine veeru tüüpidena - selle asemel oleks parem luua klassifikaatorite tabelid, millele välisvõtmete kaudu viidatakse. Loendustüüpide veeru tüübina kasutamise probleemide kohta on kirja pandud SQL disaini antimuster (Kirjelda veeru võimalikud väärtused osana veeru definitsioonist), mida kirjeldatakse SQL-andmebaaside disaini antimustrite raamatu 11. peatükis:
https://learning.oreilly.com/library/view/sql-antipatterns/9781680500073/f_0068.html
Tabelite loomine pärimise kaudu - tõsiseks piiranguks on, et alamtüüpi olem ei kuulu välisvõtme kitsenduse kontrolli mõttes ülatüüpi. Lisaks eelviidatud dokumendile kirjutatakse pärimise kaudu tabelite loomise võimalustest ja probleemidest SIIN alates slaidist "Baastabelite loomine pärimist kasutades" (slaidid 16-22).
Mõned lõputööd, kus neid teemasid on käsitletud:
Objekt-relatsioonilisusest (OR) tulenevate võimaluste kasutamist ei ole ma päriselu andmebaasides väga palju kohanud. Mulle endale tundub pakutavatest võimalustest kõige kasulikum massiivitüüpide kasutamine veergude ja parameetrite tüüpidena, uute vahemiku tüüpide loomine ning kasutamine ja operaatorite loomine. Kui lugeda OR võimaluste hulka ka andmebaasis suurte objektide (nt failide) salvestamine, siis on ka see kasulik.
Uute baastüüpide loomine - võimalik, kuid PostgreSQLi juba olemasolevate andmetüüpide suur hulk tähendab, et see on vajalik pigem erandjuhtudel.
Loendustüüpide kasutamine veeru tüüpidena - selle asemel oleks parem luua klassifikaatorite tabelid, millele välisvõtmete kaudu viidatakse. Loendustüüpide veeru tüübina kasutamise probleemide kohta on kirja pandud SQL disaini antimuster (Kirjelda veeru võimalikud väärtused osana veeru definitsioonist), mida kirjeldatakse SQL-andmebaaside disaini antimustrite raamatu 11. peatükis:
https://learning.oreilly.com/library/view/sql-antipatterns/9781680500073/f_0068.html
Tabelite loomine pärimise kaudu - tõsiseks piiranguks on, et alamtüüpi olem ei kuulu välisvõtme kitsenduse kontrolli mõttes ülatüüpi. Lisaks eelviidatud dokumendile kirjutatakse pärimise kaudu tabelite loomise võimalustest ja probleemidest SIIN alates slaidist "Baastabelite loomine pärimist kasutades" (slaidid 16-22).
Mõned lõputööd, kus neid teemasid on käsitletud:
- Mitme väite ühe andmeväärtusena esitamise eelised ja puudused SQL-andmebaasides
- Oracle ja PostgreSQL andmebaasisüsteemide objekt-relatsiooniliste võimaluste võrdlus panga infosüsteemi andmebaasi alamosa näitel
- Juba vana ja mitte nii põhjalik kui soovinuks
- Mõned failide salvestamise disainimustrid SQL-andmebaasi kasutavate andmebaasirakenduste jaoks
Hinda postitust:
Keskmine hinne : Pole veel hinnanguid!