Θεωρίες σχεσιακών βάσεων δεδομένων. Θεωρία σχεσιακών βάσεων δεδομένων: κανονικοποίηση, σχέσεις και ενώσεις. Υπουργείο Παιδείας και Επιστημών της Ρωσικής Ομοσπονδίας

Σχόλιο: Αυτή και οι επόμενες δύο διαλέξεις είναι αφιερωμένες στη θεωρία των σχεσιακών βάσεων δεδομένων. Δεδομένου ότι η όλη σχεσιακή προσέγγιση για την οργάνωση της βάσης δεδομένων είναι καθαρά πρακτική, αυτή η θεωρία είναι κυρίως ρεαλιστική. Το κύριο πρόβλημα που στοχεύει να λύσει η θεωρία των σχεσιακών βάσεων δεδομένων είναι η ανακάλυψη των χρήσιμων ιδιοτήτων ορισμένων σχημάτων βάσεων δεδομένων και η ανάπτυξη τρόπων κατασκευής τέτοιων σχημάτων. Αυτό το πρόβλημα αναφέρεται συνήθως εν συντομία ως πρόβλημα σχεδιασμού σχεσιακής βάσης δεδομένων.

Εισαγωγή

Παρά τον πρακτικό προσανατολισμό του, θεωρία σχεσιακών βάσεων δεδομένωνείναι ένα ανεξάρτητο επιστημονικό πεδίο στο οποίο έχουν εργαστεί (και συνεχίζουν να εργάζονται) πολλοί διάσημοι ερευνητές, τα ονόματα των οποίων θα εμφανίζονται στις διαλέξεις μας. Δεν σκοπεύαμε να περιγράψουμε λεπτομερώς τα κύρια αποτελέσματα στον τομέα σε αυτό το μάθημα. Στόχος μας είναι να παρέχουμε μόνο τους ορισμούς και τις δηλώσεις που είναι απαραίτητες για μια γενική κατανόηση της διαδικασίας σχεδιασμός σχεσιακής βάσης δεδομένωνμε βάση την κανονικοποίηση.

Δεδομένου ότι οι πιο σημαντικές ιδιότητες των σχεσιακών βάσεων δεδομένων από πρακτική άποψη βασίζονται στην έννοια λειτουργική εξάρτηση, έχουμε συμπεριλάβει μια σύντομη συζήτηση σχετικών θεωρητικών ζητημάτων σε ξεχωριστή διάλεξη. Μεταξύ αυτών των ερωτήσεων, τα κλεισίματα και καλύπτοντας σύνολα λειτουργικών εξαρτήσεων, Τα αξιώματα του Άρμστρονγκκαι το θεώρημα του Heath για την επαρκή συνθήκη αποσύνθεση σχέσης χωρίς απώλειες. Οι έννοιες και οι δηλώσεις αυτής της διάλεξης είναι πραγματικά απαραίτητες για την κατάκτηση του υλικού στη Διάλεξη 7, αλλά προσπαθήσαμε επίσης να δείξουμε στους αναγνώστες με απλά παραδείγματα τι είναι θεωρία σχεσιακών βάσεων δεδομένων, ποιο είναι το επίπεδο πολυπλοκότητάς του και πόσο διαισθητικό είναι.

Σημειώστε ότι δεν διαχωρίσαμε θεωρητικό υλικό που αφορά πολυτιμών εξαρτήσεωνΚαι εξαρτήσεις σύνδεσης. Αυτό έγινε για δύο λόγους. Πρώτον, αυτοί οι τύποι εξαρτήσεων είναι λιγότερο συνηθισμένοι στη μοντελοποίηση θεματική ενότηταχρησιμοποιώντας βάσεις δεδομένων. Ως εκ τούτου, θεωρήσαμε αρκετό να παρουσιάσουμε στη Διάλεξη 8 μόνο τα βασικά του σχετικού θεωρητικού υλικού. Δεύτερον, αν και η θεωρία πολυτιμών εξαρτήσεωνΚαι εξαρτήσεις σύνδεσης, στην πραγματικότητα, δεν είναι πολύ πιο περίπλοκο από τη θεωρία λειτουργικές εξαρτήσεις, οι ορισμοί και οι δηλώσεις του είναι πολύ δυσκίνητες για αυτό το μάθημα.

Λειτουργικές εξαρτήσεις

Το πιο σημαντικό από πρακτικής άποψης κανονικές μορφές σχέσεωνβασίζονται σε θεμελιώδεις θεωρίες σχεσιακών βάσεων δεδομένωνέννοια λειτουργική εξάρτηση. Για περαιτέρω παρουσίαση θα χρειαστούμε αρκετούς ορισμούς και δηλώσεις (θα τις εξηγήσουμε και θα τις επεξηγήσουμε καθώς προχωράμε).

Γενικοί ορισμοί

Ας δοθεί μεταβλητή σχέσηςΤα r , και τα X και Y είναι αυθαίρετα υποσύνολα της κεφαλίδας r ("σύνθετα" χαρακτηριστικά).

Στο νόημα μεταβλητή σχέσης r Το χαρακτηριστικό Y εξαρτάται λειτουργικά από το χαρακτηριστικό Xεάν και μόνο εάν κάθε τιμή του X αντιστοιχεί ακριβώς σε μία τιμή του Y. Σε αυτή την περίπτωση λέγεται επίσης ότι το χαρακτηριστικό X ορίζει λειτουργικάχαρακτηριστικό Y (το X είναι ο προσδιοριστής ( καθοριστικός) για το Y, και το Y εξαρτάται από το X). Θα το συμβολίσουμε ως r.X->r.Y .

Για παράδειγμα, θα χρησιμοποιήσουμε τη σχέση EMPLOYEE_PROJECTS (SLUN_NAME, SLU_NAME, SLU_ZARP, PRO_NOM, PROJECT_RUK)(Εικ. 6.1). Προφανώς, εάν το SLU_NOM είναι πρωταρχικό κλειδί της σχέσηςΕΡΓΑΖΟΜΕΝΟΙ, τότε για αυτή τη σχέση είναι δίκαιο λειτουργική εξάρτηση (FD) SLN_NAME->SERV_NAME .

Μάλιστα για το σώμα της σχέσης EMPLOYEES_PROJECTSμε τη μορφή που φαίνεται στο Σχ. 6.1, εκτελούνται επίσης οι ακόλουθες ΦΔ (1):


Ρύζι. 6.1.

SLUN_NOM->SLUN_NAME SLUN_NOM->SLUN_ZARP SLU_NOM->PRO_NOM PRO SLUN_NOM->PROJECT_RUK (SLUN_NAME, SLU_NAME)->SLUN_ZARP (SLUN_NAME, SLUN_NAME)->PRO_NOM (SLUN_NOMNAME, -ZUN_NOMRO)… JECT_RUK και και τα λοιπά.

Δεδομένου ότι τα ονόματα όλων των εργαζομένων είναι διαφορετικά, ικανοποιούνται και τα ακόλουθα FD (2):

SERV_NAME->SERV_NAME SERV_NAME->SLU_ZARP SER_NAME->PRO_NAME, κ.λπ.

Επιπλέον, για το παράδειγμα στο Σχ. Το 6.1 είναι ικανοποιημένο και το FD (3):

SLU_ZARP->PRO_NOM

