DETAIL: Tvorba databází


Databázový systém
= skupina informací, prostředků a technik sloužící k práci s informačními systémy

•Báze dat

-množina vzájemně propojených dat

•Systém řízení báze dat

-programové vybavení, které řídí přístupy k datům

Základní rys: vzájemná nezávislost dat a aplikačních programů


Proces návrhu relační databáze:

  1. Zadání úlohy, sběr požadavků různých uživatelů

  2. Konceptuální schéma (E-R model)

  3. Databázový model (u relačních databází jde o převod do tabulek a jejich vzájemné propojení pomocí relací)

  4. Fyzické schéma (organizace datových struktur, indexování apod.)

Konceptuální schéma

formální popis reálného světa vytvářející model databázového systému

E-R model (Entita-Relace) - popisuje uživatelskou aplikaci na konceptuální úrovni, způsob zápisu konceptuálního modelu, obsahuje typy entit a typy vztahů

E-R model lze znázornit textově nebo graficky.

Textový zápis:

E: Vlastník (RC, Adresa, …)

Parcela (PC, Výměra, …)

R: Vlastní (Vlastník, Parcela)

Grafický zápis: pro entity, vztahy a atributy se používají speciální grafické značky


entity vztahy atributy



Atributy se někdy zapisují přímo k entitě, klíčové atributy se podtrhují.

Ukázka grafického zápisu E-R modelu


Etapy tvorby konceptuálního modelu:

1. nalezení objektů

2. určení vztahů mezi objekty

3. nalezení primárního klíče

4. určení popisných atributů (vlastností) a integritních omezení

Nalezení objektů - terminologie

Entita (objekt) - reálný objekt (lékař, pacient, student, kniha)

abstraktní objekt (diagnóza, objednávka)

Atribut - vyjádření vlastnosti entity (RČ, jméno, adresa)

Doména - obor hodnot daného atributu (text, datum, číslo 1-5)

Instance - konkrétní hodnota objektu, entity, atributu (Novák, zápal plic)

Určení vztahů mezi objekty

Mezi entitami vznikají vazby - vztahy.

Vztahy charakterizuje kardinalita vztahů.

Kardinalita vztahu - číslo, které určuje kolik instancí vstupuje do vztahu

1:1 - každé entitě odpovídá maximálně jedna druhá entita (každý člověk má pouze jedno rodné číslo)

1:N - první entitě odpovídá více než jedna druhá entita, druhé entitě odpovídá maximálně jedna první entita (čtenář si půjčí více knih, ale 1 kniha je čtena 1 čtenářem)

M:N - první entitě odpovídá více než jedna druhá entita, druhé entitě odpovídá více než jedna první entita (učitel vyučuje v několika třídách a ve třídě učí několik učitelů)

Dekompozice M:N vztahu

Vztah M:N se rozkládá na dva jednodušší vztahy 1:N

-->vytvoří se nová entita na pozici původního vztahu a vyjádří se nové vztahy k původním entitám


Př.


Řešení: na pozici vztahu VLASTNÍ se zavede entita VLASTNICTVI a nové vztahy MA a PATRI.

Rozlišujeme 3 typy entit ve vztazích:

nezávislá - instance nemají povinné členství ve vztahu

př. pacient (nezávislý) - návštěva lékaře

existenčně závislá -v závislé neexistuje ani jedna instance, která by nevstoupila do vztahu s nezávislou

př. pacient (nezávislá) - návštěva lékaře (existenčně závislá).

identifikačně závislá- je existenčně závislá a navíc neexistuje žádná možnost jak definovat identifikační klíč s použitím pouze jejích atributů (je třeba použít klíč nezávislého typu)

př. učitel - závěrečná práce

Nalezení primárního klíče

Primární klíč (identifikační klíč)

Atribut v dané entitě, který jí jednoznačně identifikuje (např. rodné číslo)

Cizí klíč (nevlastní klíč)

