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

Σχετικά έγγραφα
Υπολογιστικά Συστήματα Βάσεις Δεδομένων Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας

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

Kεφ.2: Σχεσιακό Μοντέλο (επανάληψη) Κεφ.6.1: Σχεσιακή Άλγεβρα

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

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

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

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

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

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Κεφ 4: Προχωρημένες Εντολές SQL

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

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

Μοντέλο Οντοτήτων-Συσχετίσεων. Η ανάγκη Διαγράμματα ΟΣ Σύνολα Οντοτήτων-Συσχετίσεων Απεικονίσεις Επεκτάσεις

Σχεσιακό Μοντέλο. Σχεδιασμός Βάσεων Δεδομένων Μάθημα 2 ο Μαρία Χαλκίδη

Πληροφορική 2. Βάσεις Δεδομένων (Databases)

Αρχεία και Βάσεις Δεδομένων

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ

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

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

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

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

Σχεδίαση Σχεσιακών ΒΔ

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΗΥ 360 Αρχεία και Βάσεις Δεδομένων

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

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

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

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

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

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

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

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


ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ Relational Model. SQL Μαθ. #11

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

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

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

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

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

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

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

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

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

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

Διάλεξη 13: Γλώσσα Επεξεργασίας Δεδομένων/ Data Manipulation Language (SQL DML) I. Διδάσκων: Παναγιώτης Ανδρέου

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

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

Σχεσιακή Άλγεβρα και Σχεσιακός Λογισμός. Σχεσιακή Άλγεβρα Σχεσιακός Λογισμός

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

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

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

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

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

Θεωρία Κανονικοποίησης

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

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

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

Ηλεκτρονικοί Υπολογιστές II

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Βάσεις Δεδομένων Ενότητα 4

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ342: Βάσεις Δεδομένων. Χειμερινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ. Επερωτήσεις SQL

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

Instruction Execution Times

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

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

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

Certified Data Base Designer (CDBD)

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

Εισαγωγή στις Βάσεις Δεδομζνων II

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

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) Ενότητα Advanced Βάσεις Δεδομένων, Προχωρημένο Επίπεδο. Copyright 2013 ECDL Foundation Ref: SL_AM3_Syl2.

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

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

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

Βάσεις Δεδομένων. Ενότητα 4: Μοντελοποίηση Συσχέτισης Οντοτήτων. Αθανάσιος Σπυριδάκος Τμήμα Διοίκησης Επιχειρήσεων

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

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

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

Βάσεις δεδομένων. (7 ο μάθημα) Ηρακλής Βαρλάμης


ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

Βελτιστοποίηση ερωτημάτων Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

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

Έννοιες Διαχείρισης Βάσεων Δεδομένων και Αρχιτεκτονική

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

PostgreSQL. Oracle. Εαρινό Εξάμηνο

DELETE, UPDATE, INSERT.

Transcript:

Βάσεις Δεδομένων SQL Επιμέλεια: Δρ. Κώστας Δεμέστιχας, Δρ. Ευγενία Αδαμοπούλου, «ΠΛΗ23» Τηλεματική, Διαδίκτυα και Κοινωνία

Προτεινόμενη Βιβλιογραφία 2 A. Silberschatz, H. Korth και S. Sudarsham, Database System Concepts (Συστήματα Βάσεων Δεδομένων), 4 η έκδοση ή ανώτερη Για τη σύνταξη εντολών SQL μπορείτε να συμβουλεύεστε: http://www.w3schools.com/sql/default.asp

3 Σύστημα Διαχείρισης Βάσης Δεδομένων Σύστημα Διαχείρισης Βάσης Δεδομένων (Database Management System DBMS) ένα σύστημα που επιτρέπει την αποτελεσματική και βολική αποθήκευση δεδομένων που σχετίζονται μεταξύ τους καθώς και την πρόσβαση σε αυτά Βάση Δεδομένων (ΒΔ) Database (DB): η συλλογή των δεδομένων που σχετίζονται μεταξύ τους Ευρεία χρήση σε Τράπεζες: πληροφορίες συναλλαγών Αεροπορικές εταιρείες: κρατήσεις θέσεων, πληροφορίες πτήσεων Πανεπιστήμια: εγγραφές και βαθμοί φοιτητών Πωλήσεις: πληροφορίες πελατών, προϊόντων, πωλήσεων Συναλλαγές πιστωτικών καρτών: πληροφορίες συναλλαγών, μηνιαίες κινήσεις Τηλεπικοινωνίες: αναλυτικές καταστάσεις κλήσεων, μηνιαίες χρεώσεις, πληροφορίες θέσης, πληροφορίες συνδρομητών Βιομηχανία: πληροφορίες προμηθειών, αποθήκης, παραγγελιών Ανθρώπινοι πόροι: πληροφορίες εργαζομένων, μισθών, φόρων μισθοδοσίας

