Ma'lumotni o'zgartirish so'rovlari. Ma'lumotlar bazalari - yaxlitlik

Ma'lumotlar bazasi texnologiyasida asosiy tushunchalardan biri yaxlitlik tushunchasidir. Umumiy holda, ushbu tushuncha avvalambor ma'lumotlar bazasida real dunyoning ma'lum bir ob'ekti yoki real dunyoning o'zaro bog'liq ob'ektlari to'plamini aks ettirishi bilan izohlanadi. Relyatsion modelda real dunyo ob'ektlari o'zaro bog'liq munosabatlar to'plami sifatida namoyon bo'ladi. Ma'lumotlar bazasining yaxlitligi - bu ma'lumotlar bazasida joylashgan barcha ma'lumotlar o'rtasida o'rnatilgan jadvallararo aloqalarning ishonchli bajarilishini ta'minlaydigan qoidalar va vositalar. Ma'lumotlar yaxlitligini ta'minlash jiddiy va murakkab masala. Ma'lumotlar bazasi ishlatilganda, uning shikastlanishi bir necha sabablarga ko'ra yuzaga kelishi mumkin: kompyuter buzilganda, dasturiy xatolar tufayli, foydalanuvchining noto'g'ri xatti-harakatlari tufayli.

Yaratilgan model uchun ahamiyatli bo'lgan fan sohasidagi har qanday o'zgarish ma'lumotlar bazasida aks ettirilishi kerak va shu bilan birga, axborot modelini mavzu sohasi nuqtai nazaridan aniq izohlash saqlanishi kerak.

Klassik ma'noda ma'lumotlar relyatsion modelida yaxlitlikni qo'llab-quvvatlash uchta jihatni o'z ichiga oladi.

Birinchidan, bu tizimning yaxlitligini qo'llab-quvvatlash, bu relyatsion MBBT faqat "relyatsion munosabatlar" turidagi bir hil ma'lumotlar tuzilmalari bilan ishlashga imkon berishidir. Bundan tashqari, "relyatsion munosabatlar" tushunchasi klassik nazariya nazariyasida unga qo'yilgan barcha cheklovlarni qondirishi kerak. Dumlarning dublonlarining yo'qligi (munosabatlar qatori), mos ravishda, jadvaldagi har bir yozuvni o'ziga xos ravishda aniqlaydigan birlamchi kalit (bir yoki bir nechta ustunlar (atributlar) mavjudligi, ya'ni bitta yozuvni boshqasidan aniq ajratib turadigan), dubllarni tartiblash kontseptsiyasining yo'qligi.

Strukturaviy yaxlitlikdan tashqari, aniqlanmagan Null qiymatlari muammosini ham ko'rib chiqish kerak. Nisbiy ma'lumotlar bazasida aniqlanmagan qiymat hozirgi paytda noma'lum bo'lgan qiymat sifatida izohlanadi. Qo'shimcha ma'lumotlar istalgan vaqtda paydo bo'lganda, ushbu qiymat ma'lum bir qiymat bilan almashtirilishi mumkin.

Ikkinchidan, bu til yaxlitligini qo'llab-quvvatlash, bu relyatsion MBBT SQL standartidan past bo'lmagan ma'lumotlarni tavsiflash va boshqarish uchun tillarni taqdim qilishi kerakligidir. Standartga mos kelmaydigan boshqa past darajadagi ma'lumotlarni boshqarish vositalari mavjud bo'lmasligi kerak.

Shuning uchun ma'lumotlar bazasida saqlanadigan ma'lumotlarga kirish va ushbu ma'lumotlarga biron-bir o'zgartirish faqat SQL bayonotlari yordamida amalga oshirilishi mumkin.

Uchinchidan, bu mos yozuvlar yaxlitligini (DRI) qo'llab-quvvatlash, bu o'zaro bog'liq munosabatlarning misollari o'rtasidagi munosabatlar uchun ko'rsatilgan printsiplardan birini ta'minlashni anglatadi:

    unga bo'ysunuvchi aloqaning juftlari u bilan bog'liq bo'lgan asosiy aloqaning ketma-ketliklari o'chirilganda yo'q qilinadi;

    asosiy aloqaning juftliklari u bilan bog'liq bo'lgan asosiy aloqaning ketma-ketligi o'chirilganda o'zgartiriladi va ota-ona munosabati kalitining o'rniga aniqlanmagan Null qiymati qo'yiladi.

Ma'lumotlarning yaxlitligi ma'lumotlar bazasini qo'shish yoki yo'q qilish paytida ma'lumotlarni o'zgartirish paytida izchil holatini qo'llab-quvvatlaydi.

Umuman ma'lumotlar bazasining semantikasini aniqlamaydigan ko'rsatilgan yaxlitlik cheklovlariga qo'shimcha ravishda semantik yaxlitlikni qo'llab-quvvatlash tushunchasi kiritiladi.

Tarkibiy, lingvistik va yo'naltiruvchi yaxlitlik ma'lumotlar bazasini aloqador ma'lumotlar tuzilmalari bilan ma'lumotlar bazasini boshqarish qoidalarini belgilaydi. Ushbu uch turdagi yaxlitlikni qo'llab-quvvatlash talablari har bir MBBT buni amalga oshirish imkoniyatiga ega bo'lishi kerakligini ko'rsatadi va ishlab chiquvchilar relyatsion model yordamida ma'lumotlar bazasini yaratishda buni hisobga olishlari kerak. Ushbu uchta jihat ma'lumotlar bazasi tarkibiga hech qanday aloqasi yo'q. Ma'lumotlar bazasi tarkibi bilan bog'liq ba'zi cheklovlarni aniqlash uchun boshqa usullar talab qilinadi. Aynan shu usullar semantik yaxlitlikni qo'llab-quvvatlash uchun birlashtirilgan.

Semantik qo'llab-quvvatlash ikki yo'l bilan ta'minlanishi mumkin:

    deklarativ, SQL tili yordamida amalga oshiriladi;

    protseduralar, triggerlar va saqlanadigan protseduralar orqali amalga oshiriladi.

Deklarativ yo'l, MBning ichida ko'p hollarda "Ish qoidalari" yoki deklarativ yaxlitlik cheklovlari deb ataladigan cheklashning deklarativ ravishda aniqlangan va amalga oshirilishini ta'minlaydigan mexanizmlarning mavjudligi bilan bog'liq.

