Gagnasambönd eru burðarás allra samskipta gagnagrunna
Samband er komið á milli tveggja gagnagrunnatafla þegar eitt borð hefur erlendan lykil sem vísar til aðallykils annars töflu. Þetta er grundvallar hugmyndin á bak við hugtökin.
Hvernig er utanaðkomandi lykill að koma á sambandi
Skulum fara yfir grunnatriði aðal- og erlendra lykla. Aðal lykill auðkennir sérhverja færslu í töflunni. Það er tegund af frambjóðandi lykill sem er yfirleitt fyrsta dálkur í töflu og getur sjálfkrafa myndast af gagnagrunninum til að tryggja að það sé einstakt.
Erlent lykill er annar umsagnarlykill (ekki aðal lykillinn) sem notaður er til að tengja skrá við gögn í öðru töflu.
Tökum dæmi um þessar tvær töflur sem auðkenna hver kennari kennir hvaða námskeiði.
Hér er aðal lykillinn að námskeiðinu Course_ID. Erlent lykillinn er kennari_ID:
| Course_ID | Course_Name | Kennari_ID |
|---|---|---|
| Course_001 | Líffræði | Kennari_001 |
| Course_002 | Stærðfræði | Kennari_001 |
| Course_003 | Enska | Kennari_003 |
Þú getur séð að erlent lykill í námskeiðum passar við aðal lykil í kennara:
| Kennari_ID | Kennari_Name |
|---|---|
| Kennari_001 | Carmen |
| Kennari_002 | Veronica |
| Kennari_003 | Jorge |
Við getum sagt að kennari_ID erlent lykill hefur hjálpað til við að koma á tengslum milli námskeiðanna og kennara.
Tegundir gagnasamskipta
Notkun erlenda lykla eða aðra lykla frambjóðenda, þú getur framkvæmt þrjár gerðir af samböndum milli tafla:
Einn til einn : Þessi samskiptatækni leyfir aðeins einu meti á hvorri hlið tengslanna.
Aðal lykillinn fjallar aðeins um eina skrá - eða enginn - í öðru borði. Til dæmis, í hjónabandi, hefur hver maki aðeins einn annan maka. Þessi tegund af sambandi er hægt að framkvæma í einni töflu og notar því ekki erlendan lykil.
Eitt til margra : Eitt til mörg tengsl leyfa einum upptöku í einu borði að tengjast mörgum skrám í öðru töflu.
Íhuga fyrirtæki með gagnagrunni sem hefur viðskiptavini og pöntunarborð.
Einstaklingur getur keypt margar pantanir, en einn röð gæti ekki verið tengd við marga viðskiptavini. Þess vegna ætti pöntunarborðið að innihalda erlendan lykil sem samsvarar aðallykil viðskiptavinarborðs en á viðskiptavinatöflunni er engin erlend lykill sem vísar til pöntunarborðsins.
Margir til margir : Þetta er flókið samband þar sem margar færslur í töflu geta tengst mörgum skrám í öðru töflu. Til dæmis, fyrirtæki okkar þurfa sennilega ekki aðeins viðskiptavini og pantanir borð, en líklega þarf einnig vöruborð.
Aftur á móti er sambandið milli viðskiptavina og pöntunarborðs einn til margir, en íhuga samhengið milli pöntunar og vöruborðsins. Tilboð getur innihaldið margar vörur og vara gæti verið tengd við margar pantanir: nokkrir viðskiptavinir gætu sent inn pöntun sem inniheldur nokkrar af sömu vörum. Slík samskipti þurfa að minnsta kosti þrjá borðum.
Hvað eru gagnasamskiptin mikilvæg?
Að koma á sambærilegum tengslum milli töflna gagnabanka hjálpar til við að tryggja gagnsæi, sem stuðlar að stöðluðum gagnagrunni. Til dæmis, hvað ef við tengdum ekki neinar töflur í gegnum erlenda takka og í staðinn sameinuðum bara gögnin í námskeiðum og kennara töflum eins og svo:
| Kennari_ID | Kennari_Name | Námskeið |
|---|---|---|
| Kennari_001 | Carmen | Líffræði, stærðfræði |
| Kennari_002 | Veronica | Stærðfræði |
| Kennari_003 | Jorge | Enska |
Þessi hönnun er ósveigjanleg og brýtur í bága við fyrstu meginregluna um eðlilegan gagnagrunn, fyrsta eðlilegu formi (1NF), þar sem segir að hver taflafasi ætti að innihalda eitt, einstaklingsbundið skjal af gögnum.
Eða kannski ákváðum við að einfaldlega bæta við öðru met fyrir Carmen, til að framfylgja 1NF:
| Kennari_ID | Kennari_Name | Námskeið |
|---|---|---|
| Kennari_001 | Carmen | Líffræði |
| Kennari_001 | Carmen | Stærðfræði |
| Kennari_002 | Veronica | Stærðfræði |
| Kennari_003 | Jorge | Enska |
Þetta er ennþá veik hönnun, kynna óþarfa tvíverknað og hvað er kallað galla frá gögnum , sem þýðir bara að það gæti stuðlað að ósamræmi gögn.
Til dæmis, ef kennari hefur margar færslur, hvað gerist ef einhver gögn verða að breyta, en sá sem framkvæma gagnabreytinguna átta sig ekki á að margar færslur séu til? Taflan myndi þá innihalda mismunandi gögn fyrir sama einstakling, án þess að vera skýr leið til að bera kennsl á það eða forðast það.
Að brjóta þetta borð í tvo töflur, kennara og námskeið (eins og sýnt er hér að framan) skapar rétta tengslin milli gagna og hjálpar þannig að tryggja samkvæmni og nákvæmni gagnanna.