Konceptuální návrh 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 Podstatné jméno Reprezentuje celou třídu Výskyt jednoho zákazníka = instance Entita
Atribut Je jednotka faktů, která entitu nějakým způsobem charakterizuje nebo popisuje ZÁKAZNÍK JEDNOZNAČNÝ IDENTIFIKÁTOR ENTITY Kód zákazníka 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 Objednávka / Výrobky 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. Řešení = dvě relace 1:N Průniková data Výrobek Objednávka
Rekurzivní relace Vztah mezi instancemi (výskyty) stejné entity Zaměstnance / Z.nadřízený (manžel) 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) Číslo zaměstnance Příjmení Jméno Funkce Číslo zam. Manžela Číslo zam. nadřízeného
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 MS SQL Server Oracle Znak s pevnou délkou Text Char char Znak s proměnnou délkou Memo Varchar Dlouhý text Long Celočíselný Integer, long integer Integer, smallint, tinyint Number Desítkový číselný Decimal, numeric Měna Currency Money, smallmoney Není, používá se number Datum/čas Date/time 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 1 Kód zákazníka Číslo objednávky firma Kontaktní_osoba funkce adresa město země ∞ KódZákazníka číslo_ zaměstnance datumobjednavky Cizí klíč z tabulky zákazníci