Ωστόσο, σημειώστε ότι η φύση της ομάδας FD (1) διαφέρει από τη φύση των ομάδων FD (2) και (3). Είναι λογικό να υποθέσουμε ότι οι αριθμοί αναγνώρισης των εργαζομένων πρέπει να είναι πάντα διαφορετικοί και κάθε έργο έχει μόνο έναν διευθυντή. Επομένως, τα FD της ομάδας (1) πρέπει να είναι αληθή για οποιαδήποτε έγκυρη τιμή μεταβλητή σχέσης EMPLOYEES_PROJECTSκαι μπορεί να θεωρηθεί ως αμετάβλητες, ή περιορισμούς ακεραιότηταςΑυτό μεταβλητή σχέσης.

Τα ομαδικά FD (2) βασίζονται στη λιγότερο φυσική υπόθεση ότι όλοι οι εργαζόμενοι έχουν διαφορετικά ονόματα. Αυτό ισχύει για το παράδειγμα στο Σχ. 6.1, αλλά είναι πιθανό ότι με την πάροδο του χρόνου οι ομάδες FD (2) δεν θα ικανοποιούνται για καμία τιμή μεταβλητή σχέσης EMPLOYEES_PROJECTS.

Τέλος, η FD της ομάδας (3) βασίζεται στην πολύ αφύσικη υπόθεση ότι κανένας δύο εργαζόμενοι που συμμετέχουν σε διαφορετικά έργα δεν λαμβάνουν τον ίδιο μισθό. Και πάλι, αυτή η υπόθεση ισχύει για το παράδειγμα στο Σχ. 6.1, αλλά πιθανότατα αυτό είναι σύμπτωση.

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

Σημειώστε ότι αν το χαρακτηριστικό Α μιας σχέσης r είναι ένα πιθανό κλειδί, τότε για οποιοδήποτε χαρακτηριστικό Β αυτής της σχέσης ισχύει πάντα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΟΥΣ ΔΕΛΦΟΥΣ 6 ΠΕΡΙΒΑΛΛΟΝ

Βάση δεδομένων. Δημιουργήστε μια αναφορά χρησιμοποιώντας το Word.

Εγκρίθηκε από το Συντακτικό και Εκδοτικό Συμβούλιο

πανεπιστήμιο ως εργαστήριο

Voronezh 2004


UDC 681.3

Vorobyov E.I., Korotkevich D.E.. Προγραμματισμός στο περιβάλλον Delphi 6: Εργαστήριο εργαστηρίου: Μέρος 2: Βάσεις δεδομένων. Δημιουργήστε μια αναφορά χρησιμοποιώντας το Word. Ρεύματα. Voronezh: Voronezh. κατάσταση τεχν. Παν., 2004. 107 σελ.

Το δεύτερο μέρος του εργαστηρίου συζητά θεωρητικές και πρακτικές πληροφορίες για τη σύνταξη προγραμμάτων στο περιβάλλον Delphi 6 με θέμα: «Σχεδίαση βάσεων δεδομένων, δημιουργία αναφορών στο Word και χρήση νημάτων κατά τη δημιουργία εφαρμογών υψηλής απόδοσης».

Η έκδοση πληροί τις απαιτήσεις του Κρατικού εκπαιδευτικού προτύπου της τριτοβάθμιας επαγγελματικής εκπαίδευσης στην κατεύθυνση 230100 «Πληροφορική και Επιστήμη Υπολογιστών», ειδικότητα 230104 «Συστήματα Σχεδιασμού με Υποβοήθηση Υπολογιστή», κλάδου «Προγραμματισμός σε Γλώσσες Υψηλού Επιπέδου».

Τραπέζι 3. Il. 19. Βιβλιογραφία: 7 τίτλοι.

Επιστημονική επιμέλεια: Δρ Τεχν. επιστημών, καθ. Ya.E. Λβόβιτς

Κριτές: Τμήμα Επιστήμης Υπολογιστών, Δασική Ακαδημία Voronezh (επικεφαλής του τμήματος, Διδάκτωρ Τεχνικών Επιστημών, Καθ. V.E. Mezhov);

Δρ Τεχν. επιστημών, καθ. O.Yu.Makarov

© Vorobyov E.I., Korotkevich D.E., 2004

© Σχεδιασμός. Πολιτεία Voronezh

Πολυτεχνείο, 2004


Εισαγωγή

Έννοια βάσης δεδομένων

Οι βάσεις δεδομένων θεωρούνται το κύριο πλεονέκτημα των Δελφών. Ακόμη και οι εξειδικευμένες γλώσσες για την εργασία με βάσεις δεδομένων (όπως η MS Visual FoxPro) είναι σαφώς κατώτερες ως προς την απλότητα και τη δύναμη του προγραμματισμού αυτού του τύπου εφαρμογής. Οι Δελφοί κρύβουν όλη την πολυπλοκότητα και ταυτόχρονα δίνουν τη μεγαλύτερη δύναμη. Δεν υπήρξε ποτέ εργασία που να μην μπορούσε να υλοποιηθεί στους Δελφούς σε σύντομο χρονικό διάστημα. Και το κύριο πράγμα είναι ότι όλα αυτά υλοποιούνται πολύ βολικά και εύκολα κατανοητά. Στους Δελφούς μπορείτε να δημιουργήσετε απλές εφαρμογές, ακόμη και με πολύπλοκες βάσεις δεδομένων, χωρίς ούτε μια γραμμή κώδικα. Αυτό το σεμινάριο καλύπτει εργαστηριακές εργασίες για τον έλεγχο τεχνικών για εργασία με τοπικές βάσεις δεδομένων.

Θεωρία σχεσιακών βάσεων δεδομένων

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

