Σχεσιακό μοντέλο – Σχεσιακές βάσεις δεδομένων Διδάσκων: Χ. Σκουρλάς, Α θ ή ν α 2015-16 Βάσεις Δεδομένων και web-based Εφαρμογές.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Διάγραμμα Παρουσίασης
Advertisements

ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2013 Nicolas Tsapatsoulis Εισαγωγή στην SQL ΕΣΔ232 – Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας.
1 Copyright © 2006 Quality & Reliability SQL 1-2.
Μοντέλο Οντοτήτων-Συσχετισμών
Δρ. Παναγιώτης Συμεωνίδης
PL/SQL.
Ορισμοί Σχεσιακού Μοντέλου και (απλές)Τροποποιήσεις Σχέσεων στην SQL
Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ
Entity-Relationship Παραδείγματα Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Φροντιστήριο 1 Δαμιανός Χατζηαντωνίου.
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ ΜΕ ΣΥΖΕΥΞΗ ΠΙΝΑΚΩΝ
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΜΑΘΗΜΑ 3.
9 Η Γλώσσα SQL Ορισμός Δεδομένων (data definition)
Ημέρα 1η.
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - Ι Λόγοι που συνέτειναν στη υιοθέτηση των Συστημάτων Διαχείρισης Βάσεων Δεδομένων (Database Management Systems) Περιορίζονται τα πλεονασματικά.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
9 Η Γλώσσα SQL  Εισαγωγή – Βασικές Έννοιες  Τύποι Δεδομένων  Ορισμός Δεδομένων  Χειρισμός Δεδομένων.
9 Η Γλώσσα SQL  Εισαγωγή – Βασικές Έννοιες  Τύποι Δεδομένων  Ορισμός Δεδομένων (data definition)  Χειρισμός Δεδομένων (data manipulation)
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Σχεσιακή Άλγεβρα.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Η Γλώσσα SQL.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή Σχεδιασμός μιας ΒΔ ανάλυση ποιας πληροφορίας και της σχέσης ανάμεσα στα στοιχεία της περιγραφή.
Βάσεις Δεδομένων I (Θ) Ενότητα 11: Ενιαίο παράδειγμα σχεδίασης σχεσιακής βάσης δεδομένων και υλοποίησης με Γλώσσα SQL Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής.
Βάσεις Δεδομένων II (Θ) Ενότητα 1: «Προσανατολισμού» (orientation) - Εισαγωγή Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα στο.
Κανονικοποίηση, συναρτησιακές εξαρτήσεις
Βάσεις Δεδομένων I (Θ) Ενότητα 8: Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά Μαθήματα.
Βάσεις Δεδομένων I (Θ) Ενότητα 9: Yλοποίηση σχεσιακών βάσεων δεδομένων - Σύνθετες εντολές SQL Χ. Σκουρλάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Ανοικτά Ακαδημαϊκά.
Βάσεις Δεδομένων I Ενότητα 8: Εισαγωγή στην υλοποίηση σχεσιακών βάσεων δεδομένων Χ. Σκουρλάς Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το περιεχόμενο.
Βάσεις Δεδομένων I Ενότητα 9: Yλοποίηση σχεσιακών βάσεων δεδομένων - Σύνθετες εντολές SQL Χ. Σκουρλάς Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το περιεχόμενο.
Βάσεις Δεδομένων I Ενότητα 2: Εισαγωγή στις βάσεις δεδομένων Χ. Σκουρλάς Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Το περιεχόμενο του μαθήματος διατίθεται.
1 Σχεσιακή Άλγεβρα Προβολή, Επιλογή, Καρτεσιανό Γινόμενο, Ένωση, Διαφορά, Σύνθεση Τελεστών, Μετονομασία, Παραδείγματα Ερωτήσεων, Τομή Συνόλων, Φυσική Σύζευξη.
ΕΣΔ 232: Οργάνωση Δεδομένων στη Κοινωνία της Πληροφορίας © 2012 Nicolas Tsapatsoulis Το σχεσιακό μοντέλο βάσεων δεδομένων ΕΣΔ232 – Οργάνωση Δεδομένων στη.
Βάσεις Δεδομένων Κεφ. 1 Πλεονεκτήματα Β.Δ. έναντι αρχείων Βασικές λειτουργίες Β.Δ. Εφαρμογές Β.Δ. στην καθημερινή ζωή.
Εισαγωγή στις βάσεις δεδομένων
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι να παρουσιάσει τις απαραίτητες έννοιες ώστε οι φοιτητές να κατανοήσουν την τεχνολογία των βάσεων δεδοµένων.
Βάσεις Δεδομένων Ι 4η διάλεξη
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Σύντομη περιγραφή Μια περιήγηση σε αφυπνιζόμενα προγράμματα (triggers), δηλαδή προγράμματα ενεργοποιούμενα από ενέργειες INSERT, UPDATE, DELETE στη βάση.
Εναρκτήρια συνάντηση Στην πρώτη συνάντηση γίνεται παρουσίαση του μαθήματος και μία σύντομη και περιεκτική επισκόπηση κάποιων βασικών εννοιών των Βάσεων.
Περιγραφή Ενότητας Σκοπός του μαθήματος αυτού και κεντρικός σκοπός του μαθήματος των Βάσεων Δεδομένων Ι είναι η παρουσίαση των απαραίτητων εννοιών ώστε.
Εναρκτήρια συνάντηση Στην πρώτη συνάντηση γίνεται παρουσίαση του μαθήματος και μία σύντομη και περιεκτική επισκόπηση κάποιων βασικών εννοιών των Βάσεων.
Θερινό Σχολείο, 14 – 20 Ιουλίου 2014
Εναρκτήρια συνάντηση Στην πρώτη συνάντηση γίνεται παρουσίαση του μαθήματος και μία σύντομη και περιεκτική επισκόπηση κάποιων βασικών εννοιών των Βάσεων.
Java DataBase Connectivity
Βάσεις Δεδομένων Ενότητα 3: Σχεσιακή Άλγεβρα Βασίλης Βουτσινάς
9 Η Γλώσσα SQL Εισαγωγή – Βασικές Έννοιες Τύποι Δεδομένων
Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας
Βάσεις Δεδομένων και web-based Εφαρμογές
Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι η παρουσίαση των απαραίτητων εννοιών αλλά και των δηλώσεων SQL ώστε οι φοιτητές να κατανοήσουν σε κάποιο.
Βάσεις Δεδομένων και web-based Εφαρμογές
Περιγραφή Ενότητας Σκοπός του μαθήματος είναι η παρουσίαση δηλώσεων SQL που περιλαμβάνουν EXIST, ANY, ALL. Χ. Σκουρλάς.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Ενότητα 2 : Το σύστημα βάσεων δεδομένων MySQL (II) Ιωάννης Τσούλος
Βάσεις Δεδομένων και web-based Εφαρμογές
Βάσεις Δεδομένων και web-based Εφαρμογές
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας
Ενότητα 3: Σχεσιακό Μοντέλο – Σχεσιακή βάση δεδομένων Χ. Σκουρλάς
Βάσεις Δεδομένων ΙΙ Ενότητα 6: Τεχνολογία PL/SQL - cursors Χ. Σκουρλάς
Σχεσιακεσ βασεισ δεδομενων
Ερωτήματα Επιλογής σε ACCESS
POSTGRESQL Η PostgreSQL είναι ένα αντικείμενο-σχεσιακό σύστημα διαχείρισης βάσεων δεδομένων (object relational database management system - ORDBMS) και.
Το Σχεσιακό Μοντέλο Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Ενότητα 5: Σχεδίαση βάσεων δεδομένων - Κανονικοποίηση Χ. Σκουρλάς
ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή ΠΑΡΑΔΕΙΓΜΑΤΑ SQL Ή
Ενότητα 1: «Προσανατολισμού» (orientation) - Εισαγωγή Χ. Σκουρλάς
Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Δυτικής Αττικής
Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Δυτικής Αττικής
Μεταγράφημα παρουσίασης:

Σχεσιακό μοντέλο – Σχεσιακές βάσεις δεδομένων Διδάσκων: Χ. Σκουρλάς, Α θ ή ν α Βάσεις Δεδομένων και web-based Εφαρμογές

Σκοπός του μαθήματος είναι να παρουσιάσει τις απαραίτητες έννοιες ώστε οι φοιτητές να κατανοήσουν την τεχνολογία των σχεσιακών βάσεων δεδομένων και των σχεσιακών συστημάτων διαχείρισης βάσεων διδομένων: Σχεσιακές βάσεις δεδομένων. Βασικές έννοιες δεδομένων: ανεξαρτησία δεδομένων, κανόνες ακεραιότητας, περιορισμοί κλπ. Παρουσιάζονται, επίσης, έννοιες της Σχεσιακής άλγεβρας. Γίνεται, τέλος, παρουσίαση των εννοιών της υλοποίησης µε γλώσσα SQL. Χ. Σκουρλάς

Κύριος στόχος του μαθήματος είναι να εφοδιάσει τους φοιτητές µε τις απαραίτητες γνώσεις έτσι ώστε να κατανοήσουν την τεχνολογία των σχεσιακών βάσεων δεδομένων και των σχεσιακών συστημάτων διαχείρισης βάσεων διδομένων. Λέξεις κλειδιά: Σχεσιακές Βάσεις δεδομένων, Ανεξαρτησία δεδομένων, Κανόνες ακεραιότητας, Σχεσιακή άλγεβρα Γλώσσα SQL

Τι είναι σχεσιακή (relational) βάση δεδομένων σύμφωνα με την οπτική γωνία γνωστών προϊόντων -- η οργάνωση των δεδομένων της βάσης γίνεται με πίνακες -- η διαχείριση της βάσης γίνεται με πράξεις στους πίνακες που επιτρέπουν επιλογή κάποιων γραμμών ή κάποιων στηλών των πινάκων και τέλος, τη σύνδεση πινάκων. --Στα σχεσιακά προϊόντα η διαχείριση της βάσης γίνεται με τη γλώσσα SQL. Εκτός της γλώσσας SQL θα πρέπει να δούμε στη συνέχεια και τις βασικές πράξεις της σχεσιακής άλγεβρας που είναι άρρηκτα συνδεδεμένες με τις σχεσιακές βάσεις δεδομένων.

Παράδειγμα

Παρατηρήστε ότι ο πίνακας dept έχει στήλες deptno, dname, loc και κάθε γραμμή του αποθηκεύει τα στοιχεία ενός τμήματος. Το πρώτο τμήμα έχει κωδικό (deptno)10, όνομα (dname) ACCOUNTING και έδρα (loc) ATHENS. Ο πίνακας emp έχει στήλες empno, ename, job, hiredate, mgr, sal, comm, deptno και κάθε γραμμή του αποθηκεύει τα στοιχεία ενός υπαλλήλου. Παρατηρήστε ότι οι δύο πίνακες είναι «συνδεδεμένοι» με τιμές των στηλών deptno που περιλαμβάνουν. Οι δύο πίνακες ανήκουν σε μία σχεσιακή βάση δεδομένων.

Τρεις θεμελιώδεις Πράξεις για τη διαχείριση βάσης (1η προσέγγιση – χρήση SQL) 1) Επιλογή γραμμών ενός πίνακα (selection/restriction). Η δήλωση SQL SELECT * FROM KATHIGHTES WHERE DIEFTH_ΚΑΤ = ‘Calif.’; επιλέγει ένα υποσύνολο γραμμών του πίνακα KATHIGHTES. Πίνακας αποτέλεσμα της επιλογής στοιχείων από τον πίνακα “Καθηγητή” Επώνυμο Καθηγητή Όνομα Καθηγητή Διεύθυνση Καθηγητή Αριθμός Μητρώου Καθηγητή UllmanJeffreyCalif.20 WidomJenniferCalif.30

2) Προβολή στηλών πίνακα (projection). Η δήλωση SQL SELECT EPWNYMO_ΚΑΤ, ONOMA_ΚΑΤ, ARITMHT_ΚΑΤ FROM KATHIGHTES; επιλέγει και προβάλει ένα υποσύνολο στηλών του πίνακα KATHIGHTES. Πίνακας αποτέλεσμα της προβολής στοιχείων από τον πίνακα “Καθηγητή” Επώνυμο Καθηγητή Όνομα Καθηγητή Αριθμός Μητρώου Καθηγητή CoddTed10 UllmanJeffrey20 WidomJennifer30 ElmasriRamez40 NavatheShamkant50

