1 Ανικειμενοστραφής & Αντικειμενο-Σχεσιακές Βάσεις Δεδομένων.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τεχνολογίες Web Απαραίτητες γνώσεις για την υλοποίηση της άσκησης.
Advertisements

ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Βασικές Συναρτήσεις Πινάκων
Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
Βάσεις Δεδομένων II Περίληψη: Αντικειμενοστρεφείς Βάσεις Δεδομένων Πάνος Βασιλειάδης Νοέμβρης 2002
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Εισαγωγή στην SQL ΕΣΔ232 – Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας.
Εισαγωγή στους Η/Υ Πίνακες.
Βάσεις Δεδομένων 1 T.Manavis– N.Kyritsis.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Ασφάλεια και Δικαιοδοσία σε Βάσεις Δεδομένων.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Δρ. Παναγιώτης Συμεωνίδης
Αντικειμενοστραφή ΣΔΒΔ
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Ανικειμενοστραφής & Αντικειμενο-Σχεσιακές Βάσεις Δεδομένων.
Ορισμοί Σχεσιακού Μοντέλου και (απλές)Τροποποιήσεις Σχέσεων στην SQL
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
Νευρωνικά Δίκτυα Εργαστήριο Εικόνας, Βίντεο και Πολυμέσων
Θέματα Βάσεων Δεδομένων Αποθήκευση XML δεδομένων σε Σχεσιακή Βάση Δεδομένων Θέματα Βάσεων Δεδομένων Αποθήκευση XML δεδομένων σε Σχεσιακή Βάση Δεδομένων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
Entity-Relationship Παραδείγματα Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Φροντιστήριο 1 Δαμιανός Χατζηαντωνίου.
Αρχιτεκτονική Συστημάτων
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων.
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
1919 Αντικειμενο-σχεσιακά ΣΔΒΔ  Εμφωλιασμένες Σχέσεις  Το Πρότυπο SQL:1999 (SQL3)  Σύγκριση Συστημάτων.
1 Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Επεξεργασία και βελτιστοποίηση ερωτήσεων Πάνος Βασιλειάδης Σεπτέμβρης.
Προχωρημένα Θέματα Τεχνολογίας και Εφαρμογών Βάσεων Δεδομένων Επεξεργασία και βελτιστοποίηση ερωτήσεων Πάνος Βασιλειάδης Σεπτέμβρης 2005.
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
9 Η Γλώσσα SQL Ορισμός Δεδομένων (data definition)
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Ουρά Προτεραιότητας: Heap
Τα προϊόντα της EmGoldEx Τα προϊόντα της EmGoldEx Ράβδοι χρυσού 24k καθαρότητας 999,9 απο 1 έως 100 γραμμάρια Όλες οι ράβδοι χρυσού είναι πιστοποιημένες.
HY340 : ΓΛΩΣΣΕΣ ΚΑΙ ΜΕΤΑΦΡΑΣΤΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΩΝ Αντώνιος Σαββίδης.
1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Πίνακας Συμβόλων Symbol Table.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεδιασμός Σχεσιακών Σχημάτων.
Βάσεις Δεδομένων Εργαστήριο ΙΙI Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL.
MΑΘ 106/3122Ξενοφών Ζαμπούλης ΜΑΘ 106/3122 Γλώσσα Προγραμματισμού Δείκτες (Pointers)
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
3 Αρχιτεκτονική Συστημάτων  Κατηγορίες χρηστών ΣΔΒΔ  Αρχιτεκτονική ANSI/SPARC  Γλώσσες ερωτημάτων  Μοντέλα δεδομένων  Λειτουργίες ΣΔΒΔ.
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Αντικειμενοστραφής Προγραμματισμός & JAVA
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Σχεσιακή Άλγεβρα.
9 Η Γλώσσα SQL  Εισαγωγή – Βασικές Έννοιες  Τύποι Δεδομένων  Ορισμός Δεδομένων (data definition)  Χειρισμός Δεδομένων (data manipulation)
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Σχεσιακή Άλγεβρα.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων Αρχιτεκτονική.
Βάσεις Δεδομένων Κεφ. 1 Πλεονεκτήματα Β.Δ. έναντι αρχείων Βασικές λειτουργίες Β.Δ. Εφαρμογές Β.Δ. στην καθημερινή ζωή.
Βάσεις Δεδομένων Ι 4η διάλεξη
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Αρχιτεκτονική Συστημάτων
Θερινό Σχολείο, 14 – 20 Ιουλίου 2014
Κλάσεις και αντικείμενα
Αρχιτεκτονική Συστημάτων
DREMEL: Interactive Analysis of Web-Scale Datasets
Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Εισαγωγή στον Προγραμματισμό με Python, ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Εισαγωγή στον Προγραμματισμό με Python Εβδομάδα 1: Βασικά στοιχεία.
Αρχιτεκτονική Συστημάτων
Αντικειμενο-σχεσιακά ΣΔΒΔ
Σχεσιακεσ βασεισ δεδομενων
Ερωτήματα Επιλογής σε ACCESS
Μεταγράφημα παρουσίασης:

1 Ανικειμενοστραφής & Αντικειμενο-Σχεσιακές Βάσεις Δεδομένων

2 Εισαγωγή Σχεσιακό Μοντέλο (δεκαετία του 70): απλό κατάλληλο για διαχειριστικά δεδομένα όχι το ίδιο καλό για άλλα είδη δεδομένων (π.χ., πολυμέσα, δίκτυα, CAD) Αντικειμενοστραφή Μοντέλα (δεκαετία του 80): περίπλοκα αλλά μερικές σημαντικές ιδέες πολύπλοκοι τύποι δεδομένων ταυτότητα αντικειμένου (object identity)/ αναφορές (references) ADTs (encapsulation, behavior goes with data) κληρονομικότητα (inheritance)

3 Εισαγωγή Ιδέα: Κατασκευή Συστημάτων Διαχείρισης Βάσεων Δεδομένων βασισμένα στο αντικειμενοστραφές μοντέλο Δύο τάσεις: αντικειμενο-σχεσιακά μοντέλα (επέκταση σχεσιακού μοντέλου) αντικειμενο-στραφή μοντέλα (επέκταση αντικειμενο- στραφών γλωσσών προγραμματισμού)

4 Ένα Παράδειγμα Dinkey Entertainment Corp. προϊόντα: cartoon videos, stills, sounds Οι ταινίες του Herbert προβάλλονται διεθνώς Η Dinkey δίνει άδεια για τα videos, stills, sounds του Herbert για διάφορους σκοπούς action figures video games product endorsements Herbert the Worm

5 Ένα Παράδειγμα Μια βάση δεδομένων που θα διαχειρίζεται τα προϊόντα της εταιρίας καθώς και τις εργασίες της

6 Παράδειγμα: Γιατί όχι ένα Σχεσιακό ΣΔΒΔ Δυαδικά Μεγάλα Αντικείμενα (Binary Large Objects BLOBs) μπορούν να αποθηκευτούν και να προσπελαστούν Κώδικας χρήστη για την επεξεργασία των BLOBs create table frames (frameno integer, image BLOB, category integer)

7 Παράδειγμα: Γιατί όχι ένα Σχεσιακό ΣΔΒΔ Απόδοση Παράδειγμα: ο πελάτης (Μηχανή A) ζητά μικρές εικόνες (“thumbnail”) για όλα τα frames στο ΣΔΒΔ (Μηχανή B) Μη αποδοτικό, η διατύπωση ερωτήσεων είναι πολύ δύσκολη create table frames (frameno integer, image BLOB, category integer)

8 Αντικειμενο-Σχεσιακά ΣΔΒΔ Ιδέα: προσθήκη αντικειμενοστραφών χαρακτηριστικών στο σύστημα τύπων της SQL, δηλαδή SQL με προσθήκη: στήλες (γνωρίσματα) ως νέοι τύποι δεδομένων (ADTs) μέθοδοι ορισμένοι από τους χρήστες για τους τύπους δεδομένων οι στήλες μπορεί να ανήκουν σε σύνθετους τύπους τύποι αναφοράς (reference and “deref”)

