«Εισαγωγή στις ΒΔ - SQL»

Σχετικά έγγραφα
Σχεδιασμός Βάσεων Δεδομένων

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

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

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

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

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Επίλυση προβλήματος με Access

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

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Διαχείρισης Βάσεων Δεδομένων

Βάσεις Δεδομένων (Ε) Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων

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

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

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

Πληροφοριακά Συστήµατα

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

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

Σύβακας Σταύρος ΠΕ19,MSc. IT ΣΥΒΑΚΑΣ ΣΤΑΥΡΟΣ ΕΡΩΤΗΜΑΤΑ

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

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

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

Οδηγίες Χρήσης της MySQL

2 η Εργαστηριακή Άσκηση

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

Οδηγίες Χρήσης της MySQL

Σχεδίαση Βάσεων Δεδομένων

Σύγχρονες Εφαρμογές Τεχνολογιών της Πληροφορίας και των Επικοινωνιών

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

Διάλεξη 02: Βάσεις Δεδομένων Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου

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

ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ. Πετρογεωργάκης Μανούσος Σπυρόπουλος Σταύρος

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

10 η Διάλεξη Python Βάσεις δεδομένων στη python

Σχεδίαση Βάσεων Δεδομένων

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

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

Βάσεις εδομένων ΘΕΜΑ ΕΡΓΑΣΙΑΣ. Μέρμηγκας Αλέξανδρος Α.Μ ιαχείρηση Πληροφοριακών Συστηματών

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

1. ΑΝΟΙΞΤΕ ΤΟΝ ΠΙΝΑΚΑ CUSTOMER ΚΑΙ ΣΤΟ ΜΕΝΟΥ ΕΠΙΛΕΞΤΕ

Σχεδιασμός Πληροφοριακών Συστημάτων. Σημειώσεις

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Δείχτες Επιτυχίας και Δείχτες Επάρκειας

Ενότητα 19 Πως να χειρίζεστε λίστες

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 3) Ουρανία Σμυρνάκη

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

Database System Concepts and Architecture (Αρχιτεκτονική, οµές, και Μοντέλα)

ΕΦΑΡΜΟΓΕΣ Η/Υ ΣΤΗ ΔΑΣΟΠΟΝΙΑ

Βάσεις δεδομένων. Δημιουργία και διαχείριση βάσης δεδομένων

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

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

Βασικές Εντολές SQL. Θεωρία & Εντολές SQL. Γραμμή Εντολών MS-DOS (MySQL)

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

ΤΑΞΙΝΟΜΗΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΕΡΩΤΗΜΑΤΟΣ

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

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενα: Βάσεις δεδομένων, σχέσεις μεταξύ πινάκων, ερωτήματα, φόρμες και αναφορές.

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

Microsoft Access 2007

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

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

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

Διάλεξη 16: SQL DML IV, SQL DCL, SQL TCL. Διδάσκων: Παναγιώτης Ανδρέου

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

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

Ζαχαρίας Μ. Κοντοπόδης Microsoft Jet S.Q.L. Διαφάνεια 1η

Θέματα Προγραμματισμού Διαδικτύου ~ MySQL & PHP ~

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2

PHPMyAdmin: Σύντομος οδηγός για αρχάριους

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

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

Ανάκτηση Δεδομένων (Information Retrieval)

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

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

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

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

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

Πληροφοριακά Συστήματα Διοίκησης

Κεφάλαιο 6. Περιορισμοί Ακεραιότητας Βάσεων Δεδομένων

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

Transcript:

«Εισαγωγή στις ΒΔ - SQL» Κωνσταντίνος Λουκάς Εργαστήριο Ιατρικής Φυσικής Ιατρική Σχολή ΕΚΠΑ e-mail: cloukas@med.uoa.gr

Περίγραμμα Παρουσίασης Εισαγωγικά Από τι αποτελείται μια ΒΔ Πως οργανώνεται, σχεδιάζεται Τι είναι οι σχεσιακές ΒΔ Τι είναι η SQL, βασικές εντολές 2

Τι είναι η ΒΔ? Ολοκληρωμένη και δομημένη συλλογή δεδομένων διαφορετικής μορφής. Ο όρος ΒΔ αναφέρεται και στο πρόγραμμα που χρησιμοποιούμε για να κατασκευάσουμε αυτή τη συλλογή. MySQL, SQL Server, Oracle, MS Access,... Η ΒΔ επιτρέπει την αποθήκευση, οργάνωση, διαχείριση, παρουσίαση και ανάκτηση των δεδομένων (με λειτουργικό τρόπο) Συστήματα που χρησιμοποιούν ΒΔ: e-commerce (π.χ. e-booking,...) Social Media (facebook,...) Τράπεζες (web banking,...) Και φυσικά στα νοσοκομεία (e-medical record,...) 3

Η εξέλιξη στις ΒΔ (Ι) Φάκελοι, καρτέλες, κατάλογοι, Ιεράρχηση?, ταξινόμηση?, αυτοματοποιημένες διαδικασίες?, reports?,... 4

Η εξέλιξη στις ΒΔ (II) Πρώιμα στάδια, ψηφιακά αρχεία, ξεχωριστά όμως ανά κατηγορία. Ευκολία στην αναζήτηση αλλά Δυσκολίες στη διαχείριση, επικαιροποίηση, κλπ. Πρέπει να ανοίξεις >2 αρχεία για να βρεις/συνδέσεις πληροφορίες. Τα αρχεία δεν σχετίζονται μεταξύ τους 5

Η εξέλιξη στις ΒΔ (ΙΙI) Excel Spreadsheets Ευκολία στην αναζήτηση, επικαιροποίηση, φιλτράρισμα, ταξινόμηση, αλλά 6 Περιορισμένος αριθμός εγγραφών, πίνακες δεν σχετίζονται μεταξύ τους, περιορισμένες δυνατότητες σε Φόρμες, Αναφορές από τη ΒΔ, κλπ.

Η εξέλιξη στις ΒΔ (ΙVα) Relational Databases (π.χ. MS-Access: εύχρηστη για μικρές ΒΔ) 7 Ευκολία στην αναζήτηση, επικαιροποίηση, φιλτράρισμα, ταξινόμηση, μεγάλος αριθμός εγγραφών, μπορείς να συσχετίσεις πίνακες, επιπλέον δυνατότητες όπως: ερωτήματα (queries), συναρτήσεις, φόρμες, αναφορές,

Η εξέλιξη στις ΒΔ (ΙVβ) Σχέσεις μεταξύ πινάκων 8

Η εξέλιξη στις ΒΔ (ΙVγ) Έλεγχος των δεδομένων (π.χ. τι μπορεί να εισάγει ο χρήστης) 9

Η εξέλιξη στις ΒΔ (ΙVδ) Περιβάλλον διεπαφής (για παρουσίαση των δεδομένων και δημιουργία αναφορών προς άλλους χρήστες) 10

Σύστημα Διαχείρισης ΒΔ - RDBMS 11

Παράδειγμα Ιατρικής ΒΔ - ιατρικός φάκελος (Διεπαφή: εισαγ. κωδικών, στοιχεία/ιστορικό ασθενή, εικόνες) 12

Από τι αποτελείται μία ΒΔ? Το λογισμικό κατασκευής μίας ΒΔ αποτελείται από δεδομένα και εργαλεία διαχείρισης αυτών των δεδομένων. Πίνακες (Tables) Ερωτήματα (Queries) Φόρμες (Forms) Αναφορές (Reports) Συναρτήσεις (Functions) Macros (στην Access) Modules (στην Access) 13 Αποθήκευση δεδομένων Οργάνωση των δεδομένων Παρουσίαση των δεδομένων Για Εκτύπωση δεδομένων Εκτέλεση πράξεων Αυτοματοποίηση ενεργειών (π.χ. όταν πατάμε ένα κουμπί σε μία φόρμα για να: τρέξω ένα ερώτημα, να ανοίξω report, να κλείσω τη ΒΔ, κλπ) Προγραμματισμός, συλλογή από συναρτήσεις, ρουτίνες, μεταβλητές.

