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

Σχετικά έγγραφα
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11

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

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

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples ΙΙ Ξένου Ρουμπίνη

ΗΥ-360 Αρχεία και Βάσεις Δεδομένων Διδάσκων: Δ. Πλεξουσάκης. Φροντιστήριο SQL Examples Ξένου Ρουμπίνη

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 4ο Μάθημα: SQL - Παράδειγμα. Δρ. Κωνσταντίνος Χ.

Τμήμα Διοίκησης Επιχειρήσεων


ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

Βάσεις Δεδομένων ΗγλώσσαSQL (Structured Query Language)

Σχεδίαση και λειτουργία βάσης δεδομένων Το παράδειγμα της μαιευτικής κλινικής Ευάγγελος Καρβούνης

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

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

Βάσεις Δεδομένων Η γλώσσα SQL (Structured Query Language) Εισαγωγή στην SQL (2) Ιστορικά Στοιχεία. SQL - Structured Query Language (1)

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2013

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 3ο Μάθημα: Εισαγωγή στην SQL. Δρ. Κωνσταντίνος Χ.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

Κλειδιά (keys) Λογικά, σκεφτόµαστε για «κλειδιά» σαν τα δεδοµένα (τα πεδία) εκείνα τα οποία µας επιτρέπουν να ξεχωρίσουµε τις διάφορες εγγραφές

Βάσεις δεδομένων. (7 ο μάθημα) Ηρακλής Βαρλάμης

Εξόρυξη Γνώσης από εδοµένα (Data Mining)

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

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

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

Άμεση Αναλυτική Επεξεργασία (OLAP)

Τεχνολογία Πολιτισμικού Λογισμικού

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

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

1. ΑΝΟΙΞΤΕ ΤΟΝ ΠΙΝΑΚΑ CUSTOMER ΚΑΙ ΣΤΟ ΜΕΝΟΥ ΕΠΙΛΕΞΤΕ

GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP.

Βάσεις δεδομένων. (8 ο μάθημα) Ηρακλής Βαρλάμης

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

Οι εντολές CREATE TABLE, ALTER TABLE, CREATE KEY, ALTER KEY.

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

Τμήμα Πληροφορικής ΑΠΘ

Ηλεκτρονικοί Υπολογιστές II

Ανοικτά Ακαδημαϊκά Μαθήματα

Βάσεις Δεδομένων (Databases)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

S Q Q L L -- SQL (Structured Query Language) select insert update delete 2.47

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

(Μέρος 3:Γλώσσα Ορισµού, Γλώσσα Τροποποίησης, Ενσωµατωµένη SQL) Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Βάσεις Δεδομένων Ι [Σημειώσεις Εργαστηρίου]

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 9β: SQL (Διαχείριση εγγραφών, Όψεις, Περιορισμοί, Εναύσματα) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής


Εισαγωγή στις βασικές έννοιες των Βάσεων Δεδομένων

