Upload
rowan-ferrell
View
31
Download
0
Embed Size (px)
DESCRIPTION
צורה נורמלית למסמכי 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’. טל הרמתי tal128@cs. סדר יום. 1. הצגת הנושא. 2. הגדרות: DTD ועצי XML , רשומות, - PowerPoint PPT Presentation
Citation preview
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
2
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
3
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
4
XMLעקרונות תכנון מסדי נתונים מבוססי •
התיאוריה הנוגעת לתכנון מסדי נתונים יחסיים •וצורות נורמליות הינה מתקדמת ביותר.
להציג בסיס תיאורטי מטרת המסמכים:•. XMLמקביל לנושא תכנון טוב של מסמכי
הנושא. 1 הצגת הנושא. 1 הצגת
5
יכולים להכיל XMLכמו במסד יחסי, מסמכי •( ומצבים אנומליים של redundantמידע מיותר )
עדכון.
במסד יחסי – נמנע ע"י סכמה מתוכננת היטב. •
DTD – אפשר להתייחס ל-XMLבמסמך • כמנגנון להגדרה DTDכסכמה. אנחנו נתמקד ב-
. XMLשל מבנה מסמכי
DTDלמצוא מנגנון שיבחן מסמכי המטרה:•ויאפשר להמיר אותם למסמכים בנויים היטב
הנושא. 1 הצגת הנושא. 1 הצגת
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
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(>
8
הנושא. 1 הצגת הנושא. 1 הצגת
DTDיתירות ואנומליות עדכון – במסמכי
מקרא
אלמנט ושמו
אטריביוט ושמו
בן יחיד
ריבוי בנים
קשר הכרחי
courses
course
title taken_by cno
student
name grade sno
title
cno
יתירות
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(>
יתירות
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)>
11
הנושא. 1 הצגת הנושא. 1 הצגת
אחרי השינויDTDה-
courses
course
cnotaken_by
titlestudent
snograde
name
info
number
snoname
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 חייבים להיות באותה שנה
)יתירות(
הזזה: הפתרון
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(>
14
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
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
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
17
מסלוליםDTD. הגדרות: 2 DTD. הגדרות: 2
•paths(D)-אוסף כל המסלולים ב – D .
•EPaths(D)-אוסף כל המסלולים ב – D או באטריביוט(Sשמסתיימים באלמנט )ולא ב-
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
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"( }
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בעץ
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סימון:
22
עצים בין הכלה יחסיXML. הגדרות: עץ 2 XML. הגדרות: עץ 2
"מסודר" )בנים של אותו XMLמוטיבציה – מעבר ממצב של עץ •קודקוד מסומנים לפי הסדר שלהם( לעץ לא מסודר – שבו אין
חשיבות לסדר הקודקודים.
עץ יוגדר כמוכל בעץ )XML – )subsumedהכלה בין עצי •אחר אם השורשים זהים, הקודקודים הם קבוצה חלקית של
ובין labelsקודקודי העץ המכיל, יש התאמה בין ה-האטריביוטים, והבנים של כל קודקוד הם פרמוטציה של הבנים
. T1 ⋞ T2 מהעץ המכיל. סימון:
. T2 ⋞ T1וגם T1 ⋞ T2 ( אם equivalent )עצים שווי ערך •
עצים הם שווי ערך אם ורק אם הם אם שווים . T1 ≡ T2סימון: כעצים לא מסודרים.
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 .
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
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 מקסימלית ביחס ל-יחס ההכלה
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המקיימות
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)
כי שייך לאאינו
מקסימלי
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- כל רשומה ב-
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)
30
משפט2 : רשומות. הגדרות 2 : רשומות. הגדרות
– XML T ועץ DTD Dבהינתן . treesD)tuplesD)[T]( = [T] אז T⊳Dאם
(]T[)מחלקת שקילות של עצים לא מסודרים –
מאוסף הרשומות XMLאפשר לבנות מחדש עץ משמעות:המקסימליות שלו, עד כדי שקילות )במונחי
עצים לא מסודרים(.
השוויון ההפוך לא מתקיים. הערה: . )XtuplesDtreesD)Xמתקיים
לא חייב להכיל רשומות מקסימליות ויכול X)כי לכלול רשומות המוכלות זו בזו(.
31
פונקציונליות תלויות2 : פונקציונליות. תלויות הגדרות 2 : פונקציונליות. תלויות הגדרות
ההגדרה מתבססת על רשומות. •
( )ת"פ( functional dependencyתלות פונקציונלית )• הם S2 ו-S1, כאשר S1S2 היא ביטוי מהצורה Dמעל
. )paths)Dקבוצות חלקיות לא ריקות של
. )FD)D מסומן Dסימון: אוסף כל הת"פ מעל •
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⊨Σ .
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
34
פונקציונליות תלויות גזירת2 : פונקציונליות. תלויות הגדרות 2 : פונקציונליות. תלויות הגדרות
; ת"פ )ΣFD)D ; קבוצת ת"פDTD Dנתון: •βFD)D(.
Dאם כל עץ שתואם β גוזר את (D,Σ)נאמר ש-.β מקיים גם את ))Σ )T⊨)D,Σומקיים את
. β⊣(D,Σ) סימון:•
Σ נקראות הסגור של (D,Σ)אוסף כל הת"פ הנגזרות מ- •.+(D,Σ)ומסומנות
הוא בעיה קשה, והיא XMLחישוב הסגור של ת"פ ב-•מחוץ לגבולות המאמר.
35
טריוויאליות פונקציונליות תלויות2 : פונקציונליות. תלויות הגדרות 2 : פונקציונליות. תלויות הגדרות
בבסיס נתונים רלציוני – תלות טריוויאלית אחת:•. XY אז YXאם
. β(⊣∅,D) טריוויאלית אם βת"פ : XMLב-•
דוגמאות: •. ’p: pp שייך לקידומת של ’p ו-)pEPaths)Dלכל •. p,p.@lpaths)D(: pp.@lלכל •
36
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
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≠∅.)
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
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
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
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
42
XNF ו-BCNFהקשר בין XML. צורה נורמלית ל-XML 3. צורה נורמלית ל-3
בצורה DTD כל בסיס נתונים יחסי ל-אפשר להעביר•פשוטה.
אפשר לייצג כל ת"פ מבסיס הנתונים היחסי כת"פ • שיצרנו. DTDב-
אם ורק אם הייצוג BCNFטענה: סכמה יחסית היא ב-•. XNF עם הת"פ שהועתקו הם ב-DTDשלה כ-
כלומר – ניתן להוכיח שקילות בין הצורות הנורמליות.•
43
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
44
מוטיבציהנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
, XMLעד עכשיו ראינו דרכים לבדוק האם סכמת •, היא בצורה נורמלית. DTDהמופיעה בצורת מסמך
כלומר – מתוכננת היטב.
המטרה: כאשר זיהינו סכמה שאינה מתוכננת היטב, •למצוא דרך )אוטומטית( להעביר אותה לצורה מתוכננת
היטב.
הקושי: בהינתן אוסף ת"פ – למצוא את הסגור. •
45
בבעיות לטיפול דרכים שתי
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
הזזת אטריביוט1.כמו בדוגמא של המאמרים בכנסים.
יצירת סוג אלמנט חדש2.כמו הדוגמא של הציונים בקורסים.
46
אטריביוט הזזתנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
)p,qEPaths)D המכיל מסלולים DTDבהינתן חדש DTD – הזזת אטריביוט יוצרת )p.@lpaths)Dו-
ושמו משונה )q(last ל-)last)pשבו האטריביוט מועבר מ-. q.@mל-
ההזזה כוללת גם טיפול בתלויות הפונקציונליות המתייחסות לאטריביוט שהועבר.
rqp
Last)p( Last)q(
@l @m
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
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
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
50
? " אותנו מקדמת ל הנ השיטות הפעלת האם
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
בכל צעד באחת משתי השיטות )הזזת אטריביוטים טענה: שבו DTDאו יצירת אלמנט חדש( מתקבל
( קטן יותר. XNFמספר האנומליות )חריגות מ-
אלגוריתם המפעיל את השיטות הנ"ל מסתיים מסקנה: . XNF ב-DTDובסיומו מתקבל
51
האלגוריתם הצגתנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
. 2. אחרת- שלב (D,Σ) אז החזר XNF ב-(D,Σ)אם 1(
אם יש ת"פ אנומלית שיכולה להיפתר על ידי הזזת 2(אטריביוט )מוגדר במאמר במדויק( אז בצע הזזת
. 3. אחרת – שלב 1אטריביוט וחזור לשלב . (D,Σ))הערה- שלב זה מחייב חישוב סגור של
בחר ת"פ אנומלית מינימלית ובצע יצירת אלמנט חדש. 3(. 1חזור לשלב
)ת"פ אנומלית מינימלית- כזו שאם נוריד ממנה מסלול אחד היא כבר לא תהיה אנומלית(
52
אובדן ללא פירוקנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
DTDפירוק ללא אובדן– אין אובדן של מידע במעבר מ-. DTDל-
המאמר מגדיר אמצעי לבדוק האם הפירוק הוא ללא אובדן, וטוען שהפירוק על ידי האלגוריתם שהוצע הוא
חסר אובדן.
ההוכחה אינה מצויה במאמר – משאירה כר נרחב למחקר ופיתוח.
53
הנרמול אלגוריתם סיבוכיותנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
- הסגור של אוסף +(D,Σ)האלגוריתם עושה שימוש ב- ת"פ. חישוב הסגור מחייב גזירת ת"פ, והוא המרכיב
ה"כבד" ביותר בחישוב הסיבוכיות.
ייקרא פשוט אם כל הביטויים הרגולריים DTDהגדרה: בהם הוא משתמש הם ביטויים פשוטים )האותיות הן
ai, ai?, aiמהצורה ai או +
(. i≠jעבור aj≠ai וכן *
פשוט DTDטענה: בעיית גזירת ת"פ וחישוב הסגור עבור פתירה בזמן ריבועי.
54
הנרמול אלגוריתם (סיבוכיות המשך )נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
כלשהו? DTDמה לגבי
המאמר טוען שכאשר מספר הביטויים הרגולריים שאינם פשוטים חסום – ניתן לחשב סגור בזמן פולינומיאלי.
עם זאת, כאשר אין מגבלות על הביטויים הרגולריים שלמה. coNPהאפשריים, חישוב הסגור הוא בעיה
55
יום יום סדר סדר
הנושא. 1 הצגת הנושא. 1 הצגת
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות
XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3
נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם
XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5
56
מוטיבציהנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי
במסדי נתונים יחסיים ההגדרה של מסד מתוכנן היטב •קלה יחסית להגדרה ואינטואיטיבית. הבעיות הן בעיקר
יתירות מידע ואנומליות של עדכון.
. XMLהמצב שונה כשמדובר במבנים מורכבים כמו •מנגנוני עדכון למבנים כאלה אינם מפותחים דיים. הנושא
היחיד ה"מובן" יחסית הוא יתירות המידע.
( מנסים המחברים לנסח 6/2003במאמר עדכני )•פורמלית את הבעיה תוך שימוש בהגדרות מתורת
האינפורמציה.
57
יסוד מושגי על כללי מבטנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי
הבסיס של תורת האינפורמציה הוא המושג של •, המודד את כמות המידע הניתנת על ידי אנטרופיה
מאורע כלשהו.
מייצגת את התפלגות הסתברותית של אנטרופיה•הערך הממוצע של מידע שמושג כאשר יודעים שאירוע
כלשהו התקיים.
מייצגת את כמות A בהינתן B של אנטרופיה יחסית• קרה. A כאשר ידוע ש-Bהמידע שניתן על ידי
58
יחסי נתונים ובסיס אנטרופיהנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי
יתירות • עם יחסי נתונים בבסיסנתון – שמוסיף המידע מידע
" הוא" שמוסיף. 0מיותר המידע . חיובי הוא אחר נתון כל
•. הציונים: טבלת St1דוגמא
St2
St1
S. No
7.5SmithSDBI
8JonesSDBI
9SmithDB
GradeS. Name
Course
הגלום • המידע את אומדים שבו מודל להגדיר ניתן . במאגר מידע פריט בכל
59
יחסי נתונים ובסיס אנטרופיהנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי
– BCNFבסכמת בסיס נתונים יחסי הנמצאת ב- טענה:כל פריט מידע )כל נתון בכל רשומה( נושא מידע גדול
מאפס.
המאמר מפתח מדדים לבחינת כמות המידע בכל פריט מגיע BCNFמידע ומראה שבסיס נתונים יחסי הנמצא ב-
למדד מקסימלי.
60
XMLאנטרופיה ו-נתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי
מוכיח המאמר XMLע"י שימוש באותו מדד מותאם ל- הוא מתוכנן היטב אם המדד הוא מקסימלי.DTDשמסמך
הנמצא DTDבעקבות הוכחה זו המאמר טוען שמסמך הוא מתוכנן היטב. XNFב-
שנוצר על ידי DTDהמאמר עוד מוכיח שהמדד של מסמך הפעלת אלגוריתם הנרמול הוא מקסימלי.
61
סיכום
הוא נושא XMLהנושא של תכנון מסדי נתונים מבוססי •מתפתח הכולל תחומים רבים שטרם מוצו.
במסגרת ההרצאה פיתחתי את הנושא של תכנון טוב •. DTD באמצעות ניתוח מסמכי XMLשל מסמכי
לאלה של העולם XMLהמונחים המקבילים בעולם ה-•היחסי הם מורכבים יותר ופחות אינטואיטיביים. עם זאת
נעשה שימוש בהגדרות מקבילות של סכמה, רשומות, תלויות פונקציונליות, צורות נורמליות.
DTD שרירותי ומחזיר DTDהצגתי אלגוריתם המקבל •. XNFמתוכנן היטב בצורת
יש מקום למחקר עתידי כמעט בכל נקודה במסמך.•
62
תודה