3) Σύνδεση πινάκων (JOIN) για την εμφάνιση στοιχείων. Η δήλωση SQL SELECT * FROM KATHIGHTES, DIDASKEI WHERE KATHIGHTES.ARITMHT_ΚΑΤ = DIDASKEI.ARITMHT_ΚΑΤ; συνδέει τον πίνακα KATHIGHTES με τον πίνακα DIDASKEI, επιλέγει και προβάλει το σύνολο των στηλών τους. EPWNYMOONOMADIEFTHARITMHTKWD_MAT CoddTedMass.10Α1Α1 CoddTedMass.10Α5Α5 UllmanJeffreyCalif.20Α8Α8 UllmanJeffreyCalif.20Β5Β5 UllmanJeffreyCalif.20Γ1Γ1 WidomJenniferCalif.30Α4Α4 WidomJenniferCalif.30Β2Β2 ElmasriRamezMass.40Γ3Γ3 ElmasriRamezMass.40Γ7Γ7 NavatheShamkantMass.50Γ6Γ6 NavatheShamkantMass.50Α3

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

Διαχείριση σχεσιακών βάσεων δεδομένων με γλώσσα SQL Θα ξεκινήσουμε χωρίς ορισμούς, χωρίς θεωρητική επισκόπηση. Ακολουθεί ένα κάπως πληρέστερο παράδειγμα. Παράδειγμα Απλουστευμένη σχεσιακή (relational) βάση δεδομένων που περιλαμβάνει στοιχεία φοιτητών, καθηγητών, μαθημάτων και της βαθμολογίας των φοιτητών στα μαθήματα αυτά. ΕπώνυμοΌνομαΑριθμός ΜητρώουΕξάμηνο ΚυριακόπουλοςΝικηφόρος213Δ ΑποστόλουΖωή816Α ΠαπαπέτρουΝικόλαος450Β ΖευγαρίδηςΟρέστης346Γ ΚοταμανίδουΕιρήνη610Α ΜάθημαΚωδικός μαθήματος Αρχές Οικονομικής ΙΑ1 Προγραμματισμός Η/Υ ΙΑ5 Ανθρώπινες Σχέσεις στην εργασίαΑ8 Προγραμματισμός Η/Υ ΙΙΒ5 Χρήμα - Πίστη - ΤράπεζεςΓ1 Εισαγωγή στο Αστικό ΔίκαιοΑ4 Στατιστική ΕπιχειρήσεωνΒ2 Οικονομική της ΔιοίκησηςΓ3 Ιστορία και Αρχές ΣυνεργατισμούΓ7 Συστήματα Πληροφοριών ΔιοίκησηςΓ6 Γενική Λογιστική ΙΑ3 Πίνακας «Φοιτητή» Πίνακας «Μαθήματος»

Αριθμός ΜητρώουΚωδικός μαθήματοςΒαθμολογία 213Γ15 213Β57 450Β54 816Α56 816Α88 450Β22 346Γ19 346Γ30 610Α15 610Α37 Πίνακας «Βαθμολογίας» Επώνυμο Καθηγητή Όνομα Καθηγητή Διεύθυνση Καθηγητή Αριθμός Μητρώου Καθηγητή CoddTedMass.10 UllmanJeffreyCalif.20 WidomJenniferCalif.30 ElmasriRamezMass.40 NavatheShamkantMass.50 Αριθμός Μητρώου ΚαθηγητήΚωδικός μαθήματος 10Α1 10Α5 20Α8 20Β5 20Γ1 30Α4 30Β2 40Γ3 40Γ7 50Γ6 50Α3 Πίνακας «Καθηγητή» Πίνακας «Διδάσκει»

Δημιουργία βάσεως δεδομένων Για να δημιουργηθεί αυτό το σχήμα της βάσης δεδομένων μπορούμε να χρησιμοποιήσουμε τις παρακάτω εντολές σε γλώσσα SQL: CREATE TABLE FOITHTES(EPWNYMO VARCHAR2(20) NOT NULL, ONOMA VARCHAR2(20) NOT NULL, ARITMHT NUMBER NOT NULL, ΕΧΑΜΗΝΟ CHAR(3), PRIMARY KEY(ARITMHT)); CREATE TABLE MATHIMATA(LEKTIKO VARCHAR2(20) NOT NULL, KWD_MAT NUMBER NOT NULL, PRIMARY KEY(KWD_MAT)); CREATE TABLE EGGRAFES(KWD_MAT NUMBER NOT NULL, ARITMHT NUMBER NOT NULL, BATHMOS NUMBER, PRIMARY KEY(KWD_MAT, ARITMHT)); CREATE TABLE KATHIGHTES(EPWNYMO_KAT VARCHAR2(20) NOT NULL, ONOMA_KAT VARCHAR2(20) NOT NULL, DIEFTH_KAT VARCHAR2(40), ARITMHT_KAT NUMBER NOT NULL, PRIMARY KEY(ARITMHT_KAT)); CREATE TABLE DIDASKEI(KWD_MAT NUMBER NOT NULL, ARITMHT_KAT NUMBER NOT NULL, PRIMARY KEY(KWD_MAT, ARITMHT_KAT)); HW

Αποτέλεσμα εκτέλεσης εντολών Δημιουργούνται πέντε άδειοι πίνακες: EPWNYMOONOMAARITMHTEXAMHNO LEKTIKAKWD_MAT ARITMHTKWD_MATBATHMOS EPWNYMO_KATONOMA_KATDIEFTH_KATARMHT_KAT ARITMHT_KATKWD_MAT Πίνακας «Καθηγητή» Πίνακας FOITHTHS Πίνακας MATHIMATA Πίνακας EGGRAFES Πίνακας KATHIGHTES Πίνακας DIDASKEI

Εισαγωγή στοιχείων INSERT INTO KATHIGHTES(EPWNYMO_KAT, ONOMA_KAT, DIEFTH_KAT, ARITMHT_KAT) VALUES (‘Codd’, ‘Ted’, ‘Mass.’, 10); INSERT INTO KATHIGHTES VALUES (‘Ullman’, ‘Jeffrey’, ‘Calif.’, 20); κ.τ.λ.

Πλεονασμός ή τι πρέπει να αποφεύγουμε κατά τη σχεδίαση Παράδειγμα Ένα μέρος της απλουστευμένης εκπαιδευτικής βάσης δεδομένων ανασχεδιασμένης ώστε να περιλαμβάνει στοιχεία με επαναλήψεις. Σχήμα Απόσπασμα Μοντέλου της σχεσιακής Εκπαιδευτικής Βάσης δεδομένων που έχει περιττές επαναλήψεις στοιχείων Επώνυμο Καθηγητή Όνομα Καθηγητή Διεύθυνση Καθηγητή Αριθμός Μητρώου Καθηγητή CoddTedMass.10 UllmanJeffreyCalif.20 WidomJenniferCalif.30 ElmasriRamezMass.40 NavatheShamkantMass.50 Επώνυμο Καθηγητή Όνομα Καθηγητή Αριθμός Μητρώου Καθηγητή Κωδικός μαθήματος CoddTed10Α1Α1 CoddTed10Α5Α5 UllmanJeffrey20Α8Α8 UllmanJeffrey20Β5Β5 UllmanJeffrey20Γ1Γ1 WidomJennifer30Α4Α4 WidomJennifer30Β2Β2 ElmasriRamez40Γ3Γ3 ElmasriRamez40Γ7Γ7 NavatheShamkant50Γ6Γ6 NavatheShamkant50Α3

Μηχανισμός Κύριου – Δευτερεύοντος κλειδιού και σημασία του CREATE TABLE FOITHTES(EPWNYMO VARCHAR2(20) NOT NULL, ONOMA VARCHAR2(20) NOT NULL, ARITMHT NUMBER NOT NULL, EXAMHNO CHAR(3), PRIMARY KEY(ARITMHT)); CREATE TABLE MATHIMATA(LEKTIKO VARCHAR2(20) NOT NULL, KWD_MAT CHAR(3) NOT NULL, PRIMARY KEY(KWD_MAT)); CREATE TABLE EGGRAFES(KWD_MAT NUMBER NOT NULL, ARITMHT NUMBER NOT NULL, BATHMOS NUMBER, PRIMARY KEY(KWD_MAT, ARITMHT) FOREIGN KEY(ARITMHT) REFERENCES FOITHTES(ARITMHT), FOREIGN KEY(KWD_MAT) REFERENCES MATHIMATA(KWD_MAT)); CREATE TABLE KATHIGHTES(EPWNYMO_KAT VARCHAR2(20) NOT NULL, ONOMA_KAT VARCHAR2(20) NOT NULL, DIEFTH_KAT VARCHAR2(40), ARITMHT_KAT NUMBER NOT NULL, PRIMARY KEY(ARITMHT_KAT)); CREATE TABLE DIDASKEI(KWD_MAT CHAR(3) NOT NULL, ARITMHT_KAT NUMBER NOT NULL, PRIMARY KEY(KWD_MAT, ARITMHT_KAT) FOREIGN KEY(ARITMHT) REFERENCES KATHIGHTES(ARITMHT_KAT), FOREIGN KEY(KWD_MAT) REFERENCES MATHIMATA(KWD_MAT));

