Еден од најважните концепти во бази на податоци е создавање на врски помеѓу табелата на бази на податоци. Овие врски обезбедуваат механизам за поврзување на податоци зачувани во повеќе табели и нивно добивање на ефикасен начин. За да креирате врската помеѓу две табели, мора да наведете странски клуч во една табела што референцира колона во друга табела.
Табели и врски на бази на податоци
Веќе можеби знаете дека бази на податоци се едноставно серија на табели , слични на она што веќе го користите во табеларна програма , како што е Microsoft Excel. Всушност, дури можете да конвертирате табеларна табела на Excel во база на податоци. Каде што базите на податоци се разликуваат од табеларни пресметки, сепак, е кога станува збор за градење на моќни односи меѓу табелите.
Размислете, на пример, за базата на податоци што компанијата ја користи за следење на информациите за човечки ресурси. Таа база на податоци може да има табела наречена Вработени која ги содржи следните информации за секој член на персоналот на компанијата:
- ИД на вработените
- Име
- Презиме
- OfficePhone
- Домашен телефон
- PositionID
Во овој пример, ID на вработениот е единствено генериран цел број кој е доделен на секој вработен кога тие се додадени во базата на податоци. ID на позицијата е код за работа кој се користи за упатување на позицијата на вработениот во компанијата. Во оваа шема, работникот може да има само една позиција, но повеќе (или не) вработени може да ја пополнат секоја позиција. На пример, може да имате стотици вработени со позиција "Касиерка".
Базата на податоци може исто така да содржи табела наречена Позиции со следните дополнителни информации за секоја позиција:
- PositionID
- Наслов
- JobLevel
- SkillCategory
- Локација
Полето Position ID во оваа табела е слично на полето Employee ID во табелата "Вработени" - тоа е единствено генериран цел број кој се креира кога позицијата се додава во базата на податоци.
Кога ќе одиме да повлечеме листа на вработени од базата на податоци, би било природно да се побара името на секое лице и нивното име. Сепак, оваа информација е зачувана во повеќе табели на бази на податоци, па затоа може да се добие само со барање на JOIN што бара постоечка врска помеѓу табелите.
Кога ќе ја разгледате структурата на табелите, полето кое ја дефинира врската најверојатно е очигледно - полето Position Position. Секој вработен може да има само една позиција и таа позиција се идентификува со вклучување на позицијата ID од соодветниот запис од табелата Позиции. Покрај тоа што е примарен клуч за табелата Позиции, во овој пример, полето Position Position е исто така странски клуч од табелата "Вработените" на табелата Позиции. Базата на податоци потоа може да го користи ова поле за да корелира информации од повеќе табели и да осигура дека сите промени или дополнувања на базата на податоци продолжуваат да го применуваат референтниот интегритет .
Откако ќе го идентификувате странскиот клуч, можете да продолжите и да ги повлечете посакуваните информации од базата со користење на следното барање:
Креирање странски клучеви во SQL Server
Технички, не треба експлицитно да го дефинирате односот за да можете да вршите пребарувања како што е погоре наведеното. Меѓутоа, ако експлицитно ја дефинирате врската со ограничување од странски клучеви, базата на податоци ќе може да изведува некои работи за домаќинство за вас:
- Кога ќе додадете нов запис во табелата "Вработени", базата на податоци ќе осигури дека позицијата ID што ја внесувате е валиден примарен клуч во табелата Позиции.
- Ако го промените позицијата ID во табелата Позиции, базата на податоци може да ги изврши бараните ажурирања на масата на вработените за да ја зачува конзистентноста.
- Базата на податоци може да заштити од влијанието на бришење на позицијата од позицијата на табелата со одбивање да избрише позиција со соодветни записи на вработените или да изврши каскадно бришење на сите сродни вработени.
Еве како ќе креираш странски клуч во SQL Server:
Измени го табелот Вработените ДОДАЈ СЛУЧАЈ КЛУЧЕН (PositionID) РЕФЕРЕНЦИИ Позиции (PositionID)Може и да креирате странски клуч кога креирате табела со додавање на клаузулата:
СТРАНСКИ КЛУЧНИ РЕФЕРЕНЦИИ Позиции (PositionID)до крајот на дефиницијата на колоната за колоната за странски клучеви.