Súčasti logického a fyzického návrhu databázy

Prienikové tabuľky

Relačný databázový systém nedokáže typ relácie viaceré k viacerým implementovať priamo, ale ju musíme definovať pomocou ďalšej, prostrednej tabuľky, ktorú nazývame prieniková tabuľka (väzbová entina). Na nasledujúcom obrázku 2.10 je znázornená prieniková tabuľka Rozpis objednávok implementovaná v MS Access.

Obrázok: Prieniková tabuľka Rozpis objednávok MS Access

Z relácie typu M:N medzi objednávkami a výrobkami v konceptuálnom návrhu sme tak v logickom návrhu vytvorili prienikovú tabuľku Rozpis objednávok. Vlastnú reláciu tak implementujeme prostredníctvom dvoch relácií typu 1:N, pričom na strane „N“ sa v obidvoch prípadoch vyskytuje práve prieniková tabuľka. Primárny kľúč tabuľky Rozpis objednávok tvorí kombináciu stĺpcov Číslo objednávkyČíslo výrobku, pričom Číslo objednávky je cudzím kľúčom prevzatým z tabuľky ObjednávkyČíslo Výrobku ako cudzí kľúč pochádza z tabuľky Výrobky. Teraz sa na obsah prienikovej tabuľky a na obidve referenčné obmedzenia pozrieme trochu z blízka. Môžeme povedať, že:  

  • Každý riadok v prienikovej tabuľke Rozpis objednávok je priradený kombinácii jedného výrobku a jednej objednávky. Do tejto tabuľky rozhodne nemá zmysel zapisovať Názov výrobku, pretože tento názov by sa pri každej jednotlivej objednávke musel opakovať. Rovnako tak nemá zmysel ukladať do tabuľky Kód Zákazníka, pretože všetky riadky z rozpisu jednej objednávky patria vždy rovnakému zákazníkovi.
  • Ku každému riadku tabuľky Výrobky môže byť priradené ľubovoľné množstvo riadkov v tabuľke Rozpis objednávok, ale jeden riadok tabuľky Rozpis objednávok prináleží vždy iba k jednému riadku tabuľky Výrobky.
  • S každým riadkom tabuľky Objednávky môže byť zviazané ľubovoľné množstvo riadkov tabuľky Rozpis objednávok, ale jeden riadok tabuľky Rozpis objednávok prináleží vždy iba k jednému riadku tabuľky Objednávky.