602SQL-┌plnß dokumentace Index   Tisk  

RelaΦn∞ propojenΘ tabulky

TΘm∞° ka₧dß netrivißlnφ databßzovß aplikace pracuje s vφce tabulkami, kterΘ jsou v urΦitΘm vzßjemnΘm vztahu. 602SQL vztahy mezi tabulkami °eÜφ dv∞ma zp∙soby: propojenφm relaΦnφm a propojenφm ukazatelov²m. Zatφmco propojovßnφ dat pomocφ ukazatel∙ obvykle p°inßÜφ rychlejÜφ v²sledky v jednoduch²ch aplikacφch, relaΦnφmu propojenφ dßme p°ednost ve slo₧it∞jÜφch p°φpadech.

V dalÜφm budeme p°edpoklßdat, ₧e relace mezi tabulkami jsou ji₧ definovßny a pojmenovßny v aplikaci. Na jmΘna relacφ se budete odvolßvat v akcφch otevφrajφcφch relaΦnφ formulß°e.

JakΘ vztahy rozliÜujeme

Uva₧ujme dv∞ tabulky TA a TB, jejich₧ zßznamy chceme propojovat. V prvnφ °ad∞ je nutno rozliÜit druh vazby mezi jejich zßznamy. M∙₧e nastat jeden ze t°φ p°φpad∙:

Vztah 1:1: Ka₧dΘmu zßznamu v tabulce TA odpovφdß prßv∞ jeden zßznam v tabulce TB a naopak.

Vztah 1:N: Ka₧dΘmu zßznamu v tabulce TA odpovφdß mno₧ina zßznam∙ z tabulky TB, ale ka₧d² zßznam z tabulky TB p°φsluÜφ k nejv²Üe jednomu zßznamu z tabulky TA (v "siln∞jÜφ" variant∞ ka₧d² zßznam z tabulky TB p°φsluÜφ k prßv∞ jednomu zßznamu z tabulky TA, v tabulce TB tedy nejsou zßznamy, kterΘ by nepat°ily k ₧ßdnΘmu zßznamu z TA).

Vztah M:N: Ka₧dΘmu zßznamu v tabulce TA odpovφdß mno₧ina zßznam∙ z tabulky TB a naopak ka₧dΘmu zßznamu v tabulce TB odpovφdß mno₧ina zßznam∙ z tabulky TA.

Vztahem 1:1 se nebudeme podrobn∞ji zab²vat. Tabulky TA a TB lze toti₧ spojit do jednΘ tabulky, bu∩ fyzicky anebo pomocφ SQL. Pokud by platilo, ₧e ka₧dΘmu zßznamu v tabulce TA odpovφdß nejv²Üe jeden zßznam v tabulce TB, pak jde o specißlnφ p°φpad vztahu 1:N a lze s nφm takto pracovat.

V ostatnφch p°φpadech p°epoklßdejme, ₧e pro vyjßd°enφ vztahu mezi zßznamy slou₧φ sloupec A v tabulce TA a sloupec B v tabulce TB. Obecn∞ v relaci m∙₧e b²t definovßno vφce dvojic sloupc∙, ale na podstatn∞ v∞ci to nic nem∞nφ.

Pozor: Pro efektivnφ prßci s relaΦn∞ propojen²mi zßznamy je t°eba, aby v tabulce TA byl index ke sloupci A a v tabulce TB index ke sloupci B.

Seznam subsekcφ: