Download - צורה נורמלית למסמכי XML
![Page 1: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/1.jpg)
1
XMLצורה נורמלית למסמכי
• A Normal Form for XML Documents.Arenas & Libkin - PODS 02’
• An Information-Theoretic Approach to Normal Forms for Relational and XML DataArenas & Libkin - PODS 03’
: י" עפ
טל הרמתיtal128@cs
![Page 2: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/2.jpg)
2
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
![Page 3: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/3.jpg)
3
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
![Page 4: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/4.jpg)
4
XMLעקרונות תכנון מסדי נתונים מבוססי •
התיאוריה הנוגעת לתכנון מסדי נתונים יחסיים •וצורות נורמליות הינה מתקדמת ביותר.
להציג בסיס תיאורטי מטרת המסמכים:•. XMLמקביל לנושא תכנון טוב של מסמכי
הנושא. 1 הצגת הנושא. 1 הצגת
![Page 5: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/5.jpg)
5
יכולים להכיל XMLכמו במסד יחסי, מסמכי •( ומצבים אנומליים של redundantמידע מיותר )
עדכון.
במסד יחסי – נמנע ע"י סכמה מתוכננת היטב. •
DTD – אפשר להתייחס ל-XMLבמסמך • כמנגנון להגדרה DTDכסכמה. אנחנו נתמקד ב-
. XMLשל מבנה מסמכי
DTDלמצוא מנגנון שיבחן מסמכי המטרה:•ויאפשר להמיר אותם למסמכים בנויים היטב
הנושא. 1 הצגת הנושא. 1 הצגת
![Page 6: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/6.jpg)
6
הנושא. 1 הצגת הנושא. 1 הצגת
יחסיDBיתירות ואנומליות עדכון – ב-
St1
St2
St1
S. No
7.5SmithSDBI
8JonesSDBI
9SmithDB
GradeS. NameCourse
יתירות
S.No S.Name : פונקציונליות תלויות
Course + S.No Grade
St1
St2
St1
S. No
7.5SDBI
8SDBI
9DB
GradeCourse
BCNFהפתרון:
St1
St2
St1
S. No
Smith
Jones
Smith
S. Name
![Page 7: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/7.jpg)
7
הנושא. 1 הצגת הנושא. 1 הצגת
DTDיתירות ואנומליות עדכון – במסמכי
<!ELEMENT courses )course*(><!ELEMENT course )title, taken_by(>
<!ATTLIST course cno CDATA #REQUIRED><!ELEMENT title )#PCDATA(><!ELEMENT taken_by )student*(><!ELEMENT student )name, grade(>
<!ATTLIST student sno CDATA #REQUIRED><!ELEMENT name )#PCDATA(><!ELEMENT grade )#PCDATA(>
![Page 8: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/8.jpg)
8
הנושא. 1 הצגת הנושא. 1 הצגת
DTDיתירות ואנומליות עדכון – במסמכי
מקרא
אלמנט ושמו
אטריביוט ושמו
בן יחיד
ריבוי בנים
קשר הכרחי
courses
course
title taken_by cno
student
name grade sno
title
cno
יתירות
![Page 9: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/9.jpg)
9
הנושא. 1 הצגת הנושא. 1 הצגת
DTDחזרה למסמך ה-
<!ELEMENT courses )course*(><!ELEMENT course )title, taken_by(>
<!ATTLIST course cno CDATA #REQUIRED><!ELEMENT title )#PCDATA(><!ELEMENT taken_by )student*(><!ELEMENT student )name, grade(>
<!ATTLIST student sno CDATA #REQUIRED><!ELEMENT name )#PCDATA(><!ELEMENT grade )#PCDATA(>
יתירות
![Page 10: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/10.jpg)
10
הנושא. 1 הצגת הנושא. 1 הצגת
חדש- אלמנט הוספת הפתרון
<!ELEMENT courses )course*, info*(><!ELEMENT course )title, taken_by(>
<!ATTLIST course cno CDATA #REQUIRED><!ELEMENT title )#PCDATA(><!ELEMENT taken_by )student*(><!ELEMENT student )grade(>
<!ATTLIST student sno CDATA #REQUIRED><!ELEMENT grade )#PCDATA(><!ELEMENT info number*, name)><!ELEMENT number EMPTY>
<!ATTLIST number sno CDATA #REQUIRED><!ELEMENT name (#PCDATA)>
![Page 11: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/11.jpg)
11
הנושא. 1 הצגת הנושא. 1 הצגת
אחרי השינויDTDה-
courses
course
cnotaken_by
titlestudent
snograde
name
info
number
snoname
![Page 12: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/12.jpg)
12
הנושא. 1 הצגת הנושא. 1 הצגת
בכנסים – מאמרים ספריית נוספת דוגמא
<!ELEMENT db )conf*(><!ELEMENT conf )title, issue*(><!ELEMENT title )#PCDATA(><!ELEMENT issue )inproceedings*(><!ELEMENT inproceedings )author+, title, booktitle(>
<!ATTLIST inproceedingskey ID #REQUIREDpages CDATA # REQUIRED year CDATA # REQUIRED >
<!ELEMENT author )#PCDATA(><!ELEMENT booktitle )#PCDATA(>
הבעיה: כל המאמרים באותו
issue חייבים להיות באותה שנה
)יתירות(
הזזה: הפתרון
![Page 13: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/13.jpg)
13
הנושא. 1 הצגת הנושא. 1 הצגת
attributeפתרון של הזזת <!ELEMENT db )conf*(><!ELEMENT conf )title, issue*(><!ELEMENT title )#PCDATA(><!ELEMENT issue )inproceedings*(>
<!ATTLIST issue year CDATA # REQUIRED><!ELEMENT inproceedings )author+, title, booktitle(>
<!ATTLIST inproceedingskey ID #REQUIREDpages CDATA # REQUIRED >
<!ELEMENT author )#PCDATA(><!ELEMENT booktitle )#PCDATA(>
![Page 14: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/14.jpg)
14
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
![Page 15: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/15.jpg)
15
DTD (Document Type Definitions)DTD. הגדרות: 2 DTD. הגדרות: 2
DTD = )E,A,P,R,r(
E – אלמנטים A – אטריביוטים P – מיפוי אלמנטים )לביטוי
רגולרי( R – מיפוי חלקי לאטריביוטים r – השורש
courses
course
cnotaken_bytitle
student
snogradename
{courses , course , title , taken_by , student , name , grade }
{cno , sno } {)coursescourse( , )coursetitle( , )coursetaken_by( , )titleS( , )taken_bystudent( , )studentname( , )studentgrade( , )nameS( ,
)gradeS( }
S
SS
{)coursecno( , )studentsno( } courses E
![Page 16: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/16.jpg)
16
Path in DTDDTD. הגדרות: 2 DTD. הגדרות: 2
מילה )ביטוי רגולרי( שבה w – מסלול•האות הראשונה היא השורש, כל אות
wi נמצאת בשפה של P)wi-1( והאות האחרונה בשפה של הקודמת או
אטריביוט של האות הקודמת • Length(w) = אורך מסלול – n• Last(w) = אות אחרונה – wn
courses
course
cnotaken_bytitle
student
snogradename
דוגמאות:courses
courses.course.taken_by courses.course.taken_by.student.grade.S
courses.course.@cno S
Length)w( = 1Last)w( = coursesLength)w( = 3Last)w( = taken_byLength)w( = 6Last)w( = SLength)w( = 3Last)w( = @cno
![Page 17: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/17.jpg)
17
מסלוליםDTD. הגדרות: 2 DTD. הגדרות: 2
•paths(D)-אוסף כל המסלולים ב – D .
•EPaths(D)-אוסף כל המסלולים ב – D או באטריביוט(Sשמסתיימים באלמנט )ולא ב-
![Page 18: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/18.jpg)
18
XML treeXML. הגדרות: עץ 2 XML. הגדרות: עץ 2
@cno
courses1
course1.2
course1.1
@cno1.1.@cno
title1.1.1
title1.2.1
Taken_by1.1.2
Taken_by1.2.2
student1.1.2.1
student1.1.2.2
name1.1.2.1.1
grade1.1.2.1.2
@sno name grade @sno name grade @sno
student1.2.2.1
DB67506
Smith 9 st1
SDBI67889
Jones 8.5 st2 Smith 9.3 st1
![Page 19: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/19.jpg)
19
XML treeXML. הגדרות: עץ 2 XML. הגדרות: עץ 2
T = )V,lab,ele,att,root(
V – קודקודים lab-)label( מיפוי קודקודים
לשמות אלמנטים ele - קודקודים או2צלעות בין
קודקוד וטקסט att -)אטריביוטים של קודקודים )מיפוי חלקי r – השורש
{1, 1.1, 1.1.1, 1.1.@cno, …} {)1courses( , )1.1course( , …} {)11.1(, )1.11.1.1(, )1.1.1“DB"(…}
@cno
courses1
coursecourse1.1
@cnotitle1.1.1
titleTaken_by Taken_by
student student
name grade @sno name grade @sno name grade @sno
student
DB67506
Smith 9 st1
SDBI67889
Jones 8.5 st2 Smith 9.3 st1
{))1.1 , cso(“DB"( , ))1.1.2.1 , sno("st1"( }
![Page 20: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/20.jpg)
20
Paths in XML treeXML. הגדרות: עץ 2 XML. הגדרות: עץ 2
@cno
courses1
coursecourse1.1
@cnotitle1.1.1
titleTaken_by Taken_by
student student
name grade @sno name grade @sno name grade @sno
student
DB67506
Smith 9 st1
SDBI67889
Jones 8.5 st2 Smith 9.3 st1
מילה )ביטוי רגולרי( שבה w – מסלול•האותיות הן אלמנטים והאות האחרונה
היא אלמנט או אטריביוט או טקסט. •w היא מסלול אם קיימים קודקודים
שמתאימים לאותיות. האות הראשונה מתאימה wiמתאימה לשורש וכל אות
. vi-1 הוא בן של vi וכן viל-מסלול יכול להסתיים בקודקוד, •
באטריביוט או בטקסט של קודקוד.
• Paths(T) אוסף כל המסלולים – . Tבעץ
![Page 21: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/21.jpg)
21
XML ו-DTDקשר בין XML. הגדרות: עץ 2 XML. הגדרות: עץ 2
– אם יש התאמה מלאה. כל DTD D מציית ל-Tעץ • ויש התאמה של כל קודקוד ובניו.Eהקודקודים מוגדרים ב-
(T conforms to D). T ⊨ D סימון:
paths)T( – אם ורק אם DTD D תואם ל-Tעץ •paths)D(.
)T is compatible with D( . T ⊳ Dסימון:
![Page 22: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/22.jpg)
22
עצים בין הכלה יחסיXML. הגדרות: עץ 2 XML. הגדרות: עץ 2
"מסודר" )בנים של אותו XMLמוטיבציה – מעבר ממצב של עץ •קודקוד מסומנים לפי הסדר שלהם( לעץ לא מסודר – שבו אין
חשיבות לסדר הקודקודים.
עץ יוגדר כמוכל בעץ )XML – )subsumedהכלה בין עצי •אחר אם השורשים זהים, הקודקודים הם קבוצה חלקית של
ובין labelsקודקודי העץ המכיל, יש התאמה בין ה-האטריביוטים, והבנים של כל קודקוד הם פרמוטציה של הבנים
. T1 ⋞ T2 מהעץ המכיל. סימון:
. T2 ⋞ T1וגם T1 ⋞ T2 ( אם equivalent )עצים שווי ערך •
עצים הם שווי ערך אם ורק אם הם אם שווים . T1 ≡ T2סימון: כעצים לא מסודרים.
![Page 23: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/23.jpg)
23
)tree tuplesרשומות (2 : רשומות. הגדרות 2 : רשומות. הגדרות
. DTDרשומות מוגדרות ביחס ל-
)paths)D היא פונקציה מ-DTD D ב-tרשומה המקיימת:NULL∪ טקסט ∪ ל- קודקודים
•t)r( ≠ NULL. NULL הוא קודקוד או )pEPaths)D( t)pלכל •.NULL הוא טקסט או )ppaths)D(-EPaths)D( t)pלכל •. p1=p2 והם קודקודים אז )t)p1(=t)p2אם •. p2(=NULL(t אז p2 היא קידומת של p1 ו-NULL=)t)p1אם •
. DTD – אוסף כל הרשומות ב-)T)D: סימוניםt.p רשומה – t המתאימה למסלול p .
![Page 24: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/24.jpg)
24
לרשומה דוגמא2 : רשומות. הגדרות 2 : רשומות. הגדרות
courses
course
cnotaken_bytitle
student
snogradename
S
SS
@cno
courses1
course1.1
1.1.@cno
title1.1.1
Taken_by1.1.2
student1.1.2.2
name grade @sno
DB67506
Jones 8.5 st2
1.1.2.2.21.1.2.2.1 1.1.2.2@sno
t)courses(=1
t)courses.course.@cno(=“67506”
t)courses.course.title(=1.1.1
t)courses.course.taken_by.Student.name.s(=“Jones”
@cno
courses1
course1.1
1.1.@cno
title1.1.1
Taken_by1.1.2
student1.1.2.2
name grade @sno
DB67506
Jones 8.5 st2
1.1.2.2.21.1.2.2.1 1.1.2.2@sno
![Page 25: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/25.jpg)
25
לרשומה דוגמא עוד2 : רשומות. הגדרות 2 : רשומות. הגדרות
@cno
courses1
course1.1
1.1.@cno
title1.1.1
Taken_by1.1.2
NULL
NULL null NULL
DB67506
@cno
courses1
course1.1
1.1.@cno
title1.1.1
Taken_by1.1.2
student1.1.2.2
name grade @sno
DB67506
Jones 8.5 st2
1.1.2.2.21.1.2.2.1 1.1.2.2@sno
t1 t2
t1 t2 אם כשמוגדר t1.p מוגדר גם t2.p וכן t1.p≠NULL t1.p=t2.p .
t2 מקסימלית ביחס ל-יחס ההכלה
![Page 26: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/26.jpg)
26
ורשומות מקסימליותXMLעץ 2 : רשומות. הגדרות 2 : רשומות. הגדרות
treeD(t) עץ -XML שנבנה מתוך רשומה t .
מרשומה. XMLלמעשה בדוגמא בנינו עץ
(.DTD )העץ תואם ל-t(⊳D(treeD אז )tT)Dטענה: אם
: הגדרה חשובה tuplesD(T) בהינתןDTD D ועץ XML T-שתואם ל D:
( אוסף של רשומות מכסימליות )במונחי . treeD)t(⋞Tהמקיימות
![Page 27: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/27.jpg)
27
ורשומות לעץ דוגמא2 : רשומות. הגדרות 2 : רשומות. הגדרות
@cno
courses1
course1.2
course1.1
@cno1.1.@cno
title1.1.1
title1.2.1
Taken_by1.1.2
Taken_by1.2.2
student1.1.2.1
student1.1.2.2
name1.1.2.1.1
grade1.1.2.1.2
@sno name grade @sno name @sno
student1.2.2.1
DB67506
Smith 9 st1
SDBI67889
Jones 8.5 st2 Smith st1
tuplesD(T)
כי שייך לאאינו
מקסימלי
![Page 28: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/28.jpg)
28
מאוסף של רשומותXMLבניית עץ 2 : רשומות. הגדרות 2 : רשומות. הגדרות
תזכורת: tuplesD(T) בהינתןDTD D ועץ XML T-שתואם ל D:
( אוסף של רשומות מכסימליות )במונחי . treeD)t(⋞Tהמקיימות
. )T)Dתת קבוצה סופית של (tuplesD)T אבחנה:
:הגדרה treesD(X) בהינתןDTD D ואוסף XT)D(:של רשומות
המקיים :( ⋟ )במונחי Tהעץ המינימלי -T⊳D-תואם ל( D.)
מוכלת בו.X- כל רשומה ב-
![Page 29: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/29.jpg)
29
treesD(X)דוגמא - 2 : רשומות. הגדרות 2 : רשומות. הגדרות
@cno
courses
course
title Taken_by
student
name grade @sno
DB67506
Jones 8.5 st2
@cno
courses
course
title Taken_by
student
name @sno
DB67506
Smith st2
@cno
courses
course
title Taken_by
student
name grade @sno
DB67506
Jones 8.5 st2
student
name @sno
Smith st2treeD(t1) treeD(t2)
X={t1, t2} treesD(X)
![Page 30: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/30.jpg)
30
משפט2 : רשומות. הגדרות 2 : רשומות. הגדרות
– XML T ועץ DTD Dבהינתן . treesD)tuplesD)[T]( = [T] אז T⊳Dאם
(]T[)מחלקת שקילות של עצים לא מסודרים –
מאוסף הרשומות XMLאפשר לבנות מחדש עץ משמעות:המקסימליות שלו, עד כדי שקילות )במונחי
עצים לא מסודרים(.
השוויון ההפוך לא מתקיים. הערה: . )XtuplesDtreesD)Xמתקיים
לא חייב להכיל רשומות מקסימליות ויכול X)כי לכלול רשומות המוכלות זו בזו(.
![Page 31: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/31.jpg)
31
פונקציונליות תלויות2 : פונקציונליות. תלויות הגדרות 2 : פונקציונליות. תלויות הגדרות
ההגדרה מתבססת על רשומות. •
( )ת"פ( functional dependencyתלות פונקציונלית )• הם S2 ו-S1, כאשר S1S2 היא ביטוי מהצורה Dמעל
. )paths)Dקבוצות חלקיות לא ריקות של
. )FD)D מסומן Dסימון: אוסף כל הת"פ מעל •
![Page 32: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/32.jpg)
32
פונקציונליות (תלויות המשך)2 : פונקציונליות. תלויות הגדרות 2 : פונקציונליות. תלויות הגדרות
; D תואם XML עץ S1S2 ; Tנתון: ת"פ •S2paths)D(∪S1.
•T :סימון( מקיים את הת"פ T⊨S1S2 אם ) )t1,t2tuplesD)Tלכל שתי רשומות
t1.S1=t2.S1 וגם t1.S1≠NULL t1.S2=t2.S2 .
.σΣעבור כל T⊨σ אם )ΣFD)D עבורT⊨Σסימונים: •T⊨)D,Σ( אם T⊨D וגם T⊨Σ .
![Page 33: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/33.jpg)
33
דוגמא - פונקציונליות תלויות2 : פונקציונליות. תלויות הגדרות 2 : פונקציונליות. תלויות הגדרות
courses
course
cnotaken_bytitle
student
snogradename
.1courses.course.@cno→ courses.course. מפתח של קורס. cno@משמעות-
.2courses.course.taken_by.student.@sno→ courses.course.taken_by.student
משמעות- שני סטודנטים שוניםבאותו קורס לא יכולים להיות
עם אותו מספר סטודנט..3courses.course.taken_by.student.@sno
→ courses.course.taken_by.student.Name.S
משמעות- שני סטודנטים בעליאותו מספר סטודנט חייבים להיות בעלי
אותו שם. S
![Page 34: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/34.jpg)
34
פונקציונליות תלויות גזירת2 : פונקציונליות. תלויות הגדרות 2 : פונקציונליות. תלויות הגדרות
; ת"פ )ΣFD)D ; קבוצת ת"פDTD Dנתון: •βFD)D(.
Dאם כל עץ שתואם β גוזר את (D,Σ)נאמר ש-.β מקיים גם את ))Σ )T⊨)D,Σומקיים את
. β⊣(D,Σ) סימון:•
Σ נקראות הסגור של (D,Σ)אוסף כל הת"פ הנגזרות מ- •.+(D,Σ)ומסומנות
הוא בעיה קשה, והיא XMLחישוב הסגור של ת"פ ב-•מחוץ לגבולות המאמר.
![Page 35: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/35.jpg)
35
טריוויאליות פונקציונליות תלויות2 : פונקציונליות. תלויות הגדרות 2 : פונקציונליות. תלויות הגדרות
בבסיס נתונים רלציוני – תלות טריוויאלית אחת:•. XY אז YXאם
. β(⊣∅,D) טריוויאלית אם βת"פ : XMLב-•
דוגמאות: •. ’p: pp שייך לקידומת של ’p ו-)pEPaths)Dלכל •. p,p.@lpaths)D(: pp.@lלכל •
![Page 36: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/36.jpg)
36
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
![Page 37: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/37.jpg)
37
XNFהגדרה – צורה נורמלית XML. צורה נורמלית ל-XML 3. צורה נורמלית ל-3
XNF – XML Normal Form .
, )ΣFD)D ו-DTD Dבהינתן אם ורק אם XNF הוא ב-(D,Σ)נגדיר ש-
מהצורה+)β)D,Σלכל ת"פ לא טריוויאלית Sp.@l או Sp.S
.+(D,Σ) שייכת אף היא ל- Spהת"פ
נמצא S – לכל אוסף ערכי Dאינטואיציה: בכל העצים התואמים ל-(. במקרה כזה נוכל p.S )או p.@lערך יחיד של
נקבע ע"י p.Sלשמור אותו רק פעם אחת, ו- (D,Σ)( .Spaths)D(; S≠∅.)
![Page 38: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/38.jpg)
38
XNF 1 – דוגמא XML. צורה נורמלית ל-XML 3. צורה נורמלית ל-3
courses
course
cnotaken_bytitle
student
snogradename
.1FD1:courses.course.@cno→ courses.course. מפתח של קורס. cno@משמעות-
מתקיים באופן מובנה שקביעת courses.course.@cno קובעת את courses.course. ולכן ת"פ זו
עוברת את המבחן.
באופן דומה:FD2:courses.course.taken_by.student.@sno
→ courses.course.taken_by.student
![Page 39: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/39.jpg)
39
XNF 1 – דוגמא XML. צורה נורמלית ל-XML 3. צורה נורמלית ל-3
courses
course
cnotaken_bytitle
student
snogradename
אבל!
FD3:courses.course.taken_by.student.@sno → courses.course.taken_by.student.
name.S
ת"פ זו אינה גוזרת את התלות courses.course.taken_by.student.@sno
→ courses.course.taken_by.student.name
-הסכמה אינה ב XNF .
S
![Page 40: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/40.jpg)
40
db
conf
issuetitle
inproceedings
key
booktitleauthor title
pagesyear
XNF 2 – דוגמא XML. צורה נורמלית ל-XML 3. צורה נורמלית ל-3
FD1:db.conf.title.S→ db.conf.db.conf.title.S→db.conf.titleמתקיים
אבל:FD2:db.conf.issue→
db.conf.issue.inproceeding.@year
לא מתקיימת התלות הבאה: db.conf.issue→ db.conf.issue.inproceeding
-הסכמה אינה ב XNF.
S
![Page 41: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/41.jpg)
41
XNF 2 – דוגמא XML. צורה נורמלית ל-XML 3. צורה נורמלית ל-3
קל לראות שהתיקון שהוצע – הזזת האטריביוט של שנה –
פותר את הבעיה ומעביר את . XNFהסכימה ל-
db
conf
issuetitle
inproceedings
key
booktitleauthor title
pagesyear
db
conf
issuetitle
inproceedings
key
booktitleauthor title
pages
year
![Page 42: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/42.jpg)
42
XNF ו-BCNFהקשר בין XML. צורה נורמלית ל-XML 3. צורה נורמלית ל-3
בצורה DTD כל בסיס נתונים יחסי ל-אפשר להעביר•פשוטה.
אפשר לייצג כל ת"פ מבסיס הנתונים היחסי כת"פ • שיצרנו. DTDב-
אם ורק אם הייצוג BCNFטענה: סכמה יחסית היא ב-•. XNF עם הת"פ שהועתקו הם ב-DTDשלה כ-
כלומר – ניתן להוכיח שקילות בין הצורות הנורמליות.•
![Page 43: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/43.jpg)
43
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
![Page 44: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/44.jpg)
44
מוטיבציהנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
, XMLעד עכשיו ראינו דרכים לבדוק האם סכמת •, היא בצורה נורמלית. DTDהמופיעה בצורת מסמך
כלומר – מתוכננת היטב.
המטרה: כאשר זיהינו סכמה שאינה מתוכננת היטב, •למצוא דרך )אוטומטית( להעביר אותה לצורה מתוכננת
היטב.
הקושי: בהינתן אוסף ת"פ – למצוא את הסגור. •
![Page 45: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/45.jpg)
45
בבעיות לטיפול דרכים שתי
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
הזזת אטריביוט1.כמו בדוגמא של המאמרים בכנסים.
יצירת סוג אלמנט חדש2.כמו הדוגמא של הציונים בקורסים.
![Page 46: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/46.jpg)
46
אטריביוט הזזתנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
)p,qEPaths)D המכיל מסלולים DTDבהינתן חדש DTD – הזזת אטריביוט יוצרת )p.@lpaths)Dו-
ושמו משונה )q(last ל-)last)pשבו האטריביוט מועבר מ-. q.@mל-
ההזזה כוללת גם טיפול בתלויות הפונקציונליות המתייחסות לאטריביוט שהועבר.
rqp
Last)p( Last)q(
@l @m
![Page 47: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/47.jpg)
47
דוגמא - אטריביוט הזזת. אלגוריתם נרמול4 . אלגוריתם נרמול4
שינוי הת"פ:
לפני השינוי: FD2:db.conf.issue→
db.conf.issue.inproceeding.@year
אחרי השינוי: FD2:db.conf.issue→
db.conf.issue.@year)ת"פ טריוויאלית(
db
conf
issuetitle
inproceedings
key
booktitleauthor title
pages
year
db
conf
issuetitle
inproceedings
key
booktitleauthor title
pagesyear
![Page 48: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/48.jpg)
48
חדש אלמנט סוג יצירתנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
)p,p1…pn,qEPaths)D המכיל מסלולים DTDבהינתן חדש שבו DTD – אנו יוצרים )p.@l, pi.@lpaths)Dו-
tn...t1, יוצרים לו ילדים )last)q מתחת ל-tאלמנט חדש ומעבירים אליו את האטריביוט ln@...@l1עם אטריביוטים
@l .
ההזזה כוללת גם טיפול בתלויות הפונקציונליות המתייחסות לאטריביוט שהועבר.
rqp1
Last)p1( Last)q(
@l1
pn
Last)pn(
@ln
…p
Last)p(
@lt
…
@l1 @ln
@lt1tn
![Page 49: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/49.jpg)
49
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
דוגמא - חדש אלמנט יצירת
courses
course
cnotaken_by
titlestudent
snograde
name
info
number
snoname
courses
course
cnotaken_bytitle
student
snogradename
שינוי הת"פ:
לפני השינוי: FD3:courses.course.taken_by.student.@sno
→ courses.course.taken_by.student. name.S
אחרי השינוי: FD3:courses.info.number.@sno
→ courses.info.name.S
ת"פ זו גוזרת את התלותcourses.info.number.@sno → courses.info.name
![Page 50: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/50.jpg)
50
? " אותנו מקדמת ל הנ השיטות הפעלת האם
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
בכל צעד באחת משתי השיטות )הזזת אטריביוטים טענה: שבו DTDאו יצירת אלמנט חדש( מתקבל
( קטן יותר. XNFמספר האנומליות )חריגות מ-
אלגוריתם המפעיל את השיטות הנ"ל מסתיים מסקנה: . XNF ב-DTDובסיומו מתקבל
![Page 51: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/51.jpg)
51
האלגוריתם הצגתנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
. 2. אחרת- שלב (D,Σ) אז החזר XNF ב-(D,Σ)אם 1(
אם יש ת"פ אנומלית שיכולה להיפתר על ידי הזזת 2(אטריביוט )מוגדר במאמר במדויק( אז בצע הזזת
. 3. אחרת – שלב 1אטריביוט וחזור לשלב . (D,Σ))הערה- שלב זה מחייב חישוב סגור של
בחר ת"פ אנומלית מינימלית ובצע יצירת אלמנט חדש. 3(. 1חזור לשלב
)ת"פ אנומלית מינימלית- כזו שאם נוריד ממנה מסלול אחד היא כבר לא תהיה אנומלית(
![Page 52: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/52.jpg)
52
אובדן ללא פירוקנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
DTDפירוק ללא אובדן– אין אובדן של מידע במעבר מ-. DTDל-
המאמר מגדיר אמצעי לבדוק האם הפירוק הוא ללא אובדן, וטוען שהפירוק על ידי האלגוריתם שהוצע הוא
חסר אובדן.
ההוכחה אינה מצויה במאמר – משאירה כר נרחב למחקר ופיתוח.
![Page 53: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/53.jpg)
53
הנרמול אלגוריתם סיבוכיותנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
- הסגור של אוסף +(D,Σ)האלגוריתם עושה שימוש ב- ת"פ. חישוב הסגור מחייב גזירת ת"פ, והוא המרכיב
ה"כבד" ביותר בחישוב הסיבוכיות.
ייקרא פשוט אם כל הביטויים הרגולריים DTDהגדרה: בהם הוא משתמש הם ביטויים פשוטים )האותיות הן
ai, ai?, aiמהצורה ai או +
(. i≠jעבור aj≠ai וכן *
פשוט DTDטענה: בעיית גזירת ת"פ וחישוב הסגור עבור פתירה בזמן ריבועי.
![Page 54: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/54.jpg)
54
הנרמול אלגוריתם (סיבוכיות המשך )נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
כלשהו? DTDמה לגבי
המאמר טוען שכאשר מספר הביטויים הרגולריים שאינם פשוטים חסום – ניתן לחשב סגור בזמן פולינומיאלי.
עם זאת, כאשר אין מגבלות על הביטויים הרגולריים שלמה. coNPהאפשריים, חישוב הסגור הוא בעיה
![Page 55: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/55.jpg)
55
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
![Page 56: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/56.jpg)
56
מוטיבציהנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי
במסדי נתונים יחסיים ההגדרה של מסד מתוכנן היטב •קלה יחסית להגדרה ואינטואיטיבית. הבעיות הן בעיקר
יתירות מידע ואנומליות של עדכון.
. XMLהמצב שונה כשמדובר במבנים מורכבים כמו •מנגנוני עדכון למבנים כאלה אינם מפותחים דיים. הנושא
היחיד ה"מובן" יחסית הוא יתירות המידע.
( מנסים המחברים לנסח 6/2003במאמר עדכני )•פורמלית את הבעיה תוך שימוש בהגדרות מתורת
האינפורמציה.
![Page 57: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/57.jpg)
57
יסוד מושגי על כללי מבטנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי
הבסיס של תורת האינפורמציה הוא המושג של •, המודד את כמות המידע הניתנת על ידי אנטרופיה
מאורע כלשהו.
מייצגת את התפלגות הסתברותית של אנטרופיה•הערך הממוצע של מידע שמושג כאשר יודעים שאירוע
כלשהו התקיים.
מייצגת את כמות A בהינתן B של אנטרופיה יחסית• קרה. A כאשר ידוע ש-Bהמידע שניתן על ידי
![Page 58: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/58.jpg)
58
יחסי נתונים ובסיס אנטרופיהנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי
יתירות • עם יחסי נתונים בבסיסנתון – שמוסיף המידע מידע
" הוא" שמוסיף. 0מיותר המידע . חיובי הוא אחר נתון כל
•. הציונים: טבלת St1דוגמא
St2
St1
S. No
7.5SmithSDBI
8JonesSDBI
9SmithDB
GradeS. Name
Course
הגלום • המידע את אומדים שבו מודל להגדיר ניתן . במאגר מידע פריט בכל
![Page 59: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/59.jpg)
59
יחסי נתונים ובסיס אנטרופיהנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי
– BCNFבסכמת בסיס נתונים יחסי הנמצאת ב- טענה:כל פריט מידע )כל נתון בכל רשומה( נושא מידע גדול
מאפס.
המאמר מפתח מדדים לבחינת כמות המידע בכל פריט מגיע BCNFמידע ומראה שבסיס נתונים יחסי הנמצא ב-
למדד מקסימלי.
![Page 60: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/60.jpg)
60
XMLאנטרופיה ו-נתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי
מוכיח המאמר XMLע"י שימוש באותו מדד מותאם ל- הוא מתוכנן היטב אם המדד הוא מקסימלי.DTDשמסמך
הנמצא DTDבעקבות הוכחה זו המאמר טוען שמסמך הוא מתוכנן היטב. XNFב-
שנוצר על ידי DTDהמאמר עוד מוכיח שהמדד של מסמך הפעלת אלגוריתם הנרמול הוא מקסימלי.
![Page 61: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/61.jpg)
61
סיכום
הוא נושא XMLהנושא של תכנון מסדי נתונים מבוססי •מתפתח הכולל תחומים רבים שטרם מוצו.
במסגרת ההרצאה פיתחתי את הנושא של תכנון טוב •. DTD באמצעות ניתוח מסמכי XMLשל מסמכי
לאלה של העולם XMLהמונחים המקבילים בעולם ה-•היחסי הם מורכבים יותר ופחות אינטואיטיביים. עם זאת
נעשה שימוש בהגדרות מקבילות של סכמה, רשומות, תלויות פונקציונליות, צורות נורמליות.
DTD שרירותי ומחזיר DTDהצגתי אלגוריתם המקבל •. XNFמתוכנן היטב בצורת
יש מקום למחקר עתידי כמעט בכל נקודה במסמך.•
![Page 62: צורה נורמלית למסמכי XML](https://reader036.vdocuments.net/reader036/viewer/2022062301/568135e4550346895d9d5921/html5/thumbnails/62.jpg)
62
תודה