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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

Βάσεις Περιβαλλοντικών Δεδομένων

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ

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

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2)

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

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

Βάσεις Δεδομένων Ι. Παραδείγματα. Γεώργιος Ευαγγελίδης, Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής

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

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

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

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

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

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

Βάςεισ Δεδομζνων Ι. Ενότητα 7: Ειςαγωγή ςτην γλώςςα_sql. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικϊν Πλθροφορικισ ΣΕ

Βάσεις Δεδομένων. Ενότητα 6: Γλώσσα Structured Query Language -SQL. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

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

Σχεδίαση και Χρήση Βάσεων Δεδομένων. Χρήση του DBDesigner. Γιώργος Πυρουνάκης - forky@di.uoa.gr

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

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

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

ΗΓλώσσαSQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων

SQL Τύποι Δεδομένων Δημιουργία Πίνακα Παράδειγμα.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

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

Φυσική Σχεδίαση Υλοποίηση βάσης

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

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

ΕΠΛ 342 Βάσεις εδοµένων

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

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

Το Σχεσιακό μοντέλο και η γλώσσα SQL

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (1)

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

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

Κεφάλαιο 6. Περιορισμοί Ακεραιότητας Βάσεων Δεδομένων

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

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

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

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

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

ΚΕΦΑΛΑΙΟ ΤΡΙΤΟ ΕΝΤΟΛΕΣ SQL

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

Η Γλώσσα SQL. Εισαγωγή Βασικές Έννοιες Τύποι Δεδομένων Ορισμός Δεδομένων Χειρισμός Δεδομένων

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

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

Εργαστήριο βάσεων δεδομένων. Εισαγωγή στη MySQL (2)

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

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

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

Βάσεις Δεδομένων Ενότητα 3

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

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

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

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

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

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

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

Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model. Νικόλαος Ζ. Ζάχαρης

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

Βάσεις Δεδομένων. Ενότητα 3: Σχεδιασμός και Διαχείριση Βάσεων Δεδομένων. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - SQL

Αυτοματοποιημένη χαρτογραφία


Η SQL ως γλώσσα τροποποίησης Δεδομένων

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

Transcript:

Ενότητα 3: Σχεσιακό Μοντέλο. Από το ιδεατό στο λογικό (σχεσιακό) μοντέλο. Από το λογικό στο φυσικό (SQL) μοντέλο Ευαγγελίδης Γεώργιος

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Μέρος 1 Σχεσιακό Μοντέλο 4

Σχεσιακό μοντέλο E.F. Codd (1970) Διαδεδομένο Πολύ απλό Απλή υψηλού επιπέδου (4ης γενιάς) γλώσσα Αποδοτικές υλοποιήσεις 5

Ορισμοί (1) Βάση Δεδομένων Σχέσεις (Πίνακες) Γνωρίσματα (Στήλες) Εγγραφές (Γραμμές) Πληθυσμός (Κ) Βαθμός (Ν) Πεδία Ορισμού Σειρά εγγραφών/στηλών 6

Ορισμοί (2) Σχήμα ΒΔ Στιγμιότυπο πίνακα Τιμές NULL Κλειδί 7

Δημιουργία πινάκων Σχήμα πίνακα CD(code, title, year) Εντολή DDL της SQL: CREATE TABLE CREATE TABLE CD (code integer, title varchar(200), year integer) 8

Τροποποίηση σχήματος πινάκων Εντολή DDL της SQL: ALTER TABLE ALTER TABLE CD ADD COLUMN bought DATEALTER TABLE CD DROP COLUMN yearalter TABLE CD MODIFY COLUMN year DATE Εντολή DDL της SQL: DROP TABLE DROP TABLE CD 9

Μέρος 2 Από το ιδεατό στο λογικό μοντέλο 10

Από το ιδεατό στο λογικό (1) Σύνολο οντοτήτων γίνεται πίνακας. CD(code, year, title) 11

Από το ιδεατό στο λογικό (2) Σύνολο συσχετίσεων γίνεται πίνακας για περιορισμό κλειδιού πολλά-πολλά. HAS(cdcode, songcode, pos) Ξένα κλειδιά: cdcode, songcode Σύνθετο κλειδί: (cdcode, songcode) 12

Από το ιδεατό στο λογικό (3) Σύνολο συσχετίσεων δεν γίνεται πίνακας για περιορισμό κλειδιού 1-πολλά, πολλά-1, 1-1. Αντί για: HAS(companycode, cdcode) CD(cdcode,...) Έχω: CD(cdcode,..., companycode) 13