4 Τα Μειονεκτήματα των Συστημάτων Αρχείων Όπως είδαμε σε προηγούμενο μάθημα, ένας τρόπος για τη διατήρηση πληροφοριών σε έναν υπολογιστή είναι η αποθήκευσή τους σε αρχεία του Λειτουργικού Συστήματος Πριν την έλευση των DBMS, οι εφαρμογές βάσεων δεδομένων βασίζονταν απευθείας στα συστήματα αρχείων Μειονεκτήματα της απευθείας χρήσης συστημάτων αρχείων για την αποθήκευση και διαχείριση δεδομένων Πλεονασμός και ασυνέπεια των δεδομένων Επανάληψη πληροφορίας σε διαφορετικά αρχεία, συνακόλουθη δυσκολία διατήρησης της συνέπειας των διαφόρων αντιγράφων των ίδιων δεδομένων Δυσχερής πρόσβαση στα δεδομένα Κάθε φορά που εμφανίζεται μια νέα ανάγκη (π.χ. αναζήτηση με βάση διαφορετικά κριτήρια), πρέπει να γραφεί ένα καινούριο πρόγραμμα που να την καλύπτει Απομόνωση των δεδομένων Δεδομένα κατανεμημένα σε πολλαπλά αρχεία διαφορετικών τύπων

5 Τα Μειονεκτήματα των Συστημάτων Αρχείων Μειονεκτήματα συνέχεια Προβλήματα ακεραιότητας των δεδομένων Δυνατότητα επιβολής περιορισμών στα δεδομένα (π.χ. υπόλοιπο λογαριασμού >= 0) μόνο μέσα από τον κώδικα των προγραμμάτων, δυσχεραίνοντας την προσθήκη νέων Προβλήματα ατομικότητας των ενημερώσεων Παράδειγμα: αν η μεταφορά ενός ποσού από ένα λογαριασμό σε έναν άλλο διακοπεί, τότε πρέπει ή να γίνουν και οι δύο ενέργειες (χρέωση του ενός λογαριασμού και ισόποση πίστωση του άλλου) ή να μην γίνει καμία από τις δύο ενέργειες Προβλήματα ταυτόχρονης πρόσβασης Παράδειγμα: αν δύο πελάτες προσπαθήσουν ταυτόχρονα να κάνουν ανάληψη από ένα λογαριασμό Προβλήματα ασφάλειας Δυσκολία παροχής πρόσβασης στους χρήστες σε κάποια αλλά όχι όλα τα δεδομένα Στα προβλήματα αυτά δίνουν λύσεις τα DBMS

Αφαιρετικότητα Δεδομένων 6 Βασικός σκοπός ενός DBMS είναι να παρέχει στους χρήστες μια αφηρημένη προβολή των δεδομένων, αποκρύπτοντας λεπτομέρειες σχετικά με τον τρόπο αποθήκευσής τους Φυσικό Επίπεδο: περιγράφει πώς αποθηκεύονται τα δεδομένα, δηλ. πολύπλοκες δομές δεδομένων Λογικό Επίπεδο: περιγράφει τι δεδομένα αποθηκεύονται στη βάση και ποιες είναι οι σχέσεις μεταξύ τους Επίπεδο Προβολής: περιγράφει 1.3μέρος Viewμόνο of Data μιας ολόκληρης 7 βάσης, ανάλογα με τις ανάγκες και απαιτήσεις του χρήστη (π.χ. μπορεί να υπάρχει μία προβολή που να περιλαμβάνει τους μισθούς των εργαζομένων και μία που να μην τους περιλαμβάνει) view level view 1 view 2 view n logical level physical Βάσεις level Δεδομένων - Επιμέλεια Εκπαιδευτικών Διαφανειών - Κ. Δεμέστιχας, Ε. Αδαμοπούλου

Βασικές Έννοιες 7 Σχήμα ΒΔ (schema): Το γενικό σχέδιο της ΒΔ (μεταβάλλεται σπάνια) Καθορίζει το είδος των δεδομένων που θα διατηρεί η ΒΔ, καθώς και το είδος των σχέσεων μεταξύ τους Παράδειγμα: η ΒΔ θα διατηρεί το σύνολο των πελατών μιας τράπεζας και το σύνολο των λογαριασμών της, καθώς και τον τρόπο αντιστοίχισης αυτών Στιγμιότυπο ΒΔ (instance): Η συλλογή των δεδομένων που είναι αποθηκευμένα στη ΒΔ κάποια συγκεκριμένη στιγμή Πρόκειται δηλ. για τα περιεχόμενα της ΒΔ μια χρονική στιγμή Μοντέλο δεδομένων (data model): Ένα σύνολο εργαλείων για την περιγραφή των δεδομένων, των σχέσεών τους, της σημασίας τους και των περιορισμών τους Δύο βασικοί τύποι μοντέλων δεδομένων Σχεσιακό μοντέλο (Relational model) Μοντέλο οντότητας-σχέσης (Entity-Relationship model E-R model)

Σχεσιακό Μοντέλο 8 Ένα σχεσιακό μοντέλο χρησιμοποιεί μια συλλογή από πίνακες για την αναπαράσταση των δεδομένων και των σχέσεών τους Κάθε πίνακας (ή αλλιώς σχέση relation) αποτελείται από στήλες (ή αλλιώς πεδία ή ιδιότητες attributes) και γραμμές (ή αλλιώς εγγραφές ή πλειάδες tuples) Η σειρά των εγγραφών δεν έχει σημασία Παράδειγμα: Βλ. επόμενη διαφάνεια Βλέπουμε ότι η αντιστοίχιση (συσχέτιση) πελατών με λογαριασμούς γίνεται αποτελεσματικότερα μέσω ενός τρίτου πίνακα (του πίνακα καταθετών)

9

Κλειδιά 10 Ένα υπερ-κλειδί (superkey) είναι ένα σύνολο από μία ή περισσότερες ιδιότητες που προσδιορίζουν μοναδικά κάθε εγγραφή ενός πίνακα Παράδειγμα: Τόσο το σύνολο {customer-id} όσο και το {customer-id, customer-name} αποτελούν υπερ-κλειδιά για τον πίνακα customer Ένα υπερ-κλειδί Κ λέγεται υποψήφιο κλειδί (candidate key) αν είναι το ελάχιστο δυνατό (δηλ. δεν υπάρχει υποσύνολό του που να αποτελεί υπερ-κλειδί) Παράδειγμα: Το σύνολο {customer-id} είναι υποψήφιο κλειδί για τον πίνακα customer Ο σχεδιαστής της ΒΔ διαλέγει ένα υποψήφιο κλειδί για να προσδιορίσει μοναδικά κάθε εγγραφή του πίνακα το υποψήφιο αυτό κλειδί ονομάζεται πρωτεύον κλειδί (primary key PK)

Κλειδιά 11 Το πρωτεύον κλειδί θα πρέπει να επιλέγεται με προσοχή Παραδείγματα: Μπορεί να χρησιμοποιηθεί ως μοναδικό αναγνωριστικό ενός ατόμου... το ονοματεπώνυμό του? η διεύθυνσή του? ο αριθμός κοινωνικής ασφάλισής του? ο αριθμός φορολογικού μητρώου του? Ξένο κλειδί (foreign key FK): Ένας πίνακας (έστω r f ) ενδέχεται να περιλαμβάνει μεταξύ των ιδιοτήτων του και το πρωτεύον κλειδί (έστω K p ) ενός άλλου πίνακα (έστω r p ) η ιδιότητα αυτή αποτελεί ένα ξένο κλειδί για τον r f που κάνει αναφορά (δείχνει) στον r p Η σχέση r f καλείται και αναφέρουσα (referencing) σχέση, ενώ η r p καλείται αναφερόμενη (referenced) σχέση

Πεδίο Ορισμού και Σχήμα Σχέσης 12 Το σύνολο επιτρεπτών τιμών μιας ιδιότητας καλείται πεδίο ορισμού (domain) Η ειδική τιμή null θεωρείται μέλος κάθε πεδίου ορισμού και σημαίνει ότι η αντίστοιχη τιμή απουσιάζει ή είναι άγνωστη Ο χειρισμός τιμών null είναι συχνά δύσκολος Έστω ότι A 1, A 2,, A n είναι ιδιότητες Τότε το R = (A 1, A 2,, A n ) ονομάζεται σχήμα σχέσης (relation schema) Παράδειγμα: customer = (customer-id, customer-name, customer-street, customer-city) ή καλύτερα γράφουμε: customer (customer-id, customer-name, customer-street, customer-city)

Γλώσσες ΒΔ 13 Γλώσσα Ορισμού των Δεδομένων Data Definition Language (DDL): καθορίζει το σχήμα της ΒΔ Παράδειγμα: Ορισμός του πίνακα account create table account (account-number char(10), balance integer) Η εκτέλεση της παραπάνω εντολής δημιουργεί τον πίνακα account, ενώ επίσης ενημερώνει ένα ειδικό σύνολο από πίνακες το οποίο ονομάζεται λεξικό ή κατάλογος δεδομένων και περιέχει μετα-δεδομένα. Γλώσσα Χειρισμού των Δεδομένων Data Manipulation Language DML): επιτρέπει στους χρήστες να ανακαλούν πληροφορίες, εισάγουν νέες, διαγράφουν ή τροποποιούν υπάρχουσες Παράδειγμα: select customer-name from customer where customer-id = 192-83-7465 Η εκτέλεση της παραπάνω εντολής βρίσκει το όνομα του πελάτη του οποίου ο κωδικός είναι ο 192-83-7465. Τέτοιου είδους εντολές καλούνται και ερωτήματα. Η SQL (Structured Query Language) είναι η πιο διαδεδομένη γλώσσα για ΒΔ (τόσο DDL όσο και DML)

Παράδειγμα Βάσης Δεδομένων 14 STUDENTREGISTRY Name IdNumber Address Semester NumberofFail edexams Adamopoulou 03100121 Polytexneiou 35 7 0 Demestichas 03100100 Katexaki 24 8 1 Papadopoulos 03100203 Papagou 3 7 4 Papadakis 03101122 Kokkinopoulou 15 6 2 Raptis 03100209 Papagou 5 7 1

Παράδειγμα Βάσης Δεδομένων 15 GRADESREGISTRY IdNumber Diktya Arxitektoni ki Sxedio 03100121 1 2 10 03100100 4 5 9 03100203 6 6 03101122 8 3 03100209 7 9 *Στο παράδειγμα, όπου ο πίνακας έχει κενά θεωρούμε ότι υπάρχει η τιμή null

16 Παράδειγμα SQL Query Επιστροφή όλων των εγγραφών select * from STUDENTREGISTRY; Τι κάνει το παραπάνω query? Απ.: Επιστρέφει όλες τις εγγραφές του πίνακα STUDENTREGISTRY Name IdNumber Address Semester NumberofFail edexams Adamopoulou 03100121 Polytexneiou 35 7 0 Demestichas 03100100 Katexaki 24 8 1 Papadopoulos 03100203 Papagou 3 7 4 Papadakis 03101122 Kokkinopoulou 15 6 2 Raptis 03100209 Papagou 5 7 1

Παράδειγμα SQL Query Επιστροφή εγγραφών με συγκεκριμένα κριτήρια 17 select * from STUDENTREGISTRY where Semester=7; Τι κάνει το παραπάνω query? Απ.: Επιστρέφει όλες τις εγγραφές του πίνακα STUDENTREGISTRY με τους φοιτητές που βρίσκονται στο 7 o εξάμηνο Name IdNumber Address Semester NumberofFail edexams Adamopoulou 03100121 Polytexneiou 35 7 0 Papadopoulos 03100203 Papagou 3 7 4 Raptis 03100209 Papagou 5 7 1

18 Παράδειγμα SQL Query Επιστροφή στήλης με συγκεκριμένα κριτήρια select IdNumber from STUDENTREGISTRY where Semester=7; Τι κάνει το παραπάνω query? Απ.: Επιστρέφει τους αριθμούς μητρώου όλων των φοιτητών που βρίσκονται στο 7 ο εξάμηνο Πώς παίρνουμε τους Α/Μ όλων των φοιτητών που βρίσκονται σε εξάμηνο μικρότερο του 7 ου ; IdNumber 03100121 03100203 03100209

19 Παράδειγμα SQL Query Μέτρηση εγγραφών και χρήση συναρτήσεων select count(*) from STUDENTREGISTRY; Τι κάνει το παραπάνω query? Απ. Επιστρέφει το πλήθος γραμμών του πίνακα STUDENTREGISTRY (δηλ.: 5) select count(*) from STUDENTREGISTRY where Semester > 6 AND Semester < 9; Τι κάνει το παραπάνω query? Απ. Επιστρέφει το πλήθος φοιτητών που βρίσκονται στο 7ο ή στο 8ο εξάμηνο (4) Ομοίως: select count(*) from STUDENTREGISTRY where Semester = 7 OR Semester = 8; Ομοίως: select count(*) from STUDENTREGISTRY where Semester in (7, 8); Άλλες σημαντικές συναρτήσεις (aggregate functions): max(), min(), avg(), sum() Επιστρέφουν μία τιμή που υπολογίζεται βάσει των τιμών μιας στήλης Ερ. Τι κάνει το παρακάτω query? select avg(sxedio) from GRADESREGISTRY;

20 Παράδειγμα SQL Query Ανάκτηση εγγραφών από δύο πίνακες select STUDENTREGISTRY.Name, GRADESREGISTRY.Diktya, GRADESREGISTRY.Sxedio from STUDENTREGISTRY, GRADESREGISTRY where STUDENTREGISTRY.IdNumber = GRADESREGISTRY.IdNumber; ή: select s.name, g.diktya, g.sxedio from STUDENTREGISTRY as s, GRADESREGISTRY as g where s.idnumber = g.idnumber; Τι κάνει το παραπάνω query? Απ. Επιστρέφει τα ονόματα των φοιτητών και τους αντίστοιχους βαθμούς τους στα μαθήματα Δίκτυα και Σχέδιο Εναλλακτικά με χρήση join: select STUDENTREGISTRY.Name, GRADESREGISTRY.Diktya, GRADESREGISTRY.Sxedio from STUDENTREGISTRY join GRADESREGISTRY on STUDENTREGISTRY.IdNumber = GRADESREGISTRY.IdNumber; Name Diktya Sxedio Adamopoulou 1 10 Demestichas 4 9 Papadopoulos 6 Papadakis 8 3 Raptis 7

21 Είδη συνδέσμων (join) Εποπτική παρουσίαση *join σκέτο και inner join είναι συνώνυμα *left/right/full join και left/right/full outer join είναι συνώνυμα, αντίστοιχα

22 Παράδειγμα SQL Query Οι δύο τρόποι να κάνουμε join Με χρήση join: select table1.this, table2.that, table2.somethingelse from table1 inner join table2 on table1.foreignkey = table2.primarykey where (some other conditions) Με κατάλληλη συνθήκη εντός του where: select table1.this, table2.that, table2.somethingelse from table1, table2 where table1.foreignkey = table2.primarykey AND (some other conditions)

23 Παράδειγμα SQL Query Επιλογή εξ αποτελέσματος άλλου query select Name from (select s.name, g.diktya from STUDENTREGISTRY as s, GRADESREGISTRY as g where s.idnumber = g.idnumber) where Diktya < 5; Τι κάνει το παραπάνω query? Απ. Επιστρέφει τα ονόματα των φοιτητών που έχουν βαθμό μικρότερο του 5 στο μάθημα Δίκτυα Name Adamopoulou Demestichas

24 Παράδειγμα SQL Query Επιστροφή ταξινομημένων αποτελεσμάτων select * from STUDENTREGISTRY order by IdNumber; Τι κάνει το παραπάνω query? Απ. Επιστρέφει όλες τις εγγραφές του πίνακα STUDENTREGISTRY ταξινομημένες κατά αύξουσα σειρά του Αριθμού Μητρώου Name IdNumber Address Semester NumberofFail edexams Demestichas 03100100 Katexaki 24 8 1 Adamopoulou 03100121 Polytexneiou 35 7 0 Papadopoulos 03100203 Papagou 3 7 4 Raptis 03100209 Papagou 5 7 1 Papadakis 03101122 Kokkinopoulou 15 6 2

Παράδειγμα SQL Query Χρήση συνάρτησης με ομαδοποίηση αποτελεσμάτων 25 select Semester, sum(numberoffailedexams) as SumOfFailedExams from STUDENTREGISTRY group by Semester; Τι κάνει το παραπάνω query? Απ. Επιστρέφει το άθροισμα των αποτυχημένων εξετάσεων ανά εξάμηνο Semester SumOfFailedEx ams 8 1 7 5 6 2

Παράδειγμα SQL Query Απαλοιφή διπλότυπων 26 select distinct Semester from STUDENTREGISTRY; Τι κάνει το παραπάνω query? Απ. Επιστρέφει τις τιμές των εξαμήνων χωρίς διπλότυπα Semester 8 7 6

27 Παράδειγμα SQL Query Αναζήτηση με μοτίβο χαρακτήρων select Name from STUDENTREGISTRY where Name LIKE Papa% ; Τι κάνει το παραπάνω query? Απ. Επιστρέφει τα ονόματα των φοιτητών που ξεκινούν με Papa (και ακολουθεί κανένας, ένας ή περισσότεροι χαρακτήρες) Χρησιμοποιήθηκε εδώ το wildcard % για να φτιαχτεί το μοτίβο (pattern) που θέλουμε να αναζητήσουμε Επίσης, συχνά χρησιμοποιείται και το wildcard _ για να υποδηλώσει έναν ακριβώς χαρακτήρα (π.χ. το Papadak_s θα επέστρεφε και το Papadakis αλλά και το Papadakos, αν υπήρχε) Τι αποτέλεσμα θα είχε η ακόλουθη εντολή; select Name from STUDENTREGISTRY where Name LIKE %apad% ; Name Papadopoulos Papadakis

28 Παράδειγμα SQL Query Γενική σύνταξη Παράδειγμα 1: select attr 1, attr 2,, attr j,, attr n into table_results from table1 where condition1 AND OR condition2 order by table1.attr j asc desc; Παράδειγμα 2: select attr 1, aggregate_function(attr 2 ) as myvalue into table_results from table1 where condition1 AND OR condition2 group by attr 1 order by myvalue asc desc;

29 Παράδειγμα SQL Query Τροποποίηση εγγραφών πίνακα update STUDENTREGISTRY set Address = Amarousiou 32 where Name = Raptis ; Τι κάνει το παραπάνω query? Απ. Αλλάζει τη διεύθυνση του φοιτητή Ράπτη Ερ. Τι θα γινόταν αν ξεχνούσαμε το where Name = Raptis ; Name IdNumber Address Semester NumberofFail edexams Adamopoulou 03100121 Polytexneiou 35 7 0 Demestichas 03100100 Katexaki 24 8 1 Papadopoulos 03100203 Papagou 3 7 4 Papadakis 03101122 Kokkinopoulou 15 6 2 Raptis 03100209 Amarousiou 32 7 1

