Relační databáze

Download Report

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