Појам базе података "релацијски" или "однос" описује начин повезивања података у табелама.
Новинари у свијету база података често имају тешко вријеме да виде разлику између базе података и табеларне таблице. Они виде таблице података и препознају да вам базе података омогућавају да организујете и упишете податке на нове начине, али не схватате значај односа између података који дају релацијској технологији базе података његово име.
Односи вам омогућавају да на моћним начинима опишете везе између различитих табела базе података. Ови односи се онда могу применити да изврше моћне унакрсне табеле, познате као придруживање.
Врсте односа са базама података
Постоје три различита типа односа базе података, свака именована према броју редова стола који могу бити укључени у однос. Свака од ових три типа веза постоји између две табеле.
- Односи "један на један" се јављају када сваки унос у првој табели има једну, а само једну, другу у другој табели. Односи са појединцима се ријетко користе јер је често ефикасније једноставно ставити све информације у једну табелу. Неки дизајнери базе података искористе овај однос стварањем табела које садрже подскуп података из друге таблице.
- Односи од једног до другог су најчешћи тип односа са базама података. Појављују се када сваки запис у Табели А одговара једном или више записа у Табели Б, али сваки запис у Табели Б одговара само једном запису у Табели А. На пример, однос између Табеле Учитеља и Студентске табеле у основној школи база података би вероватно била један-према-многи однос, јер сваки ученик има само једног наставника, али сваки наставник има више ученика. Овај дизајн од једног до другог помаже у уклањању дуплираних података.
- Многе-до-многе везе се јављају када сваки запис у Табели А одговара једном или више записа у Табели Б, а сваки запис у Табели Б одговара једном или више записа у Табели А. На пример, однос између наставника и курса табела би вероватно била многобројна, јер сваки наставник може упутити више од једног курса, а сваки курс може имати више од једног инструктора.
Односи са самореференцијом: посебан случај
Односи саморегистрације се јављају када постоји само једна табела. Један уобичајени пример је табела Запослени која садржи информације о супервизору сваког запосленог. Сваки супервизор је такође запослен и има свог надређеног. У овом случају постоји један-до-један самореференцијски однос, пошто сваки запослени има једног супервизора, али сваки супервизор може имати више од једног запосленог.
Стварање веза са страним кључевима
Креирате односе између табела одређивањем иностраног кључа. Овај кључ говори релативну базу података о томе како су табеле повезане. У многим случајевима колона у Табели А садржи примарне кључеве на које се реферише из Табеле Б.
Поново размотримо пример табела Учитеља и студената. Табела Теацхерс садржи само ИД, име и колону курса:
ИнструцторИД | Име наставника | Курс |
---|---|---|
001 | Н.Н. лице | енглески језик |
002 | Јане Сцхмое | Математика |
Табела Студенти садржи колону ИД, име и страни кључ:
СтудентИД | Име студента | Теацхер_ФК |
---|---|---|
0200 | Ловелл Смитх | 001 |
0201 | Бриан Схорт | 001 |
0202 | Цорки Мендез | 002 |
0203 | Моника Јонес | 001 |
Колона Теацхер_ФК у табели Студенти упућује на примарну вриједност инструктора у табели Теацхерс.
Често, дизајнери базе података ће користити име "ПК" или "ФК" у име колоне како би лако идентификовали примарни кључ или стубни кључ.
Имајте на уму да ова два табела илуструју један-према-многи однос између наставника и студената.
Односи и референтни интегритет
Када додате инострани кључ у табелу, онда можете створити ограничење базе података који примјењује референтни интегритет између двије табеле. Ово обезбеђује да односи између табела остају конзистентни. Када једна таблица има инострани кључ у другој табели, концепт референтног интегритета наводи да свака вриједност иностраног кључа у Табели Б мора да се односи на постојећи запис у табели А.
Имплементација односа
У зависности од ваше базе података, имплементирате односе између табела на различите начине. Мицрософт Аццесс обезбеђује чаробњака који вам омогућава једноставно повезивање табела и такође осигуравање референтног интегритета.
Ако пишете СКЛ директно, прво бисте креирали табелу Теацхерс, декларишући колону ИД-а као примарни кључ:
ЦРЕАТЕ ТАБЛЕ Наставници (
ИнструцторИД ИНТ АУТО_ИНЦРЕМЕНТ ПРИМАРИ КЕИ,
Теацхер_Наме ВАРЦХАР (100),
Курс ВАРЦХАР (100)
);
Када креирате табелу Студенти, декларишете колону Теацхер_ФК као страног кључа који упућује на колону ИнструцторИД у табели Наставника:
ЦРЕАТЕ ТАБЛЕ Студенти (
СтудентИД ИНТ АУТО_ИНЦРЕМЕНТ ПРИМАРИ КЕИ,
Студент_Наме ВАРЦХАР (100), Теацхер_ФК ИНТ,
СТРАНИ КЉУЧ (Теацхер_ФК) РЕФЕРЕНЦЕ Учитељи (ИнструцторИД))
);
Коришћење веза за придруживање табела
Једном када сте креирали један или више веза у својој бази података, можете користити своје снаге помоћу СКЛ ЈОИН упита за комбиновање информација из више табела. Најчешћи тип придруживања је СКЛ ИННЕР ЈОИН, или једноставан спој. Овај тип придруживања враћа све записе који испуњавају услове придруживања из више табела. На примјер, ово стање ЈОИН-а врати ће име Студент_Наме, Теацхер_Наме и Цоурсе гдје се инострани кључ у Студентској табели подудара са примарним кључем у табели Теацхерс:
СЕЛЕЦТ Студентс.Студент_Наме, Теацхерс.Теацхер_Наме, Теацхерс.Цоурсе
ФРОМ Студентс
ИННЕР ЈОИН Наставници
ОН Студентс.Теацхер_ФК = Теацхерс.ИнструцторИД;
Ова изјава даје табелу нешто овако:
Враћена табела из СКЛ придружене изјаве
Студент_НамеТеацхер_НамеЦоурсеЛовелл СмитхЈохн ДоеЕнглисхБриан СхортЈохн ДоеЕнглисхЦорки МендезЈане СцхмоеМатхМоница ЈонесЈохн ДоеЕнглисх