Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Βάσεις Δεδομένων Κωδικός Μαθήματος: MK741

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Βάσεις Δεδομένων Κωδικός Μαθήματος: MK741"— Μεταγράφημα παρουσίασης:

1 Βάσεις Δεδομένων Κωδικός Μαθήματος: MK741
Είδος Μαθήματος: Επιλογής-Εργαστηριακό Εξάμηνο: 7o – Μάθημα 1ο Διδάσκων: Κοντογιάννης Σωτήριος

2 Βάσεις Δεδομένων 1 απο 5 Eνα Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ) (Database Management System - DBMS) αποτελείται από μία συλλογή σχετιζόμενων δεδομένων και ένα σύνολο προγραμμάτων για την προσπέλαση σε αυτά τα δεδομένα. Η συλλογή των δεδομένων ονομάζεται βάση δεδομένων (ΒΔ) (database).

3 Η διαχείριση των δεδομένων περιλαμβάνει:
Βάσεις Δεδομένων 2 απο 5 Η διαχείριση των δεδομένων περιλαμβάνει: Τον ορισμό δομών για την αποθήκευση πληροφορίας Μηχανισμούς για τον χειρισμό της πληροφορίας και την ενημέρωσή της Μηχανισμούς για την ασφάλεια πληροφορίας που είναι προσβάσιμη από πολλούς χρήστες

4 Βάσεις Δεδομένων 3 απο 5

5 Βάσεις Δεδομένων 4 απο 5

6 Βάσεις Δεδομένων 5 απο 5

7 Όψεις Δεδομένων (1)

8 Όψεις Δεδομένων (2)

9 Μοντέλα Δεδομένων 1 απο 2

10 Μοντέλα Δεδομένων 2 απο 2

11 Το σχεσιακό μοντέλο – Δομή Β.Δ. (1)
Μια βάση δεδομένων (database) αποτελείται από έναν ή περισσότερους πίνακες (tables), ο καθένας από τους οποίους περιέχει μια λίστα από κάποια πράγματα. Για μια βάση δεδομένων πελατών, είναι φυσικό να ξεκινήσουμε μ’ έναν πίνακα με όνομα TBL_pelates που θα περιέχει μια λίστα από στοιχεία πελατών. Ο κάθε πίνακας σε μια βάση δεδομένων περιέχει μια ή περισσότερες στήλες (columns) ή πεδία (fields), όπου η κάθε στήλη περιέχει μια συγκεκριμένη πληροφορία για τον κάθε πελάτη που υπάρχει στην βάση δεδομένων (database). Ο πίνακας TBL_pelates μπορεί να περιέχει στήλες για τον κωδικό ενός πελάτη (ID), για το όνομά του (Name) καθώς και για ΑΜ του (ΑΜ). Ο κάθε πελάτης που αποθηκεύουμε σ’ αυτόν τον πίνακα λέμε ότι αποτελεί μια γραμμή (row) ή μια εγγραφή (record) του πίνακα. Για παράδειγμα, ας δούμε τον παρακάτω πίνακα :

12 Το σχεσιακό μοντέλο – Δομή Β.Δ. (2)
ID Νame AM 1 Κώνστας 12345 2 Νίκου 11135 Εκτός από τις στήλες για το όνομα του πελάτη (Name) και τον ΑΜ υπάρχει και μια στήλη με όνομα ID, ο σκοπός της οποίας είναι να εκχωρήσει έναν μοναδικό αριθμό στον κάθε πελάτη έτσι ώστε να έχουμε έναν εύκολο τρόπο αναφοράς σ’ αυτόν και να μπορούμε να τον ξεχωρίσουμε από τους άλλους πελάτες. Σαν επισκόπηση, το παραπάνω είναι ένας πίνακας τριών στηλών που περιέχει δύο γραμμές ή καταχωρήσεις. Η κάθε γραμμή του πίνακα περιέχει έναν κωδικό (ID) αναγνώρισης του πελάτη, το όνομά του (Varchar) καθώς και τον ΑΜ του (int).

13 RDBMS Βάσεις Δεδομένων

14 RDBMS Βάσεις Δεδομένων

