Σύγκριση προγραμμάτων συγχρονισμού βάσεων δεδομένων δικτύου. Δωρεάν πρόγραμμα συγχρονισμού

Ηλεκτρονική 30.04.2019
Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...

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

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

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

Πώς μπορούν να λυθούν τέτοια προβλήματα;

1. Αντιγραφή του SQL Server. Με την αναπαραγωγή, μπορείτε να συγχρονίσετε απομακρυσμένες βάσεις δεδομένων μεταξύ τους αντιγράφοντας δεδομένα. Αλλά (αναπαραγωγή του SQL Server) έχει ορισμένους περιορισμούς:

  • Μόνο οι πιο ακριβές εκδόσεις του SQL Server Standard και Enterprise μπορούν να λειτουργήσουν ως Publisher, επομένως εάν χρησιμοποιείτε τη δωρεάν έκδοση του SQL Express, θα πρέπει να κάνετε αναβάθμιση.
  • Μια διαμόρφωση SQL Server 2005 Publisher και SQL Server 2008 Subscriber δεν υποστηρίζει αναπαραγωγή Ιστού.
  • Η έκδοση του Διανομέα πρέπει να είναι αυστηρά ίση ή υψηλότερη από την έκδοση Publisher.
  • Στο Transactional Replication, η έκδοση Συνδρομητής δεν πρέπει να διαφέρει από τον Publisher κατά περισσότερες από δύο εκδόσεις του SQL Server, π.χ. Ένας εκδότης SQL Server 2000 δεν μπορεί να λειτουργήσει με συνδρομητή SQL Server 2012.
  • Στο Merge Replication, η έκδοση Συνδρομητής πρέπει να είναι μικρότερη ή ίση με την έκδοση Publisher, δηλ. ένας συνδρομητής SQL Server 2012 δεν θα μπορεί να συνεργαστεί με έναν εκδότη SQL Server 2008.

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

3. Το ApexSQL Data Diff είναι ένα εργαλείο SQL Server για την εύρεση διαφορών στα δεδομένα και τον συγχρονισμό τους μεταξύ τους. Αυτό το εργαλείο σάς επιτρέπει να βρείτε διαφορές όχι μόνο μεταξύ βάσεων δεδομένων, αλλά και να αναλύετε αντίγραφα ασφαλείας βάσεων δεδομένων, τόσο τακτικά όσο και συμπιεσμένα. Ως αποτέλεσμα της ανάλυσης, μπορείτε να λάβετε μια λεπτομερή αναφορά σχετικά με τις αποκλίσεις που εντοπίστηκαν και ένα αρχείο συγχρονισμού που μπορεί να εκτελεστεί.

Πώς να το κάνετε

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

Για να συγχρονίσετε ξανά όλες τις αλλαγές που έκαναν οι νοσηλευτές κατά τη διάρκεια της ημέρας, πρέπει να εκτελέσετε παρόμοιες ενέργειες:


Τώρα ας δούμε πώς να αυτοματοποιήσετε τη διαδικασία συγχρονισμού εάν έχετε έργα συγχρονισμού.

Για βραδινό συγχρονισμό, επαναλάβετε τα βήματα 3 έως 9 για να δημιουργήσετε μια άλλη εργασία.

Με την εφαρμογή ApexSQL Data Diff, μπορείτε εύκολα να ρυθμίσετε τον συγχρονισμό των απομακρυσμένων βάσεων δεδομένων του SQL Server με έναν κεντρικό αποθηκευτικό χώρο. Ταυτόχρονα, δεν είστε συνδεδεμένοι με κάποια συγκεκριμένη έκδοση ή έκδοση του SQL Server, δεν θα χρειαστεί να αφιερώσετε επιπλέον χρόνο στην ανάπτυξη και πραγματοποιείτε πλήρη έλεγχοπάνω από όλα τα δεδομένα σας σε μία μόνο εγγραφή.

Φίλοι, γεια σε όλους! Χαίρομαι που σας βλέπω όλους ως καλεσμένους 😉 Σήμερα θα σας πω πώς να συγχρονίσετε τις βάσεις δεδομένων του WordPress. Και επίσης σχετικά με το ποιοι πίνακες στη βάση δεδομένων είναι οι πιο σημαντικοί και πώς να εργαστείτε μαζί τους.

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

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

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

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

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

Δομή βάσης δεδομένων WordPress

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

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

Λοιπόν, ας δούμε τους βασικούς πίνακες στη βάση δεδομένων του WordPress.

wp_options – περιέχει όλες τις ρυθμίσεις τοποθεσίας.

wp_posts – όλα τα άρθρα και οι αναρτήσεις στον ιστότοπο.

wp_postmeta – βοηθητικά δεδομένα σχετικά με άρθρα και αναρτήσεις στον ιστότοπο.

wp_comments – σχόλια;

wp_commentmeta – βοηθητικές πληροφορίες σχετικά με σχόλια.

wp_term_relationships – σχέσεις μεταξύ άρθρων και αναρτήσεων με κατηγορίες και ετικέτες.

wp_terms – συνδέσεις μεταξύ κατηγοριών (επικεφαλίδες) και συνδέσμων.

wp_term_taxonomy – συνδέσεις μεταξύ κατηγοριών, ετικετών, συνδέσμων.

wp_usermeta – πληροφορίες για όλους τους εγγεγραμμένους χρήστες.

wp_users – πληροφορίες για τον διαχειριστή.

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

Τώρα αυτό γενική ιδέαΤώρα που μάθατε για τη βάση δεδομένων του WordPress, μπορείτε να προχωρήσετε στον στόχο του μαθήματός μας – συγχρονισμό βάσεων δεδομένων.

Προετοιμασία για τη διαδικασία συγχρονισμού

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

Έτσι, θα κατανοήσετε τη διαδικασία, και θα μπορείτε να δημιουργήσετε την απαραίτητη βάση δεδομένων στον υπολογιστή σας και να μεταφέρετε την έτοιμη βάση δεδομένων στο hosting.

Το πιο σημαντικό, μην ξεχνάτε το αντίγραφο ασφαλείας.

Σύγκριση βάσεων δεδομένων στο phpMyAdmin

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

Για αυτό θα χρησιμοποιήσουμε το βοηθητικό πρόγραμμα phpMyAdmin, το οποίο είναι διαθέσιμο τόσο στο hosting όσο και στον τοπικό διακομιστή.

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

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

Ανάλυση της τοποθεσίας δοκιμής και της βάσης δεδομένων:

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

Όπως μπορείτε να δείτε στο στιγμιότυπο οθόνης, υπάρχουν 136 άρθρα στον ιστότοπο δοκιμών.

Μετά την ενημέρωση του θέματος, κατάφερα να γράψω μερικά ακόμη άρθρα. Και τώρα υπάρχουν ήδη 138 από αυτά.

Ο αριθμός των άρθρων πρέπει να ταιριάζει με τον αριθμό των αναρτήσεων στον πίνακα wp_posts. Αλλά αν ανοίξετε αυτόν τον πίνακα, θα δείτε πολλές ακόμη καταχωρήσεις.

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

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

Ανοίξτε τη βάση δεδομένων - τον πίνακα wp_posts - μεταβείτε στην καρτέλα SQL - εισαγάγετε το ερώτημα:

SELECT * FROM `wp_posts` WHERE `post_status` = "publish" AND `post_type` = "post"

Αυτό το ερώτημα λέει ότι στον πίνακα wp_posts πρέπει να επιλέξετε όλες τις εγγραφές (*), όπου η κατάσταση δημοσιεύεται (δημοσίευση) και αυτό είναι ένα άρθρο (ανάρτηση).

Ως αποτέλεσμα, έχουμε 136 εγγραφές. Τώρα αυτός ο αριθμός αντιστοιχεί στον αριθμό των άρθρων.

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

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

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

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

Συγχρονισμός βάσεων δεδομένων WordPress

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

Βήμα 1: Δημιουργήστε δύο κενές βάσεις δεδομένων

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

Πρώτα απ 'όλα, ξεκινήστε το Denver και πληκτρολογήστε localhost/tools/ στο πρόγραμμα περιήγησής σας και, στη συνέχεια, κάντε κλικ στον σύνδεσμο phpmyadmin.

Βήμα 2. Εισαγάγετε δεδομένα στη βάση δεδομένων

Έτσι έφτιαξα αντίγραφα ασφαλείας της βάσης δεδομένων. Το ένα από το test site, το άλλο από το blog μου στο Διαδίκτυο. Θα χρειαστούν για την εισαγωγή περιεχομένου σε βάσεις δεδομένων που δημιουργήθηκαν πρόσφατα. Και μετά θα είναι ασφαλιστικές.

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

Τώρα πρέπει να εισαγάγετε τα δεδομένα από τα αντίγραφα ασφαλείας στις νέες βάσεις δεδομένων. Για να το κάνετε αυτό, επιλέξτε μια νέα βάση δεδομένων - ανοίξτε τον σελιδοδείκτη "Εισαγωγή"- επιλέξτε "εφεδρικό αρχείο"- πατήστε το κουμπί "ΕΝΤΑΞΕΙ".

Βήμα 3. Συγχρονισμός βάσης δεδομένων

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

Για να το κάνετε αυτό πρέπει να πάτε στο αρχική σελίδα phpMyAdmin και επιλέξτε ενότητα "Συγχρονίζω".

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

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

Εάν θέλετε να συγχρονίσετε μεμονωμένους πίνακες, τότε πρέπει να κάνετε κλικ στα γράμματα S ή D. Αυτά τα γράμματα θα γίνουν γκρι και στο παρακάτω παράθυρο θα δείτε τους πρόσθετους πίνακες συγχρονισμού. Μετά από αυτό μπορείτε να συγχρονίσετε αυτούς τους πίνακες κάνοντας κλικ στο κουμπί "Εφαρμογή επιλεγμένων αλλαγών".

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

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

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

Δοκιμαστικά στατιστικά ιστολογίου:

Στατιστικά ιστολογίου εργασίας:

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

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

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

Εγγραφείτε σε νέα άρθρα!


Το κείμενο επεξεργάστηκε ο V.I Grishchenko.

Αρχή

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

Κάποτε, αυτό το έργο αντιμετώπισε κι εμένα. Ορισμένα DBMS έχουν ενσωματωμένα εργαλεία συγχρονισμού (αυτή η διαδικασία ονομάζεται επίσης αναπαραγωγή και μερικές φορές αυτές οι έννοιες διακρίνονται). Αλλά πρώτα, χρειαζόταν να συγχρονίσω βάσεις δεδομένων που διαχειρίζεται η InterBase και δεύτερον, ακόμη και αυτά τα εργαλεία τρίτων που υπάρχουν για αυτό το DBMS δεν με ταιριάζουν. Χρειαζόμουν έναν μηχανισμό συγχρονισμού που δεν προβλέπει συνεχή παρακολούθηση από τους διαχειριστές σε όλες τις βάσεις δεδομένων - το πρόγραμμα γράφτηκε με γνώμονα τους μικρούς οργανισμούς. Το InterBase ήταν ιδανικό για αυτό - ελαφρύ, αξιόπιστο (σίγουρα πιο αξιόπιστο από τις τοπικές βάσεις δεδομένων!), που δεν απαιτούσε ουσιαστικά καμία διαχείριση χωρίς υπερβολικό φορτίο. Πού μπορείτε να βρείτε έναν τέτοιο αντιγραφέα; Επιπλέον, έτσι ώστε να ήταν τόσο απλό όσο ένα βύσμα - το εκτόξευσε - λειτούργησε. Και μάλιστα να εισάγετε δουλειά στο πρόγραμμα! Επιπλέον, για να μπορεί να συγχρονίζει βάσεις δεδομένων με Win και Unix!

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

