Βάσεις Δεδομένων Ι 4η διάλεξη

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΣΧΕΣΙΑΚΗ ΑΛΓΕΒΡΑ 2 ΜΑΘΗΜΑ 4.
Advertisements

ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Φυσική Σχεδίαση – Υλοποίηση βάσης ΕΣΔ232 – Οργάνωση Δεδομένων στη.
Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Εισαγωγή στην SQL ΕΣΔ232 – Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας.
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΜΑΘΗΜΑ 2. ΣΧΕΣΙΑΚΗ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ • Μια σχεσιακή ΒΔ καταγράφει δεδομένα μέσα σε σχέσεις (πίνακες). • Μια πραγματική οντότητα γίνεται.
Βάσεις Δεδομένων.
Βάσεις Δεδομένων II Ευαγγελία Πιτουρά 1 Ασφάλεια και Δικαιοδοσία σε Βάσεις Δεδομένων.
Μοντέλο Οντοτήτων-Συσχετισμών
PL/SQL.
Ορισμοί Σχεσιακού Μοντέλου και (απλές)Τροποποιήσεις Σχέσεων στην SQL
Entity-Relationship Παραδείγματα Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Φροντιστήριο 1 Δαμιανός Χατζηαντωνίου.
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ ΜΕ ΣΥΖΕΥΞΗ ΠΙΝΑΚΩΝ
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων.
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΜΑΘΗΜΑ 3.
Βάσεις Δεδομένων Μάθημα 4.
9 Η Γλώσσα SQL Ορισμός Δεδομένων (data definition)
Πετρογεωργάκης Μανούσος Σπυρόπουλος Σταύρος
Βάσεις Δεδομένων Εργαστήριο Ι Τμήμα Πληροφορικής ΑΠΘ
Βάσεις Δεδομένων Ι Ενότητα 7: H γλώσσα SQL Γεωργία Γκαράνη Επίκουρος Καθηγήτρια Τμήμα Μηχανικών Πληροφορικής Τ.Ε. T.E.I. Θεσσαλίας.
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι Λόγοι που συνέτειναν στη υιοθέτηση των Συστημάτων Διαχείρισης Βάσεων Δεδομένων (Database Management Systems) Περιορίζονται τα πλεονασματικά.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων.
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ 2 ΜΑΘΗΜΑ 8. ΑΠΑΛΟΙΦΗ ΔΙΠΛΟΕΓΓΡΑΦΩΝ DISTINCT Μπορούμε να απαλείψουμε τις διπλοεγγραφές που μας επιστρέφονται και που οφείλονται στην.
9 Η Γλώσσα SQL  Εισαγωγή – Βασικές Έννοιες  Τύποι Δεδομένων  Ορισμός Δεδομένων  Χειρισμός Δεδομένων.
9 Η Γλώσσα SQL  Εισαγωγή – Βασικές Έννοιες  Τύποι Δεδομένων  Ορισμός Δεδομένων (data definition)  Χειρισμός Δεδομένων (data manipulation)
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Σχεσιακή Άλγεβρα.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Η Γλώσσα SQL.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Η Γλώσσα SQL.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεδιασμός μιας ΒΔ ανάλυση ποιας πληροφορίας και της σχέσης ανάμεσα στα στοιχεία της περιγραφή.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεδιασμός μιας ΒΔ ανάλυση ποιας πληροφορίας και της σχέσης ανάμεσα στα στοιχεία της περιγραφή.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Σχεσιακό Μοντέλο.
Κανονικοποίηση, συναρτησιακές εξαρτήσεις
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ « Advanced MySQL » Σμυρνάκη Ουρανία, Πανεπιστήμιο Κρήτης Σεμινάριο: 2ο Σχολείο Κώδικα Ημερομηνία: 10/07/2015 Με.
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Το σχεσιακό μοντέλο βάσεων δεδομένων ΕΣΔ232 – Οργάνωση Δεδομένων στη.
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κ.ΑΛΑΦΟΔΗΜΟΣ καθηγητής Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.
Βάσεις Δεδομένων Κεφ. 1 Πλεονεκτήματα Β.Δ. έναντι αρχείων Βασικές λειτουργίες Β.Δ. Εφαρμογές Β.Δ. στην καθημερινή ζωή.
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Περιγραφή Ενότητας Σκοπός του μαθήματος αυτού και κεντρικός σκοπός του μαθήματος των Βάσεων Δεδομένων Ι είναι η παρουσίαση των απαραίτητων εννοιών ώστε.
Αρχιτεκτονική Συστημάτων
Θερινό Σχολείο, 14 – 20 Ιουλίου 2014
Βάσεις Δεδομένων Ι Επανάληψη
Java DataBase Connectivity
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι να κατανοήσουμε την έννοια της όψης της γλώσσας SQL. Χ. Σκουρλάς.
Αρχιτεκτονική Συστημάτων
Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Βάσεις Δεδομένων Εισαγωγή για το Εργαστήριο Δρ. Τιάκας Ελευθέριος
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Βάσεις Δεδομένων Κωδικός Μαθήματος: MK741
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Βάσεις Δεδομένων Ι 8η διάλεξη
Βάσεις Δεδομένων και web-based Εφαρμογές
Αρχιτεκτονική Συστημάτων
Σχεσιακεσ βασεισ δεδομενων
Σχεσιακεσ βασεισ δεδομενων
Ερωτήματα Επιλογής σε ACCESS
Γ6.4 Μορφοποίηση Πινάκων και Πρωτεύον Κλειδί
POSTGRESQL Η PostgreSQL είναι ένα αντικείμενο-σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων (object relational database management system - ORDBMS) και.
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Ενότητα # 5: Περιορισμοί ακεραιότητας
ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή
SQL Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Μεταγράφημα παρουσίασης:

Βάσεις Δεδομένων Ι 4η διάλεξη

1 ΒΔ Στην πράξη!

https://dev.mysql.com/downloads/mysql/ MySQL Workbench Στην πράξη! MySQL https://dev.mysql.com/downloads/mysql/ MySQL Workbench http://dev.mysql.com/downloads/workbench/ Online http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all

2 Γλώσσα επικοινωνίας

Structured Query Language Data Definition Language SQL και DDL Structured Query Language Data Definition Language Θεωρούμε ότι η πρόσβαση στα δεδομένα σχετίζεται με ερωτήματα (query) Η DDL είναι κομμάτι/υποσύνολο της SQL και σχετίζεται με τις εντολές της δημιουργίας, διαγραφής και επεξεργασίας των πινάκων!

Student(sid: integer, name: string, login: string, age: integer) Δημιουργία πίνακα Student(sid: integer, name: string, login: string, age: integer) CREATE TABLE student ( sid INTEGER, name VARCHAR(30), login VARCHAR(30), age INTEGER); CREATE TABLE student ( sid INTEGER, name VARCHAR(30), login VARCHAR(30), age INTEGER);

ALTER TABLE student ADD COLUMN firstYear INTEGER Διαχείριση πίνακα DROP TABLE student ALTER TABLE student ADD COLUMN firstYear INTEGER

DELETE FROM student WHERE sid = 1 Διαχείριση δεδομένων INSERT INTO student (sid, name, login, age, firstYear) VALUES (1, “John”, “john@cs.gr”, 18, 2015) DELETE FROM student WHERE sid = 1 DELETE FROM student S WHERE S.sid = 1 UPDATE student SET name = “Jane” WHERE sid = 1 UPDATE student S SET S.name = “Jane” WHERE S.sid = 1

Θέλω να δω όλους τους φοιτητές που είναι 18 ετών Ερώτημα Θέλω να δω όλους τους φοιτητές που είναι 18 ετών Θέλω να δω όλους τους φοιτητές που το όνομά τους είναι John Θέλω να δω όλους τους φοιτητές που έχουν εισαχθεί το 2015 SELECT * FROM student S WHERE S.age = 18 SELECT S.name FROM student S WHERE S.age = 18 SELECT S.name, S.login FROM student S WHERE S.firstYear = 2015 and S.age = 18

SQL Reference http://www.w3schools.com/sql/sql_quickref.asp

3 Περιορισμοί ακεραιότητας

Περιορισμός ακεραιότητας Συνθήκη που δηλώνεται να ισχύει πάνω σε ένα σχήμα βάσης δεδομένων και περιορίζει τα δεδομένα που μπορεί να υπάρχουν σε κάθε στιγμιότυπο Εφαρμογή: σε διαφορετικές χρονικές στιγμές!

Περιορισμός πεδίου ορισμού Επιτρέπονται αποκλειστικά και συγκεκριμένες τιμές που μπορούν να καταχωρηθούν σε ένα πεδίο σύμφωνα με το πεδίο ορισμού.

Κάθε τέτοιο σύνολο ονομάζεται υποψήφιο κλειδί Περιορισμός κλειδιού Υπάρχει κάποιο ελαχιστοποιημένο υποσύνολο του συνόλου των πεδίων του οποίου η συνδυασμένη τιμή ορίζει μονοσήμαντα το σύνολο των πεδίων. Κάθε τέτοιο σύνολο ονομάζεται υποψήφιο κλειδί Το σύνολο που θα επιλεγεί για να αποτελέσει το κλειδί ονομάζεται πρωτεύον κλειδί (primary key)

