Transcript Relační databáze
Relační databáze
Konceptuální návrh databáze
Základní komponenty
Entita Atribut Relace Aplikační pravidlo Průniková data
Entita
Entita je osoba, místo, věc událost nebo myšlenka, o níž shromažďujeme nějaká data.
Předměty reálného světa, o nichž sledujeme nějaké údaje a zaznamenáváme je do DB Entita Podstatné jméno Reprezentuje celou třídu Výskyt jednoho zákazníka = instance
Atribut
Je jednotka faktů, která entitu nějakým způsobem charakterizuje nebo popisuje ZÁKAZNÍK Kód zákazníka
JEDNOZNAČNÝ IDENTIFIKÁTOR ENTITY
Firma Kontaktní osoba Adresa Telefon Město Každý atribut by měl být atomický, tedy dál nedělitelný
Relace – kardinalita, povinnost
Popisuje vzájemné vztahy anebo „asociace“ mezi entitami Maximální kardinalita. = 1 nebo více Minimální kardinalita =1 nebo 0 o vztahu přemýšlíme pouze v jednom směru a nakonec opačně
Zákazník / objednávka
1. kolik objednávek může podat jeden zákazník?
2. kolik zákazníků je přiřazeno k 1 objednávce?
TYPY RELACÍ 1:1 = jedna k jedné 1: N = jedna k více M : N = více k více Rekurzivní relace
Relace 1:1
Zákazník / Pohledávky S každým zákazníkem může být spojen nejvýše jeden záznam pohledávek a každý účet pohledávek má přiřazeného nejvýše jednoho zákazníka.( zákazník, který má nezaplacenou pohledávku nemůže provádět další objednávky) Relace je povinná v obou směrech = může být sloučena v jednu entitu
Zaměstnanec / Automobil Firma dává zaměstnancům k dispozici automobil V jednom okamžiku má zaměstnanec žádné nebo jedno auto.
Jedno auto může být přiděleno jednomu, nebo žádnému zaměstnanci Vždy musíme uvažovat jeden okamžik.
Relace 1:N
Zákazník / Objednávka Jeden zákazník má v jednom okamžiku žádnou nebo více objednávek. Každá objednávka musí mít zákazníka. Nesmí existovat objednávka bez zákazníka. Tzn. Povinnost v jednom směru Objednávka Zákazník Na straně 1 bývají relace skoro vždy povinné
Relace M:N
Průniková data = vazební entita = spojovací tabulka Objednávka / Výrobky V jednom okamžiku má objednávka více výrobků, a součastně každý výrobek může být ve více objednávkách.
Objednávka Průniková data Řešení = dvě relace 1:N Výrobek
Rekurzivní relace
Vztah mezi instancemi (výskyty) stejné entity Zaměstnance / Z.nadřízený (manžel) Číslo zaměstnance Příjmení Jméno Funkce Číslo zam. Manžela Číslo zam. nadřízeného 1:N = každý zaměstnanec má 1 nadřízeného 1:1 = zam. má jen jednoho manžela/manželku (v daném okamžiku) M:N = výrobek je složen se součástek, ale sám je součástí dalšího výrobku. (CD-ROM)
Aplikační pravidla
Postup, který organizace přijala za svůj.
Např. přijetí objednávky zákazníka, který už zaplatil za předchozí objednávku.
Tato pravidla aplikujeme v DB pomocí tzv.
omezení
Logický návrh
Proces mapování entit z konceptuálního návrhu do tabulek v logickém návrhu = normalizace. (1entita=1tabulka (většinou)) Data v DB nejsou uložena ve skutečné tabulkové formě
Název tabulky je omezený počtem znaků Obvykle podstatné jméno v množném čísle (entita je pod. jméno v jednotném č.) Bez mezer, složení malých a velkých písmen, podtržítko apod
.
Sloupce a datové typy
Sloupec zobrazuje určitý atribut Nejmenší pojmenovatelná jednotka dat Sloupec je dán názvem a datovým typem DATOVÝ TYP Omezuje množinu povolených dat Uživateli předkládá množinu chování Napomáhá efektivnímu uložení dat
Datový typ MS ACCESS
Znak s pevnou délkou Text Znak s proměnnou délkou Dlouhý text Celočíselný Desítkový číselný Měna Datum/čas Memo Memo Integer, long integer Number Currency Date/time
MS SQL Server
Char Varchar Text
Oracle
char Varchar Long Integer, smallint, tinyint Number Decimal, numeric Money, smallmoney Number Není, používá se number Datetime Date
OMEZENÍ Pravidlo, které definujeme nad tabulkou nebo sloupcem a které omezuje přípustné datové hodnoty PRIMÁRNÍ KLÍČ Jednoznačně identifikuje každý řádek tabulky Složený PK
Referenční omezení = omezení referenční integrity
Zajišťuje konzistenci databáze Platnost relací s využitím tzv. cizích klíčů Zákazníci Objednávky Kód zákazníka 1 firma Kontaktní_osoba funkce adresa město země Cizí klíč z tabulky zákazníci Číslo objednávky ∞ KódZákazníka číslo_ zaměstnance datumobjednavky