Οι βάσεις δεδομένων χωρίζονται σε τοπικές (εγκατεστημένες στον υπολογιστή του πελάτη, όπου εκτελείται το πρόγραμμα) και σε απομακρυσμένες (εγκατεστημένες στον διακομιστή, έναν απομακρυσμένο υπολογιστή). Οι βάσεις δεδομένων διακομιστών βρίσκονται σε έναν απομακρυσμένο υπολογιστή και εκτελούνται υπό τον έλεγχο του λογισμικού διακομιστή. Τα κύρια πλεονεκτήματά τους περιλαμβάνουν τη δυνατότητα εργασίας με μία βάση δεδομένων ταυτόχρονα από πολλούς χρήστες, και ταυτόχρονα υπάρχει ελάχιστος φόρτος στο δίκτυο. Υπάρχουν επίσης βάσεις δεδομένων δικτύου που δημιουργούν υπερβολικό φορτίο στο δίκτυο και δεν είναι βολικό να χρησιμοποιηθούν τόσο για τον προγραμματιστή όσο και για τον τελικό χρήστη. Όταν ένα πρόγραμμα συνδέεται σε μια βάση δεδομένων δικτύου, κατεβάζει ένα σχεδόν πλήρες αντίγραφό του από τον διακομιστή. Εάν κάνατε αλλαγές, το αντίγραφό σας θα ληφθεί πλήρως ξανά. Αυτό είναι πολύ άβολο γιατί δημιουργεί μεγάλο φορτίο στο δίκτυο λόγω υπερβολικής μεταφοράς δεδομένων. Στην τεχνολογία πελάτη-διακομιστή, το πρόγραμμα πελάτη στέλνει ένα απλό αίτημα κειμένου στον διακομιστή για να λάβει ορισμένα δεδομένα. Ο διακομιστής το επεξεργάζεται και επιστρέφει μόνο το απαιτούμενο τμήμα δεδομένων. Όταν χρειάζεται να αλλάξετε ορισμένα δεδομένα, αποστέλλεται ξανά ένα αίτημα στον διακομιστή για αλλαγή και ο διακομιστής αλλάζει τα δεδομένα στη βάση δεδομένων του. Έτσι, κυρίως μόνο αιτήματα κειμένου μεταφέρονται μέσω του δικτύου, τα οποία γενικά καταλαμβάνουν λιγότερο από ένα kilobyte. Όλα τα δεδομένα επεξεργάζονται από τον διακομιστή, πράγμα που σημαίνει ότι το μηχάνημα του πελάτη φορτώνεται πολύ λιγότερο και δεν είναι τόσο απαιτητικό σε πόρους. Ο διακομιστής στέλνει στον πελάτη μόνο τα πιο απαραίτητα δεδομένα, πράγμα που σημαίνει ότι δεν υπάρχει περιττή λήψη αντιγράφου ολόκληρης της βάσης δεδομένων. Χάρη σε όλα αυτά, οι βάσεις δεδομένων δικτύου είναι ήδη ξεπερασμένες και πρακτικά δεν χρησιμοποιούνται. Αντικαθίστανται σχεδόν πλήρως από την τεχνολογία πελάτη-διακομιστή. Αλλά οι τοπικές βάσεις δεδομένων θα είναι πάντα ζωντανές. Η μορφή της αποθήκευσής τους μπορεί να αλλάξει ή να προστεθούν κάποιες νέες λειτουργίες, αλλά οι ίδιες οι βάσεις δεδομένων θα υπάρχουν. Για περαιτέρω εξέταση, πρέπει να ορίσουμε μια νέα έννοια - τραπέζι. Μέχρι στιγμής έχουν συζητηθεί μόνο γενικές αρχές, επομένως έχει χρησιμοποιηθεί η γενική έννοια βάσεις δεδομένων. Ένας πίνακας βάσης δεδομένων είναι σαν ένας δισδιάστατος πίνακας στον οποίο τα δεδομένα είναι διατεταγμένα σε μια στήλη (πρώτο παράδειγμα πίνακα είναι το Excel). Μια βάση δεδομένων είναι, χοντρικά, απλώς ένα αρχείο που μπορεί να αποθηκεύσει από έναν έως πολλούς πίνακες. Οι περισσότερες τοπικές βάσεις δεδομένων μπορούν να αποθηκεύσουν μόνο έναν πίνακα (dBase, Paradox, XML). Υπάρχουν όμως εκπρόσωποι τοπικών βάσεων δεδομένων, όπου αρκετοί πίνακες περιέχονται σε ένα αρχείο (για παράδειγμα, Access).

Τοπικές βάσεις δεδομένων

Μεταξύ των τοπικών βάσεων δεδομένων, ας θεωρήσουμε τις σχεσιακές ως τις πιο κοινές. Τι είναι μια σχεσιακή βάση δεδομένων; Αυτός είναι ένας πίνακας στον οποίο οι στήλες είναι τα ονόματα των δεδομένων που είναι αποθηκευμένα σε αυτόν και κάθε σειρά αποθηκεύει τα ίδια τα δεδομένα. Ένας πίνακας βάσης δεδομένων είναι παρόμοιος με ένα υπολογιστικό φύλλο Excel (για να είμαστε πιο ακριβείς, το Excel αποθηκεύει τα δεδομένα του σε ιδιόκτητη μορφή βασισμένη στην τεχνολογία βάσης δεδομένων). Οι πίνακες τοπικής βάσης δεδομένων μπορούν να αποθηκευτούν σε έναν τοπικό σκληρό δίσκο ή κεντρικά σε μια μονάδα δίσκου δικτύου σε διακομιστή αρχείων. Αυτά τα αρχεία μπορούν να αντιγραφούν χρησιμοποιώντας τυπικά εργαλεία όπως οποιοδήποτε άλλο αρχείο, επειδή οι ίδιοι οι πίνακες της βάσης δεδομένων δεν συνδέονται με μια συγκεκριμένη τοποθεσία. Το κύριο πράγμα είναι ότι το πρόγραμμα μπορεί να βρει τον πίνακα. Κάθε πίνακας πρέπει να έχει ένα μοναδικό πεδίο που θα προσδιορίζει μοναδικά τη σειρά. Αυτό το πεδίο ονομάζεται πεδίο κλειδιού. Αυτά τα πεδία χρησιμοποιούνται πολύ συχνά για τη σύνδεση πολλών πινάκων μεταξύ τους. Αλλά ακόμα κι αν ο πίνακας δεν σχετίζεται, το πεδίο κλειδιού εξακολουθεί να απαιτείται. Συνιστάται να χρησιμοποιείτε έναν αριθμητικό τύπο ως κλειδί, και εάν το επιτρέπει η βάση δεδομένων, θα είναι καλύτερο να είναι τύπου "αυτόματη αύξηση" (αυτόματη αύξηση/μείωση αριθμού ή μετρητή). Τα ονόματα στηλών σε έναν πίνακα βάσης δεδομένων πρέπει επίσης να είναι μοναδικά, αλλά σε αυτήν την περίπτωση όχι απαραίτητα αριθμητικά. Μπορούν να ονομαστούν όπως θέλετε, αρκεί να είναι μοναδικό και κατανοητό. Κάθε στήλη (πεδίο βάσης δεδομένων) πρέπει να έχει συγκεκριμένο τύπο. Ο αριθμός των τύπων και οι ποικιλίες τους εξαρτώνται από τον τύπο της βάσης δεδομένων, για παράδειγμα, η μορφή dBASE (αρχεία με επέκταση DBF) υποστηρίζει μόνο 6 τύπους και το Paradox υποστηρίζει ήδη έως και 15. Η βάση δεδομένων μπορεί να αποθηκευτεί σε ένα αρχείο (Πρόσβαση ) ή σε πολλά (Paradox, dBase). Πιο συγκεκριμένα, τα δεδομένα πίνακα αποθηκεύονται πάντα σε ένα αρχείο, αλλά πρόσθετες πληροφορίες μπορούν να εντοπιστούν σε ξεχωριστά αρχεία. Οι πρόσθετες πληροφορίες μπορεί να περιλαμβάνουν ευρετήρια, περιορισμούς ή μια λίστα προεπιλεγμένων τιμών για συγκεκριμένα πεδία. Εάν τουλάχιστον ένα από τα αρχεία καταστραφεί ή διαγραφεί, τα δεδομένα ενδέχεται να μην είναι διαθέσιμα για επεξεργασία.

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

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

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

Ο κύκλος ζωής οποιουδήποτε προϊόντος λογισμικού, συμπεριλαμβανομένου ενός συστήματος διαχείρισης βάσεων δεδομένων, αποτελείται (σε ​​μεγάλο βαθμό) από τα στάδια σχεδιασμού, υλοποίησης και λειτουργίας.

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

Απαιτήσεις βάσης δεδομένων

Λοιπόν, μια καλά σχεδιασμένη βάση δεδομένων:

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

2. Εξασφαλίζει τη συνέπεια και την ακεραιότητα των δεδομένων. Όταν σχεδιάζετε πίνακες, πρέπει να ορίσετε τα χαρακτηριστικά τους και ορισμένους κανόνες που περιορίζουν την πιθανότητα ο χρήστης να εισάγει εσφαλμένες τιμές. Για να επαληθεύσετε τα δεδομένα πριν τα εγγράψετε απευθείας σε έναν πίνακα, η βάση δεδομένων πρέπει να καλέσει τους κανόνες του μοντέλου δεδομένων και έτσι να διασφαλίσει ότι διατηρείται η ακεραιότητα των πληροφοριών.

