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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λογικός Σχεδιασµός Σχεσιακών Σχηµάτων: Αποσύνθεση. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σχεσιακός Λογισµός. Σχεσιακός Λογισµός Πλειάδων. σχεσιακά πλήρης γλώσσα

Σχεδιασµός µιας Β. Εισαγωγή. Μετατροπή σε σχεσιακό -> είσοδο σε ένα Σ Β. Εισαγωγή. Ιδέες Ο/Σ Σχέσεις Σχεσιακό Σ Β

Κανονικοποίηση Σχήµατος. Βάσεις εδοµένων Ευαγγελία Πιτουρά 1

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

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

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

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

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

Μοντέλο Οντοτήτων-Συσχετίσεων

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

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

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

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

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

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

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

Transcript:

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

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

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

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

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

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

Πεδία Τιµών Ο ορισµός πεδίου µπορεί να περιέχει τον προσδιορισµό not null και default τιµή Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 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 Ταινία(Τίτλος, Έτος); Όνοµα σχέσης + γνωρίσµατα Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 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 για τον ορισµό ξένου κλειδιού Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 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 Ταινία(Τίτλος, Έτος); Ορισµός πρωτεύοντος κλειδιού Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 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 Ταινία(Τίτλος, Έτος); Προφανώς, ο ορισµός του πίνακα στον οποίο αναφέρεται, πρέπει να προηγείται Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 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 Ταινία(Τίτλος, Έτος); Οι περιορισµοί ορίζονται µια φορά στο σχήµα και ελέγχονται κάθε φορά που γίνεται µια τροποποίηση του στιγµιοτύπου Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 18 Τροποποίηση Στιγµιότυπου 9

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

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

Τροποποιήσεις Τροποποίηση Βάσης Δεδοµένων: Γλώσσα Χειρισµού Δεδοµένων (ΓXΔ) Τροποποιήσεις 1. Εισαγωγή πλειάδας 2. Διαγραφή Πλειάδας 3. Τροποποίηση (Ενηµέρωση) Πλειάδας Οι εντολές αυτές ΤΡΟΠΟΠΟΙΟΥΝ το στιγµιότυπο της βάσης δεδοµένων (δηλαδή, το περιεχόµενο των πινάκων) Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 23 Εισαγωγή Πλειάδας Εισαγωγή: Παρέχει µια λίστα από τιµές γνωρισµάτων για µια νέα πλειάδα που πρέπει να εισαχθεί στη σχέση Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 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 Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 25 Εισαγωγή Πλειάδας Ταινία (Τίτλος, Έτος, Διάρκεια, Είδος) Παίζει(Όνοµα, Τίτλος, Έτος) Ηθοποιός(Όνοµα, Διεύθυνση, Έτος-Γέννησης) Παράδειγµα insert into Ταινία values ( The Big Blue, 1988, 132, Έγχρωµη ) Όταν µε οποιαδήποτε σειρά, π.χ.,: insert into Ταινία (Τίτλος, Είδος, Διάρκεια, Έτος) values ( The Big Blue, Έγχρωµη, 132, 1988) Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 26 Τροποποίηση Στιγµιότυπου 13

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

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

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

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

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

Διαγραφή Πλειάδας Σε περίπτωση παραβίασης (αναφορικής ακεραιότητας): απόρριψη της διαγραφής (αν δεν υπάρχει προσδιορισµός) ή on delete no action διάδοση της διαγραφής (αυτόµατη διαγραφή όλων των πλειάδων που αναφέρονται σε αυτήν) on delete cascade Αναλυτικά: τροποποίηση των τιµών των αναφορικών γνωρισµάτων Πως; µια ειδική τιµή on delete set default ή την τιµή NULL on delete set null Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 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 Ταινία(Τίτλος, Έτος); Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 38 Τροποποίηση Στιγµιότυπου 19

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

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

Τροποποίηση Πλειάδας Ποιους από τους περιορισµούς (πεδίου ορισµού, κλειδιού, ακεραιότητας οντοτήτων και αναφορικής ακεραιότητας) µπορεί να παραβιάζει το αποτέλεσµα µιας τροποποίησης; Όταν το γνώρισµα που τροποποιείται είναι ξένο κλειδί ή κλειδί; Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 43 Ορισµός Σχήµατος: Περιορισµοί Ακεραιότητας Όπως και στη διαγραφή, κατά τον ορισµό του σχήµατος ορίζουµε την κατάλληλη πράξη cascade, set null, set default (no action είναι το ίδιο µε το να µην προσδιορίσουµε τίποτα) on update Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 44 Τροποποίηση Στιγµιότυπου 22

Ορισµός Σχήµατος 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 Ταινία(Τίτλος, Έτος); Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 45 Τροποποίηση Πλειάδας Σε περίπτωση παραβίασης (αναφορικής ακεραιότητας): απόρριψη της τροποποίησης (αν δεν υπάρχει προσδιορισµός ή on update no action διάδοση της τροποποίησης (αυτόµατη τροποποίηση όλων των πλειάδων που αναφέρονται σε αυτήν) on update cascade τροποποίηση των τιµών των αναφορικών γνωρισµάτων Πως; µια ειδική τιµή on update set default ή την τιµή NULL on update set null Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 46 Τροποποίηση Στιγµιότυπου 23

Γλώσσα Χειρισµού Δεδοµένων (επανάληψη) 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 Βάσεις εδοµένων 2011-2012 Ευαγγελία Πιτουρά 47 Τροποποίηση Στιγµιότυπου 24