Από το ιδεατό στο λογικό (4) Για τον παρακάτω περιορισμό συμμετοχής: CD(cdcode,..., companycode) και companycode δεν μπορεί να πάρει τιμή NULL Τι κάνουμε σε όλες τις άλλες περιπτώσεις; 14

Από το ιδεατό στο λογικό (5) Αδύναμα σύνολα οντοτήτων CD(code,...) COPY(code, num, condition) 15

Από το ιδεατό στο λογικό (6) Ιεραρχίες ISA είτε: RECORDING(code, year) VINYL(code, price, weight) MP3(...) CD(...) ή: VINYL(code, year, price, weight) MP3(...) CD(...) 16

Από το ιδεατό στο λογικό (7) Συνυπολογισμός MANAGER(managercode,...) CD(cdcode,...) ARTIST(artistcode,...) CD_HAS_ARTIST(cdcode, artistcode, managercode) 17

Μέρος 3 Από το λογικό στο φυσικό μοντέλο 18

Από το λογικό στο φυσικό (1) CD(code, title, year) CREATE TABLE CD (code integer primary key, title varchar(200) NOT NULL,year integer) 19

Από το λογικό στο φυσικό (2) HAS(cdcode, songcode, pos) Ξένα κλειδιά: cdcode, songcode Σύνθετο κλειδί: (cdcode, songcode) CREATE TABLE HAS ( cdcode integer NOT NULL, songcode integer NOT NULL, pos integer NOT NULL, PRIMARY KEY (cdcode, songcode), FOREIGN KEY (cdcode) REFERENCES CD(code), FOREIGN KEY (songcode) REFERENCES SONG(code)) 20

Από το λογικό στο φυσικό (3) Εναλλακτικά: CREATE TABLE HAS ( cdcode integer NOT NULL, songcode integer NOT NULL, pos integer NOT NULL, PRIMARY KEY (cdcode, songcode) CONSTRAINT fk_1 FOREIGN KEY (cdcode) REFERENCES CD(code), CONSTRAINT fk_2 FOREIGN KEY(songcode) REFERENCES SONG(code)) 21

Από το λογικό στο φυσικό (4) Επίσης: ALTER TABLE ADD CONSTRAINT... ALTER TABLE ADD FOREIGN KEY... ALTER TABLE DROP CONSTRAINT... ALTER TABLE DROP FOREIGN KEY... Για σιγουριά δείτε εγχειρίδιο συγκεκριμένου ΣΔΒΔ 22

Από το λογικό στο φυσικό (5) Περιορισμός συμμετοχής: CD(cdcode,..., companycode) και companycode δεν μπορεί να πάρει τιμή NULL CREATE TABLE CD ( cdcode integer PRIMARY KEY,... companycode integer NOT NULL, FOREIGN KEY companycode REFERENCES COMPANY(code)) 23

Από το λογικό στο φυσικό (6) Αδύναμο σύνολο οντοτήτων CD(code,...) COPY(code, num, condition) CREATE TABLE COPY ( code integer NOT NULL, num integer NOT NULL, condition char(3), PRIMARY KEY (code, num), FOREIGN KEY code REFERENCES CD(code)) 24

Περιορισμοί Ακεραιότητας (1) Πεδίου ορισμού NULL UNIQUE Κυρίου κλειδιού (PRIMARY KEY) CREATE TABLE STUDENT ( AM char(10) NOT NULL PRIMARY KEY, AT char(8) NOT NULL UNIQUE, name varchar(100)) 25

Περιορισμοί Ακεραιότητας (2) Αναφορική (FOREIGN KEY) Τί συμβαίνει σε περίπτωση διαγραφής/τροποποίησης του κύριου κλειδιού στο οποίο αναφέρεται το ξένο κλειδί; ON DELETE ή ON UPDATE NO ACTION CASCADE SET NULL/SET DEFAULT 26

Αναφορική ακεραιότητα CREATE TABLE HAS ( cdcode integer NOT NULL, songcode integer NOT NULL, pos integer NOT NULL, PRIMARY KEY (cdcode, songcode), FOREIGN KEY (cdcode) REFERENCES CD(code) ON DELETE CASCADE ON UPDATE CASCADE FOREIGN KEY (songcode) REFERENCES SONG(code) ON DELETE CASCADE ON UPDATE CASCADE) 27

Εντολές DML της SQL INSERT INTO CD VALUES (1, 'Adele 21') UPDATE CD SET title='adele 22' WHERE code=1 DELETE FROM CD WHERE code=1 28

Τέλος Ενότητας