Увод у односе са базама података

Појам базе података "релацијски" или "однос" описује начин повезивања података у табелама.

Новинари у свијету база података често имају тешко вријеме да виде разлику између базе података и табеларне таблице. Они виде таблице података и препознају да вам базе података омогућавају да организујете и упишете податке на нове начине, али не схватате значај односа између података који дају релацијској технологији базе података његово име.

Односи вам омогућавају да на моћним начинима опишете везе између различитих табела базе података. Ови односи се онда могу применити да изврше моћне унакрсне табеле, познате као придруживање.

Врсте односа са базама података

Постоје три различита типа односа базе података, свака именована према броју редова стола који могу бити укључени у однос. Свака од ових три типа веза постоји између две табеле.

Односи са самореференцијом: посебан случај

Односи саморегистрације се јављају када постоји само једна табела. Један уобичајени пример је табела Запослени која садржи информације о супервизору сваког запосленог. Сваки супервизор је такође запослен и има свог надређеног. У овом случају постоји један-до-један самореференцијски однос, пошто сваки запослени има једног супервизора, али сваки супервизор може имати више од једног запосленог.

Стварање веза са страним кључевима

Креирате односе између табела одређивањем иностраног кључа. Овај кључ говори релативну базу података о томе како су табеле повезане. У многим случајевима колона у Табели А садржи примарне кључеве на које се реферише из Табеле Б.

Поново размотримо пример табела Учитеља и студената. Табела Теацхерс садржи само ИД, име и колону курса:

Наставници
ИнструцторИД Име наставника Курс
001 Н.Н. лице енглески језик
002 Јане Сцхмое Математика

Табела Студенти садржи колону ИД, име и страни кључ:

Студенти
СтудентИД Име студента Теацхер_ФК
0200 Ловелл Смитх 001
0201 Бриан Схорт 001
0202 Цорки Мендез 002
0203 Моника Јонес 001

Колона Теацхер_ФК у табели Студенти упућује на примарну вриједност инструктора у табели Теацхерс.

Често, дизајнери базе података ће користити име "ПК" или "ФК" у име колоне како би лако идентификовали примарни кључ или стубни кључ.

Имајте на уму да ова два табела илуструју један-према-многи однос између наставника и студената.

Односи и референтни интегритет

Када додате инострани кључ у табелу, онда можете створити ограничење базе података који примјењује референтни интегритет између двије табеле. Ово обезбеђује да односи између табела остају конзистентни. Када једна таблица има инострани кључ у другој табели, концепт референтног интегритета наводи да свака вриједност иностраног кључа у Табели Б мора да се односи на постојећи запис у табели А.

Имплементација односа

У зависности од ваше базе података, имплементирате односе између табела на различите начине. Мицрософт Аццесс обезбеђује чаробњака који вам омогућава једноставно повезивање табела и такође осигуравање референтног интегритета.

Ако пишете СКЛ директно, прво бисте креирали табелу Теацхерс, декларишући колону ИД-а као примарни кључ:

ЦРЕАТЕ ТАБЛЕ Наставници (

ИнструцторИД ИНТ АУТО_ИНЦРЕМЕНТ ПРИМАРИ КЕИ,
Теацхер_Наме ВАРЦХАР (100),
Курс ВАРЦХАР (100)
);

Када креирате табелу Студенти, декларишете колону Теацхер_ФК као страног кључа који упућује на колону ИнструцторИД у табели Наставника:

ЦРЕАТЕ ТАБЛЕ Студенти (
СтудентИД ИНТ АУТО_ИНЦРЕМЕНТ ПРИМАРИ КЕИ,
Студент_Наме ВАРЦХАР (100), Теацхер_ФК ИНТ,
СТРАНИ КЉУЧ (Теацхер_ФК) РЕФЕРЕНЦЕ Учитељи (ИнструцторИД))
);

Коришћење веза за придруживање табела

Једном када сте креирали један или више веза у својој бази података, можете користити своје снаге помоћу СКЛ ЈОИН упита за комбиновање информација из више табела. Најчешћи тип придруживања је СКЛ ИННЕР ЈОИН, или једноставан спој. Овај тип придруживања враћа све записе који испуњавају услове придруживања из више табела. На примјер, ово стање ЈОИН-а врати ће име Студент_Наме, Теацхер_Наме и Цоурсе гдје се инострани кључ у Студентској табели подудара са примарним кључем у табели Теацхерс:

СЕЛЕЦТ Студентс.Студент_Наме, Теацхерс.Теацхер_Наме, Теацхерс.Цоурсе
ФРОМ Студентс
ИННЕР ЈОИН Наставници
ОН Студентс.Теацхер_ФК = Теацхерс.ИнструцторИД;

Ова изјава даје табелу нешто овако:

Враћена табела из СКЛ придружене изјаве

Студент_НамеТеацхер_НамеЦоурсеЛовелл СмитхЈохн ДоеЕнглисхБриан СхортЈохн ДоеЕнглисхЦорки МендезЈане СцхмоеМатхМоница ЈонесЈохн ДоеЕнглисх