Deklarativ yaxlitlikning cheklangan quyidagi turlari ajratiladi:

    atribut yaxlitligining cheklanishi: majburiy yoki ixtiyoriy qiymatlarni (Null) belgilash, atribut qiymatlari uchun shartlarni belgilash. Odatiy qiymatni belgilash shuni anglatadiki, har safar yangi satr aloqaga kirganda, ko'rsatilgan ustunda ma'lumotlar bo'lmagan taqdirda, bu atribut aniq belgilangan qiymatga ega bo'ladi;

    domen tuzilmasi tomonidan qo'llab-quvvatlanadigan domen darajasida o'rnatilgan yaxlitlik cheklovlari. Ushbu cheklovlar qulaydir, agar ma'lumotlar bazasida bir xil haqiqiy qiymatlar to'plamidan qiymatlarni oladigan turli xil munosabatlarning bir nechta ustunlari bo'lsa;

    munosabatlar darajasida belgilangan yaxlitlik cheklovlari. Ba'zi semantik qoidalarni faqat bitta ustunga qo'llaniladigan iboralarga aylantirish mumkin emas;

    munosabatlar o'rtasidagi aloqa darajasida o'rnatilgan yaxlitlik cheklovlari: majburiy aloqani o'rnatish, kaskadli o'chirish tamoyillari (asosiy jadvaldagi yozuvni o'chirish, quyi jadvaldagi barcha tegishli yozuvlarni o'chirish) va kaskadli ma'lumotlar o'zgarishi (asosiy jadvaldagi kalit maydonning qiymatini o'zgartirganda, barcha yangilanishlar). pastki jadvaldagi yozuvlar), aloqa quvvatidagi cheklovlarni qo'llab-quvvatlash vazifasi. Ushbu turdagi cheklashlar tashqi kalitlarning majburiy yoki ixtiyoriy qiymatini belgilash orqali ifodalanishi mumkin (o'zaro bog'liqlikdagi boshqa jadvaldagi boshqa jadvaldagi asosiy kalit maydonlariga havolani o'z ichiga olgan jadvaldagi bir yoki bir nechta maydon).

Ma'lumotlar yaxlitligiga kirish

Kirish tegishli jadvallardagi yozuvlar o'rtasidagi barqaror va to'g'ri munosabatlarni saqlab qolish uchun mo'ljallangan qoidalar tizimidan foydalanadi, shuningdek tegishli ma'lumotlarni tasodifiy yo'q qilish yoki o'zgartirishdan himoya qiladi. Buning uchun quyidagi cheklovlar o'rnatilgan:

    asosiy jadvalning bog'langan maydoni kalit maydon yoki noyob indeksga ega;

    bog'langan maydonlar bitta ma'lumot turiga ega;

    agar jadvallar o'zaro bog'liq bo'lsa, unda ular ma'lumotlar bazalari jadvallari bo'lishi kerak. Boshqa formatdagi ma'lumotlar bazasidan bog'langan jadvallar uchun ma'lumotlar yaxlitligini o'rnatish mumkin emas. Butunlikni ta'minlash uchun jadvallar joylashgan ma'lumotlar bazasi ochiq bo'lishi kerak.

Ushbu qoidalarga rioya qilish uchun, Access quyidagi amallarni kuzatadi va bloklaydi:

    bog'langan jadvalning tashqi kalit maydoniga asosiy jadvalning kalit maydonida bo'lmagan qiymatni kirita olmaysiz. Shu bilan birga, yozuvlar bir-biriga bog'liq emasligini ko'rsatish uchun tashqi tugmacha maydoniga Null qiymatlarini kiritishingiz mumkin. Masalan, mavjud bo'lmagan muallif tomonidan yozilgan kitobni ro'yxatga olish yozuvini saqlay olmaysiz, lekin id_avtopa tugmachasi maydoniga Null kiritib, biron bir muallifga tayinlanmagan kitob uchun yozuvni yaratishingiz mumkin;

    agar quyi jadvalda u bilan bog'liq yozuvlar mavjud bo'lsa, master-jadvaldan yozuvni o'chira olmaysiz. Masalan, Hujjatlar jadvalida ushbu nashriyot tomonidan nashr etilgan kitoblar mavjud bo'lsa, Nashrlar jadvalidan yozuvni o'chirib bo'lmaydi.

    agar ushbu yozuv bilan bog'liq yozuvlar mavjud bo'lsa, asosiy jadvaldagi asosiy kalit qiymatini o'zgartira olmaysiz. Masalan, Hujjatlar jadvalida ushbu muallifning kitoblari bo'lsa, Mualliflar jadvalidagi xodim kodini o'zgartirish mumkin emas.

Ma'lumotlar bazasining yaxlitligi

Ma'lumotlar bazasining yaxlitligi

Ma'lumotlar bazasining yaxlitligi bu ma'lumotlar bazasining mulki bo'lib, u ma'lumotlar bazasida ilovalarning to'g'ri ishlashi uchun zarur bo'lgan to'liq va izchil ma'lumotlarni o'z ichiga oladi. To'liqlikni ta'minlash uchun cheklovlarni qo'llang.

Shuningdek qarang:  Ma'lumotlar bazalari

Finam moliyaviy lug'ati.


Boshqa lug'atlarda "Ma'lumotlar bazasining yaxlitligi" nima ekanligini ko'rib chiqing:

    ma'lumotlar bazasining yaxlitligi  - ma'lumotlar bazasini boshqarish tizimining noto'g'ri operatsiyalar va apparat ishlamay qolishlari natijasida buzilishlardan himoya qilish uchun ma'lumotlar bazasini boshqarish tizimining qobiliyati. [GOST 20886 85] ... ... da ma'lumotlarni tashkil qilish mavzulari. Texnik tarjimon ma'lumotnomasi

    Ma'lumotlar bazasining yaxlitligi  - 2. Ma'lumotlar bazasining yaxlitligi Ma'lumotlar bazasini boshqarish tizimi noto'g'ri operatsiyalar va apparat ishlamay qolishi natijasida ma'lumotlar bazasi tarkibiy qismlari va aloqa ma'lumotlarini buzilishlardan himoya qilish qobiliyati bilan aniqlangan Manba: GOST 20886 85 ... Normativ-texnik hujjatlar atamalarining lug'ati

      - (ma'lumotlar bazasining yaxlitligi) ma'lumotlar bazasida mavjud bo'lgan ma'lumotlarning ichki mantiqiyligi, tuzilishi va aniq belgilangan qoidalariga muvofiqligi. Ma'lumotlar bazasining mumkin bo'lgan holatiga ma'lum bir cheklov qo'yadigan har bir qoidaga cheklash deyiladi ... ... Vikipediya

    Ma'lumotlar bazasi serveri ma'lumotlar bazasiga xizmat ko'rsatish va boshqarishni amalga oshiradi va ma'lumotlar yaxlitligi va xavfsizligi uchun javob beradi, shuningdek, mijoz ma'lumotlarga kirishda kirish-chiqarish operatsiyalarini ta'minlaydi. Mijoz-server arxitekturasi mijozlar va serverlardan iborat ... ... Vikipediya

    Ma'lumotlar bazasining ierarxik modeli asosiy ob'ektlardan nasllarga o'tadigan va tegishli ma'lumotlarni bir-biriga bog'laydigan ob'ektlardan iborat. Ierarxik ma'lumotlar bazalarini turli darajadagi ob'ektlardan tashkil topgan daraxt sifatida ko'rsatish mumkin. ... ... Vikipediya

    Ushbu atamaning boshqa ma'nolari mavjud, Taqdimotga qarang. Ko'rish (inglizcha ko'rinish, "ko'rish" uchun ko'proq mos keladigan nostandart nom, ko'pincha dasturchilar tilida inglizcha "view", "view" dan qarz sifatida ishlatiladi) ... ... Vikipediya

    Relyatsion ma'lumotlar bazasi Relyatsion ma'lumotlar modeliga asoslangan ma'lumotlar bazasi. "Relational" so'zi ingliz tilidan olingan. munosabat Relyatsion ma'lumotlar bazalari bilan ishlash uchun relyatsion ma'lumotlar bazalari qo'llaniladi. Nisbiy ma'lumotlar bazalaridan foydalanish ... ... Vikipediya edi

    Ushbu atamaning boshqa ma'nolari ham bor, indeksga qarang. Indeks - bu ma'lumotlarni olishni yaxshilash uchun yaratilgan ma'lumotlar bazasi ob'ekti. Ma'lumotlar bazasidagi jadvallar ... Vikipediyada saqlanadigan ko'plab qatorlarga ega bo'lishi mumkin

    Ushbu atamaning boshqa ma'nolari ham bor, qarang Trigger (lar). Trigger (eng. Trigger) - foydalanuvchi to'g'ridan-to'g'ri qo'ng'iroq qilmaydigan va bajarilishi modifikatsiya qilingan harakatlar tufayli vujudga keladigan saqlanadigan protseduralarning maxsus turi ... Vikipediya

    Ushbu atamaning boshqa ma'nolari ham bor, qarang Kursor (lar). Kursor - bu kontekstual xotira sohasiga havoladir (manba 126 kun ko'rsatilmagan). SQL mantiqiy axborotining ba'zi dasturlarida (Oracle, ... ... Vikipediya)

Kitoblar

  • Oracle yadrosi. Ma'murlar va ma'lumotlarni ishlab chiquvchilar uchun ichki qurilma, Lyuis Jonotan. Ushbu kitobda muallif Oracle ma'lumotlar bazasining ichki tuzilishi to'g'risida eng zarur ma'lumotlarni taqdim etadi, uni har bir ma'lumotlar bazasi ma'muri bilishi kerak ...
  • Oracle yadrosi. Ma'murlar va ma'lumotlar bazasini ishlab chiquvchilar uchun ichki qurilma, Lyuis Jonatan. Ushbu kitobda muallif Oracle ma'lumotlar bazasining ichki tuzilishi to'g'risida eng zarur ma'lumotlarni taqdim etadi, uni har bir ma'lumotlar bazasi ma'muri bilishi kerak ...

bank bazasi berilgan case texnologiyasi

Butunlik tushunchasi ma'lumotlar bazasi nazariyasida eng asosiylaridan biridir. Har qanday ma'lumotlar bazasida bir-biri bilan aloqada bo'lgan real ob'ektlar haqida ma'lumotlar mavjud. Ma'lumotlar bazasining yaxlitligi deganda ma'lumotlar bazasida saqlanadigan domen modelining real dunyo ob'ektlari va ularning bir-biri bilan istalgan vaqtda o'zaro aloqasi tushuniladi. Butunlik jismoniy va mantiqiydir.

Jismoniy yaxlitlik har qanday vaqtda ma'lumotlarga jismoniy kirish imkoniyati, shuningdek, ushbu ma'lumotlar yo'qolmaganligini anglatadi. Mantiqiy qiymat - bu ma'lumotlar bazasida mantiqiy xatolar yo'qligini anglatadi - butun ma'lumotlar bazasi yoki alohida ob'ektlarning tuzilishini buzmaslik, ob'ektlar orasidagi aloqalarni noto'g'ri yoki noto'g'ri o'zgartirish va boshqalar.

Ma'lumotlar bazasining yaxlitligini ta'minlash qarama-qarshiliklar aniqlanganda yaxlitlikni tekshirish va tiklanishni o'z ichiga oladi. Relyatsion modelda ma'lumotlar bazasining mantiqiy yaxlitligini qo'llab-quvvatlovchi uchta asosiy mezon mavjud.

  • 1. Tizimli yaxlitlikni qo'llab-quvvatlash. Bu shuni anglatadiki, har qanday aloqador ma'lumotlar bazasi faqat munosabatlar munosabatlarining xususiyatlarini qondiradigan ma'lumotlar tuzilmalari asosida quriladi.
  • 2. Til yaxlitligini qo'llab-quvvatlash. Har qanday aloqador MBBT ma'lumotlarini SQL standartidan past bo'lmagan formatda tasvirlashi va boshqarishi kerak. Bu shuni anglatadiki, ma'lumotlar bazasiga kirish faqat SQL ko'rsatmalaridan foydalangan holda amalga oshiriladi.
  • 3. Ma'lumotlarning yaxlitligini qo'llab-quvvatlash. Ushbu printsip ma'lumotlar o'zaro bog'liqlikda o'zgarganda quyidagi harakatlardan faqat bittasi sodir bo'lishi mumkinligini ta'kidlaydi.
    • - ularga bog'liq bo'lgan asosiy aloqalar to'plami o'chirilganda, quyi bo'g'inlarning juftliklari yo'q qilinishi kerak;
    • - asosiy munosabat tuynuklari, agar ular bilan bog'liq bo'lgan subordinat aloqalari yo'q bo'lsa, yo'q qilinishi mumkin;
    • - ular bilan bog'liq bo'lgan asosiy aloqaning ketma-ketligini o'chirishda subordinat aloqalarining tuplamlari yo'q qilinmaydi, lekin ota-ona munosabati kalitining qiymati NULL ga o'rnatiladigan tarzda o'zgartiriladi.

Ma'lumotlarning yaxlitligi ma'lumotlar bazasini doimiy ravishda saqlaydi, agar ma'lumotlar qo'shish yoki yo'q qilish paytida o'zgartirilsa.

Ko'rib chiqilgan mezonlarga qo'shimcha ravishda ma'lumotlar bazasining semantik yaxlitligi tushunchasi ham joriy etiladi. Ma'lumotlar bazasi modelining semantik yaxlitligini ta'minlash eng muhim vazifalardan biridir. Ushbu mexanizm yaxlitlikni cheklash mexanizmi deb nomlanadi. Integratsiyani cheklash deganda, mohiyatiga ko'ra, ma'lumotlar bazasida mavjud bo'lgan alohida ma'lumot birliklarining ma'lum qiymatlarni qabul qilishi va boshqa axborot birliklari bilan munosabatlarda qatnashishi mumkin emasligi yoki aksincha, mavjud emasligi tushuniladi.

Semantik yaxlitlikni cheklashlar deklarativ ravishda (ma'lumotlar bazasini tavsiflashda) yoki protsessual (ma'lumotlarni qayta ishlash dasturlarida) belgilanishi mumkin. Deklarativ butunlikni cheklashning quyidagi turlari mavjud:

1. Attributlar yaxlitligini cheklash - standart atributlarga, qiymatning o'ziga xosligiga, qiymatlarning turi va formatiga, qiymatlar oralig'iga, ma'lum yoki aniqlanmagan qiymatning belgisini ko'rsatgan holda, ushbu atributga mos keladigan domenga o'rnatiladi.

Odatiy qiymatni belgilashda har safar jadvalga yangi yozuv kiritilganda, agar atribut qiymatining bevosita belgisi bo'lmasa, ushbu atribut belgilangan qiymatga ega bo'ladi.

O'ziga xoslik cheklovi odatda noyob qiymat ba'zi bir ob'ektning identifikatori bo'lganida belgilanadi. Shuning uchun, o'ziga xoslik belgisi ko'pincha munosabatlarning asosiy kalitiga to'g'ri keladi (agar kalit aralash bo'lmasa). O'ziga xoslik chegarasini belgilashda ushbu qiymatning to'g'riligi butun jadvalni ko'rib chiqish orqali tekshiriladi.

Qiymat turi atribut uchun haqiqiy belgilar (raqamlar, harflar, mantiqiy o'zgaruvchilar va boshqalar) ni belgilaydi va format mumkin bo'lgan qiymatlarga nisbatan qattiq cheklovlarni o'rnatadi (masalan, "sana" formati).

Raqamlar soni ko'p hollarda raqamli ma'lumotlar turlari uchun o'rnatiladi. Chegaralar bir tomonlama (faqat pastki yoki yuqori chegaralar ko'rsatilgan) yoki ikki tomonlama. Bir tomonlama diapazon har doim ochiq va ikki tomonlama diapazon ochiq yoki yopiq bo'lishi mumkin.

Muayyan qiymatning belgisi (majburiy) bo'sh atribut qiymatiga yo'l qo'ymaydi.

Domenni cheklash atribut faqat ma'lum qiymatlar to'plamidan qiymatlarni qabul qilishini anglatadi.

  • 2. To'plamning yaxlitligini cheklash. Bu jadvalning bitta satrida individual atributlar qiymatlarining nisbati bo'yicha mumkin bo'lgan cheklovlarni nazarda tutadi. Masalan, kitob kutubxonaga qaytarilgan sana o'quvchi olgan kundan oldin kelmaydi.
  • 3. munosabatlarning yaxlitligini cheklash. Bunday holda, jadvalning turli satrlarida joylashgan ma'lumotlar nisbati bo'yicha cheklovlar o'rnatiladi. Bunga birlamchi kalitning o'ziga xosligi misol bo'lishi mumkin.
  • 4. O'zaro bog'liqlik yaxlitligini cheklash - aloqa yaxlitligini cheklash va mavjudlikni cheklash.

Munosabatlar yaxlitligini cheklash, ikkita ob'ekt o'rtasidagi munosabatni aks ettiruvchi jadvalning tashqi kalitlari qiymati har doim ushbu ob'ektlarni tavsiflovchi jadvallarning asosiy kalitlaridan biriga mos kelishi kerakligini anglatadi.

Mavjudlikni cheklash bu jadvalda berilgan ob'ekt mavjudligi uchun uni boshqa jadvaldagi muayyan ob'ekt bilan bog'lash zarurligini anglatadi. Ushbu cheklash aloqa chekloviga qaraganda kuchliroqdir, chunki bu holda majburiy aloqa sinfi o'rnatiladi. Quyidagi jadvaldan yozuvlarni o'chirish hech qachon yaxlitlik va aloqa uchun cheklovni buzmasligi kerak.

Ba'zida asosiy jadvaldagi yozuvlar quyi jadvalda tegishli yozuvlarsiz mavjud bo'lmaganda, mavjudlik haqidagi deb ataladigan ma'lumotlar bazasida amalga oshiriladi. Ushbu turdagi yaxlitlikni cheklash, uni boshqarish nuqtai nazaridan ancha murakkab, chunki quyi jadvaldan yozuvni o'chirishda, unda bir xil tashqi kalit qiymatiga ega bo'lgan yozuvlar ko'p yoki yo'qligini tekshirish kerak.

Bunga qo'shimcha ravishda, ba'zi hollarda, ulanishning kardinalligining yaxlitligini cheklashlar mavjud: aloqadagi elementlarning soni ma'lum bir oraliqda bo'lishi kerak - yopiq yoki ochiq. Masalan, asosiy jadvaldagi bitta yozuv hech bo'lmaganda quyi jadvaldagi yozuvlar soniga mos kelishi kerak.

Ikkitadan ko'p jadval darajasida belgilangan yaxlitlik cheklovlari ham mavjud. Ushbu cheklovlar tegishli jadvallarda saqlanadigan ma'lumotlar o'rtasida mantiqiy muvofiqlikni saqlaydi.

  • 5. Algoritmik bog'liqliklarning yaxlitligini cheklash. Agar ma'lumotlar bazasida boshqa ma'lumotlarda (manbali ma'lumotlar) bajarilgan ba'zi operatsiyalar natijasida olingan ma'lumotlar mavjud bo'lsa, olingan ma'lumotlarning o'zgarishi manba ma'lumotlarining o'zgarishi yoki umuman taqiqlanishi kerak.
  • 6. Yangilanishlarni taqiqlash. Ushbu taqiq har qanday ob'ektga - atribut, satr yoki jadvalga nisbatan qo'llanilishi mumkin. Shunday qilib, ko'pgina ma'lumotlar bazalarida ushbu taqiq birlamchi kalit qiymatlariga qo'llaniladi.

Butunlik uchun cheklovlar bir zumda va kechiktiriladi. Har qanday harakatlarni amalga oshirish jarayonida kechiktirilgan yaxlitlik cheklovlari hurmat qilinmaydi, ammo ular tugallangandan keyin kuzatilishi kerak. Kechiktirilgan cheklovlarning misoli - bitimlar bo'lishi mumkin - ma'lumotlar bazasini bitta izchil holatdan boshqa holatga o'tkazadigan harakatlar to'plami. Tranzaksiya paytida ma'lumotlar bazasi bir muncha vaqt nomuvofiq holatda bo'lishi mumkin, ammo operatsiya tugagandan so'ng ma'lumotlar bazasining kelishilgan holati tiklanishi kerak.

Ma'lumotlar bazasini tasdiqlash rejimiga muvofiq, yaxlitlikni tekshirish ma'lumotlar bilan ishlash vaqtida (onlayn rejimida) yoki mustaqil ravishda ma'lum bir vaqtda (ma'lumotlar bazasini tekshirish) amalga oshirilishi mumkin.

Butunlikni cheklash nafaqat ma'lumotlarga, balki xizmat to'g'risidagi ma'lumotlarga ham tegishli bo'lishi mumkin. Xususan, nisbiy ma'lumotlar bazasi ma'lumotlar bazasida bu indekslangan fayllar va ularning tegishli indekslangan ma'lumotlar bazalari fayllari o'rtasidagi muvofiqlikni saqlashni anglatadi.

Ma'lumotlar bankining ma'lumotlar yaxlitligi kontseptsiyasi mavjud bo'lib, u ma'lumotlar bazasi fayllari, amaliy dasturlar fayllari, kirish-chiqish formatlari, hisobotlar va boshqalarni o'z ichiga olgan barcha tarkibiy qismlarining birgalikdagi ishlashini ta'minlashdan iborat.

Turli ma'lumotlar bazalari yaxlitligini cheklash uchun turli xil imkoniyatlarga ega. Agar biron-bir yaxlitlikni cheklash ma'lum bir MBBT tomonidan avtomatik ravishda qo'llab-quvvatlanmasa, u holda bu vazifani DBA yordamida hal qilish kerak.

To'liqlikni saqlash uchun tetik mexanizmidan foydalanish mumkin - ma'lum bir voqea sodir bo'lganda faollashtirilgan harakatlar.

Bir qator yaxlitlik cheklovlari ER modeli doirasidagi ob'ektning tavsifidan kelib chiqadi.

  • 1. O'ziga xoslikni cheklash. Jadval tugmachalari noyob identifikatordir.
  • 2. Boshlang'ich kalitlar (noyob identifikatorlar) va boshqa atributlar o'rtasida funktsional bog'liqliklar mavjud.
  • 3. Agar sub'ektlar o'rtasida munosabatlar mavjud bo'lsa, aloqada cheklovlar bo'lishi mumkin. Ulanish turi va uning a'zolik sinfi sub'ektlar o'rtasidagi munosabatlarning yaxlitligini cheklashni belgilaydi.
  • 4. Korxonaning statik xususiyatlari uchun yangilashni taqiqlash mumkin, agar shart shart bo'lsa, unda atribut qiymatlari aniqlanmasligi mumkin.

Xulosa qilib shuni ta'kidlash kerakki, ma'lumotlar bazasini loyihalashda ushbu sohaning o'ziga xos xususiyatlaridan ham, qo'llaniladigan dasturlarning xususiyatlaridan kelib chiqadigan barcha yaxlitlik cheklovlarini aniqlash va ularni saqlash mexanizmlarini ishlab chiqish kerak.

Ma'lumotlar bazasining yaxlitligi

Ma'lumotlar bazasining yaxlitligi deganda biz talablarning ma'lum bir to'plamini tushunamiz, ularning buzilishi ma'lumotlar bazasi va u aks ettiradigan ob'ekt doirasi o'rtasida qarama-qarshilikka olib keladi.

Zamonaviy DBMS-lar yaxlitlikning muayyan talablariga rioya qilish qobiliyatini qo'llab-quvvatlaydi.

Keling, yaxlitlik turlarini va ushbu turlarni qo'llab-quvvatlaydigan DBMS mexanizmlarini ko'rib chiqaylik.

1) birlamchi kalitga muvofiq muhim yaxlitlik yoki yaxlitlik, jadvalda birlamchi kalitning qiymati noyob bo'lishi kerak. RBD ning asosiy printsipi jadvaldagi ma'lumotlarga zanjir orqali kirish imkoni paydo bo'ldi. MB nomià Jadval nomi à   Ustun nomi à birlamchi kalit (qiymat).

Barcha zamonaviy ma'lumotlar bazasi birlamchi kalitning o'ziga xosligini qo'llab-quvvatlaydi. Birlamchi kalitning o'ziga xosligini saqlab qolish mexanizmi indeks tushunchasiga asoslanadi, quyida ko'rib chiqing.

Birlamchi kalitni belgilashda, ma'lumotlar bazasi avtomatik ravishda bir xilligini va asosiy kalitni izlash uchun indeks yaratadi.

2) Referentsion yaxlitlik - bu yaxlitlik jadvallar o'rtasidagi munosabatlarda saqlanadi. Ikkita tegishli jadvalning mazmuni mavzu sohasini to'g'ri aks ettirishi uchun. Jadval tarkibini o'zgartiradigan operatsiyalarga ma'lum cheklovlar (yaxlitlik cheklovlari) qo'yilishi kerak. Bu uchta operatsiya uchun amal qiladi:

