datubaze.files.wordpress.com€¦ · web viewuniversal modeling language (uml) valodas klašu...
Post on 04-Jul-2020
1 Views
Preview:
TRANSCRIPT
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
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
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).
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.
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
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
**
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
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..*
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.
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
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
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
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
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.
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
?
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
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
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.
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
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.
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).
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.
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.
top related