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

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

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

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

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

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

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

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

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

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

Η γλώσσα SQL. Βάσεις Δεδομένων : SQL 1

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β :

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

Βάσεις Δεδομένων Ευαγγελία Πιτουρά 2. Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β :

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

Σχεσιακή Άλγεβρα. Εισαγωγή. Εισαγωγή. Εισαγωγή. Παράδειγμα. Εισαγωγή. Ταινία Τίτλος Έτος Διάρκεια Είδος. Παίζει Όνομα-Ηθοποιού Τίτλος Έτος.

Η Γλώσσα SQL. SQL αποτελείται από: DDL (Data Definition Language) - ορισμός, δημιουργία, τροποποίηση και διαγραφή σχήματος.

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

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

SQL. Πριν μια σύντομη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού εδομένων (ΓΟ ) Γλώσσα Χειρισμού εδομένων (ΓΧ )

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

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

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

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

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

Η γλώσσα SQL. Βάσεις Δεδομένων : SQL 1

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σχεδιασμός μιας Β : Βήματα

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

Σχεσιακή Άλγεβρα. Βάσεις Δεδομένων : Σχεσιακή Άλγεβρα 1

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

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

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

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Η SQL ως γλώσσα ερωτημάτων. Υπενθυμίζουμε: Σχέση = Πίνακας Πλειάδα = Εγγραφή = Γραμμή (Πίνακα) Πεδίο = Γνώρισμα (Σχέσης) = Στήλη (Πίνακα)

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

Σχεσιακό Μοντέλο. Εισαγωγή. Βάσεις εδοµένων : Σχεσιακό Μοντέλο 1

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

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

Εισαγωγή. Σχεδιασµός µιας Β

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

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

Η Γλώσσα SQL. What is the average salary in the Toy department? Anonymous SQL user

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

SQL. Πριν µια σύντοµη επανάληψη της σχεσιακής άλγεβρας. H SQL έχει διάφορα τµήµατα: Γλώσσα Χειρισµού εδοµένων (ΓΧ )

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

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

Η Γλώσσα SQL. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

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

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

Το Σχεσιακό Μοντέλο. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Λογικός Σχεδιασμός Σχεσιακών Σχημάτων: Αποσύνθεση

Σχεδιασμός μιας εφαρμογής ΒΔ: Βήματα. 1. Συλλογή και Ανάλυση Απαιτήσεων(requirement analysis)

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

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσματα

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

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

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

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

Σχεσιακή Άλγεβρα. Προγράμματα που απαντούν σε επερωτήσεις για τον τρέχον στιγμιότυπο της βάσης δεδομένων (querying)

Βάσεις Δεδομένων : Σχεσιακό Μοντέλο 1. Ένας απλός τρόπος αναπαράστασης δεδομένων: ένας διδιάστατος πίνακας που λέγεται σχέση.

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

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

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

SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

καλών σχεσιακών σχημάτων

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

Σχεσιακή Άλγεβρα Σχεδιασμός Βάσεων Δεδομένων

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

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

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

Σχεδιασµός µιας Β. Ένας απλός τρόπος αναπαράστασης δεδοµένων: ένας διδιάστατος πίνακας που λέγεται σχέση Γνωρίσµατα

Βάσεις Δεδομένων : Λογικός Σχεδιασμός 1. καλών σχεσιακών σχημάτων. Λογικός Σχεδιασμός Σχεσιακών Σχημάτων. Γενικές Κατευθύνσεις.

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

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

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

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

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

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

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

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

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

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

Σχεσιακή Άλγεβρα. Σχεσιακή Άλγεβρα

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

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

Σχεσιακή Άλγεβρα. Προγράµµατα που απαντούν σε ερωτήσεις για τον παρόν στιγµιότυπο της βάσης δεδοµένων (quering)

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

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

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

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

Η Γλώσσα Βάσεων εδοµένων SQL

Σχεσιακή Άλγεβρα. Προγράµµατα που απαντούν σε επερωτήσεις για τον παρόν στιγµιότυπο της βάσης δεδοµένων (querying)

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

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

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

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


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