Atribut v závislé entitě, který je v nezávislé entitě primárním klíčem

Podmínky pro primární klíč (PK):

•hodnota PK musí být jedinečná

•entita může mít pouze 1 PK

•PK může být i složený (z více atriburů)

•každá instance PK musí být definována jako NOT NULL (NULL = označuje chybějící nebo neznámou hodnotu v nějakém poli)

Integritní omezení

Integritní omezení - pravidla, která zajišují korektnost databáze a její soulad s modelovanou realitou.

Typy: Entitní, doménové a referenční.

Entitní - v žádné entitě nesmí existovat duplicitní instance (dva stejné záznamy)

- zajistí se přiřazením primárního klíče

Doménová - podmínky platnosti pro jednotlivé atributy

- hodnoty atributů musí odpovídat definovaným doménám (celé číslo 1-5)

Referenční integrita - omezení vztahu mezi 2 entitami (závislou a nezávislou tabulkou)

- k definování referenční integrity slouží primární klíč nezávislé entity a cizí klíč závislé entity

- hlídá operace INSERT (vložení záznamu), UPDATE (aktualizace záznamu), DELETE (vymazání záznamu)

Př. pacient (nezávislá) - návštěva lékaře (závislá)

Nezávislá entita:

Insert - bez omezení

Update - pouze u instance, které neodpovídá žádná instance v závislé entitě (tzn. nelze měnit identifikační číslo pacienta, pokud máme záznamy o jeho návštěvách v tabulce návštěva)

Delete - jako Update (tzn. nejdříve smazat záznam v závislé tabulce, pak v nezávislé)

Závislá entita

Insert - pouze u instance, které odpovídá instance v nezávislé entitě (př. nelze vložit záznam o návštěvě pacienta pokud nemám pacienta v databázi)

Update - pouze u instance, které odpovídá instance v nezávislé entitě

Delete - bez omezení

Pozn. V Accessu můžeme referenční integritu zmírnit zadáním:

AKTUALIZACE SOUVISEJÍCÍCH POLÍ V KASKÁDĚ - hodnoty v primární tabulce můžeme měnit a ty budou automaticky aktualizovány v podřízené tabulce

ODSTRANĚNÍ SOUVISEJÍCÍCH POLÍ V KASKÁDĚ -

hodnoty v primární tabulce můžeme odstranit a ty budou automaticky odstraněny v podřízené tabulce

Databázový model relační databáze

•Navržena E.F. Coddem (konec 60. Let)

•entity a vztahy se reprezentují pomocí tabulek (tabulce z matematického hlediska odpovídá relace)

•Relace - tabulka s m řádky a n sloupci

•řádek = 1prvek relace (záznam)

•sloupec = atribut (pole)

•n = stupeň relace

•m = kardinalita relace

•Podmínky pro tabulky:

•pořadí sloupců je nevýznamné

•homogenita sloupců - domény mají data stejného typu

•neexistují dva stejné řádky

Převod E-R modelu do relačního databázového modelu

(do jisté míry algoritmická záležitost):

  1. Pro každou entitu definujeme relaci (tabulku)

  2. Provedeme transformaci vztahů:

1 : 1 většinou se převede do jedné tabulky

1 : N přidá se primární klíč nadřízené relace do podřízené

M:N vytvoří se nová relace obsahující primární klíče obou relací

Normální formy (proces normalizace)

- zásady, „kritéria“ dobrého návrhu databázového schématu, tak, aby byly odstraněny některé nepříjemné faktory např. nadbytečnost dat

Správně vytvořené tabulky splňují 4 základní normální formy.

1. normální forma

Všechny atributy jsou atomické, tj. dále již nedělitelné.

Př.

JMÉNO PŘÍJMENÍ BYDLIŠTĚ

jan novák Ostravská 16, Praha 16000

petr nový Svitavská 8, Brno 61400

