Mine sisu juurde

Andmebaasi disain: erinevus redaktsioonide vahel

Allikas: Vikipeedia
Eemaldatud sisu Lisatud sisu
Suwa (arutelu | kaastöö)
PResümee puudub
PResümee puudub
 
(ei näidata 3 kasutaja 5 vahepealset redaktsiooni)
1. rida: 1. rida:
'''Andmebaasi disain''' on [[andmed|andmete]] korraldamine [[andmebaasi mudel]]i kohaselt. 
'''Andmebaasi disain''' on [[andmed|andmete]] korraldamine [[andmebaasi mudel]]i kohaselt. 


[[Andmebaas|Andmebaasi]] disainer määrab, milliseid andmeid tuleb säilitada ja kuidas on nad omavahel seotud. Selle info abil saab andmeid andmebaasi mudelisse sobitada. Andmebaasi disain hõlmab andmete liigitamist ja nendevaheliste seosete määramist.<ref name="Teorey, T.J. 2009">Teorey, T.J., Lightstone, S.S., et al., (2009). Database Design: Know it all.1st ed. Burlington, MA.: Morgan Kaufmann Publishers</ref>
[[Andmebaasi disainer]] määrab, milliseid andmeid tuleb säilitada ja kuidas on nad omavahel seotud. Selle info abil saab andmeid andmebaasi mudelisse sobitada. [[Andmebaas]]i disain hõlmab andmete liigitamist ja nendevaheliste seosete määramist.<ref name="Teorey, T.J. 2009">Teorey, T.J., Lightstone, S.S., et al., (2009). Database Design: Know it all.1st ed. Burlington, MA.: Morgan Kaufmann Publishers</ref>


