62
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’ יי"י: יי יייייtal128@cs

צורה נורמלית למסמכי XML

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

Page 1: צורה נורמלית למסמכי  XML

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

2

יום יום סדר סדר

הנושא. 1 הצגת הנושא. 1 הצגת

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3

נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5

Page 3: צורה נורמלית למסמכי  XML

3

יום יום סדר סדר

הנושא. 1 הצגת הנושא. 1 הצגת

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3

נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5

Page 4: צורה נורמלית למסמכי  XML

4

XMLעקרונות תכנון מסדי נתונים מבוססי •

התיאוריה הנוגעת לתכנון מסדי נתונים יחסיים •וצורות נורמליות הינה מתקדמת ביותר.

להציג בסיס תיאורטי מטרת המסמכים:•. XMLמקביל לנושא תכנון טוב של מסמכי

הנושא. 1 הצגת הנושא. 1 הצגת

Page 5: צורה נורמלית למסמכי  XML

5

יכולים להכיל XMLכמו במסד יחסי, מסמכי •( ומצבים אנומליים של redundantמידע מיותר )

עדכון.

במסד יחסי – נמנע ע"י סכמה מתוכננת היטב. •

DTD – אפשר להתייחס ל-XMLבמסמך • כמנגנון להגדרה DTDכסכמה. אנחנו נתמקד ב-

. XMLשל מבנה מסמכי

DTDלמצוא מנגנון שיבחן מסמכי המטרה:•ויאפשר להמיר אותם למסמכים בנויים היטב

הנושא. 1 הצגת הנושא. 1 הצגת

Page 6: צורה נורמלית למסמכי  XML

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

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

8

הנושא. 1 הצגת הנושא. 1 הצגת

DTDיתירות ואנומליות עדכון – במסמכי

מקרא

אלמנט ושמו

אטריביוט ושמו

בן יחיד

ריבוי בנים

קשר הכרחי

courses

course

title taken_by cno

student

name grade sno

title

cno

יתירות

Page 9: צורה נורמלית למסמכי  XML

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

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

11

הנושא. 1 הצגת הנושא. 1 הצגת

אחרי השינויDTDה-

courses

course

cnotaken_by

titlestudent

snograde

name

info

number

snoname

Page 12: צורה נורמלית למסמכי  XML

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

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

14

יום יום סדר סדר

הנושא. 1 הצגת הנושא. 1 הצגת

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3

נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5

Page 15: צורה נורמלית למסמכי  XML

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

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

17

מסלוליםDTD. הגדרות: 2 DTD. הגדרות: 2

•paths(D)-אוסף כל המסלולים ב – D .

•EPaths(D)-אוסף כל המסלולים ב – D או באטריביוט(Sשמסתיימים באלמנט )ולא ב-

Page 18: צורה נורמלית למסמכי  XML

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

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

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

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

22

עצים בין הכלה יחסיXML. הגדרות: עץ 2 XML. הגדרות: עץ 2

"מסודר" )בנים של אותו XMLמוטיבציה – מעבר ממצב של עץ •קודקוד מסומנים לפי הסדר שלהם( לעץ לא מסודר – שבו אין

חשיבות לסדר הקודקודים.

עץ יוגדר כמוכל בעץ )XML – )subsumedהכלה בין עצי •אחר אם השורשים זהים, הקודקודים הם קבוצה חלקית של

ובין labelsקודקודי העץ המכיל, יש התאמה בין ה-האטריביוטים, והבנים של כל קודקוד הם פרמוטציה של הבנים

. T1 ⋞ T2 מהעץ המכיל. סימון:

. T2 ⋞ T1וגם T1 ⋞ T2 ( אם equivalent )עצים שווי ערך •

עצים הם שווי ערך אם ורק אם הם אם שווים . T1 ≡ T2סימון: כעצים לא מסודרים.

Page 23: צורה נורמלית למסמכי  XML

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

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

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

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

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

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

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

30

משפט2 : רשומות. הגדרות 2 : רשומות. הגדרות

– XML T ועץ DTD Dבהינתן . treesD)tuplesD)[T]( = [T] אז T⊳Dאם

(]T[)מחלקת שקילות של עצים לא מסודרים –

מאוסף הרשומות XMLאפשר לבנות מחדש עץ משמעות:המקסימליות שלו, עד כדי שקילות )במונחי

עצים לא מסודרים(.

השוויון ההפוך לא מתקיים. הערה: . )XtuplesDtreesD)Xמתקיים

לא חייב להכיל רשומות מקסימליות ויכול X)כי לכלול רשומות המוכלות זו בזו(.

Page 31: צורה נורמלית למסמכי  XML

31

פונקציונליות תלויות2 : פונקציונליות. תלויות הגדרות 2 : פונקציונליות. תלויות הגדרות

ההגדרה מתבססת על רשומות. •

( )ת"פ( functional dependencyתלות פונקציונלית )• הם S2 ו-S1, כאשר S1S2 היא ביטוי מהצורה Dמעל

. )paths)Dקבוצות חלקיות לא ריקות של

. )FD)D מסומן Dסימון: אוסף כל הת"פ מעל •

