1 צורה נורמלית למסמכי XML A Normal Form for XML Documents. Arenas & Libkin - PODS...

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
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    223
  • download

    1

Transcript of 1 צורה נורמלית למסמכי XML A Normal Form for XML Documents. Arenas & Libkin - PODS...

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

תודה