9 Αντικειμενο-Σχεσιακά ΣΔΒΔ Κληρονομικότητα η παλιά SQL επίσης αποδεκτή Τα σχεσιακά προϊόντα επεκτείνονται προς αυτήν την κατεύθυνση (SQL-99).

10 Αντικειμενο-Σχεσιακά ΣΔΒΔ create table frames (frameno integer, image jpeg, category integer); create table categories (cid integer, name text, lease_price float, comments text); create type theater_t row (tno integer, name text, address text, phone integer) create table theaters theater_t; create table nowshowing (film integer, theater ref(theater_t), start date, end date); create table films (filmno integer, title text, stars setof(text), director text, budget float); create table countries (name text, boundary polygon, population integer, language text) complex types reference types ADTs

11 Αντικειμενο-Σχεσιακά ΣΔΒΔ Χρήση κατασκευαστών τύπων (type constructors) για τη δημιουργία νέων τύπων setof(foo) arrayof(foo) listof(foo) row (n1 t1,..., nk tk) μπορεί να είναι εμφωλευμένοι: setof(arrayof(int)) Σύνθετοι (complex) τύποι

12 Αντικειμενο-Σχεσιακά ΣΔΒΔ Οι built-in τύποι στην SQL (int, float, text, etc.) είναι περιορισμένοι αλλά έχουν επίσης απλές μεθόδους (math, LIKE, etc.) Αντικειμενο-σχεσιακά ΣΔΒΔ: επιτρέπουν τον ορισμό νέων τύπων και μεθόδων create type jpeg (internallength = variable, input = jpeg_in, output = jpeg_out); ADTs: Τύποι ορισμένοι από τους χρήστες

13 Αντικειμενο-Σχεσιακά ΣΔΒΔ Δεν αποτελούνται από built-in τύπους (όπως οι σύνθετοι τύποι) νέοι απλοί (atomic ) τύποι Χρειάζονται βασικές μεθόδους εισόδου & εξόδου μετατροπή text στην εσωτερική αναπαράσταση και το ανάποδο θα δούμε πως ορίζονται σε λίγο ADTs: Τύποι ορισμένοι από τους χρήστες

14 Αντικειμενο-Σχεσιακά ΣΔΒΔ Στα περισσότερα αντικειμενο-σχεσιακά ΣΔΒΔ κάθε αντικείμενο έχει ένα OID Μπορούμε να “δείχνουμε” σε ένα αντικείμενο -- τύποι αναφοράς (reference types)! ref(theater_t) Reference Types & Deref

15 Αντικειμενο-Σχεσιακά ΣΔΒΔ Υπάρχει διαφορά ανάμεσα στους σύνθετους τύπους και στην αναφορά mytheater row(tno integer, name text, address text, phone integer) theater ref(theater_t) Το αποτέλεσμα τους φαίνεται το ίδιο, αλλά διαφέρουν διαγραφή, ενημέρωση, μοίρασμα διαφορά αντίστοιχη με αυτήν ανάμεσα στο “by value” και “by reference” στις γλώσσες προγραμματισμού Reference Types & Deref

16 Αντικειμενο-Σχεσιακά ΣΔΒΔ create table frames (frameno integer, image jpeg, category integer); -- images from films create table categories (cid integer, name text, lease_price float, comments text); -- pricing create type theater_t tuple(tno integer, name text, address text, phone integer) create table theaters theater_t; -- theaters create table films (filmno integer, title text, stars setof(text), director text, budget float); -- Dinkey films create table nowshowing (film integer, theater ref(theater_t), start date, end date); create table countries (name text, boundary polygon, population integer, language text)

17 SQL-99 Τα δημητριακά Clog θέλουν άδεια να χρησιμοποιήσουν την εικόνα του Herbert μπροστά από ένα ηλιοβασίλεμα: η μέθοδος thumbnail επιστρέφει μια μικρή είκονα η μέθοδος Sunrise επιστρέφει T αν υπάρχει ένα ηλιοβασίλεμα στην εικόνα η μέθοδος Herbert επιστρέφει T αν ο Herbert είναι στην εικόνα select F.frameno, thumbnail(F.image), C.lease_price from frames F, categories C where F.category = C.cid and Sunrise(F.image) and Herbert(F.image);

