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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

Transcript:

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

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

Εισαγωγή Βήματα Δημιουργίας και Χρήσης μιας (Σχεσιακής) Βάσης Δεδομένων Σχεδιασμός Σχήματος Δημιουργία Σχήματος χρησιμοποιώντας τη ΓΟΔ(DDL) Μαζική Φόρτωση των αρχικών δεδομένων Η βάση δεδομένων έχει δεδομένα Repeat: εκτέλεση ερωτήσεων (select-from-where) και τροποποιήσεων (insert-delete-update) στη βάση δεδομένων Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 5 Παράδειγµα Ταινία Τίτλος Έτος ιάρκεια Είδος Παίζει Όνοµα-Ηθοποιού Τίτλος Έτος Ηθοποιός Όνοµα ιεύθυνση Έτος-Γέννησης Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 6 Τροποποίηση Στιγµιότυπου 3

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

Γλώσσα Ορισµού Δεδοµένων Γλώσσα Ορισμού Δεδομένων (ΓΟΔ) Σχετικά με το λογικό σχήμα, η ΓΟΔ SQL υποστηρίζει τους ορισμούς: του σχήματος κάθε σχέσης του πεδίου τιμών κάθε γνωρίσματος των περιορισμών ακεραιότητας Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 9 Γενική Δομή Ορισμού Γλώσσα Ορισµού Δεδοµένων create tabler(a 1 D 1, A 2 D 2,..., A n D n ), <περιορισμός-ακεραιότητας 1 >,, <περιορισμός-ακεραιότητας k > όπου R είναι το όνομα της σχέσης, A i τα ονόματα των γνωρισμάτων,καιd i οιτύποιτωναντίστοιχωνπεδίωντιμών. Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 10 Τροποποίηση Στιγµιότυπου 5

Πεδία Τιµών Τύποι Πεδίου Ορισµού Για τον ορισμό του πεδίου ορισμού, οι διαθέσιμοι built-in τύποι περιλαμβάνουν περισσότερα στο βιβλίο και στη σελίδα του μαθήματος: o char(n)(σταθερού μήκους) o varchar(n) oint osmallint onumeric(p,d)(dαπόταpψηφίαείναισταδεξιάτηςυποδιαστολής) o real, double precision ofloat(n) o date (ημερομηνία) otime(ώρα) Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 11 Πεδία Τιµών Ο ορισμός πεδίου μπορεί να περιέχει τον προσδιορισμό not nullκαι default τιμή Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 12 Τροποποίηση Στιγµιότυπου 6

Ορισµός Σχήµατος Παράδειγµα 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 Ταινία(Τίτλος, Έτος); Όνοµα σχέσης + γνωρίσµατα Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 13 Ορισµός Σχήµατος: Περιορισµοί Ακεραιότητας Επιτρεπτοί περιορισμοί ακεραιότητας είναι της μορφής: primary key (A j1, A j2,..., A jn), (δεν επιτρέπονται επαναλαμβανόμενες τιμές και NULL τιμές) για τον ορισμό του πρωτεύοντος κλειδιού unique (A j1,a j2,...,a jn),(δενεπιτρέπονταιεπαναλαμβανόμενεςτιμές; NULL τιμές επιτρέπονται(μόνο μία)) για τον ορισμό υποψηφίων κλειδιών checkp για τον ορισμό σημασιολογικών περιορισμών foreignkey(a i )referencesa j για τον ορισμό ξένου κλειδιού Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 14 Τροποποίηση Στιγµιότυπου 7

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

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

Τροποποίηση Σχήµατος Προσθήκη νέου γνωρίσματος: alter table R add A D προσθήκη σε μια σχέση R που ήδη υπάρχει του γνωρίσματος A με πεδίο τιμών D, η τιμή των πλειάδων της R στο καινούργιο γνώρισμα είναι null. Διαγραφή γνωρίσματος: alter tabler dropa Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 19 Τροποποίηση Σχήµατος alter table R modify (όνομα_στήλης new_datatype) modify μπορεί να τροποποιήσει μόνο τον τύπο δεδομένων, όχι το όνομα της στήλης Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 20 Τροποποίηση Στιγµιότυπου 10

Διαγραφή Σχήµατος Διαγραφή Σχήματος Μια καινούργια σχέση είναι αρχικά άδεια. Για να σβηστεί ένα σχήμα: drop tabler Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 21 Τροποποιήσεις Τροποποίηση Βάσης Δεδομένων: Γλώσσα Χειρισμού Δεδομένων (ΓXΔ) Τροποποιήσεις 1. Εισαγωγή πλειάδας 2. Διαγραφή Πλειάδας 3. Τροποποίηση (Ενημέρωση) Πλειάδας Οι εντολές αυτές ΤΡΟΠΟΠΟΙΟΥΝ το στιγμιότυπο της βάσης δεδομένων (δηλαδή, το περιεχόμενο των πινάκων) Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 22 Τροποποίηση Στιγµιότυπου 11

Εισαγωγή Πλειάδας Εισαγωγή: Παρέχει μια λίστα από τιμές γνωρισμάτων για μια νέα πλειάδα που πρέπει να εισαχθεί στη σχέση Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 23 Εισαγωγή Πλειάδας Εισαγωγή πλειάδας σε SQL Για να εισάγουμε δεδομένα σε μια σχέση είτε (α) προσδιορίζουμε την πλειάδα, insert into R(A 1,, A n ) values (v 1,, v n ) είτε (β) γράφουμε μια ερώτηση που το αποτέλεσμα της εισάγεται στη σχέση. insert into R(A 1,, A n ) select-from-where Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 24 Τροποποίηση Στιγµιότυπου 12

Εισαγωγή Πλειάδας Ταινία (Τίτλος, Έτος, Διάρκεια, Είδος) Παίζει(Όνομα, Τίτλος, Έτος) Ηθοποιός(Όνομα, Διεύθυνση, Έτος-Γέννησης) Παράδειγμα insert intoταινία values( The Big Blue, 1988, 132, Έγχρωμη ) Όταν με οποιαδήποτε σειρά, π.χ.,: insert into Ταινία (Τίτλος, Είδος, Διάρκεια, Έτος) values( The Big Blue, Έγχρωμη, 132, 1988) Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 25 Εισαγωγή Πλειάδας Ταινία (Τίτλος, Έτος, Διάρκεια, Είδος) Παίζει(Όνοµα, Τίτλος, Έτος) Ηθοποιός(Όνοµα, Διεύθυνση, Έτος-Γέννησης) Επίσης, εισαγωγή null τιμών: insert into Ταινία values( The Big Blue, 1988, null, Έγχρωμη ) ή αν δεδίνω τιμές για όλατα γνωρίσματα insert into Ταινία (Τίτλος, Έτος, Είδος) values( The Big Blue, 1988, Έγχρωμη ) Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 26 Τροποποίηση Στιγµιότυπου 13

Εισαγωγή Πλειάδας Ποιους από τους περιορισμούς (πεδίου ορισμού, κλειδιού, ακεραιότητας οντοτήτων και αναφορικής ακεραιότητας) μπορεί να παραβιάζει μια τέτοια λίστα τιμών; Σε περίπτωση παραβίασης: Απόρριψη εισαγωγής Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 27 Διαγραφή Πλειάδας Διαγραφή: Προσδιορίζεται μια συνθήκη πάνω στα γνωρίσματα της σχέσης και διαγράφονται οι πλειάδες που την ικανοποιούν Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 28 Τροποποίηση Στιγµιότυπου 14

Διαγραφή Πλειάδας Διαγραφή σε SQL Μπορούμε να σβήσουμε μόνο ολόκληρες πλειάδες (γραμμές) και όχι συγκεκριμένα γνωρίσματα. delete from R where P ΣβήνειόλεςτιςπλειάδεςτηςRγιατιςοποίεςισχύειτοP. Όταν λείπει το where σβήνονται όλες οι πλειάδες μιας σχέσης. Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 29 Διαγραφή Πλειάδας Παραδείγματα (1) Όλες οι ηθοποιοί με το όνομα Kidman delete from Ηθοποιός where Όνομα = Kidman (2) Όλες τις ταινίες που έχουν γυριστεί πριν το 1950 delete from Ταινία whereέτος < 1950 Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 30 Τροποποίηση Στιγµιότυπου 15

