Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-561 ιαχείριση εδοµένων στο Παγκόσµιο Ιστό Βασίλης Χριστοφίδης

Σχετικά έγγραφα
EE512: Error Control Coding

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-561 ιαχείριση εδοµένων στο Παγκόσµιο Ιστό Βασίλης Χριστοφίδης

Section 8.3 Trigonometric Equations

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

2 Composition. Invertible Mappings

Inverse trigonometric functions & General Solution of Trigonometric Equations

5. Επερώτηση XML Εγγράφων: Εισαγωγή στη Γλώσσα XQuery

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Approximation of distance between locations on earth given by latitude and longitude

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

The Simply Typed Lambda Calculus

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Math 6 SL Probability Distributions Practice Test Mark Scheme

Fractional Colorings and Zykov Products of graphs

Βάσεις Δεδομένων ΙΙ. Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Εισαγωγή XML: Extensible Markup Language Ορίστηκε από το WWW Consortium (W3C) ως συµπλήρωµα της HTML. εν σχεδιάστηκε για βάσεις δεδοµένων αλλά για δια

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

Σημασιολογικός Ιστός (Semantic Web) - XML

Example Sheet 3 Solutions

4.6 Autoregressive Moving Average Model ARMA(1,1)

Matrices and Determinants

Section 7.6 Double and Half Angle Formulas

Finite Field Problems: Solutions

C.S. 430 Assignment 6, Sample Solutions

Section 9.2 Polar Equations and Graphs

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

derivation of the Laplacian from rectangular to spherical coordinates

ANSWERSHEET (TOPIC = DIFFERENTIAL CALCULUS) COLLECTION #2. h 0 h h 0 h h 0 ( ) g k = g 0 + g 1 + g g 2009 =?

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

Partial Differential Equations in Biology The boundary element method. March 26, 2013

Partial Trace and Partial Transpose

Math221: HW# 1 solutions

Homework 3 Solutions

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. ΗΥ-561 Διαχείριση Δεδομένων στο Παγκόσμιο Ιστό Βασίλης Χριστοφίδης

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

1) Formulation of the Problem as a Linear Programming Model

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Instruction Execution Times

Models for Probabilistic Programs with an Adversary

Σχέσεις, Ιδιότητες, Κλειστότητες

Main source: "Discrete-time systems and computer control" by Α. ΣΚΟΔΡΑΣ ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΔΙΑΛΕΞΗ 4 ΔΙΑΦΑΝΕΙΑ 1

Μορφοποίηση υπό όρους : Μορφή > Μορφοποίηση υπό όρους/γραμμές δεδομένων/μορφοποίηση μόο των κελιών που περιέχουν/

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11

6.3 Forecasting ARMA processes

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Srednicki Chapter 55

Practice Exam 2. Conceptual Questions. 1. State a Basic identity and then verify it. (a) Identity: Solution: One identity is csc(θ) = 1

3. Επερώτηση XML Εγγράφων: Η Γλώσσα XPath

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

Απόκριση σε Μοναδιαία Ωστική Δύναμη (Unit Impulse) Απόκριση σε Δυνάμεις Αυθαίρετα Μεταβαλλόμενες με το Χρόνο. Απόστολος Σ.

Areas and Lengths in Polar Coordinates

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ

Areas and Lengths in Polar Coordinates

Every set of first-order formulas is equivalent to an independent set

