Ma'lumotlar bazasi atamasi "aloqador" yoki "munosabat" jadvaldagi ma'lumotlarning bog'langanligini ta'riflaydi.
Ma'lumotlar bazalari dunyosiga yangi kelganlar odatda ma'lumotlar bazasi va elektron jadval o'rtasidagi farqni ko'rish qiyin kechadi. Ular ma'lumotlar jadvallarini ko'rib chiqadi va ma'lumotlar bazalari ma'lumotlarni yangi usullar bilan tartibga solish va so'rov qilish imkonini beradi, ammo relational database texnologiyasini bergan ismlar o'rtasidagi munosabatlarning ahamiyatini tushuna olmaydi.
Aloqalar siz turli xil ma'lumotlar bazasi jadvallari o'rtasida kuchli usullar bilan bog'lanish imkonini beradi. Keyinchalik, bu munosabatlar birlashtiruvchi sifatida ma'lum kuchli intervalli so'rovlarni bajarish uchun qo'llash mumkin.
Ma'lumotlar bazasi munosabatlari turlari
Ma'lumotlar bazasi munosabatlarining uchta turi mavjud, ularning har biri o'zaro aloqada bo'lishi mumkin bo'lgan jadval satrlari soniga qarab nomlanadi. Ushbu uch munosabatning har biri ikkita jadval o'rtasida mavjud.
- Bemorlarga o'zaro munosabatlar birinchi jadvaldagi har bir kirish uchun bitta va faqat bitta, ikkinchi stolda muomalada bo'lsa. Yakka tartibdagi munosabatlar kamdan-kam hollarda qo'llaniladi, chunki barcha ma'lumotni bitta stolda qo'yish osonroq bo'ladi. Ba'zi ma'lumotlar bazasi dizaynerlari ushbu munosabatlardan boshqa jadvaldagi ma'lumotlarning pastki qismini o'z ichiga olgan jadvallarni yaratish orqali foydalanadilar.
- Ma'lumotlar bazasi munosabatlarining eng ko'p tarqalgan turi - bir-biriga aloqador munosabatlar. Jadval A dagi har bir yozuv Jadval Bda bir yoki bir nechta yozuvlarga mos kelganda, lekin Jadval B dagi har bir yozuv Jadvaldagi bitta yozuvga to'g'ri keladi. Masalan, O'qituvchilar jadvali bilan Boshlang'ich maktabda Talabalar jadvali o'rtasidagi munosabatlar ma'lumotlar bazasi ehtimol bir-biriga juda ko'p munosabatlar bo'lishi mumkin, chunki har bir talabaning faqat bitta o'qituvchisi bor, lekin har bir o'qituvchining bir nechta talabasi bor. Bu juda ko'p dizayn bir nechta ma'lumotni yo'q qilishga yordam beradi.
- Jadval A dagi har bir yozuv Jadval Bdagi bir yoki bir nechta yozuvlarga mos kelganda ko'p hollarda ro'y beradi va Jadval B dagi har bir yozuv Jadvalda bir yoki bir nechta yozuvlarga mos keladi. Masalan, O'qituvchilar va Kurslar jadval ko'pchilik uchun juda ko'p bo'lishi mumkin, chunki har bir o'qituvchi bir martadan ko'proq dars berishi mumkin va har bir kursda bir nechta o'qituvchi bo'lishi mumkin.
O'z-havola aloqalari: Maxsus ish
O'zaro aloqador munosabatlar faqatgina bitta jadval mavjud bo'lganda yuzaga keladi. Bitta umumiy misol - har bir xodimning maslahatchisi to'g'risidagi ma'lumotlarni o'z ichiga olgan xodimlar jadvali. Har bir maslahatchi ham ishlaydigan va o'z maslahatchisi. Bunday holda, har bir xodimning bitta maslahatchisi borligi uchun, har bir rahbarning bir nechta xodimga ega bo'lishi mumkin.
Chet el kalitlari bilan aloqalar yaratish
Siz chet el kalitini belgilab, jadvallar orasidagi munosabatlarni yaratasiz .Bu kalit bilan bog'liq ma'lumotlar bazasiga jadvallarning qanday aloqasi borligini bildiradi. Ko'pgina hollarda, A jadvalidagi ustun B-jadvaldan keltirilgan asosiy kalitlarni o'z ichiga oladi.
O'qituvchilar va talabalar stollarining misolini yana bir bor ko'rib chiqing. O'qituvchilar jadvali faqat ID, nom va kurs ustunini o'z ichiga oladi:
InstructorID | O'qituvchi_Name | Kurs |
---|---|---|
001 | Jon Doe | Inglizcha |
002 | Jane Schmoe | Matematika |
Talabalar jadvalida ID, nom va chet el kalit ustuni mavjud:
StudentID | Student_Name | Teacher_FK |
---|---|---|
0200 | Lowell Smit | 001 |
0201 | Brian Short | 001 |
0202 | Corky Mendez | 002 |
0203 | Monika Jons | 001 |
Talabalar jadvalidagi Teacher_FK ustuni o'qituvchilarning stolidagi o'qituvchining asosiy kalitiga ishora qiladi.
Tez-tez ma'lumotlar bazasi dizaynerlari birlamchi kalitni yoki tashqi kalit ustunini osongina aniqlash uchun ustun nomidagi "PK" yoki "FK" dan foydalanadi.
Ushbu ikki jadvalda o'qituvchilar va o'quvchilar o'rtasida bir-biridan juda ko'p munosabatlar mavjudligini eslatib o'ting.
Aloqalar va referendumning yaxlitligi
Jadvalga chet el kalitini qo'shgandan so'ng, ikki jadval o'rtasidagi ma'lumotlar butunligini ta'minlaydigan ma'lumotlar bazasi cheklovini yaratishingiz mumkin. Bu jadvallar o'rtasidagi munosabatlar izchilligini ta'minlaydi. Jadvalda boshqa jadvalga xorijiy kalit bo'lsa, ma'lumotnoma yaxlitligi tushunchasi, Jadval B dagi har qanday chet el kalitining A-jadvaldagi mavjud yozuvlarga mos kelishi kerakligini bildiradi.
Aloqa o'rnatish
Ma'lumotlar bazasiga qarab, jadvallar o'rtasidagi munosabatni turli usullar bilan amalga oshirasiz. Microsoft Access osonlik bilan jadvallarni bog'lab qo'yadigan va ma'lumotlar butunligini ta'minlashga imkon beruvchi sehrgarni taqdim etadi.
Agar siz SQLni bevosita yozsangiz, birinchi navbatda, Ustozlar jadvalini yaratib, ID sütununu asosiy kalit sifatida e'lon qilasiz:
CREATE TABLE O'qituvchilar (
O'QITIShNING INT AUTO_INCREMENT PRIMARY KEY,
O'qituvchi_Name VARCHAR (100),
VARCHAR kursi (100)
);
Talabalar jadvalini yaratganingizda, Teacher_FK ustunini O'qituvchilar stoli O'qituvchiID ustuniga havola qilinadigan chet el kalitini e'lon qilasiz:
Jadvalni yaratish Talabalar (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
FOREIGN KEY (Teacher_FK) Adabiyotlar O'qituvchilar (InstructorID))
);
Jadvallarga qo'shilish munosabatlarini ishlatish
Ma'lumotlar bazasida bir yoki bir nechta munosabatlarni yaratganingizdan so'ng, ma'lumotlaringizni bir nechta jadvallardan birlashtirish uchun SQL JOIN so'rovlarini ishlatish orqali o'z kuchlaridan foydalanishingiz mumkin. Ishtirok etishning eng keng tarqalgan turi - SQL INNER JOIN yoki oddiy birlashma. Birlashma ushbu turdagi bir nechta jadvaldagi qo'shilish holatiga mos keladigan barcha yozuvlarni qaytaradi. Misol uchun, ushbu JOIN sharti Student_Name, Teacher_Name va Kursni o'quvchilar jadvalidagi chet el kalitini O'qituvchilar jadvalidagi asosiy kalitga mos ravishda qaytaradi:
O'quvchilarni tanlang.Student_Name, Teachers.Teacher_Name, Teachers.Course
Talabalar orasida
Ichki a'zolar O'qituvchilar
O'quvchilar haqida. Tåacher_FK = Teachers.InstructorID;
Ushbu jadval quyidagi jadvalni ishlab chiqaradi:
SQL birlashma bayonnomasidan qaytarilgan jadval
Student_NameTeacher_NameCourseLowell SmitJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane ShmoeMathMonica JonesJohn DoeEnglish