datubaze.files.wordpress.com€¦  · web viewuniversal modeling language (uml) valodas klašu...

34
1 Datu bāzes projektēšana Entity Relationship (ER) diagramma Extended Entity Relationship (EER) diagramma Klašu diagramma (objekti + metodes) Relāciju DB, objektu DB, relāciju – objektu DB Oracle, IBM DB2, MS SQL Server, MySQL Datu konceptuālais Datu bāzes loģiskais Datu bāzes f i z

Upload: others

Post on 04-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

1

Datu bāzes projektēšana

Entity Relationship (ER) diagramma Extended Entity Relationship (EER) diagramma Klašu diagramma (objekti + metodes)

Relāciju DB, objektu DB, relāciju – objektu DB

Oracle, IBM DB2, MS SQL Server, MySQL

Datu konceptuālais modelis

Datu bāzes loģiskais modelis

Datu bāzes fiziskais modelis

Page 2: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

Grāmata

nosaukumsisdngads

saraksts()

Grāmata

NOSAUKUMSISDNGADS

Saraksts()

2

Klašu diagramma1

Tā apraksta objektu tipus sistēmā un dažādus saišu tipus, kas pastāv starp tiem. Klase var atsaukties uz citu klasi. Klasei var būt savi objekti vai arī tā var būt mantota no citām klasēm.Klašu diagramma iekļauj:

1) lietojuma klases;2) klašu atribūtus;3) operācijas (metodes) ar klases datiem (klašu uzvedība);4) klašu saistību.

Klašu diagramma sniedz lietojuma statisko skatu.Klašu diagramma ir objektu orientētas modelēšanas pamats. Tā parāda, kā dažādas entītijas (cilvēki, lietas un dati) ir savstarpēji saistītas. Tā parāda sistēmas statiskās struktūras.

Diagrammā klases tiek attēlotas ar četrstūri, kurā ir trīs nodalījumi:1) augšējā nodalījumā ir klases nosaukums. Tas parasti tiek drukāts treknrakstā un centrēts. Pirmais burts tiek drukāts ar lielo burtu.2) vidējais nodalījums satur klases atribūtus. Tās ir līdzinātas pa kreisi, un pirmais burts ir mazais burts.3) apakšējais nodalījums satur operācijas, ko var veikt klase. Tās arī ir līdzinātas pa kreisi, un pirmais burts ir mazais burts.Klases tiek identificētas un sagrupētas klases diagrammā, kas palīdz noteikt statiskās attiecības starp tām. Ar detalizētu modelēšanu klases bieži tiek sadalītas vairākās apakšklasēs.

Programmēšanā Datu bāzes vidē

1 https://www.uml-diagrams.org/class-reference.html

Page 3: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

A B Divvirziena asociācija. A un B klases izsauc viena otru.

A B Vienvirziena asociācija. A izsauc B klasi.

A B Realizācijajums. A īsteno (implement) B.

A B Vispārinājums un mantošana. A manto no B. A "is-a" B.

A B Kompozīcija. Vesela un daļa. B nevar eksistēt bez A.

3

Universal Modeling Language (UML) valodas klašu diagrammās lietotie saites

Asociācijas klase (kad saitei jādefinē atribūti).

A B Agregācija. Vesels un daļa. B var eksistēt bez A.

A B Atkarība (dependency). A neeksistē bez B (use).

Page 4: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

Grāmata

NOSAUKUMSISDNGADS

Saraksts()

Izdevniecība

NOSAUKUMSAUTORSGADS

Saraksts()

Autors

UZVĀRDSVĀRDSVALSTS

Saraksts()

Nodaļa

NUMURSNOSAUKUMS

Saraksts()

*1*

*

Daiļliteratūra

ANOTĀCIJAPRIEKŠVĀRDS

Saraksts()

Mākslas_grāmata

ANOTĀCIJASTILS

Saraksts()

4

Klašu diagrammas piemērs. Piemērs

Klase sastāv no trim daļām:1) nosaukums;2) struktūras (atribūti un saistība ar citām klasēm);3) darbību kopas, uzvedības.

