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

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

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

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

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

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

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

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

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

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

Η αναλυτική περιγραφή της γλώσσας SQL αποτελεί αντικείµενο των σελίδων που ακολουθούν. Η ΓΛΩΣΣΑ ΟΡΙΣΜΟΥ Ε ΟΜΕΝΩΝ

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

Εισαγωγή στις Βάσεις Δεδομζνων II

Lecture 14: SQL DML I

Lecture 16: SQL DML III

Βάσεις Δεδομένων Σύνθετα SQL queries. Ψευδώνυμα (Aliases) (2) Ψευδώνυμα (Aliases) (1) Ασάφεια και Πλήρη Ονόματα. Ερώτημα χωρίς τον όρο WHERE (1)

ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Σχεσιακός Ορισµός. Μαθ. #12

Βάσεις Δεδομένων Σύνθετα SQL queries

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

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

Εισαγωγή Mια από τις βασικές λειτουργίες ενός σχεσιακού συστήµατος διαχείρισης βάσεων δεδοµένων είναι η διαχείριση του πληροφοριακού περιεχοµένου που

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

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

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

Σχεδιασμός Βάσεων Δεδομένων

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Επιλέγει όλες τις πλειάδες, από μια σχέση R, που ικανοποιούν τη συνθήκη επιλογής.

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

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

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

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL

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

Διάλεξη 14: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) II. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

Οργάνωση Βάσεων Βιοϊατρικών Δεδομένων Εξόρυξη Γνώσης Βιοϊατρικών Δεδομένων. Σεμινάριο 5: SQL

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

Κεφάλαιο 4. Η Γλώσσα SQL και Σχεσιακός Λογισµός. Ι.Β. Σχεσιακός Λογισµός και η Γλώσσα SQL Σελίδα 2.46

SQL Data Manipulation Language

Διάλεξη 07: Σχεσιακό Μοντέλο II (Relational Data Model) Διδάσκων: Παναγιώτης Ανδρέου

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

ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 4 7/02/2012

Κεφάλαιο 3 Σχεσιακό Μοντέλο

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


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


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

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

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

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


Πληροφοριακά Συστήµατα

Εισαγωγή στις Βάσεις Δεδομζνων II

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

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΓΡΕΒΕΝΑ)

Κεφάλαιο 5. Ορισµός Βάσεων εδοµένων µε SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. Σχεσιακές Γλώσσες Εµφύτευση / DDL Σελίδα 2.

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

Κεφάλαιο 5 Σχεσιακή Άλγεβρα

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

Η SQL αποτελείται από δύο υποσύνολα, τη DDL και τη DML.

Κεφάλαιο 5. Ορισµός Βάσεων εδοµένων µε SQL DDL - Άλλες Γλώσσες Σχεσιακών Βάσεων (QBE) Ι.Β. Σχεσιακές Γλώσσες Εµφύτευση / DDL Σελίδα 2.

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

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

Κεφάλαιο 8. SQL-99: Ορισμός Σχήματος, Περιορισμοί, και Επερωτήσεις και Όψεις

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

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

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Κεφάλαιο 11 Ερωτήµατα

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

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

Εισαγωγή στη Σχεσιακή Άλγεβρα

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

DELETE, UPDATE, INSERT.

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

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

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 8: RM II. Relational Model. (Chapter )

Διάλεξη 13: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) I. Διδάσκων: Παναγιώτης Ανδρέου


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

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

DELETE, UPDATE, INSERT

Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα)

Διάλεξη 15: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) III. Διδάσκων: Παναγιώτης Ανδρέου

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

Entity-Relationship Model (Chen) Οντολογικό Σχεσιακό Μοντέλο

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

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

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

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

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

Διάλεξη 17: Προγραμματισμός Βάσης Δεδομένων Ι. Διδάσκων: Παναγιώτης Ανδρέου

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

Αρχεία και Βάσεις Δεδομένων

Διάλεξη 12: SQL Data Definition Language. Διδάσκων: Παναγιώτης Ανδρέου

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

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