Πίνακας - παράδειγμα Απλός αλλά μη λειτουργικός τρόπος οργάνωσης/αποθήκευσης Βελτιωμένος τρόπος, πιο λειτουργικός 14

Query - παράδειγμα π.χ. θέλουμε να επιλέξουμε ασθενείς με συγκεκριμένη ασθένεια, ή ημ/νία επίσκεψης (εφαρμογή κριτηρίων) ή να τους ιεραρχήσουμε, ή να επιλέξουμε ορισμένα μόνο στοιχεία που βρίσκονται όμως σε άλλο πίνακα (relations). Μπορούμε να τροποποιήσουμε τους πίνακες (delete, update, add) Μπορούμε να σώσουμε (τα queries) και να τα χρησιμοποιήσουμε όποτε χρειαστεί. 15

Form - παράδειγμα Όταν θέλουμε να παρουσιάσουμε τα δεδομένα με λειτουργικό τρόπο. Δεν θέλουμε οι χρήστες να έχουν πρόσβαση σε όλους του πίνακες της ΒΔ. Μπορούν να περιέχουν drop down lists, command buttons, text boxes, etc. 16

Reports - παράδειγμα Π.χ. εκτύπωση συνταγής ή παραπεμπτικού, κλπ με στοιχεία από τη ΒΔ. 17

Macros, Modules Χρησιμοποιούνται στην Access. Macros: αυτοματοποιούν επαναληπτικές διαδικασίες ή απλές ενέργειες. Modules: VB programming code. 18

Πως οργανώνονται τα δεδομένα στη ΒΔ Τα δεδομένα εμπεριέχονται σε πίνακες (tables). Οι γραμμές κάθε πίνακα ονομάζονται εγγραφές (records). Τα πεδία κάθε γραμμής ονομάζονται data fields. Η ονομασία κάθε στήλης ονομάζεται «χαρακτηριστικό» (attribute) ή «πεδίο». Στις σχεσιακές ΒΔ οι πίνακες συνδέονται μεταξύ τους (θα δούμε παρακάτω με ποιο τρόπο ) 19

Ιδιότητες Πεδίων Στις ΒΔ μπορεί να οριστεί ο «τύπος» του κάθε πεδίου με μεγάλη λεπτομέρεια χρησιμοποιώντας τα «field properties» 20

Πως σχεδιάζω μια ΒΔ (πρώτα στο χαρτί!) Τι/πόσους πίνακες θέλουμε? Ποιοι πρέπει να σχετίζονται και πως? Πόσα πεδία θέλουμε σε κάθε πίνακα? Τι τύπος σε κάθε πεδίο? Πως πρέπει να είναι οι φόρμες και οι αναφορές. Πρέπει να «επικοινωνούν» μεταξύ τους? 21

Το ίδιο και για τις φόρμες 22

Αποφεύγουμε να αναμιγνύουμε ανομοιογενή πληροφορία στον ίδιο πίνακα. Τι να αποφεύγεται Διαχωρίζουμε π.χ. πίνακα με αιτήματα εξετάσεων, περιστατικά, πίνακα ασθενών, κλπ. 23

Σχεσιακές ΒΔ Κλειδιά Πρωτεύοντα (Primary Keys) Εξωτερικά (Foreign Keys) Σχέσεις μεταξύ δύο πινάκων ένα προς ένα ένα προς πολλά πολλά προς πολλά 24