Στο παράδειγμά μας, ορίζουμε ολόκληρη τη βάση, το εννοιολογικό της σχήμα όπως λέμε. Προσοχή! Έχει σημασία η σειρά ορισμού των πινάκων. Επίσης, αν θέλαμε να διαγράψουμε τους πίνακες της βάσης θα έπρεπε να δώσουμε τις εντολές κατάργησης πίνακα με συγκεκριμένη σειρά: DROP TABLE EGGRAFES; DROP TABLE DIDASKEI; DROP TABLE MATHIMATA; DROP TABLE FOITHTES; DROP TABLE KATHIGHTES;

Εισαγωγή στοιχείων Τέλος, αν θέλαμε να εισάγουμε στοιχεία στον πίνακα DIDASKEI και επειδή κατασκευάσαμε το μηχανισμό κύριου και ξένου κλειδιού πρέπει πρώτα να εισάγουμε στοιχεία στον πίνακα KATHIGHTES: INSERT INTO KATHIGHTES VALUES('Codd','Ted','Mass.',10); INSERT INTO KATHIGHTES VALUES('Ullman','Jeffrey','Calif.',20); INSERT INTO KATHIGHTES VALUES('Widom','Jennifer','Calif.',30); INSERT INTO KATHIGHTES VALUES('Elmasri','Ramez','Mass.',40); INSERT INTO KATHIGHTES VALUES('Navathe','Shamkant','Mass.',50); INSERT INTO DIDASKEI VALUES('A1',10); INSERT INTO DIDASKEI VALUES('A5',10); INSERT INTO DIDASKEI VALUES('A8',20); INSERT INTO DIDASKEI VALUES('B5',20); INSERT INTO DIDASKEI VALUES('Ã1',20); INSERT INTO DIDASKEI VALUES('A4',30); INSERT INTO DIDASKEI VALUES('B2',30); INSERT INTO DIDASKEI VALUES('Ã3',40); INSERT INTO DIDASKEI VALUES('Ã7',40); INSERT INTO DIDASKEI VALUES('Ã6',50); INSERT INTO DIDASKEI VALUES('A3',50);

Ευρετήριο Παράδειγμα CREATE TABLE KATHIGHTES( EPWNYMO_KAT VARCHAR2(20) NOT NULL, ONOMA_KAT VARCHAR2(20) NOT NULL, DIEFTH_KAT VARCHAR2(40), ARITMHT_KAT NUMBER NOT NULL, PRIMARY KEY(ARITMHT_KAT)); Ζητούμενο η “επιτάχυνση” των αναζητήσεων. SELECT * FROM KATHIGITES WHERE DIEFTH_KAT = ‘Mass.’; SELECT EPWNYMO_KAT, ONOMA_KAT, DIEFTH_KAT FROM KATHIGITES WHERE DIEFTH_KAT = “Mass.”; CREATE INDEX LOCATION_IDX on KATHIGITES(diefth);

Πίνακας της σχεσιακής Εκπαιδευτική Βάση δεδομένων με ευρετήριο που επιταχύνει αναζήτηση στοιχείων βασιζόμενη στη διεύθυνση Επώνυμο Καθηγητή Όνομα Καθηγητή Διεύθυνση Καθηγητή Αριθμός Μητρώου Καθηγητή CoddTedMass.10 UllmanJeffreyCalif.20 WidomJenniferCalif.30 ElmasriRamezMass.40 NavatheShamkantMass.50 Address_IndexΔείκτες στη βάση Mass.10, 40, 50 Calif.20, 30 Πίνακας «Καθηγητή» Ευρετήριο «Διεύθυνση»

