1 צורה נורמלית למסמכי XML A Normal Form for XML Documents. Arenas & Libkin - PODS 02’ An Information-Theoretic Approach to Normal Forms for Relational.

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

מבוא למדעי המחשב לתעשייה וניהול
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
צורה נורמלית של גרייבך הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
עיבוד תמונות ואותות בעזרת מחשב
1 Formal Specifications for Complex Systems (236368) Tutorial #2 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book); Z.
Presentation by Dudu Yanay and Elior Malul 1.  מה משותף לכל אלגוריתם המשתמש ב -Bucket Elimination: ◦ נתון מודל הסתברותי ורשת ביסיאנית מתאימה. ◦ נתונה.
מתמטיקה בדידה תרגול 3.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
היום נדבר אל נושא אחד בתורת הגרפים. ובהמשך נשתמש בכלים אלו לפתרון כמה בעיות גאומטריות ובפרט להוכחת Szemeredi Trotter theorem.
הכלה ושקילות בין ביטויי XPath. הביטויים מכילים את האופרטורים הבאים [ ] פיצול // צאצא – קו כפול * - ג'וקר תווית דוגמה a[a][*//b] עבור כל ביטוי P ישנו עץ.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
מרצה: פרופסור דורון פלד
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
צורות נורמליות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 10.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
תחשיב הפסוקים חלק ג'. צורות נורמליות א. DF – Disjunctive Form – סכום של מכפלות. דוגמא: (P  ~Q  R)  (R  P)  (R  ~Q  ~P) הגדרה: נוסחה השקולה לנוסחה.
אביב תשס"ה DBMS, צורות נורמליות1 צורות נורמליות: 3NF,BCNF צורה נורמלית (Normal Form) היא תכונה של סכמה רלציונית, המודדת את "טיב" הסכמה מבחינת מניעת.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
צורה נורמלית – BCNF Boyce-Codd Normal Form
The Cyclic Multi-peg Tower of Hanoi מעגלי חד-כווני סבוכיות הפתרון בגרסאות עם יותר מ-3 עמודים.
Ray 7 דוגמא אלגוריתם 1.קבל דוגמאות 2. פלט f a עבור הדוגמה a המינימלית החיובית ?
תחשיב הפסוקים חלק ד'. תורת ההיסק של תחשיב הפסוקים.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
אביב-תשס"ה DBMS, Design1 פרוקים של רלציות מוטיבציה: פרוק סכמה לסכמות יותר קטנות על מנת למנוע כפילויות. הגדרה: תהי R סכמה רלציונית. פרוק של R הוא.
אלכסנדר ברנגולץ דואר אלקטרוני: אלכסנדר ברנגולץ דואר אלקטרוני: פעולות מורפולוגיות.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
4 July 2007 נרמול מסד הנתונים כאשר מסד הנתונים עובר את שלב התכנון הראשוני יכולים להיווצר מספר בעיות בתכנון הנובעות מיתירות: אחת הבעיות הנפוצות ביותר במסדי.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
תחשיב היחסים (הפרדיקטים)
Data Structures, CS, TAU, RB-Tree 1 עץ אדום-שחור - עץ חיפוש בינארי - בכל צומת ביט אינפורמציה נוסף - צבע « עץ “ כמעט מאוזן ” « (O(log n במקרה גרוע ביותר.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
DTD Inference for Views of XML Data Yannis Papakonstantinou and Victor Vianu U.C. San Diego Given by Irit Gefner
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 5
מבנה מחשבים תרגול מספר 3. טענה על עצים משפט: בעץ שדרגת כל קודקודיו חסומה ב-3, מספר העלים ≤ מספר הקודקודים הפנימיים + 2. הוכחה: באינדוקציה על n, מספר הקודקודים.
(C) סיון טל גילוי מידע וזיהוי תבניות תרגול מס. 9 גילוי מידע וזיהוי תבניות תרגול מס. 9 דחיסת נתונים מהו קידוד תכונות של קידודים אי - שוויון קרפט.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
Tirgul 12 Trees 1.
Formal Specifications for Complex Systems (236368) Tutorial #1
XML מבוא כללי MCSD Doron Amir
מבוא למדעי המחשב סיבוכיות.
4 July 2007 נרמול מסד הנתונים.
SQL בסיסי – הגדרה אינדוקטיבית
תירגול 14: מבני נתונים דינאמיים
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
ממשקים - interfaces איך לאפשר "הורשה מרובה".
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
בעיות נוספות ב-NPC.
Marina Kogan Sadetsky –
תיכון בסיס-נתונים יחסי
Presentation transcript:

1 צורה נורמלית למסמכי XML A Normal Form for XML Documents. Arenas & Libkin - PODS 02’ An Information-Theoretic Approach to Normal Forms for Relational and XML Data Arenas & Libkin - PODS 03’ עפ " י : טל הרמתי

2 סדר יום 1. הצגת הנושא 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 3. הצגת צורה נורמלית ל-XML 4. אלגוריתם נרמול 5. עוד על איכות תכנון מסדי נתונים ו-XML

3 סדר יום 1. הצגת הנושא 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 3. הצגת צורה נורמלית ל-XML 4. אלגוריתם נרמול 5. עוד על איכות תכנון מסדי נתונים ו-XML

4 עקרונות תכנון מסדי נתונים מבוססי XML התיאוריה הנוגעת לתכנון מסדי נתונים יחסיים וצורות נורמליות הינה מתקדמת ביותר. מטרת המסמכים: להציג בסיס תיאורטי מקביל לנושא תכנון טוב של מסמכי XML. 1. הצגת הנושא

5 כמו במסד יחסי, מסמכי XML יכולים להכיל מידע מיותר (redundant) ומצבים אנומליים של עדכון. במסד יחסי – נמנע ע"י סכמה מתוכננת היטב. במסמך XML – אפשר להתייחס ל-DTD כסכמה. אנחנו נתמקד ב-DTD כמנגנון להגדרה של מבנה מסמכי XML. המטרה: למצוא מנגנון שיבחן מסמכי DTD ויאפשר להמיר אותם למסמכים בנויים היטב 1. הצגת הנושא

6 יתירות ואנומליות עדכון – ב-DB יחסי St1 St2 St1 S. No 7.5 Smith SDBI 8JonesSDBI 9SmithDB GradeS. NameCourse יתירות S.No  S.Name תלויות פונקציונליות : Course + S.No  Grade St1 St2 St1 S. No 7.5SDBI 8 9DB GradeCourse הפתרון : BCNF St1 St2 St1 S. No Smith Jones Smith S. Name

7 1. הצגת הנושא יתירות ואנומליות עדכון – במסמכי DTD

8 1. הצגת הנושא יתירות ואנומליות עדכון – במסמכי DTD מקרא אלמנט ושמו אטריביוט ושמו בן יחיד ריבוי בנים קשר הכרחי courses course titletaken_by cno student namegrade sno title cn o יתירות

9 1. הצגת הנושא חזרה למסמך ה-DTD יתירות

10 1. הצגת הנושא הפתרון- הוספת אלמנט חדש

11 1. הצגת הנושא ה-DTD אחרי השינוי

12 1. הצגת הנושא דוגמא נוספת – ספריית מאמרים בכנסים <!ATTLIST inproceedings key ID #REQUIRED pages CDATA # REQUIRED year CDATA # REQUIRED > הבעיה : כל המאמרים באותו issue חייבים להיות באותה שנה ( יתירות ) הפתרון : הזזה

13 1. הצגת הנושא פתרון של הזזת attribute <!ATTLIST inproceedings key ID #REQUIRED pages CDATA # REQUIRED >

14 סדר יום 1. הצגת הנושא 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 3. הצגת צורה נורמלית ל-XML 4. אלגוריתם נרמול 5. עוד על איכות תכנון מסדי נתונים ו-XML

15 DTD (Document Type Definitions) 2. הגדרות: DTD DTD = (E,A,P,R,r) E – אלמנטים A – אטריביוטים P – מיפוי אלמנטים ( לביטוי רגולרי ) R – מיפוי חלקי לאטריביוטים r – השורש {courses, course, title, taken_by, student, name, grade } { cno, sno } {(courses  course), (course  title), (course  taken_by), (title  S), (taken_by  student), (student  name), (student  grade), (name  S), (grade  S) } S S S {(course  cno), (student  sno) }courses  E

16 Path in DTD 2. הגדרות: DTD מסלול – w מילה ( ביטוי רגולרי ) שבה האות הראשונה היא השורש, כל אות w i נמצאת בשפה של P(w i-1 ) והאות האחרונה בשפה של הקודמת או אטריביוט של האות הקודמת Length(w) – אורך מסלול = n Last(w) – אות אחרונה = w n דוגמאות : courses courses.course.taken_by courses.course.taken_by.student.grade.S S Length(w) = 1 Last(w) = courses Length(w) = 3 Last(w) = taken_by Length(w) = 6 Last(w) = S Length(w) = 3 Last(w)

17 מסלולים 2. הגדרות: DTD paths(D) – אוסף כל המסלולים ב -D. EPaths(D) – אוסף כל המסלולים ב -D שמסתיימים באלמנט ( ולא ב -S או באטריביוט )

18 XML tree 2. הגדרות: עץ XML

19 XML tree 2. הגדרות: עץ XML T = (V,lab,ele,att,root) V – קודקודים lab-(label) מיפוי קודקודים לשמות אלמנטים ele- צלעות בין 2 קודקודים או קודקוד וטקסט att- אטריביוטים של קודקודים ( מיפוי חלקי ) r – השורש {1, 1.1, 1.1.1, … } {(1  courses), (1.1  course), … }{(1  1.1), (1.1  1.1.1), (1.1.1  “ DB") … }{((1.1, cso)  “ DB"), (( , sno)  "st1") }

20 Paths in XML tree 2. הגדרות: עץ XML מסלול – w מילה ( ביטוי רגולרי ) שבה האותיות הן אלמנטים והאות האחרונה היא אלמנט או אטריביוט או טקסט. w היא מסלול אם קיימים קודקודים שמתאימים לאותיות. האות הראשונה מתאימה לשורש וכל אות w i מתאימה ל -v i וכן v i הוא בן של v i-1. מסלול יכול להסתיים בקודקוד, באטריביוט או בטקסט של קודקוד. Paths(T) – אוסף כל המסלולים בעץ T.

21 קשר בין DTD ו-XML 2. הגדרות: עץ XML עץ T מציית ל -DTD D – אם יש התאמה מלאה. כל הקודקודים מוגדרים ב -E ויש התאמה של כל קודקוד ובניו. (T conforms to D) סימון : T ⊨ D. עץ T תואם ל -DTD D – אם ורק אם paths(T)  paths(D). (T is compatible with D) סימון : T ⊳ D.

22 יחסי הכלה בין עצים 2. הגדרות: עץ XML מוטיבציה – מעבר ממצב של עץ XML " מסודר " ( בנים של אותו קודקוד מסומנים לפי הסדר שלהם ) לעץ לא מסודר – שבו אין חשיבות לסדר הקודקודים. הכלה בין עצי XML – (subsumed) עץ יוגדר כמוכל בעץ אחר אם השורשים זהים, הקודקודים הם קבוצה חלקית של קודקודי העץ המכיל, יש התאמה בין ה -labels ובין האטריביוטים, והבנים של כל קודקוד הם פרמוטציה של הבנים מהעץ המכיל. סימון : T 1 ⋞ T 2. עצים שווי ערך (equivalent) אם T 1 ⋞ T 2 וגם T 2 ⋞ T 1. סימון : T 1 ≡ T 2. עצים הם שווי ערך אם ורק אם הם אם שווים כעצים לא מסודרים.

23 רשומות (tree tuples) 2. הגדרות: רשומות רשומות מוגדרות ביחס ל -DTD. רשומה t ב -DTD D היא פונקציה מ -paths(D) ל - קודקודים ∪ טקסט ∪ NULL המקיימת : t(r) ≠ NULL לכל p  EPaths(D) t(p) הוא קודקוד או NULL. לכל p  paths(D)-EPaths(D) t(p) הוא טקסט או NULL. אם t(p 1 )=t(p 2 ) והם קודקודים אז p 1 =p 2. אם t(p 1 )=NULL ו-p 1 היא קידומת של p 2 אז t(p 2 )=NULL. סימונים: T(D) – אוסף כל הרשומות ב-DTD. t.p – רשומה t המתאימה למסלול p.

24 דוגמא לרשומה 2. הגדרות: רשומות S S S t(courses)=1 t(courses.course.title)=1.1.1 t(courses.course.taken_by. Student.name.s)=“Jones” 

25 עוד דוגמא לרשומה 2. הגדרות: רשומות t1t1 t2t2 t 1  t 2 אם כשמוגדר t 1.p מוגדר גם t 2.p וכן t 1.p ≠NULL  t 1.p=t 2.p. t 2 מקסימלית ביחס ל-יחס ההכלה 

26 עץ XML ורשומות מקסימליות 2. הגדרות: רשומות tree D (t) - עץ XML שנבנה מתוך רשומה t. למעשה בדוגמא בנינו עץ XML מרשומה. טענה: אם t  T(D) אז tree D (t) ⊳D (העץ תואם ל-DTD). הגדרה חשובה : tuples D (T ) בהינתן DTD D ועץ XML T שתואם ל-D: אוסף של רשומות מכסימליות (במונחי  ) המקיימות tree D (t) ⋞ T.

27 דוגמא לעץ ורשומות 2. הגדרות: רשומות tuples D (T) לא שייך כי אינו מקסימלי

28 בניית עץ XML מאוסף של רשומות 2. הגדרות: רשומות תזכורת: tuples D (T ) בהינתן DTD D ועץ XML T שתואם ל-D: אוסף של רשומות מכסימליות (במונחי  ) המקיימות tree D (t) ⋞ T. אבחנה : tuples D (T) תת קבוצה סופית של T(D). הגדרה : trees D (X)בהינתן DTD D ואוסף X  T(D) של רשומות: העץ המינימלי T (במונחי ⋞ ) המקיים : - T ⊳ D ( תואם ל-D). - כל רשומה ב-X מוכלת בו.

29 trees D (X) - דוגמא 2. הגדרות: רשומות tree D (t 1 ) tree D (t 2 ) X={ t 1, t 2 } trees D (X)

30 משפט 2. הגדרות: רשומות בהינתן DTD D ועץ XML T – אם T ⊳D אז trees D (tuples D ([T]) = [T]. ([T] – מחלקת שקילות של עצים לא מסודרים) משמעות: אפשר לבנות מחדש עץ XML מאוסף הרשומות המקסימליות שלו, עד כדי שקילות (במונחי עצים לא מסודרים). הערה: השוויון ההפוך לא מתקיים. מתקיים X  tuples D trees D (X). (כי X לא חייב להכיל רשומות מקסימליות ויכול לכלול רשומות המוכלות זו בזו).

31 תלויות פונקציונליות 2. הגדרות: תלויות פונקציונליות ההגדרה מתבססת על רשומות. תלות פונקציונלית (functional dependency) ( ת " פ ) מעל D היא ביטוי מהצורה S 1  S 2, כאשר S 1 ו - S 2 הם קבוצות חלקיות לא ריקות של paths(D). סימון : אוסף כל הת " פ מעל D מסומן FD (D).

32 תלויות פונקציונליות (המשך) 2. הגדרות: תלויות פונקציונליות נתון : ת " פ S 1  S 2 ; T עץ XML תואם D ; S 2  paths(D) ∪ S 1. T מקיים את הת " פ ( סימון : T ⊨ S 1  S 2 ) אם לכל שתי רשומות t 1,t 2  tuples D (T) t 1. S 1 =t 2. S 1 וגם t 1. S 1 ≠NULL  t 1. S 2 =t 2. S 2. סימונים : T ⊨Σ עבורΣ  FD (D) אם T⊨σ עבור כל σ  Σ. T ⊨( D,Σ) אם T ⊨ D וגם T ⊨ Σ.

33 תלויות פונקציונליות - דוגמא 2. הגדרות: תלויות פונקציונליות → courses.course. משמעות מפתח של קורס. → courses.course.taken_by.student משמעות - שני סטודנטים שונים באותו קורס לא יכולים להיות עם אותו מספר סטודנט. → courses.course.taken_by.student. Name.S משמעות - שני סטודנטים בעלי אותו מספר סטודנט חייבים להיות בעלי אותו שם. S

34 גזירת תלויות פונקציונליות 2. הגדרות: תלויות פונקציונליות נתון : DTD D ; קבוצת ת " פ Σ  FD (D) ; ת " פ β  FD (D). נאמר ש -(D, Σ) גוזר את β אם כל עץ שתואם D ומקיים את Σ ( T ⊨( D,Σ) ) מקיים גם את β. סימון : (D, Σ) ⊢β. אוסף כל הת " פ הנגזרות מ - (D, Σ) נקראות הסגור של Σ ומסומנות (D, Σ) +. חישוב הסגור של ת " פ ב -XML הוא בעיה קשה, והיא מחוץ לגבולות המאמר.

35 תלויות פונקציונליות טריוויאליות 2. הגדרות: תלויות פונקציונליות בבסיס נתונים רלציוני – תלות טריוויאלית אחת : אם Y  X אז X  Y. ב -XML : ת"פ β טריוויאלית אם (D, ∅ ) ⊢ β. דוגמאות : לכל p  EPaths(D) ו -p’ שייך לקידומת של p: p  p’. לכל l  paths(D): p  l.

36 סדר יום 1. הצגת הנושא 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 3. הצגת צורה נורמלית ל-XML 4. אלגוריתם נרמול 5. עוד על איכות תכנון מסדי נתונים ו-XML

37 הגדרה – צורה נורמלית XNF 3. צורה נורמלית ל-XML XNF – XML Normal Form. בהינתן DTD D ו - Σ  FD (D), נגדיר ש- (D, Σ) הוא ב-XNF אם ורק אם לכל ת"פ לא טריוויאלית β  (D, Σ) + מהצורה S  l או S  p.S הת"פ S  p שייכת אף היא ל - (D, Σ) +. אינטואיציה : בכל העצים התואמים ל -D – לכל אוסף ערכי S נמצא ערך יחיד של l (או p.S). במקרה כזה נוכל לשמור אותו רק פעם אחת, ו- p.S נקבע ע"י (D, Σ). ( S  paths( D ); S ≠∅).

38 XNF – דוגמא 1 3. צורה נורמלית ל-XML → courses.course. משמעות מפתח של קורס. מתקיים באופן מובנה שקביעת קובעת את courses.course. ולכן ת " פ זו עוברת את המבחן. באופן דומה : → courses.course.taken_by.student

39 XNF – דוגמא 1 3. צורה נורמלית ל-XML אבל ! → courses.course.taken_by.student. name.S ת " פ זו אינה גוזרת את התלות → courses.course.taken_by.student.name  הסכמה אינה ב -XNF. S

40 XNF – דוגמא 2 3. צורה נורמלית ל-XML FD1:db.conf.title.S → db.conf. מתקיים db.conf.title.S → db.conf.title אבל : FD2:db.conf.issue → לא מתקיימת התלות הבאה : db.conf.issue → db.conf.issue.inproceeding  הסכמה אינה ב -XNF. S

41 XNF – דוגמא 2 3. צורה נורמלית ל-XML קל לראות שהתיקון שהוצע – הזזת האטריביוט של שנה – פותר את הבעיה ומעביר את הסכימה ל -XNF.

42 הקשר בין BCNF ו-XNF 3. צורה נורמלית ל-XML אפשר להעביר כל בסיס נתונים יחסי ל- DTD בצורה פשוטה. אפשר לייצג כל ת " פ מבסיס הנתונים היחסי כת " פ ב -DTD שיצרנו. טענה : סכמה יחסית היא ב -BCNF אם ורק אם הייצוג שלה כ -DTD עם הת " פ שהועתקו הם ב -XNF. כלומר – ניתן להוכיח שקילות בין הצורות הנורמליות.

43 סדר יום 1. הצגת הנושא 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 3. הצגת צורה נורמלית ל-XML 4. אלגוריתם נרמול 5. עוד על איכות תכנון מסדי נתונים ו-XML

44 מוטיבציה 4. אלגוריתם נרמול עד עכשיו ראינו דרכים לבדוק האם סכמת XML, המופיעה בצורת מסמך DTD, היא בצורה נורמלית. כלומר – מתוכננת היטב. המטרה : כאשר זיהינו סכמה שאינה מתוכננת היטב, למצוא דרך ( אוטומטית ) להעביר אותה לצורה מתוכננת היטב. הקושי : בהינתן אוסף ת " פ – למצוא את הסגור.

45 שתי דרכים לטיפול בבעיות 4. אלגוריתם נרמול 1. הזזת אטריביוט כמו בדוגמא של המאמרים בכנסים. 2. יצירת סוג אלמנט חדש כמו הדוגמא של הציונים בקורסים.

46 הזזת אטריביוט 4. אלגוריתם נרמול בהינתן DTD המכיל מסלולים p,q  EPaths(D) ו l  paths(D) – הזזת אטריביוט יוצרת DTD חדש שבו האטריביוט מועבר מ -last(p) ל -last(q) ושמו משונה ל - ההזזה כוללת גם טיפול בתלויות הפונקציונליות המתייחסות לאטריביוט שהועבר. r qp Last(p)Last(q)

47 הזזת אטריביוט - דוגמא 4. אלגוריתם נרמול שינוי הת " פ : לפני השינוי : FD2:db.conf.issue → אחרי השינוי : FD2:db.conf.issue → ( ת " פ טריוויאלית )

48 יצירת סוג אלמנט חדש 4. אלגוריתם נרמול בהינתן DTD המכיל מסלולים p,p 1 …p n,q  EPaths(D) ו l, p l  paths(D) – אנו יוצרים DTD חדש שבו אלמנט חדש t מתחת ל -last(q), יוצרים לו ילדים t n... t 1 עם אטריביוטים l n l 1 ומעבירים אליו את l. ההזזה כוללת גם טיפול בתלויות הפונקציונליות המתייחסות לאטריביוט שהועבר. r qp1p1 Last(p 1 ) Last(q) pnpn Last(p n ) … p Last(p) t … t1t1 tntn

49 4. אלגוריתם נרמול יצירת אלמנט חדש - דוגמא שינוי הת " פ : לפני השינוי : → courses.course.taken_by.student. name.S אחרי השינוי : → courses.info.name.S ת " פ זו גוזרת את התלות → courses.info.name

50 האם הפעלת השיטות הנ"ל מקדמת אותנו? 4. אלגוריתם נרמול טענה : בכל צעד באחת משתי השיטות ( הזזת אטריביוטים או יצירת אלמנט חדש ) מתקבל DTD שבו מספר האנומליות ( חריגות מ -XNF) קטן יותר. מסקנה : אלגוריתם המפעיל את השיטות הנ " ל מסתיים ובסיומו מתקבל DTD ב -XNF.

51 הצגת האלגוריתם 4. אלגוריתם נרמול 1)אם (D,Σ) ב-XNF אז החזר (D,Σ). אחרת- שלב 2. 2)אם יש ת"פ אנומלית שיכולה להיפתר על ידי הזזת אטריביוט (מוגדר במאמר במדויק) אז בצע הזזת אטריביוט וחזור לשלב 1. אחרת – שלב 3. (הערה- שלב זה מחייב חישוב סגור של (D,Σ). 3)בחר ת"פ אנומלית מינימלית ובצע יצירת אלמנט חדש. חזור לשלב 1. (ת"פ אנומלית מינימלית- כזו שאם נוריד ממנה מסלול אחד היא כבר לא תהיה אנומלית)

52 פירוק ללא אובדן 4. אלגוריתם נרמול פירוק ללא אובדן – אין אובדן של מידע במעבר מ -DTD ל -DTD. המאמר מגדיר אמצעי לבדוק האם הפירוק הוא ללא אובדן, וטוען שהפירוק על ידי האלגוריתם שהוצע הוא חסר אובדן. ההוכחה אינה מצויה במאמר – משאירה כר נרחב למחקר ופיתוח.

53 סיבוכיות אלגוריתם הנרמול 4. אלגוריתם נרמול האלגוריתם עושה שימוש ב - (D,Σ) + - הסגור של אוסף ת " פ. חישוב הסגור מחייב גזירת ת " פ, והוא המרכיב ה " כבד " ביותר בחישוב הסיבוכיות. הגדרה : DTD ייקרא פשוט אם כל הביטויים הרגולריים בהם הוא משתמש הם ביטויים פשוטים ( האותיות הן מהצורה a i, a i ?, a i + או a i * וכן a j ≠ a i עבור i ≠j). טענה : בעיית גזירת ת " פ וחישוב הסגור עבור DTD פשוט פתירה בזמן ריבועי.

54 סיבוכיות אלגוריתם הנרמול (המשך) 4. אלגוריתם נרמול מה לגבי DTD כלשהו ? המאמר טוען שכאשר מספר הביטויים הרגולריים שאינם פשוטים חסום – ניתן לחשב סגור בזמן פולינומיאלי. עם זאת, כאשר אין מגבלות על הביטויים הרגולריים האפשריים, חישוב הסגור הוא בעיה coNP שלמה.

55 סדר יום 1. הצגת הנושא 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 2. הגדרות: DTD ועצי XML, רשומות, תלויות פונקציונליות 3. הצגת צורה נורמלית ל-XML 4. אלגוריתם נרמול 5. עוד על איכות תכנון מסדי נתונים ו-XML

56 מוטיבציה 5. מדדי איכות תכנון מסדי נתונים במסדי נתונים יחסיים ההגדרה של מסד מתוכנן היטב קלה יחסית להגדרה ואינטואיטיבית. הבעיות הן בעיקר יתירות מידע ואנומליות של עדכון. המצב שונה כשמדובר במבנים מורכבים כמו XML. מנגנוני עדכון למבנים כאלה אינם מפותחים דיים. הנושא היחיד ה " מובן " יחסית הוא יתירות המידע. במאמר עדכני (6/2003) מנסים המחברים לנסח פורמלית את הבעיה תוך שימוש בהגדרות מתורת האינפורמציה.

57 מבט כללי על מושגי יסוד 5. מדדי איכות תכנון מסדי נתונים הבסיס של תורת האינפורמציה הוא המושג של אנטרופיה, המודד את כמות המידע הניתנת על ידי מאורע כלשהו. אנטרופיה של התפלגות הסתברותית מייצגת את הערך הממוצע של מידע שמושג כאשר יודעים שאירוע כלשהו התקיים. אנטרופיה יחסית של B בהינתן A מייצגת את כמות המידע שניתן על ידי B כאשר ידוע ש -A קרה.

58 אנטרופיה ובסיס נתונים יחסי 5. מדדי איכות תכנון מסדי נתונים בבסיס נתונים יחסי עם יתירות מידע – המידע שמוסיף נתון " מיותר " הוא 0. המידע שמוסיף כל נתון אחר הוא חיובי. דוגמא : טבלת הציונים. St1 St2 St1 S. No 7.5 Smith SDBI 8JonesSDBI 9SmithDB GradeS. Name Course ניתן להגדיר מודל שבו אומדים את המידע הגלום בכל פריט מידע במאגר.

59 אנטרופיה ובסיס נתונים יחסי 5. מדדי איכות תכנון מסדי נתונים טענה : בסכמת בסיס נתונים יחסי הנמצאת ב -BCNF – כל פריט מידע ( כל נתון בכל רשומה ) נושא מידע גדול מאפס. המאמר מפתח מדדים לבחינת כמות המידע בכל פריט מידע ומראה שבסיס נתונים יחסי הנמצא ב -BCNF מגיע למדד מקסימלי.

60 אנטרופיה ו-XML 5. מדדי איכות תכנון מסדי נתונים ע " י שימוש באותו מדד מותאם ל -XML מוכיח המאמר שמסמך DTD הוא מתוכנן היטב אם המדד הוא מקסימלי. בעקבות הוכחה זו המאמר טוען שמסמך DTD הנמצא ב -XNF הוא מתוכנן היטב. המאמר עוד מוכיח שהמדד של מסמך DTD שנוצר על ידי הפעלת אלגוריתם הנרמול הוא מקסימלי.

61 סיכום הנושא של תכנון מסדי נתונים מבוססי XML הוא נושא מתפתח הכולל תחומים רבים שטרם מוצו. במסגרת ההרצאה פיתחתי את הנושא של תכנון טוב של מסמכי XML באמצעות ניתוח מסמכי DTD. המונחים המקבילים בעולם ה -XML לאלה של העולם היחסי הם מורכבים יותר ופחות אינטואיטיביים. עם זאת נעשה שימוש בהגדרות מקבילות של סכמה, רשומות, תלויות פונקציונליות, צורות נורמליות. הצגתי אלגוריתם המקבל DTD שרירותי ומחזיר DTD מתוכנן היטב בצורת XNF. יש מקום למחקר עתידי כמעט בכל נקודה במסמך.

62 תודה