Εντάξει, η προσπάθεια δεν είναι βασανιστήριο, αποφάσισα να ψάξω για κάτι στους αλγόριθμους που χρησιμοποιούνται στην αναπαραγωγή της βάσης δεδομένων.
ΤΙΠΟΤΑ.
Απολύτως τίποτα!
Αν δεν έψαξα καλά και κάποιος μου δείξει ενδιαφέρον και ελεύθερα διαθέσιμο υλικό από αυτή την άποψη, θα χαρώ! Αλλά προφανώς αυτό είναι ένα khow-how των κατασκευαστικών εταιρειών ή δεν έχουν αναπτυχθεί ακόμη γνωστοί αλγόριθμοι για αυτό το θέμα. Ανεβαίνω στα Δεδομένα. Τίποτα. Έτσι, συζητήσεις για το θέμα των κατανεμημένων βάσεων δεδομένων, αλλά αυτό που χρειάζομαι δεν είναι εκεί.

Με τον ένα ή τον άλλο τρόπο, αφού προσευχήθηκα, αποφάσισα να τα σκεφτούμε όλα μόνοι μας και να δούμε τι θα συμβεί. Καταιγισμός ιδεών. υπέφερα. Έγραψε. Διορθώθηκε. Διορθώθηκε. Το διόρθωσε ξανά. Δούλεψε. Είναι λάθος. Διορθώθηκε - σταμάτησε να δυσλειτουργεί. Λειτουργεί ακόμα. μου αρέσει. Εργοστάσιο! Υπάρχουν προβλήματα, φυσικά. Και μερικά είναι αρκετά αξιοπρεπή. Αλλά... αλλά εξακολουθεί να λειτουργεί!

Αποφάσισα λοιπόν να πω σε όσους ενδιαφέρονται τι σκέφτηκα και τι έκανα.

Επιλογές, ορολογία

Όλοι οι όροι είναι σπιτικοί, οπότε μην προσβάλλεστε αν κάτι σας φαίνεται ανόητο. :)

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

Αρχικά, ας ταξινομήσουμε τον συγχρονισμό ανά κατεύθυνση και χρονισμό.

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

Εάν ο συγχρονισμός πρέπει να πραγματοποιηθεί αμέσως μετά την πραγματοποίηση αλλαγών στη βάση δεδομένων, τότε θα καλέσουμε αυτόν τον συγχρονισμό συγχρονισμός σε πραγματικό χρόνο. Και αν πρέπει να γίνουν αλλαγές από ορισμένες βάσεις δεδομένων σε άλλες βάσεις δεδομένων ΑΡΓΟΤΕΡΑ, με εντολή/συμβάν/κλπ - τότε αυτό θα είναι καθυστερημένος συγχρονισμός.

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

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

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

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

Κόβοντας την περίσσεια

Έτσι, ανέφερα πολλές επιλογές συγχρονισμού και τώρα θα πρέπει να απαλλαγούμε από τις «έξτρα». :) Δεν θα εξετάσουμε τον συγχρονισμό σε πραγματικό χρόνο, αυτό εξακολουθεί να είναι μια μάλλον εξωτική εργασία. Θα εξετάσουμε τον μονόδρομο συγχρονισμό, αλλά πολύ σύντομα - αυτό είναι ένα αρκετά απλό έργο, μπορεί να λυθεί χωρίς συγκρούσεις (από τουλάχιστον, έτσι μου φαίνεται, αν και μπορεί να κάνω λάθος). Είναι σαφές ότι ο μονόδρομος συγχρονισμός υλοποιείται εύκολα με οποιαδήποτε αμφίδρομη μέθοδο συγχρονισμού (καταγραφή ή τρέχουσα κατάσταση), αλλά χωρίς πολλά από τα προβλήματα που ενυπάρχουν στον αμφίδρομο συγχρονισμό. Και φυσικά, ο κύριος στόχος μας είναι ο αμφίδρομος καθυστερημένος συγχρονισμός.

Αναγνώριση εγγραφής

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

Για ενοποίηση, είναι επιθυμητό κάθε πίνακας που περιλαμβάνεται στη διαδικασία συγχρονισμού να έχει ένα υποκατάστατο πρωτεύον κλειδί (ID) - συνήθως ΑΚΕΡΑΙΟΣ. Ωστόσο, τις περισσότερες φορές αυτό συμβαίνει. Πώς μπορούμε να διασφαλίσουμε ότι τα αρχεία προσδιορίζονται μοναδικά;

  1. Μπορείτε να εισαγάγετε ένα πρόσθετο πεδίο σε κάθε πίνακα - τον αριθμό της βάσης δεδομένων στην οποία δημιουργήθηκε αυτή η εγγραφή για πρώτη φορά (DBID). Σε αυτήν την περίπτωση, προφανώς, το ID δεν θα είναι πλέον το πρωτεύον κλειδί, το πρωτεύον κλειδί θα είναι το ζεύγος (DBID, ID). Θα πρέπει να σημειωθεί ότι εξαιτίας αυτού, αυτή η λύση δεν είναι πολύ ελκυστική
  2. Μπορείτε να κάνετε μια συμβολοσειρά το πρωτεύον κλειδί ειδική μορφή, για παράδειγμα XXXX-YYYY-ZZZZZZZZZ, όπου XXXX είναι το αναγνωριστικό της βάσης δεδομένων όπου δημιουργήθηκε η εγγραφή για πρώτη φορά, ΕΕΕΕ είναι το αναγνωριστικό πίνακα, ZZZZZZZZ είναι το αναγνωριστικό της εγγραφής σε έναν συγκεκριμένο πίνακα σε μια συγκεκριμένη βάση δεδομένων. Αυτή η λύση είναι εξαιρετικά επεκτάσιμη και σας επιτρέπει να «γεμίσετε» πολλές πρόσθετες πληροφορίες στο αναγνωριστικό, αλλά έχει επίσης μειονεκτήματα. Πρώτον, υπάρχει κάποια περιττή πληροφόρηση. Δεύτερον, ένας πιο περίπλοκος μηχανισμός για τη δημιουργία τέτοιων αναγνωριστικών. Επίσης, θα ήταν καλή ιδέα να περιορίσετε τις πιθανές τιμές ID σε αυτήν τη μορφή. Είναι και αυτά ανησυχίες.
  3. Κατά τη γνώμη μου, για το InterBase η καλύτερη επιλογή είναι η ακόλουθη - το αναγνωριστικό για όλους τους πίνακες δημιουργείται από μια κανονική σκανδάλη που επιλέγει τιμές από τη γεννήτρια. Σε αυτήν την περίπτωση, η αρχική τιμή της γεννήτριας είναι διαφορετική για διαφορετικές βάσεις δεδομένων, γεγονός που θα εξασφαλίσει τη μοναδικότητα του αναγνωριστικού σε όλες τις βάσεις δεδομένων. Αυτή η προσέγγιση είναι χαρακτηριστική για την InterBase. Η χρήση του για άλλα DBMS ενδέχεται να περιορίζεται από την αδυναμία ορισμού της αρχικής τιμής για τον μετρητή πεδίων αυτόματης αύξησης.

Είναι σαφές ότι επέλεξα την τρίτη επιλογή. :) Μια ακόμη ερώτηση παραμένει - ο τύπος δεδομένων για το αναγνωριστικό. Είναι σαφές ότι είναι δυνατή η χρήση του INT64 (NUMERIC(18)) για αναγνωριστικό, τότε δεν τίθεται το ερώτημα του διαθέσιμου εύρους αριθμών - το εύρος είναι τεράστιο. Αλλά δυστυχώς, υπάρχουν ορισμένα προβλήματα που εμποδίζουν να γίνει αυτό. Γεγονός είναι ότι η υποστήριξη των Delphi για τα πεδία Int64 εξακολουθεί να είναι κάπως χωλή. Αυτό οφείλεται τόσο σε ελλείψεις στα στοιχεία πρόσβασης δεδομένων (IBX, FIBPlus) όσο και στην αρχική έλλειψη υποστήριξης για τα πεδία Int64 στην κατηγορία TField.

Ταυτόχρονα, αν κοιτάξουμε προσεκτικά το εύρος INTEGER, θα διαπιστώσουμε ότι πότε

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

έχουμε αρκετή εμβέλεια INTEGER για 27 χρόνια λειτουργίας ενός συστήματος 21 βάσεων δεδομένων. Συγχρόνως αρχικές τιμέςΟι γεννήτριες διαφορετικών βάσεων δεδομένων θα οριστούν ως DBID * 100000000. Για τα περισσότερα συστήματα, αυτό είναι απολύτως φυσιολογικό.

Συγκρούσεις

Σε αυτήν την ενότητα, θα εξετάσουμε πιθανές επιλογές για αλλαγές στη βάση δεδομένων και θα σημειώσουμε σε ποιες περιπτώσεις είναι πιθανό να συμβούν συγκρούσεις. Ας διαιρέσουμε όλες τις αλλαγές που έγιναν σε δύο κλάσεις - αλλαγές που έγιναν σε μεμονωμένους ανεξάρτητους πίνακες και αλλαγές που έγιναν σε πίνακες που συνδέονται με σχέσεις ΕΞΩΤΕΡΙΚΟΥ ΚΛΕΙΔΙΟΥ.

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

