Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

The Database Language GEM Καλαθάς Μάριος. Περιγραφή Η γλώσσα GEM (General Entity Manipulator) είναι μια γενικού σκοπού γλώσσα για το μοντέλο δεδομένων.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "The Database Language GEM Καλαθάς Μάριος. Περιγραφή Η γλώσσα GEM (General Entity Manipulator) είναι μια γενικού σκοπού γλώσσα για το μοντέλο δεδομένων."— Μεταγράφημα παρουσίασης:

1 The Database Language GEM Καλαθάς Μάριος

2 Περιγραφή Η γλώσσα GEM (General Entity Manipulator) είναι μια γενικού σκοπού γλώσσα για το μοντέλο δεδομένων DSIS, το οποίο είναι ένα σημασιολογικό μοντέλο δεδομένων του τύπου Οντοτήτων – Συσχετίσεων. Η GEM σχεδιάστηκε ως μια εύκολη στη χρήση επέκταση της σχεσιακής γλώσσας QUEL.

3 Στόχοι Επέκταση του σχεσιακού μοντέλου σε ένα πλουσιότερο σημασιολογικό μοντέλο που αναπαριστά καλύτερα τον πραγματικό κόσμο Επέκταση της QUEL, ώστε να υποστηρίζει το καινούριο μοντέλο Απλότητα Ευκολία στη χρήση

4 Επισκόπηση της QUEL (1) Τύποι δεδομένων:  I1, I2, I4: ακέραιοι αριθμοί 1, 2, 4 bytes  F4, F8: πραγματικοί αριθμοί 4, 8 bytes  Cn, CHAR(n): συμβολοσειρές n χαρακτήρων  TEXT(n), VARCHAR(n): συμβολοσειρές μέχρι n χαρακτήρων  DATE  MONEY

5 Επισκόπηση της QUEL (2) create DEPARTMENT (DName = TEXT(15), DNumber = I4, MgrSSN = C9, MgrStartDate = DATE); index on DEPARTMENT is DNo_Index (DNumber); modify DNo_Index to BTREE unique on DNumber; destroy DNo_Index;

6 Επισκόπηση της QUEL (3) retrieve (EMPLOYEE.BDate, EMPLOYEE.Address) where EMPLOYEE.Fname = ‘John’ and EMPLOYEE.LName = ‘Smith’ range of E is EMPLOYEE, D is DEPARTMENT retrieve (E.FName, E.LName, E.Address) where D.DName = ‘Research’ and D.Dnumber = E.DNo

7 Επισκόπηση της QUEL (4) append to DEPARTMENT (DName = ‘Research’, DNumber = 5, MgrSSn = ‘123456789’, MgrStartDate = ‘30-DEC-52’) delete EMPLOYEE where EMPLOYEE.LName = ‘Brown’ replace PROJECT (PLocation = ‘Athens’, DNum = 5) where PROJECT.PNumber = 10

