110 likes | 263 Views
Spájanie dát pomocou kľúčov. Vypracoval: Ing. Michal COPKO. Export cudzích kľúčov. Cudzí kľúč (FK) vznikne prenosom primárneho kľúča (PK) z tzv. hlavnej (master) tabuľky do vedľajšej tabuľky (detail), kde sa tento atribút stane FK Tento presun sa zvykne označovať pojmom export cudzích kľúčov.
E N D
Spájanie dát pomocou kľúčov Vypracoval: Ing. Michal COPKO
Export cudzích kľúčov • Cudzí kľúč (FK) vznikne prenosom primárneho kľúča (PK) z tzv. hlavnej (master) tabuľky do vedľajšej tabuľky (detail), kde sa tento atribút stane FK • Tento presun sa zvykne označovať pojmom export cudzích kľúčov
Smer exportu FK (1:n) • Na vzťahy medzi tabuľkami sa môžeme pozrieť z pohľadu oboch tabuliek • Napr. tabuľky trieda a žiaci: • Koľkí žiaci môžu byť v jednej triede? • Jeden alebo viacero (1,n) • Jeden žiak patrí do koľkých tried? • Práve do jednej (1,1)
Smer exportu FK (1:n) • V tomto prípade je smer exportu cudzieho kľúča od tabuľky s násobnosťou (1,1) alebo (0,1) k tabuľke s násobnosťou (1,n) • Teda z predchádzajúceho príkladu bola tabuľka s násobnosťou (1,1) tabuľka trieda a tabuľka s násobnosťou (1,n) je tabuľka s názvom žiaci • Teda PK z tabuľky trieda (napr. id_trieda) presunieme do tabuľky žiaci kde vytvoríme stĺpec id_trieda ako FK
Príklad exportu Ako vytvoríme vzťah medzi žiakom a triedou?
Smer exportu FK (1:1) • Aj na tieto vzťahy medzi tabuľkami sa môžeme pozrieť z pohľadu oboch tabuliek • Napr. tabuľky trieda a učiteľ: • Koľko triednych učiteľov má trieda? • Práve jedného (1,1) • Koľkým triedam môže byť jeden učiteľ triednym učiteľom? • Žiadnej alebo jednej (0,1)
Smer exportu FK (1:1) • V tomto prípade je smer exportu cudzieho kľúča od tabuľky s násobnosťou práve jedna (1,1) k tabuľke s násobnosťou 0 alebo 1 (0,1) • Teda z predchádzajúceho príkladu bola tabuľka s násobnosťou (0,1) tabuľka trieda a tabuľka s násobnosťou (1,1) je tabuľka s názvom učiteľ • Teda PK z tabuľky učiteľ (napr. id_ucitel) presunieme do tabuľky trieda kde vytvoríme stĺpec id_ucitel ako FK
Príklad exportu Ako vytvoríme vzťah medzi učiteľom a triedou? Vždy teda vytvárame stĺpec s cudzím kľúčom v tej tabuľke, kde budú vyplnené všetky cudzie kľúče. Ak by sme v tomto prípade vložili stĺpec s FK do tabuľky učiteľ, niektoré polia by ostali prázdne, pretože nie každý učiteľ je triedny učiteľ.
Smer exportu FK (m:n) • Aj na tieto vzťahy medzi tabuľkami sa môžeme pozrieť z pohľadu oboch tabuliek • Napr. tabuľky predmet a učiteľ: • Koľko predmetov učí jeden učiteľ? • 1 alebo viac (1,n) • Koľko učiteľov učí jeden predmet? • 1 alebo viac (1,n)
Smer exportu FK (m:n) • V tomto prípade vytvoríme novú tabuľku, ktorá väčšinou obsahuje len cudzie kľúče • Teda PK z tabuľky učiteľ (napr. id_ucitel) presunieme do tabuľky ucitel_predmet a rovnako PK z tabuľky predmet (napr. id_predmet) presunieme do tabuľky ucitel_predmet kde budú tieto stĺpce ako FK
Príklad exportu Ako vytvoríme vzťah medzi učiteľom a predmetom?