ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ"

Transcript

1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΠΣ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΑΠΕΙΚΟΝΙΣΗ ΧML Ε ΟΜΕΝΩΝ ΣΕ ΣΧΕΣΙΑΚΟ ΣΧΗΜΑ Shredding XML Data ΜΑΓ ΑΛΗΝΟΣ ΠΑΝΑΓΗΣ Αθήνα,

2 Περιεχόµενα Περιεχόµενα Εισαγωγή Το πρόβληµα Τρόποι αποτύπωσης ιεραρχίας στην XML Global Ordering Scheme Sparse Numbering Scheme Local Ordering Scheme Same Sibling Numbering Scheme Dewey Encoding Interval Encoding H προσέγγιση ORDPATH Σχολιασµός Απεικόνιση ΧML δεδοµένων στο σχεσιακό µοντέλο Εισαγωγή Απεικόνιση µε απουσία σχήµατος Η προσέγγιση Edge ιαφοροποιήσεις της προσέγγισης Edge H προσέγγιση XPath Accelerator Άλλες προσεγγίσεις Απεικόνιση µε παρουσία σχήµατος Απεικόνιση DTD σε σχεσιακό σχήµα Inlining Απεικόνιση DTDs σε Object Schemas Απεικόνιση XML Schema σε σχεσιακό µοντέλο Η προσέγγιση της Microsoft Άλλες προσεγγίσεις µε χρήση Annotation Schema Σύνοψη Ερευνητικές προσπάθειες Στόχοι των προσπαθειών βέλτιστης απεικόνισης Μέθοδος βελτιστοποίησης απεικόνισης Ερευνητικές προσπάθειες µετάφρασης XML επερωτήσεων σε SQL Απεικόνιση σχεσιακών δεδοµένων σε XML Επίλογος Αναφορές

3 1. Εισαγωγή Στα τέλη της δεκαετίας του 60, µία οµάδα ερευνητών της IBM, βρέθηκαν αντιµέτωποι στο πρόβληµα της δηµιουργίας ενός µεταφερόµενου (portable) συστήµατος για ανταλλαγή και διαχείριση εγγράφων. Οι ερευνητές συνειδητοποίησαν ότι η επικοινωνία µεταξύ των υπολογιστικών συστηµάτων θα διευκολυνόταν από ένα ανεξαρτήτου συστήµατος κοινό µορφότυπο (format) για τα έγγραφα αυτά, και αποφάσισαν να χρησιµοποιήσουν µία γλώσσα σήµανσης στην καρδιά του συστήµατός τους. Η σήµανση (markup), η οποία προσδιορίζει την δοµή ενός κειµένου, ήταν θεµέλιο για την επεξεργασία κειµένου και συµβατή σε πολλές πλατφόρµες. Η πρωτότυπη γλώσσα σήµανσης της IBM, µάρκαρε τα δοµικά στοιχεία (elements) του κειµένου αλλά δεν καθόριζε τον µορφότυπο της πληροφορίας που περιλάµβανε. Ο µορφότυπος της πληροφορίας, µπορούσε να αποθηκευτεί σε ξεχωριστό αρχείο, το οποίο ονόµασαν stylesheet, και µε το οποίο οι υπολογιστές µπορούσαν να χρησιµοποιήσουν για την µορφοποίηση (formatting) των στοιχείων ενός κειµένου. Η µέθοδος της δόµησης των δεδοµένων, έδωσε στους υπολογιστές την δυνατότητα να επεξεργάζονται τα έγγραφα µε πολλούς νέους τρόπους. Η οµάδα της IΒΜ συνειδητοποίησε ότι η αξιόπιστη επεξεργασία ενός εγγράφου θα µπορούσε να οδηγήσει στην απόρριψη άκυρων (invalid) εγγράφων, οπότε η δοµή κάθε εγγράφου καθορίστηκε µε αυστηρό τρόπο σε ένα αρχείο το οποίο το ονόµασαν document type definition (DTD). Ο διαχωρισµός της παρουσίασης (µε το stylesheet) και του ελέγχου (µε το DTD) ενός εγγράφου διασφάλισε µεγάλη ευελιξία επειδή τόσο τα DTDs όσο και τα stylesheets µπορούσαν να µετατραπούν χωρίς να επηρεάζονται τα marked up δεδοµένα. Στο τέλος του 1969, η οµάδα επιστηµόνων της IBM είχε αναπτύξει µία γλώσσα, την Generalized Markup Language (GML) µε τα παραπάνω χαρακτηριστικά. Το 1974, αποδείχθηκε ότι ένας parser, µπορούσε να επικυρώσει (validate) ένα έγγραφο χωρίς ουσιαστικά να το επεξεργαστεί. Αυτό άνοιξε τον δρόµο περαιτέρω ανάπτυξη, η οποία οδήγησε, το 1986, στην υιοθέτηση της Standard Generalized Markup Language (SGML) ως διεθνές standard. Η SGML, πολύ γρήγορα, έγινε το επιχειρηµατικό standard για αποθήκευση και ανταλλαγή δεδοµένων σε όλο τον κόσµο. Η επεξεργασία των SGML εγγράφων ορίστηκε από το DSSSL. Με την ανακάλυψη του παγκόσµιου ιστού (World Wide Web) από τον Tim Berners-Lee το 1989, ξεκίνησε, από τον ίδιο, η ανάπτυξη µιας τεχνολογίας για διαµοιρασµό πληροφορίας χρησιµοποιώντας υπερ-συνδεδεµένα (hyperlink) κείµενα αρχείων. H γλώσσα αυτή βασίστηκε στην SGML και ονοµάστηκε HyperText Markup Language (HTML). Με την ανάπτυξη του Internet όµως, οι περιορισµοί της HTML έγινα εµφανείς. Η έλλειψη τροποποίησης αποθάρρυνε τους σχεδιαστές συστηµάτων και οι - συγκεκριµένης πλατφόρµας - εντολές µορφοποίησης (formatting commands), οι οποίες δηµιουργήθηκαν σαν HTML επεκτάσεις από διάφορους κατασκευαστές προγραµµάτων πλοήγησης ιστοσελίδων (browsers) για να κερδίσουν µερίδιο της αγοράς, οδήγησε το W3C να - 2 -

4 δηµιουργήσει µία stylesheet τεχνολογία για την HTML, την Cascading Style Sheets (CSS). H CSS, παρά τις δυνατότητες που πρόσθεσε στα HTML αρχεία, δεν ήταν παρά προσωρινή λύση. Η ανάγκη για µία νέα, πλήρως τροποποιήσιµη και δοµικά αυστηρή γλώσσα ήταν εµφανής. Σαν αποτέλεσµα, η XML γεννήθηκε, η οποία συνδύασε την δύναµη και την εκτατότητα (extensibility) της µητρικής γλώσσας, της SGML, και την απλότητα που απαιτήθηκε από την κοινωνία του Internet. Η XML έγινε recommendation τους W3C το 1998 (XML v1.0). Το βασικό τής στοιχείο είναι ότι δεν σχεδιάστηκε για να κάνει κάτι αλλά δηµιουργήθηκε για την δοµή, αποθήκευση και αποστολή πληροφορίας. Ένα απλό παράδειγµα XML εγγράφου είναι το παρακάτω <note> <to>john</to> <from>teo</from> <heading>reminder</heading> <body>don't forget our meeting.</body> </note> Σήµερα, η XML έχει καθιερωθεί σαν την κοινή γλώσσα ανταλλαγής πληροφοριών στο χώρο της Πληροφορικής. Τεράστια ποσά πληροφοριών ανταλλάσσονται καθηµερινά µεταξύ διαφόρων εφαρµογών µε χρήση της XML. Το γεγονός αυτό όµως είχε σαν αποτέλεσµα τη γέννηση ενός συνόλου νέων προβληµάτων που αφορούσαν την αποθήκευση της περιεχόµενης πληροφορίας. Η ερώτηση η οποία αναδύεται λοιπόν είναι το κατά πόσο µπορεί να υποστηριχθεί η αποθήκευση των XML δεδοµένων από µια ώριµη τεχνολογία, όπως αυτή των σχεσιακών βάσεων δεδοµένων, ή αν θα πρέπει να ερευνηθούν νέες προσεγγίσεις. Η παρούσα εργασία παρουσιάζει ένα τµήµα της βιβλιογραφίας πάνω στο συγκεκριµένο θέµα και ειδικότερα στον τρόπο µε τον οποίο µπορούν να απεικονιστούν τα XML δεδοµένα στο σχεσιακό µοντέλο δεδοµένων. 1.1 Το πρόβληµα Η απόπειρα συνδυασµού των δύο τεχνολογιών που αναφέρθηκαν στο προηγούµενο ερώτηµα απαιτεί την επίλυση ενός συνόλου προβληµάτων που οφείλονται στην διαφορετική φύση τους. Από την µια πλευρά βρίσκεται το σχεσιακό σύστηµα δεδοµένων, το οποίο αντιλαµβάνεται τον κόσµο ως ένα σύνολο αλληλεπιδρώντων οντοτήτων εµφανιζόµενων µόνο σε ένα επίπεδο ιεραρχίας, και από την άλλη η XML, η οποία υιοθετεί την αντίληψη της αντικειµενοστραφούς θεώρησης προσθέτοντας κανόνες ιεραρχίας στα δεδοµένα της. Σαν µια πρώτη λύση, θα µπορούσε να σκεφτεί κάποιος την απευθείας αποθήκευση XML εγγράφων σε κάποιο σχεσιακό σύστηµα διαχείρισης βάσεων δεδοµένων. Αν και αρκετά πρωτογενής, η πρόταση αυτή χρησιµοποιήθηκε αρκετά στο παρελθόν, και εξακολουθεί να χρησιµοποιείται και σήµερα, σε µικρότερο όµως βαθµό. Η προσέγγιση LOB (Large OBject), έχει δύο εκφάνσεις, την CLOB και την BLOB. Η πρώτη, αποθηκεύει τα δεδοµένα σε µορφή κειµένου (Character Large OBject) ενώ η δεύτερη σαν αρχείο δυαδικών δεδοµένων (Binary Large OBject). Είναι προφανές, ότι και οι δύο προσεγγίσεις διατηρούν το σύνολο της φέρουσας πληροφορίας ενός εγγράφου, δεν εκµεταλλεύονται - 3 -

5 όµως τις δυνατότητες του συστήµατος αποθήκευσης. Κρίνεται συνεπώς αναγκαία η υιοθέτηση µιας λύσης η οποία όχι µόνο θα αντιλαµβάνεται τον ιεραρχικό χαρακτήρα της XML αλλά και τον σχεσιακό χαρακτήρα των βάσεων δεδοµένων. Η απάντηση στο πρόβληµα αυτό εµφανίζεται µέσα από την αποσύνθεση των XML εγγράφων σε σχεσιακά δεδοµένα (shredding) µε τέτοιο τρόπο ώστε να εξασφαλίζεται τόσο η ακεραιότητα του συνόλου της πληροφορίας, όσο και η χρήση ως αποθηκευτικού µέσου ενός συστήµατος που αγνοεί την ιεραρχική υφή της. Αρχικά λοιπόν, θα παρουσιαστούν οι διάφοροι τρόποι αποτύπωσης της ιεραρχικής δοµής της XML και θα συγκριθούν µεταξύ τους, ώστε να αναδειχθούν τόσο τα µειονεκτήµατά τους όσο και τα πλεονεκτήµατά του καθενός. Ακολούθως θα γίνει εκτενής αναφορά στις διάφορες µεθοδολογίες κατάτµησης XML εγγράφων και αποθήκευσης αυτών σε σχεσιακές συστήµατα βάσεων δεδοµένων. Η µελέτη θα επιχειρήσει να καλύψει όλο το φάσµα του συγκεκριµένου πεδίου, όµως θα εµµείνει σε θέµατα που αφορούν την κατάτµηση XML δεδοµένων µε βάση κάποιο DTD ή XML Schema