18 SQL-99 Εύρεση κινηματογράφων που προβάλλουν ταινίες του Herbert films σε απόσταση έως 100 km από την Andorra: το γνώρισμα theater του nowshowing: αναφέρεται σε ένα αντικείμενο σε άλλο πίνακα. Χρήση του -> ως συντομογραφία του deref(theater).name η σύγκριση μεταξύ γνωρισμάτων τύπου set γίνεται μέσω μεθόδων του τύπου set select N.theater->name, N.theater->address, F.name from nowshowing N, frames F, countries C where N.film = F.filmno and Radius(N.theater->location, 100) || C.boundary and C.name = ‘Andorra’ and `Herbert the Worm’ IN F.stars

19 SQL-99 Η συνένωση των N και C είναι περίπλοκη Η Radius επιστρέφει ένα κύκλο ακτίνας με κέντρο το location ο τελεστής || ελέγχει circle,polygon αν τέμνονται select N.theater->name, n.theater->address, F.name from nowshowing N, frames F, countries C where N.film = F.filmno and Radius(N.theater->location, 100) || C.boundary and C.name = ‘Andorra’ and ‘Herbert the Worm’ IN F.stars

20 SQL-99 Built-in πράξεις για σύνθετους τύπους π.χ., τις συνηθισμένες μεθόδους για σύνολα (sets), για πίνακες, κλπ συμβολισμός για τύπο πλειάδας Υποστηρίζει τελεστές για τύπους αναφοράς deref(foo) συντομογραφία για το deref(foo).bar: foo->bar. Υποστηρίζει μεθόδους που ορίζονται από τους χρήστες για ADTs. Η σύνταξη εξαρτάται από το προϊόν

21 Μέθοδοι Ορισμένοι από τους Χρήστες Χρειάζεται να οριστούν μέθοδοι για το χειρσιμό των ADTs π.χ., για τον τύπο jpeg: thumbnail, crop, rotate, smooth, κλπ. Ο χρήστης γράφει αυτές τις μεθόδους σε κάποια γλώσσα, π.χ., C, και τις μεταγλωτίζει register (εγγραφή) μεθόδων στο σύστημα create function thumbnail(jpeg) returns jpeg as external name ‘/a/b/c/Dinkey.o’ Το σύστημα δυναμικά κάνει link τις συναρτήσεις με τον server.

22 Κληρονομικότητα Όπως και στη C++, είναι χρήσιμο να “specialize” τύπους: create type theatercafe_t under theater (menu text); οι μέθοδοι του theater_t ισχύουν επίσης και στους subtypes Ιεραρχίες συλλόγων (“Collection hierarchies”): κληρονομικότητα σε πίνακες create table student_emp under emp (gpa float); οι ερωτήσεις στο emp επιστρέφουν πλειάδες και της σχέσης student_emp (εκτός αν προσδιοριστεί “emp only”)

23 Κληρονομικότητα Επεκτάσεις Τύπων (“Type extents”) όλα τα αντικείμενα ενός συγκεκριμένου τύπου μπορούν να επιλεγούν από μία μόνο όψη (e.g., select * from theater_t)

24 Απαραίτητες τροποποιήσεις Parsing έλεγχος τύπων (type-checking) για τις μεθόδους ιδιαίτερα περίπλοκος Βελτιστοποίηση Ερωτήσεων χρειάζονται νέοι αλγεβρικοί τελεστές για σύνθετους τύπους οι εκφράσεις στο WHERE μπορεί να είναι ιδιαίτερα ακριβές select pushdown ίσως όχι καλή ιδέα

25 Απαραίτητες τροποποιήσεις Εκτέλεση new algebra operators for complex types OID generation & reference handling dynamic linking support “untrusted” methods support objects bigger than 1 page method caching: much like grouping f(x) for each x is like AVG(major) for each major

26 Απαραίτητες τροποποιήσεις Μέθοδοι προσπέλασεις ευρετήρια σε μεθόδους ευρετήρια σε συλλογικές ιεραρχίες (collection hierarchies) need indexes for new WHERE clause exprs (not just, =)! GiST can help here. Τοποθέτηση δεδομένων στο δίσκο clustering of nested objects chunking of arrays