Department of Computer Science University of Cyprus. EPL342 Databases. Lecture 10: RA IΙ. RA Advanced + Examples

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

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

Transcript:

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

Ε-R Model for a COMPANY database

The COMPANY relational database schema

A relational database instance of the COMPANY schema

SQL Μια γλώσσα σχεσιακής βάσης δεδοµένων Σχεσιακή Άλγεβρα: υψηλού επιπέδου διαδικασιακή γλώσσα Ο χρήστης καθορίζει το «πως», µε ποία σειρά, να εκτελεσθεί η ερώτηση Οι πιο πολλές βάσεις δεδοµένων παρέχουν µια υψηλού επιπέδου δηλωτική (µη-διαδικασιακή) γλώσσα, έτσι Ο χρήστης καθορίζει το «τι» είναι το αποτέλεσµα, αφήνοντας τη βελτιστοποίηση και απόφαση του «πως» να εκτελεσθεί η query στο DBMS SQL (Structure Query Language) είναι η πιο γνωστή τέτοια γλώσσα

SQL Μια γλώσσα σχεσιακής βάσης δεδοµένων SQL εντολές για ορισµό δεδοµένων, ερωτήσεων και αλλαγών. Εποµένως είναι και τα δυο DDL (γλώσσα ορισµού) DML(γλώσσα επεξεργασίας) Παρέχει επίσης δυνατότητα ορισµού «όψεων» ηµιουργία και καταστροφή δεικτών

Σχεσιακό Μοντέλο Γλώσσα Ορισµού εδοµένων SQL: χρησιµοποιεί τους όρους «πίνακα», «γραµµή», και «στήλη» για σχέση, πλειάδα, και πεδίο ορισµού αντίστοιχα Οι εντολές της SQL για ορισµό δεδοµένων είναι CREATE TABLE DROP TABLE ALTER TABLE

SQL example DROP TABLE DEPENDENT ; ALTER TABLE EMPLOYEE ADD JOB VARCHAR ;

Ερωτήσεις στην SQL Η SQL έχει µια βασική εντολή για την ανάκτηση πληροφοριών από τη βάση δεδοµένων Την SELECT FROM WHERE ενότητα (SFW) Αποτελείται από τους τρεις όρους, SELECT, FROM, και WHERE και έχει την ακόλουθη µορφή SELECT <λίστα πεδίων> FROM <λίστα πινάκων> WHERE <συνθήκη> Όπου <λίστα πεδίων> είναι η λίστα των πεδίων των οποίων οι τιµές θα ανακτηθούν από την ερώτηση (query) <λίστα πινάκων> είναι η λίστα των σχέσεων που χρειάζονται για την επεξεργασία της ερώτησης <συνθήκη> είναι η λογική έκφραση η οποία αναγνωρίζει τις πλειάδες που θα ανακτηθούν από την ερώτηση

Παράδειγµα ερωτήσεων στην SQL Ερώτηση Q0 Βρες την ηµεροµηνία γεννήσεως και διεύθυνση του υπαλλήλου µε όνοµα John B. Smith SELECT BDATE, ADDRESS FROM EMPLOYEE WHERE FNAME= JOHN AND MINIT= B AND LNAME= SMITH H query διαλέγει όλους τους υπαλλήλους που ικανοποιούν την συνθήκη του «WHERE» και µετά προβάλλει το αποτέλεσµα επί των πεδίων BDATE και ADDRESS τα οποία αναφέρονται στον SELECT όρο Η Q0 είναι όµοια της σχεσιακής έκφρασης

Ερώτηση Q1 Βρες το όνοµα και διεύθυνση του υπαλλήλου που δουλεύει στο research τµήµα SELECT FNAME, LNAME, ADDRESS FROM EMPLOYEE, DEPARTMENT WHERE DNAME= RESEARCH AND DNUMBER=DNO Στον WHERE όρο η συνθήκη DNAME = RESEARCH είναι η συνθήκη επιλογής και αντιστοιχεί στον τελεστή επιλογής της σχεσιακής άλγεβρας ( ) DNUMBER=DNO είναι ο join condition που αντιστοιχεί στην συνθήκη κάτω από την οποία εκτελείται ο τελεστής join της σχεσιακής άλγεβρας ( ) Η Q1 είναι όµοια της σχεσιακής έκφρασης Μπορεί να βελτιστοποιηθεί???