Τι σημαίνει ο περιορισμός; Δύο διακριτές πλειάδες δε μπορεί να έχουν ίδιες τιμές στο σύνολο των πεδίων που ορίζει το κλειδί Κανένα υποσύνολο του συνόλου δεν παρέχει δυνατότητα μονοσήμαντου προσδιορισμού

CREATE TABLE student ( sid INTEGER, name VARCHAR(30), Ορισμός κλειδιού CREATE TABLE student ( sid INTEGER, name VARCHAR(30), login VARCHAR(30), age INTEGER, CONSTRAINT studentKey PRIMARY KEY (sid) )

Κάποια σχέση μπορεί να συνδυάζεται με μια τελείως διαφορετική σχέση Ξένο κλειδί Κάποια σχέση μπορεί να συνδυάζεται με μια τελείως διαφορετική σχέση Από πότε Αριθμός Μητρώου Όνομα Επίθετο Αναγνωριστικό Ονομασία σπουδάζει Φοιτητής Σχολή

Παραμένει διαρκώς σε συνεπή και συγχρονισμένη κατάσταση Ξένο κλειδί Παραμένει διαρκώς σε συνεπή και συγχρονισμένη κατάσταση Οι αυτοματισμοί προκύπτουν από τους περιορισμούς ακεραιότητας του DBMS

student (am, name, surname) department (identification, name) Φοιτητής Αριθμός Μητρώου Όνομα Επίθετο Σχολή Αναγνωριστικό Ονομασία σπουδάζει Από πότε Ξένο κλειδί student (am, name, surname) department (identification, name) studies ( “student”, “department”, fromWhen)

Ξένο κλειδί 123 John Doe 124 Jane A1 Computer Science A2 Economics ? Am Name surname 123 John Doe 124 Jane id Name A1 Computer Science A2 Economics Student Department FromWhen ?

Ξένο κλειδί 123 John Doe 124 Jane A1 Computer Science A2 Economics 123 Am Name surname 123 John Doe 124 Jane id Name A1 Computer Science A2 Economics Student Department FromWhen 123 A2 1/1/2014 124 A1 10/9/2013

am στον student: Πρωτεύον Κλειδί (PK) Κλειδιά am στον student: Πρωτεύον Κλειδί (PK) id στον department: Πρωτεύον Κλειδί (PK) am στον studies: Ξένο κλειδί (FK) id στον studies: Ξένο κλειδί (FK) Κλειδί του studies?

Ορισμός ξένου κλειδιού CREATE TABLE studies ( sid INTEGER, am INTEGER, id INTEGER, fromWhen DATE, PRIMARY KEY (sid), FOREIGN KEY (am) REFERENCES student FOREIGN KEY (id) REFERENCES department )

Γενικού τύπου περιορισμοί Περιορισμός σε επίπεδο πίνακα Περιορισμός σε επίπεδο ΒΔ

4 Επιβολή Των περιορισμών

Εφαρμογή των περιορισμών Περιορισμός σε επίπεδο πίνακα Περιορισμός σε επίπεδο ΒΔ

Παραβιάσεις των περιορισμών am name surname (null) John Doe 124

Αναφορική ακεραιότητα Η δυνατότητα που έχει το DBMS να επιβάλει συνέπεια και συγχρονισμό στο ξένο κλειδί

Τι πρέπει να γίνει αν διαγράψω μια εγγραφή από τον πίνακα student Ερωτήματα Τι πρέπει να γίνεται όταν εισάγεται μια νέα εγγραφή στον πίνακα studies η οποία έχει τιμή για τη στήλη am (student) η οποία δεν υπάρχει στον πίνακα student; Τι πρέπει να γίνει αν διαγράψω μια εγγραφή από τον πίνακα student Τι πρέπει να γίνει αν αλλάξω την τιμή ενός κλειδιού για τον πίνακα student

NOT NULL (δεν επιτρέπεται κενό) ON DELETE ON UPDATE Βασικοί περιορισμοί! NOT NULL (δεν επιτρέπεται κενό) ON DELETE ON UPDATE

5 ER σε σχήμα

Πως πρέπει να μετατρέπω κάθε ER σε ένα σχήμα;

Πως πρέπει να μετατρέπω κάθε ER σε ένα σχήμα;

Μετασχηματισμών οντοτήτων σε πίνακες Μετασχηματισμοί Μετασχηματισμών οντοτήτων σε πίνακες Μετασχηματισμός συσχετίσεων σε πίνακες (χωρίς περιορισμούς) Μετασχηματισμός συσχετίσεων σε πίνακες (με περιορισμό κλειδιού) Μετασχηματισμός συσχετίσεων σε πίνακες (με περιορισμό συμμετοχής)