SQL Server 2005 Tutorial Αςκήςεισ. Γεράσιμος Μαρκέτος InfoLab, Τμήμα Ρληροφορικήσ, Ρανεπιςτήμιο Ρειραιϊσ (

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

Βάσεις Δεδομένων Ι SQL Μέρος 3 ο. (Constraints & Joins) Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Βάσεις Δεδομένων (Databases)

ΦΡΟΝΤΙΣΤΗΡΙΟ ΣΤΗ ΓΛΩΣΣΑ SQL

Πανεπιστήµιο Ιωαννίνων Τµήµα Μαθηµατικών Μάθηµα: Βάσεις εδοµένων (741) Εργαστηριακό Τεστ Οµάδα: Α 18/11/2004

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

ΘΕΜΑΤΑ. Θέμα 1 ο Σύμφωνα με τους παραπάνω πίνακες και τη θέση που έχουν τα ξένα κλειδιά βρείτε τους

Βάσεις Δεδομένων. Ενότητα 7.2: Structured Query Language - 2 ο Μέρος. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

Ηλεκτρονικοί Υπολογιστές II

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου

Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL

Δημιουργώντας τον πίνακα διάστασης

Κεφάλαιο 2 Μοντέλο Οντοτήτων Συσχετίσεων

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ (Relational Model) Μαθ. #10

Διαχείριση Πολιτισμικών Δεδομένων

Αποθήκες Δεδομένων. Αρχιτεκτονική, Μοντέλο Δεδομένων και Σχεδίαση

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

Α.Φ.Μ. ΕΠΙΘΕΤΟ ΟΝΟΜΑ ΠΑΤΡΩΝΥΜΟ ΑΡ

Περιεχόμενα. Βάσεις Δεδομένων Προχωρημένα Ερωτήματα SQL. Συνένωση Σχέσεων στην SQL2 (3) Συνένωση Σχέσεων στην SQL2. (Join Relations Feature in SQL)

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Βάσεις Δεδομένων (Databases)

Postgress ΣΤΟΧΟΣ ΣΧΕΤΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ ΥΛΙΚΟ. ΠΕΡΙΒΑΛΛΟΝ ΓΙΑ ΕΞΑΣΚΗΣΗ pgadmin ΥΠΟΒΑΘΡΟ. Συναρτήσεις στην PostgreSQL. 1. Γενικά

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

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές.

Βάσεις Δεδομένων (Ε) Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων


( Boats)) ( Tempsids, bid. sname. Boats. Boats. Boats. (Reserves)/ > Reserves. Interlake' Sailors) ...

Θέματα Τελικής Εξέτασης. ΠΡΟΣΟΧΗ: Οι απαντήσεις πάνω στα ΘΕΜΑΤΑ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 7β: SQL (Πρακτική Εξάσκηση 1) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 3

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

Εργαστήριο Βάσεων Δεδομένων. Triggers

Ηλεκτρονικοί Υπολογιστές II

Το σχεσιακό μοντέλο βάσεων δεδομένων

Βάσεις Δεδομένων. Σχεσιακό Μοντέλο Δεδομένων. Βασίλειος Βεσκούκης Ορισμός Βάσης Δεδομένων Δομή Περιορισμοί

Ανοικτά Ακαδημαϊκά Μαθήματα

ΗΜΙΟΥΡΓΙΑ USER DEFINED DATATYPES ΣΤΗΝ IBM DB2



Βάσεις Δεδομένων (Databases)

Transcript:

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΦΘΙΝΟΠΩΡΟ 2007 Λύση ΑΣΚΗΣΗΣ #3 Τ. Σελλής ΕΡΩΤΗΜΑ 1: ΑΠΟΘΗΚΕΣ Ε ΟΜΕΝΩΝ Έστω το σύστηµα διαχείρισης παραγγελιών εισιτηρίων του γηπέδου Καραϊσκάκη. Το σύστηµα διαχειρίζεται δεδοµένα που έχουν να κάνουν µε την τιµή µίας παραγγελίας εισιτηρίου, την έκπτωση, τον τρόπο πληρωµής, και µε σχόλια σχετικά µε την παραγγελία εισιτηρίου. Επίσης, διαχειρίζεται δεδοµένα σχετικά µε την ηµέρα, το µήνα και το χρόνο της παραγγελίας, µε το όνοµα, τη διεύθυνση, το τηλέφωνο, την κατηγορία του πελάτη και σχόλια για τον πελάτη. Όσον αφορά το παιχνίδι για το οποίο γίνεται η παραγγελία εισιτηρίου, διαχειρίζεται πληροφορίες για τη διοργάνωση στην οποία ανήκει το παιχνίδι, τον αντίπαλο, τη µέρα, το µήνα και τη χρονιά του παιχνιδιού και σχόλια για το παιχνίδι. Τέλος, διαχειρίζεται πληροφορίες σχετικές µε τη θέση στην οποία αντιστοιχεί το εισιτήριο, όπως αριθµός θέσης, σειρά θέσης, θύρα θέσης και κατηγορία θέσης. Όλα τα παραπάνω συνοψίζονται στον ακόλουθο πίνακα:: Ticket_Order(Ticket_order_ID, Customer_Name, Customer_Address, Customer_Phone, Customer_Category, Customer_Comment, Order_Day, Order_Month,, Position_Seat_Category, Position_Seat_Number, Position_Row_Number, Position_Gate_Number, Game_Opponent, Game_Championship, Game_Day, Game_Month, Game_Year, Game_Comment, Ticket_Cost, Discount, Way_of_Payment, Comment). (α) Σχεδιάστε το σχήµα αστέρα (star schema) της παραπάνω αποθήκης δεδοµένων, δείχνοντας τα εξωτερικά κλειδιά στους πίνακες, και εντοπίστε τον πίνακα συµβάντων (fact table), τους πίνακες διάστασης (dimension tables) και τα µέτρα, όπως προκύπτουν από το σχήµα.. (β) Για κάθε διάσταση που προκύπτει από το σχήµα αστέρα, εντοπίστε (σε περίπτωση που υπάρχει) την ιεραρχία των επιπέδων της. Στη συνέχεια, για όσες από τις διαστάσεις δεν εντοπίσατε κάποια ιεραρχία επιπέδων, ορίστε κάποια επιπλέον πεδία στον πίνακά τους, έτσι ώστε να σχηµατίζεται µία ιεραρχία επιπέδων. (γ) Σχεδιάστε το αντίστοιχο σχήµα χιονονιφάδας (snowflake schema) που προκύπτει µετά και την προσθήκη των επιπλέον πεδίων στο ερώτηµα (β). Λύση (α) Από τον τρόπο που ορίζεται το πρόβληµα ο πίνακας συµβάντων για το σχήµα αστέρα της αποθήκης δεδοµένων θα είναι ο πίνακας παραγγελιών εισιτηρίων. Πίνακες διαστάσεων θα είναι ο πίνακας πελάτη, ο πίνακας χρόνου παραγγελίας εισιτηρίου, ο πίνακας θέσης του εισιτηρίου στο γήπεδο και ο πίνακας παιχνιδιού για το οποίο γίνεται η παραγγελία εισιτηρίου. Το σχήµα δίνεται παρακάτω: 1

Order_Time Customer Order_Time_ID Customer_ID Order_Day Customer_Name Order_Month Customer_Address Customer_Phone Customer_Category Ticket_Order Customer_Comment Ticket_order_ID Time_ID Customer_ID Game_ID Position_ID Ticket_Cost Discount Position Way_of_Paymen t Game Position_ID Comment Game_ID Position_Seat_Number Game_Opponent Position_Row_Number Game_Championshi p Position_Gate_Number Game_Day Position_Seat_Categor y Game_Month Game_Year Game_Comment Τα µέτρα προκύπτουν από τον πίνακα συµβάντων και είναι τα: o Ticket_Cost o Discount (β) Οι ιεραρχίες που προκύπτουν για την κάθε διάσταση είναι οι εξής: i) ιάσταση Order_Time: Order_Month Order_Day ii) ιάσταση Position: Position_Gate_Number Position_Row_Number Position_Seat_Number 2