Σχεσιακό Μοντέλο ιφορούµενα ονόµατα στηλών Πρόβληµα Το ίδιο όνοµα στήλης σε περισσότερο από ένα πίνακα Λύση Προσδιόρισε (qualify) το όνοµα µιας στήλης µε τη χρήση συνώνυµου η µε προσήµανση του ονόµατος της σχέσης

Ερώτηση Q2 Q1 Βρες το όνοµα και διεύθυνση του υπαλλήλου που δουλεύει στο research τµήµα Θεωρείστε ότι DNO και LNAME της σχέσεως EMPLOYEE ονοµαζόταν DNUMBER και NAME και το DNAME του DEPARTMENT ονοµαζόταν NAME SELECT E.FNAME, E.NAME, E.ADDRESS FROM EMPLOYEE E, DEPARTMENT D WHERE D.NAME= RESEARCH AND D.NUMBER=E.NUMBER

Μη ορισµός του WHERE και τη χρήση του * SELECT SSN FROM EMPLOYEE SELECT SSN, DNAME FROM EMPLOYEE, DEPARTMNET Βρες τους όλους τους υπαλλήλους που δουλεύουν στο τµήµα 5 SELECT * FROM EMPLOYEE WHERE DNO=5

Εµφωλευµένες (φωλιασµένες) ερωτήσεις και συγκρίσεις συνόλων Βρες το όνοµα κάθευπαλλήλουπουέχειεξαρτώµενο µε το ίδιο µικρό όνοµακαιτοίδιοφύλοµε τονυπάλληλο SELECT E.FNAME, E.LNAME FROM EMPLOYEE E WHERE E.SSN IN SELECT ESSN FROM DEPENDENT WHERE E.FNAME=DEPENDENT_NAME AND SEX= E.SEX

Χωρίς Εµφώλευση Βρες το όνοµα κάθε υπαλλήλου που έχει εξαρτώµενο µετοίδιοµικρό όνοµα και το ίδιο φύλο µε τον υπάλληλο SELECT E.FNAME. E.LNAME FROM EMPLOYEE E, DEPENDENT D WHERE ESSN=E.SSN AND FNAME=DEPENDENT_NAME AND D.SEX=E.SEX