Transcript:

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Σχεσιακού Μοντέλου) Μετατροπή ανάμεσα στα μοντέλα Θα δούμε κάποιες βασικές εντολές για τον ορισμό σχήματος και τη δημιουργία/τροποποίηση στιγμιοτύπου Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 2 Τροποποίηση Στιγμιοτύπου 1

Εισαγωγή Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού εδομένων ( ΟΧ) (του σχήματος) <Data Definition Language (DDL)> Γλώσσα Χειρισμού εδομένων (ΓΧ ) <Data Manipulation Language (DML)> Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή πλειάδων) Γλώσσα Ερωτήσεων (Επερωτήσεων) Οι γλώσσες ερωτήσεων απαντούν σε ερωτήσεις για τον παρόν στιγμιότυπο της βάσης δεδομένων (querying) ανάκτηση δεδομένων (θα τις δούμε αναλυτικά σε επόμενα μαθήματα) Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 3 Εισαγωγή Βήματα ημιουργίας και Χρήσης μιας (Σχεσιακής) Βάσης εδομένων Σχεδιασμός Σχήματος ημιουργία Σχήματος χρησιμοποιώντας τη ΓΟ (DDL) Μαζική Φόρτωση των αρχικών δεδομένων Η βάση δεδομένων έχει δεδομένα Repeat: εκτέλεση ερωτήσεων (select-from-where) και τροποποιήσεων (insert-delete-update) στη βάση δεδομένων Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 4 Τροποποίηση Στιγμιοτύπου 2

Η γλώσσα SQL H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων αρχικά Sequel στην IBM ως μέρος του System R, τώρα SQL (Stuctured Query Language) SQL-89, SQL-92, SQL-99 +++ H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού εδομένων (ΓΟ ) Γλώσσα Χειρισμού εδομένων (ΓΧ ) Ενσωματωμένη Γλώσσα Χειρισμού εδομένων Ορισμό Όψεων Εξουσιοδότηση (authentication) Ακεραιότητα Έλεγχο Συναλλαγών Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 5 Η γλώσσα SQL Συγκεκριμένα: DDL (Data Definition Language) - ορισμός, δημιουργία, τροποποίηση και διαγραφή σχήματος. DML (Data Manipulation Language) - ορισμός, δημιουργία, τροποποίηση, διαγραφή και επιλογή δεδομένων (γλώσσα ερωτήσεων). Προδιαγραφές ασφάλειας - χρήστες και δικαιώματα. Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 6 Τροποποίηση Στιγμιοτύπου 3

Παράδειγμα Ταινία Τίτλος Έτος Διάρκεια Είδος Παίζει Όνομα-Ηθοποιού Τίτλος Έτος Ηθοποιός Όνομα Διεύθυνση Έτος-Γέννησης Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 7 Η γλώσσα SQL Μερικές Γενικές Παρατηρήσεις Oracle SQL και η MySQL μερικές φορές δεν ακολουθούν ακριβώς τα standards μερικές εντολές στις διαφάνειες μπορεί να μη «τρέχουν» Κάποιες αποκλίσεις περιγράφονται στη web σελίδα του μαθήματος Επίσης, "interactive" SQL εντολές που πληκτρολογούνται μετά από το prompt και οι απαντήσεις εμφανίζονται στην οθόνη ως πίνακες "Embedded" και "dynamic" SQL: θα τη δούμε στην (επόμενη) προγραμματιστική άσκηση Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 8 Τροποποίηση Στιγμιοτύπου 4

Ορισμός Σχήματος Ορισμός Σχήματος Για κάθε σχεσιακό σχήμα μια γλώσσα ορισμού δεδομένων 1. Ορισμός σχήματος (όνομα στη σχεσιακή βάση δεδομένων) 2. Ορισμός των (σχημάτων) σχέσεων που αποτελούν τη βάση Όνομα σχέσης, ονόματα και πεδία ορισμού των γνωρισμάτων, περιορισμοί ορθότητας 3. Ορισμοί πεδίων ορισμού Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 9 Γλώσσα Ορισμού εδομένων Γλώσσα Ορισμού εδομένων (ΓΟ ) Σχετικά με το λογικό σχήμα, η ΓΟ SQL υποστηρίζει τους ορισμούς: του σχήματος κάθε σχέσης του πεδίου τιμών κάθε γνωρίσματος των περιορισμών ακεραιότητας Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 10 Τροποποίηση Στιγμιοτύπου 5