Ερώτηση (query) Παράδειγμα Σύνθετη ερώτηση για τους πίνακες KATHIGHTHS, DIDASKEI, MATHIMATA της απλουστευμένης εκπαιδευτικής βάσης δεδομένων που η απάντησή της απαιτεί σύνδεση (join) των πινάκων. Διαφορετικά η απάντηση λανθασμένα βασίζεται σε καρτεσιανό γινόμενο. SELECT KATHIGHTHS.EPWNYMO_KAT, ONOMA_KAT, DIEFTH_KAT, DIDASKEI.KWD_MAT, LEKTIKO FROM KATHIGHTHS, DIDASKEI, MATHIMATA WHERE KATHIGHTHS.ARITMHT_KAT=DIDASKEI.ARITMHT_KAT AND DΙDASKEI.KWD_MAT = MATHIMATA.KWD_MAT AND EPWNYMO_KAT = ‘Codd’; ORDER BY LEKTIKO;

Ερώτηση με παράδειγμα (query by form)

Φόρμες (ή ηλεκτρονικές οθόνες) Παράδειγμα Κατασκευάστηκε σε ελάχιστο χρόνο με χρήση παλαιότερου εργαλείου που συνόδευε το προϊόν της Oracle. Στη συγκεκριμένη φόρμα απόσπασμα του προγράμματος που έγραψε ο σχεδιαστής είναι το εξής: SELECT EPWNYMO_KAT INTO :EPWNYMO_KAT FROM KATHIGHTES WHERE ARITMHT_KAT=:ARITMHT_KAT; Ηλεκτρονική φόρμα διαχείρισης του πίνακα DIDASKEI της σχεσιακής Εκπαιδευτικής Βάσης δεδομένων.

Κρίσιμο σημείο Τι είναι κύριο κλειδί; Βρείτε το κύριο κλειδί στους παρακάτω πίνακες. Τι λέτε για τον πίνακα shipment; Βάση ανταλλακτικών Κωδικός(SN0)Επωνυμία(SNAME)έδρα(SCITY) S010FIATΛΟΝΔΙΝΟ S020OPELΠΑΡΙΣΙ S030FORDΠΑΡΙΣΙ S040PORCHEΑΘΗΝΑ PNOPNAMEPCOLORPCITY P0100ΒΙΔΑ ΑΚΟΚΚΙΝΗΛΟΝΔΙΝΟ Ρ0200ΒΙΔΑ ΒΚΟΚΚΙΝΗΠΑΡΙΣΙ Ρ0300ΒΙΔΑ CΚΟΚΚΙΝΗΡΩΜΗ Ρ0400ΒΙΔΑ CΚΙΤΡΙΝΗΛΟΝΔΙΝΟ SNOPNOQTY S010P S010P S010P S020P S020P S030P Προμηθευτές (SUPPLIERS) Ανταλλακτικά (PARTS) Εφοδιασμός (SHIPMENT)

Θεωρητική προσέγγιση Ορισμός σχέσης Η σχέση (relation) ορίζεται με τη μαθηματική έννοια δηλαδή είναι ένα υποσύνολο καρτεσιανού γινομένου (συμβολισμός " x ") πεδίων ορισμού (domains). Για να θυμηθείτε την έννοια του καρτεσιανού γινομένου μπορείτε να ανατρέξετε και στην ενότητα της σχεσιακής άλγεβρας. Μπορούμε να θεωρήσουμε ότι μια σχέση (relation) είναι ένα σύνολο από όμοιες πλειάδες (tuples). Κάθε πλειάδα αποτελείται από Ν συνιστώσες (components) διαφορετικού (πιθανόν) τύπου (Ν-άδα). Το Ν λέγεται πολλαπλότητα (arity) της σχέσης. Σύνδεση με τους πίνακες Μπορείτε να θεωρήσετε ότι μια σχέση είναι ένας πίνακας από πλειάδες και κάθε στήλη του πίνακα αντιστοιχεί σε μια συνιστώσα. Συνήθως δίνουμε ονόματα στις στήλες που λέγονται χαρακτηριστικά (attributes).

Ερωτήσεις