Տվյալների բազայի հարաբերական և հարաբերությունները նկարագրում են աղյուսակների տվյալների միացման եղանակը: Հարաբերական տվյալների բազան բաղկացած է երկու կամ ավելի աղյուսակների շարքից, որոնք կապված են որոշակի բանալիով: Հարաբերական տվյալների բազան տարբերվում է չկառուցված տվյալների բազաներից, որոնք տարածված են մեծ տվյալների նախաձեռնություններում: Հարաբերական տվյալների բազաները պահանջում են խիստ կանոններ այն մասին, թե ինչպես են սահմանվում աղյուսակները և ինչն է աղյուսակների միջև վավերական հարաբերություններ:
Տվյալների բազայի փոխհարաբերությունների տեսակները
Հարաբերությունները թույլ են տալիս հզոր ձևերով նկարագրել կապերը տվյալների բազայի աղյուսակների միջև: Այնուհետև այս հարաբերությունները կարող են օգտագործվել՝ հզոր խաչաձև աղյուսակային հարցումներ կատարելու համար, որոնք հայտնի են որպես JOINs:
Գոյություն ունեն տվյալների բազայի հարաբերությունների երեք տեսակ, որոնցից յուրաքանչյուրն անվանվում է ըստ կապի մեջ ներգրավված աղյուսակի տողերի քանակի: Այս երեք հարաբերությունների տեսակներից յուրաքանչյուրը գոյություն ունի երկու աղյուսակների միջև:
- Մեկ առ մեկ հարաբերություններ տեղի են ունենում, երբ առաջին աղյուսակի յուրաքանչյուր գրառում ունի միայն մեկ նմանակ երկրորդ աղյուսակում: Մեկ առ մեկ հարաբերությունները հազվադեպ են օգտագործվում, քանի որ հաճախ ավելի արդյունավետ է ամբողջ տեղեկատվությունը մեկ աղյուսակում դնելը: Տվյալների բազայի որոշ դիզայներներ օգտվում են այս հարաբերությունից՝ ստեղծելով աղյուսակներ, որոնք պարունակում են մեկ այլ աղյուսակի տվյալների ենթաբազմություն:
- Մեկից շատ հարաբերություններ տվյալների բազայի հարաբերությունների ամենատարածված տեսակն է: Դրանք տեղի են ունենում, երբ A աղյուսակի յուրաքանչյուր գրառում համապատասխանում է B աղյուսակի մեկ կամ մի քանի գրառումների, բայց B աղյուսակի յուրաքանչյուր գրառումը համապատասխանում է A աղյուսակի միայն մեկ գրառումին: Օրինակ, տարրական դպրոցի ուսուցիչների և ուսանողների աղյուսակի հարաբերությունները: տվյալների բազան, ամենայն հավանականությամբ, կլինի մեկ-շատերի հարաբերություն, քանի որ յուրաքանչյուր ուսանող ունի միայն մեկ ուսուցիչ, բայց յուրաքանչյուր ուսուցիչ ունի մի քանի ուսանող:Այս մեկից շատ դիզայնը օգնում է վերացնել կրկնվող տվյալները:
- Շատ-շատ հարաբերություններ տեղի են ունենում, երբ A աղյուսակի յուրաքանչյուր գրառում համապատասխանում է B աղյուսակի մեկ կամ մի քանի գրառումների, իսկ B աղյուսակի յուրաքանչյուր գրառում՝ մեկ կամ մի քանի գրառումների: Աղյուսակ Ա-ում: Օրինակ, Ուսուցիչների աղյուսակի և Դասընթացների աղյուսակի միջև կապը հավանաբար շատ-շատերի միջև կլինի, քանի որ յուրաքանչյուր ուսուցիչ կարող է հրահանգել մեկից ավելի դասընթաց, և յուրաքանչյուր դասընթաց կարող է ունենալ մեկից ավելի հրահանգիչ:
Վերջին գիծ
Ինքնահղման հարաբերությունները տեղի են ունենում, երբ ներգրավված է միայն մեկ աղյուսակ: Ընդհանուր օրինակներից է Աշխատակիցների աղյուսակը, որը պարունակում է տեղեկատվություն յուրաքանչյուր աշխատակցի ղեկավարի մասին: Յուրաքանչյուր ղեկավար նույնպես աշխատող է և ունի վերահսկիչ: Այս դեպքում գոյություն ունի մեկից շատ ինքնահղման հարաբերություն, քանի որ յուրաքանչյուր աշխատող ունի մեկ ղեկավար, բայց յուրաքանչյուր ղեկավար կարող է ունենալ մեկից ավելի աշխատող:
Արտասահմանյան բանալիների հետ հարաբերությունների ստեղծում
Դուք հարաբերություններ եք ստեղծում աղյուսակների միջև՝ նշելով օտար բանալի: Այս բանալին պատմում է հարաբերական տվյալների բազայի մասին, թե ինչպես են աղյուսակները կապված: Շատ դեպքերում, A աղյուսակի սյունակը պարունակում է հիմնական բանալիներ, որոնք հղում են կատարում աղյուսակ B-ից:
Դիտարկենք ուսուցիչների և ուսանողների աղյուսակների օրինակը: Ուսուցիչների աղյուսակը պարունակում է ID, անուն և դասընթացի սյունակ՝
Ուսուցչի ID | Ուսուցչի_անուն | Դասընթաց |
001 | Ջոն Դո | Անգլերեն |
002 | Ջեյն Շմո | Math |
Ուսանողների աղյուսակը ներառում է ID, անուն և օտար բանալի սյունակ՝
StudentID | Ուսանողի_անուն | Teacher_FK |
0200 | Լոուել Սմիթ | 001 |
0201 | Բրայան Շորթ | 001 |
0202 | Կորկի Մենդես | 002 |
0203 | Մոնիկա Ջոնս | 001 |
Ուսուցիչներ աղյուսակի Ուսուցիչ_FK սյունակը վկայակոչում է Ուսուցիչների աղյուսակում ուսուցչի հիմնական բանալին: Հաճախ տվյալների բազայի նախագծողները սյունակի անվան մեջ օգտագործում են PK կամ FK՝ հիմնական բանալին կամ օտար բանալի սյունակը նույնականացնելու համար:
Այս երկու աղյուսակները ցույց են տալիս ուսուցիչների և ուսանողների միջև մեկ-շատ հարաբերությունները:
Հարաբերություններ և հղումային ամբողջականություն
Սեղանին օտար բանալի ավելացնելուց հետո ստեղծեք տվյալների բազայի սահմանափակում, որը կապահովի հղումների ամբողջականությունը երկու աղյուսակների միջև: Այս քայլը երաշխավորում է, որ աղյուսակների միջև հարաբերությունները մնում են հետևողական: Երբ մի աղյուսակն ունի այլ աղյուսակի օտար բանալի, հղման ամբողջականությունը պահանջում է, որ B աղյուսակում ցանկացած օտար բանալի արժեք պետք է վերաբերի A աղյուսակում առկա գրառումին::
Հարաբերությունների իրականացում
Կախված ձեր տվյալների բազայից՝ աղյուսակների միջև փոխհարաբերությունները կիրականացնեք տարբեր ձևերով: Microsoft Access-ը տրամադրում է հրաշագործ, որը թույլ է տալիս կապել աղյուսակները և նաև կիրառել հղումների ամբողջականությունը:
Եթե դուք ուղղակիորեն գրում եք SQL, նախ ստեղծեք աղյուսակը Teachers՝ հայտարարելով ID-ի սյունակը որպես հիմնական բանալի:
CREATE TABLE Teachers (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Teacher_Name VARCHAR(100), Դասընթաց VARCHAR(100));
Երբ ստեղծում եք Ուսանողների աղյուսակը, դուք հայտարարում եք Teacher_FK սյունակը որպես օտար բանալի՝ հղում անելով Ուսուցիչների աղյուսակի InstructorID սյունակին:
CREATE TABLE Students (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR(100), Teacher_FK INT, FOREIGN RE_KEYT (FOREIGN RE_KEYT));
Օգտագործելով հարաբերությունները սեղաններին միանալու համար
Ձեր տվյալների բազայում մեկ կամ մի քանի հարաբերություններ ստեղծելուց հետո օգտագործեք դրանց հզորությունը՝ օգտագործելով SQL JOIN հարցումները՝ մի քանի աղյուսակներից տեղեկատվությունը համակցելու համար: Միացման ամենատարածված տեսակը SQL INNER JOIN-ն է, որը պարզ միացում է: Միացման այս տեսակը վերադարձնում է բոլոր գրառումները, որոնք համապատասխանում են միացման պայմանին մեկ կամ մի քանի աղյուսակներից:
Օրինակ, այս JOIN պայմանը վերադարձնում է Student_Name, Teacher_Name և Course, որտեղ Ուսանողների աղյուսակի օտարերկրյա բանալին համընկնում է Teachers աղյուսակի հիմնական բանալին՝:
SELECT Students. Student_Name, Teachers. Teacher_Name, Teachers. Course
FROM Students
INNER JOIN TeachersON Students. Teacher_FK=TeachersID;
Այս հայտարարությունը ստեղծում է այսպիսի աղյուսակ.
Ուսանողի_անուն | Ուսուցչի_անուն | Դասընթաց |
Լոուել Սմիթ | Ջոն Դո | Անգլերեն |
Բրայան Շորթ | Ջոն Դո | Անգլերեն |
Կորկի Մենդես | Ջեյն Շմո | Math |
Մոնիկա Ջոնս | Ջոն Դո | Անգլերեն |