jan nováček Na bradlech 1147, Ostrava 79002

chyba: - atribut BYDLIŠTĚ není atomický, skládá se z několika částí: ULICE, ČÍSLO, MĚSTO a PSČ

správně:

JMÉNO PŘÍJMENÍ ULICE ČÍSLO MĚSTO PSČ

jan novák Ostravská 16 Praha 16000

petr nový Svitavská 8 Brno 61400

jan nováček Na bradlech 1147 Ostrava 79002

Obecně bychom se měli snažit, aby obsahem jedné databázové položky byla právě jedna hodnota (určitého databázového typu).

2. normální forma

Každý neklíčový atribut nesmí být funkčně závislý na vlastní podmnožině primárního klíče

(to znamená, že se nesmí v řádku tabulky objevit položka, která by byla závislá jen na části primárního klíče)

2NF se týká jenom tabulek, kde volíme za primární klíč více položek než jednu. Jinými slovy, pokud má tabulka jako primární klíč jenom jeden sloupec, pak 2NF je splněna triviálně.

Př.

ČÍSLO JMÉNO PŘÍJMENÍ ČÍS_PRAC NÁZEV_PRAC

1 jan novák 10 studovna

2 petr nový 15 centrála

3 jan nováček 10 studovna

Jaký primární klíč zvolíme v této tabulce? Pokud zvolíme pouze ČÍSLO, je to špatně, nebo zcela určitě název pracoviště, kde zaměstnanec pracuje, není závislý na číslu pracovníka. Takže za primární klíč musíme vzít dvojici (ČÍSLO,ČIS_PRAC). Tím nám ovšem vznikl nový problém. Položky JMÉNO, PŘÍJMENÍ a NÁZEV_PRAC nejsou úplně závislé na dvojici zvoleného primární klíče.

správně:

ČÍSLO JMÉNO PŘÍJMENÍ ČIS_PRAC ČÍSLO NÁZEV

1 jan novák 10 10 studovna

2 petr nový 15 15 centrála

3 jan nováček 10

3. normální forma

Žádný atribut, který není primárním klíčem, není tranzitivně závislý na žádném klíči.

Př.

ČÍSLO JMÉNO PŘÍJMENÍ FUNKCE PLAT

1 jan novák technik 15000

2 petr nový vedoucí 21500

Vysvětlení pojmu tranzitivní závislosti:

atributy JMÉNO, PŘÍJMENÍ a FUNKCE závisí na atributu ČÍSLO (ten by nejspíš byl primárním klíčem), atribut PLAT zřejmě je funkčně závislý na atributu FUNKCE

tedy: ČÍSLO->FUNKCE a FUNKCE->PLAT, dostaneme díky tranzitivitě, že ČÍSLO->PLAT.

správně:

ČÍSLO JMÉNO PŘÍJMENÍ FUNKCE FUNKCE PLAT

1 jan novák technik vedoucí 21500

2 petr nový vedoucí správce 17500

3 jan nováček správce technik 15000

Boyce-Coddova normální forma

Pro dvě množiny atributů A a B platí: A->B a současně B není podmnožinou A, pak množina A obsahuje primární klíč tabulky.

Naivní uživatel

Kvalifikovaný uživatel

Aplikační programátor

Administrátor báze dat

Uživatelé

Aplikační rozhraní

Aplikační

program

Dotazy

Databázová schémata

Systém řízení báze dat

Báze dat

Zpět

 
logo horoskopy
logo humor
logo sms
logo nejhry
logo tri65dni
logo tvp
Seminárky, referáty, skripta, mat. otázky Studijní materiály
Seminárky, referáty, skripta, mat. otázky
    Přihlášení
    Registrace


    Vzhledy:
    Vlastni
    Pondělí 17. 3. 2025 Svátek má Vlastimil
    Vyhrávej v casino.cz nebo na vyherni-automaty.cz   Prodávej s Pla-Mobilem.cz