Súčasti konceptuálneho návrhu databázy

Relácie typu jedna k jednej (1:1)

Relácia typu jedna k jednej je taký vzťah medzi dátami, kedy inštanciu jednej entiny môžeme priradiť k najviac jednej inštancii druhej entiny a naopak. Na obrázku 2.1 je príkladom takejto relácie vzťah medzi entinami ZákazníkPohľadávky odberateľov. To znamená, že s každým zákazníkom môže byť spojený najviac jeden záznam pohľadávok a každý účet pohľadávky má priradeného najviac jedného zákazníka. Relácia je na viac v obidvoch smeroch povinná, tak že zákazník musí mať súčasne aspoň jeden záznam pohľadávky a naopak každý pohľadávkový účet musí mať aspoň jedného zákazníka. Dohromady potom túto reláciu medzi entinami ZákazníkPohľadávky odberateľov môžeme čítať: „S každým zákazníkom je spojený jeden a práve jeden záznam pohľadávky a ku každému záznamu pohľadávky je priradený jeden a práve jeden zákazník“.

Obrázok: Relácia medzi Zákazníkmi a Pohľadávkami

Relácie typu jedna k jednej sú medzi entinami veľmi ojedinelé (a tým aj vzácne). V praxi totiž takáto relácia, ktorá je typu 1:1 a na viac je v obidvoch smeroch povinná znamená jasnú chybu – obidve entiny môžeme ľahko zlúčiť do jednej. Nakoniec predsa, nie je účet pohľadávky obyčajným špeciálnym prípadom informácie o zákazníkovi? My predsa nebudeme zhromažďovať dáta o všetkých možných pohľadávkach, ale v rámci informácií entiny Pohľadávky odberateľov zisťujeme iba dáta o zákazníkovi. Na druhej strane, pokiaľ by sme si zakúpili administratívny softvér od nejakého nezávislého výrobcu, bola by v ňom určite preddefinovaná nejaká podporovaná databáza, tak že by sme už nemali na výber a entinu Pohľadávok by sme museli nechať tak, ako je. Návrh databázy od výrobcu asi len tak ľahko nezmeníme a na druhej strane jeho softvér “neprinútime” k rozpoznaniu ďalších informácií uložených v našej vlastnej databáze.    

Na obrázku 2.2 vidíme inú verziu relácie typu 1:1 a síce takú reláciu, ktorá je v obidvoch smeroch voliteľná, čiže nepovinná (dá sa taktiež povedať aj podmienená).

Obrázok 2.2: Relácia medzi zamestnancami a automobilmi

Dajme tomu, že navrhujeme databázu pre spoločnosť zameranú na predaj automobilov. Táto obchodná firma dáva (niektorým) zamestnancom k dispozícii služobné auto, ale vždy na istú obmedzenú dobu. Je jasné, že takto nebudú zamestnancom rozdeľovať všetky autá (inak by im nezostalo žiadne v predajni na predaj). Reláciu medzi entinami Zamestnancov a Automobilov tak môžeme prečítať: “ V ľubovoľnom okamžiku môže mať každý jeden zamestnanec pridelené žiadne alebo jedno auto a každý jeden automobil môže byť pridelený žiadnemu alebo jednému zamestnancovi.” Všimnime si tu podmienku “v ľubovoľnom okamžiku”: aj keď automobil jednému zamestnancovi odoberieme a pridelíme ho inému, bude relácia 1:1 zachovaná. To preto, že pri analýze relácií berieme do úvahy vždy momentálny pohľad na dáta získaný v jednom konkrétnom okamžiku.