Yozuvlarni o'chirish (asosiy jadvaldan)

Yozuvlarni tahrirlash (asosiy jadvalda)

Yozuvlarni ikkinchi jadvalga kiriting.

Ular operatsiyalarni bajarishda cheklovlar qo'yadilar: asosiy jadvaldan o'chirish, asosiy jadvaldagi yangilanishlar, ikkinchi jadvalga qatorlarni kiritish.

Asosiy jadvaldan o'chirish

DBMS asosiy jadvaldan o'chirilganda skriptning 4 turini qo'llab-quvvatlaydi.

1) asosiy jadvaldan o'chirilganda, u avtomatik ravishda tegishli jadvaldan (kaskad) tegishli yozuvlarni o'chiradi.

2) Agar u quyi jadvaldagi biron bir yozuv bilan bog'liq bo'lsa, master-jadvaldan yozuvni o'chirishga taqiq.

3) Asosiy jadvaldagi yozuvni o'chirgandan so'ng, quyi jadvaldagi tegishli yozuvlarning tashqi kalitlariga qiymatlar beriladiNULL

4) Yozuv asosiy jadvaldan o'chirilganda, ikkilamchi yozuvlarning tashqi tugmachalariga standart qiymatlar beriladi.

Asosiy jadvaldagi yozuvlarni yangilash

