1 / 23

ارائه معماری برای پرس‌وجو در داده‌های Xml

ارائه معماری برای پرس‌وجو در داده‌های Xml. استاد راهنما: دکتر رهگذر تهیه کننده: مجید کلکته‌چی پائیز ۸۷. مباحث مطروحه. انواع روش‌های دسترسی به داده‌های Xml روش‌های دسترسی مستقیم xPath مزایا و معایب xQuery مزایا و معایب روش دسترسی به داده‌های توزیع شده . مباحث مطروحه.

ancelin
Télécharger la présentation

ارائه معماری برای پرس‌وجو در داده‌های Xml

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ارائه معماری برای پرس‌وجو در داده‌های Xml استاد راهنما: دکتر رهگذر تهیه کننده: مجید کلکته‌چی پائیز ۸۷

  2. مباحث مطروحه • انواع روش‌های دسترسی به داده‌های Xml • روش‌های دسترسی مستقیم • xPath • مزایا و معایب • xQuery • مزایا و معایب • روش دسترسی به داده‌های توزیع شده

  3. مباحث مطروحه • انواع روش‌های دسترسی به داده‌های Xml • روش‌های دسترسی به‌وسیله واسط‌های برنامه‌نویسی • SAX • JAXB • معماری ارائه شده • شمای کلی معماری • مزایا و معایب معماری

  4. انواع روش‌های دسترسی به Xml • روش‌های دسترسی مستقیم • استانداردهای کنسرسیوم وب جهانی برای Xml • Xpath • Xquery • xPointer • xLink • XSLT

  5. Xpath • ساختار کلی دستورات در Xpath: • Step1/step2/…/stepn • ساختار هر گام به صورت زیر خواهد بود: • axis:: nodetest ([ predicate]) • استفاده از توابع موجود: doc(uri)، position()... • مزایای Xpath • معایب Xpath

  6. Xpath • //country[@car code= ”B”]/population • تست نود به همراه عنصر پاشنه گردی child /child::mondial/child::country/child::province/child::city/child::name/text() • Predicateها: //country//city[population>10000000]

  7. xQuery • دستورات Xpath و Xquery • ساختار FlWOR برای دستورات Xquery • نمونه‌ای کلی از یک دستور در Xquery: for $var1 in expr1, $var2 in expr2, . . . , $varn in exprn let $var’1 := expr’1, $var’2 := expr’2, . . . , $var’m := expr’m where conditions order by order by expr return result

  8. xQuery • for $country in doc(”http://. . . mondial.xml”)//countrylet $capital := id($country/@capital)where $capital/population > 1000000order by $country/namereturn<result>{$country/name}</result> • every $country in //country satisfies $country/@area

  9. xQuery • توابع تعریفی کاربر در Xquery: declare function local:depth($e as node()) as xs:integer { if (empty($e/*)) then 1 else max(for $c in $e/* return local:depth($c)) + 1 };

  10. روش دسترسی به داده‌های توزیع‌شده • استفاده از xLink برای توزیع داده • مراحل بازیابی داده‌های توزیع شده: • استفاده از doc(uri) برای Xpath • استفاده از توابع تعریف شده توسط کاربر برای xPointer • مراحل فوق به صورت بازگشتی در درخت داده‌ها

  11. مزایا و معایب استفاده از Xquery • مزایا • سرعت اجرای پرس‌وجو • قابلیت بالا بردن کارایی انجام پرس‌وجو • کامل بودن زبان پرس‌وجو از لحاظ محاسباتی • معایب • هم‌خوانی نداشتن با روش‌های برنامه‌نویسی شی‌گرا • همزمانی و تراکنش برای تغییر اطلاعات

  12. روش‌های دسترسی غیر مستقیم • دسترسی از طریق واسط‌های برنامه‌نویسی • متفاوت در زبان‌های مختلف • SAX • JAXB

  13. SAX • واسط برنامه‌نویسی ساده برای کار با Xml • مدل کاری برمبنای پرتاب رویداد • انواع رویدادها( شروع تگ، انتهای تگ و ...) • پیاده‌سازی و ثبت‌نام کلاس‌هایی برای بررسی داده‌های Xml در زمان رخداد یک رویداد • در زمان پرتاب هر رویداد، متد‌ی خاص از کلاس فراخوانی شده و پارامترهای رویداد به آن فرستاده می‌شوند

  14. مزایا و معایب SAX • مزایا • سادگی واسط برنامه‌نویسی • سرعت مناسب آن در بررسی داده‌ها • معایب • پیچیدگی برنامه‌های ثبت‌نام شده برای رویدادها • وابستگی غیرضروری و ناشناخته درون متدهای ثبت‌نام شده برای رویدادها

  15. JAXB • همانند تبدیل داده‌های مدل رابطه‌ای به شیءگرا • مراحل: • اتصال شما به کلاس‌ها • تبدیل داده‌ها به اشیاء • روش تبدیل ساختار درختی به کلاس‌ها • به ازای هر تگ مستقل: یک کلاس • به ازای خصوصیات هر تگ: متغیرهایی در کلاس • به ازای تگ‌های فرزند: متغیرهایی از جنس کلاس آن تگ‌ها • دسترسی به داده‌های Xml از طریق یک کلاس نگاشت‌دهنده: قابل ساخت با استفاده از الگوی فکتوری

  16. JAXB • مثالی ساده(کلاس‌های معادل xml): public class Shiporder { protected List<Shiporder.Item> item; public List<Shiporder.Item> getItem() { if (item == null) { item = new ArrayList<Shiporder.Item>(); } return this.item; }... {

  17. JAXB • نمونه‌ای از استفاده: javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext.newInstance(Shiporder.class.getPackage().getName()); javax.xml.bind.Marshaller marshaller = jaxbCtx.createMarshaller(); marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8"); //NOI18N marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); if (!file.exists()) { shipOrder = new Shiporder(); shipOrder.setOrderid("1020"); shipOrder.setOrderperson("Farzad Ghanei");

  18. JAXB • ادامه: Shipto shipto = new Shipto(); shipto.setAddress("nia"); shipto.setCity("Tehran"); shipto.setCountry("Iran"); shipto.setName("Farzad Ghanei"); shipOrder.setShipto(shipto); marshaller.marshal(shipOrder,file); …..

  19. مزایا و معایب روش JAXB • مزایا: • هم‌خوانی زبان برنامه‌نویسی و مدل داده • مکانیزم‌های هم‌زمانی و تراکنش • بررسی صحت داده‌ها در بروزرسانی • اعمال ساده‌تر تغییرات • معایب: • کند بودن زمان اجرا • وابستگی به XSDو انواع دیگر scheme

  20. معماری ارائه شده برای لایه داده • ارتباط لایه داده با لایه منطق تجاری • ارتباط لایه داده با دیتابیس سیستم • تقسیم‌بندی عملیات به خواندن و نوشتن • انجام عملیات خواندن با استفاده از روش‌های مستقیم • انجام عملیات بروزرسانی با استفاده از روش‌ JAXB

  21. ‌Business Lauyer(not Complete) DAO Implementation JAXB Interface XML Databases Documents & شمای معماری مطرح شده

  22. مزایا و معایب معماری فوق • مزایا • خواندن سریع اطلاعات برای نمایش • استفاده از قابلیت‌های کنترل هم‌زمانی و تراکنش‌های سطح برنامه • در صورت تغییر شمای Xml نبود نیاز برای تغییر بروزرسانی‌ها • معایب • درصورت تغییر شمای Xml، تغییر در پرس‌وجوهای خواندن • دوتکه بودن خواندن و نوشتن و نبود روش یکپارچه

  23. منابع • W.May, E.Behrends and O.Fritzen, Integrating and querying distributed XML data via XLink, Information System 33(2008), pp. 508-566 • http://www.w3.org/TR/xquery/ • http://www.w3.org/TR/1999/REC-xpath-19991116 • http://java.sun.com/developer/technicalArticles/WebServices/jaxb • http://www.w3schools.com/XPath/default.asp • http://www.w3schools.com/xpath/xpath_axes.asp • http://www.w3.org/TR/xquery-operator • http://www.w3schools.com/Schema/schema_example.asp

More Related