3. Παρέχει μια φυσική, κατανοητή δομή των πληροφοριών. Η κατασκευή βάσης δεδομένων υψηλής ποιότητας σάς επιτρέπει να κάνετε τα ερωτήματα στη βάση δεδομένων πιο «διαφανή» και πιο κατανοητά. Κατά συνέπεια, μειώνεται η πιθανότητα εισαγωγής εσφαλμένων δεδομένων και βελτιώνεται η ποιότητα της συντήρησης της βάσης δεδομένων.

4. Πληροί τις απαιτήσεις απόδοσης της βάσης δεδομένων των χρηστών. Με μεγάλους όγκους πληροφοριών, θέματα διατήρησης της παραγωγικότητας

αρχίζουν να διαδραματίζουν σημαντικό ρόλο, "υπογραμμίζοντας" αμέσως όλες τις αδυναμίες του σταδίου σχεδιασμού.

Τα ακόλουθα σημεία αντιπροσωπεύουν τα βασικά βήματα του σχεδιασμού της βάσης δεδομένων:

1. Προσδιορίστε τις ανάγκες πληροφοριών της βάσης δεδομένων.

2. Αναλύστε αντικείμενα του πραγματικού κόσμου που πρέπει να μοντελοποιηθούν στη βάση δεδομένων. Από αυτά τα αντικείμενα, σχηματίστε οντότητες και χαρακτηριστικά αυτών των οντοτήτων (για παράδειγμα, για την οντότητα "μέρος", τα χαρακτηριστικά μπορεί να είναι "όνομα", "χρώμα", "βάρος" κ.λπ.) και σχηματίστε μια λίστα με αυτά.

3. Αντιστοιχίστε τις οντότητες και τα χαρακτηριστικά - πίνακες και στήλες (πεδία) στη σημείωση του DBMS που έχετε επιλέξει (Paradox, dBase, FoxPro, Access, Clipper, InterBase, Sybase, Informix, Oracle κ.λπ.).

4. Ορίστε τα χαρακτηριστικά που προσδιορίζουν μοναδικά κάθε αντικείμενο.

5. Ανάπτυξη κανόνων που θα καθιερώνουν και θα διατηρούν την ακεραιότητα των δεδομένων.

6. Δημιουργία συνδέσεων μεταξύ αντικειμένων (πίνακες και στήλες), κανονικοποίηση πινάκων.

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


Σχετική πληροφορία.


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

Αν λοιπόν πρόκειται να ξεκινήσετε τις σπουδές σας σε αυτόν τον τομέα ή απλώς σας ενδιαφέρει, κάντε κλικ στη γάτα.

Σχεσιακή βάση δεδομένων

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

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

πίνακας ΠΡΟΪΟΝΤΩΝ

ταυτότητα ΟΝΟΜΑ ΕΤΑΙΡΙΑ ΤΙΜΗ
123 Μπισκότα Dark Side LLC 190
156 Τσάι Dark Side LLC 60
235 ανανάδες OJSC "Frukty" 100
623 Ντομάτες OOO "Λαχανικά" 130

Ο πίνακας αποτελείται από 4 σειρές, μια σειρά στον πίνακα είναι μια πλειάδα στη θεωρία των σχέσεων. Ένα σύνολο διατεταγμένων πλειάδων ονομάζεται σχέση.
Πριν ορίσουμε μια σχέση, ας εισαγάγουμε έναν άλλο όρο - τομέα. Οι τομείς σε σχέση με έναν πίνακα είναι στήλες.

Για λόγους σαφήνειας, εισάγουμε τώρα έναν αυστηρό ορισμό μιας σχέσης.

Έστω N σύνολα D1, D2, … δίνονται. Dn (τομείς), μια σχέση R πάνω σε αυτά τα σύνολα είναι το σύνολο των διατεταγμένων N-πλειάδων της μορφής , όπου το d1 ανήκει στο D1 κ.λπ. Τα σύνολα D1,D2,..Dn ονομάζονται πεδία της σχέσης R.
Κάθε στοιχείο της πλειάδας αντιπροσωπεύει την τιμή ενός από τα χαρακτηριστικά που αντιστοιχεί σε έναν από τους τομείς.

Κλειδιά στις σχέσεις
Σε μια σχέση, η απαίτηση είναι ότι όλες οι πλειάδες πρέπει να είναι διακριτές. Για να προσδιορίσετε μοναδικά μια πλειάδα, υπάρχει ένα πρωτεύον κλειδί. Ένα πρωτεύον κλειδί είναι ένα χαρακτηριστικό ή ένα σύνολο από τον ελάχιστο αριθμό χαρακτηριστικών που προσδιορίζει μοναδικά μια συγκεκριμένη πλειάδα και δεν περιέχει πρόσθετα χαρακτηριστικά.
Το συμπέρασμα είναι ότι όλα τα χαρακτηριστικά στο πρωτεύον κλειδί πρέπει να είναι απαραίτητα και επαρκή για την αναγνώριση μιας συγκεκριμένης πλειάδας και η παράλειψη οποιουδήποτε από τα χαρακτηριστικά στο κλειδί θα το καταστήσει ανεπαρκές για αναγνώριση.
Για παράδειγμα, σε έναν τέτοιο πίνακα το κλειδί θα είναι ένας συνδυασμός χαρακτηριστικών από την πρώτη και τη δεύτερη στήλη.

Πίνακας DRIVERS

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

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

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

Πράξεις σχεσιακής άλγεβρας

Οι βασικές οκτώ πράξεις της σχεσιακής άλγεβρας προτάθηκαν από τον E. Codd.
  • Ένας σύλλογος
  • Σημείο τομής
  • Αφαίρεση
  • καρτεσιανό προϊόν
  • Δείγμα
  • Προβολή
  • Χημική ένωση
  • Διαίρεση
Το πρώτο μισό των πράξεων είναι παρόμοιες με τις ίδιες πράξεις στα σύνολα. Ορισμένες πράξεις μπορούν να εκφραστούν με όρους άλλων πράξεων. Ας δούμε τις περισσότερες λειτουργίες με παραδείγματα.

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

Τραπέζι SELLERS

ταυτότητα ΠΩΛΗΤΗΣ
123 OOO "Dart"
156 OJSC "Vedro"
235 CJSC “Vegetable Baza”
623 JSC "Εταιρία"

Ας συμφωνήσουμε ότι σε αυτόν τον πίνακα το αναγνωριστικό είναι ένα ξένο κλειδί που σχετίζεται με το πρωτεύον κλειδί του πίνακα PRODUCTS.

Αρχικά, ας δούμε την απλούστερη λειτουργία - το όνομα της σχέσης. Το αποτέλεσμα θα είναι η ίδια σχέση, δηλαδή εκτελώντας την πράξη ΠΡΟΪΟΝΤΑ θα λάβουμε αντίγραφο της σχέσης ΠΡΟΪΟΝΤΑ.

Προβολή
Μια προβολή είναι μια πράξη κατά την οποία τα χαρακτηριστικά από μια σχέση εξάγονται μόνο από τους καθορισμένους τομείς, δηλαδή επιλέγονται μόνο οι απαραίτητες στήλες από τον πίνακα και εάν ληφθούν πολλές πανομοιότυπες πλειάδες, τότε μόνο μια παρουσία μιας τέτοιας πλειάδας παραμένει στο η σχέση που προκύπτει.
Για παράδειγμα, ας κάνουμε μια προβολή στον πίνακα ΠΡΟΪΟΝΤΑ επιλέγοντας ID και ΤΙΜΗ από αυτόν.