8 GEM Σχήμα - Παράδειγμα ITEM (Name: c, Type: c, Colors: {c}) key(Name); DEPT (Dname: c, Floor: i2) key(Dname); SUPPLIER (Company: c, Address: c) key(Company); SALES (Dept: DEPT, Item: ITEM, Vol: i2) key(Dept, Item); SUPPLY (Comp: SUPPLIER, Dept: DEPT, Item: ITEM, Vol: i2); EMP (Name: c, Spv: EXMPT null allowed, Dept: DEPT, [EXMPT (Sal: i4), NEXMPT (Hrlwg: i4, Ovrt: i4)], [EMARRIED (Spouse#: i4),others]) key(Name),key(Spouse#);

9 Μοντέλο Δεδομένων Ένα GEM σχήμα αποτελείται από ένα σύνολο οντοτήτων. Κάθε ιδιότητα μιας οντότητας μπορεί να έχει μια μοναδική τιμή ή ένα σύνολο τιμών, ή μπορεί να είναι reference (link) attribute ή υπολίστα γενίκευσης. Επιτρέπονται τιμές null (και στις reference attributes). Οι υπολίστες γενίκευσης προσφέρουν δύο ή περισσότερες εναλλακτικές επιλογές πρόσθετων ιδιοτήτων για την οντότητα στην οποία ανήκουν, ορίζοντας έτσι υποοντότητες της αρχικής οντότητας. Κάθε υποοντότητα μπορεί να έχει τις δικές της υπολίστες γενίκευσης. Έτσι σχηματίζεται μια ιεραρχία από οντότητες που ονομάζεται οικογένεια οντοτήτων.

10 GEM’s Data Definition Language 1. : { ;} 2. : ( {, } ) { Key } 3. : | | | 4. : [ ] 5. : ':'

11 GEM’s Data Definition Language 6. : null':' | null':' system 7. : ':' [null allowed] 8. : ':' '{' '}' 9. : '[' {, }, ']‘ | '[' {, }, others ']'

12 Γραφική Αναπαράσταση

13 Η γλώσσα GEM Όταν το σχήμα είναι αυστηρά σχεσιακό (οι οντότητες έχουν μόνο ιδιότητες που παίρνουν μοναδικές τιμές) η GEM είναι ταυτόσημη με την QUEL. Παράδειγμα: range of dep is DEPT retrieve (dep.Dname) where dep.Floor = 3 ή ισοδύναμα retrieve (DEPT.Dname) where DEPT.Floor = 3

14 Reference Attributes (1) Μια reference attribute έχει σαν τιμή μια οντότητα. Συντακτικά λάθος ερωτήσεις: 1) range of S is SALES retrieve (S.Dept) 2) retrieve (SALES.Item) Συντακτικά σωστή ερώτηση: retrieve (SALES.Dept.Floor) where SALES.Item.Name = "SPORT“ Στην QUEL θα χρειάζονταν 3 μεταβλητές και 2 join conditions.

15 Reference Attributes (2) Ο συμβολισμός με την τελεία παραπέμπει στον αντίστοιχο συμβολισμό των συναρτησιακών γλωσσών ερωτήσεων. Και σε αυτές τις γλώσσες η χρήση της τελείας απαλλάσσει τους χρήστες από τη ρητή χρήση joins. Τα joins που υπονοούνται με τη χρήση της τελείας στη GEM ονομάζονται functional joins. Explicit entity joins με χρήση του τελεστή is: range of S is SALES range of I is ITEM range of D is DEPT retrieve (D.Floor) where D is S.Dept and S.Item is I and I.Type = "SPORT" Οι τελεστές =, !=, >, >=, <, <= δεν εφαρμόζονται σε οντότητες.

16 Γενίκευση (1) Οι ιδιότητες μιας οντότητας είναι ιδιότητες και όλων των υποοντοτήτων της: retrieve (EMARRIED.Name, EMARRIED.Sal) ή retrieve (EMP.Name, EMP.Sal) where EMP is EMARRIED Το πεδίο Sal έχει τιμή null για τους non-exempt εργαζόμενους. Διαφορετική ερώτηση: retrieve (EXMPT.Name, EXMPT.Sal) where EXMPT is EMARRIED

17 Γενίκευση (2) Όταν t είναι μια μεταβλητή με τύπο μια οντότητα, τότε η έκφραση t.all προσδιορίζει όλες τις ιδιότητες της οντότητας και των υποοντοτήτων της που έχουν μια μοναδική τιμή ή ένα σύνολο τιμών. retrieve (EMP.all) Επιστρέφει τις ιδιότητες Name, Sal, Hrlwg, Ovrt και Spouse# (κάποιες έχουν τιμή null). retrieve (EXMPT.all) Επιστρέφει μόνο τον μισθό των exempt εργαζόμενων.

18 Τιμές null (1) Λογική 3 τιμών (TRUE, FALSE, null). Η έκφραση ITEM.Type = "SPORT" αποτιμάται σε null για μια οντότητα ITEM που η ιδιότητα Type είναι null. Πίνακες λογικής 3 τιμών:

19 Τιμές null (2) Μπορούμε να χρησιμοποιήσουμε εκφράσεις της μορφής "t.A is null" ή "t.B isnot null": range of dep is DEPT retrieve (dep.Name) where dep.Floor is null Τα υπονοούμενα functional joins είναι ισοδύναμα με τα ρητά εκφρασμένα joins όταν οι τιμές των reference attributes δεν είναι null.

20 Σύνολα range of I is ITEM retrieve (I.Name, I.Type, Tot = count(I.Colors)) Τελεστές για πράξεις συνόλων: in, =, !=, >, >=, <, <= range of I1 is ITEM range of I2 is ITEM retrieve (I1.all) where I1.Type = I2.Type and I1.Colors < I2.Colors retrieve (SUPPLY.Item.Name) where {SUPPLY.Dept by SUPPLY.Item} >= {DEPT}

21 Updates (1) append to DEPT (Dname = "SHOES", Floor = 2) append to ITEM (Name = "soap-dish", Type = "Bath", Colors = {brass, bronze}) append to ITEM (Name = "towel-bar", Type = ITEM.Type, Colors = ITEM.Colors) where ITEM.Name = "soap-dish“ append to EMP (Name = "T.Green“, Spv = EXMPT, Dept = DEPT, Hrlwg = 5.40, Ovrt = 2.2) where EXMPT.Name = "J.Black" and DEPT.Dname = "SHOE"