(Bu birlamchi kalitni yangilash uchun qo'llaniladi)

1) Asosiy jadvalning boshlang'ich kalitini yangilashda, quyi jadvallarning tashqi kalit qiymatlari kaskadlangan.

2) Asosiy jadvaldagi birlamchi kalitni o'zgartirganda, quyi jadvaldagi kalitlarga mos keladigan qiymatlar belgilanadiNULL

3) Asosiy jadvaldagi birlamchi kalitni o'zgartirganda, quyi jadvaldagi mos keladigan qiymatlar odatiy qiymatga ega bo'ladi.

4) (2) quyi jadvaldagi har qanday yozuvlar bilan bog'liq bo'lgan asosiy jadval yozuvlarining asosiy kalitlarini yangilash taqiqlangan.

Har bir ustun uchun jadval tuzilishini belgilashda standart holat belgilanadi.

A) ma'lum bir standart qiymat

B) qiymatni belgilashga ruxsat beriladiNULL

Ma'lumotlar bazasi yaxlitligini ta'minlashning oddiy mexanizmi bu jadval ustunining turi DBMS avtomatik ravishda jadvalga yozish operatsiyalarini va turga mos kelmaslik holatlarini kuzatib boradi, yoki yozuvni rad etadi - xato keltirib chiqaradi yoki yashirin turdagi konversiyani amalga oshiradi. Har bir ma'lumotlar bazasida xatolarni keltirib chiqarish va yashirin turga o'tishning o'z qoidalari mavjud.