iii) ιάσταση Game: Game_Year Game_Month Game_Day iv) ιάσταση Customer: Για αυτή τη διάσταση δεν εµφανίζεται κάποια ιεραρχία. Αν θελήσουµε να ορίσουµε κάποια νέα πεδία, ώστε να προκύψει ιεραρχία επιπέδων, τότε βλέπουµε ότι το πεδίο Customer_Address είναι κατάλληλο. Έτσι, µπορούµε, για παράδειγµα, να ορίσουµε τα επιπλέον πεδία Customer_City και Customer_Region. Τότε, θα προέκυπτε η ιεραρχία: Customer_Region Customer_City Customer_Address (γ) To σχήµα χιονονιφάδας που προκύπτει δίνεται παρακάτω: Order_Day Game_Day Order_Day_ID Customer_Address_ID Order_Day_Name Customer_Address Order_Time Customer Order_Month Order_Time_ID Customer_ID Order_Month Order_Month_ID Order_Day_ID Customer_Name Customer_City_ID Order_Month_Name Order_Month_ID Customer_Address_ID Customer_City _ID Customer_City_ID Customer_Region_ID _ID Ticket_Order Customer_Phone Customer_ Region _ID _Name Ticket_order_ID Customer_Category Customer_ Region Time_ID Customer_Comment Customer_ID Game_ID Position_ID Position_Seat Ticket_Cost Game_Day Position_Seat_ID Discount Game_Day_ID Position_Seat Position Way_of_Payment Game Game_Day_Name Position_ID Comment Game_ID Position_Row Position_Seat_ID Game_Opponent Order_Month Position_Row_ID Position_Row_ID Game_Championship Game_Month_ID Position_Row Position_Gate_ID Game_Day_ID Game_Month_Name Position_Seat_Category Game_Month_ID Position_Gate Game_Year_ID Position_Gate_ID Game_Comment Game_Year_ID Position_Gate Game_Year_Name 3

ΕΡΩΤΗΜΑ 2: SQL99 (α) Για το ακόλουθο παράδειγµα, ορίστε τις κλάσεις σε SQL99 και σχεδιάστε την ιεραρχία των κλάσεων: Μία Company χαρακτηρίζεται από την επωνυµία, την έδρα, τον αριθµό των εργαζοµένων και τα κέρδη. Μία NewsPaper είναι µία Company µε επιπλέον γνωρίσµατα: την τιµή, την κυκλοφορία και την πολιτική. Ένα Channel είναι µία Company µε επιπλέον γνωρίσµατα: τη συχνότητα, την τηλεθέαση και την πολιτική. Ένα Person χαρακτηρίζεται από τον αριθµό ταυτότητας, το όνοµα, το φύλο, την ηµεροµηνία γέννησης, τη διεύθυνση. Ένας Employee είναι ένα Person µε επιπλέον γνωρίσµατα: το µισθό, τα χρόνια προϋπηρεσίας, και µία αναφορά στην κύρια Company για την οποία εργάζεται Ένας Employer είναι ένα Person µε επιπλέον γνωρίσµατα: τα έσοδα, και ένα σύνολο(set) από αναφορές στις Company οι οποίες του ανήκουν. Ένας Politician είναι ένα Person µε επιπλέον γνωρίσµατα: το κόµµα, την ιδεολογία και ένα σύνολο(set) από αναφορές στις NewsPaper µε τις οποίες συνεργάζεται. Ένας Reporter είναι ένας Employee µε επιπλέον γνωρίσµατα: την κατηγορία ρεπορτάζ,, ένα σύνολο(set) από αναφορές στις Company µε τις οποίες συνεργάζεται και ένα σύνολο(set) από αναφορές στους Politician τους οποίους έχει για πηγές. (β) Γράψτε σε SQL99 τις παρακάτω ερωτήσεις: i) Επιστρέψτε το όνοµα και το µισθό όλων των δηµοσιογράφων που έχουν ως πηγές περισσότερους από τρεις πολιτικούς. ii) Επιστρέψτε το µέσο µισθό των δηµοσιογράφων, των οποίων η κύρια εταιρία που εργάζονται έχει έδρα την Αθήνα. iii) Επιλέξτε το όνοµα των δηµοσιογράφων και το όνοµα της κύριας εταιρίας στην οποία δουλεύουν, για όσους δηµοσιογράφους δεν δουλεύουν σε κανάλι τηλεόρασης. iv) Επιστρέψτε σε ένα πίνακα όλα τα ονόµατα των εταιριών µε τις οποίες συνεργάζονται οι δηµοσιογράφοι που έχουν µισθό µεγαλύτερο από 1500 ευρώ. Λύση (α) CREATE ROW TYPE CompanyObj { name Varchar(40), base Varchar(40), no_of_employees Integer, profits Real }; CREATE TABLE Company OF ROW TYPE CompanyObj; CREATE ROW TYPE NewsPaperObj { price Real, circulation Integer, policy Varchar(40) } UNDER CompanyObj; 4

CREATE TABLE NewsPaper OF ROW TYPE NewsPaperObj UNDER Company; CREATE ROW TYPE ChannelObj { frequency Real, ratings Real, policy Varchar(40) } UNDER CompanyObj; CREATE TABLE Channel OF ROW TYPE ChannelObj UNDER Company; CREATE ROW TYPE PersonObj { id Varchar(7), name Varchar(40), sex Varchar(10), birthdate Date, address Varchar(40) }; CREATE TABLE Person OF ROW TYPE PersonObj; CREATE ROW TYPE EmployeeObj { salary Real, years_of_previous_work Integer, works_for Ref(Company) } UNDER PersonObj; CREATE TABLE Employee OF ROW TYPE EmployeeObj UNDER Person; CREATE ROW TYPE EmployerObj { profits Real, owns Set(Ref(Company)) } UNDER PersonObj; CREATE TABLE Employer OF ROW TYPE EmployerObj UNDER Person; CREATE ROW TYPE PoliticianObj { party Varchar(40), ideology Varchar(40), associate_with Set(Ref(Company)) } UNDER PersonObj; CREATE TABLE Politician OF ROW TYPE PoliticianObj UNDER Person; CREATE ROW TYPE ReporterObj { reportage_category Varchar(40), associate_with Set(Ref(Company)), has_sources Set(Ref(Politician)) } UNDER EmployeeObj; CREATE TABLE Reporter OF ROW TYPE ReporterObj UNDER Employee; 5

Η ιεραρχία των κλάσεων είναι η εξής: Person Company Employee Employer Politician NewsPaper Channel Reporter (β) i) SELECT e.name, e.salary WHERE 3 < (SELECT count(*) FROM TABLE (e.has_sources) d) ii) SELECT avg (e.salary) WHERE e.works_for base= Athens iii) SELECT e.name, e. works_for name WHERE e. works_for name NOT IN (SELECT d.name FROM Channel d) iv) TABLE (SELECT e.associate_with name WHERE e. salary > 1500) 6