15 Νέα μοντέλα Δεδομένων – To Αντικειμενοστρεφές σχεσιακό μοντέλο
Ένα αντικειμενοστρεφές μοντέλο δεδομένων βασίζεται στη γενική ιδέα του αντικειμένου (object) και της κλάσης (class) Το αντικειμενοστρεφές μοντέλο χρησιμοποίει την οργάνωση αντικειμένων με ιδιότητες ή πινάκων από διαφορετικές κλάσεις -αντικείμενα – (ORDBMS) Χαρακτηριστικός εκπρόσωπος ORDBMS – PostgreSQL H PostGreSQL θεωρεί τους πίνακες ώς σύνθετου τύπου του οποίο σημαίνει ότι μπορούν να χρησιμοποιηθούν και ως αντικείμενα: Πολυμορφισμός Κληρονομικότητα

16 Ιεραρχικό αντικειμενοστρεφές μοντέλο αρχείων
Η MongoDB (from humongous) είναι μία δωρεάν και ανοιχτού κώδικα cross-platform document-oriented σύστημα Βάσεων Δεδομένων. Ανήκει στην κατηγορία των μή σχεσιακών Β.Δ. Η MongoDB αποφεύγει το κλασικό σχήμα των πινάκων και χρησιμοποιεί ένα JSON τύπου σχήμα αποτελούμενο από αρχεία με δυναμικά – σχήματα( κατηγορίες ). Η διαμόρφωση αυτή καλείται BSON (Binary-JSON). Η συγκεκριμένη διαμόρφωση είναι της μορφής: Document=db=(test) Συλλογή = address Kατηγορία = building

17 Market Research – Database Systems
Πηγή:

18 Μοντέλα Δεδομένων 2 απο 2

19 Βάσεις Δεδομένων – Σχεσιακό Μοντέλο
Ένας απλος τρόπος αναπαράστασης των δεδομένων: Ένας δισδιάστατος πίνακας που λέγεται σχέση. Ιδιότητες: Οντότητα Εγγραφές-Μέλη (Αντικείμενα της Οντότητας)

20 Βάσεις Δεδομένων – Σχεσιακό Μοντέλο (2)
Τα δεδομένα της Βάσης αποθηκεύονται σε πίνακες. Ένας πίνακας αντιπροσωπεύει μια σχέση. Κάθε σχέση αποτελείται από Μ στοιχεία. Κάθε στοιχείο ανήκει σε ένα Τύπο Δεδομένων. Εγγραφή: Κάθε Μ-άδα για την οποία αληθεύει η σχέση. Πεδίο (ή Στήλη): Κάθε ένα στοιχείο της Μ-αδας. Τιμή Πεδίου: Η τιμή ενός πεδίου για μια συγκεκριμένη εγγραφή.

21 Τύποι Δεδομένων πεδίων:
Κάθε πεδίο αποθηκεύει συγκεκριμένο τύπο δεδομένων!!! Τύποι Δεδομένων σε μία Β.Δ.: int: Ακέραιος αριθμός. float: Δεκαδικός αριθμός. text: Αλφαριθμητικό. char(n): Αλφαριθμητικό σταθερού μεγέθους n. varchar(n): Αλφαριθμητικό μέγιστου μεγέθους n. date: Ημερομηνία. datetime: Ημερομηνία και ώρα. blob: Binary Large Object – Τ.Δ. Αποθήκευσης δυαδικών αρχείων

22 Βάσεις Δεδομένων – Τύποι της MySQL (1) (MariaDB)

23 Βάσεις Δεδομένων – Τύποι της MySQL (2) (MariaDB)

24 Βάσεις Δεδομένων – Τύποι της MySQL (3) (MariaDB)

25 Βάσεις Δεδομένων – Τύποι της MySQL (4) (MariaDB)

26 Βάσεις Δεδομένων – Τύποι της MySQL (5) (MariaDB)
Τύπος Δεδομένων DATETIME: To πεδίο DateTime (DATETIME) περιλαμβάνει ημερομηνία και ώρα χρησιμοποιώντας την ακόλουθη διαμόρφωση: ‘ :11:09’ (YYYY-MM-DD HH:mm:ss) Επιπρόσθετα υπάρχει και το τύπος TIMESTAMP που δέχεται ίδιου τύπου διαμόρφωσης τιμές με τους DATETIME με τι διαφορά ότι αυτές οι τιμές αλλάζουν αυτόματα εφόσον αλλάξουμε το Timezone της βάσης μας: show variables like '%time_zone%'; set time_zone="america/new_york";

