Relační databázová technologie


1 Relační databázová technologie Klíč: množina (možná jednoprvková) atributů (sloupců), jež jednoznačně idet...
Author:  Štěpán Pešan

1 downloads 7 Views 2MB Size

Recommend Documents


No documents


Relační databázová technologie

Klíč: množina (možná jednoprvková) atributů (sloupců), jež jednoznačně idetifikuje danou entitu. Poznámky: 1. Daný entitní typ (tabulka) může mít více klíčů může být více. Například (i) rodné číslo, (ii) osobní číslo zaměstnance, (iii) syntetický klíč. 2. 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 jednortlivý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: 1. Datový typ jednotlivých atributů musí být kompatibilní s datovým typem odpovídajících atrinutů klíče referencované tabulky. 2. Cizí klíč není (nemusí být) v dané tabulce klíčem. 3. Vztah mezi entitami se realizuje asociativní vazbou cizí klíč -> primární klíč. 4. 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.

http://www.sybase.com/products/modelingmetadata/powerdesigner

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

Konceptuální model

Logický model

Organizace ICO DC8,0 Název VA30 Telefon_prefix DC9,0

ma-linky

Linky Linka DC9,0 ICO1 DC8,0 Uživatel-jméno A15 Uživatel-příjmení A20

Slabý entitní typ 1 Notace Crow's Foot

Organizace ICO DC8,0 Název VA30 Telefon_prefix DC9,0

ma-linky

Linky Linka DC9,0 ICO1 DC8,0 Uživatel-jméno A15 Uživatel-příjmení A20

Slabý entitní typ 1 Notace Crow's Foot

Organizace ICO DC8,0 Název VA30 Telefon_prefix DC9,0

Slabý entitní typ 1 Notace Crow's Foot Organizace ICO DECIMAL(8,0) Název VARCHAR(30) Telefon_prefix DECIMAL(9,0)

ma-linky FK_LINKY_RELATIONS_ORGANIZA

Linky Linka DC9,0 ICO1 DC8,0 Uživatel-jméno A15 Uživatel-příjmení A20

Linky Linka ICO1 ICO Uživatel-jméno Uživatel-příjmení

DECIMAL(9,0) DECIMAL(8,0) DECIMAL(8,0) CHAR(15) CHAR(20)

Organizace ICO DC8,0 Název VA30 Telefon_prefix DC9,0

Slabý entitní typ 1 Notace Crow's Foot Organizace ICO DECIMAL(8,0) Název VARCHAR(30) Telefon_prefix DECIMAL(9,0)

ma-linky FK_LINKY_RELATIONS_ORGANIZA

Linky

NeníDC9,0 to divné? Linka Sloupec IČO tu ICO1 DC8,0 Uživatel-jméno A15 2x máme Uživatel-příjmení A20

Tento sloupec tu bude 2x

Linky Linka ICO1 ICO Uživatel-jméno Uživatel-příjmení

DECIMAL(9,0) DECIMAL(8,0) DECIMAL(8,0) CHAR(15) CHAR(20)

Organizace ICO DC8,0 Název VA30 Telefon_prefix DC9,0

Slabý entitní typ 1 Notace Crow's Foot Organizace ICO DECIMAL(8,0) Název VARCHAR(30) Telefon_prefix DECIMAL(9,0)

ma-linky FK_LINKY_RELATIONS_ORGANIZA

Linky Linka DC9,0 ICO1 DC8,0 Uživatel-jméno A15 Uživatel-příjmení A20

Linky Linka ICO1 ICO Uživatel-jméno Uživatel-příjmení

DECIMAL(9,0) DECIMAL(8,0) DECIMAL(8,0) CHAR(15) CHAR(20)

Slabý entitní typ 2 Organizace ICO DC8,0 Název VA30 Telefon_prefix DC9,0

ma-linky

Linky Linka DC9,0 ICO1 DC8,0 Uživatel-jméno A15 Uživatel-příjmení A20

Slabý entitní typ 2 Organizace

Organizace Organizace

ICO DC8,0 Název VA30 Telefon_prefix DC9,0

ICO ICO DC8,0 DC8,0 Název VA30 Název VA30 Telefon_prefix DC9,0 Telefon_prefix DC9,0

ma-linky

Linky Linka DC9,0 ICO1 DC8,0 Uživatel-jméno A15 Uživatel-příjmení A20

ma-linky

Linky Linky Linka Linka DC9,0 DC9,0 Uživatel-jméno A15 Uživatel-jméno A15 Uživatel-příjmení A20 Uživatel-příjmení A20

Řídící entitní typSlabý

entitní typ 2

Organizace

Organizace Organizace

ICO DC8,0 Název VA30 Telefon_prefix DC9,0

ICO ICO DC8,0 DC8,0 Název VA30 Název VA30 Telefon_prefix DC9,0 Telefon_prefix DC9,0

ma-linky

ma-linky

Slabý entitní typ