Page 32: צורה נורמלית למסמכי  XML

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

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

34

פונקציונליות תלויות גזירת2 : פונקציונליות. תלויות הגדרות 2 : פונקציונליות. תלויות הגדרות

; ת"פ )ΣFD)D ; קבוצת ת"פDTD Dנתון: •βFD)D(.

Dאם כל עץ שתואם β גוזר את (D,Σ)נאמר ש-.β מקיים גם את ))Σ )T⊨)D,Σומקיים את

. β⊣(D,Σ) סימון:•

Σ נקראות הסגור של (D,Σ)אוסף כל הת"פ הנגזרות מ- •.+(D,Σ)ומסומנות

הוא בעיה קשה, והיא XMLחישוב הסגור של ת"פ ב-•מחוץ לגבולות המאמר.

Page 35: צורה נורמלית למסמכי  XML

35

טריוויאליות פונקציונליות תלויות2 : פונקציונליות. תלויות הגדרות 2 : פונקציונליות. תלויות הגדרות

בבסיס נתונים רלציוני – תלות טריוויאלית אחת:•. XY אז YXאם

. β(⊣∅,D) טריוויאלית אם βת"פ : XMLב-•

דוגמאות: •. ’p: pp שייך לקידומת של ’p ו-)pEPaths)Dלכל •. p,p.@lpaths)D(: pp.@lלכל •

Page 36: צורה נורמלית למסמכי  XML

36

יום יום סדר סדר

הנושא. 1 הצגת הנושא. 1 הצגת

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3

נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5

Page 37: צורה נורמלית למסמכי  XML

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

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

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

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

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

42

XNF ו-BCNFהקשר בין XML. צורה נורמלית ל-XML 3. צורה נורמלית ל-3

בצורה DTD כל בסיס נתונים יחסי ל-אפשר להעביר•פשוטה.

אפשר לייצג כל ת"פ מבסיס הנתונים היחסי כת"פ • שיצרנו. DTDב-

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

כלומר – ניתן להוכיח שקילות בין הצורות הנורמליות.•

Page 43: צורה נורמלית למסמכי  XML

43

יום יום סדר סדר

הנושא. 1 הצגת הנושא. 1 הצגת

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3

נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5

Page 44: צורה נורמלית למסמכי  XML

44

מוטיבציהנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

, XMLעד עכשיו ראינו דרכים לבדוק האם סכמת •, היא בצורה נורמלית. DTDהמופיעה בצורת מסמך

כלומר – מתוכננת היטב.

המטרה: כאשר זיהינו סכמה שאינה מתוכננת היטב, •למצוא דרך )אוטומטית( להעביר אותה לצורה מתוכננת

היטב.

הקושי: בהינתן אוסף ת"פ – למצוא את הסגור. •

Page 45: צורה נורמלית למסמכי  XML

45

בבעיות לטיפול דרכים שתי

נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

הזזת אטריביוט1.כמו בדוגמא של המאמרים בכנסים.

יצירת סוג אלמנט חדש2.כמו הדוגמא של הציונים בקורסים.

Page 46: צורה נורמלית למסמכי  XML

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

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

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

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

50

? " אותנו מקדמת ל הנ השיטות הפעלת האם

נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

בכל צעד באחת משתי השיטות )הזזת אטריביוטים טענה: שבו DTDאו יצירת אלמנט חדש( מתקבל

( קטן יותר. XNFמספר האנומליות )חריגות מ-

אלגוריתם המפעיל את השיטות הנ"ל מסתיים מסקנה: . XNF ב-DTDובסיומו מתקבל

Page 51: צורה נורמלית למסמכי  XML

51

האלגוריתם הצגתנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

. 2. אחרת- שלב (D,Σ) אז החזר XNF ב-(D,Σ)אם 1(

אם יש ת"פ אנומלית שיכולה להיפתר על ידי הזזת 2(אטריביוט )מוגדר במאמר במדויק( אז בצע הזזת

. 3. אחרת – שלב 1אטריביוט וחזור לשלב . (D,Σ))הערה- שלב זה מחייב חישוב סגור של

בחר ת"פ אנומלית מינימלית ובצע יצירת אלמנט חדש. 3(. 1חזור לשלב

)ת"פ אנומלית מינימלית- כזו שאם נוריד ממנה מסלול אחד היא כבר לא תהיה אנומלית(

Page 52: צורה נורמלית למסמכי  XML

52

אובדן ללא פירוקנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

DTDפירוק ללא אובדן– אין אובדן של מידע במעבר מ-. DTDל-

המאמר מגדיר אמצעי לבדוק האם הפירוק הוא ללא אובדן, וטוען שהפירוק על ידי האלגוריתם שהוצע הוא

חסר אובדן.

ההוכחה אינה מצויה במאמר – משאירה כר נרחב למחקר ופיתוח.

Page 53: צורה נורמלית למסמכי  XML

53

הנרמול אלגוריתם סיבוכיותנרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

- הסגור של אוסף +(D,Σ)האלגוריתם עושה שימוש ב- ת"פ. חישוב הסגור מחייב גזירת ת"פ, והוא המרכיב