Αλλαγές σε μεμονωμένους πίνακες

    Μια νέα εγγραφή προστίθεται στον πίνακα

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

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

    Η αιτία της σύγκρουσης μπορεί να είναι περιορισμοί τύπου ΜΟΝΑΔΙΚΟΥ. Επιτρέψτε μου να εξηγήσω. Έστω 2 βάσεις δεδομένων: Α και Β. Ένας περιορισμός ΜΟΝΑΔΙΚΟΣ(Πεδίο1) επιβάλλεται στον πίνακα (Πίνακας1). Ας υποθέσουμε ότι την αρχική χρονική στιγμή ΔΕΝ υπάρχουν εγγραφές και στις δύο βάσεις δεδομένων για τις οποίες Πεδίο1 = Τιμή1. Ας προσθέσουμε μια τέτοια εγγραφή πρώτα στο A και μετά στο B. Δεν υπάρχουν σφάλματα - ο περιορισμός UNIQUE δεν παραβιάζεται. Τώρα προσπαθούμε να συγχρονίσουμε αυτές τις βάσεις δεδομένων. Λογικά, θα πρέπει να δημιουργήσουμε 1 εγγραφή σε κάθε βάση δεδομένων. Αλλά δεν μπορούμε, γιατί αυτό θα παραβίαζε τον περιορισμό. Φυσικά, υπό την προϋπόθεση ότι τα δεδομένα έχουν εισαχθεί σωστά και το μοντέλο έχει κατασκευαστεί σωστά, αυτές θα πρέπει να είναι οι ΙΔΙΕΣ (κατά πεδία θέματος) εγγραφές, θα πρέπει να περιγράφουν την ίδια οντότητα. Αλλά αυτό δεν μας διευκολύνει - έχει προκύψει μια σύγκρουση και πρέπει να επιλυθεί. Μπορείτε να το επιλύσετε διαγράφοντας την καταχώρηση από μία βάση δεδομένων και συγχρονίζοντας εκ νέου.

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

    Γενικά, τέτοιες «λογικές» συγκρούσεις είναι πρακτικά μη ανιχνεύσιμες. Και αυτό είναι πολύ λυπηρό.

    Μια εγγραφή διαγράφεται από τον πίνακα

    Μετά τον συγχρονισμό, αυτή η εγγραφή θα πρέπει να διαγραφεί, εάν υπάρχει, από άλλες βάσεις δεδομένων. Και πάλι, είναι δυνατές «λογικές» συγκρούσεις - για παράδειγμα, μια σκανδάλη ελέγχει την παρουσία τουλάχιστον μιας εγγραφής για την οποία Field1 = Τιμή1, αρχικά υπήρχαν δύο τέτοιες εγγραφές και στις δύο βάσεις. Θα διαγράψουμε μία καταχώρηση και στις δύο βάσεις δεδομένων. Σε αυτή την περίπτωση, δεν θα υπάρξουν σφάλματα, αφού το δεύτερο παραμένει. Εάν όμως διαγράψαμε διαφορετικές εγγραφές σε διαφορετικές βάσεις δεδομένων, τότε μετά τον συγχρονισμό θα προκύψει σφάλμα, αφού στο τέλος δεν θα υπάρχει ούτε μία εγγραφή Field1 = Value1 στις βάσεις δεδομένων. Στην περίπτωση τέτοιου είδους περιορισμών, πάλι, προφανώς, χωρίς έναν διαχειριστή που να γνωρίζει καλά τη δομή της βάσης δεδομένων και να είναι σε θέση να διορθώσει τέτοιες συγκρούσεις, δεν θα βγει τίποτα από αυτό :(.

    Ορισμένα πεδία στον πίνακα έχουν αλλάξει

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

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

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

    Και η δεύτερη περίπτωση, κατά το συγχρονισμό σε επίπεδο ρεκόρ, μπορεί να προκαλέσει σοβαρό πρόβλημα - την απώλεια των εισαγόμενων πληροφοριών. Επιτρέψτε μου να σας δώσω ένα παράδειγμα. Ο προαναφερόμενος Ivanov I.I. έτρεξε πάλι στα προαναφερθέντα ιδρύματα. Έτρεξε στον πρώτο και είπε εκεί ότι ήταν πλέον άτομο με ειδικές ανάγκες της δεύτερης ομάδας, την οποία ο χειριστής εισήγαγε στη βάση δεδομένων. Έχοντας τρέξει στο δεύτερο ίδρυμα την ίδια μέρα, είπε ότι είχε τρίδυμα (ή απλά το δεύτερο ίδρυμα - αυτό είναι ένα μαιευτήριο και όλοι το έμαθαν εκεί μόνοι τους, και ο Ιβάνοφ έτρεξε μόνο σε ένα ίδρυμα). Εκεί άλλαξαν το πεδίο «αριθμός παιδιών». Προσοχή! Εάν ο συγχρονισμός πραγματοποιείται από ολόκληρες εγγραφές, τότε ανάλογα με τον χρόνο των αλλαγών ή την «ανωτερότητα» των βάσεων δεδομένων, θα χάσουμε αυτήν ή την άλλη εισαγόμενη πληροφορία, εκτός εάν ένας έξυπνος διαχειριστής δει λεπτομερής περιγραφήσυνέβη και δεν θα διορθώσει αυτή την κατάσταση με τα χέρια του. Πιστεύω ότι αυτό είναι ξεκάθαρο.

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

Αλλαγές σε συνδεδεμένους πίνακες

Θα εξετάσουμε τις συγκρούσεις κατά το συγχρονισμό των πινάκων TableA και TableB. Ο Πίνακας Β έχει ένα ξένο κλειδί (ΞΕΝΟ ΚΛΕΙΔΙ) που αναφέρεται στον Πίνακα Α. Τότε οι εγγραφές του πίνακα Α θα είναι μητρικές και οι αντίστοιχες εγγραφές του πίνακα Β θα είναι θυγατρικές.

    Δημιουργεί μια νέα γονική εγγραφή ή μια νέα θυγατρική εγγραφή σε μια υπάρχουσα γονική εγγραφή

    Δημιουργείται ένα νέο ρεκόρ γονέων και τα παιδιά του

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

    Μια θυγατρική εγγραφή διαγράφεται

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

    Η εγγραφή γονέα και τα παιδιά διαγράφονται

    Στη βάση δεδομένων που προκύπτει, πρέπει πρώτα να διαγραφούν οι θυγατρικές εγγραφές και μετά ο γονέας.

  1. Δημιουργείται μια θυγατρική εγγραφή στη βάση δεδομένων Α και η γονική εγγραφή διαγράφεται στη βάση δεδομένων Β.
  2. Στη βάση δεδομένων Α, μια θυγατρική εγγραφή μεταφέρεται από τη γονική εγγραφή 1 στη γονική εγγραφή 2, στη βάση δεδομένων Β η γονική εγγραφή 2 διαγράφεται

Βρόχοι Ξένων Κλειδιών

Επίδραση των ερεθισμάτων

Συγχρονισμός αρχείων καταγραφής - γενικές αρχές

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

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

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

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

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

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

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

Ο συγχρονισμός αρχείων καταγραφής υλοποιείται πολύ απλά, αλλά είναι προφανές ότι οι συγκρούσεις είναι αναπόφευκτες. Για να το διευκρινίσω αυτό, σας προσφέρω την ακόλουθη αναλογία. Φανταστείτε ότι έχετε 2 δωμάτια με συρτάρια. Έχετε ένα ρομπότ που μπορεί να προγραμματιστεί να μετακινεί κουτιά. Την αρχική στιγμή, τα κουτιά στο δωμάτιο βρίσκονται με τον ίδιο τρόπο. Δίνεις εντολές στο ρομπότ και μετακινεί τα κουτιά. Ο σύντροφός σας δίνει εντολές σε ένα άλλο ρομπότ στο δεύτερο δωμάτιο. Μετά από αυτό, δίνετε εντολή στα ρομπότ να αλλάξουν θέσεις και να επαναλάβετε όλες τις ενέργειες ξεκινώντας από το σημείο εκκίνησης. Προφανώς, αυτό μπορεί να οδηγήσει σε προβλήματα - στο πρώτο δωμάτιο το ρομπότ μετακίνησε το κουτί Νο. 5, αλλά στο δεύτερο δωμάτιο δεν ήταν στη θέση του, στο πρώτο δωμάτιο μετέφερε το κουτί Νο. 54 στη γωνία, αλλά στη δεύτερη γωνία ήταν κατειλημμένο.

Θα πρέπει να σημειωθεί ότι η επιτυχής εφαρμογή του αρχείου καταγραφής 2 στο DB 1 δεν σημαίνει ότι το αρχείο καταγραφής 1 στο DB 2 θα λειτουργεί χωρίς σφάλματα.

Φόντα

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

Ελαττώματα

  • Μεγάλοι όγκοι αποθηκευμένων δεδομένων - ανάλογα με τον αριθμό των αλλαγών ανά κύκλο
  • Οι συγκρούσεις είναι σχεδόν αναπόφευκτες

Συγχρονισμός με βάση την τρέχουσα κατάσταση - γενικές αρχές

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

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

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

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

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

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

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

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

Ας συνοψίσουμε τα πλεονεκτήματα και τα μειονεκτήματα που έχουμε εξετάσει σε μια ενιαία λίστα.

Φόντα

  • Καλές επιλογές για τη διόρθωση συγκρούσεων

Ελαττώματα

  • Χαμηλή ταχύτητασυγχρονισμός - ανάλογος με τον αριθμό όλων των εγγραφών
  • Απαιτεί σύνδεση και στις δύο βάσεις δεδομένων
  • Εισάγονται πρόσθετα πεδία για όλες τις εγγραφές - δεν είναι πραγματικά δυνατή η σύγκριση με το συγχρονισμό ημερολογίου

Συγχρονισμός ανεξάρτητων συνόλων πινάκων

Ας έχουμε λοιπόν πολλές βάσεις δεδομένων - A, B, C,... Σε αυτήν την περίπτωση, αλλαγές δεδομένων συμβαίνουν (χωρίς απώλεια γενικότητας) μόνο στο DB A. Θα πρέπει επίσης να σημειωθεί ότι εάν οι βάσεις δεδομένων έχουν ανεξάρτητα σύνολα πινάκων, τότε σε Σε ένα τέτοιο σύνολο, τα δεδομένα μπορούν να αλλάξουν μόνο στη βάση δεδομένων Α και σε ένα άλλο - μόνο στη βάση δεδομένων Β (για παράδειγμα). Μια τέτοια δομή μπορεί επίσης να θεωρηθεί ένα σύστημα μονόδρομου συγχρονισμού, που απλώς εκτελείται χωριστά σε πολλά σετ πινάκων.

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

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

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

Συνεχίζεται...

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

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

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

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

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

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

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

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

1.Τελικοί χρήστες.Δεν θα πρέπει να απαιτείται από τους τελικούς χρήστες να έχουν ειδικές γνώσεις υπολογιστών ή γλωσσικές δεξιότητες.

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

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

Ταξινόμηση βάσεων δεδομένων.

1.Σύμφωνα με τη μορφή παρουσίασης πληροφοριών.Το κεντρικό στοιχείο μιας τράπεζας δεδομένων είναι η βάση δεδομένων και τα περισσότερα χαρακτηριστικά ταξινόμησης σχετίζονται ειδικά με αυτήν. Σύμφωνα με τη μορφή παρουσίασης πληροφοριώνδιαφοροποιώ οπτικόςΚαι ήχουσυστήματα, καθώς και συστήματα πολυμέσα. Αυτή η ταξινόμηση δείχνει σε ποια μορφή αποθηκεύονται οι πληροφορίες στη βάση δεδομένων και εκδίδονται από βάσεις δεδομένων στους χρήστες: με τη μορφή εικόνων, ήχου ή είναι δυνατή η χρήση διαφορετικών μορφών εμφάνισης πληροφοριών. Η έννοια της «εικόνας» χρησιμοποιείται εδώ με ευρεία έννοια - μπορεί να είναι συμβολικό κείμενο, ακίνητη γραφική εικόνα (σχέδια, σχέδια κ.λπ.), φωτογραφίες, γεωγραφικοί χάρτες, κινούμενες εικόνες.

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

3. Δομημένες βάσεις δεδομένων με τη σειρά τους ανά τύπο μοντέλου που χρησιμοποιείταιχωρίζονται σε: ιεραρχική, δικτυακή, σχεσιακή, μικτήΚαι πολυμοντέλο.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διακρίνω επεκτατική(EBD) και εντατική DB. Μια εντατική βάση δεδομένων (IDB) δημιουργείται χρησιμοποιώντας κανόνες που καθορίζουν το περιεχόμενό της, και όχι με ρητή αποθήκευση δεδομένων σε μια βάση δεδομένων, όπως σε βάσεις δεδομένων επέκτασης.

    Η έννοια του συστήματος διαχείρισης βάσεων δεδομένων (DBMS).

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

Με τις γλώσσες επικοινωνίαςΤα DBMS χωρίζονται σε ανοιχτό,κλειστόΚαι μικτός.

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

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

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

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

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

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

Με "εξουσία"Τα DBMS χωρίζονται σε "επιφάνεια εργασίας"Και "εταιρικός". Τα χαρακτηριστικά γνωρίσματα των επιτραπέζιων DBMS είναι σχετικά χαμηλές απαιτήσεις για τεχνικά μέσα, εστίαση στον τελικό χρήστη και χαμηλό κόστος.

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

Τα πιο διάσημα εταιρικά DBMS είναι τα Oracle, Informix, Sybase, MS SQL Server, Progress και μερικά άλλα.

Υπάρχει μια διαίρεση του DBMS ανά γενιά:

1η γενιά – βασισμένη σε ένα ιεραρχικό και δικτυακό μοντέλο.

2η γενιά – Σχεσιακά συστήματα.

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

Ομάδες ταξινόμησης που σχετίζονται με το BnD στο σύνολό του.

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

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

    Συστήματα OLTP και OLAP: συγκριτικά χαρακτηριστικά.

Τα πληροφοριακά συστήματα ποικίλλουν από τη φύση της κυρίαρχης επεξεργασίας πληροφοριών. Ορισμένοι υλοποιούν κυρίως έναν μεγάλο αριθμό σχετικά απλών ερωτημάτων (τέτοια συστήματα ονομάζονται OLTP (On-Line Transaction Processing) - ηλεκτρονικά συστήματα επεξεργασίας συναλλαγών. Σε άλλες, αντίθετα, απαιτείται πολύπλοκη αναλυτική επεξεργασία δεδομένων (ο όρος OLAP (On-line Analytical Processing) άρχισε να χρησιμοποιείται για αυτήν την κατηγορία συστημάτων). Όρος OLAP

συχνά ταυτίζεται με την υποστήριξη αποφάσεων (DSS (Decision Support Systems) - συστήματα υποστήριξης αποφάσεων). Και ως συνώνυμο για τον τελευταίο όρο χρησιμοποιούν Data Warehousing - αποθήκες δεδομένων (αποθήκες), που σημαίνει με αυτό ένα σύνολο οργανωτικών λύσεων, λογισμικού και υλικού για την παροχή στους αναλυτές πληροφοριών με βάση δεδομένα από συστήματα επεξεργασίας συναλλαγών χαμηλότερο επίπεδοκαι άλλες πηγές.

Το "OLAP με τη στενή έννοια" είναι συστήματα που παρέχουν μόνο μια επιλογή δεδομένων σε διάφορες ενότητες και το "OLAP με την ευρεία έννοια" ή απλά το OLAP, το οποίο περιλαμβάνει:

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

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

    πρόβλεψη, προσδιορισμός τάσεων και στατιστική ανάλυση.

Οι αποθήκες δεδομένων μπορούν να χωριστούν σε δύο τύπους: αποθήκες δεδομένων επιχειρήσεων και μάρκες δεδομένων. Οι αποθήκες δεδομένων επιχειρήσεων περιέχουν πληροφορίες που καλύπτουν ολόκληρη την εταιρεία και συγκεντρώνονται από πολλαπλές λειτουργικές πηγές για ενοποιημένη ανάλυση. Οι μάρκες δεδομένων περιέχουν ένα υποσύνολο εταιρικών δεδομένων και είναι κατασκευασμένες για τμήματα ή τμήματα ενός οργανισμού. Τα data marts δημιουργούνται συχνά από το ίδιο το τμήμα και καλύπτουν μια συγκεκριμένη πτυχή που ενδιαφέρει τους υπαλλήλους του τμήματος.

Συγκριτικά χαρακτηριστικά συστήματα OLTPκαι OLAP:

Χαρακτηριστικός

Κυριαρχικές λειτουργίες

Εισαγωγή δεδομένων, αναζήτηση

Ανάλυση Δεδομένων

Φύση αιτημάτων

Πολλές απλές συναλλαγές

Σύνθετες συναλλαγές

Αποθηκευμένα δεδομένα

Λειτουργικό, αναλυτικό

Καλύπτει μεγάλο χρονικό διάστημα, συγκεντρωτικά

Είδος δραστηριότητας

Επιχειρησιακά, τακτικά

Αναλυτικό, στρατηγικό

Τύπος δεδομένων

Δομημένος

Διάφοροι τύποι

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

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

Σχεσιακό Στοιχείο Μοντέλου

Φόρμα παρουσίασης

Στάση

Διάγραμμα σχέσεων

Σειρά κεφαλίδας στήλης πίνακα (κεφαλίδα πίνακα)

Σειρά πίνακα

Ουσία

Περιγραφή των ιδιοτήτων του αντικειμένου

Κεφαλίδα στήλης πίνακα

Σύνολο έγκυρων τιμών χαρακτηριστικών

Τιμή χαρακτηριστικού

Τιμή πεδίου στην εγγραφή

Πρωτεύον κλειδί

Ένα ή περισσότερα χαρακτηριστικά

Τύπος δεδομένων

Τύπος τιμής στοιχείου πίνακα

Στάσηείναι μια ουσιαστική έννοια και είναι ένας δισδιάστατος πίνακας που περιέχει ορισμένα δεδομένα.

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

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

Μαθηματικά, η σχέση μπορεί να περιγραφεί ως εξής. Έστω n σύνολα D1, D2, D3,..., Dn δίνονται, τότε η σχέση R είναι το σύνολο των διατεταγμένων πλειάδες, όπου dk Dk, dk - ιδιότης,ένα Dk - πεδίο ορισμούσχέση R.

Ρύζι. Αναπαράσταση της σχέσης ΕΡΓΑΖΟΜΕΝΟΥ

Πεδίο ορισμούαντιπροσωπεύει το σύνολο όλων των πιθανών τιμών για ένα συγκεκριμένο χαρακτηριστικό μιας σχέσης. Η σχέση EMPLOYEE K περιλαμβάνει 4 τομείς. Τομέας 1περιέχει τα ονόματα όλων των εργαζομένων, τομέας 2- αριθμούς όλων των τμημάτων της εταιρείας, τομέας 3– ονόματα όλων των θέσεων, τομέας 4 -ημερομηνίες γέννησης όλων των εργαζομένων. Κάθε τομέας παράγει τιμές ενός τύπου δεδομένων, όπως αριθμητικό ή χαρακτήρα.

Η σχέση EMPLOYEE περιέχει 3 πλειάδες. Η πλειάδα της εν λόγω σχέσης αποτελείται από 4 στοιχεία, καθένα από τα οποία επιλέγεται από το αντίστοιχο πεδίο. Κάθε πλειάδα αντιστοιχεί σε μια σειρά πίνακα.

Σχήμα σχέσης (κεφαλίδα σχέσης) είναι μια λίστα με ονόματα χαρακτηριστικών. Για παράδειγμα, για το παράδειγμα που δίνεται, το διάγραμμα σχέσης έχει τη μορφή ΕΡΓΑΖΟΜΕΝΟΣ (Όνομα, Τμήμα, Θέση, Δ_Γέννηση). Το σύνολο των κατάλληλων πλειάδων μιας σχέσης ονομάζεται συχνά περιεχόμενο (σώμα) σχέση.

Πρωτεύον κλειδί (κλειδί σχέσης, κλειδί χαρακτηριστικών) είναι ένα χαρακτηριστικό μιας σχέσης που προσδιορίζει μοναδικά κάθε μία από τις πλειάδες της. Για παράδειγμα, σε σχέση με τον ΕΡΓΑΖΟΜΕΝΟ (πλήρες όνομα, τμήμα, θέση, ημερομηνία γέννησης), το βασικό χαρακτηριστικό είναι "πλήρες όνομα". ΚλειδίΜπορεί να είναι σύνθετο (σύνθετο), δηλαδή να αποτελείται από πολλά χαρακτηριστικά. Μπορεί να υπάρχουν περιπτώσεις όπου μια σχέση έχει πολλούς συνδυασμούς χαρακτηριστικών, καθένας από τους οποίους προσδιορίζει μοναδικά όλες τις πλειάδες της σχέσης. Όλοι αυτοί οι συνδυασμοί χαρακτηριστικών είναι πιθανά κλειδιά σχέση. Οποιοδήποτε από τα πιθανά κλειδιά μπορεί να επιλεγεί ως πρωταρχικός.

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

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

1) εξάλειψη διπλασιασμού των τιμών σε βασικά χαρακτηριστικά.

2) παραγγελία πλειάδων?