== Andmete valimine andmebaasi ==
== Andmete valimine andmebaasi ==
Enamikul juhtudel on andmebaasi disaineriks isik (või isikud), kes on ekspert andmebaaside loomises, mitte valdkonnas, mille tarbeks andmebaasi luuakse. Seega määratakse andmebaasi salvestatav informatsioon andmebaasi disaineri ja töö tellija koostöös. Andmete valik on üks osa [[Nõuete analüüs|nõuete analüüsi]] protsessist, mille käigus selgitatakse koos andmebaasi tellijaga välja, missuguseid andmeid on tarvis talletada. Alustuseks tuleb välja selgitada, milliste objektide kohta infot vajatakse ning milliseid andmeid on iga objekti kohta vaja. Seejuures peab silmas pidama, et andmebaas rahuldaks nii hetke- kui ka tulevikuvajadusi. Korrektne andmete valik tagab, et andmebaasis ei oleks korduvaid andmeid, kuid kõik vajalik oleks efektiivselt kättesaadav.<ref>Teorey, T.; Lightstone, S. and Nadeau, T.(2005) Database Modeling & Design: Logical Design, 4th edition, Morgan Kaufmann Press. ISBN 0-12-685352-5</ref><ref name=":0">
Enamikul juhtudel on andmebaasi disaineriks isik (või isikud), kes on ekspert andmebaaside loomises, mitte valdkonnas, mille tarbeks andmebaasi luuakse.{{lisa viide}} Seega määratakse andmebaasi salvestatav informatsioon andmebaasi disaineri ja töö tellija koostöös. Andmete valik on üks osa [[nõuete analüüs]]i protsessist, mille käigus selgitatakse koos andmebaasi tellijaga välja, missuguseid andmeid on tarvis talletada. Alustuseks tuleb välja selgitada, milliste objektide kohta infot vajatakse ning milliseid andmeid on iga objekti kohta vaja. Seejuures peab silmas pidama, et andmebaas rahuldaks nii hetke- kui ka tulevikuvajadusi. Korrektne andmete valik tagab, et andmebaasis ei oleks korduvaid andmeid, kuid kõik vajalik oleks efektiivselt kättesaadav.<ref>Teorey, T.; Lightstone, S. and Nadeau, T.(2005) Database Modeling & Design: Logical Design, 4th edition, Morgan Kaufmann Press. ISBN 0-12-685352-5</ref><ref name=":0">
{{Netiviide|Autor=|URL=https://courses.cs.ut.ee/MTAT.03.264/2013_spring/uploads/Main/L01_Sissejuhatus.pdf|Pealkiri=https://courses.cs.ut.ee/MTAT.03.264/2013_spring/uploads/Main/L01_Sissejuhatus.pdf|Väljaanne=|Aeg=|Kasutatud=08.11.2018}}</ref><ref name=":1">{{Netiviide|Autor=|URL=http://kollis.pri.ee/topicfiles/16.pdf|Pealkiri=http://kollis.pri.ee/topicfiles/16.pdf|Väljaanne=|Aeg=|Kasutatud=08.11.2018}}</ref>
{{Netiviide|Autor=|URL=https://courses.cs.ut.ee/MTAT.03.264/2013_spring/uploads/Main/L01_Sissejuhatus.pdf|Pealkiri=https://courses.cs.ut.ee/MTAT.03.264/2013_spring/uploads/Main/L01_Sissejuhatus.pdf|Väljaanne=|Aeg=|Kasutatud=08.11.2018}}</ref><ref name=":1">{{Netiviide|Autor=|URL=http://kollis.pri.ee/topicfiles/16.pdf|Pealkiri=http://kollis.pri.ee/topicfiles/16.pdf|Väljaanne=|Aeg=|Kasutatud=08.11.2018}}</ref>


== Andmetevaheliste seoste kindlakstegemine ==
== Andmetevaheliste seoste kindlakstegemine ==
Kui andmebaasi disainer on teinud kindlaks, missuguseid andmeid peaks andmebaasis hoidma, tuleb määrata ka nendevahelised [[Seos (matemaatika)|seosed]] ehk [[Seos (matemaatika)|relatsioonid]].
Kui andmebaasi disainer on teinud kindlaks, missuguseid andmeid peaks andmebaasis hoidma, tuleb määrata ka nendevahelised [[Seos (matemaatika)|seosed]] ehk relatsioonid.


Relatsioonide määramine on oluline, kuna muutus ühes andmeobjektis võib mõjutada ka teiste andmete atribuute (näiteks seos kahe olemi "tudeng" ja "registreerimine" vahel, kus üks tudeng võib end õppeainetele registreerida mitmel korral, kuid ühele registreerimisele vastab alati vaid üks tudeng).<ref name=":0" />
Relatsioonide määramine on oluline, kuna muutus ühes andmeobjektis võib mõjutada ka teiste andmete atribuute (näiteks seos kahe olemi "tudeng" ja "registreerimine" vahel, kus üks tudeng võib end õppeainetele registreerida mitmel korral, kuid ühele registreerimisele vastab alati vaid üks tudeng).<ref name=":0" />


== Andmete loogiline struktureerimine ==
== Andmete loogiline struktureerimine ==
Et kasutada andmeid [[Andmebaasi juhtimissüsteem|andmebaasi juhtimissüsteemis]], on tarvis seada andmed vastava loogilise struktuuri kohaselt. [[Relatsiooniline andmebaas|Relatsioonilise andmebaasi]] puhul hoitakse infot tabelites, mis koosnevad kirjetest ehk ridadest ja väljadest ehk veergudest. Andmeväljadele lisatakse välja nimi, välja tüüp (tekst, number jne) ja kirjeldus. Iga tabeli rida peab vähemalt ühe välja abil olema teistest eristatav – seda välja nimetatakse võtmeks. [[Objektorienteeritud andmebaas|Objektorienteeritud andmebaasi]] korral vaadeldakse iga kirjet kui objekti ning neid andmeobjekte kasutatakse ka andmete haldamiseks kasutatavas [[Objektorienteeritud programmeerimiskeel|objektorienteeritud programmeerimiskeeles]].<ref name=":1" />
Et kasutada andmeid [[andmebaasi juhtimissüsteem]]is, on tarvis seada andmed vastava loogilise struktuuri kohaselt. [[Relatsiooniline andmebaas|Relatsioonilise andmebaasi]] puhul hoitakse infot tabelites, mis koosnevad kirjetest ehk ridadest ja väljadest ehk veergudest. Andmeväljadele lisatakse välja nimi, välja tüüp (tekst, number jne) ja kirjeldus. Iga tabeli rida peab vähemalt ühe välja abil olema teistest eristatav – seda välja nimetatakse võtmeks. [[Objektorienteeritud andmebaas]]i korral vaadeldakse iga kirjet kui objekti ning neid andmeobjekte kasutatakse ka andmete haldamiseks kasutatavas [[objektorienteeritud programmeerimiskeel]]es.<ref name=":1" />
<ref>{{Netiviide|Autor=|URL=http://www.pld.ttu.ee/~priidu/courses/web/WebCourseV2/Slides/WEB-08-DB.pdf|Pealkiri=http://www.pld.ttu.ee/~priidu/courses/web/WebCourseV2/Slides/WEB-08-DB.pdf|Väljaanne=|Aeg=|Kasutatud=08.11.2018|arhiivimisaeg=2.06.2012|arhiivimisurl=https://web.archive.org/web/20120602011651/http://www.pld.ttu.ee/~priidu/courses/web/WebCourseV2/Slides/WEB-08-DB.pdf|url-olek=ei tööta}}</ref>
<ref>
{{Netiviide|Autor=|URL=http://www.pld.ttu.ee/~priidu/courses/web/WebCourseV2/Slides/WEB-08-DB.pdf|Pealkiri=http://www.pld.ttu.ee/~priidu/courses/web/WebCourseV2/Slides/WEB-08-DB.pdf|Väljaanne=|Aeg=|Kasutatud=08.11.2018}}</ref>
== ER mudel ==
== ER mudel ==
[[Fail:ER_Diagram_MMORPG.png|pisi|320x320px|ER mudel]]
[[Fail:ER_Diagram_MMORPG.png|pisi|320x320px|ER mudel]]
[[ER mudel]] on [[diagramm]], mis aitab disainerit andmebaasi loomisel. ER mudel koosneb olemitest ''(entity)'' ehk objektidest ning olemite vahelistest seostest (''relationship''), mis ühendavad olemeid. Olemiks võib olla näiteks õpilane, raamat jne. Seos on näiteks õpilane ja tema poolt sooritatud eksamid. <ref name=":2">{{Netiviide|Autor=|URL=http://math.ut.ee/kursused/abaasid97/E-RMUD~1.HTM|Pealkiri=http://math.ut.ee/kursused/abaasid97/E-RMUD~1.HTM|Väljaanne=|Aeg=|Kasutatud=08.11.2018}}</ref>
[[ER mudel]] on [[diagramm]], mis aitab disainerit andmebaasi loomisel. ER mudel koosneb olemitest ''(entity)'' ehk objektidest ning olemite vahelistest seostest (''relationship''), mis ühendavad olemeid. Olemiks võib olla näiteks õpilane, raamat jne. Seos on näiteks õpilane ja tema poolt sooritatud eksamid.<ref name=":2">{{Netiviide|Autor=|URL=http://math.ut.ee/kursused/abaasid97/E-RMUD~1.HTM|Pealkiri=http://math.ut.ee/kursused/abaasid97/E-RMUD~1.HTM|Väljaanne=|Aeg=|Kasutatud=08.11.2018|arhiivimisaeg=11.11.2016|arhiivimisurl=https://web.archive.org/web/20161111073352/http://math.ut.ee/kursused/abaasid97/E-RMUD~1.HTM|url-olek=ei tööta}}</ref>


Olemit kirjeldavad tunnused on atribuudid (näiteks õpilase nimi, vanus jne). Nii olemite, seoste kui ka atribuutide valik sõltub konkreetsest ülesandest.<ref name=":2" />
Olemit kirjeldavad tunnused on atribuudid (näiteks õpilase nimi, vanus jne). Nii olemite, seoste kui ka atribuutide valik sõltub konkreetsest ülesandest.<ref name=":2" />


Et olemeid omavahel eristada, on üks olemi atribuutidest (või atribuutide kogum) olemi võtmeks. Näiteks andes igale õpilasele võtmeks unikaalse ID, on võimalik eristada kaht nimekaimudest tudengit.<ref name=":2" />
Et olemeid omavahel eristada, on üks olemi atribuutidest (või atribuutide kogum) olemi võtmeks. Näiteks andes igale õpilasele võtmeks unikaalse ID, on võimalik eristada kaht nimekaimudest üliõpilast.<ref name=":2" />


== Normaliseerimine ==
== Normaliseerimine ==
Andmebaaside kontekstis nimetatakse normaliseerimiseks andmebaasis olevate andmete korrastamist, et vältida andmete kordumist ja andmetevahelisi vastuolusid. [[Normaalkuju|Normaalkujude]] tasemed on 1NF, 2NF, 3NF, 3.5NF ehk Boyce-Codd NF, 4NF ja 5NF. Iga normaalkuju tase eeldab temast eelmise normaalkuju kehtimist. Enamasti piisab, kui viia andmemudel kolmandale normaalkujule (3NF).<ref>{{Netiviide|Autor=|URL=https://www.metshein.com/unit/andmete-modelleerimine-normaliseerimine/|Pealkiri=https://www.metshein.com/unit/andmete-modelleerimine-normaliseerimine/|Väljaanne=|Aeg=|Kasutatud=08.11.2018}}</ref>
Andmebaaside kontekstis nimetatakse normaliseerimiseks andmebaasis olevate andmete korrastamist, et vältida andmete kordumist ja andmetevahelisi vastuolusid. [[Normaalkuju]]de tasemed on 1NF, 2NF, 3NF, 3.5NF ehk Boyce-Codd NF, 4NF ja 5NF. Iga normaalkuju tase eeldab temast eelmise normaalkuju kehtimist. Enamasti piisab, kui viia andmemudel kolmandale normaalkujule (3NF).<ref>{{Netiviide|Autor=|URL=https://www.metshein.com/unit/andmete-modelleerimine-normaliseerimine/|Pealkiri=https://www.metshein.com/unit/andmete-modelleerimine-normaliseerimine/|Väljaanne=|Aeg=|Kasutatud=08.11.2018}}</ref>

==Vaata ka==
*[[Klassifikaator]]


==Viited==
==Viited==

Viimane redaktsioon: 1. september 2024, kell 00:31

Andmebaasi disain on andmete korraldamine andmebaasi mudeli kohaselt. 

Andmebaasi disainer määrab, milliseid andmeid tuleb säilitada ja kuidas on nad omavahel seotud. Selle info abil saab andmeid andmebaasi mudelisse sobitada. Andmebaasi disain hõlmab andmete liigitamist ja nendevaheliste seosete määramist.[1]

Andmete valimine andmebaasi

[muuda | muuda lähteteksti]

Enamikul juhtudel on andmebaasi disaineriks isik (või isikud), kes on ekspert andmebaaside loomises, mitte valdkonnas, mille tarbeks andmebaasi luuakse.[viide?] Seega määratakse andmebaasi salvestatav informatsioon andmebaasi disaineri ja töö tellija koostöös. Andmete valik on üks osa nõuete analüüsi protsessist, mille käigus selgitatakse koos andmebaasi tellijaga välja, missuguseid andmeid on tarvis talletada. Alustuseks tuleb välja selgitada, milliste objektide kohta infot vajatakse ning milliseid andmeid on iga objekti kohta vaja. Seejuures peab silmas pidama, et andmebaas rahuldaks nii hetke- kui ka tulevikuvajadusi. Korrektne andmete valik tagab, et andmebaasis ei oleks korduvaid andmeid, kuid kõik vajalik oleks efektiivselt kättesaadav.[2][3][4]

Andmetevaheliste seoste kindlakstegemine

[muuda | muuda lähteteksti]

Kui andmebaasi disainer on teinud kindlaks, missuguseid andmeid peaks andmebaasis hoidma, tuleb määrata ka nendevahelised seosed ehk relatsioonid.

Relatsioonide määramine on oluline, kuna muutus ühes andmeobjektis võib mõjutada ka teiste andmete atribuute (näiteks seos kahe olemi "tudeng" ja "registreerimine" vahel, kus üks tudeng võib end õppeainetele registreerida mitmel korral, kuid ühele registreerimisele vastab alati vaid üks tudeng).[3]

Andmete loogiline struktureerimine

[muuda | muuda lähteteksti]

Et kasutada andmeid andmebaasi juhtimissüsteemis, on tarvis seada andmed vastava loogilise struktuuri kohaselt. Relatsioonilise andmebaasi puhul hoitakse infot tabelites, mis koosnevad kirjetest ehk ridadest ja väljadest ehk veergudest. Andmeväljadele lisatakse välja nimi, välja tüüp (tekst, number jne) ja kirjeldus. Iga tabeli rida peab vähemalt ühe välja abil olema teistest eristatav – seda välja nimetatakse võtmeks. Objektorienteeritud andmebaasi korral vaadeldakse iga kirjet kui objekti ning neid andmeobjekte kasutatakse ka andmete haldamiseks kasutatavas objektorienteeritud programmeerimiskeeles.[4] [5]

ER mudel

ER mudel on diagramm, mis aitab disainerit andmebaasi loomisel. ER mudel koosneb olemitest (entity) ehk objektidest ning olemite vahelistest seostest (relationship), mis ühendavad olemeid. Olemiks võib olla näiteks õpilane, raamat jne. Seos on näiteks õpilane ja tema poolt sooritatud eksamid.[6]

Olemit kirjeldavad tunnused on atribuudid (näiteks õpilase nimi, vanus jne). Nii olemite, seoste kui ka atribuutide valik sõltub konkreetsest ülesandest.[6]

Et olemeid omavahel eristada, on üks olemi atribuutidest (või atribuutide kogum) olemi võtmeks. Näiteks andes igale õpilasele võtmeks unikaalse ID, on võimalik eristada kaht nimekaimudest üliõpilast.[6]

Normaliseerimine

[muuda | muuda lähteteksti]

Andmebaaside kontekstis nimetatakse normaliseerimiseks andmebaasis olevate andmete korrastamist, et vältida andmete kordumist ja andmetevahelisi vastuolusid. Normaalkujude tasemed on 1NF, 2NF, 3NF, 3.5NF ehk Boyce-Codd NF, 4NF ja 5NF. Iga normaalkuju tase eeldab temast eelmise normaalkuju kehtimist. Enamasti piisab, kui viia andmemudel kolmandale normaalkujule (3NF).[7]

  1. Teorey, T.J., Lightstone, S.S., et al., (2009). Database Design: Know it all.1st ed. Burlington, MA.: Morgan Kaufmann Publishers
  2. Teorey, T.; Lightstone, S. and Nadeau, T.(2005) Database Modeling & Design: Logical Design, 4th edition, Morgan Kaufmann Press. ISBN 0-12-685352-5
  3. 3,0 3,1 "https://courses.cs.ut.ee/MTAT.03.264/2013_spring/uploads/Main/L01_Sissejuhatus.pdf" (PDF). Vaadatud 08.11.2018. {{netiviide}}: välislink kohas |Pealkiri= (juhend)
  4. 4,0 4,1 "http://kollis.pri.ee/topicfiles/16.pdf" (PDF). Vaadatud 08.11.2018. {{netiviide}}: välislink kohas |Pealkiri= (juhend)
  5. "http://www.pld.ttu.ee/~priidu/courses/web/WebCourseV2/Slides/WEB-08-DB.pdf" (PDF). Originaali (PDF) arhiivikoopia seisuga 2.06.2012. Vaadatud 08.11.2018. {{netiviide}}: välislink kohas |Pealkiri= (juhend)
  6. 6,0 6,1 6,2 "http://math.ut.ee/kursused/abaasid97/E-RMUD~1.HTM". Originaali arhiivikoopia seisuga 11.11.2016. Vaadatud 08.11.2018. {{netiviide}}: välislink kohas |Pealkiri= (juhend)
  7. "https://www.metshein.com/unit/andmete-modelleerimine-normaliseerimine/". Vaadatud 08.11.2018. {{netiviide}}: välislink kohas |Pealkiri= (juhend)