Masalan, ba'zi MBBTlarda 32 bit butun son bo'lishi mumkinà 16bit butun son, boshqalarida esa 16 bitdan oshiq ma'lumotlarni yo'qotish ehtimoli tufayli bu mumkin emas.

4) Domen yaxlitligini ta'minlash mexanizmi. RDB ichidagi domen ushbu ustunda saqlanadigan ma'lumotni qabul qiladigan mumkin bo'lgan qiymatlar to'plami sifatida tushuniladi. Xususan, agar domen ushbu turdagi qiymatlar to'plamiga mos keladigan bo'lsa, lekin ko'pincha domen qo'shimcha cheklov hisoblanadi. Agar ustunda 1..12 oy raqamlari bo'lsa, unda domen 12 qiymatni o'z ichiga oladi, va turi butun son, ya'ni domen allaqachon mavjud. Ko'pgina DBMS-larda domen ustunda saqlangan ma'lumotlar uchun qondirilishi kerak bo'lgan shartlar to'plami bilan belgilanadi. Yozib olingan ma'lumotlar shartni qoniqtirmasa, xato yuzaga keladi. (shart (1)<= =>12 )), oyning noto'g'ri ko'rsatilishini oldini oladi.

5) Jadvalda mumkin bo'lgan kalitlarning mavjudligini ta'minlash.