ה"כבד" ביותר בחישוב הסיבוכיות.

ייקרא פשוט אם כל הביטויים הרגולריים DTDהגדרה: בהם הוא משתמש הם ביטויים פשוטים )האותיות הן

ai, ai?, aiמהצורה ai או +

(. i≠jעבור aj≠ai וכן *

פשוט DTDטענה: בעיית גזירת ת"פ וחישוב הסגור עבור פתירה בזמן ריבועי.

Page 54: צורה נורמלית למסמכי  XML

54

הנרמול אלגוריתם (סיבוכיות המשך )נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

כלשהו? DTDמה לגבי

המאמר טוען שכאשר מספר הביטויים הרגולריים שאינם פשוטים חסום – ניתן לחשב סגור בזמן פולינומיאלי.

עם זאת, כאשר אין מגבלות על הביטויים הרגולריים שלמה. coNPהאפשריים, חישוב הסגור הוא בעיה

Page 55: צורה נורמלית למסמכי  XML

55

יום יום סדר סדר

הנושא. 1 הצגת הנושא. 1 הצגת

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

, רשומות, XML ועצי DTD. הגדרות: 2תלויות פונקציונליות

XML. הצגת צורה נורמלית ל-3 XML. הצגת צורה נורמלית ל-3

נרמול. 4 אלגוריתם נרמול. 4 אלגוריתם

XML. עוד על איכות תכנון מסדי נתונים ו-5 XML. עוד על איכות תכנון מסדי נתונים ו-5

Page 56: צורה נורמלית למסמכי  XML

56

מוטיבציהנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי

במסדי נתונים יחסיים ההגדרה של מסד מתוכנן היטב •קלה יחסית להגדרה ואינטואיטיבית. הבעיות הן בעיקר

יתירות מידע ואנומליות של עדכון.

. XMLהמצב שונה כשמדובר במבנים מורכבים כמו •מנגנוני עדכון למבנים כאלה אינם מפותחים דיים. הנושא

היחיד ה"מובן" יחסית הוא יתירות המידע.

( מנסים המחברים לנסח 6/2003במאמר עדכני )•פורמלית את הבעיה תוך שימוש בהגדרות מתורת

האינפורמציה.

Page 57: צורה נורמלית למסמכי  XML

57

יסוד מושגי על כללי מבטנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי

הבסיס של תורת האינפורמציה הוא המושג של •, המודד את כמות המידע הניתנת על ידי אנטרופיה

מאורע כלשהו.

מייצגת את התפלגות הסתברותית של אנטרופיה•הערך הממוצע של מידע שמושג כאשר יודעים שאירוע

כלשהו התקיים.

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

Page 58: צורה נורמלית למסמכי  XML

58

יחסי נתונים ובסיס אנטרופיהנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי

יתירות • עם יחסי נתונים בבסיסנתון – שמוסיף המידע מידע

" הוא" שמוסיף. 0מיותר המידע . חיובי הוא אחר נתון כל

•. הציונים: טבלת St1דוגמא

St2

St1

S. No

7.5SmithSDBI

8JonesSDBI

9SmithDB

GradeS. Name

Course

הגלום • המידע את אומדים שבו מודל להגדיר ניתן . במאגר מידע פריט בכל

Page 59: צורה נורמלית למסמכי  XML

59

יחסי נתונים ובסיס אנטרופיהנתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי

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

מאפס.

המאמר מפתח מדדים לבחינת כמות המידע בכל פריט מגיע BCNFמידע ומראה שבסיס נתונים יחסי הנמצא ב-

למדד מקסימלי.

Page 60: צורה נורמלית למסמכי  XML

60

XMLאנטרופיה ו-נתונים. 5 מסדי תכנון איכות מדדי נתונים. 5 מסדי תכנון איכות מדדי

מוכיח המאמר XMLע"י שימוש באותו מדד מותאם ל- הוא מתוכנן היטב אם המדד הוא מקסימלי.DTDשמסמך

הנמצא DTDבעקבות הוכחה זו המאמר טוען שמסמך הוא מתוכנן היטב. XNFב-

שנוצר על ידי DTDהמאמר עוד מוכיח שהמדד של מסמך הפעלת אלגוריתם הנרמול הוא מקסימלי.

Page 61: צורה נורמלית למסמכי  XML

61

סיכום

הוא נושא XMLהנושא של תכנון מסדי נתונים מבוססי •מתפתח הכולל תחומים רבים שטרם מוצו.

במסגרת ההרצאה פיתחתי את הנושא של תכנון טוב •. DTD באמצעות ניתוח מסמכי XMLשל מסמכי

לאלה של העולם XMLהמונחים המקבילים בעולם ה-•היחסי הם מורכבים יותר ופחות אינטואיטיביים. עם זאת

נעשה שימוש בהגדרות מקבילות של סכמה, רשומות, תלויות פונקציונליות, צורות נורמליות.

DTD שרירותי ומחזיר DTDהצגתי אלגוריתם המקבל •. XNFמתוכנן היטב בצורת

יש מקום למחקר עתידי כמעט בכל נקודה במסמך.•

Page 62: צורה נורמלית למסמכי  XML

62

תודה