27 Βάσεις Δεδομένων – Εντολές MySQL (6) (MariaDB)
Τύπος Δεδομένων DATE: To πεδίο Date περιλαμβάνει ημερομηνία χρησιμοποιώντας την ακόλουθη διαμόρφωση: ‘ ’ (YYYY-MM-DD) Τύπος Δεδομένων TIME: To πεδίο Time περιλαμβάνει ώρα χρησιμοποιώντας την ακόλουθη διαμόρφωση: ‘14:11:09’ (HH:mm:ss) Tύπος Δεδομένων TEXT: O τύπος VARCHAR μπορεί να αποθηκεύσει μέχρι 255 χαρακτήρες, ενώ θεωρείται πιό γρήγορος (λόγω inline) από τον TEXT τύπο. Ο τύπος ΤΕΧΤ (με τις παραλαγές του MEDIUMTEXT, LARGETEXT περιλαμβάνει μεγάλα αλφαρηθμιτικά σε μή δυαδική μορφή. Τύπος Δεδομενών BLOB: Με τις παραλαγές του (MEDIUMBLOB, LARGEBLOB) περιλαμβάνει δυαδικά δεδομένα (αρχεία ήχου και εικόνες)

28 Η σημασία του NULL (1)

29 Η σημασία του NULL (2) ΔΕΝ Χρησιμοποιούμε NULL όταν: Έχουμε ορίσει DEFAULT τιμή για το συγκεκριμένο πεδίο Το πεδίο δεν πρόκειται να ταξινομηθεί Το πεδίο δεν αποτελεί κανενός τύπου κλειδί για την οντότητά του Το πεδίο δεν είναι μοναδικό Το πεδίο δεν αποτελεί τμήμα ενός πρωτεύοντος ή συνδιαστικού- δευτερεύοντος κλειδιού Το πεδίο δεν σχετίζεται με κανένα άλλο πεδίο άλλης οντότητας (ξένο κλειδί)

30 Γραφική Αναπαράσταση της Β.Δ.
Γίνεται μέσω ειδικών διαγραμμάτων που λέγονται EER (Enhanced Entity Relationship Model) διαγράμματα. Απεικονίζουν τις οντότητες, τα πεδία τους τ.δ. Των πεδιών καθώς και τις σχέσεις των οντοτήτων. MySQL WorkBench :

31 Βάσεις Δεδομένων – Εντολές της MySQL (1) (MariaDB)

32 Βάσεις Δεδομένων – Σύνδεση στη Β.Δ. (1)
Εκτελώντας την παραπάνω εντολή από τη γραμμή εντολών (Putty): mysql -h <hostname> -u <username> -p

33 Βάσεις Δεδομένων – Σύνδεση στη Β.Δ. (2)
Χρησιμοποιώ την Βάση που έχει το ίδιο όνομα με το όνομα χρήστη μου. Βλέπω τους πίνακες στη βάση μου.

34 Τι είναι η SQL ? Το σύνολο των εντολών που θα χρησιμοποιούμε από δω και πέρα για να λέμε στην MySQL-MariaDB τι να κάνει, αποτελεί μέρος ενός standard που αποκαλείται Δομημένη Γλώσσα Ερωτημάτων (Structured Query Language) ή SQL. Οι εντολές της SQL αποκαλούνται επίσης και ερωτήματα (queries). Η SQL αποτελεί την standard γλώσσα για αλληλεπίδραση με τις περισσότερες βάσεις δεδομένων, έτσι ακόμα κι αν αλλάξουμε στο μέλλον από την MySQL σε μια βάση δεδομένων όπως την Microsoft SQL Server, θα διαπιστώσουμε ότι οι περισσότερες από τις εντολές είναι ολόιδιες. Δεν πρέπει να συγχέουμε την SQL με την MySQL-MariaDB. MariaDB είναι το λογισμικό του διακομιστή βάσεων δεδομένων (database server software) που χρησιμοποιούμε, ενώ η SQL είναι η γλώσσα που χρησιμοποιούμε για να αλληλεπιδράσουμε με την βάση δεδομένων.

35 Βάσεις Δεδομένων – Bασικές εντολές Β.Δ.
Μετά τη σύνδεση στη Β.Δ. το πρόγραμμα πελάτη της mariadb θα παρουσιάσει τον εαυτό του και θα εμφανίσει την γραμμή εντολών της mariadb, ως εξής : mariadb> mariadb> SHOW DATABASES; Η mariadb θα εμφανίσει μια λίστα με τις βάσεις δεδομένων που υπάρχουν στον server, ως εξής : Database maXXXXX mariadb> USE maXXXXX; Μπορούμε τώρα να αρχίσουμε να χρησιμοποιούμε την βάση δεδομένων μας. Δηλαδή να δημιουργήσουμε πίνακες όπου θα περιέχουν πεδία (στήλες) και εγγραφές (γραμμες) Τέλος, αν θέλουμε να εξέλθουμε από το πρόγραμμα πελάτη της MariaDB, μπορούμε απλά να γράψουμε quit ή exit. Είναι οι μόνες εντολές που δεν χρειάζονται τον χαρακτήρα ; (semicolon). mariadb> quit Σε κάθε εντολή στη Β.Δ. τοποθετούμε στο τέλος της ένα semicolon ';' για να εκτελεσεί και πατούμε ENTER.

36 Βάσεις Δεδομένων – Δημιουργία πίνακα
Η σύνταξη της εντολής SQL για την δημιουργία ενός πίνακα (table) είναι η εξής : mariaDB> CREATE TABLE <table name> ( -> <column 1 name> <col. 1 type> <col. 1 details>, -> <column 2 name> <col. 2 type> <col. 2 details>, -> ... -> );

37 Βάσεις Δεδομένων – Δημιουργία πίνακα – παράδειγμα (1)
ID Νame AM 1 Κώνστας 12345 2 Νίκου 11135 Η εντολή για να δημιουργήσουμε αυτόν τον πίνακα είναι η εξής : mariaDB> CREATE TABLE TBL_persons ( -> ID INT NOT NULL AUTO_INCREMENT, -> NAME varchar(80), -> AM INT NOT NULL DEFAULT 0, -> PRIMARY KEY(ID) -> );

38 Δημιουργία πίνακα – παράδειγμα (1)
mariadb> SHOW TABLES; Η απάντηση θα είναι ως εξής : Tables in maXXXXX TBL_persons 1 row in set Αυτή είναι η λίστα όλων των πινάκων που υπάρχουν στην βάση δεδομένων clinents και περιέχει έναν μόνο πίνακα : τον Clients. Ας ρίξουμε τώρα μια πιο αναλυτική ματιά στον πίνακα TBL_persons : mysql> DESCRIBE TBL_persons; | Field | Type | Null | Key | Default | Extra | | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(80) | YES | | NULL | | | am | int(11) | NO | | | | Για να διαγράψουμε έναν πίνακα : mariadb> DROP TABLE <tableName>;

39 Εισαγωγή Δεδομένων σε πίνακα
Εισαγωγή Δεδομένων σε Πίνακα (Table) Η εντολή για να εισάγουμε δεδομένα σε μια βάση δεδομένων αποκαλείται INSERT και υπάρχουν οι εξής δύο βασικές μορφές αυτής της εντολής : mariaDB> INSERT INTO <table name> SET -> columnName1 = value1, -> columnName2 = value2, -> ... -> ; mariaDB> INSERT INTO <table name> -> (columnName1, columnName2, ...) -> VALUES (value1, value2, ...);

40 Εισαγωγή Δεδομένων σε πίνακα – παράδειγμα 1
insert into TBL_persons values ('',"Νικολάου",23456); insert into TBL_persons(NAME,AM) values("Γεωργίου",34565); insert into TBL_persons set NAME="Νίκου", AM=21435; Η εντολή για να δούμε τα δεδομένα που είναι αποθηκευμένα στους πίνακες μιας βάσης δεδομένων είναι η SELECT και αποτελεί την πιο πολύ χρησιμοποιούμενη και πιο πολύπλοκη εντολή της SQL. Η επόμενη εντολή θα εμφανίσει ό,τι είναι αποθηκευμένο στον πίνακα TBL_persons : mariaDB> SELECT * FROM TBL_persons; Αν θέλουμε να εμφανισθούν οι τιμές ορισμένων μόνο στηλών, δίνουμε την εξής εντολή : mariaDB> SELECT ID, NAME FROM TBL_persons;

41 SQL – Ερωτήματα (1)

42 Εμφάνιση Δεδομένων σε πίνακα – παράδειγμα 1
Εκτός από το να εμφανίσουμε τις στήλες που θέλουμε με την εντολή Select, μπορούμε να τροποποιήσουμε την εμφάνισή τους με συναρτήσεις (functions). Μια συνάρτηση, η LEFT(), εμφανίζει έναν μέγιστο καθορισμένο αριθμό χαρακτήρων για μια στήλη. Για παράδειγμα, αν θέλουμε να δούμε μόνο τους 3 πρώτους χαρακτήρες της στήλης Name, μπορούμε να δώσουμε την εξής εντολή : mariaDB> SELECT ID, LEFT(NAME, 3), Date FROM TBL_persons; Μια άλλη χρήσιμη συνάρτηση είναι η COUNT(), η οποία απλά μετράει τον αριθμό των επιστρεφόμενων αποτελεσμάτων. Έτσι, για παράδειγμα, αν θέλουμε να βρούμε πόσοι πελάτες υπάρχουν στον πίνακα, μπορούμε να χρησιμοποιήσουμε την εξής εντολή : mysql> SELECT COUNT(*) FROM TBL_persons; COUNT(*) 3 3 rows in set (0.06 sec)

43 Εμφάνιση Δεδομένων σε πίνακα – Δήλωση where (1)
Χρησιμοποιώντας την δήλωση (clause) WHERE σε μια εντολή SELECT, μπορούμε να περιορίσουμε τα επιστρεφόμενα αποτελέσματα χρησιμοποιώντας κάποια συνθήκη, ως εξής : mariaDB> SELECT COUNT(*) FROM TBL_persons -> WHERE AM >= 11000; Το παραπάνω ερώτημα (query) θα μετρήσει τον αριθμό των πελατών που έχουν ημερομηνίες γέννησης μεγαλύτερες από ή ίσες του 11000

44 Εμφάνιση Δεδομένων σε πίνακα – Δήλωση where (2)
mariaDB> SELECT Name FROM TBL_persons -> WHERE NAME LIKE "%κολ%"; Αυτό το ερώτημα (query) εμφανίζει το κείμενο όλων των ονομάτων των πελατών που περιέχουν το κείμενο ίδη στην στήλη Name. Η λέξη κλειδί (keyword) LIKE λέει στην Β.Δ. ότι η συγκεκριμένη στήλη πρέπει να ταιριάζει με το δεδομένο υπόδειγμα, που σ’ αυτήν την περίπτωση είναι το "%κολ%". Τα σύμβολα % εδώ σημαίνουν ότι το κείμενο ήδη μπορεί να έχει πριν και μετά ένα οποιοδήποτε κείμενο. Κάτι δηλαδή σαν τον γνωστό μας χαρακτήρα μπαλαντέρ (wildcard) * από άλλα προγράμματα.

45 Εμφάνιση Δεδομένων σε πίνακα – Δήλωση where (3)
mariadb> SELECT Name FROM TBL_persons WHERE -> Name LIKE "%κολ%" ΟR -> ΑΜ > AND -> Date < 9000;

46 Tροποποίηση αποθηκευμένων δεδομένων
Για να κάνουμε αλλαγές στις τιμές ενός πίνακα μιας βάσης δεδομένων, χρησιμοποιούμε την εντολή UPDATE, η σύνταξη της οποίας είναι ως εξής : mariaDB> UPDATE <tableName> SET -> <col_name>=<new_value>, ... -> WHERE <where clause>; Ετσι, για παράδειγμα, αν θελήσουμε να αλλάξουμε την ημερομηνία γέννησης ενός πελάτη, θα πρέπει να δώσουμε την εξής εντολή : mysql> UPDATE TBL_persons SET AM=11345 WHERE ID=1; Η στήλη ID είναι βολική σ’ αυτήν την περίπτωση καθώς μας δίνει την δυνατότητα να διαχωρίσουμε εύκολα και σίγουρα τον πελάτη που θέλουμε να τροποποιήσουμε. Μπορούμε να χρησιμοποιήσουμε και την δήλωση WHERE, όπως στην επόμενη εντολή η οποία αλλάζει τον Α.Μ. όλων των καταχωρήσεων πελατων που περιέχουν το κείμενο κολ : mysql> UPDATE Clients SET AM=11345 -> WHERE Name LIKE "%κολ%";

47 Διαγραφή αποθηκευμένων δεδομένων
Για να διαγράψουμε γραμμές (εγγραφές) στην SQL, η σύνταξη είναι η εξής : mysql> DELETE FROM <tableName> WHERE <where clause>; Ετσι, για παράδειγμα, για να διαγράψουμε όλους τους πελάτες που περιέχουν το κείνενο κολ από τον πίνακα TBL_persons, πρέπει να δώσουμε το επόμενο ερώτημα : mysql> DELETE FROM TBL_persons WHERE Name LIKE "%κολ%"; Η επόμενη εντολή θα αδειάσει τον πίνακα TBL_persons: mysql> DELETE FROM TBL_persons;

48 Βάσεις Δεδομένων – Δημιουργία πίνακα στη Β.Δ.
Να δημιουργήσετε ένα πίνακα Πελάτης που θα έχει ένα πρωτεύων κλείδί (id), και θα περιλαμβάνει τα εξής πεδία: Επίθετο Τηλέφωνο Οδός Αριθμός οδού

49 Βάσεις Δεδομένων – Δημιουργία πίνακα στη Β.Δ.

50 Βάσεις Δεδομένων – Εγγραφές στον πίνακα
Εισαγωγή Εγγραφών - INSERT Εμφάνιση Εγγραφών - SELECT

51 Βάσεις Δεδομένων – Κλειδιά (1)
Κάθε οντότητα στην Β.Δ. Έχει υποχρεωτικά ένα μοναδικό για κάθε εγγραφή και ταξινομημένο (Indexed) πρωτεύων κλειδί (PRI). Κάθε οντότητα μπορεί να έχει επιπρόσθετα πεδία με μοναδικές τιμές σε κάθε εγγραφή (UNIQUE fields) (UNI). Κάθε οντότητα μπορεί να σχετίζεται με ένα εξωτερικό πεδίο (foreign key) μιας άλλης οντότητας που σε αυτή την οντότητα το πεδίο είναι τουλάχιστον μοναδικό (UNI). Tότε το πεδίο αυτό είναι ξένο κλειδί (MUL) για την οντότητα αυτή. Η σχέση αυτή δε είναι μή προσδιορισμένη σχέση. Εάν το ξένο κλειδί αποτελεί πρωτεύων κλειδί ή μοναδικό πεδίο για την οντότητα τότε η σχέση μεταξύ των οντοτήτων είναι πλήρως προσδιορισμένη.

52 Βάσεις Δεδομένων – Κλειδιά (2)
Κάθε οντότητα στην Β.Δ. Που έχει περισσότερα από ένα πρωτεύοντα κλειδιά, τότε τα κλειδιά αυτά αποτελούν ένα σύνθετο (composite primary key) για την οντότητα. Τα ταξινομημένα (INDEXED) πεδία μιας οντότητας δεν είναι απαραίτητο να είναι και μοναδικά. Έχουν δε τον ίδιο συμβολισμό με τα ξένα κλειδιά (MUL). Οι μή προσδιορισμένες σχέσεις οντοτήτων μπορεί να είναι optional ή mandatory που εξαρτάται από το αν το πεδίο του ξένου κλειδιού επιτρέπει NULL τιμές η όχι αντίστοιχα.


Κατέβασμα ppt "Βάσεις Δεδομένων Κωδικός Μαθήματος: MK741"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google