Γενική ομή Ορισμού Γλώσσα Ορισμού εδομένων create table R(A 1 D 1, A 2 D 2,..., A n D n ), <περιορισμός-ακεραιότητας 1 >,, <περιορισμός-ακεραιότητας k > όπου R είναι το όνομα της σχέσης, A i τα ονόματα των γνωρισμάτων, και D i οι τύποι των αντίστοιχων πεδίων τιμών. Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 11 Πεδία Τιμών Τύποι Πεδίου Ορισμού Για τον ορισμό του πεδίου ορισμού, οι διαθέσιμοι built-in τύποι περιλαμβάνουν περισσότερα στο βιβλίο και στη σελίδα του μαθήματος: char(n) (σταθερού μήκους) varchar(n) int smallint numeric(p, d) (d από τα p ψηφία είναι στα δεξιά της υποδιαστολής) real, double precision float(n) date (ημερομηνία) time (ώρα) Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 12 Τροποποίηση Στιγμιοτύπου 6

Πεδία Τιμών Ο ορισμός πεδίου μπορεί να περιέχει τον προσδιορισμό not null και default τιμή Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 13 Ορισμός Σχήματος Παράδειγμα CREATE TABLE Ταινία (Τίτλος varchar(20) not null, Έτος int not null, Ορισμός σχήματος σχέσης ιάρκεια int, Είδος varchar(20), Όνομα σχέσης + γνωρίσματα primary key (Τίτλος, Έτος)); CREATE TABLE Ηθοποιός (Όνομα varchar(20) not null, ιεύθυνση varchar(15), Έτος-Γέννησης int, primary key (Όνομα), check (Έτος-Γέννησης >= 1800)); CREATE TABLE Παίζει (Όνομα varchar(20) not null, Τίτλος varchar(20) not null, Έτος int not null, primary key (Όνομα, Τίτλος, Έτος), foreign key (Όνομα) references Ηθοποιός(Όνομα), foreign key (Τίτλος, Έτος) references Ταινία(Τίτλος, Έτος); Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 14 Τροποποίηση Στιγμιοτύπου 7

Ορισμός Σχήματος: Περιορισμοί Ακεραιότητας Επιτρεπτοί περιορισμοί ακεραιότητας είναι της μορφής: primary key (A j1, A j2,..., A jn), (δεν επιτρέπονται επαναλαμβανόμενες τιμές και NULL τιμές) για τον ορισμό του πρωτεύοντος κλειδιού unique (A j1, A j2,..., A jn), (δεν επιτρέπονται επαναλαμβανόμενες τιμές; NULL τιμές επιτρέπονται (μόνο μία)) για τον ορισμό υποψηφίων κλειδιών check P για τον ορισμό σημασιολογικών περιορισμών foreign key (A i ) references A j για τον ορισμό ξένου κλειδιού Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 15 Ορισμός Σχήματος Παράδειγμα CREATE TABLE Ταινία (Τίτλος varchar(20) not null, Έτος int not null, Ορισμός πρωτεύοντος κλειδιού ιάρκεια int, Είδος varchar(20), primary key (Τίτλος, Έτος)); CREATE TABLE Ηθοποιός (Όνομα varchar(20) not null, ιεύθυνση varchar(15), Έτος-Γέννησης int, primary key (Όνομα), check (Έτος-Γέννησης >= 1800)); CREATE TABLE Παίζει (Όνομα varchar(20) not null, Τίτλος varchar(20) not null, Έτος int not null, primary key (Όνομα, Τίτλος, Έτος), foreign key (Όνομα) references Ηθοποιός(Όνομα), foreign key (Τίτλος, Έτος) references Ταινία(Τίτλος, Έτος); Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 16 Τροποποίηση Στιγμιοτύπου 8

Ορισμός Σχήματος Παράδειγμα CREATE TABLE Ταινία (Τίτλος varchar(20) not null, Έτος int not null, ιάρκεια int, Είδος varchar(20), primary key (Τίτλος, Έτος)); CREATE TABLE Ηθοποιός (Όνομα varchar(20) not null, ιεύθυνση varchar(15), Έτος-Γέννησης int, primary key (Όνομα), check (Έτος-Γέννησης >= 1800)); CREATE TABLE Παίζει (Όνομα varchar(20) not null, Τίτλος varchar(20) not null, Έτος int not null, primary key (Όνομα, Τίτλος, Έτος), foreign key (Όνομα) references Ηθοποιός(Όνομα), foreign key (Τίτλος, Έτος) references Ταινία(Τίτλος, Έτος); Ορισμός ξένου κλειδιού Προφανώς, ο ορισμός του πίνακα στον οποίο αναφέρεται, πρέπει να προηγείται Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 17 Ορισμός Σχήματος Παράδειγμα CREATE TABLE Ταινία (Τίτλος varchar(20) not null, Έτος int not null, ιάρκεια int, Είδος varchar(20), primary key (Τίτλος, Έτος)); CREATE TABLE Ηθοποιός (Όνομα varchar(20) not null, ιεύθυνση varchar(15), Έτος-Γέννησης int, primary key (Όνομα), check (Έτος-Γέννησης >= 1800)); Απλό παράδειγμα σημασιολογικού περιορισμού CREATE TABLE Παίζει (Όνομα varchar(20) not null, Τίτλος varchar(20) not null, Έτος int not null, primary key (Όνομα, Τίτλος, Έτος), foreign key (Όνομα) references Ηθοποιός(Όνομα), foreign key (Τίτλος, Έτος) references Ταινία(Τίτλος, Έτος); Οι περιορισμοί ορίζονται μια φορά στο σχήμα και ελέγχονται κάθε φορά που γίνεται μια τροποποίηση του στιγμιοτύπου Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 18 Τροποποίηση Στιγμιοτύπου 9

Τροποποίηση Σχήματος Τροποποίηση Σχήματος ALTER TABLE όνομα πίνακα ADD - προσθέτει καινούργια στήλη DROP - διαγράφει μια στήλη MODIFY - τροποποιεί μια στήλη Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 19 Τροποποίηση Σχήματος Προσθήκη νέου γνωρίσματος: alter table R add A D προσθήκη σε μια σχέση R που ήδη υπάρχει του γνωρίσματος A με πεδίο τιμών D, η τιμήτωνπλειάδωντηςr στο καινούργιο γνώρισμα είναι null. ιαγραφή γνωρίσματος: alter table R drop A Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 20 Τροποποίηση Στιγμιοτύπου 10

Τροποποίηση Σχήματος alter table R modify (όνομα_στήλης new_datatype) modify μπορεί να τροποποιήσει μόνο τον τύπο δεδομένων, όχι το όνομα της στήλης Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 21 ιαγραφή Σχήματος ιαγραφή Σχήματος Μιακαινούργιασχέσηείναιαρχικάάδεια. Γιανασβηστείένασχήμα: drop table R Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 22 Τροποποίηση Στιγμιοτύπου 11

Τροποποιήσεις Τροποποίηση Βάσης εδομένων: Γλώσσα Χειρισμού εδομένων (ΓX ) Τροποποιήσεις 1. Εισαγωγή πλειάδας 2. ιαγραφή Πλειάδας 3. Τροποποίηση (Ενημέρωση) Πλειάδας Οι εντολές αυτές ΤΡΟΠΟΠΟΙΟΥΝ το στιγμιότυπο της βάσης δεδομένων (δηλαδή, το περιεχόμενο των πινάκων) Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 23 Εισαγωγή Πλειάδας Εισαγωγή: Παρέχει μια λίστα από τιμές γνωρισμάτων για μια νέα πλειάδα που πρέπει να εισαχθεί στη σχέση Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 24 Τροποποίηση Στιγμιοτύπου 12

Εισαγωγή Πλειάδας Εισαγωγή πλειάδας σε SQL Για να εισάγουμε δεδομένα σε μια σχέση είτε (α) προσδιορίζουμε την πλειάδα, insert into R(A 1,, A n ) values (v 1,, v n ) είτε (β) γράφουμε μια ερώτηση που το αποτέλεσμα της εισάγεται στη σχέση. insert into R(A 1,, A n ) select-from-where Θα το δούμε αργότερα Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 25 Εισαγωγή Πλειάδας Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης) Παράδειγμα insert into Ταινία values ( The Big Blue, 1988, 132, Έγχρωμη ) Όταν με οποιαδήποτε σειρά, π.χ.,: insert into Ταινία (Τίτλος, Είδος, ιάρκεια, Έτος) values ( The Big Blue, Έγχρωμη, 132, 1988) Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 26 Τροποποίηση Στιγμιοτύπου 13

Εισαγωγή Πλειάδας Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης) Επίσης, εισαγωγή null τιμών: insert into Ταινία values ( The Big Blue, 1988, null, Έγχρωμη ) ήανδε δίνω τιμές για όλα τα γνωρίσματα insert into Ταινία (Τίτλος, Έτος, Είδος) values ( The Big Blue, 1988, Έγχρωμη ) Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 27 Εισαγωγή Πλειάδας Ποιους από τους περιορισμούς (πεδίου ορισμού, κλειδιού, ακεραιότητας οντοτήτων και αναφορικής ακεραιότητας) μπορεί να παραβιάζειμιατέτοιαλίστατιμών; Σε περίπτωση παραβίασης: Απόρριψη εισαγωγής Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 28 Τροποποίηση Στιγμιοτύπου 14

ιαγραφή Πλειάδας ιαγραφή: Προσδιορίζεται μια συνθήκη πάνω στα γνωρίσματα της σχέσης και διαγράφονται οι πλειάδες που την ικανοποιούν Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 29 ιαγραφή Πλειάδας ιαγραφή σε SQL Μπορούμε να σβήσουμε μόνο ολόκληρες πλειάδες και όχι συγκεκριμένα γνωρίσματα. delete from R where P Σβήνει όλες τις πλειάδες της R για τις οποίες ισχύει το P. Όταν λείπει το where σβήνονται όλες οι πλειάδες μιας σχέσης. Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 30 Τροποποίηση Στιγμιοτύπου 15

ιαγραφή Πλειάδας Παραδείγματα (1) Όλες οι ηθοποιοί με το όνομα Kidman delete from Ηθοποιός where Όνομα = Kidman (2) Όλες τις ταινίες που έχουν γυριστεί πριν το 1950 delete from Ταινία where Έτος < 1950 Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 31 ιαγραφή Πλειάδας Συνθήκη του where <Όνομα_Γνωρίσματος> <τελεστής> < Ονομα_Γνωρίσματος> ή <Τιμή> Τελεστές σύγκρισης: <, <=, >, >=, =, <>, κλπ Λογικοί τελεστές: and, or, not Στο from μόνο μια σχέση, αλλά στη συνθήκη του where μπορεί να εμφανίζονται και άλλες (θα το δούμε στη συνέχεια) Αν υπάρχουν παραπάνω από μια πλειάδες που ικανοποιούν τη συνθήκη, δεν υπάρχει τρόπος να διακρίνουμε τις πλειάδες, δηλαδή να σβήσουμε κάποιες Πρώτα, υπολογίζεται η συνθήκη του where καιμετάδιαγράφονταιοιπλειάδες που ικανοποιούν τη συνθήκη Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 32 Τροποποίηση Στιγμιοτύπου 16

ιαγραφή Πλειάδας Ποιους από τους περιορισμούς (πεδίου ορισμού, κλειδιού, ακεραιότητας οντοτήτων και αναφορικής ακεραιότητας) μπορεί να παραβιάζει το αποτέλεσμα μια διαγραφής; Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 33 ιαγραφή Πλειάδας Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης) Παράδειγμα: διαγραφή της ταινίας The Big Blue που γυρίστηκε το 1988 delete from Ταινία where Τίτλος = The Big Blue and Έτος = 1988 Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 34 Τροποποίηση Στιγμιοτύπου 17

ιαγραφή Πλειάδας Σε περίπτωση παραβίασης (αναφορικής ακεραιότητας), έχουμε τις επιλογές: απόρριψη της διαγραφής διάδοση της διαγραφής (αυτόματη διαγραφή όλων των πλειάδων που αναφέρονται σε αυτήν) τροποποίηση των τιμών των αναφορικών γνωρισμάτων Πως; μια ειδική τιμή ή την τιμή NULL (αν επιτρέπεται) Η SQL μας επιτρέπει να προσδιορίσουμε ποιες από τις παραπάνω επιλογές θα πραγματοποιείται σε περίπτωση παραβίασης Πότε: όταν ορίζουμε στο σχήμα τους περιορισμούς ξένου κλειδιού Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 35 Ορισμός Σχήματος: Περιορισμοί Ακεραιότητας Περισσότερα για τους Περιορισμούς Αναφοράς Σύνταξη: Μετά τον ορισμό του: foreign key (A i ) references A j (1) cascade, (2) set null, (3) set default (4) no action είναι το ίδιο με το να μην προσδιορίσουμε τίποτα on delete Όταν μια πράξη παραβιάζει έναν περιορισμό αναφοράς απορρίπτεται εκτός αν έχει οριστεί κάτι άλλο Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 36 Τροποποίηση Στιγμιοτύπου 18

ιαγραφή Πλειάδας Αναλυτικά: Σε περίπτωση παραβίασης (αναφορικής ακεραιότητας): απόρριψη της διαγραφής (αν δεν υπάρχει προσδιορισμός) ή on delete no action διάδοση της διαγραφής (αυτόματη διαγραφή όλων των πλειάδων που αναφέρονται σε αυτήν) on delete cascade τροποποίηση των τιμών των αναφορικών γνωρισμάτων Πως; μια ειδική τιμή on delete set default ή την τιμή NULL on delete set null Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 37 Ορισμός Σχήματος CREATE TABLE Ταινία (Τίτλος varchar(20) not null, Έτος int not null, CREATE TABLE Παίζει ιάρκεια int, (Όνομα varchar(20) not null, Είδος varchar(20), Τίτλος varchar(20) not null, primary key (Τίτλος, Έτος)); Έτος int not null, CREATE TABLE Ηθοποιός primary key (Όνομα, Τίτλος, Έτος), (Όνομα varchar(20) not null, foreign key (Όνομα) references Ηθοποιός(Όνομα), ιεύθυνση varchar(15), on delete set NULL, Έτος-Γέννησης int, foreign key (Τίτλος, Έτος) references Ταινία(Τίτλος, Έτος), primary key (Όνομα), on delete cascade check (Έτος-Γέννησης >= 1800)); CREATE TABLE Παίζει (Όνομα varchar(20) not null, Τίτλος varchar(20) not null, Έτος int not null, primary key (Όνομα, Τίτλος, Έτος), foreign key (Όνομα) references Ηθοποιός(Όνομα), on delete cascade, foreign key (Τίτλος, Έτος) references Ταινία(Τίτλος, Έτος); Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 38 Τροποποίηση Στιγμιοτύπου 19

ιαγραφή Πλειάδας Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης) Παράδειγμα: διαγραφή της ταινίας The Big Blue που γυρίστηκε το 1988 delete from Ταινία where Τίτλος = The Big Blue and Έτος = 1988 Το αποτέλεσμα εξαρτάται από το είδος περιορισμού αναφοράς που έχουμε ορίσει Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 39 ιαγραφή Σχήματος και Πλειάδων ιαγραφή Σχήματος Μιακαινούργιασχέσηείναιαρχικάάδεια. Γιανασβηστείένασχήμα: drop table R ιαφορά από delete from R Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 40 Τροποποίηση Στιγμιοτύπου 20

Τροποποίηση Πλειάδας Τροποποίηση: Προσδιορίζεται μια συνθήκη πάνω στα γνωρίσματα της σχέσης και τροποποιούνται οι πλειάδες που την ικανοποιούν Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 41 Τροποποίηση Πλειάδας Τροποποίηση Πλειάδας σε SQL update R set Attr = New_Value where P Παράδειγμα: Αύξηση τις διάρκειας κάθε ταινίας κατά 10 λεπτά για όλες τις ταινίες με διάρκεια < 100 update Ταινία set ιάρκεια = ιάρκεια + 10 where ιάρκεια < 100 Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 42 Τροποποίηση Στιγμιοτύπου 21

Τροποποίηση Πλειάδας Όπως και για τη διαγραφή: Στο update μόνο μια σχέση, αλλά στη συνθήκη του where μπορεί να εμφανίζονται και άλλες Αν υπάρχουν παραπάνω από μια πλειάδες που ικανοποιούν τη συνθήκη, δεν υπάρχει τρόπος να διακρίνουμε τις πλειάδες, δηλαδή να ενημερώσουμε κάποιες Πρώτα, υπολογίζεται η συνθήκη του where και μετά τροποποιούνται οι πλειάδες που ικανοποιούν τη συνθήκη δηλαδή, η συνθήκη υπολογίζεται στο τρέχων στιγμιότυπο όχι στο τροποποιημένο Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 43 Τροποποίηση Πλειάδας Ποιους από τους περιορισμούς (πεδίου ορισμού, κλειδιού, ακεραιότητας οντοτήτων και αναφορικής ακεραιότητας) μπορεί να παραβιάζει το αποτέλεσμα μιας τροποποίησης; Όταν το γνώρισμα που τροποποιείται είναι ξένο κλειδί ή κλειδί; Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 44 Τροποποίηση Στιγμιοτύπου 22

Ορισμός Σχήματος: Περιορισμοί Ακεραιότητας Όπως και στη διαγραφή, κατά τον ορισμό του σχήματος ορίζουμε την κατάλληλη πράξη cascade, set null, set default (no action είναιτοίδιομετοναμην προσδιορίσουμε τίποτα) on update Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 45 Ορισμός Σχήματος CREATE TABLE Ταινία (Τίτλος varchar(20) not null, Έτος int not null, ιάρκεια int, Είδος varchar(20), primary key (Τίτλος, Έτος)); CREATE TABLE Ηθοποιός (Όνομα varchar(20) not null, ιεύθυνση varchar(15), Έτος-Γέννησης int, primary key (Όνομα), check (Έτος-Γέννησης >= 1800)); CREATE TABLE Παίζει (Όνομα varchar(20) not null, Τίτλος varchar(20) not null, Έτος int not null, primary key (Όνομα, Τίτλος, Έτος), foreign key (Όνομα) references Ηθοποιός(Όνομα), on delete cascade, on update set NULL, foreign key (Τίτλος, Έτος) references Ταινία(Τίτλος, Έτος); Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 46 Τροποποίηση Στιγμιοτύπου 23

Τροποποίηση Πλειάδας Σε περίπτωση παραβίασης (αναφορικής ακεραιότητας): απόρριψη της τροποποίησης (αν δεν υπάρχει προσδιορισμός ή on update no action διάδοση της τροποποίησης (αυτόματη τροποποίηση όλων των πλειάδων που αναφέρονται σε αυτήν) on update cascade τροποποίηση των τιμών των αναφορικών γνωρισμάτων Πως; μια ειδική τιμή on update set default ή την τιμή NULL on update set null Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 47 1. Εισαγωγές Γλώσσα Χειρισμού εδομένων (επανάληψη) insert into R(A 1,, A n ) values (v 1,, v n ) 2. ιαγραφές delete from R where P 3. Ενημερώσεις/Τροποποιήσεις update R set Attr = New_Value where P Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 48 Τροποποίηση Στιγμιοτύπου 24