200 likes | 345 Views
بررسی وابستگیهای تابعی در فايلهای اکسامال. حسين حجت دانشکده فنی دانشگاه تهران. گزارشهای درس. گزارش اول: بررسی سيستم ترميم گزارش دوم: وابستگیهای تابعی در فايلهای اکسامال گزارش نهايي و مقالهی درس: بررسی پروتکلهای مبتنی برگراف در تراکنشها نگرش صوری ( formal methods ).
E N D
بررسی وابستگیهای تابعی در فايلهای اکسامال حسين حجت دانشکده فنی دانشگاه تهران
گزارشهای درس • گزارش اول: بررسی سيستم ترميم • گزارش دوم: وابستگیهای تابعی در فايلهای اکسامال • گزارش نهايي و مقالهی درس: بررسی پروتکلهای مبتنی برگراف در تراکنشها • نگرش صوری (formal methods)
منابع و مراجع • [1] Arenas M., Libkin L., “A normal form for XML documents”, ACM Symposium on Principles of Database Systems, pp. 85 – 96, 2002 . • [2] Arenas M., Libkin L., “A normal form for XML documents”, ACM Transactions on Database Systems (TODS), v. 29, n. 1, pp. 195 – 232, 2004. • [3] Bray T., Paoli J., SpengerMcQueen C., “Extensible Markup language (XML) 1.0”, W3C Recommendation • [4] COMP 442: Issues in Database and Information Systems 2005, University of Victoria • [5] Lee M., Ling T. W., Low W. L., “Designing Functional Dependencies for XML”, 8th International Conference on Extending Database Technology: Advances in Database Technology, pp. 124 – 141, 2002. • [6] Vincent M. W., Liu J., Liu C., “Strong functional dependencies and their application to normal forms in XML”, ACM Transactions on Database Systems (TODS), v. 29 , n. 3, pp. 445 – 462, 2004.
محدوديتهای معنايي • فايلهای اکسامال دارای قابليتهای نحوی ( syntax) فراوان هستند • در عوض خواص معنايي آنها ناچيز است • پژوهشهايي بر روی قسمت مفهومی اکسامال انجام شده است • محدوديتهای کليدی اکسامال (key constraints) • محدوديتهای مسيری (path constraints) • محدوديتهای شمول اکسامال (inclusion constraints)
وابستگیهای تابعی: کاربردی يا تئوری • وابستگیهای تابعی تنها از نقطهنظر تئوری دارای اهميت نيستند • وابستگیهای تابعی و فرآيند نرمالسازی در پايگاهدادههای رابطهای نقش اساسی در طراحی دارند • میتوانند در مورد اکسامال نيز نقش کارا داشته باشند • با در نظر گرفتن وابستگیهای تابعی در الگوی (schema) يک فايل اکسامال میتوان در مورد خوب يا بد بودن طراحی نظر داد
DTD : يادآوری (1) • نقش DTD يا "تعريف نوع سند" (document type definition) مشخص کردن برچسبهای سند و ترکيب معنیدار آنهاست • يک DTD اساساً گرامری بر روی برچسبها است • ساختار متن بين برچسبها معين نمیشود • يک ابزار پارسر با در دست داشتن يک سند اکسامال و يک DTD میتواند سند را پارس کرده اعتبار آنرا تشخيص بدهد.
DTD : يادآوری (2) • تعريف: فرض کنيد Σ الفبای محدودی از گونههای عناصر باشد (element types). يک DTD بر روی Σ به صورت d=( r, P) است که در آن • r يک عنصر متمايز از Σ ريشهی درخت است. • P به صورت P: Σ →regex(Σ )تعريف میشود که در آن regex( Σ) مجموعهی تمامی عبارتهای منظم بر روی Σ است.
DTD : يادآوری (3) • بين تعريف DTD و يک گرامر مستقل از متن قرابت بسيار وجود دارد • اما ايندو دارای دوتفاوت عمده نيز هستند • Pدر تعريف DTDبرخلاف گرامرهای مستقل از متن میتواند شامل عبارتهای منظم مثل a* باشد • به ازای هر مؤلفهی Σ تنها يک قاعده توليد وجود دارد • با توجه به تفاوتهای نامبرده، میتوان DTD را به عنوان گرامرمستقل از متن توسعه يافته تلقی نمود
DTD : يادآوری (4) <!DOCTYPE db [ <!ELEMENT db (book)*> <!ELEMENT book (title,author+)> <!ELEMENT author (name)> <!ELEMENT name (#PCDATA)> Σ={ db, book, title, author, name},d=(db,P) P: db → book * book → title.author + author → name name → ε
مثال برای وابستگی تابعی courses course course info @cno student @cno student @sno name student “cs100” . . . “cs225” “123” “Fox” @sno name grade @sno name grade “123” “Fox” “B+” “123” “Fox” “A+” برگرفته از Marcelo Arenas
تغيير در الگو DTD: Integrity Constraints: courses course* course @cno, student* student @sno, name, grade name S grade S ,info* two students with the same @sno value must have the same name. @snois the key ofinfo. info @sno, name برگرفته از Marcelo Arenas
وابستگی تابعی • اين مسائل يادآور مشکلات ايجاد شده از وابستگیهای تابعی غيرکليدی است • در قدم اول برای حل مشکل بايستی برای سندهای اکسامال مفهوم وابستگیهای تابعی به درستی تعريف بشود. • برای تعريف وابستگیهای تابعی، روشهای مختلفی موجود هستند • در اين گزارش تنها به يکی از اين روشها اشاره خواهيم کرد که از بقيه مشهورتر است
چارچوب: DTD • در اين بحث، ID و IDREF در نظر گرفته نشدهاند • مجموعهی Paths(D) را به صورت مجموعهی تمامی مسيرها در يک DTD تعريف میکنيم courses.course courses.course.@cno courses.course.student.name courses.course.student.name.S • سه نوع عنصر در نظر میگيريم: • attributes (@), strings (S) and element types
چارچوب: درختهای اکسامال courses v0 course course v1 . . . @cno student student v2 v5 “cs100” @sno grade @sno grade name name v3 v4 v6 v7 “123” “456” S S S S “Fox” “B+” “Smith” “A-”
وابستگیتابعی در اکسامال • با مسالهی وابستگیهای تابعی در پايگاه دادههای رابطهای آشنا هستيم • برای توسعه دادن آن به پايگاه دادهی اکسامالی نيازمند به يک نمايش رابطهای از فايلهای اکسامال نيازمند هستيم • اين کار را به کمک تعريف تاپلهای درختی انجام میدهيم: يک تاپل درختی در يک DTD با نام D يک نگاشت است t : Paths(D) Vertices Strings {} • بايستی بتوان آنرا از يک درخت اکسامال متناظر با D به دست آورد
تاپلهای درختی يک تاپل درختی نمايانگر يک درخت اکسامالی است courses t(courses) = v0 t(courses.course) = v1 t(courses.course.@cno) = “cs100” t(courses.course.student) = v2 t(p) = , for the remaining paths v0 course v1 @cno student v2 “cs100”
درخت اکسامال: مجموعهای از تاپلهای درختی courses courses v0 v0 course course course course v1 v1 . . . . . . @cno @cno student student student student v2 v5 v5 v2 “cs100” “cs100” @sno @sno grade grade @sno @sno grade grade name name name name v3 v3 v4 v4 v6 v6 v7 v7 “123” “123” “456” “456” S S S S S S S S “Fox” “Fox” “B+” “B+” “Smith” “Smith” “A-” “A-”
وابستگی تابعی • عبارتهايي به فرم: X Y • تعريف شده بر روی DTDD، که در آن X و Y زيرمجموعههای محدود ناتهی از Paths(D) • درخت اکسامال T در وابستگی تابعی X Y صدق میکند اگر: X Y Paths(T) Paths(D) • T X Y اگر برای هر زوج u و v از تاپلهای درختی در T داشته باشيم: u.X = v.X and u.X≠ implies u.Y = v.Y
مثال • University DTD: courses course* course @cno, student* student @sno, name, grade • Two students with the same @sno value must have the same name: courses.course.student.@sno courses.course.student.name.S • Every student can have at most one grade in every course: { courses.course, courses.course.student.@sno } courses.course.student.grade.S