Mantiqiy ma'lumotlar modeli
Ushbu bosqichda diagrammani boshqa atributlar bilan to'ldirish va qo'shimcha (muqobil) kalitlarni aniqlash kerak. 2-jadvalda barcha jadvallar, maydonlar va ularning ma'nosi keltirilgan
2-jadval – Mantiqiy ma’lumotlar modeli
Jadval nomi
|
Maydon nomi (kalit)
|
Tavsif
|
Aktiv
|
id_asset (PK)
|
Identifikator, inventar raqami
|
id_assset_type (FK)
|
Element turi
|
id_asset_cat (FK)
|
Element toifasi
|
id_publisher (FK)
|
Nashriyotchi
|
id_hisob (FK)
|
Kutubxona kartasi
|
id_storage (FK)
|
Saqlash
|
id_restrict_cat (FK)
|
Cheklovlar toifasi
|
davlat
|
's' - saqlashda, "c" - qo'lda, "l" - yo'qolgan, "x" - hisobdan chiqarilgan
|
yaratgan
|
Post yaratilish sanasi
|
foydalanuvchi nomi
|
O'zgartirish kiritgan foydalanuvchining ismi
|
oxirgi sana
|
Sanani o'zgartirish
|
Cheklov toifasi (restrict_cat)
|
id_restrict_cat (PK)
|
Identifikator
|
cat_name
|
Kategoriya nomi
|
kunlar - jarimasiz
|
Yangilashsiz kunlar soni, agar 0 bo'lsa, u holda uyga berilmaydi
|
Element turi (aktiv_turi)
|
id_assset_type(PK)
|
Identifikator
|
type_name
|
Ismni yozing
|
Element toifasi (asset_cat)
|
id_asset_cat (PK)
|
Identifikator
|
cat_name
|
Kategoriya nomi
|
Nashriyotchi
|
id_publisher (PK)
|
Identifikator
|
nashriyot_nomi
|
Nashriyot nomi
|
yuridik_ism
|
Yuridik shaxs
|
yuridik_manzil
|
Yuridik manzil
|
Kitob
|
id_asset (PK) (FK)
|
Element identifikatori
|
kitob_nomi
|
Kitob nomi
|
asl_ism
|
asl ism
|
ISBN (AK)
|
ISBN
|
nashr qilish_yil
|
Nashr qilingan yili
|
sahifalar_soni
|
Sahifalar soni
|
Jurnal raqami
(press_issue)
|
id_asset (PK) (FK)
|
Element identifikatori
|
id_press (FK) (AK1)
|
Jurnal/Gazeta ID
|
emissiya_raqami (AK1)
|
Ishlab chiqarish raqami
|
nashr etilgan_sana (AK1)
|
Berilgan sanasi
|
sahifalar_soni
|
Sahifalar soni
|
Jurnal/Gazeta (matbuot)
|
id_press (PK)
|
Jurnal/Gazeta ID
|
nomini bosing
|
Ism
|
Muallif
|
id_author (PK)
|
Muallif identifikatori
|
ism
|
Ism
|
familiya
|
Familiya
|
ikkinchi_ism
|
Otasining ismi/otasi
|
tug'ilgan kun sanasi
|
Tug'ilgan kun
|
mamlakat
|
Muallif ishlagan/ishlagan mamlakat
|
kitob muallifi
(kitob_muallifi)
|
id_asset (PK1) (FK)
|
Element identifikatori
|
id_author (PK1) (FK)
|
Muallif identifikatori
|
Saqlash
(saqlash)
|
id_storage (PK)
|
Saqlash joylashuvi identifikatori
|
id_storage_room (FK) (AK1)
|
Ombor identifikatori
|
kod (AK1)
|
Kod/shkaf, javon, javon raqami
|
Ombor (saqlash_xonasi)
|
id_storage_room (PK)
|
Ombor identifikatori
|
id_emp (FK)
|
Ombor menejeri
|
manzil (AK1)
|
Bino manzili
|
xona_raqami (AK1)
|
Kabinet xonasi
|
saqlash_xonasi_nomi
|
Ombor nomi
|
Xodim (xodim)
|
id_emp (PK)
|
Xodim identifikatori
|
ism
|
Ism
|
familiya
|
Familiya
|
ikkinchi_ism
|
Familiya
|
ish_nomi
|
Lavozim
|
is_active
|
"Kutubxonada ishlaydi" belgisini qo'ying
|
Mijoz
|
id_client (PK)
|
Mijoz identifikatori
|
ism
|
Ism
|
familiya
|
Familiya
|
ikkinchi_ism
|
Familiya
|
manzil
|
Yashash joyi
|
tug'ilgan kun sanasi
|
Tug'ilgan kun
|
hujjat_nomi
|
ID nomi
|
hujjat_tafsiloti (AK)
|
Hujjatning tavsifi: seriyasi, raqami, tomonidan chiqarilgan
|
hujjat_yaroqli_orqali
|
Hujjat muddatigacha amal qiladi
|
Cheat chiptasi (hisob)
|
id_hisob (PK)
|
Cheat chipta identifikatori
|
id_client (FK)
|
Mijoz identifikatori
|
boshlanish sanasi
|
dan amal qiladi
|
tugash sanasi
|
Yaroqlilik muddati
|
jarimalar_sum
|
Jarimalar miqdori
|
Amaliyot turi (op_type)
|
id_op_type (PK)
|
ID turi
|
type_name
|
Ismni yozing
|
yuqoriroq
|
Ota-ona turi
|
to'liq ismi (AK)
|
Ota-ona turi nomi * Tur nomi
|
Aktivlar bo'yicha operatsiyalar (asset_operation)
|
id_asset (PK1) (FK)
|
Element
|
id_op_type (PK1) (FK)
|
Tranzaktsiya turi
|
yaratilgan (PK1)
|
Amaliyot sanasi
|
id_storage_in (FK)
|
Saqlash joyidan
|
id_storage_out (FK)
|
Saqlash joyiga
|
id_hisob (FK)
|
Mijozdan/Mijozga
|
id_emp (FK)
|
Xodim
|
izoh
|
Sabablari, izoh
|
Qarz operatsiyalari
(jarima_operatsiya)
|
id_asset (PK1) (FK)
|
Element
|
id_op_type (PK1) (FK)
|
Tranzaktsiya turi
|
yaratilgan (PK1)
|
Amaliyot sanasi
|
so'm
|
Miqdor >0, <0
|
id_emp (FK)
|
Xodim
|
izoh
|
Sabablari, izoh
|
Kutubxona kartalari bo'yicha operatsiyalar
(hisob_operatsiya)
|
id_hisob (PK1) (FK)
|
Chipta soni
|
id_op_type (PK1) (FK)
|
Tranzaktsiya turi
|
yaratilgan (PK1)
|
Amaliyot sanasi
|
id_emp (FK)
|
Xodim
|
izoh
|
Sabablari, izoh
|
Eslatma: yaratilgan, oxirgi sana, foydalanuvchi nomi maydonlari barcha jadvallarda o'zgarishlarni kuzatish uchun ishlatiladi. Shuningdek, so'rov turini ko'rsatuvchi maqsadli jadvalga kiritilgan barcha o'zgarishlarni qayd qiluvchi jurnallar jadvallarini yaratish yaxshi amaliyotdir. Bizning holatda saqlash ob'ektlari va kutubxona kartalari uchun jurnallar tranzaksiya jadvallarida amalga oshiriladi, lekin boshqa jadvallar uchun emas.
Jismoniy ma'lumotlar modeli
Oracle DBMS jadval maydonlari uchun quyidagi asosiy ma'lumotlar turlarini belgilaydi:
VARCHAR2 - o'zgaruvchan uzunlikdagi satr turi. Hajmi 4 KB gacha bo'lishi mumkin. Tanlangan kodlash va mintaqaviy sozlamalarga qarab, 1 belgi boshqa bayt sonini egallashi mumkin. Maksimal satr uzunligini ko'rsatadigan bitta parametrga ega.
CHAR - doimiy uzunlikdagi satr turi. U avvalgisidan farq qiladi, chunki qolgan bo'shliq bo'shliqlar bilan to'ldiriladi.
NUMBER - raqamli turi. Ham butun, ham kasrlarni o'z ichiga olishi mumkin. U ikkita parametrga ega, raqamdagi muhim raqamlar soni va o'nli kasrlar soni.
DATE sana va vaqtni saqlash turidir. Mintaqaviy sozlangan vaqt mintaqasidagi vaqtni o'z ichiga oladi, ikkinchisiga to'g'ri keladi.
TIMESTAMP - kengaytirilgan sana va vaqt turi bo'lib, ma'lum bir aniqlik bilan soniyaning kasrlarini o'z ichiga oladi.
RAW ma'lum uzunligi 2000 baytgacha bo'lgan ikkilik ma'lumotlar turi bo'lib, 64-bazada shifrlangan qator sifatida saqlanadi.
CLOB/BLOB - mos ravishda qatorli va ikkilik katta ob'ekt (LOB) ma'lumotlar turlari. Ob'ektning maksimal hajmi 4 GB. Ushbu turdagi ob'ektlar jadvaldan alohida saqlanadi, unda faqat havola ko'rsatilgan.
Identifikatorlar uchun eng koʻp qoʻllaniladigan tur NUMBER(38). U nisbatan kichik hajmdagi xotirani egallaydi va raqamli turlarni taqqoslash eng tezdir.
Ko'pgina hollarda, DATE turi sanalarni saqlash uchun mos keladi. TIMESTAMP dan foydalanish qisqa vaqt ichida ko'p sonli qatorlar yozilgan hollarda foydalidir. Misol uchun, bizning kutubxona sxemamizda bu turdagi operatsion jadvallar uchun mos keladi.
Barcha satr turlari uchun siz VARCHAR2 dan foydalanishingiz kerak, aktivlar jadvalining davlat maydonidan tashqari, bu erda CHAR(1) dan foydalanish yaxshiroq. ISBN maydoni uchun VARCHAR2 dan foydalanishga arziydi, chunki bu raqam tartibga solingan formatga ega.
Bo'limlar va indekslar keyingi bobda Oracle DBMSda jadvallar yaratish bilan birga muhokama qilinadi.
SQL skriptlarini va saqlangan protseduralarni yaratish Jadvallar yaratish
Misol tariqasida "Saqlash elementi" ob'ekti yordamida standart jadval yaratish skriptini ko'rib chiqaylik:
jadval aktivini yaratish (
id_asset raqami (38) null asosiy kalit emas,
id_asset_type raqami (38) null emas,
id_asset_cat raqami (38) null emas,
id_publisher raqami (38) null emas,
id_hisob raqami (38) null emas,
id_storage raqami (38),
id_restrict_cat raqami (38),
davlat belgisi (1) null emas,
yaratilgan sana standart sysdate null emas,
foydalanuvchi nomi varchar2(60) null emas,
oxirgi sana null emas)
Jadval yaratish ifodasi jadval yaratish so'rovini bildiradi. Undan keyin kerakli nom keladi. U noyob bo'lishi, bo'sh joy bo'lmasligi va 30 belgidan oshmasligi kerak. Ikki tirnoq ichida ko'rsatilmagan bo'lsa, ism katta-kichik harflardan farq qiladi. Biroq, ulardan kamdan-kam hollarda foydalanish tavsiya etiladi (masalan, tanlangan so'rovda maydon nomlarini formatlashda),
Maydonlar nomdan keyin qavslar ichida keltirilgan. Maydon nomi va turi ko'rsatilishi kerak, qolgan ko'rsatilgan parametrlar ixtiyoriy. "Not null" cheklovni o'rnatadi, agar siz maydonni bo'sh qiymatga (null) o'rnatishga harakat qilsangiz, xatolikni qaytaradi. "Standart" standart qiymatni o'rnatadi, agar so'rovda aniq o'tkazilmagan bo'lsa, u satrga almashtiriladi. Misol uchun serverda o'rnatilgan joriy sanani qaytaradigan sysdate kalit so'zidan foydalaniladi. Birlamchi kalit berilgan maydonda asosiy kalit cheklovini o'rnatadi.
Jadval yaratilgandan keyin ham cheklovlar qo'shilishi mumkin. Faraz qilaylik, biz undan keyin qolgan aktivlar bilan bog'liq jadvallarni yaratdik. Birinchi jadval yaratilganda, chet el kaliti cheklovini aniqlash mumkin emas edi, chunki unga murojaat qilish kerak bo'lgan jadval yo'q edi. Keling, id_asset_type maydonining misolini ko'rib chiqaylik:
jadval aktivini o'zgartirish fk_asset_type qo'shish cheklovi
tashqi kalit (id_asset_type)
manbalar_turi (id_aktiv_turi)
"Tadvalni o'zgartirish" buyrug'i ma'lumotlar bazasidagi jadvalning ta'rifini o'zgartiradi. "Qo'shish cheklovi" iborasi yangi yaxlitlik cheklovini yaratish kerakligini ko'rsatadi. Bu asosiy kalit, tashqi kalit, muqobil kalit (noyob) yoki shart uchun qiymatni tekshirish (tekshirish) bo'lishi mumkin. Keyinchalik cheklov nomi keladi, bu jadvalning ta'rifida yagona bo'lishi kerak, lekin butun sxema yoki ma'lumotlar bazasi uchun emas.
"Xorijiy kalit" dan keyin cheklovlar qo'yilgan maydonlarning nomlari, shuningdek, ular bilan bog'langan jadval maydonlarining nomi va nomlari vergul bilan ajratilgan.
Keling, shunga o'xshash buyruqni ishlatamiz va davlat maydoniga qiymat tekshiruvini o'rnatamiz. Biz u s, c, l yoki x qiymatlarini olishi kerakligini aniqladik.
jadval aktivini oʻzgartirish chek_status qoʻshish
tekshiring (('s','c','l','x'))
0>
Dostları ilə paylaş: |