6 2. Τρόποι αποτύπωσης ιεραρχίας στην XML Ένα XML έγγραφο αποτελείται ουσιαστικά από ένα δέντρο κόµβων. Η σειρά µε την οποία εµφανίζονται οι κόµβοι κατά την επεξεργασία του εγγράφου µε διεύθυνση από την αρχή προς το τέλος του, ονοµάζεται σειρά εγγράφου (Document Order). Μία σωστή απεικόνιση ενός XML εγγράφου σε µία σχεσιακή βάση δεδοµένων θα πρέπει να φυλάσσει µε κάποιο τρόπο την σειρά αυτή, αφού η θέσεις των κόµβων σε ένα XML έγγραφο µπορεί να έχουν σηµαντική εννοιολογική σηµασία. Υπάρχουν διάφοροι τρόποι µε τους οποίους µπορεί να εξασφαλιστεί η σειρά των κόµβων σε ένα XML έγγραφο αποθηκευµένο σε σχεσιακή βάση δεδοµένων, καθένας από τους οποίους έχει συγκεκριµένα πλεονεκτήµατα και µειονεκτήµατα. Στην συνέχεια θα αναλυθούν οι τρόποι αυτοί και θα συγκριθούν ειδικά ώστε να αναδειχθούν τόσο τα πλεονεκτήµατα όσο και τα µειονεκτήµατά τους. 2.1 Global Ordering Scheme Μια πρώτη λύση είναι αυτή του Global Ordering Scheme [1]. Η απεικόνιση της ιεραρχίας στην προκειµένη περίπτωση βασίζεται στην εκτέλεση µιας πρώτα κατά βάθος αναζήτησης στην δενδρική δοµή και την απόδοση µιας ακέραιας τιµής κατά την πρώτη επίσκεψη σε κάθε κόµβο. Σαν παράδειγµα µπορούµε να θεωρήσουµε το παρακάτω τµήµα XML εγγράφου: <doc> <Customer cid= ALFKI > <Order oid= 01 /> </Customer> <Customer cid= BONOD > </doc> Το έγγραφο αυτό, δενδρικά, µπορεί να απεικονιστεί όπως φαίνεται στο παρακάτω σχήµα: 1 doc 2 custo 6 custo mer mer 3 cid 4 order 7 cid ALFKI 5 oid BONOD 01 Σχήµα 1: Παράδειγµα Global Ordering Scheme - 5 -

7 Παρατηρούµε ότι σε κάθε στοιχείο έχει αποδοθεί µια τιµή, η οποία ουσιαστικά απεικονίζει την σειρά κατά την οποία επισκέφθηκε τους κόµβους ο αλγόριθµος. Η ανάθεση επιγραφών σε κόµβους που αναπαριστούν τιµές έγκειται κάθε φορά στον προγραµµατιστή. Προφανώς, υπάρχει δυνατότητα οι κόµβοι αυτοί να θεωρηθούν τόσο ως φύλλα του δένδρου όσο και ως απλές τιµές. Τα σχόλια που θα µπορούσαµε να κάνουµε για την µέθοδο αυτή είναι αρκετά. Η αρίθµηση των κόµβων επιτρέπει την αποσύνθεση και ανασύνθεση των δεδοµένων χωρίς απώλεια της ιεραρχικής πληροφορίας τους. Παράλληλα, αρκετοί άξονες της XPath είναι δυνατόν να µεταφραστούν σχετικά εύκολα µε απλές συγκρίσεις ακεραίων αριθµών. Αν και το σχήµα αυτό φαίνεται αρκετά καλό για περιπτώσεις επερωτήσεων αντιµετωπίζει αρκετά προβλήµατα όταν εµφανίζονται εισαγωγές ή διαγραφές δεδοµένων. Η δυσκολία σε αυτές τις περιπτώσεις έγκειται στο γεγονός ότι αρκετοί κόµβοι ενδέχεται να χρειαστούν επαναρίθµηση. Αρκεί µόνο να αναλογιστούµε την περίπτωση διαγραφής του άκρα αριστερού κλάδου στο παραπάνω δένδρο, η οποία θα είχε σαν αποτέλεσµα την αλλαγή των αριθµητικών επιγραφών σε όλους τους εναποµείναντες κόµβους, πλην του αρχικού. 2.2 Sparse Numbering Scheme Μια λύση στο πρόβληµα αυτό προσπάθησε να δώσει το σχήµα αραιής αρίθµησης [1]. Στην περίπτωση αυτή, κατά τη διάσχιση του δένδρου, δεν αποδίδονται τιµές από όλο το σύνολο των ακεραίων αλλά µόνο από ένα προκαθορισµένο υποσύνολό τους. Για παράδειγµα, θα µπορούσαµε να θεωρήσουµε ότι αρχικά αριθµούνται οι κόµβοι µε τιµές που λαµβάνονται από το σύνολο των περιττών αριθµών οπότε σε περιπτώσεις εισαγωγής νέων στοιχείων, απλά γίνεται χρήση ακεραίων από το σύνολο των αρτίων οι οποίοι πληρούν τους περιορισµούς του αλγορίθµου διάσχισης που χρησιµοποιούµε. Τα προβλήµατα που εµφανίζονται στην περίπτωση αυτή είναι ανάλογα της προηγούµενης. Προφανώς µετατίθεται στο µέλλον η ανάγκη επαναρίθµησης, καθώς όπως είναι φυσικό, όταν θα έχουν αποδοθεί όλοι οι ακέραιοι του συνόλου πιθανών τιµών, θα απαιτηθεί διεύρυνση του ορίου. Το πρόβληµα αυτό εµφανίζεται εντονότερο αν επιχειρηθούν επαναληπτικά εισαγωγές σε ένα µόνο τµήµα του δένδρου. Μάλιστα, όσο πιο αριστερά βρίσκεται στην απεικόνιση, τόσο εντονότερο γίνεται το πρόβληµα. 2.3 Local Ordering Scheme Μια άλλη απόπειρα λύσης των παραπάνω προβληµάτων, είναι το σχήµα τοπικής αρίθµησης. Η προσέγγιση αυτή θεωρεί ότι αρίθµηση απαιτείται µόνο ανάµεσα στους κόµβους του ίδιου επιπέδου και µάλιστα µόνο στους κόµβους µε κοινό πατέρα [1]. Το δένδρο του παραπάνω παραδείγµατος συνεπώς δοµείται όπως φαίνεται στο σχήµα 2. Το σχήµα αυτό λύνει µεν τα προβλήµατα των δύο προηγουµένων, καθώς απαιτεί σηµαντικά µικρότερο αριθµό επαναριθµήσεων σε περιπτώσεις εισαγωγών ή διαγραφών, δηµιουργεί όµως µια πληθώρα νέων. Τα προβλήµατα αυτά οφείλονται στο γεγονός ότι η µέθοδος αυτή στοχεύει στην επίλυση των προβληµάτων της προηγούµενης ιδέας και όχι στην επίλυση αυτού καθαυτού του προβλήµατος απεικόνισης της ιεραρχίας. Γίνεται - 6 -

8 άµεσα αντιληπτό ότι είναι αδύνατη η αποσύνθεση και ανασύνθεση του αρχείου µε ταυτόχρονη διατήρηση της ιεραρχικής δοµής του. Κατόπιν της αποσύνθεσης, είναι αδύνατον να αποφανθούµε αν το cid µε τιµή 1 είναι παιδί του κόµβου customer µε τιµή 1 ή του customer µε τιµή 2 χωρίς την διατήρηση κάποιας άλλης µορφής έµµεσης πληροφορίας. 1 doc 1 custo 2 custo mer mer 1 cid 2 order 1 cid ALFKI 1 oid BONOD 01 Σχήµα 2: Παράδειγµα Local Ordering Scheme 2.4 Same Sibling Numbering Scheme Η προσέγγιση του Same Sibling Numbering Scheme [1] προχώρα ακόµα πιο πέρα. Προσπαθώντας να µηδενίσει τις απαιτήσεις επαναριθµήσεων ορίζει ως µοναδικά στοιχεία που απαιτούν ανάθεση τιµών αυτά τα οποία έχουν κοινή επιγραφή και κοινό πατέρα. Η εξεταζόµενη θεώρηση αντιλαµβάνεται ως µοναδική προβληµατική κατάσταση την ύπαρξη κόµβων στο ίδιο επίπεδο, µε κοινό πατέρα και κοινή επιγραφή. Αναγόµενοι στο αρχικό παράδειγµα η συγκεκριµένη µέθοδος δηµιουργεί την παρακάτω απεικόνιση: doc 1 custo mer 2 custo mer cid order cid ALFKI oid BONOD 01 Σχήµα 3: Παράδειγµα Same Sibling Numbering Scheme - 7 -

9 Χωρίς να αναφερθούµε περαιτέρω, αξίζει να σηµειώσουµε ότι αν και λύνει τα προβλήµατα της Global Ordering επιδεινώνει κατά πολύ τις προβληµατικές καταστάσεις της Local. 2.5 Dewey Encoding Η χρυσή τοµή ανάµεσα στις δύο αυτές µεθόδους φαίνεται να είναι η µέθοδος αρίθµησης Dewey[1]. Στην µέθοδος αυτή συνδυάζονται και οι δύο παραπάνω αντιλήψεις του χώρου του προβλήµατος. Από την µια πλευρά υιοθετείται η άποψη ότι ένα γενικό σχήµα αρίθµησης είναι απαραίτητο ενώ από την άλλη κρίνεται αναγκαία η χρήση ενός τοπικού συστήµατος ανάθεσης τιµών ώστε να είναι εκµεταλλεύσιµα τα πλεονεκτήµατα και των δύο προσεγγίσεων. Ουσιαστικά η αρίθµηση Dewey δηµιουργεί ένα ιεραρχικό σύστηµα αρίθµησης το οποίο αναθέτει τιµή σε κάθε κόµβο µέσα από την αναδροµική προσάρτηση των επιγραφών των κόµβων που προηγούνται του εξεταζόµενου στο µονοπάτι που ορίζεται από τον κόµβο ρίζα έως και τον εξεταζόµενο. Οι επιγραφές έχουν προκύψει από το Local Ordering. Το παράδειγµα που εξετάζουµε από την αρχή µετασχηµατίζεται όπως φαίνεται στο σχήµα 4. Η θεώρηση αυτή κληρονοµεί τα πλεονεκτήµατα και των δύο κύριων µεθόδων που αναλύσαµε παραπάνω, ενώ υπολείπεται των µειονεκτηµάτων τους, καθώς είναι αµοιβαίως αποκλειόµενα. Παράλληλα, µε χρήση της έµµεσα παρεχόµενης πληροφορίας είναι δυνατόν να απαντηθούν XPath επερωτήσεις αποδοτικά, ενώ ταυτόχρονα το κόστος ενηµερώσεων να είναι σε ανεκτά επίπεδα. Συνεπώς, µαζί µε τις επόµενες, θα µπορούσε να θεωρηθεί ως η πλέον ικανή να αντεπεξέλθει στις προϋποθέσεις που θέσαµε έµµεσα στην πρώτη παράγραφο. 1 doc custo mer 1.2 custo mer cid order cid ALFKI oid BONOD 01 Σχήµα 4: Παράδειγµα Dewey Numbering Scheme Ένα βασικό µειονέκτηµα της µεθόδου είναι ο τρόπος µε τον οποίο υλοποιείται η σύγκριση µεταξύ των ετικετών των κόµβων. εδοµένης της µορφής των επιγραφών, η αποθήκευσή τους γίνεται µε την µορφή χαρακτήρων. Συνεπώς χάνεται η αριθµητική υφή - 8 -

10 τους, γεγονός που έχει σας άµεσο αποτέλεσµα, ενδεχόµενες συγκρίσεις να γίνονται αντιληπτές ως συγκρίσεις αλφαριθµητικών και να δίνουν διαφορετικά αποτελέσµατα από ότι αν είχαν εξεταστεί ως ακέραιοι. Σαν λύση έχει προταθεί η χρήση UTF-8 κωδικοποίησης για τους χαρακτήρες, η οποία έχει σχετικά µεγάλο αποθηκευτικό κόστος. 2.6 Interval Encoding Στις ερευνητικές οδούς της αποδοτικής απάντησης XPath επερωτήσεων κινείται και η µέθοδος Interval Encoding [2]. Σε αυτήν την µέθοδο, σε κάθε κόµβο ανατίθεται µια τριάδα τιµών, η οποία αναφέρει την τιµή που του αποδόθηκε από τον αλγόριθµο της κατά βάθος εξερεύνησης κατά την πρώτη διάσχιση, την τιµή που του δόθηκε κατά την τελευταία φορά που ο αλγόριθµος επισκέφθηκε τον κόµβο και την επιγραφή ή τιµή του. Το αρχικό παράδειγµα µετατρέπεται τελικά σε αυτό του σχήµατος 5. 1 doc 22 2 customer customer 21 cid order 13 cid ALFKI 5 9 oid BONOD Σχήµα 5: Παράδειγµα Interval Numbering Scheme Εκ πρώτης όψεως η µέθοδος αυτή δεν φαίνεται να διαφοροποιείται σηµαντικά από την Global Numbering, αφού διαισθητικά φαίνεται να κληρονοµεί τις αδυναµίες της. Στην πραγµατικότητα, αν και η διαίσθηση για τις προβληµατικές καταστάσεις αποδεικνύεται ορθή, παρουσιάζει µια σηµαντική ιδιότητα η οποία αναλύεται στην επόµενη παράγραφο και της προσδίδει ευρωστία και αποδοτικότητα σε επερωτήσεις XPath. Έστω ότι ένας κόµβος p ορίζεται από τις επιγραφές s,l όπου s, η τιµή που έλαβε κατά το πρώτο πέρασµα του αλγορίθµου και l η τιµή κατά το τελευταίο. Η απόλυτη τιµή της διαφοράς τους ( l-s ) µπορεί να µας επιστρέψει έµµεσα του κόµβους απογόνους ή προγόνους του p. Πράγµατι, οι διαφορές των αντίστοιχων τιµών στους απογόνους είναι µικρότερες αυτής του p ενώ των προγόνων µεγαλύτερες. Μπορούµε για παράδειγµα να ορίσουµε ότι για κάθε κόµβο h για τον οποίο ισχύει s h -l h < s p -l p και l p < l h ο κόµβος - 9 -

11 αυτός είναι απόγονος του p. (ισχύει βέβαια και απλούστερα ως s h < s p και l p < l h ). Το σύνολο των πλεονεκτηµάτων της θα εµφανιστεί καλύτερα κατά την παρουσίαση της προσέγγισης XPath Accelerator στο επόµενο κεφάλαιο. 2.7 H προσέγγιση ORDPATH Μια αξιόλογη προσπάθεια ορισµού ενός ιεραρχικού συστήµατος σηµατοδοσίας κόµβων ενός XML εγγράφου, είναι αυτή της ORDPATH [3]. Η µέθοδος αυτή µπορεί να χαρακτηριστεί απόγονος της Dewey καθώς έχει πολλά κοινά χαρακτηριστικά. Ταυτόχρονα όµως δανείζεται και στοιχεία από την Sparse Numbering Scheme, µε αποτέλεσµα να καθίσταται ως η υβριδική εξέλιξη αυτών. Η µέθοδος αυτή, χρησιµοποιώντας µια πρώτα κατά βάθος διάσχιση του δένδρου, αναθέτει τιµές στους κόµβους µε βάση την µεθοδολογία Dewey, λαµβάνοντας ακεραίους αρχικά µόνο από το σύνολο των περιττών. Χαρακτηριστικό παράδειγµα είναι το σχήµα 6. 1 doc custo mer 1.3 custo mer cid order cid ALFKI oid BONOD Σχήµα 6: Παράδειγµ α ORDPATH Το πλεονέκτηµα της συγκεκριµένης µεθόδου έναντι των προγόνων της είναι ο τρόπος µε τον οποίο αποθηκεύει τις τιµές που αντιστοιχούν σε κάθε κόµβο. Κάθε τιµή αποτελείται από δύο πεδία, τα L,O. Κάθε ετικέτα γίνεται αντιληπτή από το σύστηµα επεξεργασίας ως µια σειρά από διαδοχικά L/O. Το L σηµατοδοτεί το µήκος του επόµενου στοιχείου σε bits, οπότε ο επεξεργαστής, διαβάζοντας το L γνωρίζει αυτόµατα των αριθµό των bits που πρέπει να αποκωδικοποιήσει ώστε να λάβει την αριθµητική µορφή του επόµενου O. Παράλληλα, η σύµπτυξη των L/O επιτρέπει η αντιστοίχιση ετικέτας σε κάθε κόµβο, να απαιτεί λιγότερο αποθηκευτικό χώρο από ότι η UTF-8 κωδικοποίηση [1]. Οι εισαγωγές µπορούν να γίνουν µε χρήση των ελεύθερων τιµών (αρνητικές ή άρτιες) των ακεραίων. Τέλος, αξίζει να σηµειωθεί ότι το σύνολο του δένδρου µπορεί µε τη µέθοδο αυτή να µετατραπεί σε µια σειρά από bits, βάση της πρώτα κατά βάθος εξερεύνησης

12 2.8 Σχολιασµός Προσπαθώντας να αξιολογήσουµε τις παραπάνω µεθόδους διατήρησης ιεραρχίας καταλήγουµε στην δηµιουργία της παρακάτω λίστας απαιτήσεων: Η µέθοδος πρέπει να είναι γενική ώστε να υποστηρίζει τόσο την αποσύνθεση όσο και την πιστή αναδόµηση ενός εγγράφου. Η µέθοδος πρέπει να υποστηρίζει εισαγωγές και διαγραφές κόµβων χωρίς να επηρεάζεται η ιεραρχία. Η µέθοδος πρέπει να µπορεί να απαντήσει σε ερωτήµατα που τίθενται από γλώσσες επερωτήσεων ΧΜL όπως η ΧQuery ή η XPath. Με βάση τα παραπάνω, γίνεται αντιληπτό ότι η Local Ordering και η Same Sibling Ordering Scheme δεν µπορούν να ανταποκριθούν στις απαιτήσεις µας στο βαθµό που είναι επιθυµητό. Όµως, όπως θα φανεί και παρακάτω, κάτω από συγκεκριµένες περιπτώσεις µπορούν να αποτελέσουν µια βιώσιµη λύση αποτύπωσης ιεραρχίας

13 3. Απεικόνιση ΧML δεδοµένων στο σχεσιακό µοντέλο 3.1 Εισαγωγή Στο κεφάλαιο αυτό περνάµε στο ουσιαστικό τµήµα της εργασίας. Εδώ, το σύνολο της παρουσιαζόµενης βιβλιογραφίας αφορά τους διάφορους τρόπους απεικόνισης των XML δεδοµένων σε σχεσιακό µοντέλο. εν θα αρκεστούµε βέβαια σε µια απλή παράθεση των µεθοδολογιών αλλά θα επιχειρηθεί µια σύγκριση των µεθόδων στην προσπάθεια ανάδειξης των πλεονεκτηµάτων και µειονεκτηµάτων τους. Παράλληλα, θα περιγραφεί ο τρόπος µε τον οποίο οι µέθοδοι του προηγούµενου κεφαλαίου συνδυάζονται µε τις µεθοδολογίες κατατµήσεις και τι εξασφαλίζουν. Τέλος θα παρουσιαστεί ο τρόπος µε τον οποίο επερωτήσεις XPath ή XQuery µπορούν να απαντηθούν µέσα από τις απεικονίσεις. Γενικά, µπορούµε να χωρίσουµε τις µεθόδους που εµφανίζονται στην βιβλιογραφία σε δύο µεγάλες κατηγορίες, αυτές που δρουν µε απουσία σχήµατος και αυτές που δρουν µε παρουσία σχήµατος. Η διαφορά τους έγκειται στο γεγονός ότι οι τελευταίες µπορούν να συλλέξουν πληροφορίες σχετικά µε τη δοµή των στοιχείων και την ιεραρχία τους από το σχήµα και να τις εκµεταλλευτούν ώστε να βελτιώσουν την απεικόνιση ενώ οι πρώτες όχι. Η παρουσίαση θα ξεκινήσει µε τις µεθόδους που δρουν µε άγνοια σχήµατος. 3.2 Απεικόνιση µε απουσία σχήµατος Η πρώτη ιδέα που υλοποιήθηκε ήταν η απλή απεικόνιση well formed XML δεδοµένων στο σχεσιακό µοντέλο. Η µόνη απαίτηση ήταν η ύπαρξη ενός parser και µιας µεθόδου αποτύπωσης της ιεραρχικής δοµής των κόµβων. Σαν πρωτογενής λύση χρησιµοποιήθηκε η προσέγγιση LOB, για την οποία µιλήσαµε στην προηγούµενη παράγραφο. Μια ακόµα λύση η οποία υπολείπεται ευελιξίας είναι αυτή του default mapping (απευθείας απεικόνιση). Η µέθοδος αυτή για κάθε διακριτό complex element που εµφανίζεται δηµιουργεί µια σχέση. Κάθε απλό element που είναι εµφωλευµένο σε complex εισάγεται ως πεδίο στη σχέση που αντιστοιχεί στο τελευταίο. Η προσέγγιση αυτή µπορεί να αναπαραστήσει µόνο έγγραφα της δοµής, <table> <column 1></column 1>... <column n></column n> </table> Για το λόγο αυτό θεωρείται αρκετά αδύναµη και δεν θα επεκταθούµε περαιτέρω στην περιγραφή της. Η γενικότερη φιλοσοφία των µεθόδων που θα δούµε είναι η αποθήκευση του συνόλου της πληροφορίας ενός εγγράφου σε ένα προσχεδιασµένο σχεσιακό σχήµα και η αποτύπωση της ιεραρχίας που διέπει τα στοιχεία του εγγράφου

14 3.2.1 Η προσέγγιση Edge Η προσέγγιση LOB παρουσιάζει πολλά προβλήµατα. Το βασικότερο όλων είναι ότι δεν επιτρέπει την επεξεργασία ενός µόνο πεδίου ενός XML εγγράφου χωρίς την ανάσυρση όλου του εγγράφου. Κάτι τέτοιο, επιβαρύνει αφάνταστα το σύστηµα αποθήκευσης, καθώς ένα αρχείο µπορεί να έχει µέγεθος πολλών ΜΒ. Από την ανάγκη αυτή γεννήθηκε η προσέγγιση των Edge Table [4]. Στην µέθοδο αυτή, διασχίζοντας το δένδρο και εφαρµόζοντας Global Ordering Scheme αρίθµηση, δηµιουργούνται διαδοχικές εγγραφές οι οποίες εισάγονται σε έναν σχεσιακό πίνακα της µορφής [id, parent id, name, value]. Το πεδίο id αποθηκεύει την τιµή που έχει αποδοθεί στον κόµβο κατά την απόδοση τιµών στους κόµβους της δενδρικής απεικόνισης του εγγράφου. Το parent id, είναι ένα ξένο κλειδί, το οποίο αναφέρεται στο πεδίο id και ουσιαστικά «δείχνει» προς τον κόµβο πατέρα του εξεταζόµενου. Αν ο εξεταζόµενος κόµβος είναι ο κόµβος ρίζα τότε το πεδίο αυτό λαµβάνει τιµή -1. Τα πεδία name, value προφανώς αποθηκεύουν το όνοµα και την τιµή του κόµβου (αν υπάρχει η τελευταία). Η συγκεκριµένη µορφή αποθήκευσης θεωρείται από τις πλέον εύστοχες και αποδοτικές για την αποθήκευση XML δεδοµένων δεδοµένης της απουσίας κάποιου σχήµατος. ιατηρεί το µεγαλύτερο µέρος της αρχικής πληροφορίας, ενώ παράλληλα, επιτρέπει µε χρήση κατάλληλων αλγορίθµων [1], να εκτελεστούν επερωτήσεις XPath ή XQuery στα αποθηκευµένα δεδοµένα. Το βασικό µειονέκτηµά της είναι η αναδροµική σχέση ξένου κλειδιού που εµφανίζει. Σε περιπτώσεις όπου ζητείται για παράδειγµα η ανεύρεση του πατέρα ενός κόµβου απαιτείται η εκτέλεση ενός self-join, γεγονός το οποίο µεταφράζεται σε επανειληµµένη ανάσυρση µεγάλου όγκου δεδοµένων (δύο φορές το σύνολο του αρχείου) µε στόχο τη διατήρηση µόνο δύο εγγραφών. Μια εναλλακτική προσέγγιση, εξαιρετικά συγγενής µε την Edge, είναι αυτή των Node Tables [4]. Η λύση αυτή δεν αποσκοπεί στην βελτίωση των µειονεκτηµάτων της προηγούµενης µεθόδου, απλά στην αποθήκευση µεγαλύτερου ποσού πληροφορίας (συνεπώς και επίταση του προβλήµατος). Τα Node Tables προσθέτουν στα Edge Tables τρία επιπλέον πεδία, τα Node type, NS-URI, Data type, τα οποία αντιστοιχούν στον τύπο του κόµβου (attribute/ element), στο namespace ορισµού και στον τύπο των αποθηκευµένων δεδοµένων. Ο πίνακας Edge µετασχηµατιζόµενος σε Node γίνεται [id, parent id, nodetype, name, ns-uri, datatype, value] ιαφοροποιήσεις της προσέγγισης Edge Στην βιβλιογραφία έχουν προταθεί διάφορες παραλλαγές της Edge προσέγγισης [1] οι οποίες είχαν σαν στόχο την µείωση των παραπάνω προβληµάτων. Η βασικότερη παραλλαγή είναι αυτή που φαίνεται στο σχήµα 7. Σχήµα 7: Παραλλαγή Edge Table µε προσθήκη Path Table

15 Η προσέγγιση αυτή προτείνει την εισαγωγή ενός επιπλέον πίνακα, ο οποίος για κάθε εγγραφή του πίνακα Edge εισάγει µια εγγραφή στον πίνακα Path η οποία περιέχει τη συνολική διαδροµή από την ρίζα του δένδρου έως τον εξεταζόµενο κόµβο εκφρασµένη σε γλώσσα XPath. Η λύση αυτή δεν προσφέρει σηµαντικά πλεονεκτήµατα συγκρινόµενη µε την αρχική, βελτιώνει όµως το κόστος σε περιπτώσεις απλών επερωτήσεων, αφού ένα σηµαντικό µέρος πληροφορίας µπορεί να εξαχθεί άµεσα από τη βάση χρησιµοποιώντας τον νέο πίνακα. Με βάση την παραπάνω θεώρηση δηµιουργήθηκαν τρεις επιπλέον παραλλαγές, οι οποίες στοχεύουν στην αποδοτικότερη αποθήκευση των δεδοµένων ανάλογα µε το σχήµα αποτύπωσης ιεραρχίας που χρησιµοποιείται. Η πρώτη (αποθήκευση Global Ordering Scheme αριθµηµένων κόµβων) προσθέτει ένα επιπλέον πεδίο σε κάθε εγγραφή, το end descendant id, το οποίο κάθε φορά αποθηκεύει την τιµή του τελευταίου απογόνου το εξεταζόµενου κόµβου. Τα πλεονεκτήµατα που απορρέουν από τη γνώση του συγκεκριµένου πεδίου παρατέθηκαν στην παράγραφο 2. Το σχήµα της βάσης στην περίπτωση αυτή µετασχηµατίζεται σε αυτό του σχήµατος 8. Σχήµα 8: Παραλλαγή Edge Table µε προσθήκη Path Table για Global Ordering Scheme Σε περίπτωση χρήσης Local Ordering Scheme, στη δοµή του πίνακα αποθήκευσης προστίθεται το πεδίο Sibling Index (sindex), όπου καταχωρείται η θέση του εξεταζόµενου κόµβου σε σχέση µε τα αδέρφια του. Η δοµή αυτή, δεδοµένης της απουσίας κάποιου κλειδιού, χρησιµοποιεί έναν µετρητή (id), ο οποίος αυξάνεται κατά την προσθήκη κάποιας νέας εγγραφής. Γίνεται άµεσα αντιληπτό, ότι αυτός ο τρόπος αποθήκευσης, αν τα δεδοµένα δεν υποστούν µεταβολές (ενηµέρωση, διαγραφή) εκφυλίζεται στην προηγούµενη δοµή, καθώς διατηρείται συνεπής πληροφορία για την αναδόµηση του αρχικού εγγράφου µε ταυτόχρονη διατήρηση της ιεραρχικής δοµής του. Παρόλα αυτά, αν γίνει κάποια νέα εισαγωγή, τότε οι τιµές του πεδίου id δεν µπορούν να θεωρηθούν ως δείκτες ιεραρχικής σειράς, και η εξαγωγή συµπερασµού για την ιεραρχία, απαιτεί εκτεταµένη χρήση αναδροµής. Σχήµα 9: Παραλλαγή Edge Table µε προσθήκη Path Table για Local Ordering Scheme Αν βέβαια, το χρησιµοποιούµενο σχήµα αρίθµησης είναι αυτό της Dewey, τότε η δοµή απλουστεύεται και µετατρέπεται σε αυτήν του σχήµατος 10. Ο συνδυασµός Path tables µε Edge tables και Dewey σχήµα αρίθµησης λύνει πολλά από τα προβλήµατα των προηγουµένων µεθόδων. Παύει πλέον να υφίσταται η αναδροµική συσχέτιση ξένου κλειδιού και ένας µεγάλος αριθµός πληροφοριών µπορεί να εξαχθεί πλέον έµµεσα µέσα από την τιµή του πεδίου Dewey ID. Η δοµή του πεδίου αυτού όµως είναι και ο λόγος του βασικού µειονεκτήµατος της προσέγγισης αυτής. Η εξαγωγή της πληροφορίας που βρίσκεται αποθηκευµένη στο πεδίο Dewey ID, απαιτεί τη χρήση συναρτήσεων επεξεργασίας κειµένου, πολλές από τις οποίες πρέπει να προσδιοριστούν από το χρήστη

16 Άµεση συνέπεια του γεγονότος αυτού είναι η επιβάρυνση του χρόνου επεξεργασίας µιας επερώτησης. Σε πειράµατα που έχουν γίνει [1], φάνηκε ότι ενώ οι Dewey και Global τροποποιήσεις των Edge Tables έχουν σε γενικές γραµµές συγκρίσιµες επιδόσεις, σε περιπτώσεις πολύπλοκων επερωτήσεων, η Dewey καθυστερεί σηµαντικά. Σχήµα 10: Παραλλαγή Edge Table µε προσθήκη Path Table για Dewey Ordering Scheme Τέλος, υπάρχει και η πρόταση Monet [5] η οποία κατανέµει τα στοιχεία σε πολλούς πίνακες, καθένας από τους οποίους αντιστοιχεί σε ένα διαφορετικό µονοπάτι ονοµάτων στοιχείων. Επιπλέον αποθηκεύει τους κόµβους κειµένου και τα χαρακτηριστικά σε έναν ξεχωριστό πίνακα H προσέγγιση XPath Accelerator Έως τώρα δεν έχουµε αναφέρει πουθενά την χρήση της µεθόδου Interval encoding. Εύλογα, ο αναγνώστης µπορεί να αναρωτηθεί γιατί δεν παρουσιάστηκε η χρήση της σε συνδυασµό µε την προσέγγιση Edge. Ο λόγος είναι ότι µε βάση τη µέθοδο αυτή, αναπτύχθηκε µια πρωτότυπη ιδέα αποθήκευσης και επερώτησης XML δεδοµένων, ο XPath Accelerator [6]. Γίνεται αντιληπτό από το όνοµα της µεθόδου, ότι ο στόχος του εµπνευστή της δεν περιορίζεται µόνο στην απλή αντιστοίχηση ΧΜL δεδοµένων σε σχεσιακά, αλλά προχωρά ακόµα παραπέρα, αναζητώντας έναν ευέλικτο τρόπο αποθήκευσης που θα επιτρέψει την εύκολη µετάφραση XPath επερωτήσεων στα αποθηκευµένα δεδοµένα. Βασιζόµενοι στην µέθοδο του Interval Encoding, αναγνωρίζουµε κάθε κόµβο από τρεις τιµές, την αριθµητική τιµή που έλαβε κατά την προθεµατική διάσχιση του δένδρου, την αριθµητική τιµή που έλαβε κατά την µεταθεµατική διάσχιση και την ετικέτα του. Με τα δεδοµένα αυτά µπορούµε να απεικονίσουµε τα στοιχεία κάθε δένδρου σε έναν χώρο δύο διαστάσεων. Οι δώδεκα άξονες κατεύθυνσης του XPath µπορούν να µετασχηµατιστούν µε βάση την παραπάνω θεώρηση σε κανόνες οι οποίοι εφαρµόζονται στα δεδοµένα. Πρακτικά κάθε άξονας µεταφράζεται σε µια περιοχή του χώρου απεικόνισης, της οποίας οι περιεχόµενοι κόµβοι αποτελούν τους κόµβους που ικανοποιούν την συνθήκη ελέγχου του άξονα. Τα όρια της περιοχής αυτής ορίζονται από τις παραµέτρους απεικόνισης ενός context κόµβου x στον χώρο. Τα παραπάνω δεδοµένα αδυνατούν να απαντήσουν αποδοτικά σε όλους τους τύπους αξόνων, κρίνεται λοιπόν απαραίτητη η προσθήκη κάποιων επιπλέον πεδίων. Για την αποδοτικότερη απάντηση σε επερωτήσεις που περιέχουν κατευθύνσεις όπως child προστίθεται η αριθµητική επιγραφή του κόµβου πατέρα του εξεταζόµενου κόµβου. Παράλληλα, ακολουθώντας πιστά την προσέγγιση Edge προστίθεται και το πεδίο attribute, το οποίο µεταφέρει την πληροφορία για το είδος του εξεταζόµενου κόµβου. Τελικά καταλήγουµε σε έναν πίνακα της µορφής που φαίνεται στο σχήµα

17 Σχήµα 11: Ο πίνακας του XPath Accelerator Για την καλύτερη αντίληψη της µεθόδου αυτής κρίνεται σκόπιµη η παράθεση ενός παραδείγµατος. Έστω η δενδρική µορφή εγγράφου που εµφανίζεται στο σχήµα 5. Στο χώρο των δύο διαστάσεων η συγκεκριµένη δοµή µπορεί να απεικονιστεί όπως φαίνεται στο σχήµα 12. Παρατηρούµε ότι έχουµε θεωρήσει σαν context κόµβο, τον [oid,9,12]. O κόµβος αυτός σε συνδυασµό µε τους άξονες ορίζει 4 διακριτούς χώρους µε κενή τοµή, οι οποίοι µεταφράζονται στου άξονες descendant(oid), ancestor(oid), following(oid), preceding(oid). Σχήµα 12:Απεικόνιση XML δεδοµένων στον δισδιάστατο χώρο εδοµένης λοιπόν µιας επερώτησης XPath [17] η πλοήγηση µπορεί να γίνει µέσα από απλές αριθµητικές συγκρίσεις οριζόµενες από τους άξονες της επερώτησης. Το σύνολο των κανόνων που αντιστοιχούν σε κάθε άξονα της XPath παρουσιάζεται αναλυτικά στο [6]. Η διαφοροποίηση στον τρόπο απεικόνισης καθιστά την µέθοδο αυτή ταχύτερη της Edge. Πειράµατα έχουν δείξει ότι η επιτάχυνση αγγίζει ακόµα και τον παράγοντα 5, γεγονός που καθιστά τη µέθοδο ως µια από τις καλύτερες τόσο για απεικόνιση XML δεδοµένων σε σχεσιακό µοντέλο όσο και για την εκτέλεση XML επερωτήσεων σε σχεσιακά δεδοµένα. Ένα βασικό µειονέκτηµα του XPath Accelerator (όπως άλλωστε και όλων των απεικονίσεων µε έλλειψη σχήµατος) είναι η περίπτωση των εισαγωγών. Στις εισαγωγές,

18 για να διατηρηθεί η συνέπεια της απεικόνισης απαιτείται η επαναρίθµηση των κόµβων, µε αποτέλεσµα η διαδικασία να επιβραδύνεται σηµαντικά. Κάτι τέτοιο δεν συµβαίνει βέβαια µε τις διαγραφές, καθώς µια απλή αφαίρεση της πλειάδας που αντιστοιχεί στον διαγραφέντα κόµβο αρκεί για τη διατήρηση της συνέπειας και τη σωστή απάντηση µετέπειτα επερωτήσεων Άλλες προσεγγίσεις Οι µέθοδοι που παρουσιάστηκαν παραπάνω δεν είναι οι µοναδικές που έχουν προταθεί. Αποτελούν όµως τις βασικότερες και πλέον αναγνωρισµένες από την επιστηµονική κοινότητα. Βέβαια, δεν πρέπει να αµελούµε και άλλες ιδέες, που αν και παλιότερες, προσέφεραν στην ανάπτυξη του συγκεκριµένου ερευνητικού πεδίου. Μια τέτοια µέθοδος προτείνεται στο [8]. Η µέθοδος αυτή αποτελεί ουσιαστικά µια παραλλαγή της Edge, και πιθανό πρόδροµο της τεχνικής Inlining που θα δούµε παρακάτω. Ο αλγόριθµος απεικόνισης, δηµιουργεί τόσους πίνακες, όσες και οι διαφορετικές επιγραφές που συναντά στο έγγραφο. Κάθε πίνακας που εµφανίζεται έχει τη δοµή ενός κλασικού Edge πίνακα. Το βασικό µειονέκτηµα αυτής της µεθόδου είναι η αποδοτικότητά της. Ενώ είναι σχεδιασµένη να διαχειρίζεται δεδοµένα µε απουσία κάποιου σχήµατος, η απόδοσή της είναι αισθητά χαµηλή, καθώς απαιτεί µεγάλο αριθµό υπολογισµών ώστε να αποφανθεί για την ιεραρχία ενός συνόλου στοιχείων. Το κόστος αυτό οφείλεται στις διαρκείς ζεύξης µεταξύ πινάκων, οι οποίες απαιτούνται για την εκτέλεση µιας απλής επερώτησης. Μια άλλη προσέγγιση, η οποία αναφέρεται στο [7], προτείνει την διαχείριση συµβολοσειρών, για την αποδοτική αποθήκευση των δεδοµένων. Ουσιαστικά, για κάθε στοιχείο αποθηκεύονται όλα τα απαιτούµενα δεδοµένα, µαζί µε την απόσταση από την αρχή του εγγράφου. Είναι προφανές ότι η µέθοδος αυτή υπολείπεται ευελιξίας και έχει σηµαντικό κόστος τόσο στις ανανεώσεις των δεδοµένων όσο και στις ενδεχόµενες επερωτήσεις που απαιτούν κάποια µορφή self join. Οι ιδέες που παραθέσαµε στην παράγραφο αυτή µε κύρια την πρόταση Edge και τις παραλλαγές της αποτελούν λύσεις για συστήµατα αποθήκευσης XML εγγράφων των οποίων το σχήµα δεν είναι γνωστό. Επιπροσθέτως, στην περίπτωση που ένα σύστηµα χρησιµοποιείται για την αποθήκευση µεγάλου αριθµού XML εγγράφων κατανεµηµένα σε πολλά διαφορετικά σχήµατα και πάλι, πιθανώς, οι προσεγγίσεις που αγνοούν την ύπαρξη σχήµατος να είναι καταλληλότερες. Αυτό συµβαίνει γιατί, όπως θα δούµε στην επόµενη παράγραφο, τα συστήµατα που λαµβάνουν υπόψη το σχήµα των εγγράφων δηµιουργούν ξεχωριστό σχεσιακό σχήµα για κάθε διαφορετικό XML σχήµα. Αν ο αριθµός των σχηµάτων είναι υπερβολικά µεγάλος και για κάθε σχήµα αντιστοιχεί αναλογικά µικρός αριθµός εγγράφων, τότε η συντήρηση τόσο πολλών διαφορετικών βάσεων δεδοµένων ενδεχοµένως να δηµιουργεί προβλήµατα απόδοσης στο σχεσιακό σύστηµα ή στον εξυπηρετητή

19 3.3 Απεικόνιση µε παρουσία σχήµατος Απεικόνιση DTD σε σχεσιακό σχήµα Στην παράγραφο αυτή θα παρουσιάσουµε τον τρόπο µε τον οποίο η πληροφορία που περιέχεται σε ένα Document Type Definition (DTD) το οποίο ορίζει την δοµή ενός XML εγγράφου (π.χ. ποια elements, attributes κτλ. επιτρέπονται σε ένα έγγραφο) µπορεί να χρησιµοποιηθεί για τη δηµιουργία ενός σχεσιακού σχήµατος Προτού προχωρήσουµε όµως περαιτέρω κρίνεται η σύντοµη παράθεση µιας περιγραφής για τα DTDs. Το DTD έχει κληρονοµηθεί από την SGML και ένα XML έγγραφο δεν είναι απαραίτητο να αντιστοιχεί σε ένα DTD. Εντούτοις, τα DTDs συχνά χρησιµοποιούνται για να διασφαλίσουν την ορθότητα του εγγράφου, ειδικά σε µία B2B (business to business) συναλλαγή κατά την οποία ανταλλάζονται XML έγγραφα. Τα DTDs προσδιορίζουν την δοµή ενός XML εγγράφου και τα ίδια προσδιορίζουν τους εαυτούς τους χρησιµοποιώντας ENBF γραµµατική η οποία δεν ακολουθεί το XML συντακτικό. Ένα document θεωρείται well-formed αν είναι συντακτικά σωστό, δηλ αν ακολουθεί τους παρακάτω κανόνες: Υπάρχει µόνο ένα root element. Για κάθε element πρέπει να έχει ένα tag αρχής και ένα τέλους. Σωστά φωλιασµένα tags. Τα attribute values πρέπει να περιέχονται σε εισαγωγικά. εν πρέπει να υπάρχουν οι δεσµευµένοι χαρακτήρες της XML ( & < > ). εν επιτρέπονται σχόλια (comments) ή processing instructions (PI) µέσα στα tags. Όλα τα προηγούµενα XML παραδείγµατα που είδαµε, ήταν well formed αλλά δεν ήταν έγκυρα (valid) διότι δεν ακολουθούσαν κάποια προδιαγραφή η οποία θα µπορούσε να ελέγξει την εγκυρότητα των δεδοµένων. Για αυτό τον λόγο χρησιµοποιούµε DTDs (και XML Schemas όπως θα δούµε στην συνέχεια). Παρακάτω θα δοθεί ένα XML έγγραφο το οποίο είναι well-formed, δηλαδή ακολουθεί τους συντακτικούς κανόνες της XML και είναι έγκυρο, δηλαδή η εγκυρότητα των δεδοµένων επαληθεύεται από ένα DTD: <?xml version= 1.0 encoding= Greek?> <!DOCTYPE Προσωπικό [ <!ELEMENT Προσωπικό (ΜελοςΠροσωπικού+)> <!ELEMENT ΜελοςΠροσωπικού (όνοµα)> <!ATTLIST ΜελοςΠροσωπικού τηλεφωνο NMTOKEN #REQUIRED> <!ELEMENT όνοµα (#PCDATA)> ]> <Προσωπικό> <ΜελοςΠροσωπικού τηλεφωνο= > <όνοµα>μαγδαληνός Παναγής</όνοµα> </ΜέλοςΠροσωπικού> <ΜέλοςΠροσωπικού τηλεφωνο= >

20 <όνοµα>λούτας Νίκος</όνοµα> </ΜέλοςΠροσωπικού> </Προσωπικό> Το πρώτο τµήµα είναι το DTD του XML εγγράφου. εν είναι εφικτό στο παρόν κείµενο να αναλυθούν οι κανόνες του DTD, οποίος όµως ενδιαφέρεται, µπορεί να αναφερθεί στο [22]. Επίσης, χρησιµοποιώντας στο XML declaration, encoding= Greek δεν υπάρχει πρόβληµα για τον XML parser να διαβάσει ελληνικά στο XML έγγραφο. Kάθε DTD, ξεκινάει στο XML έγγραφο χρησιµοποιώντας το document type declaration (DOCTYPE) το οποίο δείχνει που βρίσκεται το DTD, εννοώντας αν βρίσκεται µέσα στο ίδιο XML έγγραφο το οποίο επικυρώνει (όπως στο παραπάνω παράδειγµα) ή αν βρίσκεται σε ξεχωριστό αρχείο (*.dtd). Στην τελευταία περίπτωση, η σύνταξη που χρησιµοποιείται είναι παρακάτω: <?xml version= 1.0 encoding= Greek?> <!DOCTYPE prosopiko SYSTEM prosopiko.dtd > <prosopiko> όπου το αρχείο prosopiko.dtd είναι ένα text αρχείο το οποίο περιέχει τις υπόλοιπες εντολές που παρουσιάστηκαν στο παράδειγµά µας, δηλ. <!ELEMENT Προσωπικό (ΜελοςΠροσωπικού+)> <!ELEMENT ΜελοςΠροσωπικού (όνοµα)> <!ATTLIST ΜελοςΠροσωπικού τηλεφωνο NMTOKEN #REQUIRED> <!ELEMENT όνοµα (#PCDATA)> Γενικά είναι χρήσιµό να µεταφέρεται ένα DTD σε άλλο αρχείο διότι µε αυτό τον τρόπο µπορεί να χρησιµοποιηθεί από πολλά xml αρχεία για την ορθότητα και την προτυποποίηση εγγράφων σε µία εταιρία ή σε µία συναλλαγή µεταξύ εταιριών. Επίσης αφαιρώντας το DTD από το σώµα του xml εγγράφου µειώνεται σηµαντικά το overhead της επεξεργασίας του. Μπορούµε να τροποποιήσουµε το προηγούµενο παράδειγµα ώστε να έχουµε ένα πλήρες όνοµα διαδροµής: <!DOCTYPE prosopiko SYSTEM c:\temp\xml\prosopiko.dtd > ή µπορεί το αρχείο να είναι διαθέσιµο στον διαδίκτυο: <!DOCTYPE prosopiko SYSTEM > ή το DTD µπορεί να είναι ένα δηµοσιευµένο standard: <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN > Inlining Η σηµαντικότερη απόπειρα αποτύπωσης της δοµικής πληροφορίας που φέρει ένα DTD σε ένα σχεσιακό σχήµα είναι αυτή που περιγράφεται στο [11] και ονοµάζεται Inlining. Η

21 µεθοδολογία αυτή αναπτύσσοντας τo DTD σε µορφή γράφου και εφαρµόζοντας συγκεκριµένους κανόνες καταλήγει σε ένα σύνολο πινάκων οι οποίοι είναι και τελικό αποτέλεσµά της. Αξίζει να τονισθεί στο σηµείο αυτό ότι η ανασύνθεση του αρχικού DTD από το σχεσιακό µοντέλο δεν είναι απαραίτητο να υποστηρίζεται. Η παράθεση της µεθόδου αποτελείται από τρία στάδια. Αρχικά παρουσιάζονται οι κανόνες/ µετασχηµατισµοί απλοποίησης του εγγράφου. Στη συνέχεια ο τρόπος µε τον οποίο είναι δυνατή η αντιστοίχιση του σχήµατος σε σχεσιακό και τέλος εµφανίζονται κάποια πειραµατικά αποτελέσµατα που αναδεικνύουν τη χρησιµότητα του αλγορίθµου. Κανόνες Απλοποίηση Οι περισσότερες δυσκολίες που δηµιουργούνται από ένα DTD έγγραφο οφείλονται στον τρόπο ορισµού των στοιχείων. Όµως για µια γλώσσα XML επερωτήσεων οι ορισµοί δεν έχουν σηµασία. Σηµασία έχει η διατήρηση της ιεραρχίας, ο τύπος του κάθε πεδίου και η κωδικοποίηση των δεδοµένων. Συνεπώς µπορούν να οριστούν κάποιοι κανόνες απλοποίησης οι οποίοι εφαρµοζόµενοι διευκολύνουν τον αλγόριθµο απεικόνισης. Οι εφαρµοζόµενοι µετασχηµατισµοί είναι τριών ειδών. Αρχικά εµφανίζονται οι µετασχηµατισµοί εξοµάλυνσης. Στόχους τους είναι να µετατρέψουν εµφωλευµένες σχέσεις σε απλές. Χαρακτηριστικά έχουµε το παρακάτω παράδειγµα: (e1,e2)* e1*, e2* (e1,e2)? e1?, e2? (e1 e2) e1?, e2? Μια άλλη µορφή µετασχηµατισµού είναι ο µετασχηµατισµός απλοποίησης του µοναδιαίου τελεστή. Στόχος εδώ είναι να µειωθούν οι µοναδιαίοι τελεστές σε έναν. Πρακτικά, οι κανόνες που εφαρµόζονται είναι οι παρακάτω: e1** e1* e1?? e1? e1?* e1* e1*? e1* Τέλος χρησιµοποιούνται και οι µετασχηµατισµοί οµαδοποίησης όπου πολλά στοιχεία µε κοινό όνοµα συναθροίζονται σε ένα µέσα από την εφαρµογή των προηγούµενων κανόνων. Η εφαρµογή φαίνεται στα παρακάτω παραδείγµατα:..., e1*,..., e1*,... e1*,......, e1?,..., e1?,... e1?,......, e1?,..., e1*,... e1*,......, e1*,.., e1?,... e1*,..., e1,..., e1,... e1*, Κατόπιν της εφαρµογής των µετασχηµατισµών αυτών το DTD έχει πλέον απλοποιηθεί. Επόµενο βήµα είναι η αναπαράσταση του σε µορφή δένδρου ή γράφου. Ο γράφος που δηµιουργείται ονοµάζεται DTD Graph και δοµείται βάσει των παρακάτω κανόνων. Κάθε element αναπαρίσταται ως κόµβος του γράφου. Οι ακµές που συνδέουν τα elements µεταξύ τους αντικατοπτρίζουν την δοµή ιεραρχίας του DTD

22 Οι ακµές φέρουν σαν βάρη τους ποσοτικούς τελεστές εµφάνισης κάθε element ή attribute Από το σηµείο αυτό και µετά αρχίζει η διαδικασία δηµιουργίας σχεσιακού σχήµατος. Η διαδικασία αυτή εµφανίζεται µε τρεις τρόπους, καθένας από τους οποίους είναι αποτέλεσµα τροποποιήσεων στον αλγόριθµο εξαιτίας προβληµάτων που εµφανίστηκαν. Basic Inlining Η βασική διαδικασία του αλγορίθµου ξεκινά µε την επιλογή ενός κόµβου ρίζα. Ο κόµβος ρίζα είναι αυτός από τον οποίο θα ξεκινήσει η διαδικασία δόµησης του σχήµατος. Στη συνέχεια διατρέχεται η δοµή µε χρήση µια πρώτα κατά βάθος αναζήτησης (DFS). Κάθε κόµβος σηµαδεύεται την πρώτη φορά που διέρχεται ο αλγόριθµος από αυτόν και χάνει το σηµάδι όταν έχουν επεξεργαστεί όλα τα παιδιά του. Για κάθε κόµβο που µαρκάρεται για πρώτη φορά στον DTD γράφο, δηµιουργείται ένας νέος κόµβος σε ένα δεύτερο γράφηµα, το element graph. Ταυτόχρονα δηµιουργείται και µια ακµή ανάµεσα στο νέο κόµβο του element graph και στον πιο πρόσφατα εισαχθέντα που έχει κοινή επιγραφή µε αυτήν του πατέρα του νέου κόµβου στον DTD Graph. Η επιγραφή στην ακµή είναι ίδια µε την αντίστοιχη ακµή στον DTD Graph. Αν επιχειρηθεί η διάσχιση ενός ήδη µαρκαρισµένου κόµβου τότε δηµιουργείται στο Element Graph µια αντίστροφης φοράς ακµή, η οποία ξεκινά από τον κόµβο που σταµάτησε η επεξεργασία και καταλήγει στον κόµβο που εισήχθη τελευταίος. Η διαδικασία αυτή επαναλαµβάνεται έως ότου µαρκαριστούν όλοι οι κόµβοι του DTD γράφου. Στη συνέχεια, µε βάση τον Element γράφο δηµιουργείται το σχήµα της βάση ακολουθώντας τους παρακάτω κανόνες: Για τον κόµβο ρίζα του Element Graph δηµιουργείται µια σχέση Κάθε κόµβος απόγονος της ρίζας εισάγεται στην ίδια σχέση µε την προϋπόθεση ότι: o Η ακµή που τον συνδέει µε την ρίζα δεν περιέχει ποσοτικό τελεστή * o εν εµφανίζεται κάποια αντίστροφη ακµή Για κάθε κόµβος ο οποίος δεν µπορεί να ακολουθήσει τον προηγούµενο κανόνα, δηµιουργείται µια επιπλέον σχέση. Οι σχέσεις αυτές συνδέονται µε ξένα κλειδιά µε την σχέση πατέρα. Το σχήµα που δίνει σαν αποτέλεσµα αυτή η τεχνική είναι αποδοτικό για απλές επερωτήσεις. Σε περιπτώσεις τις οποίες οι ζητούµενες εγγραφές είναι αποτέλεσµα πολύπλοκης επιλογής και απαιτείται η χρήση ενός συνόλου επερωτήσεων, τότε το κόστος υπολογισµού είναι µη αποδεκτό. Παράλληλα, κατά τη διαδικασία δηµιουργίας σχέσεων, πολλά στοιχεία επαναλαµβάνονται σε διαφορετικές σχέσεις, καθώς ο βαθµός εισόδου του κόµβου στον οποίο αντιστοιχούν µπορεί να µην είναι 1. Ουσιαστικά, κάθε ακµή που καταλήγει σε κάποιον κόµβο, µεταφράζεται σε εισαγωγή του θεωρούµενου κόµβου στη σχέση του κόµβου από τον οποίο ξεκινά η εξεταζόµενη ακµή. Το γεγονός αυτό έχει σαν αποτέλεσµα σε πολύπλοκα DTDs η τεχνική του Basic Inlining να µην

23 µπορεί να ανταποκριθεί, καθώς η διαδικασία ενδέχεται να µην ολοκληρωθεί λόγω έλλειψης πόρων. Shared Inlining Το µειονέκτηµα αυτό προσπαθεί να βελτιώσει η τεχνική του Shared Inlining. Στην προκειµένη περίπτωση ο αλγόριθµος τροποποιείται ώστε να δηµιουργεί σχέσεις για κάθε κόµβο ο οποίος εµφανίζεται στο Element Graph µε βαθµό εισόδου µεγαλύτερο του 1. Οι υπόλοιποι κανόνες που εφαρµόζονται είναι κοινοί. Το βασικό πλεονέκτηµα της επεξεργασίας του Shared Inlining είναι ο µικρός αριθµός σχέσεων που έχει σαν αποτέλεσµα. υστυχώς όµως, αν και συµπεριφέρεται καλύτερα από το Basic Inlining στον τοµέα αυτό υπολείπεται του τελευταίου σε περιπτώσεις πολύπλοκων επερωτήσεων, όπου εκεί, δεδοµένου του µεγάλου αριθµού ζεύξεων που απαιτούνται επιβαρύνει σηµαντικά το σύστηµα επεξεργασίας. Hybrid Inlining εδοµένου ότι το Basic Inlining αποδίδει πολύ καλά σε ένα συγκεκριµένο σύνολο επερωτήσεων, ενώ το Shared Inlining δηµιουργεί ένα µικρό σχήµα, κρίνεται σκόπιµο να επιχειρηθεί ο συνδυασµός τους ώστε να δηµιουργηθεί µια µέθοδος η οποία να περιέχει τόσο τα πλεονεκτήµατα του ενός όσο και τα πλεονεκτήµατα του άλλου. Η µέθοδος αυτή ονοµάζεται Hybrid Inlining, και κληρονοµεί τα πλεονεκτήµατα των δύο προηγούµενων. Η διαφοροποίησή της έγκειται στο γεγονός ότι δηµιουργούνται µεν ξεχωριστές σχέσεις για όλους τους κόµβους µε βαθµό εισόδου µεγαλύτερου του ένα, αλλά ταυτόχρονα, οι θεωρούµενοι κόµβοι εισάγονται στη σχέση πατέρα αν και µόνο αν η ακµή δεν φέρει ποσοτικό τελεστή ή δεν εµφανίζεται κάποια ανάστροφη ακµή. Σε όλη την παραπάνω ανάλυση δεν αναφέραµε σε κανένα σηµείο την χρήση κάποιας µεθόδου διατήρησης ιεραρχικής δοµής. Πράγµατι, κάτι τέτοιο παραλήφθηκε, κυρίως λόγο του γεγονότος ότι είναι αρκετά απλό. Η µέθοδος του Inlining µπορεί να συνδυαστεί µε όλες τις µεθόδους που αναφέρθηκαν στην παράγραφο 2. Πειραµατικά αποτελέσµατα [1] µάλιστα απέδειξαν ότι η τεχνική του Inlining µπορεί να καταστήσει αποδοτικές προσεγγίσεις όπως η Local Ordering και οι απόγονοί της. Αναφορικά µε τις διαφορετικές εκφάνσεις της τεχνικής, εξίσου καλά έχουν συµπεριφερθεί τόσο η Hybrid προσέγγιση όσο και η Shared [11]. Αντίθετα, το Basic Inlining, αν και προποµπός των υπολοίπων δεν ανταποκρίνεται τόσο καλά όσο οι απόγονοί του, εξαιτίας των θεµάτων που αναπτύξαµε παραπάνω. Το Inlining, και η υποκείµενη θεωρία του αποτέλεσε απαρχή ενός συνόλου µεθόδων που αναπτύχθηκαν µε στόχο την αποδοτική αποτύπωση ενός DTD εγγράφου σε σχεσιακό µοντέλο. Μια από τις χαρακτηριστικότερες θα αναλυθεί παρακάτω Απεικόνιση DTDs σε Object Schemas Μια προσέγγιση λίγο διαφορετική από το Inlining, αλλά συγγενική σαν σύλληψη παρουσιάζεται στο [12]. Η απεικόνιση ενός DTD σε σχεσιακό σχήµα γίνεται µέσα από την εκτέλεση δύο διαδοχικών βηµάτων. Το πρώτο βήµα συνίσταται στην απεικόνιση του DTD σε αντικειµενοστραφές σχήµα (object schema) και στην απεικόνιση του τελευταίου

24 σε σχεσιακό. Η ιδέα αυτή εκµεταλλεύεται την αντικειµενοστραφή φύση της XML, δίνοντας πολύ καλά αποτελέσµατα. Παράλληλα, χαρακτηρίζεται από την ικανότητα αντίστροφης απεικόνισης, δηλαδή τη δυνατότητα αναδηµιουργίας ενός DTD από το σχεσιακό σχήµα που παρέχεται. Η τελευταία ιδιότητα δεν υποστηρίζεται από το Inlining, µε αποτέλεσµα η παρούσα µέθοδος να λειτουργεί συµπληρωµατικά στο συγκεκριµένο θέµα. Αντιστοίχιση DTD σε αντικειµενοστραφές σχήµα Η αντιστοίχιση αρχίζει µε την θεώρηση ότι οι τύποι elements είναι τύποι δεδοµένων. Στοιχεία που έχουν σαν περιεχόµενο µόνο PCDATA ονοµάζονται απλά στοιχεία (simple element types). Τα στοιχεία αυτά φέρουν µια και µόνο τιµή και µπορούν συνήθως να αναπαρασταθούν από κάποιον πρωτογενή τύπο δεδοµένων. Τα attribute µπορούν να θεωρηθούν και αυτά ως απλοί τύποι δεδοµένων. Τύποι στοιχείων που έχουν σαν περιεχόµενο άλλα στοιχεία ή χαρακτηριστικά (attributes) ονοµάζονται πολύπλοκοι τύποι στοιχείων (complex element types). Τα δεδοµένα αυτά µπορούν να θεωρηθούν ως η αντιπροσώπευση µιας κλάσης, µε βάση την προγραµµατιστική θεώρηση γλωσσών όπως η Java, ή µιας δοµής struct αν χρησιµοποιηθεί σαν γλώσσα αναφοράς η C ή η Pascal. Αξίζει να σηµειωθεί ότι κάποιο στοιχείο το οποίο φέρει µηδενικό περιεχόµενο αλλά έχει χαρακτηριστικά (attributes) θεωρείται και αυτό complex element. Ο αλγόριθµος αρχικά αντιστοιχεί απλά στοιχεία σε πρωτογενείς τύπους δεδοµένων. Για παράδειγµα ένα στοιχείο µε όνοµα Τίτλος αντιστοιχείται σε συµβολοσειρά ενώ ένα στοιχείο Τιµή σε τύπο φυσικού αριθµού. Τα complex elements αντιστοιχούνται σε κλάσεις και κάθε εµφωλευµένο στοιχείο που περιέχουν θεωρείται χαρακτηριστικό/ γνώρισµα της κλάσης. Ο τύπος κάθε γνωρίσµατος ορίζεται από την αντιστοίχιση του στοιχείου. Έτσι, απλή τύποι αντιστοιχούνται σε πρωτογενείς τύπους δεδοµένων ενώ κάθε complex element εµφανίζεται ως αναφορά στην αντίστοιχη κλάση που έχει οριστεί. Τέλος χαρακτηριστικά ενός τύπου στοιχείων (attributes) αντιστοιχούνται σε ιδιότητες (properties) της αντίστοιχης κλάσης. Ο τύπος κάθε ιδιότητας ορίζεται από τον τρόπο µε τον οποίο γίνεται η αντιστοίχιση απλών στοιχείων σε πρωτογενείς τύπους δεδοµένων. Σαν χαρακτηριστικό παράδειγµα θεωρούµε το παρακάτω DTD. Παρατηρούµε ότι ορίζουµε έναν τύπο στοιχείου, τον Α που φέρει σαν περιεχόµενο δύο τύπους στοιχείων, τους Β,C. O C µε τη σειρά του περιέχει και αυτός δύο άλλους τύπους στοιχείων, τους D, E. Οι Β, D, E είναι όλοι απλοί τύποι στοιχείων ενώ οι Α, C complex. Τέλος ο Α φέρει και ένα χαρακτηριστικό, το F. DTD Classes <!ELEMENT A (B, C)> class A { <!ELEMENT B (#PCDATA)> String b; <!ATTLIST A F CDATA #REQUIRED> C c; String f; }

25 <!ELEMENT C (D, E)> class C { <!ELEMENT D (#PCDATA)> String d; <!ELEMENT E (#PCDATA)> String e; } Η αντιστοίχιση ορίζεται ως ένα σύνολο αποτελούµενο από 2 κλάσεις, τις A, C, µια για κάθε complex element του µοντέλου µας. Τα B, D, E, F, αντιστοιχούνται για λόγους απλότητας σε συµβολοσειρές (θα µπορούσαν να είναι ακέραιοι,...). Αξίζει να παρατηρήσουµε ότι δεδοµένης της εµφώλευσης του C στο A, στον ορισµό της κλάσης A εµφανίζεται ένα πεδίο τύπου C το οποίο αποτελεί την αναφορά στην κλάση C. Ένα βασικό µειονέκτηµα της έως τώρα παρουσίασης, είναι η αδυναµία αυτόµατου ορισµού του τύπου κάθε απλού πεδίου. Ο ορισµός του τύπου κάποιου simple element απαιτεί την παρέµβαση του χρήστη, γεγονός που αφαιρεί ευελιξία από τη µέθοδο. Κάτι τέτοιο όπως θα δούµε στη συνέχεια µπορεί να αποφευχθεί µε τη χρήση XML Schema. Αντιστοίχιση αντικειµενοστραφούς σχήµατος σε σχεσιακό Στο δεύτερο τµήµα του αλγορίθµου, αυτό της µετάφρασης από το αντικειµενοστραφές σχήµα σε σχεσιακό, κάθε κλάση µετατρέπεται σε πίνακα, και κάθε αναφορά σε κλάση σε αναφορά ξένου κλειδιού. Έτσι, οι κλάσεις που ορίσαµε στο προηγούµενο παράδειγµα µετατρέπονται στους παρακάτω πίνακες. Classes Tables class A { Table A: String b; Column b C c; Column c_fk String f; Column f } class C { Table C: String d; Column d String e; Column e } Column c_pk Ο τρόπος µε τον οποίο αποφασίζει ο αλγόριθµος για την σχέση στην οποία θα τοποθετηθεί το πρωτεύον κλειδί και τη σχέση στην οποία θα τοποθετηθεί το ξένο κλειδί είναι ο ίδιος µε αυτόν του σχεσιακού µοντέλου. Ανάλογα µε τον ποσοτικό τελεστή που εµφανίζεται στο DTD (*,?,...) αποφασίζεται το είδος της συσχέτισης (1-1, 1-n, n-1, n-n). Κατόπιν τούτου, ανατίθεται το πρωτεύον κλειδί ανάλογα. Σε περιπτώσεις συσχετίσεων n-n, δηµιουργείται ένας επιπλέον πίνακας ο οποίος χρησιµοποιείται για τη ζεύξη των δύο επιµέρους, και φέρει τις αντίστοιχες αναφορές ξένων κλειδιών. Με ανάλογο τρόπο µπορεί να δοµηθεί και η αναδροµική συσχέτιση ενός στοιχείου µε τον εαυτό του. Κάτι τέτοιο στο DTD εµφανίζεται ως εµφώλευση ενός τύπου στοιχείου

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο 1 Γλώσσες Σήµανσης Γλώσσες σήµανσης: Αρχικά για τον καθορισµό εµφάνισης σελίδων, γραµµατοσειρών. Στη συνέχεια επεκτάθηκαν

Διαβάστε περισσότερα

SGML (Standard Generalized Markup Language) HTML (HyperText Markup Language) XML (extensible Markup Language)

SGML (Standard Generalized Markup Language) HTML (HyperText Markup Language) XML (extensible Markup Language) SGML (Standard Generalized Markup Language) Γλώσσα για την περιγραφή της δομης και του περιεχομένου ηλεκτρονικών κειμένων Πλήρης Σύνθετη Δύσκολη στην εκμάθηση και την χρήση HTML (HyperText Markup Language)

Διαβάστε περισσότερα

ΝΤUA. Τεχνολογία Πολυμέσων

ΝΤUA. Τεχνολογία Πολυμέσων ΝΤUA Τεχνολογία Πολυμέσων 5. Διάλεξη 5: XML XML Μεταγλώσσα για την κωδικοποίηση δεδομένων Πρόβλημα που επιζητά λύσεις: Kοινή γλώσσα επικοινωνίας των εφαρμογών Σημαίνει extensible Markup Language Σχεδιάστηκε

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων ΙΙ. Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο Βάσεις Δεδομένων ΙΙ Διάλεξη 5 η XML και ΒΔ στο Διαδίκτυο Δ. Χριστοδουλάκης - Α. Φωκά Τμήμα Μηχανικών Η/Υ & Πληροφορικής - Εαρινό Εξάμηνο 2007 Εισαγωγή Πολλές εφαρμογές διαδικτύου υποστηρίζουν web διεπαφές

Διαβάστε περισσότερα

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

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ XML (extended Markup Language) Ι. Χατζηλυγερούδης ΕΙΣΑΓΩΓΗ SGML (Standard Generalized Markup Language) Διεθνές πρότυπο ορισμού μεθόδων αναπαράστασης πληροφοριών

Διαβάστε περισσότερα

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας µέσω της τεχνολογίας των ιαδοχικών Φύλλων Στυλ (cascading

Διαβάστε περισσότερα

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΔΗΜΟΚΡΑΤΙΑΣ Οδηγίες

Διαβάστε περισσότερα

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών World Wide Web (WWW) Θέματα Επεξεργασία δεδομένων στο Web Δημιουργία απλών σελίδων HTML Περιγραφή κάποιων XHTML στοιχείων (tags) Εξέλιξης του WWW Το WWW

Διαβάστε περισσότερα

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση

ΚΕΦΑΛΑΙΟ 18. 18 Μηχανική Μάθηση ΚΕΦΑΛΑΙΟ 18 18 Μηχανική Μάθηση Ένα φυσικό ή τεχνητό σύστηµα επεξεργασίας πληροφορίας συµπεριλαµβανοµένων εκείνων µε δυνατότητες αντίληψης, µάθησης, συλλογισµού, λήψης απόφασης, επικοινωνίας και δράσης

Διαβάστε περισσότερα

<address>αδριανείου 2, Νέο Ψυχικό, 11525, Αθήνα</adderss> <address>

<address>αδριανείου 2, Νέο Ψυχικό, 11525, Αθήνα</adderss> <address> ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟ ΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΗΜΟΚΡΑΤΙΑΣ Οδηγίες

Διαβάστε περισσότερα

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

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ XML-XPath Ι. Χατζηλυγερούδης Ερωτήματα σε έγγραφα XML Αντίστοιχα των ερωτημάτων (queries) σε βάσεις δεδομένων Γλώσσες ερωτημάτων (αντίστοιχες της SQL) XQL (XML Query

Διαβάστε περισσότερα

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

Διαβάστε περισσότερα

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

Διαβάστε περισσότερα

Διδακτική της Πληροφορικής ΙΙ

Διδακτική της Πληροφορικής ΙΙ Διδακτική της Πληροφορικής ΙΙ Ομάδα Γ Βότσης Ευστάθιος Γιαζιτσής Παντελής Σπαής Αλέξανδρος Τάτσης Γεώργιος Προβλήματα που αντιμετωπίζουν οι αρχάριοι προγραμματιστές Εισαγωγή Προβλήματα Δυσκολίες Διδακτικό

Διαβάστε περισσότερα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΙΣ Β ΣΕ Ε Σ Ι ΟΜΕΝ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ Β ΣΕ Ε Σ Ι ΟΜΕΝ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ Βασικές Έννοιες - εδοµένα { Νίκος, Μιχάλης, Μαρία, Θάλασσα, Αυτοκίνητο }, αριθµοί, π.χ. {1, 2, 3, 5, 78}, συµβολοσειρές (strings) π.χ. { Κώστας, 5621, ΤΡ 882, 6&5 #1, +

Διαβάστε περισσότερα

Βάσεις ιαδικτύου. Θέματα. Εισαγωγή στην XML. Ευρετήρια για την Ανάκτηση Κειμένων. Ο αλγόριθμος HITS. είναι η XML. Παράδειγμα XML

Βάσεις ιαδικτύου. Θέματα. Εισαγωγή στην XML. Ευρετήρια για την Ανάκτηση Κειμένων. Ο αλγόριθμος HITS. είναι η XML. Παράδειγμα XML Θέματα Βάσεις ιαδικτύου Ο αλγόριθμος HITS Βάσεις Δεδομένων ΙΙ 2004-2005 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων ΙΙ 2004-2005 Ευαγγελία Πιτουρά 2 Τι είναι η XML XML Mark-up Γλώσσες (Γλώσσες Σημειοθέτησης)

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

Διαβάστε περισσότερα

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

Διαβάστε περισσότερα

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές

Διαβάστε περισσότερα

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το Σηµαντικά σηµεία κεφαλαίου Τα τρία στάδια επίλυσης ενός προβλήµατος: Ακριβής προσδιορισµό του προβλήµατος Ανάπτυξη του αντίστοιχου αλγορίθµου. ιατύπωση του αλγορίθµου σε κατανοητή µορφή από τον υπολογιστή.

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Τεχνικές κατασκευής δένδρων επιθεµάτων πολύ µεγάλου µεγέθους και χρήσης

Διαβάστε περισσότερα

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας

Διαβάστε περισσότερα

ΝΤUA. Τεχνολογία Πολυμέσων

ΝΤUA. Τεχνολογία Πολυμέσων ΝΤUA Τεχνολογία Πολυμέσων Contents 2. Lesson 5: XML Τα αρχικά XML Extensible Markup Language Μεταγλώσσα προγραμματισμού για την κωδικοποίηση δεδομένων Έστω ότι θέλουμε να παρουσιάσουμε ένα κείμενο, μια

Διαβάστε περισσότερα

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούµενα µαθήµατα: Εννοιολογικός Σχεδιασµός Βάσεων Δεδοµένων (µε

Διαβάστε περισσότερα

ΑΝΑΛΥΣΗ Ε ΟΜΕΝΩΝ 1. ΕΙ Η Ε ΟΜΕΝΩΝ, ΣΥΛΛΟΓΗ, ΚΩ ΙΚΟΠΟΙΗΣΗ ΚΑΙ ΕΙΣΑΓΩΓΗ

ΑΝΑΛΥΣΗ Ε ΟΜΕΝΩΝ 1. ΕΙ Η Ε ΟΜΕΝΩΝ, ΣΥΛΛΟΓΗ, ΚΩ ΙΚΟΠΟΙΗΣΗ ΚΑΙ ΕΙΣΑΓΩΓΗ ΑΝΑΛΥΣΗ Ε ΟΜΕΝΩΝ 1. ΕΙ Η Ε ΟΜΕΝΩΝ, ΣΥΛΛΟΓΗ, ΚΩ ΙΚΟΠΟΙΗΣΗ ΚΑΙ ΕΙΣΑΓΩΓΗ Βασικές µορφές Ερωτήσεων - απαντήσεων Ανοιχτές Κλειστές Κλίµακας ΕΛΕΥΘΕΡΙΟΣ ΑΓΓΕΛΗΣ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΠΘ 2 Ανοιχτές ερωτήσεις Ανοιχτές

Διαβάστε περισσότερα

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ Στις παραδοσιακές βάσεις δεδομένων, η πληροφορία είναι αυστηρά δομημένη και υπακούει σε ένα σταθερό σχήμα που έχει οριστεί εκ των προτέρων. Τα δεδομένα του Ιστού μπορεί να μην έχουν

Διαβάστε περισσότερα

3η Σειρά Γραπτών Ασκήσεων

3η Σειρά Γραπτών Ασκήσεων 1/48 3η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 2/48 1 Άσκηση 1: Πομποί και Δέκτες 2 Άσκηση 2: Διακοπές στην Ικαρία 3 Άσκηση 3: Επιστροφή στη Γη 4 Άσκηση

Διαβάστε περισσότερα

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ: ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: Υπολογιστικά Συστήµατα & Τεχνολογίες Πληροφορικής ΣΥΓΓΡΑΦΕΑΣ: Γιώργος Γιαννόπουλος, διδακτορικός φοιτητής

Διαβάστε περισσότερα

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

Διαβάστε περισσότερα

3 Αναδροµή και Επαγωγή

3 Αναδροµή και Επαγωγή 3 Αναδροµή και Επαγωγή Η ιδέα της µαθηµατικής επαγωγής µπορεί να επεκταθεί και σε άλλες δοµές εκτός από το σύνολο των ϕυσικών N. Η ορθότητα της µαθηµατικής επαγωγής ϐασίζεται όπως ϑα δούµε λίγο αργότερα

Διαβάστε περισσότερα

Πληρότητα της μεθόδου επίλυσης

Πληρότητα της μεθόδου επίλυσης Πληρότητα της μεθόδου επίλυσης Λήμμα: Αν κάθε μέλος ενός συνόλου όρων περιέχει ένα αρνητικό γράμμα, τότε το σύνολο είναι ικανοποιήσιμο. Άρα για να είναι μη-ικανοποιήσιμο, θα πρέπει να περιέχει τουλάχιστον

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης. Βασίζεται στις διαφάνειες των R. Sedgewick K.

Δοµές Δεδοµένων. 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης. Βασίζεται στις διαφάνειες των R. Sedgewick K. Δοµές Δεδοµένων 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης Βασίζεται στις διαφάνειες των R. Sedgewick K. Wayne Περίληψη Συνδετικότητα δικτύου Αφαιρέσεις Συνδεδεµένα συστατικά Αφηρηµένη

Διαβάστε περισσότερα

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html Χρ. Ηλιούδης Παγκόσμιος Ιστός (WWW) Ο Παγκόσμιος Ιστός (World Wide Web WWW), ή απλώς Ιστός, βασίζεται στην ιδέα των κατανεμημένων πληροφοριών. Αντί όλες

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

Διαβάστε περισσότερα

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ 1 Αριθµητικό Σύστηµα! Ορίζει τον τρόπο αναπαράστασης ενός αριθµού µε διακεκριµένα σύµβολα! Ένας αριθµός αναπαρίσταται διαφορετικά σε κάθε σύστηµα,

Διαβάστε περισσότερα

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων Γλωσσική Τεχνολογία Ακαδημαϊκό Έτος 2011-2012 Ημερομηνία Παράδοσης: Στην εξέταση του μαθήματος ΑΣΚΗΣΗ Δημιουργία Ευρετηρίων Συλλογής Κειμένων Σκοπός της άσκησης είναι η υλοποίηση ενός συστήματος επεξεργασίας

Διαβάστε περισσότερα

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

ΕΝ ΕΙΚΤΙΚΗ ΛΥΣΗ ΚΑΙ ΣΧΟΛΙΑ ΣΤΗΝ ΠΡΩΤΗ ΑΣΚΗΣΗ ΣΧΕ ΙΑΣΜΟΙ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΕΘΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΕΙΟ Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Ακαδηµαϊκό Έτος 2007-2008 Μάθηµα: ΒΑΣΕΙΣ Ε ΟΜΕΩ ιδάσκων: Καθ. Ιωάννης Βασιλείου Ε ΕΙΚΤΙΚΗ ΛΥΣΗ ΚΑΙ ΣΧΟΛΙΑ ΣΤΗ ΠΡΩΤΗ ΑΣΚΗΣΗ

Διαβάστε περισσότερα

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα Κεφάλαιο 7. 7.1 ομές εδομένων για Γραφικά Υπολογιστών. Οι δομές δεδομένων αποτελούν αντικείμενο της επιστήμης υπολογιστών. Κατά συνέπεια πρέπει να γνωρίζουμε πώς οργανώνονται τα γεωμετρικά δεδομένα, προκειμένου

Διαβάστε περισσότερα

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML

Περιεχόμενα. Γαβαλάς Δαμιανός Τρέχον status της HTML Δικτυακά Πολυμέσα ΙΙ Διάλεξη #2 η : Βασικές έννοιες σχεδιασμού στο web Γαβαλάς Δαμιανός dgavalas@aegean.gr Περιεχόμενα Τρέχον status της HTML Μετάβαση από την HTML στην XHTML Κλέ Καλές πρακτικές συγγραφής

Διαβάστε περισσότερα

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1 Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 1 Εισαγωγή Θα εξετάσουµε πότε ένα σχεσιακό σχήµα για µια βάση δεδοµένων είναι «καλό» Γενικές Οδηγίες Η Μέθοδος

Διαβάστε περισσότερα

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

3. Επερώτηση XML Εγγράφων: Η Γλώσσα XPath Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Επερώτηση XML Εγγράφων: Η Γλώσσα XPath ιαχείριση εδομένων στον Παγκόσμιο Ιστό Χρήστος ουλκερίδης Τμήμα

Διαβάστε περισσότερα

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΑΡΧΗ 1 ης ΣΕΛΙΔΑΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Επιμέλεια: Ομάδα Διαγωνισμάτων από Το στέκι των πληροφορικών Θέμα 1 ο Α. Να χαρακτηρίσετε κάθε μία από

Διαβάστε περισσότερα

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Εναλλακτικές Τεχνικές Εντοπισµού Θέσης Όνοµα: Κατερίνα Σπόντου Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο της διπλωµατικής Ο εντοπισµός

Διαβάστε περισσότερα

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο 2015. Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2015 Δοµές Δεδοµένων - Εργασία 2 Διδάσκων: E. Μαρκάκης Ταξινόµηση και Ουρές Προτεραιότητας Σκοπός της 2 ης εργασίας είναι η εξοικείωση

Διαβάστε περισσότερα

της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004

της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004 example Αξιοποιώντας την τεχνολογία XML στη διαχείριση της πληροφορίας Λίνα Μπουντούρη Εθνικό Κέντρο Τεκμηρίωσης 13ο ΠανελλήνιοΣυνέδριοΑκαδημαϊκών Βιβλιοθηκών - Κέρκυρα 2004 Πρότυπα και XML Πρότυπα ενιαίο

Διαβάστε περισσότερα

ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ

ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΚΑΤΑΝΕΜΗΜΕΝΕΣ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ 1 ΓΕΝΙΚΑ Μια κατανεµηµένη βάση δεδοµένων (distributed database) µπορεί να οριστεί σαν µια οµάδα από λογικά συνδεόµενες βάσεις δεδοµένων που είναι διεσπαρµένες σε ένα δίκτυο

Διαβάστε περισσότερα

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Εισαγωγή σε δενδρικές δομές δεδομένων, -

Διαβάστε περισσότερα

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:

Διαβάστε περισσότερα

Κεφάλαιο 10 Ψηφιακά Λεξικά

Κεφάλαιο 10 Ψηφιακά Λεξικά Κεφάλαιο 10 Ψηφιακά Λεξικά Περιεχόμενα 10.1 Εισαγωγή... 213 10.2 Ψηφιακά Δένδρα... 214 10.3 Υλοποίηση σε Java... 222 10.4 Συμπιεσμένα και τριαδικά ψηφιακά δένδρα... 223 Ασκήσεις... 225 Βιβλιογραφία...

Διαβάστε περισσότερα

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1)

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1) ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΜΑΘΗΜΑ 2 ΑΝΑΠΑΡΑΣΤΑΣΗ - ΤΕΧΝΙΚΕΣ ΤΝ (1) 2. ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΡΟΒΛΗΜΑΤΟΣ H υλοποίηση ενός προβλήµατος σε σύστηµα Η/Υ που επιδεικνύει ΤΝ 1 απαιτεί: Την κατάλληλη περιγραφή του προβλήµατος

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

Διαβάστε περισσότερα

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

2 ο Μάθημα. Χωρικές Βάσεις Δεδομένων και Γεωγραφικά Πληροφοριακά Συστήματα

2 ο Μάθημα. Χωρικές Βάσεις Δεδομένων και Γεωγραφικά Πληροφοριακά Συστήματα 2 ο Μάθημα Χωρικές Βάσεις Δεδομένων και Γεωγραφικά Πληροφοριακά Συστήματα ArcMAP Από το path Programs ArcGIS ArcMAP Επιλέγουμε File Add Data Επιλέγουμε *.jpeg εικόνες και τα σχήματα. Χαρτογραφική Απεικόνιση

Διαβάστε περισσότερα

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα Γενικό πλάνο Μαθηµατικά για Πληροφορική 3ο Μάθηµα Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 14/10/2008 1 Παράδειγµα δοµικής επαγωγής 2 Ορισµός δοµικής

Διαβάστε περισσότερα

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ

Βάσεις εδοµένων. Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Βάσεις εδοµένων Βασίλειος Βεσκούκης, Εµµ. Στεφανάκης v.vescoukis@cs.ntua.gr ΣΥΣΤΗΜΑΤΑ ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ Συστήµατα ιαχείρισης Βάσεων

Διαβάστε περισσότερα

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Ορισμοί και πράξεις Αναπαράσταση δενδρικών δομών

Διαβάστε περισσότερα

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

Διαβάστε περισσότερα

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

Διαβάστε περισσότερα

Μαθηµατικά για Πληροφορική

Μαθηµατικά για Πληροφορική Μαθηµατικά για Πληροφορική 3ο Μάθηµα Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 14/10/2008 14/10/2008 1 / 24 Γενικό πλάνο 1 Παράδειγµα δοµικής επαγωγής

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 5: XML. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 5: XML. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 5: XML Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής Σκοποί ενότητας Σκοπός της παρούσας ενότητας είναι να εξοικειωθούν

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων ΠΕΡΙΕΧΟΜΕΝΑ Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων Εισαγωγή Η χρήση των μεταβλητών με δείκτες στην άλγεβρα είναι ένας ιδιαίτερα

Διαβάστε περισσότερα

scanf() scanf() stdin scanf() printf() int float double %lf float

scanf() scanf() stdin scanf() printf() int float double %lf float Εισαγωγή Στον Προγραµµατισµό «C» Είσοδος Δεδοµένων Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Η συνάρτηση scanf() Η συνάρτηση

Διαβάστε περισσότερα

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου:

Διαβάστε περισσότερα

Σχεδιασµός Ανάπτυξη Οντολογίας

Σχεδιασµός Ανάπτυξη Οντολογίας Σχεδιασµός Ανάπτυξη Οντολογίας ΈλεναΜάντζαρη, Γλωσσολόγος, Ms.C. ΙΑΤΡΟΛΕΞΗ: Ανάπτυξη Υποδοµής Γλωσσικής Τεχνολογίας για το Βιοϊατρικό Τοµέα Τι είναι η οντολογία; Μιαοντολογίαείναιέναλεξικόόρωνπου διατυπώνονται

Διαβάστε περισσότερα

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012 ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012 Πληρότητα της μεθόδου επίλυσης Λήμμα: Αν κάθε μέλος ενός συνόλου όρων περιέχει

Διαβάστε περισσότερα

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

Διαβάστε περισσότερα

Οδηγίες σχεδίασης στο περιβάλλον Blender

Οδηγίες σχεδίασης στο περιβάλλον Blender Οδηγίες σχεδίασης στο περιβάλλον Blender Στον πραγματικό κόσμο, αντιλαμβανόμαστε τα αντικείμενα σε τρεις κατευθύνσεις ή διαστάσεις. Τυπικά λέμε ότι διαθέτουν ύψος, πλάτος και βάθος. Όταν θέλουμε να αναπαραστήσουμε

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα

Διαβάστε περισσότερα

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

ΑΝΑΠΑΡΑΣΤΑΣΗ ΚΕΙΜΕΝΟΥ ΚΕΙΜΕΝΟ Ο πρώτος τρόπος απεικόνισης πληροφορίας (και βασικός ως σήμερα). Αδυναμία πρώτων υπολογιστών να χειριστούν άλλη μορφή πληροφορίας. Πρόβλημα με καθιερωμένα πρότυπα (π.χ. ASCII), π.χ. σε πολυγλωσσικές

Διαβάστε περισσότερα

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

Διαβάστε περισσότερα

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων.

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων. ΠΕΡΙΛΗΨΗ Η τεχνική αυτή έκθεση περιλαµβάνει αναλυτική περιγραφή των εναλλακτικών µεθόδων πολυκριτηριακής ανάλυσης που εξετάσθηκαν µε στόχο να επιλεγεί η µέθοδος εκείνη η οποία είναι η πιο κατάλληλη για

Διαβάστε περισσότερα

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Κεφάλαιο 11 Ένωση Ξένων Συνόλων Κεφάλαιο 11 Ένωση Ξένων Συνόλων Περιεχόμενα 11.1 Εισαγωγή... 227 11.2 Εφαρμογή στο Πρόβλημα της Συνεκτικότητας... 228 11.3 Δομή Ξένων Συνόλων με Συνδεδεμένες Λίστες... 229 11.4 Δομή Ξένων Συνόλων με Ανοδικά

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Βάσεις Δεδομένων ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Συντήρησης Πολιτισμικής Κληρονομιάς Τι είναι οι Βάσεις Δεδομένων; Σύστημα για αποθήκευση, μετάδοση

Διαβάστε περισσότερα

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Με τον όρο μη γραμμικές εξισώσεις εννοούμε εξισώσεις της μορφής: f( ) 0 που προέρχονται από συναρτήσεις f () που είναι μη γραμμικές ως προς. Περιέχουν δηλαδή

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα

Διδάσκων: Κωνσταντίνος Κώστα Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος

Διαβάστε περισσότερα

HY Λογική Διδάσκων: Δ. Πλεξουσάκης

HY Λογική Διδάσκων: Δ. Πλεξουσάκης HY-180 - Λογική Διδάσκων: Δ. Πλεξουσάκης Πληρότητα της μεθόδου επίλυσης Λήμμα: Αν κάθε μέλος ενός συνόλου όρων περιέχει ένα αρνητικό γράμμα, τότε το σύνολο είναι ικανοποιήσιμο. Άρα για να είναι μη-ικανοποιήσιμο,

Διαβάστε περισσότερα

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό Αλέξανδρος Βαλαράκος (alexv@iit.demokritos.gr) (alexv@aegean.gr) Υποψήφιος ιδάκτορας Τµήµα Μηχανικών Υπολογιστικών και Πληροφοριακών Συστηµάτων.

Διαβάστε περισσότερα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες

Διαβάστε περισσότερα

Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις

Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις Κ15 Ψηφιακή Λογική Σχεδίαση 2: Δυαδικό Σύστημα / Αναπαραστάσεις Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Δυαδικό Σύστημα Αρίθμησης Περιεχόμενα 1 Δυαδικό

Διαβάστε περισσότερα

Επισκόπηση Μαθήµατος

Επισκόπηση Μαθήµατος Βάσεις εδοµένων 5 ο Εξάµηνο ηµήτρης Λέκκας Επίκουρος Καθηγητής dlekkas@env.aegean.gr Τµήµα Στατιστικής & Αναλογιστικών-Χρηµατοοικονοµικών Μαθηµατικών Επισκόπηση Μαθήµατος Εισαγωγή (Σ Β ) Το µοντέλο σχέσεων

Διαβάστε περισσότερα

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

Διαβάστε περισσότερα

Κεφ.11: Ευρετήρια και Κατακερματισμός

Κεφ.11: Ευρετήρια και Κατακερματισμός Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα

Διαβάστε περισσότερα