Διαγραφή Πλειάδας Συνθήκη του where <Όνομα_Γνωρίσματος> <τελεστής> < Ονομα_Γνωρίσματος> ή <Τιμή> Τελεστές σύγκρισης: <, <=, >, >=, =, <>, κλπ Λογικοί τελεστές: and, or, not Πρώτα, υπολογίζεται η συνθήκη του where και μετά διαγράφονται οι πλειάδες που ικανοποιούν τη συνθήκη Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 31 Διαγραφή Πλειάδας Ποιους από τους περιορισμούς (πεδίου ορισμού, κλειδιού, ακεραιότητας οντοτήτων και αναφορικής ακεραιότητας) μπορεί να παραβιάζει το αποτέλεσμα μια διαγραφής; Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 32 Τροποποίηση Στιγµιότυπου 16

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

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

Ορισµός Σχήµατος CREATE TABLE Ταινία (Τίτλος varchar(20), Έτος int, Διάρκεια int, Είδος varchar(20), primary key(τίτλος, Έτος)); CREATE TABLE Ηθοποιός (Όνομα varchar(20), Διεύθυνση varchar(15), Έτος-Γέννησης int, primary key(όνομα), check (Έτος-Γέννησης >= 1800)); CREATE TABLE Παίζει (Όνομα varchar(20), Τίτλος varchar(20), Έτος int, primary key(όνομα, Τίτλος, Έτος), foreign key (Όνομα) references Ηθοποιός(Όνομα), on delete cascade, foreign key (Τίτλος, Έτος) references Ταινία(Τίτλος, Έτος), on delete cascade CREATE TABLE Παίζει (Όνομα varchar(20), Τίτλος varchar(20), Έτος int, primary key(όνομα, Τίτλος, Έτος), foreign key (Όνομα) references Ηθοποιός(Όνομα), on delete cascade, foreign key (Τίτλος, Έτος) references Ταινία(Τίτλος, Έτος); Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 37 Διαγραφή Σχήµατος και Πλειάδων Διαγραφή Σχήματος Μια καινούργια σχέση είναι αρχικά άδεια. Για να σβηστεί ένα σχήμα: drop tabler Διαφορά από delete from R Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 38 Τροποποίηση Στιγµιότυπου 19

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

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

Τροποποίηση Πλειάδας Σε περίπτωση παραβίασης (αναφορικής ακεραιότητας): απόρριψη της τροποποίησης (αν δεν υπάρχει προσδιορισμός ή on update no action διάδοση της τροποποίησης (αυτόματη τροποποίηση όλων των πλειάδων που αναφέρονται σε αυτήν) on update cascade τροποποίηση των τιμών των αναφορικών γνωρισμάτων Πως; μιαειδικήτιμήonupdatesetdefault ή τηντιμήnullonupdatesetnull Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 43 Ορισµός Σχήµατος CREATE TABLE Ταινία (Τίτλος varchar(20), Έτος int, Διάρκεια int, Είδος varchar(20), primary key(τίτλος, Έτος)); CREATE TABLE Ηθοποιός (Όνομα varchar(20), Διεύθυνση varchar(15), Έτος-Γέννησης int, primary key(όνομα), check (Έτος-Γέννησης >= 1800)); CREATE TABLE Παίζει (Όνομα varchar(20), Τίτλος varchar(20), Έτος int, primary key(όνομα, Τίτλος, Έτος), foreign key (Όνομα) references Ηθοποιός(Όνομα), on update cascade, on delete set default Kidman, foreign key (Τίτλος, Έτος) references Ταινία(Τίτλος, Έτος); Βάσεις εδοµένων 2012-2013 Ευαγγελία Πιτουρά 44 Τροποποίηση Στιγµιότυπου 22

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