3) επιτάχυνση της εργασίας με πλειάδες σχέσεων.

4)οργάνωση πινάκων σύνδεσης.

Έστω η σχέση R1 όχι κλειδίχαρακτηριστικό A του οποίου οι τιμές είναι οι τιμές κλειδίχαρακτηριστικό Β μιας άλλης σχέσης R2. Τότε λένε ότι το χαρακτηριστικό Α της σχέσης R1 είναι ξένο κλειδί .

Τα ξένα κλειδιά χρησιμοποιούνται για τη δημιουργία συνδέσεων μεταξύ των σχέσεων. Για παράδειγμα, υπάρχουν δύο σχέσεις ΜΑΘΗΤΗΣ (Όνομα, Ομάδα, Ειδικότητα) και ΘΕΜΑ (Όνομα Πρ., Ώρες), που συνδέονται με τη σχέση ΜΑΘΗΤΗΣ_ ΘΕΜΑ (Όνομα, Όνομα Πρ., Βαθμός) (Εικ.). Σε μια σχέση σύνδεσης, τα χαρακτηριστικά Πλήρες Όνομα και Όνομα του Pr σχηματίζουν ένα σύνθετο κλειδί. Αυτά τα χαρακτηριστικά αντιπροσωπεύουν ξένα κλειδιά, τα οποία είναι τα κύρια κλειδιά άλλων σχέσεων.

Ρύζι. Σχέση σύνδεσης

Προϋποθέσεις, η εκπλήρωση των οποίων επιτρέπει στον πίνακα να θεωρείται σχέση.

1. Όλες οι σειρές του πίνακα πρέπει να είναι μοναδικές, δηλαδή δεν μπορούν να υπάρχουν σειρές με τα ίδια πρωτεύοντα κλειδιά.

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

3. Όλες οι σειρές ενός πίνακα πρέπει να έχουν την ίδια δομή, που αντιστοιχεί στα ονόματα και τους τύπους των στηλών.

4. Η σειρά των γραμμών στον πίνακα μπορεί να είναι αυθαίρετη. Τις περισσότερες φορές, ο πίνακας με τη σχέση τοποθετείται σε ξεχωριστό αρχείο.

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

Κύριοι τύποι συνδέσεων μεταξύ σχέσεων και τα χαρακτηριστικά τους.Μεταξύ των πινάκων μπορούν να δημιουργηθούν δυαδικές (μεταξύ δύο πινάκων), τριμερείς (μεταξύ τριών πινάκων) και, γενικά, n-αρικές σχέσεις. Ας δούμε τα πιο συνηθισμένα δυάδικοςδιαβιβάσεις.

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

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

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

    ένα – ένα (1:1);

    ένα – πολλά (1:M);

    πολλά – ένα (Μ:1);

    πολύ - πολύ (Μ:Μ ή Μ:Ν).

Τραπέζι Χαρακτηριστικά τύπων σχέσεων πινάκων

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

Τύπος επικοινωνίας 1:Μ.Μια σχέση 1:M προκύπτει όταν μια εγγραφή του κύριου πίνακα αντιστοιχεί σε πολλές εγγραφές του βοηθητικού πίνακα.

Τύπος επικοινωνίας Μ:1.Μια σχέση M:1 προκύπτει όταν μία ή περισσότερες εγγραφές του κύριου πίνακα συσχετίζονται με μία εγγραφή του πρόσθετου πίνακα.

Τύπος επικοινωνίας Μ: Μ.Ο πιο συνηθισμένος τύπος σχέσης M:M εμφανίζεται σε περιπτώσεις όπου πολλές εγγραφές του κύριου πίνακα αντιστοιχούν σε πολλές εγγραφές του πρόσθετου πίνακα.

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

    Συνόλων-θεωρητικά και ειδικές επιχειρήσειςσχεσιακή άλγεβρα.

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

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

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

Έστω δύο σχέσεις R 1 = ( r 1 ) , R 2 = ( r 2 ), όπου τα r 1 και r 2 είναι αντίστοιχα πλειάδες των σχέσεων R 1 και R 2 , τότε η ένωση R 1 R 2 = ( r | r R 1 Vr R2). Εδώ το r είναι μια πλειάδα μιας νέας σχέσης, το V είναι η πράξη λογικής πρόσθεσης "OR".

Με τη διέλευση

R 3 = R 1 R 2 =( r | r R 1 ^ r R 2 ), εδώ ^ είναι η πράξη του λογικού πολλαπλασιασμού (λογικό «ΚΑΙ»).

Με διαφορά

Με τη διέλευσησχέσεις είναι μια σχέση που περιέχει ένα σύνολο πλειάδων που ανήκουν ταυτόχρονα και στην πρώτη και στη δεύτερη σχέση R 1 και R 2:

R 3 = R 1 R 2 =( r | r R 1 ^ r R 2 ), εδώ ^ είναι η πράξη του λογικού πολλαπλασιασμού ("AND").

Με διαφοράΟι σχέσεις R 1 και R 2 είναι μια σχέση που περιέχει ένα σύνολο πλειάδων που ανήκουν στο R 1 και δεν ανήκουν στο R 2:

R 5 = R 1 \ R 2 = ( r | r R 1 ^ r R 2 )

Συμπλέκτηςή αληλουχία,πλειάδες με = και q = .., q m > είναι μια πλειάδα που προκύπτει προσθέτοντας τις τιμές του δεύτερου στο τέλος του πρώτου. Η σύνδεση μεταξύ c και q συμβολίζεται ως (c, q).

(c, q) =<с 1 с 2 , ... , с n , q 1 , q 2 , .... q m >

Εδώ n είναι ο αριθμός των στοιχείων στην πρώτη πλειάδα c, m είναι ο αριθμός των στοιχείων στη δεύτερη πλειάδα q.

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

Εκτεταμένο καρτεσιανό προϊόνσχέσεις R, βαθμός n με κύκλωμα S R1 =(A 1,A 2 ...,A n) και σχέσεις R 2 βαθμού m με κύκλωμα S R2 =(B 1,B 2,...,B m) είναι ονομάζεται σχέση R 3ου βαθμού n+m με κύκλωμα

S R3 = (A 1, A 2, ..., A n, B 1, B 2, ..., B m), που περιέχει πλειάδες που λαμβάνονται από τη σύνδεση κάθε πλειάδας r της σχέσης R 1 με κάθε πλειάδα q του σχέση R 2.

Δηλαδή, αν R 1 = ( r ), R 2 = ( q )

R1 R2 = ((r, q) | r R1 ^ q R2).

Ειδικές πράξεις σχεσιακής άλγεβρας.

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

Έστω a είναι μια Boolean έκφραση που αποτελείται από όρους σύγκρισης χρησιμοποιώντας τα συνδετικά στοιχεία AND (^), OR (V), NOT (–) και πιθανώς παρενθέσεις. Ως όροι σύγκρισης επιτρέπονται τα ακόλουθα:

α) όρος A os a, όπου A είναι το όνομα κάποιου χαρακτηριστικού που παίρνει τιμές από τον τομέα D. a είναι μια σταθερά που λαμβάνεται από την ίδια περιοχή D, a D; oc – μία από τις πράξεις σύγκρισης που επιτρέπονται για έναν δεδομένο τομέα D.

β) όρος A os B, όπου A, B είναι τα ονόματα ορισμένων ιδιοτήτων συγκρίσιμων με Q, δηλαδή, χαρακτηριστικών που παίρνουν τιμές από τον ίδιο τομέα D.

Στη συνέχεια, το αποτέλεσμα της λειτουργίας επιλογής ή φιλτραρίσματος που καθορίζεται στη σχέση R με τη μορφή μιας Boolean έκφρασης που ορίζεται στα χαρακτηριστικά της σχέσης R είναι η σχέση R[G], η οποία περιλαμβάνει εκείνες τις πλειάδες από την αρχική σχέση για τις οποίες η επιλογή ή Η συνθήκη φιλτραρίσματος είναι αληθής:

R = (r | r R ^ G(r) = "Αληθινό")

Η επόμενη ειδική επιχείρηση είναι λειτουργία σχεδιασμού. Έστω R σχέση, S R = (A 1 , ... , A n) είναι ένα σχήμα σχέσης R. Ας συμβολίσουμε με B το υποσύνολο [ Аi]. B ( Ai ) Επιπλέον, έστω B 1 το σύνολο των χαρακτηριστικών από ( Ai ) που δεν περιλαμβάνονται στο B. Εάν B = (A 1 j.A 2 j .....A k j), B 1 = (A 1 j,A 2 j,...,A k j)και r =<а 1 j, а 2 j,...,а k j >, και k j А k ji, μετά r [B], s=< a 1 j, а 2 j, ... , а m , >; а m , А m j

Η προβολή μιας σχέσης R σε ένα σύνολο χαρακτηριστικών B, που συμβολίζεται R[B], είναι μια σχέση με ένα σχήμα που αντιστοιχεί σε ένα σύνολο χαρακτηριστικών B S R | Β | = B, που περιέχει πλειάδες που λαμβάνονται από τις πλειάδες της αρχικής σχέσης R αφαιρώντας από αυτές τιμές που δεν ανήκουν σε χαρακτηριστικά από το σύνολο Β.

Εξ ορισμού των σχέσεων, όλες οι διπλές πλειάδες αφαιρούνται από τη σχέση που προκύπτει.

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

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

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

Έστω R = (r), Q = (q) – αρχικές σχέσεις, S R, S Q – σχήματα σχέσεων R και Q, αντίστοιχα.

S R = (A 1, A 2, ..., A k): S Q = (B 1 B 2, ..., B m), όπου A, B είναι τα ονόματα των χαρακτηριστικών στα σχήματα σχέσεων R και Q , αντίστοιχα. Σε αυτή την περίπτωση, υποθέτουμε ότι δίνονται σύνολα χαρακτηριστικών Α και Β

A ( A i ) , j=1,k ; Στο ( B j ) j=1,m , και αυτά τα σύνολα αποτελούνται από Q-συγκρίσιμα χαρακτηριστικά.

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

r.A j Q j В i , : i=l,k, όπου k είναι ο αριθμός των χαρακτηριστικών που περιλαμβάνονται στα σύνολα A και B, και Q j είναι μια συγκεκριμένη πράξη σύγκρισης.

Το A j Q j B i D i Qi είναι το i-ο κατηγόρημα σύγκρισης, που προσδιορίζεται από το σύνολο των πράξεων σύγκρισης που επιτρέπονται στον τομέα D i.

R[P]Q = (r.q) | (r.q) | r.A Q j q.B j - "True", i=l,k)

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

Για να ορίσουμε τη λειτουργία διαίρεσης, εξετάζουμε πρώτα την έννοια ενός συνόλου εικόνων.

Έστω R μια σχέση με το σχήμα S R = (A1, A 2 ,..., A k);

Έστω A ένα ορισμένο σύνολο χαρακτηριστικών A ( A i ) i=l,k , A 1 είναι ένα σύνολο χαρακτηριστικών που δεν περιλαμβάνονται στο σύνολο A.

Η τομή των συνόλων A και A 1 είναι κενή: A A 1 = 0; η ένωση των συνόλων ισούται με το σύνολο όλων των ιδιοτήτων της αρχικής σχέσης: A A 1 = S R .

Τότε το σύνολο εικόνων ενός στοιχείου στην προβολή R[A] είναι το σύνολο τέτοιων στοιχείων στην προβολή R για τα οποία η συνένωση (x, y) είναι πλειάδες της σχέσης R, δηλαδή

QA(x) = (y | y R ^ (x, y) R) – σύνολο εικόνων.

Ας ορίσουμε τώρα τη λειτουργία διαίρεση.Έστω δύο σχέσεις R και T, αντίστοιχα, με διαγράμματα: S R = (A 1, A 2, ..., A k); S T =-(B1, B2, ..., B m);

A και B – σύνολα χαρακτηριστικών αυτών των σχέσεων, του ίδιου μήκους (χωρίς επαναλήψεις).

A S R ; Στο S T . Τα χαρακτηριστικά A 1 είναι χαρακτηριστικά από το R που δεν περιλαμβάνονται στο σύνολο Α.

Η τομή των συνόλων A A 1 = είναι κενή και A A 1 = S R . Οι προβολές R[A] και T[B] είναι συμβατές κατά συσχέτιση, δηλαδή έχουν ισοδύναμα κυκλώματα: S R | A |~ S T [B].

Τότε η πράξη διαίρεσης συσχετίζει τις σχέσεις R και T με τη σχέση

Q = RT, των οποίων οι πλειάδες είναι εκείνα τα στοιχεία της προβολής R για τα οποία το T[B] περιλαμβάνεται στο σύνολο των εικόνων που έχουν κατασκευαστεί για αυτά:

RT = (r | r R ^ T[B] (y | y R [A] ^ (r, y) R)).

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

    Διάφορες αρχιτεκτονικές λύσεις που χρησιμοποιούνται στην υλοποίηση ΣΔΒΔ πολλαπλών χρηστών. Κεντρική αρχιτεκτονική.

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

Κεντρική αρχιτεκτονική.Κατά τη χρήση αυτής της τεχνολογίας, η βάση δεδομένων, το DBMS και το πρόγραμμα εφαρμογής (εφαρμογή) βρίσκονται σε έναν υπολογιστή (mainframe ή προσωπικός υπολογιστής) (Εικ. 1). Αυτή η μέθοδος οργάνωσης δεν απαιτεί υποστήριξη δικτύου και όλα καταλήγουν στην αυτόνομη λειτουργία. Η εργασία είναι δομημένη ως εξής:

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

Το DBMS και η εφαρμογή για εργασία με τη βάση δεδομένων είναι εγκατεστημένα στον ίδιο υπολογιστή.

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

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

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

Ρύζι. 1. Κεντρική αρχιτεκτονική

Μια παρόμοια αρχιτεκτονική χρησιμοποιήθηκε στις πρώτες εκδόσεις του DB2 και της Oracle. Το κύριο μειονέκτημα αυτού του μοντέλου είναι ότι η απόδοση μειώνεται απότομα καθώς αυξάνεται ο αριθμός των χρηστών.

    Τεχνολογία με δίκτυο και διακομιστή αρχείων (αρχιτεκτονική αρχείων-διακομιστή). Τεχνολογία πελάτη-διακομιστή. Αρχιτεκτονική πελάτη-διακομιστή τριών επιπέδων (πολλαπλών επιπέδων).

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

Ρύζι. 2. Αρχιτεκτονική αρχείων-διακομιστή.

Η εργασία είναι δομημένη ως εξής:

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

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

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

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

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

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

Το DBMS επιστρέφει το αποτέλεσμα στην εφαρμογή.

Η εφαρμογή, χρησιμοποιώντας τη διεπαφή χρήστη, εμφανίζει το αποτέλεσμα των ερωτημάτων.

Στα πλαίσια της αρχιτεκτονικής» διακομιστή αρχείων"Οι πρώτες εκδόσεις των δημοφιλών λεγόμενων επιτραπέζιων DBMS, όπως το dBase και η Microsoft Access, ολοκληρώθηκαν. Τα κύρια μειονεκτήματα αυτής της αρχιτεκτονικής:

Όταν πολλοί χρήστες έχουν ταυτόχρονα πρόσβαση στα ίδια δεδομένα, η απόδοση πέφτει απότομα.

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

Χρησιμοποιείται μια προσέγγιση πλοήγησης, που επικεντρώνεται στην εργασία με μεμονωμένα αρχεία.

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

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

Τεχνολογία πελάτη-διακομιστή.Χρησιμοποιώντας τεχνολογία" πελάτης - διακομιστής" προϋποθέτει την παρουσία ενός συγκεκριμένου αριθμού υπολογιστών που είναι συνδεδεμένοι σε ένα δίκτυο, ένας από τους οποίους εκτελεί ειδικές λειτουργίες ελέγχου (είναι διακομιστής δικτύου).

Αρχιτεκτονική" πελάτης - διακομιστής"διαχωρίζει τις λειτουργίες της εφαρμογής χρήστη (πελάτη) και του διακομιστή. Η εφαρμογή πελάτη δημιουργεί ένα αίτημα στον διακομιστή στον οποίο βρίσκεται η βάση δεδομένων, σε μια δομική γλώσσα Ερωτήματα SQL. Ο απομακρυσμένος διακομιστής αποδέχεται το αίτημα και το προωθεί στον διακομιστή βάσης δεδομένων SQL. Ο SQL server είναι ένα ειδικό πρόγραμμα που διαχειρίζεται μια απομακρυσμένη βάση δεδομένων. Ο διακομιστής SQL διασφαλίζει ότι το ερώτημα εκτελείται στη βάση δεδομένων, δημιουργείται το αποτέλεσμα του ερωτήματος και επιστρέφεται στην εφαρμογή πελάτη. Ο υπολογιστής-πελάτης στέλνει μόνο ένα αίτημα στη βάση δεδομένων διακομιστή και λαμβάνει το αποτέλεσμα, μετά το οποίο το ερμηνεύει ως απαραίτητο και το παρουσιάζει στον χρήστη. Επειδή Το αποτέλεσμα του αιτήματος αποστέλλεται στην εφαρμογή πελάτη μόνο τα δεδομένα που χρειάζεται ο πελάτης «ταξιδεύει» μέσω του δικτύου. Ως αποτέλεσμα, το φορτίο στο δίκτυο μειώνεται. Εφόσον το αίτημα εκτελείται στο ίδιο μέρος όπου αποθηκεύονται τα δεδομένα (στον διακομιστή), δεν υπάρχει ανάγκη αποστολής μεγάλων παρτίδων δεδομένων. Ο διακομιστής SQL βελτιστοποιεί το ληφθέν ερώτημα έτσι ώστε να εκτελείται στον ελάχιστο χρόνο με τη μικρότερη επιβάρυνση. Η αρχιτεκτονική του συστήματος φαίνεται στο Σχ. 3.

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

Ρύζι. 3. Αρχιτεκτονική πελάτη-διακομιστή.

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

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

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

Το DBMS ενσωματώνει μέσα του όλες τις πληροφορίες σχετικά με τη φυσική δομή της βάσης δεδομένων που βρίσκεται στον διακομιστή.

Το DBMS εκκινεί κλήσεις προς δεδομένα που βρίσκονται στον διακομιστή, ως αποτέλεσμα των οποίων όλη η επεξεργασία δεδομένων πραγματοποιείται στον διακομιστή και μόνο το αποτέλεσμα του αιτήματος αντιγράφεται στον υπολογιστή-πελάτη. Έτσι, το DBMS επιστρέφει το αποτέλεσμα στην εφαρμογή.

Η εφαρμογή, χρησιμοποιώντας τη διεπαφή χρήστη, εμφανίζει το αποτέλεσμα των ερωτημάτων.

Λειτουργίες της εφαρμογής πελάτη: αποστολή αιτημάτων. ερμηνεία αιτημάτων· παρουσίαση των αποτελεσμάτων.

Λειτουργίες τμήματος διακομιστή: λήψη αιτημάτων. εξασφάλιση συστήματος ασφαλείας και ελέγχου πρόσβασης· διαχείριση ακεραιότητας βάσης δεδομένων? υλοποίηση της σταθερότητας του τρόπου λειτουργίας πολλών χρηστών.

στην αρχιτεκτονική" πελάτης - διακομιστής«Τα λεγόμενα «βιομηχανικά» ΣΔΒΔ ονομάζονται βιομηχανικά επειδή είναι τα ΣΔΒΔ αυτής της κατηγορίας που μπορούν να εξασφαλίσουν τη λειτουργία των πληροφοριακών συστημάτων σε κλίμακα μεσαίας και μεγάλης επιχείρησης, οργανισμού, τράπεζας (MS SQL Server, Oracle. , InterBase, κ.λπ.).

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

Ας δούμε τα κύρια πλεονεκτήματα αυτής της αρχιτεκτονικής σε σύγκριση με την αρχιτεκτονική διακομιστή αρχείων:

Η κίνηση του δικτύου μειώνεται σημαντικά.

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

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

Η ακεραιότητα και η ασφάλεια της βάσης δεδομένων αυξάνεται σημαντικά.

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

Αρχιτεκτονική πελάτη-διακομιστή τριών επιπέδων (πολλαπλών επιπέδων).Τρεις σύνδεσμοι(σε ορισμένες περιπτώσεις πολλαπλών συνδέσμων)αρχιτεκτονικήαντιπροσωπεύει μια περαιτέρω βελτίωση της τεχνολογίας" πελάτης - διακομιστής". Έχοντας εξετάσει την αρχιτεκτονική" πελάτης - διακομιστής", μπορούμε να συμπεράνουμε ότι είναι ένα σύστημα 2 επιπέδων: ο πρώτος σύνδεσμος είναι η εφαρμογή πελάτη, ο δεύτερος σύνδεσμος είναι ο διακομιστής βάσης δεδομένων + η ίδια η βάση δεδομένων. Β αρχιτεκτονική τριών επιπέδωνόλη η επιχειρηματική λογική (business logic) που περιλαμβανόταν προηγουμένως εφαρμογές πελάτη, εκχωρείται σε έναν ξεχωριστό σύνδεσμο που ονομάζεται διακομιστής εφαρμογών. Σε αυτήν την περίπτωση, οι εφαρμογές πελάτη μένουν μόνο με τη διεπαφή χρήστη. Έτσι, στο παράδειγμα που περιγράφεται παραπάνω, ένα πρόγραμμα περιήγησης στο Web λειτουργεί ως εφαρμογή πελάτη Τώρα, όταν αλλάζει η επιχειρησιακή λογική, δεν υπάρχει πλέον ανάγκη αλλαγής εφαρμογών πελάτη και ενημέρωσης για όλους τους χρήστες. Επιπλέον, οι απαιτήσεις για εξοπλισμό χρήστη μειώνονται όσο το δυνατόν περισσότερο.

Ως αποτέλεσμα, η εργασία δομείται ως εξής:

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

Το DBMS βρίσκεται επίσης στον διακομιστή δικτύου.

Υπάρχει ένας ειδικά αποκλειστικός διακομιστής εφαρμογών στον οποίο βρίσκεται το λογισμικό επιχειρηματικής ανάλυσης (business logic).

Υπάρχουν πολλοί υπολογιστές-πελάτες, καθένας από τους οποίους έχει το λεγόμενο " thin client" είναι μια εφαρμογή πελάτη που υλοποιεί τη διεπαφή χρήστη.

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

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

Το DBMS ενσωματώνει μέσα του όλες τις πληροφορίες σχετικά με τη φυσική δομή της βάσης δεδομένων.

Το DBMS εκκινεί κλήσεις προς δεδομένα που βρίσκονται στο διακομιστή, με αποτέλεσμα το αποτέλεσμα του ερωτήματος να αντιγράφεται στον διακομιστή εφαρμογών.

Ο διακομιστής εφαρμογών επιστρέφει το αποτέλεσμα στην εφαρμογή πελάτη (χρήστη).

Η εφαρμογή, χρησιμοποιώντας τη διεπαφή χρήστη, εμφανίζει το αποτέλεσμα των ερωτημάτων.

    Η έννοια της ακεραιότητας της βάσης δεδομένων. Λογική και φυσική ακεραιότητα της βάσης δεδομένων. Ταξινόμηση περιορισμών ακεραιότητας.

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

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

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

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

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

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

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

9. Πρόβλημα ακεραιότητας βάσης δεδομένων. Συναλλαγές και κλειδαριές. Συγχρονισμός της εργασίας του χρήστη.

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

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

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

Συναλλαγές.Μια συναλλαγή είναι ένα πλήρες σύνολο ενεργειών σε μια βάση δεδομένων, η οποία τη μεταφέρει από μια κατάσταση που είναι αναπόσπαστη με λογική έννοια σε μια άλλη. Οι συναλλαγές υπόκεινται σε ένα σύνολο απαιτήσεων γνωστών ως ACID (Atomicity, Consistency, Isolation, Durability). Αυτές οι απαιτήσεις προκύπτουν από τον ορισμό μιας συναλλαγής.

    Ατομικότητα. Μια συναλλαγή είναι ένα ορισμένο σύνολο ολοκληρωμένων ενεργειών.

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

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

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

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

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

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

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

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

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

Συγχρονισμός της εργασίας του χρήστη.Αντιγραφή – τεχνολογία που χρησιμοποιείται στο DDB (κατανεμημένη βάση δεδομένων) που παρέχει υποστήριξη για αντίγραφα ολόκληρης της βάσης δεδομένων ή των τμημάτων της σε πολλούς κόμβους δικτύου. Ένα αντίγραφο μιας βάσης δεδομένων που είναι μέλος ενός συνόλου άλλων αντιγράφων που μπορούν να συγχρονιστούν μεταξύ τους ονομάζεται πανομοιότυπο. Τα αντίγραφα της βάσης δεδομένων βρίσκονται συνήθως κοντά στα μέρη όπου χρησιμοποιούνται οι πληροφορίες. Ο όρος «αντιγραφή» χρησιμοποιείται ως συνώνυμος της έννοιας «αντιγραφή». Η διαδικασία ενημέρωσης αντιγράφων, κατά την οποία οι ενημερωμένες εγγραφές και άλλα αντικείμενα μεταφέρονται και τα διπλά δεδομένα εναρμονίζονται, ονομάζεταισυγχρονισμός . Η ανταλλαγή δεδομένων μεταξύ των αντιγράφων μπορεί να είναι είτε μονόδρομη είτε αμφίδρομη. Επιπλέον, είναι δυνατός ο συγχρονισμός αντιγράφων υπό τον έλεγχο ενός συγχρονιστή. Σε αντίθεση με τα εγγενώς κατανεμημένα συστήματα, τα οποία εφαρμόζουν ένα πρωτόκολλο δέσμευσης δύο φάσεων κατά την εκτέλεση κατανεμημένων ερωτημάτων, τα συστήματα με αναπαραγόμενες βάσεις δεδομένων χρησιμοποιούν συνήθως εργαλεία ασύγχρονης αναπαραγωγής.

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

Πριν από περίπου δύο χρόνια δημιούργησα ένα έργο - ένα μικρό πρόγραμμα πελάτη που μπορεί να εγκατασταθεί σε οποιαδήποτε συσκευή και απλά συγχρονίζει αρχεία.
Για παράδειγμα, μπορείτε να καθορίσετε ότι τα έγγραφα θα συγχρονίζονται μεταξύ των υπολογιστών του σπιτιού και της εργασίας σας. Μουσική και βιβλία μεταξύ του οικιακού υπολογιστή και του τηλεφώνου. Δημιουργία αντιγράφων ασφαλείας μεταξύ οικιακού υπολογιστή, υπολογιστή εργασίας και διακομιστή. Αυτό το πρόγραμμα θα μπορούσε επίσης να ελέγξει την επακόλουθη διανομή οποιουδήποτε αρχείου στο σύστημα. Δηλαδή, εσείς, ως κάτοχος, θα μπορούσατε πάντα να μάθετε το ιστορικό του αρχείου: αντιγραφή σε μονάδα flash, σε άλλον υπολογιστή, μέσω email κ.λπ.

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

ΥΓ
Ευχαριστώ τη Sasha Murin για την συμβουλή)

Ο κατάλογος διαβάζεται χρησιμοποιώντας την εντολή get-childitem. Για να ληφθούν υπόψη οι υποφακέλους, προστίθεται η επιλογή -recurse και για τη διάκριση αρχείων από φακέλους, χρησιμοποιείται η συνάρτηση PSIsContainer(). Εάν επιστρέψει True, τότε το στοιχείο είναι ένας φάκελος, διαφορετικά είναι ένα κανονικό αρχείο:

$source = ¨c:files¨

$srcfolder = get-childitem $source -recurse | where-object($_.psiscontainer)

$srcfiles = get-childitem $source -recurse | where-object(!$_.pciscontainer)

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

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

foreach ($folder σε $srcfolders)

$srcpath = $source -replace ¨\¨,¨\¨ -replace ¨:¨,¨:¨

$dstpath = $folder.fullname -αντικαταστήστε το $srcpath,$destination

εάν ($dstpath -ne ¨¨) (

if (! (test-path $dstpath))

¨Δημιουργία του φακέλου «$dstpath».¨

new-item $dstpath -type directory | έξω-μηδενικός

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

$md5 = new-object system.security.cryptography.md5cryptoserviceprovider

$fs = new-object system.io.filestream ($file,$mode,$access)

$hash = $md5.computehash ($fs) # κωδικός κατακερματισμού αρχείου

$fs.close()

Ρύζι. 1. Το αποτέλεσμα της ανάλυσης των παρακολουθούμενων φακέλων στο GoodSync

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

Ρύζι. 2. Ρύθμιση αυτόματου συγχρονισμού στο GoodSync

Αξίζει να δώσετε προσοχή σε μια απόχρωση. Κατά τον αυτόματο συγχρονισμό αρχείων σε μια φορητή συσκευή αποθήκευσης (για παράδειγμα, μια μονάδα flash), ενδέχεται να προκύψει πρόβλημα αναγνώρισης δίσκου. Είναι πιο βολικό εάν η επεξεργασία αρχείων ξεκινά αυτόματα όταν είναι συνδεδεμένη μια μοναδική συσκευή, ωστόσο, οποιαδήποτε μονάδα USB όταν είναι συνδεδεμένη θα εμφανίζεται κάτω από το ίδιο γράμμα, γεγονός που θα οδηγήσει σε σφάλματα συγχρονισμού εάν τοποθετηθεί άλλη μονάδα flash. Προκειμένου το πρόγραμμα να αναγνωρίσει σωστά τον απαιτούμενο δίσκο, πρέπει να αλλάξετε χειροκίνητα τη διαδρομή προς τη συσκευή, αντικαθιστώντας το γράμμα της μονάδας δίσκου με την ετικέτα τόμου (=Όνομα τόμου:\φάκελος1\φάκελος2 - Εικ. 3). Είναι εύκολο να ορίσετε την κατάλληλη ετικέτα τόμου για έναν συγκεκριμένο δίσκο στις ιδιότητες χρησιμοποιώντας την Εξερεύνηση των Windows. Εφαρμογή καθορισμένες ρυθμίσειςεγγυάται την ανίχνευση της επιθυμητής φορητής μονάδας, ανεξάρτητα από το γράμμα της μονάδας που της έχει εκχωρηθεί.

Ρύζι. 3. Αντικατάσταση του γράμματος της μονάδας με την ετικέτα τόμου
στο GoodSync

Αντίστροφα

Προγραμματιστής:Λογισμικό TGRMN

Μέγεθος διανομής: Pro - 3,4 MB; Plus - 1,1 MB; Δωρεάν - 708 KB

Εργασία υπό έλεγχο: ViceVersa Pro 2.5 και ViceVersa Plus 2.4.2 - Windows (όλες οι εκδόσεις). ViceVersa Free 1.0.5 - Windows XP/Vista/7

Τιμή: Pro - 59,95 $; Plus - 34,95 $; Δωρεάν - δωρεάν

Το ViceVersa Pro είναι μια πολύ γνωστή λύση για συγχρονισμό, δημιουργία αντιγράφων ασφαλείας και αναπαραγωγή αρχείων και φακέλων (Εικ. 4). Μπορεί να χρησιμοποιηθεί για συγχρονισμό δεδομένων μεταξύ τους επιτραπέζιους υπολογιστές, φορητοί υπολογιστές, διακομιστές αρχείων, εξωτερικά μέσα (σκληροί δίσκοι, συσκευές USB, μονάδες ZIP κ.λπ.), NAS κ.λπ. Αυτό υλοποιείται μέσω τοπικού δικτύου, μέσω Διαδικτύου και με χρήση οποιωνδήποτε εξωτερικών συσκευών αποθήκευσης.


Κατά τη διάρκεια του συγχρονισμού, αναλύονται παράμετροι όπως το μέγεθος του αρχείου και η ημερομηνία/ώρα δημιουργίας του αρχείου, αθροίσματα ελέγχουή συνδυασμός των παραμέτρων που αναφέρονται. Είναι δυνατή η συμπερίληψη/εξαίρεση κατά την ανάλυση υποκαταλόγων, καθώς και ξεχωριστά αρχείαλαμβάνοντας υπόψη τα χαρακτηριστικά τους (κρυφό/σύστημα/μόνο για ανάγνωση) και τις μάσκες τους. Επιτρέπει το συγχρονισμό και τη δημιουργία αντιγράφων ασφαλείας αρχείων που ανοίγουν και κλειδώνονται από εφαρμογές, συμπεριλαμβανομένων ταχυδρομικές βάσεις δεδομένων Outlook και Outlook Express, έγγραφα και βάσεις δεδομένων Word και Excel Δεδομένα SQL. Ο συγχρονισμός δεδομένων εκτελείται χειροκίνητα κατόπιν αιτήματος ή αυτόματη λειτουργία- σύμφωνα με ένα πρόγραμμα (για παράδειγμα, κάθε μέρα σε αυστηρά καθορισμένη ώρα). Προκειμένου να εξοικονομηθεί χώρος στο δίσκο και να διασφαλιστεί η ασφάλεια των δεδομένων σε οποιοδήποτε μέσο, ​​το πρόγραμμα παρέχει εργαλεία για τη συμπίεση και την κρυπτογράφηση αρχείων.

Το βοηθητικό πρόγραμμα είναι διαθέσιμο σε τρεις εκδόσεις: δωρεάν Δωρεάν (http://www.tgrmn.com/free/) και δύο εμπορικές εκδόσεις - βασική Plus και εκτεταμένη Pro. Οι δυνατότητες της δωρεάν έκδοσης περιορίζονται στη σύγκριση και συγχρονισμό αρχείων σε φακέλους (συμπεριλαμβανομένων των υποφακέλων) μεταξύ μονάδων δισκέτας, σκληρών δίσκων, μονάδων δίσκου δικτύου και μονάδων ZIP και CD. ο συγχρονισμός πραγματοποιείται χειροκίνητα. Η έκδοση Plus σάς επιτρέπει να εργάζεστε με μονάδες USB, σκληρούς δίσκους και μονάδες δικτύου, καθώς και με DVD/CD, παρέχει τη δυνατότητα συγχρονισμού/δημιουργίας αντιγράφων ασφαλείας ανοιχτών/κλειδωμένων αρχείων και μπορεί να ρυθμιστεί ώστε να λειτουργεί βάσει χρονοδιαγράμματος. Η έκδοση Pro υποστηρίζει όλες τις λειτουργίες που έχουν δηλώσει οι προγραμματιστές.

GoodSync 8.8.6

Προγραμματιστής: Siber Systems, Inc.

Μέγεθος διανομής: 7,15 MB

Εργασία υπό έλεγχο: Windows 2000/XP/Vista/7

Τιμή: 29,95 $

Το GoodSync είναι ένα βολικό και απλό εργαλείο για το συγχρονισμό και τη δημιουργία αντιγράφων ασφαλείας αρχείων (Εικ. 5). Το πρόγραμμα σάς επιτρέπει να συγχρονίζετε αρχεία μεταξύ επιφάνειας εργασίας και φορητούς υπολογιστές, αφαιρούμενες μονάδες δίσκου και διακομιστές, καθώς και συμπεριφορά εφεδρικόςσημαντικά δεδομένα σε διάφορα μέσα (συμπεριλαμβανομένων των διακομιστών FTP και WebDAV). Επιπλέον, είναι δυνατός ο συγχρονισμός αρχείων μεταξύ συσκευών Windows MobileΤηλέφωνο ή υπολογιστή τσέπης (Windows CE) και επιτραπέζιος υπολογιστής. Ο συγχρονισμός μπορεί να πραγματοποιηθεί απευθείας μεταξύ υπολογιστών (σε τοπικό δίκτυοή μέσω Διαδικτύου από διακομιστές FTP, WebDAV και Secure FTP) ή συνδέοντας οποιαδήποτε εξωτερική συσκευή αποθήκευσης (μονάδα USB, εξωτερικός σκληρός δίσκος).


Η ανάλυση δεδομένων πραγματοποιείται λαμβάνοντας υπόψη την ημερομηνία/ώρα τροποποίησης των αρχείων ή το μέγεθός τους. Κατά τη διάρκεια της ανάλυσης, τα κρυφά αρχεία και τα αρχεία συστήματος αγνοούνται αυτόματα, μπορείτε να διαμορφώσετε την συμπερίληψη/εξαίρεση αρχείων με ονόματα που ταιριάζουν με μια συγκεκριμένη μάσκα, καθώς και αρχεία συγκεκριμένου μεγέθους ή με συγκεκριμένο χρόνο τροποποίησης. Είναι δυνατός ο συγχρονισμός κλειδωμένων αρχείων χρησιμοποιώντας την υπηρεσία Σκιώδης Αντιγραφή τόμου. Για την αυτοματοποίηση της διαδικασίας συγχρονισμού, περιλαμβάνονται εργαλεία για την έναρξη του συγχρονισμού σε ένα χρονοδιάγραμμα και όταν συμβαίνουν ορισμένα συμβάντα (για παράδειγμα, κατά τη σύνδεση ενός υπολογιστή σε ένα τοπικό δίκτυο, κατά τη σύνδεση μιας αφαιρούμενης μονάδας δίσκου σε έναν υπολογιστή ή κατά την εκκίνηση του συστήματος), είναι δυνατή η χρήση Προγραμματιστής των Windows. Προκειμένου να αυξηθεί η ασφάλεια κατά τον απομακρυσμένο συγχρονισμό δεδομένων, υλοποιείται η μεταφορά αρχείων μέσω κρυπτογραφημένου καναλιού (FTP μέσω SSH και WebDAV μέσω SSL) και για δημιουργία αντιγράφων ασφαλείας είναι δυνατή η χρήση του κρυπτογραφημένου συστήματος αρχείων EFS (Encrypting File System).

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

Allway Sync 11.6.1

Προγραμματιστής: Botkind, Inc.

Μέγεθος διανομής: 6,9 MB

Εργασία υπό έλεγχο: Windows 2000/XP/2003/Vista/2008/7

Τιμή:εξαρτάται από την άδεια: Pro - 29,99 $. Δωρεάν - δωρεάν (μόνο για μη εμπορική χρήση)

Το Allway Sync είναι ένα εύχρηστο βοηθητικό πρόγραμμα σχεδιασμένο για συγχρονισμό και δημιουργία αντιγράφων ασφαλείας αρχείων σε φακέλους (Εικ. 6). Το πρόγραμμα παρέχει συγχρονισμό δεδομένων μεταξύ επιτραπέζιων υπολογιστών, φορητών υπολογιστών, εξωτερικών σκληρών δίσκων, μονάδων USB, διακομιστών FTP/SFTP και διαφόρων ηλεκτρονικών εγκαταστάσεων αποθήκευσης δεδομένων. Η ανάλυση και η ενημέρωση πληροφοριών πραγματοποιείται μέσω τοπικού δικτύου, μέσω Διαδικτύου και μέσω εξωτερικών συσκευών αποθήκευσης (μονάδες flash, εξωτερικοί σκληροί δίσκοι κ.λπ.).


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

Το πρόγραμμα προσφέρεται σε δύο εκδόσεις: δωρεάν και εμπορικό Pro. Δωρεάν έκδοσησας επιτρέπει να συγχρονίσετε όχι περισσότερα από 40 χιλιάδες αρχεία μέσα σε μια περίοδο 30 ημερών. Υπάρχει μια ειδική φορητή έκδοση του βοηθητικού προγράμματος που έχει σχεδιαστεί για εγκατάσταση σε μονάδα flash ή εξωτερικό σκληρό δίσκο.

FreeFileSync 4.2

Προγραμματιστής: ZenJu

Μέγεθος διανομής: 9,27 MB

Εργασία υπό έλεγχο: Windows 2000/XP/Vista/7

Τιμή:δωρεάν

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

Ρύθμιση συγχρονισμού στο FreeFileSync

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

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

Στην καρτέλα «Συγχρονισμός» διαμορφώνουμε τη λειτουργία συγχρονισμού. Υπάρχουν συνολικά 4 τρόποι λειτουργίας:

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

Ρύθμιση προγραμματισμένου συγχρονισμού

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

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

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

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

Έχοντας δύο (και μερικές φορές περισσότερους) υπολογιστές μέσα οικιακή χρήσηέχει πάψει εδώ και καιρό να εκλαμβάνεται ως κάτι το ασυνήθιστο. Σήμερα, στο τοπικό σας δίκτυο του σπιτιού μπορείτε να βρείτε έως και δώδεκα διαφορετικές συσκευές, τόσο τους ίδιους τους υπολογιστές όσο και κάθε είδους μονάδες δίσκου δικτύου, συσκευές αναπαραγωγής DVD και Blue-Ray, τηλεοράσεις με πρόσβαση στο δίκτυο κ.λπ. Ακόμα κι αν δεν έχετε όλα τα παραπάνω, εξακολουθείτε να χρησιμοποιείτε τουλάχιστον μία μονάδα flash για να μεταφέρετε τα απαραίτητα δεδομένα. Σε κάθε περίπτωση, προκύπτουν καταστάσεις όταν το επιθυμητό αρχείο αλλάζει στον τοπικό υπολογιστή και πρέπει να το μεταφέρετε χειροκίνητα στην ίδια μονάδα flash. Και αν υπάρχουν πολλά τέτοια αρχεία, πώς μπορείτε να θυμηθείτε να «κατεβάσετε» τα τρέχοντα αντίγραφα εγκαίρως; Για όλα αυτά, υπάρχουν ειδικά προγράμματα - συγχρονιστές.

Ένας καλός συγχρονιστής θα πρέπει να μπορεί να λειτουργεί εξίσου με τοπικούς φακέλους και με αφαιρούμενα και απομακρυσμένα μέσα αποθήκευσης, να παρακολουθεί τα αλλαγμένα αρχεία στον καθορισμένο κατάλογο και να τα ενημερώνει έγκαιρα φάκελο προορισμού, εργασία σύμφωνα με ένα δεδομένο χρονοδιάγραμμα σε αυτόματη ή/και κρυφή λειτουργία... Όλες αυτές οι (και κάποιες άλλες) δυνατότητες είναι διαθέσιμες σε ένα πολύ μικρό βοηθητικό πρόγραμμα DSσυγχρονισμός. Παρά το δωρεάν καθεστώς και το μικρό του μέγεθος, μπορεί εύκολα να ανταγωνιστεί επί ίσοις όροις εμπορικά προγράμματα, όπως αυτά που είναι δημοφιλή στο εξωτερικό Synchromagic Pro.

Σύγκριση του προγράμματος DSynchronize με το επί πληρωμή αναλογικό Synchromagic Pro

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

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

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

DSynchronize interface

Αρχικά, η διεπαφή του προγράμματος είναι αγγλική, αν και είναι διαισθητική. Δεν υπάρχει ρωσικός εντοπισμός στον επίσημο ιστότοπο, αλλά έκανα μια προσπάθεια να "εξημερώσω" DSσυγχρονισμός.. Για να ρωσοποιήσετε το πρόγραμμα, απλώς προσθέστε το αρχείο στο φάκελο στον οποίο το αποσυσκευάσατε DSynchronize.lng από το αρχείο που κατεβάσατε (ω, ναι... επιτρέπεται οποιαδήποτε τροποποίηση και βελτιστοποίηση του προαναφερθέντος αρχείου για να ταιριάζει στις ανάγκες σας :))). Τώρα ας ξεκινήσουμε τη ρωσική έκδοση DSσυγχρονισμός.

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

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