Σύνταξη λειτουργίας:
π (ID, ΤΙΜΗ) ΠΡΟΪΟΝΤΑ

Στη συνθήκη δείγματος, μπορούμε να χρησιμοποιήσουμε οποιαδήποτε έκφραση Boole. Ας κάνουμε μια άλλη επιλογή με τιμή μεγαλύτερη από 90 και αναγνωριστικό προϊόντος μικρότερη από 300:

σ(ΤΙΜΗ>90^ID<300) PRODUCTS

Πολλαπλασιασμός
Ο πολλαπλασιασμός ή καρτεσιανό γινόμενο είναι μια πράξη που εκτελείται σε δύο σχέσεις, ως αποτέλεσμα της οποίας λαμβάνουμε μια σχέση με όλους τους τομείς από τις δύο αρχικές σχέσεις. Οι πλειάδες σε αυτούς τους τομείς θα είναι όλοι οι πιθανοί συνδυασμοί πλειάδων από τις αρχικές σχέσεις. Θα γίνει πιο ξεκάθαρο με ένα παράδειγμα.

Παίρνουμε το καρτεσιανό προϊόν των πινάκων ΠΡΟΪΟΝΤΑ και ΠΩΛΗΤΕΣ.
Σύνταξη λειτουργίας:

ΠΡΟΪΟΝΤΑ × ΠΩΛΗΤΕΣ
Θα παρατηρήσετε ότι αυτοί οι δύο πίνακες έχουν τον ίδιο τομέα αναγνωριστικού. Σε αυτήν την περίπτωση, οι τομείς με το ίδιο όνομα έχουν πρόθεμα με το όνομα της αντίστοιχης σχέσης, όπως φαίνεται παρακάτω.
Για συντομία, ας πολλαπλασιάσουμε όχι τις πλήρεις αναλογίες, αλλά τα δείγματα με το αναγνωριστικό συνθήκης<235

(οι ίδιες πλειάδες επισημαίνονται με χρώμα)

ΠΡΟΪΟΝΤΑ.ID ΟΝΟΜΑ ΕΤΑΙΡΙΑ ΤΙΜΗ SELLERS.ID ΠΩΛΗΤΗΣ
123 Μπισκότα Dark Side LLC 190 123 OOO "Dart"
156 Τσάι Dark Side LLC 60 156 OJSC "Vedro"
123 Μπισκότα Dark Side LLC 190 156 OJSC "Vedro"
156 Τσάι Dark Side LLC 60 123 OOO "Dart"

Για παράδειγμα χρήσης αυτής της λειτουργίας, φανταστείτε την ανάγκη να επιλέξετε πωλητές με τιμές μικρότερες από 90. Χωρίς το προϊόν, θα ήταν απαραίτητο να λάβετε πρώτα αναγνωριστικά προϊόντος από τον πρώτο πίνακα και μετά να χρησιμοποιήσετε αυτά τα αναγνωριστικά από τον δεύτερο πίνακα για να αποκτήσετε τα απαραίτητα Ονόματα ΠΩΛΗΤΗ και χρησιμοποιώντας το προϊόν το ακόλουθο ερώτημα θα ήταν:

π (ΠΩΛΗΤΗΣ) σ (RODUCTS.ID=SELLERS.ID ^ ΤΙΜΗ<90) PRODUCTS × SELLERS

Ως αποτέλεσμα αυτής της λειτουργίας λαμβάνουμε τη σχέση:

ΠΩΛΗΤΗΣ
OJSC "Vedro"
Σύνδεση και φυσική σύνδεση
Η πράξη ένωσης είναι το αντίστροφο της πράξης προβολής και δημιουργεί μια νέα σχέση από δύο υπάρχουσες. Μια νέα σχέση προκύπτει με τη σύνδεση των πλειάδων της πρώτης και της δεύτερης σχέσης, ενώ οι σχέσεις στις οποίες συμπίπτουν οι τιμές των καθορισμένων χαρακτηριστικών υπόκεινται σε συνένωση. Συγκεκριμένα, εάν συνδέσετε τις σχέσεις PRODUCTS και SELLERS, αυτά τα χαρακτηριστικά είναι τα χαρακτηριστικά των τομέων ID.

Επίσης, για λόγους σαφήνειας, μπορείτε να φανταστείτε μια σύνδεση ως αποτέλεσμα δύο λειτουργιών. Αρχικά, λαμβάνεται το γινόμενο των πινάκων πηγής και στη συνέχεια από τη σχέση που προκύπτει κάνουμε μια επιλογή με την προϋπόθεση της ισότητας των χαρακτηριστικών από τους ίδιους τομείς. Στην περίπτωση αυτή, προϋπόθεση είναι η ισότητα των PRODUCTS.ID και SELLERS.ID.

Ας προσπαθήσουμε να συνδέσουμε τις σχέσεις ΠΡΟΪΟΝΤΑ και ΠΩΛΗΤΕΣ και να αποκτήσουμε μια σχέση.

ΠΡΟΪΟΝΤΑ.ID ΟΝΟΜΑ ΕΤΑΙΡΙΑ ΤΙΜΗ SELLERS.ID ΠΩΛΗΤΗΣ
123 Μπισκότα Dark Side LLC 190 123 OOO "Dart"
156 Τσάι Dark Side LLC 60 156 OJSC "Vedro"
235 ανανάδες OJSC "Frukty" 100 235 CJSC “Vegetable Baza”
623 Ντομάτες OOO "Λαχανικά" 130 623 JSC "Εταιρία"

Μια φυσική ένωση λαμβάνει παρόμοια σχέση, αλλά εάν έχουμε ένα σωστά διαμορφωμένο σχήμα στη βάση δεδομένων (σε αυτήν την περίπτωση, το πρωτεύον κλειδί του πίνακα ID PRODUCTS συνδέεται με το ξένο κλειδί του πίνακα SELLERS ID), τότε η σχέση που προκύπτει περιέχει μόνο ένας τομέας αναγνωριστικού.

Σύνταξη λειτουργίας:
ΠΡΟΪΟΝΤΑ ⋈ ΠΩΛΗΤΕΣ;

Παίρνετε αυτή τη σχέση:

ΠΡΟΪΟΝΤΑ.ID ΟΝΟΜΑ ΕΤΑΙΡΙΑ ΤΙΜΗ ΠΩΛΗΤΗΣ
123 Μπισκότα Dark Side LLC 190 OOO "Dart"
156 Τσάι Dark Side LLC 60 OJSC "Vedro"
235 ανανάδες OJSC "Frukty" 100 CJSC “Vegetable Baza”
623 Ντομάτες OOO "Λαχανικά" 130 JSC "Εταιρία"
Τομή και αφαίρεση.
Το αποτέλεσμα της πράξης τομής θα είναι μια σχέση που αποτελείται από πλειάδες που περιλαμβάνονται πλήρως και στις δύο σχέσεις.
Το αποτέλεσμα της αφαίρεσης θα είναι μια σχέση που αποτελείται από πλειάδες που είναι πλειάδες της πρώτης σχέσης και όχι πλειάδες της δεύτερης σχέσης.
Αυτές οι πράξεις είναι παρόμοιες με τις ίδιες πράξεις στα σύνολα, οπότε νομίζω ότι δεν χρειάζεται να τις περιγράψω λεπτομερώς.
Πηγές πληροφοριών
  • Βασικά στοιχεία χρήσης και σχεδίασης βάσεων δεδομένων - V. M. Ilyushechkin
  • μάθημα διαλέξεων Εισαγωγή στις Βάσεις Δεδομένων - Jennifer Widom, Πανεπιστήμιο Στάνφορντ

Θα ήμουν ευγνώμων για τα αιτιολογημένα σχόλια

Εν συντομία για τα σημαντικά.

Κανονικοποίηση βάσης δεδομένων

Πρώτη κανονική μορφή (1NF)

  • δεν υπάρχουν διπλότυπες ομάδες δεδομένων
  • η ατομικότητα των δεδομένων είναι εγγυημένη (όλα τα δεδομένα είναι αυτόνομα και ανεξάρτητα).

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

Δεύτερη κανονική μορφή (2NF)

  • ο πίνακας ικανοποιεί τις προϋποθέσεις του 1NF
  • κάθε στήλη εξαρτάται από ολόκληρο το κλειδί, όχι από μέρος του.

Τρίτη κανονική μορφή (3NF)

  • ο πίνακας ικανοποιεί τις προϋποθέσεις του 2NF
  • καμία στήλη δεν εξαρτάται από μια στήλη που δεν αποτελεί μέρος του πρωτεύοντος κλειδιού
  • δεν περιέχει παράγωγα δεδομένα

Άλλες κανονικές μορφές που δεν έχουν μεγάλη πρακτική αξία:

Boyce-Codd κανονική μορφή

Επιλογή 3NF. Σχεδιασμένο για να λύνει μια κατάσταση όπου υπάρχουν πολλά επικαλυπτόμενα υποψήφια κλειδιά. Στην πραγματικότητα, δεν υπάρχει καμία λογική δικαιολογία έξω από την ακαδημαϊκή κοινότητα.

Τέταρτη κανονική μορφή

Σχεδιασμένο για την επίλυση προβλημάτων με εξαρτήσεις πολλαπλών τιμών. Τέτοιες καταστάσεις προκύπτουν εάν, σε έναν πίνακα μειωμένο σε 3NF, μια στήλη ενός σύνθετου πρωτεύοντος κλειδιού εξαρτάται από μια άλλη στήλη πρωτεύοντος κλειδιού.

Πέμπτη κανονική μορφή

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

Έκτη κανονική μορφή (κανονική μορφή κλειδιού τομέα)

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

Σχέση.

Κάποτε άκουσα από γυναίκες ότι οι άνδρες
προσπαθήστε αμέσως να φύγετε από το δωμάτιο στο οποίο
Ακούστηκε η λέξη «σχέση».<...>το κλειδί της επιτυχίας
σχέσεις είναι η επίγνωση του ρόλου του καθενός
από την άποψη αυτή, καθώς και τους κανόνες και τους περιορισμούς,
που επιβάλλεται από αυτή τη σχέση.
(C) Robert Viera, "Professional SQL Server 2000 Programming"

Τύποι Σχέσεων

  • Ένα προς ένα (είναι λογικό όταν τα δεδομένα αντιστοίχισης πρέπει να αποθηκευτούν σε διαφορετικές βάσεις δεδομένων ή όταν γίνεται υπέρβαση του μέγιστου μεγέθους δεδομένων σειράς)
  • Μηδέν ή ένα προς ένα
  • Ένα προς πολλά
  • Ένα προς -μηδέν, -ένα ή -πολλά
  • Πολλά-προς-πολλά (πίνακες διασταύρωσης)

Σωματεία

ΕΣΩΤΕΡΙΚΗ ΣΥΝΔΕΣΗ

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

ΑΡΙΣΤΕΡΑ|ΔΕΞΙΑ ΣΥΝΔΕΣΗ

Συμμετοχική συμμετοχή. Το αποτέλεσμα επιλογής περιλαμβάνει εγγραφές από τον πίνακα στα αριστερά/δεξιά του ΣΥΜΜΕΤΟΧΗαντίστοιχα. Σε αυτήν την περίπτωση, θα συμπληρωθούν τα δεδομένα από την καρτέλα «ζευγοποιημένη» που λείπει ΜΗΔΕΝΙΚΟ.
ΑΠΟ αριστερά_πίνακας ΑΡΙΣΤΕΡΑ ΕΓΓΡΑΦΕΙΤΕ δεξιά_πίνακας– όλες οι εγγραφές από τον αριστερό πίνακα περιλαμβάνονται left_table
ΑΠΟ αριστερά_πίνακας ΔΕΞΙΑ ΕΓΓΡΑΦΕΙΤΕ δεξιά_πίνακας– περιλαμβάνονται όλες οι εγγραφές από τον δεξιό πίνακα right_table

ΠΛΗΡΗΣ ΕΓΓΡΑΦΗ

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

ΣΥΝΔΕΣΗ ΣΤΑΥΡΟΣ

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

Αρχές για τη διευθέτηση πολλών ΣΥΜΜΕΤΟΧΗ'μικρό

Εάν χρειάζεται να ενώσετε πολλούς πίνακες, πρέπει να θυμάστε δύο αρχές:

  1. Όλα τα συνδικάτα αριστερά ΣΥΜΜΕΤΟΧΗαντιμετωπίζεται ως ένας ενιαίος πίνακας για συμπερίληψη ή εξαίρεση από ένα ερώτημα.
  2. Όλα τα συνδικάτα είναι ΔΕΞΙΑ ΣΥΜΜΕΤΟΧΗΕπίσης αντιμετωπίζεται ως ένας ενιαίος πίνακας για συμπερίληψη ή εξαίρεση από ένα ερώτημα.

Απόρροια αυτών των αρχών είναι η ακόλουθη σύσταση για το σχηματισμό πολύπλοκων ενώσεων:

  • Όπου είναι δυνατόν, θα πρέπει να χρησιμοποιείτε το INNER JOIN.
  • Εάν υπάρχει ανάγκη χρήσης ΕΞΩΤΕΡΙΚΗΣ ΣΥΝΔΕΣΗΣ, θα πρέπει να τοποθετηθούν τελευταία και οι ΕΣΩΤΕΡΕΣ ΣΥΝΔΕΣΕΙΣ θα πρέπει να τοποθετηθούν στην αρχή της ένωσης.

ΥΣΤΕΡΟΓΡΑΦΟ. Όλα τα παραπάνω είναι γενικές «αξίες» της θεωρίας των σχεσιακών βάσεων δεδομένων, που δεν συνδέονται με τα χαρακτηριστικά ορισμένων ΣΔΒΔ.

Ένα μοντέλο δεδομένων είναι ένα σύνολο δομών δεδομένων και λειτουργιών για την επεξεργασία τους. Χρησιμοποιώντας ένα μοντέλο δεδομένων, μπορείτε να αναπαραστήσετε οπτικά τη δομή των αντικειμένων και τις σχέσεις που δημιουργούνται μεταξύ τους. Η ορολογία του μοντέλου δεδομένων χαρακτηρίζεται από τις έννοιες του «στοιχείου δεδομένων» και των «δεσμευτικών κανόνων». Ένα στοιχείο δεδομένων περιγράφει οποιοδήποτε σύνολο δεδομένων και οι κανόνες συσχέτισης ορίζουν αλγόριθμους για τη διασύνδεση στοιχείων δεδομένων. Μέχρι σήμερα έχουν αναπτυχθεί πολλά διαφορετικά μοντέλα δεδομένων, αλλά στην πράξη χρησιμοποιούνται τρία κύρια. Υπάρχουν ιεραρχικά, δικτυακά και σχεσιακά μοντέλα δεδομένων. Αντίστοιχα, μιλούν για ιεραρχικά, δικτυακά και σχεσιακά DBMS.

O Ιεραρχικό μοντέλο δεδομένων. Τα ιεραρχικά οργανωμένα δεδομένα είναι πολύ συνηθισμένα στην καθημερινή ζωή. Για παράδειγμα, η δομή ενός ιδρύματος τριτοβάθμιας εκπαίδευσης είναι μια ιεραρχική δομή πολλαπλών επιπέδων. Μια ιεραρχική (δενδρική) βάση δεδομένων αποτελείται από ένα διατεταγμένο σύνολο στοιχείων. Σε αυτό το μοντέλο, τα αρχικά στοιχεία δημιουργούν άλλα στοιχεία και αυτά τα στοιχεία με τη σειρά τους δημιουργούν περαιτέρω στοιχεία. Κάθε θυγατρικό στοιχείο έχει μόνο ένα γονικό στοιχείο.

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

Το κύριο μειονέκτημα αυτού του μοντέλου είναι η ανάγκη χρήσης της ιεραρχίας που ήταν η βάση της βάσης δεδομένων κατά τη διάρκεια του σχεδιασμού. Η ανάγκη για συνεχή αναδιοργάνωση των δεδομένων (και συχνά η αδυναμία αυτής της αναδιοργάνωσης) οδήγησε στη δημιουργία ενός γενικότερου μοντέλου - ενός μοντέλου δικτύου.

O Μοντέλο δεδομένων δικτύου. Η δικτυακή προσέγγιση για την οργάνωση δεδομένων είναι μια επέκταση της ιεραρχικής προσέγγισης. Αυτό το μοντέλο διαφέρει από το ιεραρχικό στο ότι κάθε παραγόμενο στοιχείο μπορεί να έχει περισσότερα από ένα στοιχεία παραγωγής. ■

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

O Μοντέλο σχεσιακών δεδομένων. Η βασική ιδέα ενός μοντέλου σχεσιακών δεδομένων είναι να αναπαραστήσει οποιοδήποτε σύνολο δεδομένων ως δισδιάστατο πίνακα. Στην απλούστερη μορφή του, ένα σχεσιακό μοντέλο περιγράφει έναν ενιαίο δισδιάστατο πίνακα, αλλά τις περισσότερες φορές το μοντέλο περιγράφει τη δομή και τις σχέσεις μεταξύ πολλών διαφορετικών πινάκων.

Μοντέλο σχεσιακών δεδομένων

Άρα, σκοπός του πληροφοριακού συστήματος είναι η επεξεργασία δεδομένασχετικά με αντικείμεναπραγματικό κόσμο, λαμβάνοντας υπόψη συνδέσειςανάμεσα σε αντικείμενα. Στη θεωρία της βάσης δεδομένων, τα δεδομένα ονομάζονται συχνά ιδιότητες, καιαντικείμενα - οντότητες.Το αντικείμενο, το χαρακτηριστικό και η σύνδεση είναι θεμελιώδεις έννοιες του I.S.

Ενα αντικείμενο(ή ουσία) είναι κάτι που υπάρχει και ευδιάκριτος,Δηλαδή, ένα αντικείμενο μπορεί να ονομαστεί εκείνο το «κάτι» για το οποίο υπάρχει ένα όνομα και ένας τρόπος να διακρίνει ένα όμοιο αντικείμενο από ένα άλλο. Για παράδειγμα, κάθε σχολείο είναι ένα αντικείμενο. Τα αντικείμενα είναι επίσης ένα άτομο, μια τάξη στο σχολείο, μια εταιρεία, ένα κράμα, μια χημική ένωση κ.λπ. Τα αντικείμενα μπορεί να είναι όχι μόνο υλικά αντικείμενα, αλλά και πιο αφηρημένες έννοιες που αντικατοπτρίζουν τον πραγματικό κόσμο. Για παράδειγμα, εκδηλώσεις, περιοχές, έργα τέχνης. βιβλία (όχι ως έντυπα προϊόντα, αλλά ως έργα), θεατρικές παραστάσεις, ταινίες. νομικοί κανόνες, φιλοσοφικές θεωρίες κ.λπ.

Χαρακτηριστικόδεδομένος)- αυτός είναι ένας συγκεκριμένος δείκτης που χαρακτηρίζει ένα συγκεκριμένο αντικείμενο και παίρνει μια συγκεκριμένη αριθμητική, κείμενο ή άλλη τιμή για μια συγκεκριμένη παρουσία του αντικειμένου. Το πληροφοριακό σύστημα λειτουργεί με σύνολα αντικειμένων σχεδιασμένα σε σχέση με μια δεδομένη θεματική περιοχή, χρησιμοποιώντας συγκεκριμένα τιμές χαρακτηριστικών(δεδομένα) ορισμένων αντικειμένων. Για παράδειγμα, ας πάρουμε τα μαθήματα σε ένα σχολείο ως ένα σύνολο αντικειμένων. Ο αριθμός των μαθητών σε μια τάξη είναι ένα δεδομένο που παίρνει μια αριθμητική τιμή (μια τάξη έχει 28, μια άλλη έχει 32). Το όνομα της κλάσης είναι ένα δεδομένο που παίρνει μια τιμή κειμένου (το ένα έχει 10Α, το άλλο έχει 9Β, κ.λπ.).

Η ανάπτυξη των σχεσιακών βάσεων δεδομένων ξεκίνησε στα τέλη της δεκαετίας του '60, όταν εμφανίστηκαν τα πρώτα έργα που συζητούσαν: τη δυνατότητα χρήσης οικείων και φυσικών τρόπων παρουσίασης δεδομένων - τα λεγόμενα πινακοποιημένα δεδομέναλογικά μοντέλα - κατά το σχεδιασμό βάσεων δεδομένων.

Ο ιδρυτής της θεωρίας των σχεσιακών βάσεων δεδομένων θεωρείται ένας υπάλληλος της IBM, ο Δρ. E. Codd, ο οποίος δημοσίευσε ένα άρθρο στις 6 Ιουνίου 1970 Ένα σχεσιακό μοντέλο δεδομένων για μεγάλες τράπεζες δεδομένων(Μοντέλο σχεσιακών δεδομένων για μεγάλες συλλογικές τράπεζες δεδομένων). Αυτό το άρθρο ήταν το πρώτο που χρησιμοποίησε τον όρο «μοντέλο σχεσιακών δεδομένων». Η θεωρία των σχεσιακών βάσεων δεδομένων, που αναπτύχθηκε τη δεκαετία του '70 στις ΗΠΑ από τον Δρ. E. Codd, έχει μια ισχυρή μαθηματική βάση που περιγράφει τους κανόνες για την αποτελεσματική οργάνωση των δεδομένων. Το θεωρητικό πλαίσιο που αναπτύχθηκε από τον E. Codd έγινε η βάση για την ανάπτυξη της θεωρίας του σχεδιασμού της βάσης δεδομένων.

Ο E. Codd, όντας μαθηματικός στην εκπαίδευση, πρότεινε τη χρήση της συσκευής της θεωρίας συνόλων (ένωση, τομή, διαφορά, καρτεσιανό γινόμενο) για την επεξεργασία δεδομένων. Απέδειξε ότι οποιοδήποτε σύνολο δεδομένων μπορεί να αναπαρασταθεί με τη μορφή δισδιάστατων πινάκων ενός ειδικού είδους, γνωστών στα μαθηματικά ως «σχέσεις».

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

Ο πίνακας αποτελείται από στήλες (πεδία)Και γραμμές (εγγραφές)?έχει ένα όνομα που είναι μοναδικό στη βάση δεδομένων. Τραπέζιαντανακλά Τύπος αντικειμένουπραγματικό κόσμο (οντότητα),και καθεμία από αυτήν Η συμβολοσειρά είναι ένα συγκεκριμένο αντικείμενο.Κάθε στήλη πίνακα είναι μια συλλογή τιμών για ένα συγκεκριμένο χαρακτηριστικό ενός αντικειμένου. Οι τιμές επιλέγονται από το σύνολο όλων των πιθανών τιμών για ένα χαρακτηριστικό αντικειμένου, το οποίο καλείται τομέα.

Στην πιο γενική του μορφή, ένας τομέας ορίζεται με τον καθορισμό κάποιου τύπου δεδομένων βάσης στον οποίο ανήκουν τα στοιχεία του τομέα και μια αυθαίρετη έκφραση Boolean που εφαρμόζεται στα στοιχεία δεδομένων. Εάν αξιολογήσετε μια συνθήκη Boolean σε ένα στοιχείο δεδομένων και το αποτέλεσμα είναι αληθές, τότε αυτό το στοιχείο ανήκει στον τομέα. Στην απλούστερη περίπτωση, ένας τομέας ορίζεται ως ένα έγκυρο δυνητικό σύνολο τιμών του ίδιου τύπου. Για παράδειγμα, η συλλογή των ημερομηνιών γέννησης όλων των εργαζομένων αποτελεί τον "τομέα ημερομηνίας γέννησης" και τα ονόματα όλων των υπαλλήλων αποτελούν τον "τομέα ονόματος υπαλλήλου". Ο τομέας ημερομηνίας γέννησης πρέπει να έχει τύπο δεδομένων point-in-time και ο τομέας ονόματος υπαλλήλου πρέπει να έχει τύπο δεδομένων χαρακτήρων.

Εάν δύο τιμές προέρχονται από τον ίδιο τομέα, τότε μπορεί να γίνει σύγκριση μεταξύ των δύο τιμών. Για παράδειγμα, εάν ληφθούν δύο τιμές από τον τομέα των ημερομηνιών γέννησης, μπορείτε να τις συγκρίνετε και να προσδιορίσετε ποιος υπάλληλος είναι μεγαλύτερος. Εάν οι τιμές λαμβάνονται από διαφορετικούς τομείς, τότε η σύγκρισή τους δεν επιτρέπεται, καθώς, κατά πάσα πιθανότητα, δεν έχει νόημα. Για παράδειγμα, δεν θα προκύψει τίποτα συγκεκριμένο από τη σύγκριση του ονόματος και της ημερομηνίας γέννησης ενός υπαλλήλου.

Κάθε στήλη (πεδίο) έχει ένα όνομα, το οποίο συνήθως γράφεται στην κορυφή του πίνακα. Όταν σχεδιάζετε πίνακες σε ένα συγκεκριμένο DBMS, είναι δυνατό να επιλέξετε για κάθε πεδίο του τύπος,να ορίσει δηλαδή ένα σύνολο κανόνων για την εμφάνισή του, καθώς και να καθορίσει τις πράξεις που μπορούν να εκτελεστούν στα δεδομένα που είναι αποθηκευμένα σε αυτό το πεδίο. Τα σύνολα τύπων ενδέχεται να διαφέρουν μεταξύ διαφορετικών DBMS.

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

Δεδομένου ότι οι σειρές στον πίνακα δεν είναι ταξινομημένες, είναι αδύνατο να επιλέξετε μια σειρά από τη θέση της - δεν υπάρχει "πρώτη", "δεύτερη" ή "τελευταία" μεταξύ τους. Οποιοσδήποτε πίνακας έχει μία ή περισσότερες στήλες, οι τιμές των οποίων προσδιορίζουν μοναδικά κάθε γραμμή του. Μια τέτοια στήλη (ή συνδυασμός στηλών) ονομάζεται πρωτεύων κλειδί. Ένα τεχνητό πεδίο εισάγεται συχνά στις εγγραφές αριθμών σε έναν πίνακα. Ένα τέτοιο πεδίο, για παράδειγμα, θα μπορούσε να είναι το τακτικό του πεδίο, το οποίο μπορεί να εξασφαλίσει τη μοναδικότητα κάθε εγγραφής στον πίνακα. Το κλειδί πρέπει να έχει τις ακόλουθες ιδιότητες.

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

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

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

Ένα από τα πιθανά κλειδιά επιλέγεται τυχαία στο ως πρωτεύον κλειδί.Τα υπόλοιπα πιθανά κλειδιά, εάν υπάρχουν, λαμβάνονται ως εναλλακτικά κλειδιά.Για παράδειγμα, εάν επιλέξετε έναν αριθμό αναγνώρισης ως κύριο κλειδί, τότε ο αριθμός διαβατηρίου θα είναι το εναλλακτικό κλειδί.

Η σχέση των πινάκων είναι το πιο σημαντικό στοιχείο του μοντέλου σχεσιακών δεδομένων. Υποστηρίζεται ξένα κλειδιά.

Κατά την περιγραφή ενός μοντέλου σχεσιακής βάσης δεδομένων, χρησιμοποιούνται συχνά διαφορετικοί όροι για την ίδια έννοια, ανάλογα με το επίπεδο περιγραφής (θεωρία ή πρακτική) και το σύστημα (Access, SQL Server, dBase). Στον πίνακα Το 2.3 παρέχει μια περίληψη των όρων που χρησιμοποιούνται.

Πίνακας 2.3.Ορολογία βάσης δεδομένων

Θεωρία βάσεων δεδομένων____________ Σχεσιακές βάσεις δεδομένων_________ SQL Server __________

Πίνακας Σχέσεων Πίνακας Πίνακας

Σειρά πλειάδας εγγραφής

AttributeField_________________Στήλη

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

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

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

O Κάθε πίνακας αποτελείται από έναν σταθερό αριθμό στηλών και τιμών. Περισσότερες από μία τιμές δεν μπορούν να αποθηκευτούν σε μία στήλη με μία σειρά. Για παράδειγμα, εάν υπάρχει πίνακας με πληροφορίες για τον συγγραφέα, την ημερομηνία δημοσίευσης, την κυκλοφορία κ.λπ., τότε η στήλη με το όνομα του συγγραφέα δεν μπορεί να αποθηκεύσει περισσότερα από ένα επώνυμα. Εάν το βιβλίο είναι γραμμένο από δύο ή περισσότερους συγγραφείς, θα πρέπει να χρησιμοποιήσετε επιπλέον πίνακες.

O Σε καμία χρονική στιγμή δεν θα υπάρχουν δύο σειρές στον πίνακα που αντιγράφουν η μία την άλλη. Οι σειρές πρέπει να διαφέρουν σε τουλάχιστον μία τιμή για να μπορείτε να προσδιορίσετε μοναδικά οποιαδήποτε σειρά στον πίνακα.

О Σε κάθε στήλη εκχωρείται ένα μοναδικό όνομα μέσα στον πίνακα. ορίζεται ένας συγκεκριμένος τύπος δεδομένων για αυτό, ώστε να τοποθετούνται ομοιογενείς τιμές σε αυτήν τη στήλη (ημερομηνίες, επώνυμα, αριθμοί τηλεφώνου, χρηματικά ποσά κ.λπ.).

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

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