Atribūti ir tādi paši kā lauki relāciju modelī. Tomēr grāmatas piemērā atribūtu izdevniecība un autors vietā ir ielikti objekti. Atribūti ar kompleksiem objektiem parasti ir citas tabulas, kas saistītas ar darbinieku tabulas atslēgām.Attiecības: Grāmata un Autors ir saistības ar N:M asociāciju, un Grāmata un Izdevniecība ar N: 1 asociāciju.

Page 5: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

Autors

CilvNosVALSTS

Saraksts()

Grāmata

KODSNOSAUKUMSGADS

Saraksts()

Nodaļa

NUMURSNOSAUKUMS

Saraksts()

Izdevniecība

NOSAUKUMSAUTORSGADS

Saraksts()

Lasītājs

CilvNosSaraksts()

raksta

publicē

Lasītāja_grām

DAT_NODAT_LIDZREĢ_REZERV

Saraksts()

Grāmatas_eksemplārs

EIDREĢ_DATUMSSTATUSS

Saraksts()

Daiļliteratūra

ANOTĀCIJAPRIEKŠVĀRDS

Saraksts()

lasa

rezervētsMākslas_grāmata

ANOTĀCIJASTILS

Saraksts()

Bibliotēka

NUMURSNOSAUKUMSADRESE

Saraksts()

LIDCilvNosSaraksts()

5

Klašu diagrammas piemēri

1..*

1

*

1..*1..*

1..*0..*

1..* 1..*

1..* 1..* 0..*

*

1..*

1..*

1..*

1..*

<<interfeiss>>Meklēšana

Kopkatalogs

NUMURSSTATUSS

<<datuTips>>CilvNos

<<datuTips>>Adrese

Bibliotekārs

realizācija

Page 6: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

Rēķins

IDPAROLESTATUSS

Paroles_maiņa()

Lidosta

NOSAUKUMSADRESEKODS

Saraksts()

Lidojums

NUMURSNOUZILGUMS

Pievienot()Atcelt()

Nedēļas_saraksts

DIENAIZLIDOŠANA

Komanda

Saraksts()

Pielāgoti_reisi

DATUMSIZLIDOŠANA

Persona

UZVĀRDSADRESETELEFONS

Piloti

Saraksts()Lidojuma_instance

IZLIDOŠANASLŪŽASSTATUSSModificēt()Atcelt()

Aviolīnija

NOSAUKUMSKODSSaraksts()

Maksājums

IDSUMMASTATUSS

Tranzakcija()

Rezervēšana

NUMURSLIDOJUMA_INSTANCEVIETASTATUSS

Pasažieru_saraksts()

Lidmašīna

NOSAUKUMSMODELISGADSILGUMS

Saraksts()

6

Vienvirziena asociācija (1:1) Divvirzienu asociācija (1:1) Vienvirziena asociācija (1:N) Divvirzienu asociācija (N:M) Piesaiste (asigne to) AgregācijaKompozīcijaAtkarība (dependency) Visparinājums, mantošanaAbstrakta klase

***

*

1

1

*1

1

*1

*

*

*

2

**

Page 7: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

Izdevniecība

NOSAUKUMSAUTORSGADS

Saraksts()

Grāmata

NOSAUKUMSISDNGADS

Saraksts()

7

Asociācija starp klasēm

Ja divām klasēm ir jāsazinās savā starpā, starp tām ir jābūt saiknei. Šo saikni var pārstāvēt asociācija. Saistību klases diagrammā attēlo ar līniju starp šīm klasēm un bultiņu, kas norāda navigācijas virzienu. Pēc noklusējuma asociācijas vienmēr tiek uzskatītas par divvirzienu. Tas nozīmē, ka abas klases izmanto viena otru. Vienvirziena asociācijā divas klases ir saistītas, bet tikai viena klase zina, ka ir saite.

Asociācija ir attiecība starp klasifikatoriem (klasēm), lai parādītu, ka klasifikatoru instances (eksemplāri):1) var būt savstarpēji saistītas;2) loģiski vai fiziski apvienoti kādā apkopojumā agregācija un kompozīcija.

Asociācija norāda, ka eksistē semantiskas (strukturālas) saites starp noteiktu objektu tipu atsevišķiem objektiem. Viena objektu tipa eksemplārs (objekts) izmanto cita objektu tipa eksemplāru (objektu) vai abi izmanto viens otru. Objektu tipi ir neatkarīgi viens no otra, un nav nekādu īpašuma tiesību starp tiem.

