240 likes | 471 Views
پايگاه داده محلی XML. اميررضا يزدان شناس هومن بنده مقدم. آيا XML يک پايگاه داده می باشد؟. بله: در شرايط خاص مجموعه ای ازداده ها مانند تمامی فايلها. آيا XML يک پايگاه داده می باشد؟ (ادامه). مزايا خود-توضيح قابليت حمل نمايش داده در قالب درختی معايب دسترسی کند به داده.
E N D
پايگاه داده محلی XML اميررضا يزدان شناس هومن بنده مقدم
آيا XMLيک پايگاه داده می باشد؟ • بله: در شرايط خاص • مجموعه ای ازداده ها • مانند تمامی فايلها
آيا XMLيک پايگاه داده می باشد؟ (ادامه) • مزايا • خود-توضيح • قابليت حمل • نمايش داده در قالب درختی • معايب • دسترسی کند به داده
XML به عنوان يک DBMS • ذخيره سازی(سند XML) • شماها (DTDs, XML Schemas) • زبانهای Query(XQuery, XPath, XQL) • واسطهای برنامه نويسی (SAX, DOM, JDOM)
XML به عنوان يک DBMS(ادامه) • کمبودها: • ذخيره سازی بهينه • Indexes • امنيت • تراکنش • دسترسی چند کاربره • …
داده و مستند • موارد استفاده از XML: • ذخيره سازی داده • ذخيره سازی مستندات • انتقال داده بين پايگاه داده و application در مورد اول • مستندات XHTML و DocBook در مورد دوم
مستندات داده-محور • استفاده برای انتقال داده • طراحی شده برای استفاده ماشينی • خصوصيات مستندات داده-محور: • ساختار منظم • داده های ريز دانه • عدم وجود داده های مرکب • منشا دادهها: • داده ها می توانند در داخل و يا خارج پايگاه داده توليد شوند • حجم بالای legacy data ذخيره شده در پايگاه های داده • داده های علمی جمع آوری شده از سيستمهای اندازه گيری
مستندات متن-محور • عموما طراحی شده برای استفاده انسان • کتابها • پست الکترونيکی • تبليغات • سندهای دست نويس XHTML • خصوصيات مستندات متن-محور: • ساختارهای بدون نظم • داده های درشت دانه • حجم بالای داده های مرکب • ترتيب قرار گرفتن عناصر مجاور حايز اهميت می باشد
پيدايش پايگاه داده محلی XML(XML Native Database) • اصطلاح مذکور درتبليغات نرمافزار Tamino توسط شرکت Software AG مطرح گرديد. • اين اصطلاح به خاطر موفقيت Tamino همه گير شد. • نکته منفی: هيچ تعريف صوری و تکنيکی برای اين واژه موجود نبود.
تعريف • يک پايگاه داده محلی XML درای شریط زیر است: • يک مدل منطقی برای يک مستندXML ارايه می شود: • نه برای داده موجود در سند • اين مدل شامل elements، attributes ، PCDATA و Document Order می باشد. • واحد بنيادين در ذخيره سازی: يک مستندXML • معادل رديف (tuple, row) در پايگاه داده ی رابطه ای • وجود مدل ذخيره سازی فيزيکی خاص لازم نيست.
معماری های موجود • تقسيم شده به دو مجموعه اساسی: • مبتنی بر متن • مبتنی بر مدل
پايگاه داده محلی XML مبتنی بر متن • XML به صورت متن ذخيره می شود. • اشتراک بين تمامی پايگاه های داده موجود: indexes • امکان جهش به هر نقطه در سند XML توسط موتور پرس و جو • در هنگام بازيابی: • Single index lookup • Single head positioning • Single read • بر خلاف پايگاههای داده رابطهای که در آنها موارد زیر وجود دارد: • Reassembling a document from pieces • Multiple index lookup • Multiple disk reads
پايگاه داده محلی XML مبتنی بر متن(ادامه) • کارايی: • مشابه پايگاه داده سلسله مراتبی: • در صورت بازيابی بر اساس يک سلسله مراتب از پيش تعريف شده هر دو از پايگاه داده رابطه ای بهتر عمل می کنند. • در حالت های ديگربازيابی مشکلات کارآيی دارند. • مانند بالعکس کردن سلسله مراتب • بر خلاف پايگاه داده رابطه ای: • استفاده ازاشاره گرهای منطقی • پرس و جو های با يک اندازه از پيچيدگی با سرعت يکسان انجام می شوند.
پايگاه داده محلی XML مبتنی بر مدل • ابتدا يک مدل شي ای از سند ساخته می شود • سپس اين مدل ذخيره می شود • نحوه ذخيره سازی به پايگاه داده بستگی دارد • پايگاه داده رابطه ای • پايگاه داده شی گرا • قالبهای ذخيره سازی اختصاصی بهينه • نتايج کارآيی مانند پايگاه داده مورد استفاده
پايگاه داده محلی XML مبتنی بر مدل(ادامه) • مقايسه کارايی: • سيستمهای مبتنی بر متن: • سريعتر در برگرداندن سندها به صورت متنی • سيستمهای مبتنی بر مدل: • سريعتر در برگرداندن سندها به صورت درختهای DOM
خصوصيات پايگاه داده محلی XML موارد زير را بررسی میکنيم: • مجموعه مستندات • زبانهای پرس و جو • به روز آوری و پا ک کردن • Transactions, Locking, and Concurrency • Application Programming Interfaces (APIs)
مجموعه مستندات (Collecions) • پشتيبانی شده توسط اکثر پايگاه های داده • معادل نقش جدول(table) در پايگاه داده رابطه ای • مشابه مفهوم Directories در File Systemها • مثال: • مجموعه سفارشات خريد • مجموعه برگردانده شده برای پرس و جو به مجموعه سفارشات خريد محدود می گردد. • مجموعه های تو در تو(Nested) در تمامی پايگاه های داده پشتيبانی نمی شود.
زبان های پرس و جو • معروف ترين: XPath • گسترش يافته برای پرس و جو روی چندين مستند • Xquery • چندين و چند زبان اختصاصی(proprietary languages)
به روز آوری و پا ک کردن • Xupdate • از گروه XML:DB • از زبان XPath برای مشخص کردن مجموعه ندها استفاده میکند • Delete/inserte, before/after selected nodes • زبان Xquery به همراه الحاقات و ضمائم • By W3C XQuery working group • اما تا زمان اضافه نشدن syntax واقعی برای Update، انجام اين عمل مشکل خواهد بود
TRANSACTIONS, LOCKING, AND CONCURRENCY • تمامی پياده سازی های موجود از تراکنشها پشتيبانی می کنند. • اگر چه سطح قفل گذاری در حد سند می باشد! • همروندی چند کاربره اندک • به خود سند و نوع Application بستگی دارد • مشکل قفل کردن در سطح گره: پياده سازی • قفل کردن يک گره نيازمند قفل کردن پدر آن است. • در نتيجه پدر آن هم بايد قفل شود... • نهايتا منتج به ريشه می شود!
TRANSACTIONS, LOCKING, AND CONCURRENCY(ادامه) • دليل قفل کردن پدر: • پردازه 1 قفل روی گره X می گيرد. • اگر گره های بالای X قفل نباشند پردازه 2 می تواند آنها را پاک کند. • در عمل باعث پاک شدن گره X می شود. • راه حل : • چک کردن اينکه آيا گره هدف در مسير از ريشه تا گره قفل شده قرار دارد.
APPLICATION PROGRAMMING INTERFACES(API) • تمامی پايگاه های داده به نوعی از API پشتيبانی می کنند • معمولا در قالب يک واسط شبيه ODBC • روشهايی برای: • اتصال به پايگاه داده • Exploring metadata • اجرا کردن پرس و جوها • بازيابی نتايج • حرکت (Iterate) در مجموعه نتايج • در حالتی که چندين سند بازيابی می شود
API(ادامه) • بازیابی نتايج در قالب: • XML string • يک درخت DOM • يک SAX Parser يا XML Reader روی سند بازگردانده شده • استانداردهای کنونی: • XML:DB API from XML:DB.org • مستقل از زبان برنامه نویسی (Programming language-neutral) • استفاده از XPath به عنوان زبان پرس و جو • گسترش يافته برای پشتيبانی از XQuery • JSR 225: XQuery API for Java (XQJ) • براساس JDBC • استفاده از XQuery به عنوان زبان پرس و جو • به وجود امده توسط Sun's Java Community Process (JCP) • پشتيبانی شده توسطIBM و Oracle ، مقبوليت تدريجی پيش بينی می شود!
مراجع [1] M. Yao, et al., “XBench Benchmark and Performance Testing of XML DBMSs”, Proceedings of the 20th International Conference on Data Engineering, 2004 (ICDE’04) [2] D. Bitton, et al., “Benchmarking database systems, a systematic approach”, Proceedings VLDB Conference, October 1983 [3] XBench, Available at http://softbase.uwaterloo.ca/~ddbms/projects/xbench/ [accessed 01/03/2007] [4] XMark, Available at http://monetdb.cwi.nl/xml/index.html [accessed 01/03/2007] [5] XMark FAQ, Available at http://monetdb.cwi.nl/xml/faq.txt [accessed 01/03/2007]