Indekslash bilan mumkin bo'lgan tugmachalarning birlamchi o'ziga xosligi. indeksning noyob atributi har qanday ustun yoki ustunlar guruhining noyobligini kafolatlaydi, bundan tashqari indeks mos keladigan kalitni qidirishni tezlashtiradi. Tahrirlash operatsiyalarini sekinlashtiradi.

6) Ba'zi MBBT yangi ma'lumotlar turlarini yaratishni qo'llab-quvvatlaydi, bular qatoriga quyidagilar kiradiSQL Server   2005tam texnologiya asosida.Aniq   aslida o'z xususiyatlari va usullariga ega ob'ektlar bo'lgan yangi ma'lumotlar turlarini yaratishingiz mumkin. (Allaqachon RDB ni Object RBD-ga tarjima qilish).

7) Triggerlar (triggerlar haqidagi ma'ruzaga qarang) ma'lumotlar bazalarining yaxlitligini saqlashning eng kuchli vositasidir. Triggerlar ma'lumotlar bazasida ma'lumotlar bazasida saqlanadigan protseduralar bo'lib, DBMSga mos keladigan tilda yoziladi va hodisa ro'y berganda avtomatik ravishda ishga tushiriladi. Triggerlardan foydalanib, siz har qanday shartlarni tekshirishingiz va har qanday operatsiyalarni bajarishni taqiqlashingiz yoki boshqa jadvallarga qo'shimcha o'zgartirishlar kiritishingiz mumkin. Triggerlar uchta asosiy funktsiyaga ega:

1) Ma'lumotlar bazasining yaxlitligiga zid bo'lgan ba'zi harakatlarni taqiqlash.

2) Bajarilgan operatsiya bilan bir qatorda boshqa ma'lumotlar bazalari jadvallari yoki ma'lumotlar bazasi tuzilmasiga o'zgartirishlar kiritish.