Linky Linka DC9,0 ICO1 DC8,0 Uživatel-jméno A15 Uživatel-příjmení A20 11111111 Nemocnice Motol 224 43 22222222 Honda Motol 234 09

Identifikující vztah (vazba)

Linky Linky Linka Linka DC9,0 DC9,0 Uživatel-jméno A15 Uživatel-jméno A15 Uživatel-příjmení A20 Uživatel-příjmení A20 11111111 11111111 11111111 22222222 22222222

1111 2920 2101 1111 6690

Ústředna Kardiocentrum Novorozenecké oddělení Recepce Prodej nových vozů

Slabý entitní typ 3 Organizace ICO DC8,0 Název VA30 Telefon_prefix DC9,0

ma-linky

Organizace ICO DECIMAL(8,0) Název VARCHAR(30) Telefon_prefix DECIMAL(9,0)

FK_LINKY_MA-LINKY_ORGANIZA

Linky

Linky Linka DC9,0 Uživatel-jméno A15 Uživatel-příjmení A20

ICO Linka Uživatel-jméno Uživatel-příjmení

DECIMAL(8,0) DECIMAL(9,0) CHAR(15) CHAR(20)

Slabý entitní typ 4

Organizace ICO DECIMAL(8,0) Název VARCHAR(30) Telefon_prefix DECIMAL(9,0)

FK_LINKY_MA-LINKY_ORGANIZA

Linky ICO Linka Uživatel-jméno Uživatel-příjmení

DECIMAL(8,0) DECIMAL(9,0) CHAR(15) CHAR(20)

Reflexivní vztah 1

matka ma-matku Osoba Rodne-cislo DC10,0 Jmeno A15 Prijemni A20

dítě

dítě

FK_OSOBA_RELATIONS_OSOBA

Osoba Rodne-cislo Oso_Rodne-cislo Jmeno Prijemni

DECIMAL(10,0) DECIMAL(10,0) CHAR(15) CHAR(20)

matka

Reflexivní vztah 1

matka ma-matku Osoba Rodne-cislo DC10,0 Jmeno A15 Prijemni A20

dítě

Reflexive mandatory reference A reflexive reference exists should not have a mandatory FK_OSOBA_RELATIONS_OSOBA parent which could lead to inconsistent joins. dítě Osoba Rodne-cislo Oso_Rodne-cislo Jmeno Prijemni

DECIMAL(10,0) DECIMAL(10,0) CHAR(15) CHAR(20)

matka

Reflexivní vztah 2

dítě ma-matku Osoba Rodne-cislo DC10,0 Jmeno A15 Prijemni A20

matka

Nepovinná hodnota cizího klíče matka

FK_OSOBA_RELATIONS_OSOBA

Osoba Rodne-cislo Oso_Rodne-cislo Jmeno Prijemni

DECIMAL(10,0) DECIMAL(10,0) CHAR(15) CHAR(20)

dítě

Reflexivní vztah 2

dítě

Nepovinná hodnota cizího klíče ma-matku

Osoba Rodne-cislo DC10,0 Jmeno A15 Prijemni A20

matka

matka

FK_OSOBA_RELATIONS_OSOBA

Osoba Rodne-cislo Oso_Rodne-cislo Jmeno Prijemni

DECIMAL(10,0) DECIMAL(10,0) CHAR(15) CHAR(20)

dítě

Reflexivní vztah 2

dítě ma-matku Osoba Rodne-cislo DC10,0 Jmeno A15 Prijemni A20

matka

matka

FK_OSOBA_RELATIONS_OSOBA

Osoba Rodne-cislo Oso_Rodne-cislo Jmeno Prijemni

DECIMAL(10,0) DECIMAL(10,0) CHAR(15) CHAR(20)

dítě

Referenční integrita 1

Mějme dvě tabulky A a B takové, že tabulka B obsahuje cizí klíč odkazující to tabulky A. V databázi nesmí dojít k tomu, že pro nějaký řádek tabulky B odkazuje jeho hodnota cizího klíče na neexistující řádek tabulky A.

Referenční integrita 2 Strelna_zbran

Osoba Rodne_cislo Jmeno Prijmeni

drzitel

Vyrobni_cislo Vyrobce T yp Popis

Jak může dojít k porušení referenční integrity? a) Zrušíme záznam v tabulce Osoba => cizí klíč příslušného řádku tabulky Zbran bude odkazovat na neexistující řádek tabulky Osoba. b) Změníme hodnotu primárního klíče některého řádku v tabulce Osoba => cizí klíč příslušného řádku tabulky Zbran bude odkazovat na neexistující řádek tabulky Osoba.

Referenční integrita 3 Strelna_zbran

Osoba Rodne_cislo Jmeno Prijmeni

drzitel

Vyrobni_cislo Vyrobce T yp Popis

Referenční integrita 4

Life Enjoy

" Life is not a problem to be solved but a reality to be experienced! "

Get in touch

Social

© Copyright 2013 - 2019 TIXPDF.COM - All rights reserved.