22 Updates (2) replace EMP (Spv = null, Sal = 12000) where EMP.Name = "T.Green“ replace EMARRIED with EMP where EMP.Name = "T.Green“ delete EXMPT where EXMPT.Name = "T.Green“ delete EMP.Spv where EMP.Name = "T.Green"

23 Inclusion of New Types in Relational Data Base Systems

24 Αναγκαιότητα νέων τύπων Οι συνηθισμένοι τύποι δεδομένων (ακέραιοι, πραγματικοί, συμβολοσειρές) και τελεστές (+, -, *, /, παράθεση κτλ.) καλύπτουν τις ανάγκες εμπορικών εφαρμογών επεξεργασίας δεδομένων. Σε εξειδικευμένες εφαρμογές χρειάζονται πρόσθετοι τύποι και τελεστές (π.χ. σημεία, γραμμές, πολύγωνα και ένωση, τομή, απόσταση αντίστοιχα σε γεωγραφικές εφαρμογές, μιγαδικοί αριθμοί σε επιστημονικές εφαρμογές). Σε κάποιες περιπτώσεις οι υπάρχοντες τύποι δεν δουλεύουν όπως θέλουμε. Προκύπτει η ανάγκη τροποποίησης της συμπεριφοράς τους, π.χ. εισάγοντας νέους τελεστές.

25 Επεκταμένο Σύστημα Τύπων Ένα πλήρες επεκταμένο σύστημα τύπων πρέπει να επιτρέπει: 1. τον ορισμό νέων τύπων δεδομένων από τους χρήστες 2. τον ορισμό νέων τελεστών για αυτούς τους τύπους 3. την υλοποίηση νέων μεθόδων πρόσβασης για τους νέους τύπους δεδομένων 4. βελτιωμένη επεξεργασία ερωτήσεων για εντολές που περιέχουν τους νέους τύπους δεδομένων και τελεστές

26 Αφαιρετικοί Τύποι Δεδομένων (1) Έστω μια σχέση που περιγράφει ένα διδιάστατο κουτί: create box (id = i4, x1 = f8, x2 = f8, y1 = f8, y2 = f8) Ποια κουτιά επικαλύπτονται με το μοναδιαίο κουτί (με συντεταγμένες (0, 1, 0, 1)); retrieve (box.all) where not (box.x2 = 1 or box.y2 = 1) Μειονεκτήματα: - Η εντολή είναι δυσνόητη. - Η εντολή εκτελείται αργά, επειδή έχει πολλές εκφράσεις να ελέγξει και επειδή ο query planner δεν μπορεί να βελτιστοποιήσει κάτι τόσο πολύπλοκο.