Συγχρονισμός μέσω FTP

Αλλά για να συνδεθείτε σε έναν απομακρυσμένο υπολογιστή μέσω τοπικού δικτύου ή FTP, θα πρέπει να εισαγάγετε τη διαδρομή χειροκίνητα. Για να αποκτήσετε πρόσβαση σε έναν φάκελο σε απομακρυσμένο υπολογιστή μέσω τοπικού δικτύου, θα χρειαστεί να εισαγάγετε τα εξής: \\Όνομα υπολογιστή (ή IP του)\Όνομα φακέλου (για παράδειγμα, \\192.168.1.4\Κοινόχρηστα έγγραφα). Η μόνη προειδοποίηση είναι ότι ο φάκελος στον οποίο συνδέουμε πρέπει να είναι ανοιχτός για πρόσβαση στο κοινό. Κλήση μενού περιβάλλοντοςφακέλους και επιλέξτε "Σκηνικά θέατρου". Στο παράθυρο που ανοίγει, μεταβείτε στην καρτέλα "Πρόσβαση"και επιλέξτε το πλαίσιο "Κοινή χρήση αυτού του φακέλου".

Για να χρησιμοποιήσετε την επιλογή συγχρονισμού FTP, καθορίστε την πλήρη διεύθυνση διακομιστή (για παράδειγμα, ftp://Διεύθυνση διακομιστή/Όνομα φακέλου). Εάν λάβετε ένα μήνυμα σφάλματος ως απάντηση, σημαίνει ότι πρέπει να παρέχετε πληροφορίες εξουσιοδότησης για πρόσβαση στον διακομιστή. Αυτό μπορεί να γίνει προσθέτοντας τη σύνδεση πριν από τη διεύθυνση διακομιστή, μετά τον κωδικό πρόσβασης μετά την άνω και κάτω τελεία και μόνο μετά την υπογραφή «@» της άμεσης διεύθυνσης διακομιστή (βλ. στιγμιότυπο οθόνης παραπάνω).

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

Εδώ μπορούμε να καθορίσουμε την αντιγραφή είτε αυστηρά ορισμένα αρχείαή τους τύπους τους ανά μάσκα, προσδιορίζοντας το είδος "Ενεργοποίηση φίλτρου", ή καθορίστε ποια αρχεία (ή τύπους αρχείων) δεν θα πρέπει να συγχρονίζονται επιλέγοντας "Εξαιρέσεις φίλτρων". Η μάσκα έχει ρυθμιστεί με τυπικό τρόπο: εισάγουμε μέρος του ονόματος αρχείου και επισημαίνουμε όλα όσα δεν χρειάζονται ως «*» . Μπορείτε να διαχωρίσετε τις μάσκες με κανονικό ερωτηματικό. Στη συνέχεια, υπάρχουν μερικές επιλογές που καθορίζουν τις παραμέτρους για την εργασία με υποφακέλους και ακόμη χαμηλότερη είναι η ενότητα "Προηγμένα φίλτρα". Εδώ μπορείτε να εξαιρέσετε από την αντιγραφή αρχεία που άλλαξαν μια συγκεκριμένη ημέρα.

Δσυγχρονισμός ρυθμίσεων

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

Όλες οι δυνατότητες χωρίζονται σε τέσσερις ομάδες. Πρώτα - "Βασικές επιλογές"- περιλαμβάνει σχεδόν όλες τις απαραίτητες ρυθμίσεις συγχρονισμού. Αξίζει να δώσετε προσοχή στις δύο πρώτες πιθανότητες. Παράγραφος "Μόνο το τελευταίο"σας επιτρέπει να μην αντικαθιστάτε όλα τα υπάρχοντα αρχεία, αλλά να αντιγράφετε μόνο τα περισσότερα τρέχουσες εκδόσεις. Έτσι, ο χρόνος που αφιερώνεται στον συγχρονισμό εξοικονομείται σημαντικά. Μια άλλη πιθανότητα είναι "Διπλός συγχρονισμός". Εάν είναι ενεργοποιημένο, τότε και οι δύο φάκελοι ελέγχονται για νέες εκδόσεις αρχείων και, ως αποτέλεσμα, παραμένουν μόνο τα πιο πρόσφατα αντίγραφα σε καθένα από αυτά.

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

Τέταρτη ομάδα - "Ομάδες"- περιέχει μόνο κουμπιά για τον έλεγχο της διαδικασίας συγχρονισμού, οπότε ας ρίξουμε μια πιο προσεκτική ματιά στην τρίτη ομάδα - "Σχεδίαση". Αυτή είναι μια από τις πιο βασικές ενότητες, η οποία είναι υπεύθυνη για την αυτοματοποίηση όλων των διαδικασιών στην εργασία. DSσυγχρονισμός. Κάνοντας κλικ στην πρώτη επιλογή - "Μετρών την ώραν", θα πάμε στο παράθυρο ρυθμίσεων συγχρονισμού χρόνου:

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

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

Ακολουθούν δύο σημεία που είναι υπεύθυνα για την αυτόματη εκτέλεση DSσυγχρονισμός. Πρώτα - "Αυτόματη εκκίνηση", σας επιτρέπει να κατεβάσετε το πρόγραμμα μαζί με το σύστημα. Σε αυτήν την περίπτωση, το πρόγραμμα θα είναι ορατό στο δίσκο, από τον οποίο μπορεί πάντα να κληθεί. Εάν είστε σίγουροι ότι όλα έχουν ρυθμιστεί σωστά και μόνιμη πρόσβασηΝα DSσυγχρονισμόςΕάν δεν το χρειάζεστε, μπορείτε να ρυθμίσετε το πρόγραμμα να εκτελείται σε λειτουργία σέρβις. Για να το κάνετε αυτό, ελέγξτε το στοιχείο "Έναρξη της υπηρεσίας...".

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

Παράδειγμα εργασίας με το πρόγραμμα

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

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

Σε αυτήν την περίπτωση, έχουμε ένα παράθυρο επιβεβαίωσης αντικατάστασης αρχείου (Επιβεβαίωση Προσθήκης - επιβεβαίωση για προσθήκη, Επιβεβαίωση Αφαίρεσης/Διαγραφής - διαγραφή).

Μαθαίνουμε για την ολοκλήρωση της διαδικασίας συγχρονισμού ξανά από την επιγραφή στη γραμμή κατάστασης:

Συγχαρητήρια! Τώρα μπορείτε επιτέλους να ξεχάσετε τη μη αυτόματη αντιγραφή απαραίτητα αρχεία, αφού μπορείτε να μετατοπίσετε όλες τις ανησυχίες που σχετίζονται με το συγχρονισμό αρχείων σε DSσυγχρονισμός.

P.S.Αυτό το άρθρο προορίζεται για δωρεάν διανομή. Μπορείτε να το αντιγράψετε διατηρώντας την συγγραφή. Ruslan Tertyshnyκαι όλοι P.S. και Π.Π.Σ.

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

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

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



Συνιστούμε να διαβάσετε

Κορυφή