30 Παράδειγμα SQL Query Διαγραφή εγγραφών πίνακα delete from STUDENTREGISTRY where Name = Raptis ; Τι κάνει το παραπάνω query? Απ. Διαγράφει το φοιτητή Ράπτη Ερ. Τι θα γινόταν αν ξεχνούσαμε το where Name = Raptis ; Name IdNumber Address Semester NumberofFail edexams Adamopoulou 03100121 Polytexneiou 35 7 0 Demestichas 03100100 Katexaki 24 8 1 Papadopoulos 03100203 Papagou 3 7 4 Papadakis 03101122 Kokkinopoulou 15 6 2

31 Παράδειγμα SQL Query Εισαγωγή νέων εγγραφών σε πίνακα insert into STUDENTREGISTRY values ( Raptis, 031000209, Amarousiou 32, 7, 1); Τι κάνει το παραπάνω query? Απ. Εισάγει το φοιτητή Ράπτη μαζί με τα στοιχεία του (θεωρούμε ότι ο Ράπτης είχε διαγραφεί μέσω του προηγούμενου query) Name IdNumber Address Semester NumberofFail edexams Adamopoulou 03100121 Polytexneiou 35 7 0 Demestichas 03100100 Katexaki 24 8 1 Papadopoulos 03100203 Papagou 3 7 4 Papadakis 03101122 Kokkinopoulou 15 6 2 Raptis 03100209 Amarousiou 32 7 1

Δομή ΒΔ 32 Δύο βασικά συστατικά Διαχειριστής αποθήκευσης (storage manager) Επεξεργαστής ερωτημάτων (query processor)

Διαχειριστής Αποθήκευσης 33 Υπεύθυνος για την αποτελεσματική αποθήκευση, ανάκληση και ενημέρωση δεδομένων Συστατικά του διαχειριστή αποθήκευσης Διαχειριστής ελέγχου ταυτότητας και ακεραιότητας Διαχειριστής συναλλαγών συναλλαγή (transaction) είναι ένα σύνολο ενεργειών επί της ΒΔ οι οποίες πρέπει να εκτελεστούν σαν μια ενιαία λειτουργία Διαχειριστής αρχείων υπεύθυνος για τη δέσμευση του χώρου στο δίσκο και τις δομές δεδομένων που χρησιμοποιούνται για την αποθήκευση πληροφοριών Διαχειριστής buffer υπεύθυνος για την τροφοδοσία των δεδομένων από το δίσκο στην κύρια μνήμη Χειρίζεται τις εξής δομές δεδομένων Αρχεία δεδομένων Λεξικό δεδομένων Ευρετήρια

Επεξεργαστής Ερωτημάτων 34 Βασικά στάδια επεξεργασίας ερωτήματος 1. Επεξεργασία και μετάφραση (Parsing and translation) 2. Βελτιστοποίηση 538 Chapter 12 Query (Optimization) Processing 3. Υπολογισμός (Evaluation) Βασικά συστατικά DDL interpreter (διερμηνευτής) DML compiler (μεταγλωττιστής) Query evaluation engine (Μηχανή υπολογισμού ερωτημάτων) query query output parser and translator evaluation engine relational-algebra expression optimizer execution plan data statistics about data

Γενική Δομή DBMS 35

Διαχείριση Συναλλαγών 36 Μια συναλλαγή (transaction) αποτελείται από μια σειρά από εντολές ερωτημάτων ή/και ενημερώσεων που πρέπει να εκτελεστεί αδιαίρετα Μια συναλλαγή τερματίζει με μία από τις δύο κάτωθι εντολές commit (ολοκλήρωση), μέσω της οποίας γίνονται μόνιμες οι ενημερώσεις που εκτελεί η συναλλαγή στη ΒΔ rollback (αναίρεση), μέσω της οποίας ακυρώνονται όλες οι ενημερώσεις που έγιναν από τις SQL εντολές της συναλλαγής Σε πολλές ΒΔ, κάθε SQL εντολή θεωρείται εξ ορισμού μία συναλλαγή από μόνη της και γίνεται commit μόλις εκτελεστεί Αυτό το αυτόματο commit το απενεργοποιεί ο προγραμματιστής εάν επιθυμεί να ορίσει μια συναλλαγή που αποτελείται από SQL εντολές

Διαχείριση Συναλλαγών 37 Οι συναλλαγές απαιτείται να έχουν ιδιότητες ACID (Atomicity, Consistency, Isolation, Durability) Ατομικότητα (Atomicity): διασφαλίζει ότι ή όλες οι επιπτώσεις μιας συναλλαγής θα εμφανιστούν στη ΒΔ ή καμία δε θα εμφανιστεί Συνέπεια (Consistency): διασφαλίζει ότι η εκτέλεση μιας συναλλαγής σε μια συνεπή ΒΔ αφήνει σε συνεπή κατάσταση τη ΒΔ Απομόνωση (Isolation): διασφαλίζει ότι η ταυτόχρονη εκτέλεση συναλλαγών απομονώνει τη μία συναλλαγή από την άλλη Αντοχή (Durability): διασφαλίζει ότι, αφού ολοκληρωθεί επιτυχώς μια συναλλαγή, οι ενημερώσεις αυτής δε χάνονται, ακόμα και αν το σύστημα χαλάσει

38 Τυπική Αρχιτεκτονική Εφαρμογών ΒΔ 1.10 D ata M ining and I nformation Retrieval 2 user client user application application client netw ork netw ork database system server application server database system (a) Tw o-tier architecture (b) Three-tier architecture

39 Ευχαριστώ για την προσοχή σας!

40 Παράρτημα

41 It is easy to misinterpret the 0.. on the left edge and think that the relationship advisor is many-to-one from instructor to student this is exactly the reverse of the correct interpretation. If both edges have a maximum value of 1, the relationship is one-to-one. If we had specified a cardinality limit of 1.. on the left edge, we would be saying that each instructor must advise at least one student. The E-R diagram in Figure 7.10 could alternatively have been drawn with adouble Το μοντέλο line fromοντότητας-σχέσης student to advisor, and(μοντέλο arrow on E-R) theείναι line from ένα advisor to instructor,in υψηλού place επιπέδου of the cardinality μοντέλο constraints δεδομένων shown. το This οποίο alternative βασίζεται diagram would enforce exactly the same constraints as the constraints shown in the figure. Μοντέλο E-R Απλό παράδειγμα στην αντίληψη του πραγματικού κόσμου, και αποτελείται από μια συλλογή βασικών αντικειμένων, που ονομάζονται οντότητες, και από τις σχέσεις μεταξύ αυτών των αντικειμένων 7.5.3 Complex Attributes Figure 7.11 shows how composite attributes can be represented in the E-R notation. Here, Τα a composite σύνολα οντοτήτων attribute name, αναπαριστώνται with component με attributes ορθογώνια first name, middle initial, and last name replaces the simple attribute name of instructor. Asanother example, Τα σύνολα supposeσχέσεων we were to αναπαριστώνται add an address to με the ρόμβους instructor entity-set. The address Γραμμές can be συνδέουν defined as σύνολα the composite οντοτήτων attribute με address σύνολα with σχέσεων the attributes instructor student ID name salary 0..* advisor 1..1 ID name tot_cred

42 between instructor and inst dept, indicating total participation of instructor in inst dept; that is, each instructor must be associated with a department. Further, there is an arrow from inst dept to department, indicating that each instructor can have at most one associated department. Μοντέλο E-R Πολύπλοκο παράδειγμα course_dept department dept_name building budget inst_dept stud_dept instructor ID name salary advisor student ID name tot_cred teaches takes grade course_id course course_id title credits prereq prereq_id sec_course section sec_id semester year sec_class sec_time_slot time_slot time_slot_id { day start_time end_time } classroom building room_number capacity

the requirements of the application but may not be familiar with data modeling. An intuitive diagrammatic representation is particularly important since it eases communication of information between these groups of experts. A number of alternative notations for modeling data have been proposed, Συμβολισμοί στα διαγράμματα E-R of which E-R diagrams and UML class diagrams are the most widely used. There is no universal standard for E-R diagram notation, and different books and E-R diagram software use different notations. We have chosen a particular notation 43 E R R entity set relationship set identifying relationship set for w eak entity set E A1 A2 A2.1 A2.2 {A3} A4() E A1 a ributes: simple (A 1), composite (A 2) and multivalued (A 3) derived (A 4) primary key R E total participation of entity set in relationship E A1 discriminating a ribute of weak entity set R many-to-many relationship R many-to-one relationship R one-to-one relationship R l..h E cardinality limits R rolename E role indicator E2 E1 E3 ISA: generalization or specialization E1 total total (disjoint) generalization E1 disjoint generalization Βάσεις Δεδομένων E2 E3- Επιμέλεια Εκπαιδευτικών E2 E3 Διαφανειών - Κ. Δεμέστιχας, Ε. Αδαμοπούλου

