Relační databázová technologie Klíč: množina (možná jednoprvková) atributů (sloupců), jež jednoznačně identifikuje danou entitu. Poznámky: Daný entitní typ (tabulka) může mít více klíčů. Například (i) rodné číslo, (ii) osobní číslo zaměstnance, (iii) syntetický klíč. Každá tabulka má alespoň jeden klíč. V (opravdové) relační databázi nemůže tabulka obsahovat více řádků s týmiž hodnotami v jednotlivých sloupcích.
Relační databázová technologie Cizí klíč: množina (možná jednoprvková) atributů (sloupců), jejichž hodnota určuje hodnotu klíče jiné tabulky. Poznámky: Datový typ jednotlivých atributů musí být kompatibilní s datovým typem odpovídajících atrinutů klíče referencované tabulky. Cizí klíč (fk) není (nemusí být) v dané tabulce klíčem. Vztah mezi entitami se realizuje asociativní vazbou cizí klíč -> primární klíč (pk). Vzhledem k tomu, že tabulka může mít více klíčů, je dobré jeden z nich zvolit a systematicky ho používat k realizaci vztahů s ostatními tabulkami. Takto zvolený klíč nazýváme klíčem primárním.
Převod konceptuální model -> logický model Entitní typ -> tabulka Atribut entitního typu -> sloupec tabulky Vztah: 1:1 nebo 1:N: vztah->cizí klíč na straně N atribut vztahu -> sloupec tabulky na straně N N:M: Vztah -> „vazební“ tabulka Atribut vztahu -> sloupec vazební tabulky
Relační databáze Implementace entitního typu - tabulka Implementace vztahu – klíč, cizí klíč N naro- zena v 1 Osoba Město (0, N) (1,1) Klíč Primární klíč Cizí klíč Vztah Osoba – Město: konektivita N : 1 kardinalita 0,N : 1,1
Relace vzniklá spojením jiných relací (equi)JOIN
Vztah (relationship) Notace Crow's Foot (autor: James Martin) c d a b Parcialita c d Město vztah Osoba a b Konektivita Notace Crow's Foot (autor: James Martin)
Rekurzivní vztah Jak budeme modelovat vztah mezi osobou a matkou dané osoby? Matka osoby je rovněž osobou, nemůže být tudíž v jiné tabulce! Osoba Jmeno Prijmeni R_CISLO (PK) ma-matku Primární klíč Osoba Jmeno Prijmeni R_CISLO (PK) R_CISLO_MATKY Cizí klíč Notace Crow's Foot
Reflexivní vztah 1
Reflexivní vztah 1 Reflexivní povinná reference Reflexivní reference nemůže mít povinnou hodnotu <M> = mandatory.
Nepovinná hodnota cizího klíče Reflexivní vztah 2 Nepovinná hodnota cizího klíče
Vztah N:M Notace Crow's Foot EntitníTyp1 vztah EntitníTyp2 Dekompozice vztahu s konektivitou N:M na dva vztahy s konektivitou 1:N EntitníTyp1 vztah EntitníTyp2 Notace Crow's Foot
Vztah N:M Notace Crow's Foot Predmet Ucitel vyucuje Kod (PK) Nazev Rocnik Hodin_tydne Predmet Ucitel Jmeno Prijmeni R_CISLO (PK) vyucuje Skol_rok Trida Notace Crow's Foot
Konceptuální model Logický model
Slabý entitní typ 1 Notace Crow's Foot
Slabý entitní typ 1 Notace Crow's Foot
Slabý entitní typ 1 Notace Crow's Foot
Slabý entitní typ 1 Notace Crow's Foot Není to divné? Sloupec IČO tu máme 2x Tento sloupec tu bude 2x
Slabý entitní typ 1 Notace Crow's Foot
Slabý entitní typ 2
Slabý entitní typ 2
Identifikující vztah (vazba) Řídící entitní typ Slabý entitní typ 2 Identifikující vztah (vazba) Slabý entitní typ 11111111 Nemocnice Motol 224 43 1111 Ústředna 22222222 Honda Motol 234 09 2920 Kardiocentrum 2101 Novorozenecké oddělení Recepce 6690 Prodej nových vozů
Slabý entitní typ 3