Asociācija ("has" a relationship) ir strukturāla attiecība, kas konceptuāli nozīmē, ka divas klase ir saistītas viena ar otru. Vienas klases eksemplārs izmanto citas klases eksemplāru vai abi izmanto viens otru. Klases ir neatkarīgas viena no otras, un nav nekādu īpašuma tiesību starp tām.

Asociācijas saites daudzkāršība (multiplicity). Tā norāda, cik klases instanču piedalās relācijā. Tas ir ierobežojums, kas norāda atļauto kardinalitātes diapazonu starp divām klasēm. To norāda kā 0 … * (no nulles līdz bezgalībai), 2 … 5 (no divi līdz pieci).

Rumbaug un Shlaer/Mellor lieto asociāciju klases. Tās ļauj asociācijās izmantot atribūtus operācijas.

1..*

1

Page 8: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

Kuģis

DarbinieksKuģis

Pasažieris

Kuģis

PasažierisPasažieris

8

Asociāciju veidi

Asociācijas: vienvirziena, divvirziena, refleksīva, daudzuma

0..*

0..* 0..*

Page 9: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

9

Terminu "asociācija" izmanto divējādi:1) kā vispārīgu saites nosaukumu objektorientētajās datu bāzēs;2) kā speciālu saites veidu objektorientētajās datu bāzēs.

Page 10: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

10

Saite

Link (saite) – asociācijas eksemplārs.Katra asociācijas saite ar klasi tiek saukta par asociācijas polu. Poliem ir nosaukumi (lomu nosaukumi), redzamības (visibility) norāde (public, protected, private) un iespējamo saišu skaita diapazona norāde (multiplicity). Grafiski asociācija tiek attēlota kā nepērtraukta līnija starp klasēm. Asociācijai ir nosaukums. Ja asociācijai ir savi atribūti, tā ir objektu tips un tiek saukta par asociācija-objektu tips.

loma-apmāca loma-mācās

1 asociācija mācības 0..Nfakultāte students

Page 11: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

11

Atkarība

Atkarība (dependency) ir saites veids, kas nosaka, ka viena tipa objektu eksemplāriem ir nepieciešama saikne ar otra tipa objektu eksemplāriem, lai veiktu savas funkcijas. Atkarību veidi var būt ļoti dažādi: eksemplāra izveidošanas iespēja, dažādu semantisko līmeņu hierarhijas eksemplāru attiecība, konkretizācijas iespējas.

Īpašs asociācijas veids. Pastāv starp divām klasēm, ja vienas definīcijas izmaiņas var izraisīt izmaiņas otrā (bet ne otrādi).

tramvaja vadītājs

tramvajs

automašīna ritenis

Page 12: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

12

Agregācijas saite (asociācijas plašā nozīmē variants)

Agregācija (apkopošana) ir īpašs saistību veids, ko izmanto, lai modelētu “vesels un tā daļas” attiecību. Agregācijas daļas klases dzīves cikls nav atkarīgs no agregāta klases dzīves cikla. Apkopošana nozīmē attiecības, kurās bērns var pastāvēt neatkarīgi no vecāka.

Agregācija ir „veselais - daļa” vai „daļa no” attiecība, kurā objektu eksemplāri, kuri ir kaut kā daļas, ir asociēti ar objektu eksemplāru, kas ir šo daļu konteiners.

kurpe kurpes šņore

Page 13: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

13

Kompozīcijas saite

Kompozīcijas apkopošanas attiecība ir tikai viena no apkopošanas attiecību formām, bet pakārtotās klases instances dzīves cikls ir atkarīgs no vecāku klases instances dzīves cikla. Kompozīcija nozīmē attiecības, kurās bērns nevar pastāvēt neatkarīgs no vecāka.

Kompozīcija (composition) ir agregācijas speciāls gadījums, kas raksturojas ar to, ka agregāta sastāvdaļas, sauktas arī par komponentēm, ir neatņemamas šī agregāta daļas, kas “dzīvo un iet bojā” reizē ar pašu agregātu.

Galvenā atšķirība starp agregāciju un asociāciju ir pamatā esošā semantiskā stiprība. Kamēr kompozīcija veido organizācijas metodi, kas precīzi norāda cilvēka domāšanu, saistība ir tikai skaidrs attēlojums starp programmas objektiem.