Κλειδιά Για τη σύνδεση δύο πινάκων χρησιμοποιούμε τα «κλειδιά». Πρόκειται για μία στήλη (συνήθως, μπορεί και συνδυασμός) που καθορίζει με μοναδικό τρόπο τις εγγραφές κάθε πίνακα. Το Πρωτεύων Κλειδί (PK) ταυτοποιεί τις εγγραφές του πίνακα στον οποίο βρίσκεται. Όταν ορίσουμε μία στήλη σαν PK, το RDBMS υλοποιεί τους εξής περιορισμούς: Δεν θα υπάρξουν 2 εγγραφές με την ίδια τιμή. Το PK θα έχει πάντα κάποια τιμή σε κάθε γραμμή (δεν θα είναι κενή). Το εξωτερικό κλειδί (FK) χρησιμοποιείται για τη σύνδεση δύο πινάκων (περισσότερα στις «σχέσεις πινάκων»). 25 Όταν σε ένα πίνακα (με δικό του PK) έχουμε επιπλέον στήλη με το PK άλλου πίνακα!

Κλειδιά στην Access 26

Κλειδιά παράδειγμα I Έστω: Students (sid, name, login, age, gpa) Students identifies the table sid, name, login, age, gpa identify attributes sid is primary key Στο Schema: ορίζουμε πίνακες, χαρακτηριστικά (attributes) Students (sid: string, name: string, login: string, age: integer, gpa: real) sid name login age gpa 50000 Dave dave@cs 19 3.3 53666 Jones jones@cs 18 3.4 53688 Smith smith@ee 18 3.2 53650 Smith smith@math 19 3.8 53831 Madayan madayan@music 11 1.8 53832 Guldu guldu@music 12 2.0 27

Κλειδιά παράδειγμα II Έστω: Courses (cid, instructor, quarter, dept) cid instructor quarter dept Carnatic101 Jane Fall 06 Music Reggae203 Bob Summer 06 Music Topology101 Mary Spring 06 Math History105 Alice Fall 06 History Στη συνέχεια θα δούμε πως μπορούμε να συνδέουμε τέτοιους πίνακες 28

Σχέση ένα προς ένα Κάθε εγγραφή ενός πίνακα συνδέεται μόνο με μία εγγραφή του άλλου πίνακα. Για κάθε πελάτη στον πίνακα employees υπάρχει μία και μόνο εγγραφή στον πίνακα με τα δεδομένα employee_data. 29

Σχέση ένα προς πολλά (Ι) Κάθε εγγραφή ενός πίνακα συνδέεται μόνο με πολλές εγγραφές του άλλου πίνακα. 30

Σχέση ένα προς πολλά (ΙΙ) π.χ. ένας ασθενής μπορεί να έχει >1 περιστατικά. Άρα ο πίνακας «ασθενείς» συνδέεται με τον πίνακα «περιστατικά» με σχέση «ΕΠΠ». PK PK FK Παιδί 31 Πατέρας

Παρατηρήσεις για PK, FK, σχέση «ΕΠΠ» Για το PK: αν γίνει προσπάθεια εισαγωγής νέου πελάτη με κωδικό ίδιο με κάποιου ήδη καταχωρημένου, το RDBMS θα απορρίψει την εισαγωγή. H σύνδεση μεταξύ εγγραφών των δύο πινάκων γίνεται συνήθως με το PK του Πατέρα να γίνει FK στο «Παιδί». Προσοχή: η διαγραφή μίας εγγραφής στον «Πατέρα» συνεπάγεται διαγραφή των αντίστοιχων τιμών στο «Παιδί»! Αν πάμε να εισάγουμε μία γραμμή στο «Παιδί» με FK που δεν συμπίπτει με κάποιο PK του «Πατέρα», αυτό απορρίπτεται. Το ίδιο ισχύσει και για ανανέωση ήδη υπάρχουσας γραμμής στο Παιδί. Κατά το σχεδιασμό Πίνακα πρέπει να καθορίσουμε εάν ένα πεδίο επιτρέπεται να έχει μηδενική τιμή (null) ή όχι. Προφανώς PK null. 32

Σχέση πολλά προς πολλά (I) Κάθε εγγραφή ενός πίνακα συνδέεται με πολλές εγγραφές του άλλου πίνακα και αντίστροφα. π.χ. ένας ασθενής μπορεί να έχει πολλούς ιατρούς και κάθε ιατρός να έχει πολλούς ασθενείς. 33

