XML, SGML bilan mos keladi.
XML aslida SGMLning maxsus shoxchasi hisoblanadi.
XML-hujjatlarni qayta ishlovchi programmalarni yozish oson.
XMLning qo‘shimcha funktsiyalarini miqdori minimal, idealda nolga teng bo‘lsin.Qo‘shimcha funktsiyalarni minimal bo‘lishi xml –hujjatni qayta ishlovchi programmani yozishni soddalashtiradi
XML-hujjatlar foydalanuvchi uchun tushunarli va ochiq- ravshan bo‘lishi kerak.XML butun dunyodagi programmalar va foydalanuvchilar orasida axborot almashinuvi uchun uviversal til (lingua franca) boladi. Foydalanuvchilar XML- hujjatni osonlik bilan o‘qiydilar, chunki u oddiy Matnsifatida ifodalanadi va daraxt ko‘rinishidagi iyerarxik strukturaga ega.
XML ni ishlab chiqish yyetarli darajada tez tugallanishi kerak.
XML tili formal va qisqa bo‘lishi kerak.
XML-hujjatlarni yaratish oson ish bo‘lsin.
XML-hujjatlar siqilgan formatda bo‘lsa , hajmi minimal qiymatni oladi.
Ma'lumotga yo‘naltirilgan hujjatlarda ma'lumotlarni saqlash va olish uchun sizga qanday dastur kerakligi sizning ma'lumotlaringiz qanchalik yaxshi tuzilganligiga bog'liq bo‘ladi. Telefon kitobidagi oq sahifalar kabi yuqori darajada tuzilgan ma'lumotlar uchun sizga ma'lumotni saqlash uchun konfiguratsiya qilingan XML bilan bog'langan ma'lumotlar bazasi, masalan, relatsion yoki obyektga yo‘naltirilgan ma'lumotlar bazasi va ma'lumot uzatish dasturining bir turi kerak bo‘ladi. Buni ma'lumotlar bazasiga kiritish mumkin (bu holda ma'lumotlar bazasi XML-quvvatlanadi) yoki u o‘rta dasturlar yoki XML-server kabi uchinchi tomon dasturlari bo‘lishi mumkin. Agar sizning ma'lumotlaringiz qisman tuzilgan bo‘lsa, masalan, telefon daftaridagi sariq sahifalar yoki sog'liq to‘g'risidagi
ma'lumotlar, sizda ikkita variant mavjud. O‘zingizning ma'lumotlaringizni aloqador ma'lumotlar bazasi kabi yaxshi tuzilgan ma'lumotlar bazasiga joylashtirishga harakat qilishingiz mumkin yoki yarim tuzilgan ma'lumotlarni qayta ishlash uchun mo‘ljallangan o‘z XML bazangizda saqlashingiz mumkin.
Ko‘pgina protokollar, fayl tizimlari va Butunjahon Internetining texnologiyalari singari kengaytiriladigan markalash tili (XML) - kengaytiriladigan belgilash tili - kam vaqt ichida keng foydalanishga o‘tdi.
Dastlab veb-nashrlar tomonidan hujjatlar almashish texnologiyasi sifatida tanilgan XML sanoat tomonidan tanilgan saqlash va uzatish muhitiga aylandi.
Bir vaqtlar Internetda chop etilgan hujjatlar deyarli faqat matnlar va rasmlardan iborat bo‘lgan bo‘lsa, endi ushbu hujjatlar (allaqachon XML asosida) ichki (back end) tizimlarning ma'lumotlar bazasidan tanlab olingan ma'lumotlarni, shuningdek ilovalarni va ma'lumotlarni etkazib berish uchun eng maqbul vositaga aylanmoqda. o‘rta (o‘rta daraja) va tashqi (oldingi) tizim hujjatlari.
Ammo endi XML ma'lumotlar ombori tarkibiga kira boshladi va ma'lumotlarni saqlash tuzilmalarining ajralmas elementiga aylandi.
Ilgari, Oracle XML Developers to‘plamlari (XDKs) ma'lumotlar bazasidan tashqarida XML ma'lumotlarida (yoki XML ma'lumotlarida) ishlash uchun ishlatilgan, ammo endi dastur ishlab chiquvchilari ushbu ma'lumotlarga ishlov berishni dasturiy interfeyslardan foydalanadigan barcha darajalar o‘rtasida taqsimlashlari mumkin. ushbu to‘plamlar XDK API yoki SQL XML interfeyslari.
Biroq, ma'lumotlar bazalarida XML-ni saqlash va boshqarish bilan bog'liq ko‘plab muammolar mavjud va bu muammolar sizning barchangizga ularni engib o‘tish mumkinligini bilishi mumkin, ammo buni qanday qilishni aniq bilmaydi. Asosiy ma'lumotlar bazalari relyatsion tuzilishga ega va XML ierarxik tuzilishga ega va yaqin vaqtgacha ularni birlashtirishning oddiy va oqlangan usuli yo‘q edi. An'anaga ko‘ra, ishlab chiquvchilar ikkita tanlov qilishgan:
yoki deklaratsiyalash / dekompozitsiyalash uchun hujjat ma'lumotlarini nisbiy ma'lumotlarga aylantirish yoki ularni ma'lumotlar bazasida saqlash uchun foydalaning,yoki butun hujjatni
matnli fayl sifatida saqlang (ma'lumotlar bazasida yozuv sifatida) va shu bilan uning tuzilishini saqlab qoladi.
Shuni yodda tutish kerakki, XML-ni ma'lumotlar bazasiga "ko‘chirish" barcha holatlarda bir xildir. Ma'lumotni saqlashning har bir modeli o‘zining ijobiy va salbiy tomonlariga ega. Qaysi XML saqlash modeli sizning dasturingiz ehtiyojlariga eng mos kelishini tushunish sizning muvaffaqiyatingiz uchun juda muhim va sizning ilovangizni ba'zi XML saqlash modeliga moslashtirishdan ko‘ra muhimroqdir.
Ushbu maqolaning maqsadlaridan biri o‘zingiz uchun eng yaxshi modelni aniqlashga yordam berishdir. Ushbu maqolada men saqlashning ikkala modelini ham tushuntiraman:
Hujjatni "parchalash" (XML faylini aloqador ma'lumotlarga aylantirish va keyinchalik SQL orqali boshqarish) va harakterli katta obyekt (CLOB) saqlash modeli.
Keyin men sizni Oracle-ning XML DB omborxonasi va ushbu (ikkita) XMLType bilan tanishtiraman, ular bir nechta qo‘shimcha funktsiyalar bilan ushbu ikki modelning kombinatsiyasidir. Ideal holda, sizning ilovangizga mos keladigan saqlash modeli haqida yaxshi tasavvurga ega bo‘lasiz.
Agar HTML - bu gipermatnli belgilash tili bo‘lsa, XML - bu har qanday tuzilgan ma'lumotlarni taqdim etishga imkon beradigan til. HTML bizga hujjatning tuzilishini, har qanday elementlarni, chiziqlarni, bloklarni va boshqalarni namoyish qilishimizga imkon beradi. XML bizga ma'lumotlarni saqlash uchun qulay bo‘lgan strukturani yaratishga imkon beradi.
Belgilangan tillarning barchasi bitta, ammo juda katta kamchilikka ega. Xuddi shu HTML veb-sahifalarni yoki HTML- hujjatlarni taqdim qilishimizga imkon beradi va biz ushbu go‘zallikni brauzerlarimizda ko‘rishimiz mumkin, ammo HTML boshqa ba'zi mijozlar yoki dasturlarda yoki boshqa maqsadlarda qulay bo‘lishi haqiqat emas. XML-da bunday kamchiliklar yo‘q. Uni kengaytiruvchi deb nomlash bejiz emas, X harfi eXtensible bo‘lib, kengaytiriladigan deb tarjima qilinadi.
XML bu mutlaqo universal va mutlaqo kengaytiriladigan ma'lumotlarni belgilash tili. XML-ning kengayishi tufayli biz qo‘llarimizni kuchli vositaga olamiz, uning asosida siz belgilash tilini o‘zingiz ishlab chiqishingiz va undan foydalanishingiz mumkin.
XML-ning yana bir shubhasiz afzalligi - bu platformaning mustaqilligi. Ya'ni biz baraban ustida, qanday operatsion tizim bilan ishlashni, qaysi dastur bilan XML bilan ishlashni, qaysi dasturlash tilini, bularning barchasida XML uchun.
XML hujjati. XML hujjatining tuzilishi. XML hujjatida nima bo‘lishi mumkin?
Endi XML hujjatlari haqida suhbatlashamiz, XML hujjatining tuzilishi bilan tanishamiz va shuningdek, XML hujjatiga nima kiritilishi mumkinligini ko‘rib chiqamiz. XML-ning maqsadi ma'lumotlarni siz uchun qulay bo‘lgan dasturlash tilidan foydalangan holda sizga qulay shaklda va platformada taqdim etishdir. Hammasi yaxshi bo‘lgani kabi aqldan ozishingiz mumkin.
Va shuning uchun XML hujjati quyidagilarni o‘z ichiga oladi: ma'lumotlar, ushbu ma'lumotlarning tuzilishi, shuningdek ma'lumotlar taqdim etish darajasi. Umuman olganda, biz hujjatlarga tez-tez duch kelamiz, pochta qutilariga spam ko‘rinishidagi Excel-da turli xil narxlar ro‘yxati keladi, men kecha maktabda geografiya bo‘yicha insho topshirdim, chorak tugaganidan so‘ng, men o‘zimning baholarimni kuchaytirishim kerak, shuning uchun bu abstrakt ham hujjat edi, lekin allaqachon. dok formatida.
Shunday qilib, geografiya bo‘yicha abstraktda Yerning dumaloq va aylanuvchi ekanligi haqida ma'lumotlar bor edi, Galiley Galileyning tarjimai holi - bu ma'lumotlar. Mening geografiya haqidagi inshomim tuzilishga ega edi, ya'ni men o‘zimning inshomim nima va uni qanday maqsadda yozganim haqida gapirib berdim (tabiiyki, mening maqsadim xudbinlik, uchlik olish edi, shunda chorakda ikkitasi bo‘lmasdi, lekin uni kirish qismida yozmadim), xulosa chiqardim, bajarilgan ishimni (Vikipediyadan asabiy nusxa ko‘chirma nusxasi va tezislar va dz saytlaridan) xulosa chiqardim, qulaylik sifatida men abstraktni bir nechta mantiqiy qismlarga ajratdim: Galileo Galileyning tarjimai holi, Planet Er, sayyora Yer Quyosh tizimining obyekti sifatida. Bularning barchasi mening mavhumimning tuzilishidir va XML-da biz XML hujjatining tuzilishini o‘zimiz yaratamiz. Odatda, XML hujjati daraxt tuzilmasiga ega, uni shartnomalar bilan taqqoslash mumkin, masalan, ipoteka shartnomasi, 1-band, 1.1-band, keyin 1.1.1-band, uni bajargan kishi bu aslida byurokratik tuzilma ekanligini biladi. Bularning barchasi uyasi
yoki daraxt yoki daraxt tuzilishi deb atash mumkin, bu XML hujjatining tuzilishi haqida.
XML taqdimot qatlami yoki hujjatning XML namoyishi. Yaxshi, bularning barchasi juda sodda, taqdimot darajasi - bu hujjatni monitor ekranida, brauzerda, printerda va hokazolarni qanday ko‘rayotganingiz, mening inshoimga qaytarganimdan so‘ng, men jasur sarlavhalarni ajratib ko‘rsatdim, ularni 16 ta shrift o‘lchamiga aylantirdim va shuningdek qildim. ular kursiv, men chap tomonda 20 mm, chapda, o‘ngda, pastki va tepada 5 mm. Mavzu ichidagi matn uchun men Times New Roman shriftini 14 o‘lchamga o‘rnatdim, qo‘shimcha uslublarsiz, satr oralig'i 1,5 edi, bularning barchasi Wordda va eskirganimdan so‘ng ekranda ko‘rish mumkin bo‘lgan hujjatning taqdimoti deb atash mumkin. geografiya bosma. XML shuningdek hujjatning namoyishiga ega.
Ammo XML boshqa markalash tillaridan juda muhim farq qiladi, yana HTML - bu elementlar qaerda joylashishi, qanday joylashishi, ushbu elementlarning o‘lchamlari va boshqalar bo‘lgan odatiy sahifa uchun tavsiflash tili. Ammo XML-da taqdimot darajasi yo‘q, XML yordamida siz faqat ma'lumotlar va munosabatlarni tasvirlashingiz mumkin. Bizning birinchi stolimizdan bo‘lgan nadejda, Nadejda Petrovnaning (matematika o‘qituvchisi) sevimlisi, albatta savol berishadi - Buni qanday tushunish mumkin? Yoki XML ma'lumotlarni qaysi shaklda taqdim etadi? Bu savolga javob oddiy - XML siz istamaguningizcha ma'lumotlarni biron bir shaklda taqdim etmaydi va hujjat siz xohlaganingizcha ko‘rinishi mumkin, ammo bu XML formatida standart emas. Yoki XML hujjati brauzer ekranida qanday ko‘rinishi kabi savol? Javob - XML hujjati brauzer ekranida hech qanday ko‘rinishga ega bo‘lmaydi. Faqat XML hujjati o‘zi brauzer ekranida bosilgan. XML bu juda mavhum til bo‘lib, unda hujjatni o‘zingiz qilishingiz va yuragingiz xohlagan narsani bajarishingiz mumkin.
XML ma'lumotlari bo‘yicha so‘rovlar.Turli xil standartlar va so‘rovlar tillarining paydo bo‘lishining chuqurligi va kelib chiqish sabablarini o‘rganishdan oldin, biz aniq bir savolga javob beramiz - nima uchun bularning barchasi, eski SQL-dan foydalanish mumkinmi?
Nega SQL emas?
Ma'lumotlar bazasini boshqarish tizimlari bugo’ngi kunda yirik axborot tizimlari uchun amalda standart hisoblanadi. Biroq, nisbiy tushunchaning o‘zi XML ma'lumotlarini saqlash uchun juda mos emas. XML hujjatlarini saqlash oldindan aniqlangan sxemani talab qilmaydi, bu ma'noda XML obyektlari o‘z-o‘zidan talab qilinadi, ular so‘rovni yaratish va individual elementlarga kirish uchun zarur bo‘lgan barcha ma'lumotlarni o‘z ichiga oladi. Ushbu yondashuv oxir- oqibat biroz ko‘proq saqlash joyini talab qiladi, ammo hech qanday qayta qurishsiz narsalarni qo‘shish va o‘chirishga imkon beradi. Aloqador ma'lumotlar bazasida yangi qiymatlardan foydalanish imkoniyati uchun kamida UPDATE SCHEMA ADD / DROP COLUMN ishlash talab etiladi - mijoz dasturlarini qayta dasturlash.
Klassik relatsion modelda qo‘llab-quvvatlanmaydigan XML hujjatlarini saqlash va boshqarish tizimlari uchun bir qator muhim talablar mavjud. Birinchidan, ta'rifiga ko‘ra (birinchi oddiy shaklning talabi), ustunlar atom qiymatiga ega bo‘lishi kerak, bu XML ma'lumotlari uchun mutlaqo maqbul emas. Shunday qilib, XML obyekti bir necha jihatdan saqlanadi va ma'lumotlarni olish uchun bir nechta ma'lumot ulanish operatsiyalari talab qilinadi, ya'ni. asosiy va tashqi kalitlarni taqqoslash, shu bilan birga XML hujjatlaridagi havolalar to‘g'ridan-to‘g'ri ko‘rsatgichdan boshqa narsa emas. Bundan tashqari, o‘zaro bog'liqlik sxemasida butun obyektning yaxlitligini ta'minlash uchun tegishli tetikleyicilarni amalga oshirish talab etiladi.
Ikkinchidan, munosabatlarda chiziqlar buyurtma qilinmaydi, ya'ni. chiziqqa pozitsiyali emas, balki faqat tarkib bo‘yicha kirish mumkin - ierarxiya qo‘llab-quvvatlanmaydi. Albatta, sanoat tizimlarida ierarxiyalarni bitta jadvalda (munosabatlarda) qo‘llab- quvvatlash usullari mavjud, ammo oxir-oqibat bu hali ham qiymat bo‘yicha qo‘ng'iroq orqali amalga oshiriladi.
Keling, XML ma'lumot modeli va relyatsion model o‘rtasidagi yuqoridagi farqlarni umumlashtiramiz.
|