logo

Relační model v DBMS

E.F. Codd navrhl relační model pro modelování dat ve formě relací nebo tabulek. Po navržení koncepčního modelu databáze pomocí ER diagram , potřebujeme převést konceptuální model na relační model, který lze implementovat pomocí libovolného RDBMS jazyk jako Oracle SQL, MySQL atd. Uvidíme tedy, co je to Relační model.

Relační model používá kolekci tabulek k reprezentaci dat i vztahů mezi těmito daty. Každá tabulka má více sloupců a každý sloupec má jedinečný název. Tabulky jsou také známé jako vztahy. Relační model je příkladem modelu založeného na záznamech. Modely založené na záznamech jsou tak pojmenovány, protože databáze je strukturována do záznamů v pevném formátu několika typů. Každá tabulka obsahuje záznamy určitého typu. Každý typ záznamu definuje pevný počet polí nebo atributů. Sloupce tabulky odpovídají atributům typu záznamu. Relační datový model je nejpoužívanějším datovým modelem a naprostá většina současných databázových systémů je založena na relačním modelu.



Co je relační model?

Relační model představuje způsob ukládání dat v relačních databázích. Relační databáze se skládá z kolekce tabulek, z nichž každá má přiřazen jedinečný název. Zvažte vztah STUDENT s atributy ROLL_NO, NAME, ADDRESS, PHONE a AGE uvedenými v tabulce.

Stolní student

ROLL_NO NÁZEV ADRESA TELEFON STÁŘÍ
1 RAM DILLÍ 9455123451 18
2 RAMESH GURGAON 9652431543 18
3 SUJIT ROHTAK 9156253131 dvacet
4 SURESH DILLÍ 18



java stacky

Důležité terminologie

  • Atribut: Atributy jsou vlastnosti, které definují entitu. např.; ROLL_NO , JMÉNO, ADRESA
  • Schéma vztahu: Relační schéma definuje strukturu relace a představuje název relace s jeho atributy. např.; STUDENT (ROLL_NO, NAME, ADDRESS, PHONE a AGE) je relační schéma pro STUDENT. Pokud má schéma více než 1 vztah, nazývá se relační schéma.
  • Tuple: Každý řádek ve vztahu je znám jako n-tice. Výše uvedený vztah obsahuje 4 n-tice, z nichž jedna je zobrazena jako:
1 RAM DILLÍ 9455123451 18
  • Instance vztahu: Množina n-tic vztahu v určité instanci času se nazývá instance vztahu. Tabulka 1 ukazuje instanci vztahu STUDENT v konkrétním čase. Může se změnit, kdykoli dojde k vložení, odstranění nebo aktualizaci databáze.
  • Stupeň: Počet atributů ve vztahu je znám jako stupeň vztahu. The STUDENT výše definovaný vztah má stupeň 5.
  • Kardinalita: Počet n-tic ve vztahu je známý jako mohutnost . The STUDENT výše definovaný vztah má mohutnost 4.
  • Sloupec: Sloupec představuje sadu hodnot pro konkrétní atribut. Sloupec ROLL_NO je extrahováno ze vztahu STUDENT.
ROLL_NO

1

2

3



4

  • Hodnoty NULL: Hodnota, která není známá nebo není k dispozici, se nazývá hodnota NULL. Je reprezentován prázdným prostorem. např.; PHONE STUDENT s ROLL_NO 4 je NULL.
  • Klíč vztahu: Jedná se v podstatě o klíče, které se používají k jednoznačné identifikaci řádků nebo také pomáhají při identifikaci tabulek. Jedná se o následující typy.
    • Primární klíč
    • Klíč kandidáta
    • Super klíč
    • Cizí klíč
    • Alternativní klíč
    • Složený klíč

Omezení v relačním modelu

Při navrhování relačního modelu definujeme některé podmínky, které musí platit pro data přítomná v databázi, se nazývají omezení. Tato omezení jsou kontrolována před provedením jakékoli operace (vložení, odstranění a aktualizace) v databázi. Pokud dojde k porušení některého z omezení, operace se nezdaří.

Omezení domény

Toto jsou omezení na úrovni atributů. Atribut může nabývat pouze hodnot, které leží v rozsahu domén. např.; Pokud se na vztah STUDENT použije omezení AGE>0, vložení záporné hodnoty AGE bude mít za následek selhání.

Integrita klíče

Každá relace v databázi by měla mít alespoň jednu sadu atributů, které jednoznačně definují n-tici. Tato sada atributů se nazývá klíče. např.; Klíčem je ROLL_NO ve STUDENT. Žádní dva studenti nemohou mít stejné číslo. Klíč má tedy dvě vlastnosti:

stažení javascriptu
  • Měl by být jedinečný pro všechny n-tice.
  • Nemůže mít hodnoty NULL.

Referenční integrita

Když jeden atribut relace může nabývat hodnot pouze z jiného atributu stejného vztahu nebo jakéhokoli jiného vztahu, je volán referenční integrita . Předpokládejme, že máme 2 vztahy

Stolní student

ROLL_NO NÁZEV ADRESA TELEFON STÁŘÍ BRANCH_CODE
1 RAM DILLÍ 9455123451 18 CS
2 RAMESH GURGAON 9652431543 18 CS
3 SUJIT ROHTAK 9156253131 dvacet ECE
4 SURESH DILLÍ 18 TO