Assalamu `alaikum wr. wb.

ΤΕΧΝΟΛΟΓΙΕΣ ΠΟΛΥΜΕΣΩΝ

Strain gauge and rosettes

D Alembert s Solution to the Wave Equation

Chapter 6: Systems of Linear Differential. be continuous functions on the interval

Statistical Inference I Locally most powerful tests

Second Order RLC Filters

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Nowhere-zero flows Let be a digraph, Abelian group. A Γ-circulation in is a mapping : such that, where, and : tail in X, head in

the total number of electrons passing through the lamp.

Second Order Partial Differential Equations

Advanced Subsidiary Unit 1: Understanding and Written Response

2. THEORY OF EQUATIONS. PREVIOUS EAMCET Bits.

Section 1: Listening and responding. Presenter: Niki Farfara MGTAV VCE Seminar 7 August 2016

If we restrict the domain of y = sin x to [ π, π ], the restrict function. y = sin x, π 2 x π 2

Mean bond enthalpy Standard enthalpy of formation Bond N H N N N N H O O O

Calculating the propagation delay of coaxial cable

Μηχανική Μάθηση Hypothesis Testing

PARTIAL NOTES for 6.1 Trigonometric Identities

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

Μεταπτυχιακή διατριβή. Ανδρέας Παπαευσταθίου

If we restrict the domain of y = sin x to [ π 2, π 2

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ

The challenges of non-stable predicates

Right Rear Door. Let's now finish the door hinge saga with the right rear door

SCITECH Volume 13, Issue 2 RESEARCH ORGANISATION Published online: March 29, 2018

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

Jesse Maassen and Mark Lundstrom Purdue University November 25, 2013

Cambridge International Examinations Cambridge International General Certificate of Secondary Education

AVL-trees C++ implementation

A Note on Intuitionistic Fuzzy. Equivalence Relation

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 7η: Consumer Behavior Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ

Αλγόριθμοι και πολυπλοκότητα NP-Completeness (2)

Reminders: linear functions

From the finite to the transfinite: Λµ-terms and streams

IIT JEE (2013) (Trigonomtery 1) Solutions

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Transcript:

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών ΗΥ-561 ιαχείριση εδοµένων στο Παγκόσµιο Ιστό Βασίλης Χριστοφίδης Ονοµατεπώνυµο: Αριθµός Μητρώου: Τελική Εξέταση (3 ώρες) Ηµεροµηνία: 13 Φεβρουαρίου 2004 Άσκηση 1 (40 µονάδες) Θεωρήστε τον παρακάτω γράφο ηµι-δοµηµένων δεδοµένων D, o οποίος αναπαριστά ένα µέρος της βάσης δεδοµένων MLB µε πληροφορίες σχετικές µε το επαγγελµατικό πρωτάθληµα baseball (Major League baseball). 1.1.(10 µονάδες) Αποδείξτε ότι ο παρακάτω γράφος σχήµατος S είναι ένα σχήµα για τον γράφο ηµι-δοµηµένων δεδοµένων D, δηλαδή ότι ο S είναι µια τυποποιηµένη (typed) και µε ρίζα (rooted) προσοµοίωση του D. ώστε την σχέση R (<) µεταξύ των κόµβων του γράφου δεδοµένων D και αυτών του γράφου σχήµατος S που ορίζει µια µέγιστη προσοµοίωση (maximal simulation). Για την απάντησή σας µπορείτε να αναπαραστήσετε την σχέση R (<) σαν πίνακα µε 2 κολώνες.

R (Data Node, Schema Node) 1 Root 2, 14 N-team 24 A-team 6, 11, 17, 21 N-player 27 A-player 3, 4, 5, 7, 8, 9, 10, 12, 13, 15, 16, 18, 19, 20, 22, 23, 25, 26, 28, 29, 30 String 1.2. (10 µονάδες) Κατασκευάστε, τον Οδηγό εδοµένων DG για τον γράφο ηµι-δοµηµένων δεδοµένων D δηλαδή ένα σχήµα έτσι ώστε: (α) κάθε µονοπάτι ετικετών στο D να εµφανίζεται και στο G καθώς και το αντίστροφο (Accurate) και (β) κάθε µονοπάτι ετικετών στο G να είναι µοναδικό (Concise). 1.3. (10 µονάδες) Μια κανονική έκφραση µονοπατιών P σε ένα γράφο ηµιδοµηµένων δεδοµένων D αποτιµάται στο σύνολο των κόµβων του D οι οποίοι είναι προσπελάσιµοι από την P. Ποιο από τα σχήµατα S (Γράφος Σχήµατος) και DG (Οδηγός εδοµένων) πιστεύετε ότι είναι πιό κατάλληλo για την βελτιστοποίηση της αποτίµησης της κανονικής έκφρασης µονοπατιών MLB. National.player.nickname στο γράφο ηµι-δοµηµένων δεδοµένων MLB της άσκησης; Κατά πόσο η προτεινόµενη τεχνική µπορεί επίσης να χρησιµοποιηθεί για την βελτιστοποίηση επερωτήσεων (π.χ. στην LOREL) που περιέχουν πολλαπλές κανονικές εκφράσεις µονοπατιών και µεταβλητές όπως η παρακάτω; Select x From MLB.National x, x.player.name y Where y = Kim Περιγράψτε αναλυτικά την αποτίµηση των παραπάνω επερωτήσεων µε ή χωρίς βελτιστοποίηση.

Without a DataGuide, a query processor would be forced to examine each National, in turn each player of each National and finally return each nickname object of each player object. The bold lines in D Figure shows this process. In the DataGuide technique, any object in a DataGuide graph has a target set that denotes all objects reachable by a given label path in the source database. For example, the target set of the object 2 in DG Figure is {2; 14} in D Figure. In our example, the query result is the objects in the target set of MLB.National.player.nicknam. So, the target set of the object 6 in DG Figure, that is, {7; 18}, is returned. This traversing is shown in the bold lines in DG Figure. In this way, the object search space is reduced. However, this technique can be applied only to queries with a single regular expression. That is, it cannot be directly applied to complex queries with several regular expressions and variables. The LOREL query asks for teams, which have the player, named Kim. The result of the query cannot be returned by only traversing the DataGuide graph. That is, if we traverse the DataGuide graph, the results of the query are nodes 2 and 7 and the corresponding target sets are {2,14} and {8; 12; 19; 22}. However, since there is no path information between nodes 2 and 7, we cannot answer the query by using only the DataGuide graph. Thus, we should traverse the source data graph and the DataGuide graph simultaneously. 1.4 (10 µονάδες) Ποιο από τα σχήµατα S (Γράφος Σχήµατος) και DG (Οδηγός εδοµένων) πιστεύετε ότι είναι πιο κατάλληλo για την αποθήκευση ενός γράφου ηµι-δοµηµένων δεδοµένων σε µια σχεσιακή βάση δεδοµένων; ώστε το λογικό σχήµα και ένα στιγµιότυπο της σχεσιακής βάσης, που αποθηκεύει όλο το γράφο ηµι-δοµηµένων δεδοµένων MLB της άσκησης. Στη συνέχεια διατυπώστε την επερώτηση SQL που χρειαζόµαστε για να αποτιµήσουµε στην σχεσιακή βάση την κανονική έκφραση µονοπατιών MLB.National.player.nickname. Ποια βελτιστοποίηση επιτυγχάνουµε µε αυτή την τεχνική, συγκρινόµενη µε την εκτέλεση της ίδιας επερώτησης SQL σε µια σχεσιακή βάση που έχει το ακόλουθο γενικό σχήµα αποθήκευσης ηµιδοµηµένων δεδοµένων: ref(source: oid, label: dom, destination: oid) val(obj: oid, value: dom) National (oid, division, stadium, name, player) Player (oid, nickname, name, era, win, avg) American (oid, division,name,playera) Playera (name,era,win) Select Y.name From National X, Player Y Less joins

Άσκηση 2 (60 µονάδες) 2.1.(10 µονάδες) ώστε την έκφραση XQuery που κατασκευάζει ένα πίνακα HTML µε το ακόλουθο περιεχόµενο: Σηµείωση: Θυµηθείτε ότι ένας πίνακας HTML σηµειώνεται µε <table> και αποτελείται από γραµµές που σηµειώνονται µε <tr> και από στήλες που σηµειώνονται µε </td>. Κάθε στήλη, µπορεί να καθορίζει την στοίχιση (align), το υποκείµενο χρώµα (bgcolor), πλάτος (width) και ύψος (height) των κελιών της. <html> <body> <table>{ for $y in 1 to 8 return <tr>{ for $x in1 to8 return let $bg:=(if(( $x + $y) mod2 = 0) then "red" else"black") return <td align="right" bgcolor="{$bg}" width="30" height="30"> </td> }</tr> }</table> </body> </html> 2.2.(20 µονάδες) Σας δίνονται τα παρακάτω έγγραφα XML και οι καθορισµοί των τύπων τους (DTDs) που περιέχουν πληροφορίες σχετικά µε δηµοπρασίες (bids) και αντικείµενα (items) προς πώληση: <?xml version="1.0"?> <!DOCTYPE items [ <!ELEMENT items (item_tuple*)> <!ELEMENT item_tuple (itemno, description, offered_by, start_date?, end_date?, reserve_price? )> <!ELEMENT itemno (#PCDATA)> <!ELEMENT description (#PCDATA)> <!ELEMENT offered_by (#PCDATA)> <!ELEMENT start_date (#PCDATA)> <!ELEMENT end_date (#PCDATA)> <!ELEMENT reserve_price (#PCDATA)> ]>

<?xml version="1.0"?> <!DOCTYPE bids [ <!ELEMENT bids (bid_tuple*)> <!ELEMENT bid_tuple (userid, itemno, bid, bid_date)> <!ELEMENT userid (#PCDATA)> <!ELEMENT itemno (#PCDATA)> <!ELEMENT bid (#PCDATA)> <!ELEMENT bid_date (#PCDATA)> ]> <items> <item_tuple> <itemno>1001</itemno> <description>red Bicycle</description> <offered_by>u02</offered_by> <start_date>2004-01-05</start_date> <end_date>2004-01-20</end_date> <reserve_price>40</reserve_price> </item_tuple> <item_tuple> <itemno>1002</itemno> <description>motorcycle</description> <offered_by>u010</offered_by> <start_date>2004-02-11</start_date> <end_date>2004-03-15</end_date> <reserve_price>500</reserve_price> </item_tuple> <bids> <bid_tuple> <userid>u02</userid> <itemno>1001</itemno> <bid>30</bid> <bid_date>04-01-07</bid_date> </bid_tuple> <bid_tuple> <userid>u04</userid> <itemno>1001</itemno> <bid>90</bid> <bid_date>04-01-08</bid_date> </bid_tuple> </bids> </items> ώστε τις εκφράσεις XQuery για τις παρακάτω επερωτήσεις, καθώς και το αποτέλεσµά τους µε την µορφή ενός εγγράφου XML. ώστε επίσης τον τύπο του αποτελέσµατος για κάθε ερώτηση: a) (5 µονάδες) ώστε τον αριθµό και την περιγραφή των αντικειµένων (items) τα οποία δεν έχουν δηµοπρατηθεί (bids). <result>{ FOR $i IN document("items.xml")//item_tuple WHERE NOT(exists( -- use of variable in Xpath document("bids.xml")//bid_tuple[itemno=$i/itemno])) RETURN <no_bid_item>{ $i/itemno, $i/description }</no_bid_item> }</result> <result> <no_bid_item> <itemno>1002</itemno> <description>motorcycle</description> </no_bid_item> </result>

element result { element no_bid_item { element itemno {xsd:integer}, element description {xsd:string} }* } b) (5 µονάδες) ώστε τον αριθµό και την µέση προσφερόµενη τιµή των δηµοπρατηθέντων αντικειµένων για τα οποία υπάρχουν τουλάχιστον δύο προσφορές (bids). Ταξινοµήστε σε φθίνουσα σειρά το αποτέλεσµα ως προς την µέση προσφερόµενη τιµή. <result>{ FOR $i IN DISTINCT- VALUES (document("bids.xml")//itemno) LET $b := document("bids.xml")//bid_tuple [itemno = $i] WHERE count($b) GE 2 ORDER BY avg($b/bid) DESCENDING RETURN <popular_item> {$i, <avgbid>{avg($b/bid)}</avgbid>} </popular_item> }</result> <result> <popular_item> <itemno>1001</itemno> <avgbid>60</avgbid> </popular_item> </result> element result { element popular_item { element itemno {xsd:integer}, element avgbid {xsd:integer?} }* } c) (10 µονάδες) Για κάθε δηµοπρατηθέν αντικείµενο, του οποίου η µέγιστη προσφερόµενη τιµή (bid) είναι διπλάσια από την τιµή εκκίνησης (reserve price), βρείτε τον αριθµό, την περιγραφή, την τιµή εκκίνησης, και την µέγιστη προσφερόµενη τιµή του αντικειµένου. <result>{ FOR $item IN document("items.xml")//item_tuple LET $b := document("bids.xml")//bid_tuple [itemno = $item/itemno] WHERE $item/reserve_price * 2 < max($b/bid) RETURN <successful_item> {$item/itemno, $item/description,

$item/reserve_price, <high_bid>{max($b/bid)}</high_bid>} </successful_item> }</result> <result> <successful_item> <itemno>1001</itemno> <description>red Bicycle</description> <reserve_price>40</reserve_price> <high_bid>90</high_bid> </successful_item> </result> element result { element successful_item { element itemno {xsd:integer}, element description {xsd:string}, element reserve_price {xsd:integer}?, element high_bid {xsd:integer?} }* } 2.3.(10 µονάδες) Είναι ισοδύναµες οι ακόλουθες επερωτήσεις XPath (2.0) και XQuery (1.0); Επιστρέφουν δηλαδή τα ίδια αποτελέσµατα; ικαιολογήστε την απάντησή σας. (α) XPath: document("items.xml")//item_tuple[itemno=1002]/description XQuery: FOR $item IN document("items.xml")//item_tuple WHERE every $itemno IN $item/itemno SATISFIES $itemno=1002 RETURN $item/description (β) XPath: document("items.xml")//item_tuple[reserve_price>100] [3]/ description XQuery: FOR $item IN document("items.xml")//item_tuple [3] [reserve_price>100] RETURN $item/description (α) Νο in general. In the current schema the answer is yes because itemno has been defined to appear exactly once. If itemno was defined as itemno* then: XPATH expression returns the description of an item_tuple if it has at least one itemno=1002, while XQuery expression returns the description of an item_tuple if all the itemno elements of it, are equal to 1002. (β) Νο. XPATH returns the description of the third item_tuple which has a reserve_price > 100. XQuery returns the third item_tuple if it happens to have a reserve_price element greater than 100.

2.4.(10 µονάδες) Σας δίνονται οι ακόλουθοι καθορισµοί τύπων εγγράφων XML (DTDs) των οποίων τα επιτρεπτά στιγµιότυπα µπορούν καθ υπέρβαση να θεωρηθούν σαν αποτελέσµατα δύο επερωτήσεων Q1 και Q2. Q1: <!DOCTYPE a [ Q2: <!DOCTYPE a [ <!ELEMENT A(B*, C+)> <!ELEMENT A((B, A) C+)> <!ELEMENT B(#PCDATA)> <!ELEMENT B(#PCDATA)> <!ELEMENT C(#PCDATA)> <!ELEMENT C(#PCDATA)> ]> ]> Ποια από τις παρακάτω προτάσεις είναι σωστές; ικαιολογήστε την απάντησή σας. (a) Η Q1 και Q2 έχουν ακριβώς τα ίδια αποτελέσµατα. (b) Τα αποτελέσµατα της Q1 περιέχονται πάντα στα αποτελέσµατα της Q2. (c) Τα αποτελέσµατα της Q2 περιέχονται πάντα στα αποτελέσµατα της Q1. (d) Η Q1 και Q2 έχουν διαφορετικά αποτελέσµατα. Correct: d) Q1 and Q2 produce different answers. Q1 allows tag patterns like <A><B></B><B></B><C></C></A> that Q2 does not. Q2 allows <A><B></B><A><C></C></A></A> that Q1 does not. 2.5.(10 µονάδες) Το ακόλουθο µοντέλο οντοτήτων/συσχετίσεων αναπαριστά µία βάση δεδοµένων µε απλά και σύνθετα αντικείµενα (Parts). Θέλουµε να ανταλάξουµε τα δεδοµένα της βάσης Parts στο ιαδίκτυο µε την µορφή εγγράφων XML. ώστε τον καθορισµό τύπου εγγράφου (DTDs) και το σχήµα (Schema) XML που αναπαριστούν µε την µικρότερη δυνατή απώλεια πληροφορίας το µοντέλο οντοτήτων/συσχετίσεων που σας δίνεται. <!DOCTYPE Store[ <!ELEMENT Store(Part*) <!ELEMENT Part(BPname, ComposedOf+) <!ATTLIST Part number ID> <!ELEMENT BPname (#PCDATA)> <!ELEMENT ComposedOf (Quantity)> <!ELEMENT Quantity (#PCDATA)> <!ATTLIST ComposedOf partnumber IDREF> ]> <!DOCTYPE Store[ <!ELEMENT Store(Part*, ComposedOf*) <!ELEMENT Part(BPname) <!ATTLIST Part number ID> <!ELEMENT BPname (#PCDATA)> <!ELEMENT ComposedOf (Quantity)> <!ATTLIST ComposedOf pnumber IDREF> <!ATTLIST ComposedOf chnumber IDREF> <!ELEMENT Quantity(#PCDATA)> ]>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:annotation> <xsd:documentation xml:lang="en"> Purchase order schema for Example.com. Copyright 2000 Example.com. All rights reserved. </xsd:documentation> </xsd:annotation> <xsd:element name = "Store" type = "Store_Type" /> <xsd:complextype name = "Store_Type" > <xsd:sequence> <xsd:element name = "Part" type = "Part_Type" minoccurs = "0" maxoccurs = "unbounded" /> </xsd:sequence> </xsd:complextype> <xsd:complextype name = "Part_Type" number > <xsd:sequence> <xsd:element name = "BPname" type = "xsd:string" /> <xsd:element name = "Composed_Of" type = "Composed_Of_Type" maxoccurs = "unbounded" /> </xsd:sequence> <xsd:attribute name="number" type="xsd:id" use="required"/> </xsd:complextype> <xsd:complextype name = "Composed_Of_Type" > <xsd:sequence> <xsd:element name = "Quantity" type = "xsd:integer" /> </xsd:sequence> <xsd:attribute name="partnumber" type="xsd:idref" use="implied"/> </xsd:complextype> </xsd:schema> Άσκηση 3 (25 µονάδες) Για την βελτιστοποίηση επερωτήσεων δεδοµένων XML, έχουν προταθεί πολλές τεχνικές σε διάφορα πλαίσια εφαρµογών. Μία τεχνική προτείνει την χρήση σχηµάτων κωδικοποίησης (labeling schemεs) σε έγγραφα XML για την αποτίµηση των εκφράσεων µονοπατιών που εµφανίζονται σε επερωτήσεις XPath και XQuery. ύο από τα πιο γνωστά σχήµατα είναι (α) η κωδικοποίηση βασισµένη σε προθέµατα (prefix-based) και (β) η κωδικοποίηση βασισµένη σε διαστήµατα (interval-based). Για παράδειγµα, οι δοµικές σχέσεις των λογικών στοιχείων (elements) του παρακάτω έγγραφου XML αναπαριστώνται στις δύο κωδικοποιήσεις, ως ακολούθως, χρησιµοποιώντας κατάλληλες ετικέτες.

<A> <C> <B> <D/> </B> <E> <G> <H/> <I/> </G> </E> <F/> </C> B E F 111 112 113 D G 1111 1121 H A 1 C 11 I 11211 11212 B [1,2] E [3,6] F [7,7] [1,1] D H A C [1,9] [1,8] G [3,5] [3,3] I [4,4] </A> Prefix based Interval based Στην κωδικοποίηση βασισµένη σε προθέµατα, σε κάθε επίπεδο τα παιδιά ενός κόµβου διακρίνονται αρχικά από ένα σύµβολο ενός αλφαβήτου (π.χ. έναν αριθµό, χαρακτήρα). Στην συνέχεια η ετικέτα κάθε κόµβου σχηµατίζεται από το σύµβολο αυτό και από την ετικέτα του πατέρα του σαν πρόθεµα. Π.χ. ο κόµβος E έχει την ετικέτα 112 γιατί είναι το δεύτερο παιδί του κόµβου C µε ετικέτα 11. Με αυτό τον τρόπο για να ελέγξουµε αν ο κόµβος E είναι απόγονος του κόµβου Α, µας αρκεί να ελέγξουµε εάν η ετικέτα του Α ( 1 ) είναι πρόθεµα της ετικέτας του E ( 112 ), αποφεύγοντας την αναδροµική διάσχιση του δέντρου. Σηµειώστε ότι αυτή η κωδικοποίηση επιτυγχάνει µια λεξικογραφική διάταξη των ετικετών: 1 < 11 < 111 < 1111 < 112 <... Στην κωδικοποίηση βασισµένη σε διαστήµατα, η ετικέτα κάθε κόµβου αποτελείται από δύο αριθµούς: [start, end]. Το τέλος του διαστήµατος αντιστοιχεί στην post αρίθµηση ενός κόµβου στο δέντρο (δηλ. πρώτα αριθµούνται τα παιδιά ενός κόµβου και µετά τον ίδιο τον κόµβο). Η αρχή του διαστήµατος αντιστοιχεί στον post αριθµό του πιο αριστερού απογόνου του κόµβου. Π.χ. ο κόµβος E έχει σαν ετικέτα το διάστηµα [3,6] γιατί είναι ο έκτος κόµβος που επισκεπτόµαστε στην post διάσχιση του δέντρου και γιατί ο πιο αριστερός του απόγονος είναι ο Η µε post αρίθµηση 3. Στα φύλλα του δέντρου start = end. Με αυτόν τον τρόπο, για να ελέγξουµε αν ο κόµβος E είναι απόγονος του κόµβου Α, µας αρκεί να ελέγξουµε εάν η ετικέτα του Ε ([3,6]) αντιστοιχεί σε ένα διάστηµα το οποίο περιέχεται στο αντίστοιχο διάστηµα της ετικέτας του Α ([1,9]). (α) Προτείνετε ένα σχεσιακό σχήµα για να αποθηκεύσετε κωδικοποιηµένα έγγραφα XML σύµφωνα µε τις µεθόδους προθέµατος και διαστήµατος. Σηµειώστε τα ευρετήρια (indices) που χρειαζόµαστε για γρήγορη πρόσβαση στις ετικέτες των κόµβων. Prefix(Tag, Label) Indices should be defined in both Tag and Label. Interval(Tag, Start, End) It will be helpful if indices are defined in End only or in both Tag and End.

(β) ώστε τις SQL επερωτήσεις που χρειαζόµαστε για να αποτιµήσουµε, στις δύο κωδικοποιήσεις, τις παρακάτω εκφράσεις XPath: 1. A/descendent::G 2. I/ancestor::node() Σχολιάστε τα πλεονεκτήµατα της κάθε κωδικοποίησης για την βελτιστοποίηση των παραγόµενων SQL επερωτήσεων. 1. prefix based select desc.label from Prefix desc where desc.label > 1 and desc.label < 2 and desc.tag = G interval based select desc.end from Interval desc where 1 <= desc.start and desc.end < 9 and desc.tag = G 2. prefix based prefixes( 11212 ) interval based select ans.end from Interval ans where ans.start <= 4 and ans.end > 4 Advantages in above coding Ancestors in Prefix are computed in almost constant time.