Ma'lumotlar bazasi munosabatlariga kirish

Mundarija:

Ma'lumotlar bazasi munosabatlariga kirish
Ma'lumotlar bazasi munosabatlariga kirish
Anonim

Ma'lumotlar bazasi atamalari relyatsion va munosabatlar jadvallardagi ma'lumotlarning ulanish usulini tavsiflaydi. Relyatsion ma'lumotlar bazasi ma'lum bir kalit bilan bog'langan ikki yoki undan ortiq jadvallar qatoridan iborat. Relyatsion ma'lumotlar bazasi katta ma'lumotlar tashabbuslarida keng tarqalgan tuzilmagan ma'lumotlar bazalaridan farq qiladi. Aloqaviy ma'lumotlar bazalari odatda jadvallar qanday aniqlanishi va jadvallar o'rtasida to'g'ri munosabatni tashkil qilishiga oid qat'iy qoidalarni talab qiladi.

Image
Image

Ma'lumotlar bazasi aloqalarining turlari

Aloqalar sizga ma'lumotlar bazasi jadvallari orasidagi aloqalarni kuchli usullar bilan tasvirlash imkonini beradi. Keyinchalik bu aloqalardan JOINlar deb nomlanuvchi kuchli jadvallararo so‘rovlarni bajarish uchun foydalanish mumkin.

Ma'lumotlar bazasi aloqalarining uchta turi mavjud bo'lib, ularning har biri o'zaro bog'liq bo'lgan jadval qatorlari soniga qarab nomlanadi. Ushbu uchta aloqa turining har biri ikkita jadval o'rtasida mavjud.

  • Birga-bir munosabatlar birinchi jadvaldagi har bir yozuv ikkinchi jadvalda faqat bitta oʻxshashlikka ega boʻlganda yuzaga keladi. Yakkama-yakka munosabatlar kamdan-kam qo'llaniladi, chunki ko'pincha barcha ma'lumotlarni bitta jadvalga joylashtirish samaraliroq bo'ladi. Ba'zi ma'lumotlar bazasi dizaynerlari boshqa jadvaldagi ma'lumotlarning kichik to'plamini o'z ichiga olgan jadvallar yaratish orqali bu munosabatlardan foydalanadilar.
  • Birga-koʻp munosabatlar maʼlumotlar bazasi munosabatlarining eng keng tarqalgan turidir. Ular A jadvalidagi har bir yozuv B jadvalidagi bir yoki bir nechta yozuvga to'g'ri kelganda yuzaga keladi, lekin B jadvalidagi har bir yozuv A jadvalidagi faqat bitta yozuvga to'g'ri keladi. Masalan, boshlang'ich maktabdagi O'qituvchilar jadvali va O'quvchilar jadvali o'rtasidagi munosabatlar ma'lumotlar bazasi birdan ko'pga bog'liq bo'lishi mumkin, chunki har bir talabada faqat bitta o'qituvchi bor, lekin har bir o'qituvchida bir nechta talaba bor. Bu bitta-ko‘p dizayn takrorlangan ma’lumotlarni yo‘q qilishga yordam beradi.
  • Ko'pdan ko'pga munosabatlar A jadvalidagi har bir yozuv B jadvalidagi bir yoki bir nechta yozuvga va B jadvalidagi har bir yozuv bir yoki bir nechta yozuvlarga mos kelganda yuzaga keladi. A-jadvalda. Masalan, Oʻqituvchilar jadvali va Kurslar jadvali oʻrtasidagi bogʻliqlik koʻp-koʻp boʻlishi mumkin, chunki har bir oʻqituvchi bir nechta kursni oʻrgatishi va har bir kursda bir nechta oʻqituvchi boʻlishi mumkin.

Quyi chiziq

Oʻz-oʻziga havola qilish munosabatlari faqat bitta jadval ishtirok etganda yuzaga keladi. Umumiy misollardan biri - har bir xodimning rahbari haqidagi ma'lumotlarni o'z ichiga olgan Xodimlar jadvali. Har bir rahbar ham xodim bo'lib, uning nazoratchisi bor. Bunday holda, birdan ko'pga o'ziga havola munosabati mavjud, chunki har bir xodimda bitta rahbar bor, lekin har bir rahbarda bir nechta xodim bo'lishi mumkin.

Xorijiy kalitlar bilan aloqalar yaratish

Tashqi kalitni belgilash orqali jadvallar oʻrtasida aloqalar yaratasiz. Bu kalit relyatsion ma'lumotlar bazasiga jadvallar qanday bog'langanligini ko'rsatadi. Ko'p hollarda A jadvalidagi ustun B jadvalidan havola qilingan asosiy kalitlarni o'z ichiga oladi.

O'qituvchilar va talabalar jadvallari misolini ko'rib chiqing. O'qituvchilar jadvalida ID, ism va kurs ustuni mavjud:

InstructorID Oʻqituvchi_Ismi Kurs
001 Jon Doe Inglizcha
002 Jeyn Shmoe Matematika

Talabalar jadvali identifikator, ism va xorijiy kalit ustunidan iborat:

Talaba ID Talaba_Ismi Oʻqituvchi_FK
0200 Louell Smit 001
0201 Brian Short 001
0202 Korki Mendez 002
0203 Monica Jones 001

Talabalar jadvalidagi Oʻqituvchi_FK ustuni Oʻqituvchilar jadvalidagi oʻqituvchining asosiy kalit qiymatiga ishora qiladi. Ko'pincha ma'lumotlar bazasi dizaynerlari asosiy kalit yoki xorijiy kalit ustunini aniqlash uchun ustun nomidagi PK yoki FK dan foydalanadilar.

Ushbu ikkita jadval oʻqituvchilar va talabalar oʻrtasidagi yakka-koʻp munosabatlarini koʻrsatadi.

Munosabatlar va ma'lumotlarning yaxlitligi

Jadvalga chet el kalitini qoʻshgandan soʻng, ikkita jadval oʻrtasida havolalar yaxlitligini taʼminlaydigan maʼlumotlar bazasi cheklovini yarating. Ushbu qadam jadvallar orasidagi munosabatlar barqaror bo'lishini ta'minlaydi. Agar bitta jadval boshqa jadval uchun chet el kalitiga ega bo'lsa, havola yaxlitligi B jadvalidagi har qanday tashqi kalit qiymati A jadvalidagi mavjud yozuvga murojaat qilishini talab qiladi.

Aloqalarni amalga oshirish

Ma'lumotlar bazasiga qarab, jadvallar orasidagi munosabatlarni turli usullarda amalga oshirasiz. Microsoft Access sizga jadvallarni bog'lash va ma'lumotlarning yaxlitligini ta'minlash imkonini beruvchi sehrgarni taqdim etadi.

Agar siz toʻgʻridan-toʻgʻri SQL tilini yozayotgan boʻlsangiz, avval ID ustunini asosiy kalit deb eʼlon qilib, Oʻqituvchilar jadvalini yarating:

JADVAL YARATISH Oʻqituvchilar (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Oʻqituvchi_Nomi VARCHAR(100), Kurs VARCHAR(100));

Talabalar jadvalini yaratishda siz Teacher_FK ustunini Oʻqituvchilar jadvalidagi InstructorID ustuniga havola qiluvchi xorijiy kalit deb eʼlon qilasiz:

JADVAL YARATISH Talabalar (StudentID INT AUTO_INCREMENT PRIMARY KEY, Talaba_ismi VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Oʻqituvchi));

Jadvallarga qoʻshilish uchun munosabatlardan foydalanish

Ma'lumotlar bazasida bir yoki bir nechta munosabatlarni yaratgandan so'ng, bir nechta jadvallardagi ma'lumotlarni birlashtirish uchun SQL JOIN so'rovlaridan foydalanib, ularning kuchidan foydalaning. Birlashmaning eng keng tarqalgan turi bu SQL INNER JOIN, ya'ni oddiy birlashma. Ushbu turdagi birlashma bir yoki bir nechta jadvaldagi birlashish shartiga javob beradigan barcha yozuvlarni qaytaradi.

Masalan, bu JOIN sharti talaba_ismi, oʻqituvchi_ismi va kursni qaytaradi, bunda Talabalar jadvalidagi xorijiy kalit Oʻqituvchilar jadvalidagi asosiy kalitga mos keladi:

Talabalarni TANLASH. Talabalar_Ismi, Oʻqituvchilar. Oʻqituvchilar. Kurs

Talabalardan

INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;

Ushbu bayonot quyidagicha jadval hosil qiladi:

Talaba_Ismi Oʻqituvchi_Ismi Kurs
Louell Smit Jon Doe Inglizcha
Brian Short Jon Doe Inglizcha
Korki Mendez Jeyn Shmoe Matematika
Monica Jones Jon Doe Inglizcha

Tavsiya: