Kuban davlat universiteti


Mantiqiy ma'lumotlar modeli



Yüklə 208,12 Kb.
səhifə8/12
tarix16.12.2023
ölçüsü208,12 Kb.
#183467
1   ...   4   5   6   7   8   9   10   11   12
kursovaya 2.ru.uz

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.
    1. 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.

  1. SQL skriptlarini va saqlangan protseduralarni yaratish

    1. 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'))



    1. Yüklə 208,12 Kb.

      Dostları ilə paylaş:
1   ...   4   5   6   7   8   9   10   11   12




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin