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

Θεωρία

Η σχεσιακή άλγεβρα είναι ένα παρακλάδι της άλγεβρας που ασχολείται με πράξεις πινάκων βάσεων δεδομένων.

Βασικές έννοιες

Μια βάση δεδομένων αποτελείται από πίνακες και σχέσεις μεταξύ τους.

Κάθε πίνακας αποτελείται από οριζόντιες γραμμές που λέγονται εγγραφές και περιέχουν τις τιμές των δεδομένων και από στήλες που λέγονται πεδία και λειτουργούν ως μεταβλητές.

Μια σχέση είναι πάντα ανάμεσα σε 2 πίνακες και αυτό που κάνει είναι να ταυτίζει ένα πεδίο του ενός πίνακα με ένα πεδίο του άλλου πίνακα (δηλαδή με απλά λόγια μας λέει ότι το πεδίο Α του ενός πίνακα είναι το ίδιο με το πεδίο Β του άλλου πίνακα). Οι σχέσεις μπορεί να είναι 2 ειδών:

Σχέση 1 προς 1

Αυτή η σχέση ουσιαστικά επεκτείνει τον πίνακα χωρίς να κάνει κάτι περισσότερο. Είναι δηλαδή σαν οι δύο συσχετιζόμενοι πίνακες να είναι στην ουσία ένας. Δεν μας ενδιαφέρει ιδιαίτερα.

Σχέση 1 προς πολλά (ή πολλά προς 1, αναλόγως από πού την παρατηρούμε)

Αυτή είναι η βασική σχέση στους πίνακες. Παράδειγμα: Το πεδίο ΚΩΔΙΚΟΣ_ΗΘΟΠΟΙΟΥ εμφανίζεται σε 2 πίνακες, στον πίνακα ΗΘΟΠΟΙΟΙ και στον πίνακα ΤΑΙΝΙΕΣ.

Στον πίνακα ΗΘΟΠΟΙΟΙ κάθε κάθε εγγραφή, πχ. η εγγραφή με τον κωδικό 555 είναι ένας συγκεκριμένος ηθοποιός και δεν μπορεί να μπει παρά μόνο μία φορά. Στον πίνακα ΤΑΙΝΙΕΣ όμως όπου κάθε έγγραφή είναι μία ταινία, ο κωδικός ηθοποιού 555 μπορεί να εμφανιστεί σε πολλές εγγραφές καθώς ο συγκεκριμένος ηθοποιός μπορεί να έχει παίξει σε πολλές ταινίες. Έτσι λέμε ότι η σχέση είναι "1 προς πολλά" δηλαδή "ένας ηθοποιός - πολλές ταινίες".

Σχέση πολλά προς πολλά

Αυτή η σχέση δεν μπορεί δεν μπορεί να οριστεί (αόριστη). Δηλαδή με απλά λόγια, το "πολλοί ηθοποιοί σε πολλές ταινίες" από μόνο του δεν λέει τίποτα. Χρειάζεται κάποιου είδους φιλτράρισμα που να μας λέει ποιοι ηθοποιοί σε ποιες ταινίες.

Για το σκοπό αυτό χρησιμοποιούμε έναν ενδιάμεσο πίνακα. Τέτοιους πίνακες τους ονομάζουμε είτε με ρήμα είτε με λέξη που να δηλώνει ενέργεια πχ. ΠΑΙΖΕΙ ή ΕΡΜΗΝΕΙΕΣ. Με τον ενδιάμεσο πίνακα δημιουργούμε μία σχέση ένα προς πολλά με τον καθένα από τους δύο άλλους οπότε έμμεσα είναι σαν να σχετίζονται οι δύο άλλοι με σχέση πολλά προς πολλά.

Πράξεις πινάκων

Η σχεσιακή άλγεβρα ασχολείται με πράξεις πινάκων, όχι αριθμών. Δηλαδή σε μία πράξη μετέχουν 2 ή περισσότεροι πίνακες και το αποτέλεσμα είναι πάντα ένας νέος πίνακας.

Οι πράξεις που μας ενδιαφέρουν είναι οι εξής:

Πράξη επιλογής

Ορίζεται ως σΣΥΝΘΗΚΗ(ΠΙΝΑΚΑΣ) όπου ΠΙΝΑΚΑΣ είναι ο πίνακας πάνω στον οποίο γίνεται η πράξη και συνθήκη είναι οποιαδήποτε μαθηματική και λογική συνθήκη.

Όταν λέμε συνθήκη εννοούμε μια μαθηματική πρόταση πχ. "το 5 είναι μεγαλύτερο του 3" (5>3) ή "το x2 είναι 7" (x2=7). Μια συνθήκη λοιπόν μπορεί να ισχύει ή να μην ισχύει. Πχ. η συνθήκη 5=1+4 ισχύει πάντα. Η συνθήκη x2=7 μπορεί να ισχύει, μπορεί και όχι, αναλόγως πόσο είναι πραγματικά το x. Η συνθήκη 5=7 δεν ισχύει ποτέ.

Άρα μια συνθήκη, δηλαδή μια μαθηματική πρόταση πρέπει οπωσδήποτε να περιέχει ισότητα ή ανισότητα. Επίσης μπορούμε να δημιουργήσουμε και σύνθετες συνθήκες χρησιμοποιώντας όλους τους γνωστούς λογικούς τελεστές δηλαδή AND, OR, NOT, XOR κλπ. Πχ. y>4 AND x2=7

Η πράξη της επιλογής λοιπόν, όταν εφαρμόζεται σε έναν πίνακα, μας δίνει ένα νέο πίνακα στον οποίον υπάρχουν μόνο εκείνες οι εγγραφές του αρχικού πίνακα στις οποίες ισχύει η δεδομένη συνθήκη.

Με πολύ απλά λόγια, η πράξη της επιλογής αφαιρεί γραμμές από τον αρχικό πίνακα.

Όλες οι πράξεις συνοπτικά

Όνομα

Ένωση

Αφαίρεση

Τομή

Σύμβολο

-

Ασκήσεις επανάληψης

Δίνονται οι πίνακες

ΠΕΛΑΤΕΣ

ΠΡΟΪΟΝΤΑ

ΠΩΛΗΣΕΙΣ

Υπολογίστε τα εξής:

1) Ποια προϊόντα κοστίζουν κάτω από 100€;

Απάντηση: σΤΙΜΗ<100(ΠΡΟΪΟΝΤΑ)

Κι αν θέλουμε να πάρουμε μόνο τα ονόματα των προϊόντων κι όχι όλη την εγγραφή κάνουμε και την πράξη της προβολής:

πΟΝΟΜΑΤΙΜΗ<100(ΠΡΟΪΟΝΤΑ))

2) Ποιοι πελάτες γεννήθηκαν μετά το 1990;

3) Ποιοι πελάτες γεννήθηκαν τη δεκαετία του '80;

3) Ποιοι πελάτες είναι μεγαλύτεροι από 30;

4) Ποιοι πελάτες είναι μεταξύ 20 και 30;

5) Ποια προϊόντα είναι ακριβότερα από οθόνη;

Απάντηση: Αυτό υπολογίζεται σε 2 βήματα. Πρώτα βρίσκουμε την τιμή της οθόνης. Έστω ο πίνακας ΟΘΟΝΕΣ

ΟΘΟΝΕΣ σΟΝΟΜΑ="ΟΘΟΝΗ"(ΠΡΟΪΟΝΤΑ)

Επειδή τώρα η συνθήκη μας περιέχει το πεδίο ΤΙΜΗ σε 2 διαφορετικούς πίνακες, πρέπει να βάλουμε και το όνομα του πίνακα πριν από το πεδίο:

σΠΡΟΪΟΝΤΑ.ΤΙΜΗ>ΟΘΟΝΕΣ.ΤΙΜΗ(ΠΡΟΪΟΝΤΑ)

6) Ποιοι πελάτες είναι μεγαλύτεροι από το Τζακ;

7) Ποιοι πελάτες αγόρασαν φορητό;

Απάντηση: Αυτό υπολογίζεται σε 3 βήματα. Πρώτα βρίσκουμε τον κωδικό του φορητού. Έστω ο πίνακας ΦΟΡΗΤΟΙ

ΦΟΡΗΤΟΙ σΟΝΟΜΑ="ΦΟΡΗΤΟΣ"(ΠΡΟΪΟΝΤΑ)

Στη συνέχεια βρίσκουμε τις πωλήσεις που έχουν αυτόν τον κωδικό. Έστω ο νέος πίνακας ΠΩΛΗΣΕΙΣ_ΦΟΡΗΤΩΝ

ΠΩΛΗΣΕΙΣ_ΦΟΡΗΤΩΝ σΠΩΛΗΣΕΙΣ.ΚΩΔΠΡ=ΦΟΡΗΤΟΙ.ΚΩΔΠΡ(ΠΩΛΗΣΕΙΣ)

Αφού εντοπίσαμε τις πωλήσεις φορητών χρησιμοποιούμε τον κωδικό πελάτη για να βρούμε ποιοι είναι οι πελάτες.

σΠΕΛΑΤΕΣ.ΚΩΔΠΕ=ΠΩΛΗΣΕΙΣ_ΦΟΡΗΤΩΝ.ΚΩΔΠΕ(ΠΕΛΑΤΕΣ)

Κι αν θέλουμε να έχουμε μόνο ονόματα:

πΟΝΟΜΑΠΕΛΑΤΕΣ.ΚΩΔΠΕ=ΠΩΛΗΣΕΙΣ_ΦΟΡΗΤΩΝ.ΚΩΔΠΕ(ΠΕΛΑΤΕΣ))

8) Τι αγόρασαν οι πελάτες με ηλικία μεταξύ 20 και 30;

9) Ποιοι πελάτες αγόρασαν και φορητό και σκληρό;

10) Πότε γεννήθηκαν οι πελάτες που αγόρασαν μόνο 1 κινητό;

11) α. Βρείτε τους 3 μικρότερους σε ηλικία πελάτες - β. Τι αγόρασαν;

Απάντηση στο α: Έστω η συνάρτηση ΜΑΧ(πλήθος τιμών) που ισούται με τη μεγαλύτερη από τις τιμές του πλήθους τιμών.

Έστω ο πίνακας ΜΙΚΡΟΤΕΡΟΣ_ΠΕΛΑΤΗΣ σΕΤΟΣ=ΜΑΧ(ΕΤΟΣ)(ΠΕΛΑΤΕΣ)

Ο πίνακας ΜΙΚΡΟΤΕΡΟΣ_ΠΕΛΑΤΗΣ περιέχει μόνο μια εγγραφή, αυτή με το μικρότερο πελάτη. Για να βρούμε τον αμέσως μικρότερο από αυτούς που απομένουν πρέπει να αφαιρέσουμε αυτήν την εγγραφή από τον πίνακα ΠΕΛΑΤΕΣ, ουσιαστικά να αφαιρέσουμε ολόκληρο τον πίνακα ΜΙΚΡΟΤΕΡΟΣ_ΠΕΛΑΤΗΣ αφού περιέχει μόνο αυτήν την εγγραφή.

ΥΠΟΛΟΙΠΟΙ_ΠΕΛΑΤΕΣ ΠΕΛΑΤΕΣ - ΜΙΚΡΟΤΕΡΟΣ_ΠΕΛΑΤΗΣ

Επαναλαμβάνουμε την ίδια διαδικασία για τον πίνακα ΥΠΟΛΟΙΠΟΙ_ΠΕΛΑΤΕΣ

ΔΕΥΤΕΡΟΣ_ΜΙΚΡΟΤΕΡΟΣ_ΠΕΛΑΤΗΣ σΕΤΟΣ=ΜΑΧ(ΕΤΟΣ)(ΥΠΟΛΟΙΠΟΙ_ΠΕΛΑΤΕΣ)

και την επαναλαμβάνουμε άλλη μια φορά

ΥΠΟΛΟΙΠΟΙ_ΠΕΛΑΤΕΣ' ΠΕΛΑΤΕΣ - ΔΕΥΤΕΡΟΣ_ΜΙΚΡΟΤΕΡΟΣ_ΠΕΛΑΤΗΣ

ΤΡΙΤΟΣ_ΜΙΚΡΟΤΕΡΟΣ_ΠΕΛΑΤΗΣ σΕΤΟΣ=ΜΑΧ(ΕΤΟΣ)(ΥΠΟΛΟΙΠΟΙ_ΠΕΛΑΤΕΣ')

Οπότε τώρα έχουμε 3 πίνακες που ο καθένας περιέχει μία εγγραφή, τον κάθε έναν από τους μικρότερους πελάτες. Αρκεί λοιπόν να τους προσθέσουμε όλους αυτούς. Η πρόσθεση στους πίνακες είναι η πράξη της ένωσης

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

12. Τι κοινό αγόρασαν η Μαρία και ο Τζακ;

(συνεχίζεται...)

Αρχεία