Mundarija kirish mavzu




Download 1,38 Mb.
Pdf ko'rish
bet76/79
Sana30.01.2024
Hajmi1,38 Mb.
#148346
1   ...   71   72   73   74   75   76   77   78   79
Bog'liq
Mundarija kirish

 Noto'g'ri misol:  & lt; foo / & gt; 
 
ma'lumotlar bazasida quyidagicha saqlanishi mumkin : 
 Noto'g'ri misol:  & lt; foo / & gt; 
Bu bilan muammo shundaki, SQL kabi XML bo'lmagan so'rovlar tillari, 
ustunlik qiymatlarini belgilash va ob'ektni ishlatish uchun tekshirmaydi 
va ularni mos ravishda izohlaydi. Shunday qilib, agar siz "
satrini SQL bilan qidirishni xohlasangiz, aslida "& lt ; foo / & 
gt;" qatorini qidirishingiz kerakligini bilishingiz kerak . 
Boshqa tomondan, agar mantiqiy ob'ektlarning havolalari 
kengaytirilsa, ma'lumotlar uzatish dasturi mantiqiy ob'ektni ishlatishni 
ajratib ko'rsatolmaydi. Masalan, yuqoridagi tavsif bazada quyidagicha 
saqlanadigan bo'lsa, dasturiy ta'minot  va  belgilar yoki 
matn ekanligini aniqlay olmaydi. 
 Noto'g'ri misol:   
Ushbu muammoni uzoq muddatli hal qilish - bu XML bilan 
ishlaydigan ma'lumotlar bazasi bo'lib, unda haqiqiy belgilash faqat 
belgilashga o'xshash narsalardan farq qiladi. XML bo'lmagan dasturlar 
XML bilan ishlayotganda, ehtimol har doim ham muammolar bo'ladi. 
 
 


121 
Relational Schemas va Vitsa Versiyalaridan XML sxemalarini 
yaratish 
XML va ma'lumotlar bazasi o'rtasida ma'lumotlarni uzatishda keng 
tarqalgan savol bu ma'lumotlar bazasi sxemasidan XML sxemasini 
yaratish va aksincha. Buni qanday qilish kerakligini tushuntirishdan 
oldin, bu dizayn vaqtini talab qiladigan ish ekanligini ta'kidlash 
kerak. Buning sababi shundaki , ko'p ma'lumotlarga asoslangan 
dasturlar va deyarli barcha vertikal dasturlar ma'lum XML sxemalari va 
ma'lumotlar bazasi sxemalari bilan ishlaydi. Shunday qilib, ular ish 
vaqtida sxemalarni yaratishi shart emas. Bundan tashqari, quyida ko'rib 
o'tilganidek, 
sxemalarni 
yaratish 
protseduralari 
mukammal 
emas. Tasodifiy XML hujjatlarini ma'lumotlar bazasida saqlashi kerak 
bo'lgan dasturlar, ehtimol ish vaqtida sxemalar yaratish o'rniga mahalliy 
XML ma'lumotlar bazasidan foydalanishi kerak. O'zaro aloqador 
sxemalarni XML sxemalaridan va aksincha, yaratishning eng oson usuli 
- bu bir qator qo'shimcha funktsiyalarga ega bo'lgan ob'ektga nisbatan 
xaritalash orqali yo'lni kodlash. Ob'ektga yo'naltirilgan ma'lumotlar 
bazasidan foydalanish uchun shunga o'xshash protseduralar mavjud.
XML sxemasidan o'zaro bog'liqlik sxemasini yaratish uchun: 
 Har bir murakkab element turi uchun jadval va boshlang'ich kalit 
ustunlarini yarating.
 Aralash tarkibga ega har bir element turi uchun ota-ona jadvalining 
boshlang'ich kaliti orqali ota-ona jadvaliga ulangan PCDATA-ni 
saqlash uchun alohida jadval yarating. 
 Ushbu element turining har bir qiymatli atributi uchun va 
bitta oddiy 
bola 
elementi uchun 
ushbu 
jadvalda 
ustun 
yarating. Agar XML sxemasida ma'lumotlar turi ma'lumotlari 
mavjud bo'lsa, unda ustun turidagi ma'lumot turlarini tegishli turga 
o'rnating. Aks holda, ma'lumotlar turini CLOB yoki VARCHAR 
( 255) kabi oldindan belgilangan turga o'rnating. Agar bola 
elementi yoki atributi ixtiyoriy bo'lsa, ustunni bekor qiling.
O'zaro bog'liqlik sxemasidan XML sxemasini yaratish uchun: 
 Har bir jadval uchun element turini yarating. 
 Jadvaldagi har bir ma'lumot (kalit bo'lmagan) ustunlar uchun, 
shuningdek asosiy kalit ustunlari (elementlari) uchun element 
turiga atribut yoki tarkibiy modelga PCDATA-faqat bolalar 
elementini qo'shing. 


122 
 Asosiy kalit eksport qilinadigan har bir jadval uchun tarkibiy 
qismga kichik element qo'shing va jadvalni rekursiv ravishda qayta 
ishlang. 
 Har bir tashqi kalit uchun tarkibiy modelga bolalar elementini 
qo'shing va tashqi kalit jadvalini rekursiv ravishda qayta ishlang. 
Ushbu protseduralarning bir qator kamchiliklari mavjud. Ularning 
aksariyati qo'l bilan tuzatilishi oson, masalan, nomlarning to'qnashuvi va 
ustunlar ma'lumotlari turlari va uzunliklari. (DTD-larda ma'lumotlar turi 
ma'lumotlari mavjud emas, shuning uchun ma'lumotlar bazasida qanday 
turdagi 
ma'lumotlardan foydalanish 
kerakligini 
oldindan aytib 
bo'lmaydi. Esda tutingki, ma'lumotlar turlarini va ularning uzunligini 
XML sxemasi hujjatidan bashorat qilish mumkin.) 
Yana jiddiy muammo shundaki, XML hujjatida foydalaniladigan 
ma'lumotlar "modeli" ma'lumotlar bazasida ma'lumotlarni saqlash uchun 
eng samarali modelga qaraganda ko'pincha farq qiladi (va odatda 
murakkabroq). Masalan, XML ning quyidagi parchasini ko'rib chiqing: 
 
 ABC Industries  
 
 123 Asosiy ko'chasi < / ko'chasi> 
 Fooville  
 CA  
 AQSh  
95041
 
 
O'zaro bog'liqlikni XML sxemasidan yaratish tartibi bu yerda ikkita 
jadvalni yaratadi: biri mijozlar uchun, ikkinchisi manzillar uchun. Biroq, 
aksariyat hollarda manzilni alohida jadvalda emas, balki mijozlar 
jadvalida saqlash ma'qulroq. 
elementi o'rash elementining yaxshi namunasidir . Sharf 
elementlari odatda ikkita sababga ko'ra ishlatiladi. Birinchidan, ular 
hujjatni tushunishni osonlashtiradigan qo'shimcha tuzilmani taqdim 
etishga yordam beradi. Ikkinchidan, ular odatda ma'lumotlarni yozish 
shakli sifatida ishlatiladi. Masalan, elementini qayerda 
bo'lishidan 
qat'iy 
nazar barcha 


123 
manzillarni manzil ob'ektlariga o'zgartiradigan 
odatiy 
holatga 
o'tkazish mumkin.
Qoplash elementlari XML-da foydali bo'lsa-da, ular odatda 
ma'lumotlar bazasida joylashtirilganda qo'shimcha tuzilish shaklida 
muammolarga olib keladi. Shu sababli, aloqador sxemani yaratmasdan 
oldin ular odatda XML sxemasidan chiqarib tashlanishi kerak. XML 
sxemasini doimiy ravishda o'zgartirishi yoki o'zgartirishi dargumon 
bo'lganligi sababli, amaldagi hujjatlar va ma'lumotlar uzatish dasturi 
tomonidan kutilgan hujjatlar o'rtasida nomuvofiqlik yuzaga keladi
chunki o'rash elementlari xaritaga kiritilmagan. Buni hujjatlarni ish 
vaqtida o'zgartirish orqali hal qilish mumkin, masalan XSLT: o'rash 
elementlari ma'lumotlar bazasiga o'tkazilishidan oldin yo'q qilinadi va 
ma'lumotlar bazasidan ma'lumotlarni uzatgandan so'ng kiritiladi. 
Ushbu kamchiliklarga qaramay, yuqoridagi protseduralar XML 
sxemalarini relyatsion sxemadan va aksincha, ayniqsa katta tizimlardan 
yaratish uchun foydali boshlang'ich nuqtani beradi. 

Download 1,38 Mb.
1   ...   71   72   73   74   75   76   77   78   79




Download 1,38 Mb.
Pdf ko'rish