3) ma'lumotlar bazasida ba'zi harakatlarni ro'yxatga olish funktsiyasi.

INSERT, DELETE va UPDATE ma'lumotlar bazalarida ma'lumotlar o'zgarishi to'g'risidagi bayonotlarning bajarilishi buzilishlarga olib kelishi mumkin. ma'lumotlar yaxlitligi  va ularning to'g'riligi, ya'ni. ularning ishonchliligi va izchilligi yo'qolishiga.

Ma'lumotlar bazasida saqlanadigan ma'lumotlar bir xil va izchil bo'lmasligi uchun relatsion modelda ba'zi cheklovchi shartlar - ma'lumotlarning mumkin bo'lgan qiymatlarini aniqlaydigan va to'g'ri qiymatlarni saqlash uchun mantiqiy asos yaratadigan qoidalar o'rnatildi. Butunlik uchun cheklovlar  ma'lumotlarni yangilash va qayta ishlash paytida yuzaga keladigan xatolarni minimallashtirish.

Relyatsion model asosida yaratilgan ma'lumotlar bazasida bir qator yaxlitlik qoidalari o'rnatiladi, ular amalda ma'lumotlar bazasining barcha holatlari uchun cheklovlar bo'lib, ma'lumotlarning to'g'riligini kafolatlaydi. Quyidagilarni ko'rib chiqing cheklash turlari ma'lumotlar yaxlitligi:

  • zarur ma'lumotlar;
  • maydon domenlari uchun cheklovlar;
  • korporativ cheklovlar;
  • tashkilot yaxlitligi;
  • mos yozuvlar yaxlitligi.

Majburiy ma'lumotlar

Ba'zi maydonlarda har doim yaroqli qiymatlardan biri bo'lishi kerak, boshqacha qilib aytganda, bu maydonlar bo'sh qiymatga ega bo'lolmaydi.

Maydon domenlari uchun cheklovlar

Har bir maydon o'z qiymatiga ega qiymatga ega bo'lgan o'z domeniga ega.

Korporativ yaxlitlikni cheklash

"Korporativ" tushunchasi mavjud yaxlitlik cheklovlari  "qo'shimcha qo'llab-quvvatlash qoidalari sifatida ma'lumotlar yaxlitligikorxona yoki ma'lumotlar bazasi ma'murlari tomonidan qabul qilingan foydalanuvchilar tomonidan belgilanadi. Korxona cheklovlari biznes qoidalari deb ataladi.

Korxonaning yaxlitligi

Bu shunday yaxlitlikni cheklash  xavotirlar asosiy tugmachalar  asosiy jadvallar. Ta'rifiga ko'ra   asosiy kalit  - Jadvaldagi yozuvlarni noyob aniqlash uchun ishlatiladigan minimal identifikator (bir yoki bir nechta maydonlar). Shunday qilib, pastki to'plam yo'q asosiy kalit  yozuvlarni yagona identifikatsiyalash uchun etarli bo'lmasligi mumkin.

Korxonaning yaxlitligi  asosiy jadvalda hech qanday maydon yo'qligini aniqlaydi asosiy kalit  NULL qiymatlari bo'lmasligi kerak.

Har qanday qismda NULL saralash mavjudligini taxmin qilish asosiy kalit, bu uning barcha maydonlarining yozuvlarni noyob identifikatsiyalash uchun zarur emasligi va ta'rifga zid kelishi haqidagi bayonotga teng keladi asosiy kalit.

Malumotning yaxlitligi

