Տվյալների բազայի տերմինը «հարաբերական» կամ «հարաբերություն» նկարագրում է սեղանների տվյալների միացման ձեւը:
Նոր տվյալների բազաների աշխարհը հաճախ դժվարություններ է ունենում, տեսնելով բազայի եւ աղյուսակի միջեւ տարբերությունը: Նրանք տեսնում են տվյալների աղյուսակներ եւ գիտակցում են, որ տվյալների բազաները հնարավորություն են տալիս կազմակերպել եւ հարցումներ կատարել նոր ձեւերով, սակայն չեն կարողանում հասկանալ հարաբերական տվյալների բազայի տեխնոլոգիաների անունը ներկայացնող տվյալների միջեւ փոխհարաբերությունների կարեւորությունը:
Հարաբերությունները թույլ են տալիս նկարագրել տարբեր տվյալների բազաների սեղանների միջեւ կապեր հզոր ձեւերով: Այդ հարաբերությունները կարող են այնուհետեւ լիցքավորված լինել կատարել հզոր խաչաձեւ աղյուսակային հարցումներ, որոնք հայտնի են որպես միացումներ:
Տվյալների շտեմարանի տեսակները
Կան երեք տարբեր տիպի տվյալների շտեմարանների հարաբերություններ, որոնցից յուրաքանչյուրը նշված է ըստ սեղանի շարքերում թվերի, որոնք կարող են ներգրավվել հարաբերություններում: Այս երեք հարաբերության տեսակներից յուրաքանչյուրը գոյություն ունի երկու աղյուսակների միջեւ:
- Մեկ-մեկ հարաբերությունները տեղի են ունենում, երբ առաջին սեղանի յուրաքանչյուր մուտքն ունի մեկ, եւ միայն մեկ, երկրորդ աղյուսակում: Անհատական հարաբերությունները հազվադեպ են օգտագործվում, քանի որ հաճախ ավելի արդյունավետ է դարձնում բոլոր տեղեկությունները մեկ աղյուսակում: Որոշ տվյալների շտեմարանների դիզայներները օգտվում են այս փոխհարաբերությունից, ստեղծել աղյուսակներ, որոնք պարունակում են տվյալների մյուս սեղանի ենթաբազմություն:
- Բազմաբնույթ հարաբերությունները տվյալների շտեմարանի ամենատարածված տեսակն են: Դրանք տեղի են ունենում, երբ Աղյուսակ A- ի յուրաքանչյուր գրառումը համապատասխանում է մեկ կամ մի քանի գրառումների աղյուսակ B- ում, սակայն յուրաքանչյուր գրառումը Աղյուսակ B- ում համապատասխանում է Աղյուսակ Ա-ում ընդամենը մեկ գրառում: Օրինակ, Ուսուցիչների սեղանի եւ Ուսանողական սեղանի հարաբերակցությունը տարրական դպրոցում տվյալների բազան, ամենայն հավանականությամբ, կկազմի մեկից-շատ հարաբերություններ, քանի որ յուրաքանչյուր աշակերտ ունի միայն մեկ ուսուցիչ, բայց յուրաքանչյուր ուսուցիչ ունի բազմակի ուսանող: Այս մեկից մինչեւ շատ դիզայնը օգնում է վերացնել կրկնօրինակված տվյալները:
- Շատ-շատ հարաբերություններ են առաջանում, երբ Աղյուսակ A- ում յուրաքանչյուր գրառումը համապատասխանում է մեկ կամ մի քանի գրառումների աղյուսակ B- ում, եւ յուրաքանչյուր աղյուսակը համապատասխանում է Աղյուսակ Ա-ում մեկ կամ ավելի գրառումներին: Օրինակ, ուսուցիչների եւ դասընթացների միջեւ հարաբերությունները սեղանը, ամենայն հավանականությամբ, շատ-շատերի համար, քանի որ յուրաքանչյուր ուսուցիչ կարող է մեկից ավելի դասընթացներ հրավիրել, եւ յուրաքանչյուր դասընթաց կարող է ունենալ մեկից ավելի հրահանգիչ:
Ինքնորոշիչ հարաբերություններ. Հատուկ դեպք
Ինքնորոշիչ հարաբերությունները տեղի են ունենում, երբ կա ընդամենը մեկ սեղան: Մեկ ընդհանուր օրինակ է աշխատակիցների աղյուսակը, որը պարունակում է տեղեկատվություն յուրաքանչյուր աշխատակցի ղեկավարի մասին: Յուրաքանչյուր վերահսկիչ նույնպես աշխատող է եւ ունի իր սեփական ղեկավարը: Այս դեպքում կա մեկից-շատ ինքնասպասարկման հարաբերություն, քանի որ յուրաքանչյուր աշխատող ունի մեկ վերահսկիչ, սակայն յուրաքանչյուր վերահսկիչ կարող է ունենալ ավելի քան մեկ աշխատող:
Արտաքին կապի հետ հարաբերություններ ստեղծում
Դուք կապեր եք ստեղծում սեղանների միջեւ, նշելով արտասահմանյան բանալին: Այս ստեղնը պատմում է հարաբերական տվյալների բազայի, թե ինչպես են սեղանները կապված: Շատ դեպքերում Աղյուսակ Ա-ում սյունակ է պարունակում առաջնային ստեղներ, որոնք վերաբերում են Աղյուսակ Բ-ին:
Վերադառնանք կրկին Ուսուցիչների եւ ուսանողների սեղանների օրինակին: Ուսուցիչների աղյուսակը պարունակում է միայն ID- ն, անունը եւ դասընթացի սյունը.
Ուսուցիչը | Ուսուցիչ_Name | Դասընթաց |
---|---|---|
001 | Ջոն Դո | Անգլերեն |
002 | Ջեյն Շմու | Մաթեմատիկա |
Ուսանողների սեղանը ներառում է ID, անուն եւ օտարերկրյա բանալի սյուն:
Ուսանողական ID | Ուսանողի անունը | Ուսուցիչ_FK |
---|---|---|
0200 | Lowell Smith- ը | 001 |
0201 | Brian Short- ը | 001 |
0202 | Կորկու Մենդեզ | 002 |
0203 | Մոնիկա Ջոնսը | 001 |
Teacher_FK- ի սյունը Ուսանողների սեղանին հղում է կատարում դասախոսի հիմնական բանալին Ուսուցիչների սեղանին:
Հաճախ, տվյալների բազայի դիզայներները կօգտագործեն «PK» կամ «FK» սյունակի անունը, հեշտությամբ բացահայտելու առաջնային բանալին կամ օտարերկրյա բանալիների սյունակը:
Նշենք, որ այս երկու աղյուսակները ցույց են տալիս, որ ուսուցիչների եւ աշակերտների միջեւ շատ-շատ հարաբերություններ են լինում:
Հարաբերություններ եւ սիմվոլային ամբողջականություն
Սեղանի վրա օտարերկրյա բանալին ավելացրեցիք, այնուհետեւ կարող եք ստեղծել տվյալների բազայի սահմանափակում, որը կիրառում է երկու աղյուսակների միջեւ ներկայացուցչական ամբողջականությունը : Սա ապահովում է, որ սեղանների միջեւ հարաբերությունները պահպանվեն: Երբ մեկ աղյուսակը արտասահմանյան բանալին ունի մեկ այլ աղյուսակի, հիշյալ ամբողջականության հասկացությունը նշում է, որ աղյուսակ B- ում ցանկացած արտաքին հիմնական արժեքը պետք է հղում անի Table A- ում գոյություն ունեցող գրառմանը:
Իրականացնել հարաբերությունները
Կախված ձեր տվյալների բազայից, դուք տարբեր առումներով իրականացնում եք աղյուսակների միջեւ փոխհարաբերությունները: Microsoft Access- ն ապահովում է մի հրաշագործ, որը հեշտությամբ կարող եք կապել սեղանները եւ կիրառել տեղեկատուական ամբողջականությունը:
Եթե դուք գրում եք SQL- ի ուղղակիորեն, դուք առաջին հերթին ստեղծեք սեղան ուսուցիչները, ID- ի սյունակը հայտարարելու համար `առաջնային բանալին:
ՍՏԵՂԾԱԳՈՐԾԱԿԱՆ ՏԵՔՍՏԸ Ուսուցիչները (
Ուսուցիչը INT AUTO_INCREMENT PRIMARY KEY,
Ուսուցիչ_Name VARCHAR (100),
Դասընթաց VARCHAR (100)
);
Ուսանողների սեղանը ստեղծելով, Դուք ուսուցանում եք Teacher_FK սյունակը, որպես Ուսուցիչների սեղանի ուսուցչի սյունակը հղում կատարող օտարերկրյա բանալին:
ՍՏԵՂԾԱԳՈՐԾԱԿԱՆ ՑԱՆՑ Ուսանողներ (
StudentID INT AUTO_INCREMENT PRIMARY KEY- ը,
Student_Name VARCHAR (100), Teacher_FK INT,
FOREIGN KEY (Teacher_FK) REFERENCES Ուսուցիչները (ուսուցչուհի))
);
Օգտագործելով հարաբերություններ, միանալու սեղանները
Երբ դուք ստեղծել եք մեկ կամ ավելի հարաբերություններ ձեր տվյալների բազայում, կարող եք օգտագործել իրենց ուժը `օգտագործելով SQL JOIN հարցումներ` մի քանի աղյուսակներից տեղեկատվությունը համատեղելու համար: Միավորման ամենատարածված տեսակը հանդիսանում է SQL INNER JOIN կամ պարզ միացում: Միասնության այս տեսակը վերադառնում է բոլոր գրառումները, որոնք համապատասխանում են համընդհանուր պայմաններին մի քանի աղյուսակներից: Օրինակ, այս JOIN- ի պայմանը կվերադառնա Student_Name, Teacher_Name եւ դասընթաց, որտեղ Ուսանողների սեղանի արտաքին բանալիը համապատասխանում է Ուսուցիչների սեղանի առաջնային բանալին.
SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
Ուսանողներից
ԻՆՔՆԱԳԻՏԱՑՎԱԾ Ուսուցիչներ
Ուսանողների մասին. Տեչեր_ՖԿ = Ուսուցիչների ուսուցում.
Այս հայտարարությունը նման սեղան է առաջացնում.
Վերադարձված աղյուսակը SQL միանալու հայտարարությունից
Ուսանողական_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish