Односи со бази на податоци

База на податоци односи се 'рбетот на сите релациони бази на податоци

Врската е воспоставена помеѓу две табели на база на податоци, кога една табела има странски клуч кој го повикува примарниот клуч на друга табела. Ова е основниот концепт зад терминот релациона база на податоци.

Како странски клуч работи за воспоставување на врска

Ајде да ги разгледаме основите на основните и странските клучеви. Примарниот клуч уникатно го идентификува секој запис во табелата. Тоа е тип на клуч за кандидат кој обично е првата колона во табелата и може автоматски да се генерира од базата на податоци за да се осигура дека таа е уникатна.

Странски клуч е друг клучен кандидат (не е примарен клуч) кој се користи за поврзување на запис со податоци во друга табела.

На пример, разгледајте ги овие две табели кои идентификуваат кој наставник поучува кој курс.

Еве, примарниот клуч на табелата на курсеви е Course_ID. Нејзиниот странски клуч е Teacher_ID:

Курсеви
Course_ID Course_Name Teacher_ID
Course_001 Биологија Teacher_001
Course_002 Математика Teacher_001
Course_003 Англиски Teacher_003

Можете да видите дека странскиот клуч во Курсевите се совпаѓа со примарен клуч во наставниците:

Наставници
Teacher_ID Teacher_Name
Teacher_001 Кармен
Teacher_002 Вероника
Teacher_003 Хорхе

Можеме да кажеме дека странскиот клуч Teacher_ID помогна да се воспостави врска помеѓу табелите на курсевите и наставниците.

Видови врски со бази на податоци

Користење на странски клучеви, или други клучеви на кандидати, можете да имплементирате три типа на односи помеѓу табелите:

Еден-на-еден : Овој тип врски дозволува само еден запис на секоја страна од врската.

Примарниот клуч се однесува само на еден запис - или нема - во друга табела. На пример, во бракот, секој сопружник има само еден друг брачен другар. Овој вид врски може да се спроведе во една табела и затоа не користи странски клуч.

Еден-на-многу : односот на еден-на-многу овозможува единствен запис во една табела да биде поврзан со повеќе записи во друга табела.

Размислете за бизнис со база на податоци што има табели на клиенти и нарачки.

Еден клиент може да купи повеќе нарачки, но една нарачка не може да се поврзе со повеќе клиенти. Затоа, табелата на нарачки ќе содржи странски клуч што одговара на примарен клуч од табелата на клиенти, додека табелата на клиенти нема да има странски клуч кој укажува на табелата на налози.

Многу-до-многу : Ова е комплексен однос во кој многу записи во табелата можат да се поврзат со многу записи во друга табела. На пример, на нашиот бизнис веројатно не се потребни само табели на клиенти и нарачки, но најверојатно, исто така, е потребна табела со Производи.

Повторно, односот помеѓу табелата на клиенти и нарачки е еден-на-многу, но сметаат дека односот помеѓу табелата на нарачки и производи. Нарачката може да содржи повеќе производи, а еден производ може да биде поврзан со повеќе нарачки: неколку клиенти може да достават нарачка која содржи некои од истите производи. Овој вид на врска бара минимум три табели.

Кои се Важни База на податоци?

Воспоставувањето на конзистентни односи помеѓу табелите на базата на податоци помага да се обезбеди интегритет на податоците, придонесувајќи за нормализирање на базата на податоци На пример, што ако ние не ги поврзавме ниедна табела преку странски клуч и наместо само ги комбиниравме податоците во табелите за курсеви и наставници, како што се:

Наставници и курсеви
Teacher_ID Teacher_Name Курс
Teacher_001 Кармен Биологија, математика
Teacher_002 Вероника Математика
Teacher_003 Хорхе Англиски

Овој дизајн е нефлексибилен и го нарушува првиот принцип на нормализација на бази на податоци, Прва нормална форма (1NF), во која се наведува дека секоја табела ќелија треба да содржи еден, дискретен дел од податоците.

Или можеби решивме едноставно да додадеме втор запис за Кармен, со цел да се спроведе 1NF:

Наставници и курсеви
Teacher_ID Teacher_Name Курс
Teacher_001 Кармен Биологија
Teacher_001 Кармен Математика
Teacher_002 Вероника Математика
Teacher_003 Хорхе Англиски

Ова е сѐ уште слаб дизајн, воведувајќи непотребно дуплирање и она што се нарекува аномалии за вметнување податоци , што само значи дека би можело да придонесе кон неконзистентни податоци.

На пример, ако наставникот има повеќекратни записи, што ако некои податоци треба да се уредуваат, но лицето што врши уредување на податоци не сфаќа дека постојат повеќе записи? Табелата потоа ќе содржи различни податоци за истото лице, без јасен начин да се идентификува или да се избегне.

Прекршувањето на оваа табела во две маси, наставници и курсеви (како што е визуелизирано погоре), создава соодветна врска помеѓу податоците и затоа помага да се обезбеди конзистентност и точност на податоците.