Kompozīcijas attiecībās, kurās vienam veselumam var būt daudzas ar to saistītas daļas, visa attiecību daļa tiek uzskatīta par vienu kompozīciju, nevis par vairākām asociāciju attiecībām.

Monolīts objekts ir objekts, kuram nav ārēji saskatāma struktūra. Šķiet, ka monolīts objekts nav veidots no diviem vai vairākiem citiem objektiem. Konkrēti monolīts objekts var tikt uztverts tikai kā saliedēts veselums.

cilvēks galva

Page 14: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

14

Kompozīcija (composite) un kompozīcijas tipa objekts

Composite objects are objects that have an externally-discernible (ārēji atšķirama) structure, and the structure can be addressed via the public interface of the composite object. The objects that comprise a composite object are referred to as component objects. Composite objects meet one or both of the following criteria:1) the state of a composite object is directly affected by the presence or absence of one or more of its component objects, and/or2) the component objects can be directly referenced via the public interface of their corresponding composite object. It is useful to divide composite objects into two subcategories: 1) a heterogeneous composite object is a composite object that is conceptually composed of component objects that are not all conceptually the same. 2) a homogeneous composite object is a composite object that is conceptually composed of component objects that are all conceptually the same.

The rules for designing heterogeneous composite objects are different from the rules for designing homogeneous composite objects. The composition hierarchy may span an arbitrary number of levels. If one gets a composite or aggregated object design that has component objects that are themselves composite or aggregated objects, then one gets a two-level aggregation or composition hierarchy. This hierarchy could be repeated to several levels of composition or aggregation. Because of the arbitrary number of the part-of relationships between the objects, the objects involved in the composition are also known as complex objects.

Page 15: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

15

Kompozīcija un agregācija

Kompozīcija un agregācija ir cieša savienojuma (tightly coupled) saites.

Kompozīcija (vārda plašā nozīmē)

Neatkarīgas eksistences (existence independent) (agregācija)

Atkarīgas eksistences (existence dependent) (kompozīcija)

Ekskluzīva (exclusive, non sharable)

Neekskluzīva (nonexclusive, sharable)

Veselais DaļaDaļa

?

Page 16: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

Katalogs

Teksta fails Binārais fails

16

Ekskluzīva un neekskluzīva kompozīcija

Ekskluzīva (nonsharable) kompozīcija

1 1 1

Neekskluzīva (sharable) kompozīcija

1... 1...

Dators

Centrālais procesors Cietais disks

Page 17: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

17

Kompozīcijas tipi

1. Ekskluzīva (nonsharable, exclusive) un eksistences atkarīga (existence dependent) kompozīcija.

2. Neekskluzīva (sharable) un eksistences neatkarīga (existence independent) kompozīcija;

3. Nekskluzīva (sharable, nonexclusive) eksitences atkarīga (existence dependent) kompozīcija.

4. Ekskluzīva (nonsharable) un eksistences neatkarīga (existence independent) kompozīcija.

in UML: Composition = exclusive, dependent

Page 18: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

18

Heterogēnas, homogēnas un daudzlīmeņu kompozīcijas

A heterogeneous composition since one whole object may consist of several different types of part objects.

A homogeneous composition implies that one whole object consists of part objects of the same type.

The composition hierarchy may span an arbitrary number of levels. If one gets a composite or aggregated object design that has component objects that are themselves composite or aggregated objects, then one gets a two-level aggregation or composition hierarchy. This hierarchy could be repeated to several levels of composition or aggregation. Because of the arbitrary number of the part-of relationships between the objects, the objects involved in the composition are also known as complex objects.

Page 19: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

19

Realizācija (implementācija)

UML modelēšanā realizācijas attiecība ir saistība starp diviem modeļa elementiem, kurā viens modeļa elements (klients) atrod (ievieš vai izpilda) rīcību, ko norāda otrs modeļa elements (piegādātājs).

Realizācijas attiecība ir saistība starp diviem modeļa elementiem, kurā viens modeļa elements (klients) atrod (ievieš vai izpilda) rīcību, ko norāda otrs modeļa elements (piegādātājs).