Ko'rsatilgan yaxlitlikni cheklash  xorijiy kalitlarga tegishli.   Tashqi kalit - bu boshqa (yoki bir xil) jadvalning kaliti bo'lgan bitta jadvalning maydoni (yoki ko'p maydonlar). Chet el kalitlari jadvallar o'rtasida mantiqiy aloqalarni o'rnatish uchun ishlatiladi. Aloqa bitta jadvalning tashqi kalit qiymatlarini boshqasining kalit qiymatlariga berish orqali o'rnatiladi.

Ikki yoki undan ortiq ma'lumotlar bazalari jadvallari mavjud bo'lishi mumkin bo'ysunish munosabatlariqaysi asosiy jadvalning har bir yozuvi uchun (shuningdek, deyiladi) aniqlaydi   ota-ona) bir yoki bir nechta kirish bo'lishi mumkin quyi jadval  (shuningdek chaqiriladi filiali).

Ma'lumotlar bazasi jadvallari o'rtasida o'zaro munosabatlarning uch turi mavjud:

  • birdan ko'pga;
  • birma-bir;
  • ko'pdan ko'pgacha.

Birdan-ko'pgacha bo'lgan munosabatlar bitta yozuv paydo bo'lganda yuzaga keladi ota-ona jadvali  bolaning bir nechta yozuvlariga mos kelishi mumkin. Birdan-birga bo'lgan munosabat ba'zan "ko'pchilikka" munosabat deb ataladi. Ikkala holatda ham jadvallar o'rtasidagi munosabatlarning mohiyati o'zgarishsiz qoladi.

Birdan-ko'pgacha bo'lgan munosabatlar relyatsion ma'lumotlar bazalari uchun eng keng tarqalgan. Bundan tashqari, ma'lumotlar ierarxik tuzilmalarini modellashtirishga imkon beradi.

Bitta kirish bitta kirishga kirishganda sodir bo'ladi ota-ona jadvali  boladagi bitta yozuvga to'g'ri keladi. Bu munosabatlar "birdan-ko'p" munosabatlariga qaraganda kamroq tarqalgan. Agar siz ma'lumotlar bazasi jadvalining ikkinchi darajali ma'lumotlardan "shishishini" istamasangiz, undan foydalaniladi. Birma-bir munosabatlarni qo'llash, bir nechta jadvallarda tegishli ma'lumotlarni o'qish uchun ma'lumotlar bitta jadvalda saqlanganda, bitta emas, balki bir necha o'qish operatsiyalarini bajarish kerakligiga olib keladi.

Ko'pchilikning o'zaro munosabati quyidagi holatlarda ro'y beradi:

  • bitta kirish ota-ona jadvali bolalar jadvali ;
  • bitta kirish bolalar jadvali  bir nechta kirishga mos keladi ota-ona jadvali.

Ko'pchilik bilan har qanday munosabatlarni birdan-ko'pgacha bo'lgan munosabatlar (bir yoki bir nechta) bilan almashtirish mumkin, deb ishoniladi.

Ko'pincha jadvallar o'rtasidagi munosabatlar o'rnatiladi asosiy kalit, ya’ni bitta jadvalning tashqi kalit qiymatlari berilgan qiymatlardir asosiy kalit  boshqasi. Biroq, bu kerak emas - umuman, ikkinchi darajali tugmachalar yordamida aloqa o'rnatilishi mumkin. Bundan tashqari, jadvallar o'rtasidagi munosabatlarni o'rnatishda, ulanishni o'rnatishni ta'minlaydigan kalitning ajralmas noyobligi talab qilinmaydi. Tashqi kalit maydonlarida mos keladigan kalit nomlari bilan bir xil nomlarga ega bo'lish shart emas. Tashqi kalit o'z jadvaliga murojaat qilishi mumkin - bu holda tashqi kalit rekursiv deb nomlanadi.

Malumotning yaxlitligi belgilaydi: agar jadvalda tashqi kalit bo'lsa, uning qiymati ham qiymatga mos kelishi kerak asosiy kalit  bazaviy jadvaldagi ba'zi bir yozuvlar yoki NULL aniqlovchi tomonidan o'rnatilgan.

Bilan bog'liq bir nechta muhim fikrlar mavjud xorijiy kalitlar. Birinchidan, tashqi kalitlarda nol qiymatlardan foydalanish mumkinmi yoki yo'qligini o'ylab ko'rishingiz kerak. Odatda, agar ishtirok etsa bolalar jadvali  Bu majburiy bo'lganligi sababli, tegishli tashqi kalitda nol qiymatlarni ishlatishni taqiqlash tavsiya etiladi. Shu bilan birga, agar qisman ishtirok etish bo'lsa bolalar jadvali  Shu sababli, bo'sh kalit maydoniga bo'sh qiymatlarni joylashtirishga ruxsat berilishi kerak. Masalan, ma'lum bir savdo kompaniyasining bitim tuzatish bitimida xaridorni ko'rsatish kerak bo'lsa, Mijoz kodi maydonida NULL atributi bo'lmasligi kerak. Agar mijozni ko'rsatmasdan tovarlarni sotish yoki sotib olishga ruxsat berilgan bo'lsa, ClientCode maydoni uchun siz NULL atributini ko'rsatishingiz mumkin.

Keyingi muammo tashkilot bilan bog'liq mos yozuvlar yaxlitligini qo'llab-quvvatlash  ma'lumotlar bazasida ma'lumotlarni o'zgartirish operatsiyalarini bajarishda. Bu erda quyidagi vaziyatlar mumkin:

  1. Unga yangi chiziq qo'ying bolalar jadvali. Ta'minlash uchun mos yozuvlar yaxlitligi  yangi satrning tashqi kalit qiymatiga ishonch hosil qilishingiz kerak bolalar jadvali asosiy kalit  satrlardan biri ota-ona jadvali.
  2. Qatorni o‘chirish bolalar jadvali. Hech qanday qoidabuzarlik yo'q mos yozuvlar yaxlitligi  sodir bo'lmayapti.
  3. Chet elda joylashgan kalitni yangilang bolalar jadvali. Ushbu holat yuqorida tavsiflangan birinchi vaziyatga o'xshash. Saqlash uchun mos yozuvlar yaxlitligi  yangilangan qatorda tashqi kalit qiymatiga ishonch hosil qilishingiz kerak bolalar jadvali  bo'sh qiymatga yoki maydonda mavjud bo'lgan ma'lum bir qiymatga teng asosiy kalit  satrlardan biri ota-ona jadvali.
  4. Qatorni ichkariga joylashtiring ota-ona jadvali. Bunday qo'shimchani buzish mumkin emas. mos yozuvlar yaxlitligi. Qo'shilgan qator oddiygina farzandsiz ota-onaga aylanadi.
  5. Qatorni o‘chirish ota-ona jadvali. Malumotning yaxlitligi  buzilsa, buziladi bolalar jadvali  o'chirilgan chiziqqa tegishli chiziqlar bo'ladi ota-ona jadvali. Bunday holda quyidagi strategiyalardan biri qo'llanilishi mumkin:
    • HARAKAT YO'Q. Qatorni o‘chirish ota-ona jadvali  man qilingan bo'lsa, taqiqlangan bolalar jadvali  kamida bitta satr mavjud.
    • KASSADA. Qatorni o'chirishda ota-ona jadvali  unga tegishli barcha satrlar avtomatik ravishda o'chiriladi bolalar jadvali. Agar biron bir satrni o'chirib tashlash kerak bo'lsa bolalar jadvali  boshqa yo'l bilan ota-ona tomoni sifatida ishlaydi, keyin o'chirish jarayoni barcha qatorlarga qo'llaniladi bolalar jadvali  bu ulanish va boshqalar. Boshqacha aytganda, chiziqni o'chirish ota-ona jadvali  avtomatik ravishda har qanday uchun amal qiladi bolalar stollari.
    • NULL QO'YING Qatorni o'chirishda ota-ona jadvali mos keladigan tashqi kalit maydonida unga tegishli bo'lgan bola munosabatlarining barcha satrlarida asosiy kalit  o'chirilgan satrda bo'sh qiymat yoziladi. Shuning uchun, satrlarni o'chirish ota-ona jadvali  tegishli maydonga bo'sh qiymatning kiritilishiga olib keladi bolalar jadvali. Ushbu strategiyadan faqat tashqi kalitlar maydonida foydalanish mumkin bolalar jadvali  bo'sh qiymatlarni qo'yish uchun ruxsat berilgan.
    • O'ZINGIZNI QO'YING. Qatorni o'chirishda ota-ona jadvali  unga taalluqli barcha satrlarning tashqi kalit maydonida bolalar jadvali  asl qiymati avtomatik ravishda joylashtirilgan, chunki bu maydon uchun belgilangan qiymat. Shunday qilib, bir chiziqni olib tashlash ota-ona jadvali  asl qiymati barcha satrlarning tashqi kalit maydoniga joylashtirilishiga olib keladi
Sizga maqola yoqdimi? Do'stlar bilan baham ko'ring: