Ներածություն տվյալների շտեմարանների փոխհարաբերություններին

Բովանդակություն:

Ներածություն տվյալների շտեմարանների փոխհարաբերություններին
Ներածություն տվյալների շտեմարանների փոխհարաբերություններին
Anonim

Տվյալների բազայի հարաբերական և հարաբերությունները նկարագրում են աղյուսակների տվյալների միացման եղանակը: Հարաբերական տվյալների բազան բաղկացած է երկու կամ ավելի աղյուսակների շարքից, որոնք կապված են որոշակի բանալիով: Հարաբերական տվյալների բազան տարբերվում է չկառուցված տվյալների բազաներից, որոնք տարածված են մեծ տվյալների նախաձեռնություններում: Հարաբերական տվյալների բազաները պահանջում են խիստ կանոններ այն մասին, թե ինչպես են սահմանվում աղյուսակները և ինչն է աղյուսակների միջև վավերական հարաբերություններ:

Image
Image

Տվյալների բազայի փոխհարաբերությունների տեսակները

Հարաբերությունները թույլ են տալիս հզոր ձևերով նկարագրել կապերը տվյալների բազայի աղյուսակների միջև: Այնուհետև այս հարաբերությունները կարող են օգտագործվել՝ հզոր խաչաձև աղյուսակային հարցումներ կատարելու համար, որոնք հայտնի են որպես 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
Մոնիկա Ջոնս Ջոն Դո Անգլերեն

Խորհուրդ ենք տալիս: