Yana bir muhim jihat, bitta maʼlumotni bir nechta jadvalda qayta saqlashdan ogoh boʻling. Tasavvur qiling, sizda foydalanuvchilar va mijozlar degan jadvallar mavjud va siz biror shaxs haqidagi maʼlumotlarni ikkalasida ham saqlayabsiz. Agar bu shaxsning maʼlumotlari bitta jadvalda yangilansa (masalan telefon raqam oʻzgarsa), siz ikkinchi jadvalni ham yangilashingizga toʻgʻri keladi. Bu esa ortiqcha ish. Buning oldini olish uchun foydalanuvchilar uchun bitta jadval yaratib, bu foydalanuvchi mijoz yoki yoʻqligini attribut sifdatida koʻrsatish mumkin.
Ma’lumotlar bazasi qaysi turdagi ma’lumotlarni o’z ichiga olishi, bu ma’lumotlar qayerdan olinishi va ulardan qanday foydalanilishini oʻrganganingizdan soʻng, siz haqiqiy ma’lumotlar bazasini rejalashtirishga tayyor bo’lasiz.
2. Maʼlumotlar Bazasining tuzilishini reajalash
Navbat maʼlumotlar bazasining tashqi koʻrinishini shakllantirishga. Yuqorida koʻrganimizdek, relational MB jadvallardan iborat boʻladi. Har bir jadval esa ustunlar (attributlar) va qatorlardan tashkil topadi. Har bir qator ingliz tilida record deb ataladi va bitta buyum (shaxs) haqida maʼlumot saqlaydi.
Jadvalning har bir qatoridagi maʼlumotlarni bir xilda saqlash uchun, ularning turini ham tayinlab ketish maqsadga muvofiq boʻladi. Masalan Ism faqat matn, ID esa faqat raqam.
Umuman olganda maʼlumotlarni saqlashning quyidagi turlari mavjud:
CHAR – doimiy uzunlikdagi matnlar
VARCHAR – oʻzgaruvchan uzunlikdagi matnlar
TEXT – katta matnlar
INT – manfiy yoki musbat butun sonlar
FLOAT, DOUBLE – manfiy yoki musbat oʻnlik sonlar
BLOB – ikkilik sanoq tizimidagi maʼlumotlar
6
Shuningdek aksar maʼlumotlar omborlarini boshqaruv tizimlari har bir qator (record) uchun noyob ID raqamini ham qoʻshib ketadi.
Nihoyat, jadval attributlaridan birini birlmachi kalit (primary key) sifatida tanlaysiz. Bu attribut noyob boʻlib, faqatgina yagona qator (record)ga tegishli boʻlishi kerak. Misol uchun shaxsning ID yoki passport raqami noyob kalit boʻlishi mumkin. Birlmachi kalit yordamida biz roʻyxatdan kerakli qator (shaxs, mahsulot) ni ajrata olishimiz kerak.
Birlmachi kalit qilib tanlangan attribut nafaqat noyob va oʻzgarmas, balki doimo mavjud boʻlishi ham shart. Yaʻni bazaga maʼlumot qoʻshilganda bu qiymatni kiritmay tashlab oʻtish mumkin emas. Bu qadamda maʼlumotlar bazasini koʻz oldingizga keltirish uchun jadvallarni maxsus dastur yordamida yoki oddiy qogʻozda chizishingiz mumkin. Bunda jadvalni toʻliq emas, faqatgina unga tegishli attributlarni koʻrsatish kifoya.
3. Jadvallar oʻrtasida munosabat
Maʼlumotlar bazasi bir necha turdagi jadvallardan iborat boʻladi. Navbat bu jadvallar oʻrtasidagi munosabatlarni tahlil qilishga. Masalan, mijozlar va mahsulotlar, talabalar va darslar, oʻqituvchilar va oʻquvchilar oʻzaro qanday bogʻlangan? Ular oʻrtasidagi munosabat qay koʻrinishda boʻlishi kerak? Navbat shu savollarga javob berishga va munosabatlarni shakllantirishda.
Jadvallar oʻrtasidagi munosabatlar quyidagi 3 ta koʻrinishda boʻlishi mumkin:
One-to-one (birga-bir)
Jadvaldagi bitta qator (record) boshqa jadvaldagi bitta qatorga bog’langan bo’ladi. Bunday munosabat kamdan-kam uchraydi va umuman olganda bunday jadvallarni
7
jamlab yuborish tavsiya qilinadi.
Misol uchun quyida birinchi jadval mamlakat (country) ikkinchi jadval esa poytaxt (capital) haqida ma`lumotlarni saqlaydi. Bu ikki jadval esa birga-bir munosabat bilan bog’langan. Ya’ni, bitta davlatning bitta poytaxti bo’lishi mumkin, bitta poytaxt esa faqat bitta davlatga poytaxt bo’ladi.
Yuqorida aytganimizdek, bunday holatlarda poytaxt nomini davlatning attributi sifatida saqlagan afzal.
One-to-many (birga-ko’p)
Bunda bir jadvaldagi bitta qator (record) boshqa jadvaldagi bir nechta qatorlarga bog’langan bo’ladi. Masalan bitta mijoz bir nechta mahsulotlar xarid qilishi, bitta muallif bir nechta kitoblar chop etishi mumkin va hokazo. Bu munosabat one-to-many deb ataladi.
Bunday maʼlumotlar bazasini yaratishda, birinchi jadvaldagi birlmachi kalit, ikkinchi jadvalning attributi sifatida qo’shiladi. Yuqoridagi
8
misolda Customers (mijozlar) jadvalidagi Customer ID