27 Αφαιρετικοί Τύποι Δεδομένων (2) Υποστήριξη ενός τύπου δεδομένων box: create box (id = i4, desc = box) Υποστήριξη ενός τελεστή επικάλυψης "!!": retrieve (box.all) where box.desc !! "0, 1, 0, 1" Εύρεση όλων των επικαλυπτόμενων κουτιών: range of b1 is box range of b2 is box retrieve (b1.all, b2.all) where b1.desc !! b2.desc

28 Ορισμός νέων τύπων Ορισμός: define type-name length = value, input = file-name, output = file-name Παράδειγμα: define box length = 8, input = /usr/inpbox output = /usr/outbox Στα αρχεία υπάρχουν ρουτίνες μετατροπής από συμβολοσειρά σέ αντικείμενο του νέου τύπου και αντίστροφα. Ο νέος τύπος πρέπει να καταλαμβάνει σταθερό χώρο.

29 Ορισμός νέων τελεστών Ορισμός: define operator token = value, left-operand = type-name, right-operand = type-name, result = type-name, precedence-level like operator-2, file = file-name Παράδειγμα: define operator token = !!, left-operand = box, right-opernad = box, result = boolean, precedence-level like *, file = /usr/foobar

30 Νέες μέθοδοι πρόσβασης (1) Μια κατάλληλα υλοποιημένη μέθοδος πρόσβασης περιέχει λίγες διαδικασίες που ορίζουν τα χαρακτηριστικά της. Αντικαθιστώντας τις διαδικασίες με άλλες που λειτουργούν με διαφορετικούς τύπους δεδομένων, επιτρέπουμε στην μέθοδο πρόσβασης να "δουλεύει" για τους νέους τύπους. Έστω ένα Β-δένδρο και η γενικευμένη ερώτηση: retrieve (target-list) where relation.key OPR value Το Β-δένδρο υποστηρίζει γρήγορη πρόσβαση αν ο τελεστής OPR ανήκει στο σύνολο {=, =, >}

31 Νέες μέθοδοι πρόσβασης (2) Το παραπάνω σύνολο τελεστών έχει τις εξής ιδιότητες: P1) key-1 < key-2 and key-2 < key-3 then key-1 < key-3 P2) key-1 < key-2 implies not key-2 < key-1 P3) key-1 < key-2 or key-2 < key-1 or key-1 = key-2 P4) key-1 <= key-2 if key-1 < key-2 or key-1 = key-2 P5) key-1 = key-2 implies key-2 = key-1 P6) key-1 > key-2 if key-2 < key-1 P7) key-1 >= key-2 if key-2 <= key-1 Θεωρητικά οι διαδικασίες που υλοποιούν τους παραπάνω τελεστές μπορούν να αντικατασταθούν από άλλες διαδικασίες για νέους τελεστές που έχουν αυτές τις ιδιότητες και το Β- δένδρο θα εξακολουθήσει να "δουλεύει" σωστά.

32 Registration νέας μεθόδου (1) Templates μεθόδων πρόσβασης: Το πρώτο template υπάρχει μόνο για να παρέχει βοήθεια σε όποιον θέλει να χρησιμοποιήσει την μέθοδο πρόσβασης. Το δεύτερο template περιέχει απαραίτητες πληροφορίες για τους τελεστές και χρησιμοποιείται εσωτερικά στο σύστημα.

33 Registration νέας μεθόδου (2) Ο σχεδιαστής της νέας μεθόδου πρόσβασης μπορεί να προτείνει ένα ή περισσότερα σύνολα τελεστών που ικανοποιούν το template σε μια άλλη σχέση AM: F1 = (value – low-key) / (high-key – low-key) F2 = (high-key – value) / (high-key – low-key)

34 Registration νέας μεθόδου (3) Μεταβλητές για τον υπολογισμό των Ntups και Npages:

35 Υλοποίηση μεθόδου πρόσβασης (1) Μια μέθοδος πρόσβασης είναι μια συλλογή από διαδικασίες που ανασύρουν και ενημερώνουν εγγραφές. Ένα γενικευμένο interface για μια μέθοδο πρόσβασης αποτελείται από τια ακόλουθες κλήσεις: open (relation-name) : επιστρέφει ένα δείκτη σε ένα "relation control block", που ονομάζεται descriptor και περιέχει πληροφορίες για τη σχέση. close (descriptor) : τερματίζει την πρόσβαση στη σχέση get-first (descriptor, OPR, value) : επιστρέφει την πρώτη εγγραφή που ικανοποιεί το qualification … where key OPR value get-next (descriptor, OPR, value, tuple-id) : επιστρέφει την επόμενη εγγραφή μετά την tuple-id που ικανοποιεί το qualification

36 Υλοποίηση μεθόδου πρόσβασης (2) get-unique (descriptor, tuple-id) : επιστρέφει την εγγραφή που αντιστοιχεί στο tuple-id insert (descriptor, tuple) : εισάγει μια εγγραφή στη σχέση delete (descriptor, tuple-id) : διαγράφει μια εγγραφή από τη σχέση replace (descriptor, tuple-id, new-tuple) : αντικαθιστά μια εγγραφή με μια καινούρια build (descriptor, keyname, OPR) : δημιουργεί μια καινούρια μέθοδο πρόσβασης σε μια σχέση για ένα κλειδί keyname, χρησιμοποιώντας τον τελεστή OPR

37 Βελτιστοποίηση Επεξεργασίας Ερωτήσεων (1) Για να γίνει βελτιστοποίηση ενός query plan που περιέχει νέους τύπους και τελεστές, απαιτούνται 4 επιπλέον πληροφορίες όταν ένας νέος τελεστής ορίζεται: 1) Ένας selectivity factor Stups, που είναι ο αναμενόμενος αριθμός εγγραφών που ικανοποιούν την πρόταση …where rel-name.field-name OPR value 2) Ένας δεύτερος selectivity factor S, που είναι ο αναμενόμενος αριθμός εγγραφών που ικανοποιούν την πρόταση …where relname-1.field-1 OPR relname-2.field-2 3) Αν το merge-sort είναι δυνατό για τον τελεστή που ορίζεται (συγκεκριμένα αν οι σχέσεις που συνδέονται με τον εν λόγω τελεστή μπορούν να ταξινομηθούν με έναν άλλο τελεστή και έπειτα να συγχωνευτούν ώστε να δώσουν τη σωστή απάντηση).

38 Βελτιστοποίηση Επεξεργασίας Ερωτήσεων (2) 4) Αν το hash-join είναι μια δυνατή στρατηγική σύνδεσης για τον τελεστή αυτό. Παράδειγμα: define operator token = AE, left-operand = box, right-operand = box, result = boolean, precedence like *, file = /usr/foobar, Stups = 1, S = min (N1, N2), merge-sort with AL, hash-join

39 Βελτιστοποίηση Επεξεργασίας Ερωτήσεων (3) Με βάση τις παραπάνω πληροφορίες ο query planner χρησιμοποιεί κάποιους κανόνες για να δημιουργήσει νόμιμα query plans, να υπολογίσει το κόστος τους και να διαλέξει το καλύτερο. Παράδειγμα κανόνα: Το merge-sort είναι δυνατό για μια πρόταση της μορφής relname-1.field-1 OPR relname-2.field-2 αν το field-1 και το field-2 είναι του ίδιου τύπου και ο τελεστής έχει την ιδιότητα merge-sort. Το αναμενόμενο κόστος είναι S.

40 Πηγές 1. "The Database Language GEM.", Carlo Zaniolo, SIGMOD Conference 1983: 207-218 2. "Inclusion of New Types in Relational Data Base Systems.", Michael Stonebraker, ICDE 1986: 262-269


Κατέβασμα ppt "The Database Language GEM Καλαθάς Μάριος. Περιγραφή Η γλώσσα GEM (General Entity Manipulator) είναι μια γενικού σκοπού γλώσσα για το μοντέλο δεδομένων."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google