Ma'lumotlar bazasi qaramligi nima?

Ma'lumotlar bazasi bog'liqligi ko'pincha talabalar va ma'lumotlar bazasi mutaxassislarini bir-biriga o'xshatib tashlaydigan mavzudir. Yaxshiyamki, ular murakkab emas va bir nechta misollarni qo'llash orqali yaxshi tasvirlangan bo'lishi mumkin. Ushbu maqolada biz umumiy ma'lumotlar bazasiga bog'liq turlarni ko'rib chiqamiz.

Ma'lumotlar bazasi qaramlik / Funktsional qaramlik

Ma'lumotlar bazasida bir xil ma'lumotlar bazasi ma'lumotlar bazasida saqlangan ma'lumot bir xil jadvalda saqlangan boshqa ma'lumotlarni aniq belgilab qo'yganida paydo bo'ladi. Bundan tashqari, ushbu xususiyatni bitta attributning (yoki bir qator atributlar) qiymatini bilish uchun sizga bir xil jadvaldagi boshqa xususiyatning (yoki atributlar to'plamining) qiymatini tushuntirish uchun etarli bo'lgan munosabat sifatida ta'rif berishingiz mumkin.

Jadvaldagi atributlar orasidagi bog'liqlik borligini aytib, bu xususiyatlar o'rtasida funktsional qaramlik mavjudligini ta'kidlaydi. Agar ma'lumotlar bazasiga bog'liqlik mavjud bo'lsa, B xususiyati A sifatiga bog'liq bo'lsa, uni "A -> B" deb yozasiz.

Masalan, Ijtimoiy muhofaza raqami (SSN) va nomini o'z ichiga olgan xodimlarning tavsiflarini ro'yxatga olishda, ismning SSNga (yoki SSN -> ismiga) bog'liq bo'lishi mumkin, chunki ishchining ismi SSNdan noyob tarzda aniqlanishi mumkin. Biroq, teskari nashr (nom -> SSN) to'g'ri emas, chunki bir nechta xodim bir xil nomga ega bo'lishi mumkin, ammo boshqa SSN-lar bo'lishi mumkin.

Vazifaviy funktsional qaramliklar

Ahamiyatga ega bo'lgan funktsional qaramlik, atributni funktsional qaramligini original attributni o'z ichiga olgan atributlar to'plamida ifodalashganda paydo bo'ladi. Masalan, "{A, B} -> B" "{name, SSN} -> SSN" bo'lgani kabi, funktsional qaramlikdir . Funktsional qaramlikning bunday turi ahamiyatsiz deb ataladi, chunki u sog'lom fikrdan kelib chiqadi. Agar B qiymatini allaqachon bilsangiz, u holda B qiymati Bunda aniq ma'lumotga ega bo'lishi mumkin.

To'liq funktsional qaramliklar

Funktsional qaramlik talablariga javob beradigan va funktsional qaramlik bayonotining chap tomonidagi atributlar majmuasi bundan buyon qisqartirilmasa to'liq funksional bog'liqlik bo'ladi. Misol uchun, "{SSN, age} -> name" funktsional qaramlikdir, lekin u to'liq funksional qaramlik emas, chunki qaramlik munosabatlariga ta'sir qilmasdan so'zning chap qismidan yoshni olib tashlashingiz mumkin.

O'tish davriga bog'liqliklar

Transitive bog'liqliklar funktsional qaramlikka olib keladigan bilvosita munosabatlar mavjud bo'lganda yuzaga keladi. Misol uchun, "A -> C" - bu faqat "A -> B" va "B -> S" ning to'g'ri bo'lgani uchun, vaqtinchalik bog'liqlikdir .

Ko'p qimmatli qaramliklar

Ko'p qimmatli bog'liqliklar jadvaldagi bir yoki bir nechta satr mavjudligida, o'sha jadvalda bir yoki bir nechta boshqa satrlar borligini bildiradi. Misol uchun, bir qancha avtomobil modelini ishlab chiqaruvchi avtomobil kompaniyasini tasavvur qiling-a, ammo har doim ham har bir modeldagi qizil va ko'k ranglarni yaratadi. Agar sizda har bir avtomobil model nomi, rangi va yilini o'z ichiga olgan jadvalingiz bo'lsa, u jadvalda bir nechta qimmatli bog'liqlik mavjud. Agar ma'lum bir model nomi va mavsumi uchun bir qator bo'lsa, o'sha avtomobilning qizil versiyasiga mos keladigan bir qator bo'lishi kerak.

Bog'liqlikning ahamiyati

Ma'lumotlar bazasi bog'liqligi tushunish uchun juda muhim, chunki ma'lumotlar bazasi normallashtirishda ishlatiladigan asosiy bloklarni ta'minlaydi. Masalan: