Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεἸωνᾶς Σπανός Τροποποιήθηκε πριν 8 χρόνια
1
Βάσεις Δεδομένων και Παγκόσμιος Ιστός Εισαγωγικά στοιχεία Βάσεων Δεδομένων
2
Σύνοψη των ΣΔΒΔ Σχεσιακές βάσεις δεδομένων Όψεις Αντικειμενοστρεφείς βάσεις δεδομένων
3
Βάσεις Δεδομένων και Παγκόσμιος Ιστός3 Τι είναι ένα ΣΔΒΔ (DBMS); Όταν η πληροφορία είναι πολλή, το κόστος διαχείρισης μπορεί να υπερβαίνει τα οφέλη. Βάση Δεδομένων: μια μεγάλη συλλογή δεδομένων, μοντελοποιεί μια επιχείρηση του πραγματικού κόσμου. Οντότητες (πχ. Φοιτητές, Μαθήματα) Συσχετίσεις (πχ. Ο Γιάννης παρακολουθεί το Β18) Σύστημα Διαχείρισης Βάσεων Δεδομένων: ένα πακέτο λογισμικού σχεδιασμένο να αποθηκεύει και να διαχειρίζεται Βάσεις Δεδομένων. Πρώτο ΣΔΒΔ γενικής χρήσης: αρχές 1960 Μεγάλη εμπορική επιτυχία έκτοτε.
4
Βάσεις Δεδομένων και Παγκόσμιος Ιστός4 Γιατί όχι αρχεία; Παράδειγμα: 500GB πρέπει να ερωτούνται γρήγορα, να ενημερώνονται με συνέπεια, ελεγχόμενη προσπέλαση. Η εφαρμογή επιβαρύνεται με: Διαχείριση δευτερεύοντος αποθηκευτικού μέσου (πρόσβαση στις κατάλληλες σελίδες, εναλλαγή τους στην κύρια μνήμη). Σύνθετος κώδικας για κάθε διαφορετικό ερώτημα. Προστασία των δεδομένων απο ασυνέπειες, λόγω πολλαπλών ταυτόχρονων αλλαγών. Ανάκαμψη από αποτυχίες του συστήματος. Ασφάλεια και έλεγχος πρόσβασης. ΣΔΒΔ: δεν χρειάζεται να υλοποιούμε τα ίδια πράγματα από την αρχή για κάθε νέα εφαρμογή.
5
Βάσεις Δεδομένων και Παγκόσμιος Ιστός5 Πλεονεκτήματα χρήσης ΣΔΒΔ Ανεξαρτησία δεδομένων οι λεπτομέρειες οργάνωσης δεν επηρεάζουν τις εφαρμογές. Γρήγορη πρόσβαση στην πληροφορία Κατάλληλη αποθήκευση, βελτιστοποίηση Έλεγχος πρόσβασης, περιορισμοί ορθότητας Ταυτόχρονη πρόσβαση, ανάκαμψη Κάθε χρήστης νομίζει ότι είναι ο μόνος Κεντρική διαχείριση της πληροφορίας Γρηγορότερη και ασφαλέστερη ανάπτυξη εφαρμογών
6
Βάσεις Δεδομένων και Παγκόσμιος Ιστός6 Μοντέλα δεδομένων Συλλογή δομικών στοιχείων για περιγραφή δεδομένων......σε αφαιρετικό επίπεδο, κρύβουν τις λεπτομέρειες αποθήκευσης. Λογικό μοντέλο δεδομένων: πιο κοντά στις έννοιες της ΒΔ Σχεσιακό, αντικειμενοστρεφές, ιεραρχικό, δικτυωτό... Σημασιολογικό μοντέλο δεδομένων: πιο κοντά στον πραγματικό κόσμο ER (μοντέλο οντοτήτων-συσχετίσεων). Σχήμα: περιγραφή της δομής μιας συγκεκριμένης συλλογής δεδομένων, μέσω ενός δεδομένου μοντέλου.
7
Βάσεις Δεδομένων και Παγκόσμιος Ιστός7 Το σχεσιακό μοντέλο Το πιο διαδεδομένο μοντέλο ΒΔ σήμερα. Βασικό δομικό στοιχείο: η σχέση Είναι ένα σύνολο εγγραφών. Ή επίσης ένας πίνακας με στήλες και σειρές. Κάθε σχέση έχει το δικό της σχήμα, που περιγράφει τις στήλες του πίνακα, ή αλλιώς τα πεδία. Περιορισμοί ορθότητας εξασφαλίζουν συνθήκες για τις εγγραφές. idnameemailage 512Costascos@yahoo.com18 514Panosp72@freemail.com20 532Yannisyan@yahoo.com19 533Nikosnikk@cosmote.gr23
8
Βάσεις Δεδομένων και Παγκόσμιος Ιστός8 Επίπεδα αφαίρεσης Διάφορες όψεις σε πολλαπλά εξωτερικά σχήματα, ένα εννοιολογικό (ή λογικό) σχήμα, ένα φυσικό σχήμα Τα εξωτερικά σχήματα περιγράφουν πως ομάδες χρηστών βλεπουν τα δεδομένα. Το λογικό σχήμα ορίζει την λογική δομή. Το φυσικό σχήμα περιγράφει την οργάνωση αρχείων και τα ευρετήρια. Ορισμός σχημάτων: DDL Διαχείριση δεδομένων: DML Conceptual Schema Ext. Sch. 1Ext. Sch. 2Ext. Sch. 3 Physical Schema Storage
9
Βάσεις Δεδομένων και Παγκόσμιος Ιστός9 Παράδειγμα: βάση Πανεπ/μίου Λογικό σχήμα: Students (sid: string, name: string, login: string, age: integer) Courses (cid: string, cname: string, credits: integer) Enrolled (sid: string, cid: string, grade: string) Φυσικό σχήμα: Αποθήκευση σχέσεων σαν μη διατεταγμένα αρχεία. Ευρετήριο στο πρώτο πεδίο του Students. Εξωτερικό σχήμα (σύνολο όψεων): Course_info (cid: string, enrollments: integer) Οι όψεις μπορούν να ερωτήθουν αυτόνομα, δεν χρειάζεται όμως να αποθηκευτούν ξεχωριστά.
10
Βάσεις Δεδομένων και Παγκόσμιος Ιστός10 Ανεξαρτησία δεδομένων Είναι από τα σημαντικότερα πλεονεκτήματα χρήσης ενός ΣΔΒΔ. Οι εφαρμογές είναι αποσυνδεδεμένες από την δομή και τον τρόπο αποθήκευσης των δεδομένων. Λογική ανεξαρτησία δεδομένων: προστασία από αλλαγές στην λογική δομή των δεδομένων. Ή από διαφοροποιήσεις στην επιλογή του ποιές σχέσεις τελικά αποθηκεύονται. Φυσική ανεξαρτησία δεδομένων: προστασία από αλλαγές στην φυσική δομή των δεδομένων. Χρήσιμες για την βελτίωση της απόδοσης.
11
Βάσεις Δεδομένων και Παγκόσμιος Ιστός11 Ερωτήματα πάνω στα ΣΔΒΔ Τα σχεσιακά ΣΔΒΔ επιτρέπουν την εύκολη και ευέλικτη ανάκτηση της πληροφορίας. Ποιό είναι το όνομα του φοιτητή 123456; Ποιός είναι ο μέσος μισθός των καθηγητών; Πόσοι φοιτητές έχουν πάρει το μάθημα Β19; Τι ποσοστό έχει πάρει βαθμό > 8 στο μάθημα Β19; Τα ερωτήματα διατυπώνονται μέσω ειδικής γλώσσας ερωτημάτων (SQL). Σχεσιακός λογισμός, σχεσιακή άλγεβρα. Μεγάλη σημασία στην αποδοτική αποτίμηση ερωτημάτων.
12
Βάσεις Δεδομένων και Παγκόσμιος Ιστός12 Ταυτοχρονισμός Η ταυτόχρονη εκτέλεση προγραμμάτων είναι ουσιώδης για ένα αποδοτικό ΣΔΒΔ Η CPU δεν πρέπει να περιμένει τις προσπελάσεις στον δίσκο. Η διαπλοκή στην εκτέλεση μεταξύ διαφορετικών προγραμμάτων μπορεί να οδηγήσει σε ασυνέπειες Πχ. Ένας ταξιδιωτικός πράκτορας βλέπει μια κενή θέση την οποία μόλις έχει κλείσει ένας άλλος πράκτορας. Πχ. Μεταφορά χρημάτων ενώ υπολογίζεται η συνολική κίνηση. Το ΣΔΒΔ διασφαλίζει ότι δεν παρουσιάζονται τέτοια προβλήματα: οι χρήστες φέρονται σαν να έχουν το σύστημα καθένας μόνος του.
13
Βάσεις Δεδομένων και Παγκόσμιος Ιστός13 Δοσοληψίες Μια δοσοληψία είναι μια ατομική σειρα πράξεων στην βάση δεδομένων (αναγνώσεις / εγγραφές). Βασική μονάδα αλλαγών, δεν επιτρέπεται η μερική εκτέλεσή της. Το ΣΔΒΔ διαπλέκει πράξεις από διάφορες δοσοληψίες: (α) Ωστε να αυξανει την αποδοτικότητά του. (β) Με τρόπο ώστε το τελικό αποτέλεσμα να είναι ισοδύναμο με κάποια σειριακή εκτέλεση όλων των δοσοληψιών. Αυτό επιτυγχάνεται με τα κλειδώματα Διαμοιραζόμενα κλειδώματα (ανάγνωσης). Αποκλειστικά κλειδώματα (εγγραφής). Κάθε δοσοληψία κλειδώνει τα σχετικά τμήματα της βάσης.
14
Βάσεις Δεδομένων και Παγκόσμιος Ιστός14 Ανάκαμψη Μια δοσοληψία μπορεί να διακοπεί στην μέση, λόγω πχ. αποτυχίας του συστήματος. Αφαίρεση ποσού από λογαριασμό Α, και διακοπή ρεύματος πριν την πρόσθεση σε λογαριασμό Β. Το ΣΔΒΔ επαναφέρει την βάση στην προηγούμενη κατάσταση. Διατηρεί ένα αρχείο καταγραφής όλων των αλλαγών (log) Καθε αλλαγή καταγράφεται στο log προτού εκτελεστεί στην ίδια την βάση. Το log είναι επίσης χρήσιμο για την επιβεβαίωση ότι οι επιτυχείς δοσοληψίες δεν χάθηκαν μετά από μια αποτυχία του συστήματος.
15
Βάσεις Δεδομένων και Παγκόσμιος Ιστός15 Αρχιτεκτονική ενός ΣΔΒΔ Συνήθως η αρχιτεκτονική αποτελείται από στρώματα (layers). Διάφορες δυνατές παραλλαγές. Κάθε σύστημα ακολουθεί την δική του παραλλαγή.
16
Σύνοψη των ΣΔΒΔ Σχεσιακές βάσεις δεδομένων Όψεις Αντικειμενοστρεφείς βάσεις δεδομένων
17
Βάσεις Δεδομένων και Παγκόσμιος Ιστός17 Σχεδιασμός ΒΔ Ανάλυση απαιτήσεων Τι δεδομένα πρέπει να αποθηκευτούν στην βάση; Τι εφαρμογές θα χρησιμοποιούν την βάση; Τι λειτουργίες θα εκτελούνται συχνα; Εννοιολογικός σχεδιασμός βάσης Μοντέλο οντοτήτων-συσχετίσεων (ER) διευκολύνει την συνενόηση με μη-τεχνικούς Λογικός σχεδιασμός βάσης Το ER μετατρέπεται στο μοντέλο δεδομένων της βάσης Αποτέλεσμα: λογικό σχήμα της βάσης Κανονικοποίηση, φυσικός σχεδιασμός, ασφάλεια
18
Βάσεις Δεδομένων και Παγκόσμιος Ιστός18 Μοντέλο ER Οντότητα: αντικείμενο πραγματικού κόσμου Περιγράφεται σαν ένα σύνολο γνωρισμάτων Παρόμοιες οντότητες (ίδια γνωρίσματα): σύνολο οντότητας Κάθε γνώρισμα έχει ένα πεδίο τιμών Κάθε συνολο οντότητας μπορεί να έχει ένα κλειδί Συσχέτιση: μια σχέση μεταξύ οντοτήτων Πχ. Ο Κώστας δουλεύει στο τμήμα πωλήσεων Μια συσχέτιση μπορεί επίσης να έχει γνωρίσματα Σύνολο συσχετίσεων: συλλογή παρόμοιων συσχετίσεων
19
Βάσεις Δεδομένων και Παγκόσμιος Ιστός19 Περιορισμοί Περιορισμοί κλειδιού (1-1, 1-πολλά, πολλά-πολλά) Περιορισμοί συμμετοχής (ολική, μερική)
20
Βάσεις Δεδομένων και Παγκόσμιος Ιστός20 Σχήμα της βάσης Εύκολη μετατροπή απο ER σε σχέσεις (πίνακες) Κάθε οντότητα γίνεται μια σχέση, και τα γνωρίσματά της γίνονται στήλες του πίνακα Κάθε συσχέτιση γίνεται επίσης σχέση: ξένα κλειδιά. Περιορισμοί ορθότητας (integrity constraints, referential integ.) Παράδειγμα DDL (2η προσέγγιση καλύτερη) CREATE TABLE Manages (ssn CHAR(11), did INTEGER, since DATE, PRIMARY KEY (did), FOREIGN KEY (ssn) REFERENCES Employees, FOREIGN KEY (did) REFERENCES Departments) CREATE TABLE Dept_Mang (did INTEGER, dname CHAR(20), budget REAL, ssn CHAR(11) NOT NULL, since DATE, PRIMARY KEY (did), FOREIGN KEY (ssn) REFERENCES Employees ON DELETE NO ACTION)
21
Βάσεις Δεδομένων και Παγκόσμιος Ιστός21 Γλώσσες Ερωτημάτων Ένα από τα δυνατότερα σημεία του σχεσιακού μοντέλου: Υποστηρίζει ερωτήματα (queries) μεγάλης εκφραστικής δύναμης με απλό δηλωτικό τρόπο. SQL: από IBM την δεκαετια ‘70, τελευταία εκδοση SQL-99 Το ΣΔΒΔ είναι υπεύθυνο για την αποδοτική αποτίμηση των ερωτηματων Το σημείο κλειδι: η ακριβής σημασιολογία των σχεσιακών ερωτημάτων Σχεσιακός λογισμός, σχεσιακή άλγεβρα Επιτρέπει την ανακατάταξη των επι μέρους πράξεων με τρόπο που δεν αλλοιώνει την απάντηση, αλλά βελτιώνει τον χρόνο απόκρισης.
22
Βάσεις Δεδομένων και Παγκόσμιος Ιστός22 Ανάκτηση με την SQL Τα τμήματα με υψηλό προϋπολογισμό SELECT * FROM Departments WHERE budget > 1000000 Οι υπάλληλοι του τμήματος R&D: σύνδεση (join) SELECT E.name, W.since FROM Employees E, Departments D, Works_in W WHERE D.dname = “R&D” AND W.did = D.did AND join W.ssn = E.ssn join Αποτέλεσμα: σχέση (πίνακας).
23
Βάσεις Δεδομένων και Παγκόσμιος Ιστός23 Ανάκτηση με την SQL (2) Τα τμήματα με τον υψηλότερο προϋπολογισμό SELECT D.dname FROM Departments D WHERE D.budget >= ALL (SELECT D2.budget FROM Departments D2) Ο μεγαλύτερος βαθμός ανά ηλικία για τους φοιτητές 21 ετών και πάνω SELECT S.age, MAX(S.grade) as maxGrade FROM Students S GROUP BY S.age HAVING S.age > 21
24
Βάσεις Δεδομένων και Παγκόσμιος Ιστός24 Αλλαγές με την SQL Εισαγωγές INSERT INTO Employees(ssn,name) VALUES (83542, ‘Aris’) Ενημερώσεις UPDATE Departments SET budget = 2000000 WHERE did = 12345 Διαγραφές DELETE FROM Employees WHERE name = “Aris”
25
Βάσεις Δεδομένων και Παγκόσμιος Ιστός25 Σχεσιακή άλγεβρα & λογισμός Γερά μαθηματικά θεμέλια του σχεσιακού μοντέλου Στηρίζονται στην μαθηματική λογική Επιτρέπουν βελτιστοποίηση της απόδοσης στην εκτέλεση των ερωτημάτων. Σχεσιακή άλγεβρα Διαδικαστική, μια σειρά απο πράξεις που εκτελούνται βήμα- βήμα. Σχεσιακός λογισμός Δηλωτικός, δεν περιγράφει τα βήματα αποτίμησης της απάντησης Εκφραστική δύναμη: ισοδύναμη! Σχεσιακά πλήρεις (relationally complete) γλώσσες ερωτημάτων
26
Βάσεις Δεδομένων και Παγκόσμιος Ιστός26 Σχεσιακή άλγεβρα Κάθε λειτουργία επιστρέφει σχέση (κλειστή άλγεβρα) Selection (σ) Projection (π) Product (Χ) Join Union, Intersection, Difference, Division, Renaming Παράδειγμα: οι υπάλληλοι του τμήματος R&D (για απλότητα χωρίς renaming) S1 = Employees(E) X Departments(D) X Works_in(W) S2 = σ E.dname=‘R&D’ (S1) S3 = σ W.did=D.did, W.ssn=E.ssn (S2) S4 = π E.name, W.since (S3)
27
Βάσεις Δεδομένων και Παγκόσμιος Ιστός27 Σχεσιακός λογισμός Ενα απλό υποσύνολο της λογικής πρώτης τάξης (first- order logic) Χρησιμοποιεί τον υπαρξιακό ( ) και καθολικό ( ) τελεστή. Παράδειγμα: τα τμήματα με υψηλό προϋπολογισμό R = {P | S Departments (S.budget > 1000000 P.did=S.did P.dname=S.dname P.budget=S.budget)}
28
Βάσεις Δεδομένων και Παγκόσμιος Ιστός28 Σχεσιακό μοντέλο: σύνοψη Αναπαράσταση δεδομένων σε μορφή πίνακα Απλό και ευκολονόητο, το ευρύτερα διαδεδομένο σήμερα Περιορισμοί ορθότητας εξαρτώνται από την σημασιολογία της εφαρμογής, το ΣΔΒΔ ελέγχει παραβάσεις Περιορισμοί πρωτεύοντος κλειδιού και ξένων κλειδιών Περιορισμοί πεδίου τιμών Ισχυρη δηλωτική γλώσσα ερωτημάτων Κανόνες μετάφρασης ER στο σχεσιακό μοντέλο
29
Σύνοψη των ΣΔΒΔ Σχεσιακές βάσεις δεδομένων Όψεις Αντικειμενοστρεφείς βάσεις δεδομένων
30
Βάσεις Δεδομένων και Παγκόσμιος Ιστός30 Όψεις Μηχανισμός για να ελέγχουμε το πως οι χρήστες βλέπουν τα δεδομένα Πίνακας που όμως δεν φυλάσσεται στην βάση, αλλά υπολογίζεται όποτε χρειάζεται Παράδειγμα ορισμού όψης (view definition): υπάλληλοι σε «πλούσια» τμήματα CREATE VIEW Important_empl (name, dname, since) AS SELECT E.name, D.dname, W.since FROM Employees E, Departments D, Works_in W WHERE D.budget > 1000000 AND W.did = D.did AND W.ssn = E.ssn
31
Βάσεις Δεδομένων και Παγκόσμιος Ιστός31 Χρησιμότητα όψεων Μια όψη μπορεί να χρησιμοποιηθεί σαν οποιοδήποτε πίνακα βάσης (base table) Μπορούμε να θέσουμε ερωτήματα στην όψη Μπορούμε να χρησιμοποιήσουμε μια όψη για τον ορισμό νέων όψεων Πώς και πότε αποτιμούνται οι όψεις; Αποφεύγουμε να έχουμε τα ίδια δεδομένα πολλές φορές Πράγμα που οδηγεί σε πιθανές ασυνέπειες Ασφάλεια: δίνουμε σε ομάδες χρηστών πρόσβαση αποκλειστικά στην πληροφορία που επιτρέπεται Λογική ανεξαρτησία δεδομένων: το εξωτερικό σχήμα απομονώνει τις εφαρμογές από αλλαγές στο λογικό σχήμα
32
Βάσεις Δεδομένων και Παγκόσμιος Ιστός32 Ενημέρωση όψεων Ενημερώσιμες όψεις (updatable views) Selection & projection σε εναν πίνακα, χωρις αθροιστικές πράξεις Ενημέρωση της όψης μεταφράζεται σε ενημέρωση του πίνακα CREATE VIEW GoodStudents (sid, grade) AS SELECT S.sid, S.grade FROM Students S WHERE S.grade > 7.5 Ενα INSERT ή UPDATE είναι δυνατόν να αλλάξουν τον πίνακα βάσης χωρίς η νέα εγγραφή να ανήκει στην όψη.
33
Βάσεις Δεδομένων και Παγκόσμιος Ιστός33 Μη ενημερώσιμες όψεις Παράδειγμα: πως διαγράφουμε το ; sailingdave hikingsmith rowingsmith davedave@cs7.5 jonesjones@cs8.2 smithsmith@ee6.7 smithsmith@math8.0 davedave@cssailing smithsmith@eehiking smithsmith@eerowing smithsmith@mathhiking smithsmith@mathrowing CREATE VIEW ActiveStudents (name,login,club) AS SELECT S.sname,S.login,C.cname FROM Students S, Clubs C WHERE S.sname = C.sname AND S.grade > 6.0
34
Βάσεις Δεδομένων και Παγκόσμιος Ιστός34 Ερωτήματα σε όψεις Η SQL δεν καθορίζει πως αποτιμούνται Μπορούμε να θεωρήσουμε μια προσαρμογή του ερωτήματος: CREATE VIEW RegionalSales(category,sales,state) AS SELECT P.category, S.sales, L.state FROM Products P, Sales S, Locations L WHERE P.pid=S.pid AND S.locid= L.locid SELECT R.category, R.state, SUM(R.sales) FROM RegionalSales R FROM (...) AS R GROUP BY R.category, R.state
35
Βάσεις Δεδομένων και Παγκόσμιος Ιστός35 Υλοποιημένες όψεις Προβλήματα με την αποτίμηση του προσαρμοσμένου ερωτήματος: Αργή απάντηση ερωτημάτων πάνω σε πολύπλοκους ορισμούς όψεων Αν οι πίνακες βάσης είναι σε απομακρυσμένες ΒΔ; Προ-ϋπολογισμός της όψης, αποθήκευση του αποτελέσματος Πολύ γρηγορότερη αποτίμηση των ερωτημάτων Οπως οι κανονικές σχέσεις, δυνατότητα ευρετηρίων Μειονέκτημα: διατήρηση συνέπειας όταν αλλάζουν οι πίνακες βάσης
36
Βάσεις Δεδομένων και Παγκόσμιος Ιστός36 Αυξηντική συντήρηση όψεων Απλές λύσεις: επανα-υπολογισμός όψης όταν αλλάζει κάποιος από τους πίνακες, περιοδικός επανα-υπολογισμος Incremental maintenance: κόστος ανάλογο με την αλλαγή Projection: κάθε σειρά στην όψη διατηρεί έναν μετρητή Εισαγωγή Ri: π(Ri), ενημέρωση όψης και μετρητών Διαγραφή Rd: π(Rd), ενημέρωση μετρητών και όψης (Ενημέρωση: διαγραφή + εισαγωγή) Join: R |><| S Εισαγωγή Ri: Ri |><| S, ενημέρωση όψης και μετρητών Διαγραφή Rd: Rd |><| S, ενημέρωση μετρητών και όψης
37
Βάσεις Δεδομένων και Παγκόσμιος Ιστός37 Δεν δουλεύει πάντα Πρόβλημα αν οι πίνακες βάσης είναι σε διαφορετικό site! view(supplier, cost) :- r1(supplier, prod), r2(prod, cost) Διαδικασία: Η όψη ειδοποιείται όταν ενημερώνονται οι πίνακες βάσης. (πχ., όταν προστίθεται μια εγγραφή στο r2) Η όψη ισως χρειάζεται επιπλέον πληροφορία για να προχωρήσει με την ενημέρωση (πχ., τι περιέχει το r1) Οι πίνακες βάσης δινουν την επιπλέον πληροφορία και η όψη μπορεί να ανανεωθεί. Τι γίνεται αν οι πίνακες βάσεις αλλάξουν μεταξύ του βήματος 1 και 3;
38
Βάσεις Δεδομένων και Παγκόσμιος Ιστός38 Το πρόβλημα view(supplier, cost) :- r1(supplier, prod), r2(prod, cost) Αρχικά εχουμε r1(1,2), r2 κενό insert r2(2,3) στην βάση. Ειδοποίηση όψης Η όψη ρωτάει ?r1(supplier,2) Ψάχνει το supplier για να το εισάγει στην όψη insert r1(4,2) στην βάση; Ειδοποίηση όψης Η όψη ρωτάει ?r2(2,cost) Για να δει αν χρειαζεται αυξηση μετρητη για το view(4, cost) Η βάση απαντάει στο πρώτο ερώτημα supplier=1, supplier=4. Αυξάνονται δυο μετρητές στην όψη Η βάση απαντάει στο δεύτερο ερώτημα, και ο μετρητής του 4 αυξάνεται την όψη Αυτό είναι λάθος! Ο μετρητής για το view(4,3) πρέπει να είναι 1.
39
Βάσεις Δεδομένων και Παγκόσμιος Ιστός39 Όψεις & Ιστός Ο ιστός σαν μια βάση δεδομένων Προβλήματα που θυμίζουν την περίπτωση των όψεων Δυο γενικές προσεγγίσεις για ανάκτηση πληροφορίας Δυναμική προσέγγιση Τα ερωτήματα εκτελούνται κατευθείαν πάνω στις πηγές Πρόβλημα χρόνου απόκρισης, δυσκολης ή ανύπαρκτης σύνδεσης Προσέγγιση υλοποιημένης όψης Τα ερωτήματα εκτελούνται πάνω σε μια υλοποιημένη όψη Πρόβλημα συνέπειας με τις πηγές καθώς αυτές αλλάζουν
40
Σύνοψη των ΣΔΒΔ Σχεσιακές βάσεις δεδομένων Όψεις Αντικειμενοστρεφείς βάσεις δεδομένων
41
Βάσεις Δεδομένων και Παγκόσμιος Ιστός41 Γιατί αντικειμενοστρεφείς βάσεις; Ανάγκη εφαρμογών (C++, Smalltalk, …) για διαρκή αποθήκευση (persistent objects) Impendance mismatch Object-oriented (O-O) συστήματα Ανάγκη υποστήριξης σύνθετων τύπων δεδομένων BLOBs στα σχεσιακά συστήματα Object-relational (O-R) συστήματα Εφαρμογές: CAD εφαρμογές, multimedia βάσεις,... Αντικειμενοστρεφή μοντέλα δεδομένων (ODMG) και γλώσσες ερωτημάτων (OQL) επηρέασαν μοντέλα και γλώσσες για τον Ιστό
42
Βάσεις Δεδομένων και Παγκόσμιος Ιστός42 Αντικείμενο «Μια δομή που προσπαθεί να μοντελοποίησει και να προσεγγίσει κατα το δυνατόν μια ξεχωριστή οντότητα στον φυσικό κόσμο» Ενσωματώνει δεδομένα και συμπεριφορά Τα αντικείμενα επικοινωνούν με μηνύματα Τα μηνύματα υλοποιούνται απο μεθόδους Ενα αντικείμενο επικοινωνει με το περιβάλλον του μονον μέσω του interface του Καθε αντικείμενο έχει ένα μοναδικό αναγνωριστικό ID Ομοειδή αντικείμενα ανήκουν στην ίδια κλάση
43
Βάσεις Δεδομένων και Παγκόσμιος Ιστός43 Βασικές έννοιες Ενθυλάκωση (encapsulation) Object = interface part + implementation part Implementation part = data part + procedural part Αποκρύπτει τον τρόπο υλοποίησης των μεθόδων Απεξαρτά την διαχείριση του αντικειμένου από την δομή του Κληρονομικότητα Εξειδικευμένα χαρακτηριστικά, χωρίς να χαθούν οι γενικότερες ιδιότητες Υπέρβαση (overriding), late binding, πολυμορφισμός.
44
Βάσεις Δεδομένων και Παγκόσμιος Ιστός44 ODMG Μοντέλο αντίστοιχο του σχεσιακού, αλλά για αντικειμενοστρεφείς βάσεις Βάση = συλλογή αντικειμένων Ιδιότητες κλάσης: γνωρίσματα, μέθοδοι, συσχετίσεις Τύπος γνωρισμάτων: ατομικοί + set, bag, list, array, struct Μέθοδοι: υλοποιούν συμπεριφορά αντικειμένου Συσχετίσεις: συνδέσεις μεταξύ κλάσεων (traversal paths) Αναφορά σε ένα αντικείμενο Συλλογή τέτοιων αναφορών Αμφίδρομες συσχετίσεις (inverse δείκτες)
45
Βάσεις Δεδομένων και Παγκόσμιος Ιστός45 ODL Μια γλώσσα ορισμού αντικειμένων για το ODMG interface Movie (extent Movies key movieName) { attribute string movieName; attribute Set actors; relationship Set shownAt inverse Theater::nowShowing; } interface Theater (extent Theaters key theaterName) { attribute string theaterName; attribute string address; attribute integer ticketPrice; relationship Set nowShowing inverse Movie::shownAt; float numshowing() raises(errCountMovies); } interface SpecialShow extends Movie (extent SpecialShows) { attribute integer maxAttendees; attribute string benefitCharity; }
46
Βάσεις Δεδομένων και Παγκόσμιος Ιστός46 OQL Γλώσσα ερωτημάτων για το ODMG Σχεδιάστηκε για να μοιάζει στην SQL Εκφράσεις μονοπατιού (path expressions) Παράδειγμα OQL Βρες ζευγάρια ώστε η ταινία παίζεται σε σινεμά που δείχνει περισσότερες από μια ταινίες SELECT mname: M.movieName, tname: T.theaterName FROM Movies M, M.shownAt T WHERE T.numshowing() > 1
47
Βάσεις Δεδομένων και Παγκόσμιος Ιστός47 Σύγκριση: R, O-O, O-R Σχεσιακό (R) Δεν υποστηρίζει επεκτεταμένους τύπους δεδομένων Λιγότερο ευέλικτο Απλό, ευκολότερο στην βελτιστοποίηση ερωτημάτων Ευκολότερο στην χρήση (λιγότερα features) O-O vs. O-R Ο-Ο προσθέτει λειτουργίες ΒΔ σε μια προγραμματιστική γλώσσα Ο-R προσθέτει εκφραστικότερους τύπους στο σχεσιακό DBMS Ο-Ο: ανάκτηση λίγων και μεγάλων αντικειμένων, εργασία για μεγάλο διάστημα Ο-R: πολλά αντικείμενα, γρήγορα transactions, βελτιστοποίηση πρόσβασης στον δίσκο
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.