mhpreiman
12/21/2016 - 1:20 AM

database concepts

Olem:  nt isikud, kohad, asjad, sündmused
Atribuut:  tunnused; nt töötaja olemil eesnimi, perenimi, telefon (`1:m` seose puhul **teha atribuudile eraldi tabel** (nt kui mitu meili inimese kohta))
Schema (andmebaasiskeem):  andmebaasi struktuur, mis on üles joonistatud graafilise diagrammina
Column definition:  kirjeldus, mis määrab veeru füüsilised omadused (nimi, andmetüüp, pikkus, NULL / not NULL, formaat, väärtuse piirid,..)
Database description:  Ammendavalt ab struktuuri kirjeldav dokumentatsioon (konkreetses DBMS keeles). Sisaldab nt: skeemi, tabelite loetelu, veerudefinitsioone, kirjeldusi tabelitevahelistest seostest.

Transactions

A series of data manipulation statements that either fully succeed or fully fail, leaving the database in a consistent state.

  • If only some statements succeed, the whole transaction is considered invalid and the system is rolled back to its previous valid state.
  • Transaction is only applied once all of the statements have succeeded.
  • No-one else sees any part of the transaction until it's committed.

Transaktsioonid on nt:

  • tellimine
  • maksmine
  • broneerimine
  • laenutamine
  • taotlemine
  • järjekorras olemine
  • kokkuleppimine
  • töötamine


Database Modelling

Andmebaasi vaated

  • Füüsiline - salvestamisviisid
  • Loogiline - info struktureerimine (andmetevahelised SEOSED)
  • Kasutaja - milline ab juurdepääs on eri kasutajatele

Data modelling

**Conceptual data model** - things in the business and the relationships among them - highest-level relationships between different entities
`olemid` `seosed` - Leia olemid (tegijad/objektid) - Loo üks andmemudel:
![](https://raw.githubusercontent.com/mhpreiman/files/be5cf784e735352ce54ab707d1bb4bffe4cb6cea/am_hierarh.JPG)              või ![](https://raw.githubusercontent.com/mhpreiman/files/3125cb1b5bde1cce17ba645740604089aa9d8309/am_vork.JPG)              või ![](https://raw.githubusercontent.com/mhpreiman/files/3125cb1b5bde1cce17ba645740604089aa9d8309/am_relats.JPG) - Leia seosed olemite vahel (tegevused) ja loo selle põhjal objektid (nt küsitlus, sisselogija, kirja saatmine) ja määra vastavad meetodid - Kirjelda kasutaja vaade (hea siduda objektidega): infole juurdepääs, infoga manipuleerimine
**Enterprise data model** - similar to conceptual data modeling, but addresses the unique requirements of a specific business
**[Logical data model](https://www.1keydata.com/datawarehousing/logical-data-model.html)** - illustrates the specific entities, attributes and relationships involved in a business function ("normalized" and "attributed" - that is fully detailed data)
`olemid` `seosed` `atribuudid` `võtmed` - Märgi üles kõik andmed esindavad atribuudid (nt nimi, osakonna tel, juhendi tel) ja too näiteid ![](https://raw.githubusercontent.com/mhpreiman/files/8c47d54da85b26459269d84f3a12e25ba33f207e/attributes.JPG) - Määra seosed `1:1` `1:n` `m:n - Loo ja normaliseeri tabelid - `1:m` puhul teha eraldi atribuudile eraldi tabel (nt kui mitu meili inimese kohta)
**Physical data model** - application and database-specific implementation of a logical data model (actual structure of a database (tables and columns) OR the messages sent between computer processes)
`olemid` `seosed` `atribuudid` `võtmed` `tabelinimed` `veerunimed` `andmetüübid`

How to apply relations between tables:
one-to-many:  use the primary key of one as a foreign key in the many table
many-to-many:  create a join table

Tabeli normaalkujud

1NF

  • andmeelemendid on igas lahtris atomaarsed
  • ükski veerg ei kordu
  1. kõrvalda korduvgrupid
  2. täida kõik lahtrid
  3. igas lahtris üks väärtus
  4. primaarvõti
  5. kõik seosed

2NF

  • kõigil teistel veergudel on ühiseks nimetajaks primaarvõti (ei saa olla, et üks veerg viitab ühele võtmele, ja teine teisele - KÕIK veerud viitavad tervele PVle)
  1. võtme igale osale eraldi rida
  2. uues tabelis PV luua kõigist selle tabeli PV osadest
  3. kõik read peavad seostuma võtmega

3NF

  • kõik veerud sõltuvad täielikult kogu võtmest
  • rida identifitseerib ainult primaarvõti
  1. liiguta veerud, mis pole otseselt ja ainult primaarvõtmest sõltuvad, uude tabelisse


UML

Entity-relationship (ER) notations

notationnotation with exrelationship notationsuse case notationnool tähistab klassi kuulumist


Skeemi valik sõltub sellest, mida kirjeldatakse:

  • funktsionaalsed omadused

  • staatiline struktuur (kuidas objektid ja atribuudid seotud)

    • klassimudel
  • dünaamika kirjeldamine

  • järgnevusskeem

  • koostööskeem

  • olekuskeem

  • tegevusskeem


Complete Guide to UML Diagram Types with Examples



UMLis kasutatakse programmide planeerimises järgnevat:   L1

  1. funktsionaalsed omadused:   kasutuslood 🏵   kasutuslugude skeem 🏵 🏵 🏵 🏵 🏵  extend vs include include: use case contains the behavior defined in another use case;
  2. staatiline struktuur:   klassimudel 🏵 🏵
  3. dünaamika kirjeldamine:   järgnevusskeem 🏵 🏵   koostööskeem 🏵 🏵 🏵   olekuskeem 🏵 🏵 🏵 🏵 🏵 🏵   tegevusskeem 🏵 🏵 🏵 🏵 🏵 🏵 🏵 🏵