ΗεντολήEXIST Χρησιµοποιείται για να ελέγχει κατά πόσο το αποτέλεσµα µιας συσχετισµένης query είναι κενό ή όχι Χρησιµοποιώντας το προηγούµενο παράδειγµα Βρες το όνοµα κάθε υπαλλήλου που έχει εξαρτώµενο µε το ίδιο µικρό όνοµα και το ίδιο φύλο µε τον υπάλληλο SELECT E.FNAME, E.LNAME FROM EMPLOYEE E WHERE EXIST (SELECT * FROM DEPENDENT WHERE ESSN=E.SSN AND E.FNAME=DEPENDENT_NAME AND SEX=E.SEX

ΗεντολήEXIST Βρες το όνοµα κάθε υπαλλήλου που δεν έχει εξαρτώµενα SELECT E.FNAME, E.LNAME FROM EMPLOYEE E WHERE NOT EXIST (SELECT * FROM DEPENDENT ESSN=E.SSN)

Aggregate Functions and Grouping (Συναρτήσεις συνάθροισης και οµαδοποίησης) Η SQL περιέχει ένα σύνολο συνάρτησης «συνάθροισης» COUNT: επιστρέφει τον αριθµό των πλειάδων η τιµών που καθορίζονται στην query SUM, AVG, MAX, ΜΙΝ: εφαρµόζονται σε ένα σύνολο η πολυσύνολο από αριθµητικές τιµές και επιστρέφουν αντίστοιχα, το «άθροισµα», «µέσο όρο», «µέγιστο», και «ελάχιστο» αυτών των τιµών

Παράδειγµα Βρες το άθροισµα, τον µέγιστο, τον ελάχιστο, και τον µέσο όρο όλων των µισθών των υπαλλήλων SELECT SUM(SALARY), MAX(SALARY) MIN(SALARY), AVG(SALARY) FROM EMPLOYEE

Grouping (οµαδοποίηση) Για κάθε τµήµαβρεςτοναριθµό τουτµήµατος, τον αριθµό τωνυπαλλήλωντουτµήµατος, και τον µέσο όρο των µισθών τους SELECT DNO, COUNT(*), AVG(SALARY) FROM EMPLOYEE GROUP BY DNO Ο GROUP BY όρος ορίζει τα γνωρίσµατα οµαδοποίησης τα οποία πρέπει να παρουσιάζονται επίσης στον SELECT όρο, ώστε η τιµήτης εφαρµογής κάθε συνάρτησης στην οµάδα των πλειάδων να εµφανίζεται µαζί µετηντιµή των πεδίων ορισµού της οµαδοποίησης

Σχεσιακό Μοντέλο Εντολές αλλαγής δεδοµένων στην SQL INSERT Π.χ. Για την εισαγωγή καινούργιων πλειάδων σε µια σχέση INSERT INTO EMPLOYEE VALUE ( RICHARD, K, MARINI, )

Σχεσιακό Μοντέλο Εντολές αλλαγής δεδοµένων στην SQL DELETE Π.χ. Αφαιρείπλειάδεςαπόµια σχέση DELETE FROM EMPLOYEE WHERE LNAME= BROWN

Σχεσιακό Μοντέλο Εντολές αλλαγής δεδοµένων στην SQL UPDATE Π.χ. Για την αλλαγή πεδίων ορισµού επιλεγµένων πλειάδων UPDATE PROJECT SET PLOCATION= BELLAIRE, DNUM=5 WHERE PNUMBER=10

Σχεσιακό Μοντέλο Views in SQL (Όψεις στην SQL) Μια view (όψη) στη SQL είναι ένας πίνακας ο οποίος προέρχεται από άλλους πίνακες εν υπάρχει κατά ανάγκη σε φυσική µορφή Θεωρείται σαν ένας «ιδεατός πίνακας» σε αντίθεση µε τον βασικό πίνακα του οποίου οι πλειάδες αποθηκεύονται στο database εν υπάρχουν περιορισµοί για υπερωτήσεις πάνω στην όψη, αλλά Περιορισµοί για αλλαγές των ιδεατών πλειάδων της όψης

Views in SQL (Όψεις στην SQL) Μπορούµενασκεφτούµετηόψησανένατρόπο ορισµού κάποιου πίνακα που εµείς η άλλοι χρήστες αναφέρονται συχνά Για παράδειγµα, εάν πολύ συχνά ενδιαφερόµαστε για ερωτήσεις που ανακτούν το όνοµαενός υπαλλήλου και τα ονόµατα των projects που αυτός δουλεύει πάνω... Αντί να ορίσουµε µια JOIN των EMPLOYEE, WORKS_ON, PROJECT κάθε φορά, µπορούµε να ορίσουµε έναview η οποία θα καταλήγει σε αυτές τις JOINs

Ορισµός µιας όψης στην SQL CREATE VIEW WORKS_ON1 AS SELECT FNAME, LNAME, PNAME, HOURS FROM EMPLOYEE, PROJECT, WORKS_ON WHERE SSN=ESSN AND PNO=PNUMBER O πιο κάτω ιδεατός πίνακας δηµιουργείται WORKS_ON1(FNAME, LNAME, PNAME, HOURS)

Μπορούµετώραναορίσουµετηνπιοκάτωquery Βρες το όνοµα και επώνυµο όλων των υπαλλήλων που δουλεύουν στο ProductX SELECT PNAME, FNAME, LNAME FROM WORKS_ON1 WHERE PNAME= PRODUCTX