Transcript Data Bases

Βάσεις Δεδομένων
Βιβλιογραφία

Συστήματα Βάσεων Δεδομένων, A
Silberschartz, H. Korth, S. Sudarshan,
Εκδόσεις Γκιούρδας, ISBN 960-512-3843
2
Ορισμοί


Βάση Δεδομένων: Μία ΟΛΟΚΛΗΡΩΜΕΝΗ συλλογή Δεδομένων που
συσχετίζονται, η οποία αναπαριστά ένα υποσύνολο των στοιχείων
που μπορούμε να συλλέξουμε για τον μικρόκοσμο(πεδίο αναφοράς)
μιας εφαρμογής
Μοντελοποιεί τα δεδομένα σε ένα οργανισμό/επιχείριση.



Οντότητες (πχ. Φοιτητές, Μαθήματα)
Συσχετίσεις (πχ. Ο Γιάννης παρακολουθεί το Β18)
Σύστημα Διαχείρισης Βάσεων Δεδομένων: ένα πακέτο
λογισμικού σχεδιασμένο να αποθηκεύει και να διαχειρίζεται Βάσεις
Δεδομένων.


Πρώτο ΣΔΒΔ γενικής χρήσης: αρχές 1960
Μεγάλη εμπορική επιτυχία έκτοτε.
3
Σενάριο χρήσης αρχείων
4
Αρχεία vs Βάσεις Δεδομένων
Μια βάση δεδομένων υπερέχει της χρήσης
αρχείων και πινάκων
 παρέχει τη δυνατότητα αποθήκευσης και
διαχείρισης ποικίλων ειδών δεδομένων,
 τη δυνατότητα χρήσης των αποθηκευμένων
πληροφοριών από πολλαπλούς χρήστες
 τη δυνατότητα χρήσης κάποιου
εξειδικευμένου τρόπου ανάπτυξης της βάση
δεδομένων.
5
Αρχεία vs Βάσεις Δεδομένων

Ανεξαρτησία δεδομένων


Γρήγορη πρόσβαση στην πληροφορία




Κατάλληλη αποθήκευση, βελτιστοποίηση
Έλεγχος πρόσβασης, περιορισμοί ορθότητας
Ταυτόχρονη πρόσβαση, ανάκαμψη


οι λεπτομέρειες οργάνωσης δεν επηρεάζουν τις εφαρμογές.
Κάθε χρήστης νομίζει ότι είναι ο μόνος
Κεντρική διαχείριση της πληροφορίας
Γρηγορότερη και ασφαλέστερη ανάπτυξη εφαρμογών
6
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ



Πεδίο (field): Μια βάση δεδομένων
αποτελείται από μια σειρά στοιχείων με
πιο βασικό στοιχείο το πεδίο.
Το πεδίο αντιστοιχεί σε ένα δεδομένο
και είναι το συστατικό στοιχείο μιας
εγγραφής (record).
Παραδείγματα πεδίων είναι ένα όνομα
πελάτη, μια διεύθυνση, μια τιμή, ένας
αριθμός τηλεφώνου.
7
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ



Εγγραφή (record): Μια ενότητα από
συσχετιζόμενα δεδομένα τα οποία
επεξεργάζονται σαν μια ολότητα.
Με άλλα λόγια εγγραφή είναι μια συλλογή
από πεδία.
Παράδειγμα εγγραφής: σύνολο
πληροφοριών που αναφέρονται σε έναν
πελάτη όπως όνομα, διεύθυνση, αριθμός
φορολογικού μητρώου.
8
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ





Πίνακας (table): Μια ενότητα από συσχετιζόμενες
εγγραφές οι οποίες έχουν τον ίδιο αριθμό πεδίων
αποτελούν έναν πίνακα.
Ο πίνακας είναι μια λογική δομή.
Για παράδειγμα, ένας πίνακας πελατών θα περιλαμβάνει
κάθε εγγραφή πελάτη η οποία έχει τα ίδια πεδία.
Στον πίνακα οι εγγραφές αντιστοιχούν στις γραμμές
(rows)και τα πεδία στις στήλες του πίνακα (columns).
Οι πίνακες μπορούν να συσχετίζονται μεταξύ τους μέσω
των πεδίων τα οποία περιέχουν την ίδια πληροφορία.
9
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Σχεσιακή Βάση Δεδομένων (relational
data base): Ένα σύνολο συσχετιζόμενων
πινάκων αποτελούν μία σχεσιακή βάση
δεδομένων η οποία αποτελεί και τον πιο
συνήθη τρόπο δημιουργίας βάσεων
δεδομένων σήμερα.
10
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Σχεσιακή Βάση Δεδομένων
(relational data base): Ένα σύνολο
συσχετιζόμενων πινάκων αποτελούν μία
σχεσιακή βάση δεδομένων η οποία
αποτελεί και τον πιο συνήθη τρόπο
δημιουργίας βάσεων δεδομένων
σήμερα.
11
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Ευρετήρια Αναζήτησης (indexes): Η ανάκτηση
των εγγραφών με βάση κάποιες συνθήκες μπορεί
να πραγματοποιηθεί με τα ευρετήρια αναζήτησης.
Τα ευρετήρια αυτά επιτρέπουν τη γρήγορη
ανάκτηση και ταξινόμηση των εγγραφών με
κάποιες συνθήκες. Χρησιμοποιούνται για πεδία τα
οποία δεν είναι το πρωτεύον κλειδί ενός πίνακα και
για τα οποία θα απαιτηθεί η εύρεση στοιχείων κατά
τη χρήση της βάσης.
12
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ





Πρωτεύον Κλειδί (primary key): Κάθε εγγραφή σε μία
σχεσιακή βάση δεδομένων πρέπει να είναι
εξατομικευμένη.
Αυτό επιτυγχάνεται με τον καθορισμό ενός πεδίου της
εγγραφής σαν πρωτεύοντος κλειδιού.
Οι εγγραφές αποθηκεύονται με βάση το πρωτεύον κλειδί.
Παράδειγμα πρωτεύοντος κλειδιού για τις εγγραφές
πελατών είναι ο αριθμός φορολογικού μητρώου, ή ο
αριθμός τηλεφώνου κάθε πελάτη.
Το πρωτεύον κλειδί είναι μοναδικός αριθμός αναγνώρισης
της κάθε εγγραφής ενός πίνακα και δεν είναι δυνατή η
ύπαρξη δύο εγγραφών με το ίδιο κλειδί.
13
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ


Δευτερεύον Κλειδί (foreign key):
Δευτερεύοντα κλειδιά είναι κοινά πεδία
μεταξύ των εγγραφών των πινάκων μιας
βάσης δεδομένων τα οποία μπορούμε να
χρησιμοποιήσουμε προκειμένου να κάνουμε
αναζήτηση πληροφοριών στους πίνακες
αυτούς.
Το δευτερεύον κλειδί είναι πεδίο ενός πίνακα
το οποίο προσδιορίζει εγγραφές ενός άλλου
πίνακα στον παρόντα πίνακα.
14
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ


Ερωτήματα (queries): Η αναζήτηση εγγραφών
σε μία βάση δεδομένων γίνεται με ερωτήματα.
Για την αναζήτηση εγγραφών σε μία βάση
δεδομένων χρησιμοποιείται η γλώσσα Structured
Query Language (SQL).
15
ΠΑΡΑΔΕΙΓΜΑ ΒΑΣΗΣ
ΔΕΔΟΜΕΝΩΝ




Ας υποθέσουμε ότι έχουμε μία βάση δεδομένων
πελατών η οποία περιέχει τρεις πίνακες.
Ο πρώτος πίνακας περιέχει πληροφορίες πελατών
και ονομάζεται CustList.
Ο δεύτερος πίνακας περιέχει πληροφορίες
προϊόντων και ονομάζεται ProductsList και
ο τρίτος πίνακας περιέχει πληροφορίες
παραγγελιών και ονομάζεται OrdersList.
16
ΠΙΝΑΚΑΣ CustList
ΠΙΝΑΚΑΣ ProductsList
ΠΙΝΑΚΑΣ OrdersList
17
ΠΑΡΑΔΕΙΓΜΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ


Ο πίνακας CustList περιέχει εγγραφές με πληροφορίες
πελατών μιας επιχείρησης, όπως: αριθμό πελάτη, όνομα
πελάτη, τηλέφωνο, διεύθυνση, πόλη και ΑΦΜ.
Η κάθε εγγραφή του πίνακα περιέχει τα πεδία:






Customer_No,
Customer_Name,
Phone_Number,
Address,
City και
AFM.
18
ΠΑΝΑΚΑΣ CustList
πεδία
19
ΠΑΡΑΔΕΙΓΜΑ ΒΑΣΗΣ
ΔΕΔΟΜΕΝΩΝ

Ο δεύτερος πίνακας , ο πίνακας
ProductsList, περιέχει τα πεδία:




Product_No,
Product_Name,
Price και
Quantity_Stock.
20
ΠΑΡΑΔΕΙΓΜΑ ΒΑΣΗΣ
ΔΕΔΟΜΕΝΩΝ

Ο τρίτος πίνακας , ο πίνακας
OrdersList, περιέχει τα πεδία:





Order_No,
Product_No,
Customer_No,
Date_Required και
Quantity_Ordered.
21
ΠΙΝΑΚΕΣ
ΠΕΔΙΑ
22
ΠΑΡΑΔΕΙΓΜΑ ΒΑΣΗΣ
ΔΕΔΟΜΕΝΩΝ


Το πεδίο Customer_No είναι το
πρωτεύον κλειδί για τον πίνακα
CustList, διότι κάθε εγγραφή πελάτη
εξατομικεύεται από τον αριθμό του
πελάτη.
Επίσης το πεδίο Product_No είναι το
πρωτεύον κλειδί για τον πίνακα
ProductsList για τον ίδιο λόγο.
23
ΠΑΡΑΔΕΙΓΜΑ ΒΑΣΗΣ
ΔΕΔΟΜΕΝΩΝ

Στον πίνακα OrdersList τα πεδία
Customer_No και Product_No
είναι το δευτερεύον κλειδί διότι
προσδιορίζουν εγγραφές άλλων πινάκων
στον πίνακα αυτόν.
24
πρωτεύοντα κλειδιά
κλειδιά
δευτερεύοντα
25
ΣΧΕΣΕΙΣ ΣΕ ΜΙΑ ΒΑΣΗ
ΔΕΔΟΜΕΝΩΝ


Εκτός από τον καθορισμό των πινάκων, των
εγγραφών, των πεδίων, του πρωτεύοντος και του
δευτερεύοντος κλειδιού και των ευρετηρίων, για τη
δημιουργία μιας σχεσιακής βάσης δεδομένων
μπορούμε επίσης να καθορίσουμε τις σχέσεις
(relationships) μεταξύ των πινάκων.
Οι σχέσεις αυτές περιλαμβάνουν τις δομές: ένα
προς ένα (one-to-one), ένα προς πολλά (one-tomany) και πολλά προς πολλά (many-to-many)
26
ΣΧΕΣΕΙΣ ΣΕ ΜΙΑ ΒΑΣΗ
ΔΕΔΟΜΕΝΩΝ


Ένα παράδειγμα σχέσεως «ένα προς
πολλά» είναι η σχέση μεταξύ πελάτη και
παραγγελιών.
Για κάθε πελάτη αντιστοιχούν
περισσότερες από μία παραγγελίες. Επίσης
κάθε προϊόν αντιστοιχεί σε περισσότερες
από μία παραγγελίες.
27
ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ
28
ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ


Μία βάση δεδομένων συνήθως είναι ήδη
δημιουργημένη με κάποιο εργαλείο
δημιουργίας βάσεων δεδομένων.
Εργαλεία δημιουργίας βάσεων δεδομένων οι
οποίες μπορούν να διαβαστούν από τη Visual
Basic είναι τα ακόλουθα: MySQL, Microsoft
Access, dBase, Excel, FoxPro, Paradox, καθώς
και ο SQL Server.
29
ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ

Τα εργαλεία δημιουργίας βάσεων
δεδομένων διαθέτουν ιδιότητες και
μεθόδους οι οποίες επιτρέπουν:





την εισαγωγή,
την πρόσθεση,
την διόρθωση,
την διαγραφή και
τον εντοπισμό των εγγραφών-δεδομένων
της.
30
SQL (Structured Query Language)
31
ΕΙΣΑΓΩΓΗ


SQL (Structured Query Language)
είναι η τυποποιηµένη “standard” γλώσσα
στις Σχεσιακές Βάσεις.
Η γλώσσα αυτή χρησιμοποιείται για τη
δημιουργία πινάκων, τον προσδιορισμό
σχέσεων μεταξύ πινάκων, καθώς επίσης
και για τη διαχείριση δεδομένων σε
πίνακες.
32
4 βασικές εντολές της SQL:




Ανάκτηση
SELECT *
FROM Departments
WHERE budget > 1000000
Εισαγωγή
INSERT INTO
Employees(ssn,name)
VALUES (83542, ‘Aris’)
Ενημερώση
UPDATE Departments
SET budget = 2000000
WHERE did = 12345
Διαγραφή
DELETE
FROM Employees
WHERE name = “Aris”
Το αποτέλεσµα µιας εντολής / πράξης σε Σχέσεις είναι (πάντα) µια νέα
Σχέση
33
ΑΝΕΥΡΕΣΗ ΜΕ ΧΡΗΣΗ ΤΗΣ SQL

Τα ερωτήματα αρχίζουν με την εντολή
SELECT, η οποία επιτρέπει την επιλογή
εγγραφών από μία βάση δεδομένων που
εκπληρώνουν κάποιο κριτήριο. Ο γενικός
τύπος ενός ερωτήματος SQL είναι:
SELECT πεδία εγγραφών
FROM όνομα πίνακα
WHERE κριτήρια
34
ΑΝΕΥΡΕΣΗ ΜΕ ΧΡΗΣΗ ΤΗΣ SQL

Για παράδειγμα:
SELECT Customer_Name
FROM CustList
WHERE Customer_No > 100

H χρήση της SQL για δημιουργία ερωτημάτων είναι ιδιαίτερα
χρήσιμη μέθοδος για την αναζήτηση εγγραφών σε πολλούς
πίνακες.
35
ΕΦΑΡΜΟΓΕΣ (DBMS)




Τραπεζικοί λογαριασμοί
Εταιρικά συστήματα διαχείρισης
προσωπικού και εμπορευμάτων
Συστήματα κρατήσεων σε αεροπορικές
πτήσεις και σιδηροδρομικά ταξίδια
Συστήματα δανεισμού βιβλίων σε
Πανεπιστήμια και Ερευνητικά
Ινστιτούτα
36
37
ΜΟΝΤΕΛΑ ΕΝΟΣ ΣΔΒΔ
38
ΤΑ ΜΟΝΤΕΛΑ ΕΝΟΣ ΣΔΒΔ
Περιγραφή των Δεδομένων:
Ένα μοντέλο δεδομένων είναι
συλλογή από έννοιες που
χρησιμοποιούνται για την περιγραφή
δεδομένων του πραγματικού κόσμου
39
ΤΥΠΟΙ ΜΟΝΤΕΛΩΝ
Υπάρχουν 3 τύποι μοντέλων:



Το Ιεραρχικό μοντέλο
Το Δικτυακό μοντέλο και
Το Σχεσιακό μοντέλο
40
Σχεσιακό μοντέλο


Το σχεσιακό μοντέλο δεδομένων είναι το
μοντέλο που χρησιμοποιείτε περισσότερο
σήμερα.
Χρησιμοποιεί ένα σύνολο από πίνακες που
αντιπροσωπεύουν:


δεδομένα
σχέσεις μεταξύ αυτών των δεδομένων
41
Σχεσιακό μοντέλο
42
ER
Μοντέλο Οντότητας - Σχέσης
(Entity Relationship)
43
ER


Οντότητα: αντικείμενο πραγματικού κόσμου
 Περιγράφεται σαν ένα σύνολο γνωρισμάτων
 Παρόμοιες οντότητες (ίδια γνωρίσματα): σύνολο
οντότητας
 Κάθε γνώρισμα έχει ένα πεδίο τιμών
 Κάθε συνολο οντότητας μπορεί να έχει ένα κλειδί
Συσχέτιση: μια σχέση μεταξύ οντοτήτων
 Πχ. Ο Κώστας δουλεύει στο τμήμα πωλήσεων
 Μια συσχέτιση μπορεί επίσης να έχει γνωρίσματα
 Σύνολο συσχετίσεων: συλλογή παρόμοιων
συσχετίσεων
44
Διάγραμμα οντοτήτων –
συσχετίσεων (ER Diagram)





Δημιουργείται από τα παρακάτω συστατικά
Ορθογώνια, που αντιπροσωπεύουν σύνολα
οντοτήτων
Ρόμβους, που αντιπροσωπεύουν σχέσεις
μεταξύ συνόλων οντοτήτων
Ελλείψεις, που αντιπροσωπεύουν ιδιότητες
Γραμμές, που συνδέουν ιδιότητες με σύνολα
οντοτήτων και σύνολα οντοτήτων με σχέσεις.
45
Διάγραμμα ER
ιδιότητες
46
Διαγράμματα Οντοτήτων Συσχετίσεων
(ER)
47
48