Realizācijas UML grafiskais attēlojums ir doba trīsstūra forma pārtrauktās līnijas galā, kas to savieno ar vienu vai vairākiem īstenotājiem. Pārtrauktās līnijas interfeisa galā tiek izmantota vienkārša bultas galva, kas savieno to ar tās lietotājiem. Realizēšana ir sakarība starp klasēm, interfeisiem, komponentiem un pakotnēm, kas savieno klienta elementu ar piegādātāja elementu. Izstrādāšanās attiecība starp klasēm/komponentiem un interfeisiem parāda, ka klase/komponents veic saskarnes piedāvātās darbības.

<<interfeiss>>Gregoriāņu kalendārs

Kalendārs

Page 20: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

20

Vispārināšana un mantošana

Vispārināšana (generalization) ir mehānisms, kā vienādus objektus apvienot vienā, vispārīgākā klasē.

Mantošana (inheritance) ir taksonomiska sakarība starp vispārīgāku klasifikatoru un specifiskāku klasifikatoru. Katrs konkrētā klasifikatora gadījums ir arī vispārīgā klasifikatora netiešs gadījums.

Mantošanā konkrētais klasifikators pārmanto vispārīgākā klasifikatora iezīmes. Diagrammās apzīmē kā “is-a” attiecības.

Page 21: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

21

Abstraktā klase

Viena no galvenajām uz objektu orientētas attīstības īpašībām ir tā, ka var mainīt klases interfeisu neatkarīgi no klases realizācijas.

Klase un interfeiss (saskarne) atšķiras. Klasei var būt sava veida faktiskā instance. Saskarnei jābūt vismaz vienai klasei, lai to realizētu. UML 2 interfeiss tiek uzskatīts par klases modelēšanas elementa specializāciju. Tāpēc saskarni zīmē tieši tāpat kā klasi, bet taisnstūra augšējā nodalījumā ir arī teksts “saskarne”.

In the diagram shown in figure, both the Professor and Student classes implement the Person interface and do not inherit from it. We know this for two reasons: 1) The Person object is defined as an interface - it has the “«interface»” text in the object’s name area, and we see that the Professor and Student objects are class objects because they are labeled according to the rules for drawing a class object (there is no additional classification text in their name area). 2) We know inheritance is not being shown here, because the line with the arrow is dotted and not solid. As shown in figure, a dotted line with a closed, unfilled arrow means realization (or implementation).

Page 22: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

22

Objektu patstāvība (persitance)

Objektu noturība, patstāvība (persistence) nozīmē, ka daži programmu komponenti pārdzīvo programmas darbības izbeigšanu. Tādējādi šie komponenti ir pastāvīgi jāuzglabā sekundārajā glabāšanā.Parasti noturība vai nenoturība tiek norādīta objekta izveides laikā. Pastāv divi iespējamie veidi, kā padarīt objektu par pastāvīgu:1) skaidri izsaukt iebūvētu funkciju noturību noteikti objekti ir pastāvīgi;2) automātiski padarīt objektu par pastāvīgu tipu, visi objekti ir pastāvīgi.

Tirgū ir vairākas uz objektu orientētas DBVS (piemēram, Gemstone, Objectivity/DB, ObjectStore, Ontos, O2, Itasca, Matisse). Visi šie produkti atbalsta uz objektu orientētu datu modeli. Tie ļauj lietotājam:

1) izveidot jaunu klasi ar atribūtiem un metodēm;2) likt klasei pārmantot atribūtus un metodes no superclasses;3) izveidot katras klases instances ar unikālu objekta identifikatoru;4) izgūt instances atsevišķi vai kolektīvi;5) ielādēt un palaist metodes.

Lielākā daļa šo OODBs atbalsta vienotu programmēšanas valodu un datu bāzes valodu. Proti, viena valoda (piemēram, C++ vai Smalltalk), kurā jāveic gan vispārēja programmēšana, gan datu bāzes vadība.

Page 23: datubaze.files.wordpress.com€¦  · Web viewUniversal Modeling Language (UML) valodas klašu diagrammās lietotie saites. A B Divvirziena asociācija. A un B klases izsauc viena

23

Objektu kolekcijas

Atšķirība starp somu (bag) un kopu (set) ir tāda, ka bag var saturēt vienu un to pašu objektu vairākas reizes, turpretim set elements ir tikai vienu reizi, lai gan tas var būt ievietots vairākas reizes.