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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

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

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

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

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

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

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

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

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

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

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

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

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

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

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

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

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

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

Σχεδιασµός Σχεσιακών Σχηµάτων

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

Transcript:

Εισαγωγή Μοντελοποίηση Στα προηγούμενα μαθήματα: Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL Εννοιολογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Μοντέλου Οντοτήτων/Συσχετίσεων) Λογικός Σχεδιασμός Βάσεων εδομένων (με χρήση του Σχεσιακού Μοντέλου) Μετατροπή ανάμεσα στα μοντέλα Θα δούμε κάποιες βασικές εντολές για τον ορισμό σχήματος και τη δημιουργία/τροποποίηση στιγμιοτύπου Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 1 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 2 Εισαγωγή Εισαγωγή Πως θα υλοποιήσουμε (προγραμματίσουμε) την εφαρμογή μας χρησιμοποιώντας ένα σχεσιακό Σ Β : Γλώσσα Ορισμού εδομένων ( ΟΧ) (του σχήματος) <Data Definition Language (DDL)> Γλώσσα Χειρισμού εδομένων (ΓΧ ) <Data Manipulation Language (DML)> Γλώσσα Τροποποίησης (εισαγωγή, διαγραφή πλειάδων) Γλώσσα Ερωτήσεων (Επερωτήσεων) Οι γλώσσες ερωτήσεων απαντούν σε ερωτήσεις για τον παρόν στιγμιότυπο της βάσης δεδομένων (querying) ανάκτηση δεδομένων (θα τις δούμε αναλυτικά σε επόμενα μαθήματα) Βήματα ημιουργίας και Χρήσης μιας (Σχεσιακής) Βάσης εδομένων Σχεδιασμός Σχήματος ημιουργία Σχήματος χρησιμοποιώντας τη ΓΟ (DDL) Μαζική Φόρτωση των αρχικών δεδομένων Η βάση δεδομένων έχει δεδομένα Repeat: εκτέλεση ερωτήσεων (select-from-where) και τροποποιήσεων (insert-delete-update) στη βάση δεδομένων Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 3 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 4 Η γλώσσα SQL Η γλώσσα SQL H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων αρχικά Sequel στην IBM ως μέρος του System R, τώρα SQL (Stuctured Query Language) SQL-89, SQL-92, SQL-99 +++ H SQL έχει διάφορα τμήματα: Γλώσσα Ορισμού εδομένων (ΓΟ ) Γλώσσα Χειρισμού εδομένων (ΓΧ ) Ενσωματωμένη Γλώσσα Χειρισμού εδομένων Ορισμό Όψεων Εξουσιοδότηση (authentication) Ακεραιότητα Έλεγχο Συναλλαγών Συγκεκριμένα: DDL (Data Definition Language) - ορισμός, δημιουργία, τροποποίηση και διαγραφή σχήματος. DML (Data Manipulation Language) - ορισμός, δημιουργία, τροποποίηση, διαγραφή και επιλογή δεδομένων (γλώσσα ερωτήσεων). Προδιαγραφές ασφάλειας - χρήστες και δικαιώματα. Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 5 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 6 Βάσεις Δεδομένων 2008-2009: (SQL), Τροποποίηση Στιγμιοτύπου 1

Η γλώσσα SQL Μερικές Γενικές Παρατηρήσεις Ταινία Τίτλος Έτος Διάρκεια Είδος Oracle SQL και η MySQL μερικές φορές δεν ακολουθούν ακριβώς τα standards μερικές εντολές στις διαφάνειες μπορεί να μη «τρέχουν» Κάποιες αποκλίσεις περιγράφονται στη web σελίδα του μαθήματος Ηθοποιός Παίζει Όνομα-Ηθοποιού Τίτλος Έτος Όνομα Διεύθυνση Έτος-Γέννησης Επίσης, "interactive" SQL εντολές που πληκτρολογούνται μετά από το prompt και οι απαντήσεις εμφανίζονται στην οθόνη ως πίνακες "Embedded" και "dynamic" SQL: θα τη δούμε στην (επόμενη) προγραμματιστική άσκηση Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 7 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 8 Γλώσσα Ορισμού εδομένων Για κάθε σχεσιακό σχήμα μια γλώσσα ορισμού δεδομένων 1. Ορισμός σχήματος (όνομα στη σχεσιακή βάση δεδομένων) 2. Ορισμός των (σχημάτων) σχέσεων που αποτελούν τη βάση Όνομα σχέσης, ονόματα και πεδία ορισμού των γνωρισμάτων, περιορισμοί ορθότητας 3. Ορισμοί πεδίων ορισμού Γλώσσα Ορισμού εδομένων (ΓΟ ) Σχετικά με το λογικό σχήμα, η ΓΟ SQL υποστηρίζει τους ορισμούς: του σχήματος κάθε σχέσης του πεδίου τιμών κάθε γνωρίσματος των περιορισμών ακεραιότητας Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 9 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 10 Γενική ομή Ορισμού create table R(A 1 D 1, A 2 D 2,..., A n D n ), <περιορισμός-ακεραιότητας 1 >,, <περιορισμός-ακεραιότητας k > Γλώσσα Ορισμού εδομένων όπου R είναι το όνομα της σχέσης, A i τα ονόματα των γνωρισμάτων, και D i οι τύποι των αντίστοιχων πεδίων τιμών. Τύποι Πεδίου Ορισμού Πεδία Τιμών Για τον ορισμό του πεδίου ορισμού, οι διαθέσιμοι built-in τύποι περιλαμβάνουν περισσότερα στο βιβλίο και στη σελίδα του μαθήματος: char(n) (σταθερού μήκους) varchar(n) int smallint numeric(p, d) (d από τα p ψηφία είναι στα δεξιά της υποδιαστολής) real, double precision float(n) date (ημερομηνία) time (ώρα) Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 11 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 12 Βάσεις Δεδομένων 2008-2009: (SQL), Τροποποίηση Στιγμιοτύπου 2

Πεδία Τιμών Ο ορισμός πεδίου μπορεί να περιέχει τον προσδιορισμό not null και default τιμή ( Ορισμός σχήματος σχέσης Όνομα σχέσης + γνωρίσματα Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 13 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 14 : Περιορισμοί Ακεραιότητας Επιτρεπτοί περιορισμοί ακεραιότητας είναι της μορφής: 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 για τον ορισμό ξένου κλειδιού ( Ορισμός πρωτεύοντος κλειδιού Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 15 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 16 ( Ορισμός ξένου κλειδιού Προφανώς, ο ορισμός του πίνακα στον οποίο αναφέρεται, πρέπει να προηγείται Απλό παράδειγμα σημασιολογικού περιορισμού ( Οι περιορισμοί ορίζονται μια φορά στο σχήμα και ελέγχονται κάθε φορά που γίνεται μια τροποποίηση του στιγμιοτύπου Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 17 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 18 Βάσεις Δεδομένων 2008-2009: (SQL), Τροποποίηση Στιγμιοτύπου 3

Τροποποίηση Σχήματος Τροποποίηση Σχήματος Τροποποίηση Σχήματος ALTER TABLE όνομα πίνακα ADD - προσθέτει καινούργια στήλη DROP - διαγράφει μια στήλη MODIFY - τροποποιεί μια στήλη Προσθήκη νέου γνωρίσματος: alter table R add A D προσθήκη σε μια σχέση R που ήδη υπάρχει του γνωρίσματος A με πεδίο τιμών D, η τιμήτωνπλειάδωντηςr στο καινούργιο γνώρισμα είναι null. ιαγραφή γνωρίσματος: alter table R drop A Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 19 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 20 Τροποποίηση Σχήματος ιαγραφή Σχήματος ιαγραφή Σχήματος alter table R modify (όνομα_στήλης new_datatype) modify μπορεί να τροποποιήσει μόνο τον τύπο δεδομένων, όχι το όνομα της στήλης Μια καινούργια σχέση είναι αρχικά άδεια. Γιανασβηστείένασχήμα: drop table R Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 21 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 22 Εισαγωγή Πλειάδας Τροποποιήσεις Τροποποίηση Βάσης εδομένων: Γλώσσα Χειρισμού εδομένων (ΓX ) Τροποποιήσεις 1. Εισαγωγή πλειάδας 2. 3. Τροποποίηση (Ενημέρωση) Πλειάδας Εισαγωγή: Παρέχει μια λίστα από τιμές γνωρισμάτων για μια νέα πλειάδα που πρέπει να εισαχθεί στη σχέση Οι εντολές αυτές ΤΡΟΠΟΠΟΙΟΥΝ το στιγμιότυπο της βάσης δεδομένων (δηλαδή, το περιεχόμενο των πινάκων) Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 23 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 24 Βάσεις Δεδομένων 2008-2009: (SQL), Τροποποίηση Στιγμιοτύπου 4

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

Παραδείγματα (1) Όλες οι ηθοποιοί με το όνομα Kidman delete from Ηθοποιός where Όνομα = Kidman (2) Όλες τις ταινίες που έχουν γυριστεί πριν το 1950 delete from Ταινία where Έτος < 1950 Συνθήκη του where <Όνομα_Γνωρίσματος> <τελεστής> < Ονομα_Γνωρίσματος> ή <Τιμή> Τελεστές σύγκρισης: <, <=, >, >=, =, <>, κλπ Λογικοί τελεστές: and, or, not Στο from μόνο μια σχέση, αλλά στη συνθήκη του where μπορεί να εμφανίζονται και άλλες (θα το δούμε στη συνέχεια) Σβήνονται «ολόκληρες» πλειάδες Αν υπάρχουν παραπάνω από μια πλειάδες που ικανοποιούν τη συνθήκη, δεν υπάρχει τρόπος να διακρίνουμε τις πλειάδες, δηλαδή να σβήσουμε κάποιες Πρώτα, υπολογίζεται η συνθήκη του where και μετά διαγράφονται οι πλειάδες που ικανοποιούν τη συνθήκη Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 31 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 32 Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης) Ποιους από τους περιορισμούς (πεδίου ορισμού, κλειδιού, ακεραιότητας οντοτήτων και αναφορικής ακεραιότητας) μπορεί να παραβιάζει το αποτέλεσμα μια διαγραφής; : διαγραφή της ταινίας The Big Blue που γυρίστηκε το 1988 delete from Ταινία where Τίτλος = The Big Blue and Έτος = 1988 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 33 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 34 : Περιορισμοί Ακεραιότητας Σε περίπτωση παραβίασης (αναφορικής ακεραιότητας), έχουμε τις επιλογές: απόρριψη της διαγραφής διάδοση της διαγραφής (αυτόματη διαγραφή όλων των πλειάδων που αναφέρονται σε αυτήν) τροποποίηση των τιμών των αναφορικών γνωρισμάτων Πως; μια ειδική τιμή ή την τιμή NULL (αν επιτρέπεται) Η SQL μας επιτρέπει να προσδιορίσουμε ποια από τις παραπάνω επιλογές θα πραγματοποιείται σε περίπτωση παραβίασης Πότε: όταν ορίζουμε στο σχήμα τους περιορισμούς ξένου κλειδιού Περισσότερα για τους Περιορισμούς Αναφοράς Σύνταξη: Μετά τον ορισμό του: foreign key (A i ) references A j cascade, set null, set default (no action είναιτοίδιομετοναμην προσδιορίσουμε τίποτα) on delete Όταν μια πράξη παραβιάζει έναν περιορισμό αναφοράς απορρίπτεται εκτός αν έχει οριστεί κάτι άλλο Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 35 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 36 Βάσεις Δεδομένων 2008-2009: (SQL), Τροποποίηση Στιγμιοτύπου 6

Σε περίπτωση παραβίασης (αναφορικής ακεραιότητας): απόρριψη της διαγραφής (αν δεν υπάρχει προσδιορισμός) ή on delete no action διάδοση της διαγραφής (αυτόματη διαγραφή όλων των πλειάδων που αναφέρονται σε αυτήν) on delete cascade τροποποίηση των τιμών των αναφορικών γνωρισμάτων Πως; μια ειδική τιμή on delete set default ή την τιμή NULL on delete set null ( on delete cascade on delete cascade, on delete set NULL, foreign key (Τίτλος, Έτος) references Ταινία(Τίτλος, Έτος), Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 37 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 38 ιαγραφή Σχήματος και Πλειάδων Ταινία (Τίτλος, Έτος, ιάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, ιεύθυνση, Έτος-Γέννησης) : διαγραφή της ταινίας The Big Blue που γυρίστηκε το 1988 delete from Ταινία where Τίτλος = The Big Blue and Έτος = 1988 Το αποτέλεσμα εξαρτάται από το είδος περιορισμού αναφοράς που έχουμε ορίσει ιαγραφή Σχήματος Μια καινούργια σχέση είναι αρχικά άδεια. Γιανασβηστείένασχήμα: drop table R ιαφορά από delete from R Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 39 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 40 Τροποποίηση Πλειάδας Τροποποίηση Πλειάδας Τροποποίηση Πλειάδας σε SQL Τροποποίηση: Προσδιορίζεται μια συνθήκη πάνω στα γνωρίσματα της σχέσης και τροποποιούνται οι πλειάδες που την ικανοποιούν update R set Attr = New_Value where P : Αύξηση τις διάρκειας κάθε ταινίας κατά 10 λεπτά για όλες τις ταινίες με διάρκεια < 100 update Ταινία set ιάρκεια = ιάρκεια + 10 where ιάρκεια < 100 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 41 Βάσεις Δεδομένων 2008-2009 Ευαγγελία Πιτουρά 42 Βάσεις Δεδομένων 2008-2009: (SQL), Τροποποίηση Στιγμιοτύπου 7

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