Αντιστοιχία συμβολισμών μεταξύ διαγραμμάτων 7.9 Alternative N otations for M odeling D ata 309 ER και UML διαγραμμάτων κλάσεων 44 ER Diagram Notation E entity w ith E a ributes (simple, A1 A1 composite, M1() multivalued, derived) +M1() Equivalent in UM L class w ith simple a ributes and methods (a ribute prefixes: + = public, = private, # = protected) E1 role1 role2 R E2 binary relationship E1 role1 R role2 E2 E1 A1 role1 role2 R E2 relationship a ributes E1 R A1 role1 role2 E2 E1 0.. * 0..1 cardinality 0..1 R 0.. * R E2 E1 constraints E2 E1 R E2 E3 n-ary relationships E1 R E2 E3 E2 E1 E3 overlapping generalization E2 E1 E3 overlapping E1 E1 disjoint disjoint generalization Βάσεις E2 Δεδομένων E3 - Επιμέλεια Εκπαιδευτικών E2 Διαφανειών E3 - Κ. Δεμέστιχας, Ε. Αδαμοπούλου

45 operate on numbers. Just as algebraic operations on numbers take one or more numbers as input and return a number as output, the relational algebra operations typically take one or two relations as input and return a relation as Σχεσιακή Άλγεβρα output. Also: Relational algebra is covered in detail in Chapter 6, but we outline a few of the operations below. Symbol (Name) Example of Use salary> = 85000 (instructor ) (Selection) Return rows of the input relation that satisfy the predicate. ID,salary(instructor ) (Projection) Output specified attributes from all rows of the input relation. Remove duplicate tuples from the output. instructor department (Natural join) Output pairs of rows from the two input relations thathave the same value on all attributes that have the same name. instructor department (Cartesian product) Output all pairs of rows from the two input relations (regardless of whether or not they have the same values on common attributes) name(instructor ) name (student ) (Union) Output the union of tuples from the two input relations. The expression ρ x (E) returns the result of E under the name x The expression ρ x(a1, A2,, An) (E) returns the result of E under the name x, and with the and salary. In this example, we could have performed the operations in either order, attributes that renamed is not the to case A 1, Afor 2, all, situations, A n as we shall see. Sometimes, Βάσεις Δεδομένων the result -of Επιμέλεια a query Εκπαιδευτικών contains duplicate Διαφανειών tuples. - For Κ. Δεμέστιχας, example, Ε. if we Αδαμοπούλου

46 Αντικειμενοστραφείς Βάσεις Δεδομένων Όταν τα υπό διαχείριση δεδομένα είναι περίπλοκα και σύνθετα, το σχεσιακό (relational) μοντέλο μπορεί να αποδειχτεί ανεπαρκές Το αντικειμενοστραφές (ΟΟ - object-oriented) μοντέλο δεδομένων, το οποίο βασίζεται στις αρχές του αντικειμενοστραφούς προγραμματισμού (όπως ενθυλάκωση, πολυμορφισμός, κληρονομικότητα, κλάσεις αντικειμένων), μπορεί να συνιστά κατάλληλη λύση σε τέτοιες περιπτώσεις Ένα αντικειμενοστραφές DBMS πρέπει να είναι σε θέση να αποθηκεύει αντικείμενα σαν αυτά που υποστηρίζονται από την επιλεγείσα αντικειμενοστραφή γλώσσα προγραμματισμού Τέτοιου είδους αντικείμενα καλούνται μόνιμα (persistent), δηλ. δεν εξαφανίζονται μόλις τερματιστεί το πρόγραμμα, και ανήκουν και αυτά σε κλάσεις Η καταλληλότητα ή μη των αντικειμενοστραφών ΒΔ αποτελεί αντικείμενο διενέξεων και πρέπει να κρίνεται κατά περίσταση Για μια αντιμετώπιση του θέματος, βλ. π.χ.: http://www.25hoursaday.com/whyarentyouusinganoodbms.html

NoSQL Βάσεις Δεδομένων 47 «NoSQL» σημαίνει Not only SQL και πρόκειται για ένα «κίνημα» που υποστηρίζει ότι one size does not fit all (δηλ. ότι το σχεσιακό μοντέλο δεν μπορεί να επιλύσει το ίδιο αποδοτικά όλα τα προβλήματα διαχείρισης δεδομένων) Βασικά χαρακτηριστικά Δεν απαιτείται «σχήμα» για τη ΒΔ Ακολουθείται μη-σχεσιακό μοντέλο Καλύτερη υποστήριξη για κατανεμημένες ΒΔ (clusters με πολλούς κόμβους) Αναλόγως με το εκάστοτε πρόβλημα, η επιλογή κατάλληλης NoSQL ΒΔ μπορεί να επιφέρει σημαντικά καλύτερη απόδοση και κλιμακωσιμότητα (σε σύγκριση με SQL λύσεις), ειδικά όταν ο όγκος των δεδομένων αυξάνεται ραγδαία (Big Data) Αυτά τα πλεονεκτήματα έρχονται συνήθως θυσιάζοντας την πλήρη υποστήριξη ACID

NoSQL Βάσεις Δεδομένων 48 Δημοφιλείς τύποι NoSQL ΒΔ key-value stores (π.χ. Riak, Redis) document databases (π.χ. MongoDB) column/table stores (π.χ. Apache Cassandra) triple/graph databases (π.χ. Neo4j) Οι απόψεις διίστανται για το κατά πόσον οι αντικειμενοστραφείς ΒΔ εντάσσονται στο NoSQL κίνημα ή όχι