Toggle menu
Toggle preferences menu
Toggle personal menu
Neprihlásený/á
Your IP address will be publicly visible if you make any edits.
Verzia z 17:32, 12. január 2025, ktorú vytvoril SKevo (diskusia | príspevky)

Úrovne organizácie údajov v databázach, typy integrity, redundancia a bezstratová dekompozícia.


Úrovne organizácie údajov v databázach

Tieto tri úrovne organizácie údajov vyjadrujú rôzne pohľady na databázu, čo umožňuje oddelenie logického návrhu od fyzickej implementácie:

Interná organizácia údajov

Popisuje, ako sú údaje fyzicky uložené v databázovom systéme. Zameriava sa na efektívnosť a správu ukladania údajov.

Obsahuje:

  • Štruktúry ako indexy, bloky, zoskupenie súborov;
  • Optimalizáciu ukladania dát, aby sa zlepšila výkonnosť;

Napríklad:

  • Dáta sú uložené v binárnom formáte v pamäti alebo na disku;
  • Používanie B-stromov na rýchle vyhľadávanie;

Externá organizácia údajov

Predstavuje spôsob, akým používatelia a aplikácie vidia a pracujú s údajmi. Zameriava sa na zabezpečenie dát a ich zobrazenie pre konkrétne potreby.

Obsahuje:

  • Personalizované formy prístupu k údajom;

Napríklad:

  • Predajca vidí len údaje o zákazníkoch, ku ktorým má prístup, a nie celú databázu;
  • Report o mesačných predajoch je pohľad na komplexnejšie údaje;

Konceptuálna organizácia údajov

Poskytuje logický pohľad na celé dáta a ich vzťahy, nezávisle od fyzického ukladania. Zameriava sa na návrh a logickú konzistenciu databázy.

Obsahuje:

  • Logické štruktúry: tabuľky, vzťahy, obmedzenia;
  • Popis, ako sú dáta navzájom prepojené;

Napríklad:

  • Návrh entitno-relačného diagramu, ktorý ukazuje, že tabuľka zakaznik je prepojená s tabuľkou objednavka;

Typy integrity

Integrita zabezpečuje správnosť, presnosť a spoľahlivosť údajov v databáze. Tu sú jej hlavné typy:

Dátová integrita

Zabezpečuje, že dáta sú presné a konzistentné v rámci celého systému.

Použitie:

  • Zabezpečenie, že telefónne čísla majú správny formát;
  • Hodnota v stĺpci vek nesmie byť záporná;

Relačná integrita

Týka sa konzistencie vzťahov medzi tabuľkami.

Použitie:

  • Každý riadok musí mať jedinečný primárny kľúč;
  • Cudzí kľúč musí odkazovať na existujúci primárny kľúč;

Doménová integrita

Hodnoty v stĺpcoch musia spĺňať stanovené pravidlá.

Použitie:

  • Atribút vek má hodnoty v rozsahu 0 až 120;
  • Atribút email obsahuje iba platné emailové adresy;

Referenčná integrita

Zabezpečuje, že cudzí kľúč v jednej tabuľke správne odkazuje na existujúci záznam v druhej tabuľke.

Použitie:

  • Ak tabuľka objednavka obsahuje cudzí kľúč zakaznik_id, záznam s týmto ID musí existovať v tabuľke zakaznik.

Redundancia a bezstratová dekompozícia

Redundancia

Jedná sa o duplicitné ukladanie rovnakých údajov v databáze.

Nevýhody:

  • Zvýšené nároky na úložisko.
  • Riziko inkonzistencie údajov (zmena jednej hodnoty nemusí byť aplikovaná všade).

Napríklad:

  • Meno zákazníka uložené v tabuľke objednavka aj faktura.

Redundancia sa môže riešiť prostredníctvom normalizácie databázy (rozdelenie tabuľky na viacero menších, čím sa odstráni redundantné ukladanie údajov).

Bezstratová dekompozícia

Proces rozdelenia tabuľky na menšie tabuľky (dekompozícia), bez straty pôvodných údajov (bezstratová).

Podmienky:

  • Rozdelené tabuľky musia byť prepojené kľúčmi (teda, musí existovať primárny a zároveň aj cudzí kľúč);
  • Z pôvodnej tabuľky musia byť údaje presne rekonštruovateľné (teda, v novej tabuľke zahrnieme všetky pôvodné údaje a nič nevynecháme, údaje sa nemôžu len tak stratiť);

Napríklad:

Pôvodná tabuľka zakaznik by vyzerala takto:

zakaznik
zakaznik_id meno mesto
1 Jana Bratislava
2 Peter Košice

Avšak, je pravdepodobné že viacero zákazníkov bude z rovnakého mesta. Časom bude údajov priveľa a databáza bude náročná na údržbu (čo ak chceme podobný atribút zmeniť - museli by sme manuálne zabezpečiť zmenu pre všetkých zákazníkov v tabuľke). Rovnako bude zaberať na disku aj viacej miesta.

Ak chceme na tejto tabuľke zrealizovať dekompozíciu (a teda, odstrániť redundanciu), atribúty v tabuľke musíme vhodne rozdeliť na viacero menších tabuliek:

Tabuľka zakaznik, po dekompozícii:

zakaznik
zakaznik_id meno mesto_id
1 Jana 1
2 Peter 2

Tabuľka mesto:

mesto
mesto_id mesto
1 Bratislava
2 Košice

Výhody:

  • Dekompozícia odstraňuje redundanciu;
  • Zabezpečuje konzistenciu údajov (napríklad: ak zmeníme názov mesta v tabuľke mesta, zmena sa automaticky prejaví pre všetkých zákazníkov);

Nevýhody:

  • Komplikovanejšie dotazy (vyžaduje JOIN operácie, aby sme sa dostali ku konkrétnym údajom);

Zhrnutie

Pojem Definícia
Interná organizácia Fyzické ukladanie dát.
Externá organizácia Užívateľské pohľady na dáta.
Konceptuálna organizácia Logická štruktúra dát.
Dátová integrita Správnosť a presnosť individuálnych údajov.
Relačná integrita Konzistentné vzťahy medzi tabuľkami.
Doménová integrita Hodnoty spĺňajú pravidlá domény.
Referenčná integrita Cudzí kľúč odkazuje na existujúci riadok.
Redundancia Duplicitné ukladanie dát.
Bezstratová dekompozícia Rozdelenie tabuliek bez straty údajov.