Stolní větev

BRANCH_CODE JMÉNO POBOČKY
CS POČÍTAČOVÁ VĚDA
TO INFORMAČNÍ TECHNOLOGIE
ECE ELEKTRONIKA A KOMUNIKAČNÍ INŽENÝRSTVÍ
životopis STAVEBNÍ INŽENÝRSTVÍ

BRANCH_CODE ze STUDENT může nabývat pouze hodnot, které jsou přítomné v BRANCH_CODE z BRANCH, což se nazývá omezení referenční integrity. Relace, která odkazuje na jinou relaci, se nazývá REFERENČNÍ VZTAH (v tomto případě ŽÁK) a relace, na kterou odkazují ostatní vztahy, se nazývá ODKAZOVANÝ VZTAH (v tomto případě VĚTVÍ).

nahradit barvu v gimpu

Anomálie v relačním modelu

An anomálie je nepravidelnost nebo něco, co se odchyluje od očekávaného nebo normálního stavu. Při navrhování databází identifikujeme tři typy anomálií: Vložit, Aktualizovat a Smazat.

Anomálie vkládání ve vztahu odkazování

Nemůžeme vložit řádek do REFERENCING RELATION, pokud hodnota odkazujícího atributu není přítomna v odkazované hodnotě atributu. např.; Vložení studenta s BRANCH_CODE ‚ME‘ do vztahu STUDENT bude mít za následek chybu, protože ‚ME‘ není přítomen v BRANCH_CODE pobočky BRANCH.

Anomálie mazání/aktualizace v odkazovaném vztahu:

Nemůžeme odstranit ani aktualizovat řádek z REFERENCED RELATION, pokud je v hodnotě REFERENCING ATTRIBUTE použita hodnota REFERENCED ATTRIBUTE. např; pokud se pokusíme smazat n-tici z BRANCH s BRANCH_CODE 'CS', bude to mít za následek chybu, protože 'CS' odkazuje BRANCH_CODE studenta STUDENT, ale pokud se pokusíme smazat řádek z BRANCH s BRANCH_CODE CV, bude smazán protože hodnota není použita odkazujícím vztahem. Lze to zvládnout následujícím způsobem:

Na Odstranit kaskádu

Odstraní n-tice z REFERENCING RELATION, pokud je hodnota použitá v REFERENCING ATTRIBUTE odstraněna z REFERENCED RELATION. např.; Pokud odstraníme řádek z BRANCH s BRANCH_CODE ‚CS‘, budou odstraněny řádky ve vztahu STUDENT s BRANCH_CODE CS (v tomto případě ROLL_NO 1 a 2).

Při aktualizaci kaskády

Aktualizuje REFERENCING ATTRIBUTE v REFERENCING RELATION, pokud je hodnota atributu používaná REFERENCING ATTRIBUTE aktualizována v REFERENCED RELATION. např.; pokud aktualizujeme řádek z BRANCH s BRANCH_CODE ‚CS‘ na ‚CSE‘, budou řádky ve vztahu STUDENT s BRANCH_CODE CS (v tomto případě ROLL_NO 1 a 2) aktualizovány pomocí BRANCH_CODE ‚CSE‘.

Super klíče

Jakákoli sada atributů, která nám umožňuje identifikovat jedinečné řádky (n-tice) v daném vztahu, se nazývá super klíče. Z těchto super klíčů můžeme vždy vybrat správnou podmnožinu, kterou lze použít jako primární klíč. Takové klíče jsou známé jako kandidátské klíče. Pokud existuje kombinace dvou nebo více atributů, které se používají jako primární klíč, nazýváme ji složený klíč.

Coddova pravidla v relačním modelu

Edgar F Codd navrhl model relační databáze, kde uvedl pravidla. Nyní jsou tato pravidla známá jako Coddova pravidla. Aby byla jakákoli databáze dokonalá, musí dodržovat pravidla.

java boolean

Více viz Coddova pravidla v relačním modelu .

Výhody relačního modelu

  • Jednoduchý model: Relační model je ve srovnání s jinými jazyky jednoduchý a snadno použitelný.
  • Flexibilní: Relační model je flexibilnější než jakýkoli jiný existující relační model.
  • Zajistit: Relační model je bezpečnější než jakýkoli jiný relační model.
  • Přesnost dat: Data jsou přesnější v relačním datovém modelu.
  • Integrita dat: Integrita dat je zachována v relačním modelu.
  • Operace lze snadno použít: Je lepší provádět operace v relačním modelu.

Nevýhody relačního modelu

  • Model relační databáze není příliš dobrý pro velké databáze.
  • Někdy je obtížné najít vztah mezi tabulkami.
  • Kvůli složité struktuře je doba odezvy na dotazy vysoká.

Charakteristika relačního modelu

  • Data jsou reprezentována v řádcích a sloupcích nazývaných vztahy.
  • Data jsou uložena v tabulkách, které mají mezi sebou vztahy nazývané relační model.
  • Relační model podporuje operace, jako je definice dat, manipulace s daty a správa transakcí.
  • Každý sloupec má odlišný název a představuje atributy.
  • Každý řádek představuje jednu entitu.