Σχέση πολλά προς πολλά (II) Οι σχεσιακές ΒΔ δεν υποστηρίζουν απευθείας σχέσεις πολλά προς πολλά. Μια τέτοια σχέση μπορεί να δημιουργηθεί έμμεσα με χρήση πίνακα συνένωσης και με 2 σχέσεις ένα προς πολλά: 34

Σχέση πολλά προς πολλά (III) Άλλο παράδειγμα 35

SQL: Structured Query Language Οι ΒΔ «καταλαβαίνουν» από SQL εντολές που χρησιμεύουν για: Υποβολή ερωτημάτων (Queries) Ενημέρωση, Ορισμό, Έλεγχο δεδομένων (updates, data definition, data control ) Διατήρηση της συνέπειας των δεδομένων (consistency) Συγχρονισμό πρόσβασης στα δεδομένα (concurrency) 36

SQL εντολές διακρίνονται σε 4 κατηγορίες: Data Definition Language (DDL): creating, modifying, and dropping the structure of database objects. π.χ. CREATE TABLE Data Manipulation Language (DML): storing, retrieving, modifying, and deleting data. π.χ. UPDATE, INSERT, SELECT,... Data Control Language (DCL): providing security to database objects. π.χ. GRANT, REVOKE,... Transaction Control Language (DDL): for managing changes affecting the data, π.χ. COMMIT, ROLLBACK,... Θα δούμε ορισμένες DML εντολές για data queries με έμφαση στην MS-Access 37

Θα εργαστούμε με τον παρακάτω πίνακα 38

Επιλογή γραμμών (I) SELECT * FROM Table1 39

Επιλογή γραμμών (II) SELECT first,last FROM Table1 40

Επιλογή γραμμών (III) SELECT DISTINCT state FROM Table1 Το DISTINCT φέρνει μοναδικά states. Αν παραλείψουμε το DISTINCT, τις φέρνει όλες. 41

Επιλογή γραμμών- χρήση WHERE (I) SELECT first, last FROM Table1 WHERE State = Arizona 42

Τελεστές Τελεστές που μπορούν να χρησιμοποιηθούν σε μια συνθήκη WHERE Τελεστής Περιγραφή Τελεστής Περιγραφή = Ίσο με <= Μικρότερο ή ίσο <> Δεν ισούται με BETWEEN Μεταξύ > Μεγαλύτερο από LIKE Εύρεση συγκεκριμένων προτύπων < Μικρότερο από ΙΝ Χρησιμοποιείται όταν ξέρουμε συγκεκριμένες τιμές μιας στήλης >= Μεγαλύτερο ή ίσο 43

Επιλογή γραμμών- χρήση WHERE (II) SELECT first, last FROM Table1 WHERE State LIKE C* Κανονικά είναι C%. Στην Access είναι C* 44

Επιλογή γραμμών- χρήση WHERE (III) SELECT first, last FROM Table1 WHERE State LIKE *a Κανονικά είναι %a. Στην Access είναι *a 45

Επιλογή γραμμών- χρήση WHERE (IV) SELECT first, last FROM Table1 WHERE State NOT LIKE *riz* Κανονικά είναι %riz%. Στην Access είναι *riz* 46

Επιλογή γραμμών- χρήση WHERE (V) SELECT first, last FROM Table1 WHERE age>20 AND age<42 47

Επιλογή γραμμών- χρήση WHERE (VΙ) SELECT * FROM Table1 WHERE last IN ('Jones', 'May') 48

Επιλογή γραμμών- χρήση WHERE (VIΙ) SELECT * FROM Table1 WHERE last='jones' AND (first='john' OR first='ola') 49

Επιλογή γραμμών- χρήση WHERE (VIIΙ) SELECT * FROM Table1 ORDER BY age 50

Επιλογή γραμμών- χρήση WHERE (IΧ) SELECT * FROM Table1 ORDER BY age DESC 51