Πώς να ανοίξετε το sqlite. Επισκόπηση προγραμμάτων για τη διαχείριση βάσεων δεδομένων SQLite

Πρόγραμμα Kerish Doctor. 22.04.2019
Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...
Chercher
Οικιακές συσκευές
- Από Προεπιλογή των Windowsδεν εμφανίζει επεκτάσεις ονόματος αρχείου.
- Ορισμένοι χαρακτήρες δεν μπορούν να χρησιμοποιηθούν στο όνομα και την επέκταση του αρχείου.
- Δεν σχετίζονται όλες οι μορφές με το ίδιο πρόγραμμα.
- Παρακάτω είναι όλα τα προγράμματα που μπορούν να χρησιμοποιηθούν για το άνοιγμα του αρχείου SQLITE.

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

Η βάση δεδομένων NET είναι εξαιρετικά εύχρηστο εργαλείο, επιτρέποντας διάφορους χειρισμούς με αμέτρητες βάσεις δεδομένων. Μετά τη λήψη της εφαρμογής, μπορείτε εύκολα να δημιουργήσετε, να επιλέξετε, να διαγράψετε ή να ενημερώσετε τους επιθυμητούς πίνακες δεδομένων. Το πρόγραμμα μπορεί με επιτυχία να εξάγει ή να εκτυπώνει πίνακες με δεδομένα. Το πρόγραμμα αλληλεπιδρά με Access, Excel. Υποστηρίζει εργασία με βάσεις δεδομένων: MySQL, Oracle, SQLite, SQLServer, OLEDB, ODBC, OData, SQLAzure, LocalDB, PostgreSQL και άλλες βάσεις δεδομένων. Για σωστή λειτουργίαΤο πρόγραμμα απαιτεί υποχρεωτική εγκατάσταση της Microsoft. NET Framework. Σας επιτρέπει να επιλέξετε οποιαδήποτε γραμματοσειρά και να την ελαχιστοποιήσετε στο δίσκο.

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

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

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

Χρήση του SQLite σε εφαρμογές πολλαπλών νημάτων
Το SQLite μπορεί να κατασκευαστεί με ένα νήμα (επιλογή μεταγλώττισης SQLITE_THREADSAFE = 0).

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

Μπορείτε να ελέγξετε εάν υπάρχει πολλαπλή νήμα χρησιμοποιώντας την κλήση sqlite3_threadsafe(): αν επέστρεψε 0, τότε είναι SQLite με ένα νήμα.

Από προεπιλογή, το SQLite είναι κατασκευασμένο με υποστήριξη νημάτων (sqlite3.dll).

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

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

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

Μορφή δεδομένων
Βάση Δεδομένα SQLiteμπορεί να αποθηκεύσει δεδομένα (κείμενο) σε UTF-8 ή UTF-16.

Το σύνολο κλήσεων API αποτελείται από κλήσεις που λαμβάνουν UTF-8 ( sqlite3_XXX) και κλήσεις που λαμβάνουν UTF-16 ( sqlite3_XXX16).

Εάν ο τύπος δεδομένων της διεπαφής και της σύνδεσης δεν ταιριάζουν, τότε εκτελείται μετατροπή on-the-fly.

Να χρησιμοποιείτε πάντα UTF-8.

Υποστήριξη UNICODE
Από προεπιλογή - δεν υπάρχει υποστήριξη. Πρέπει να δημιουργήσετε τη δική σας ταξινόμηση (μέθοδος σύγκρισης) μέσω sqlite3_create_collation .
Και ορίστε τις ενσωματωμένες λειτουργίες σας like(), upper(), bottom()διά μέσου www.sqlite.org/c3ref/create_function.html.

Και μερικοί άνθρωποι κατασκευάζουν ήδη SQLite DLL με αυτό.

Τύποι δεδομένων και Σύγκριση τιμών
Όπως ήδη αναφέρθηκε, το SQLIte σας επιτρέπει να γράψετε οποιαδήποτε τιμή σε οποιαδήποτε στήλη.

Μια τιμή μέσα στη βάση δεδομένων μπορεί να ανήκει σε ένα από τα ακόλουθους τύπουςαποθήκευση ( κατηγορία αποθήκευσης):
ΑΚΥΡΟΣ,
ΑΚΕΡΑΙΟΣ ΑΡΙΘΜΟΣ(καταλαμβάνει 1,2,3,4,6 ή 8 byte),
ΠΡΑΓΜΑΤΙΚΟΣ(αριθμός κινητής υποδιαστολής, 8 byte σε μορφή IEEE),
ΚΕΙΜΕΝΟ(συμβολοσειρά σε μορφή δεδομένων βάσης δεδομένων, συνήθως UTF-8),
ΑΜΟΡΦΗ ΜΑΖΑ(δυαδικά δεδομένα, αποθηκευμένα «ως έχουν»).

Η σειρά ταξινόμησης για τιμές διαφορετικών τύπων είναι:
- ΑΚΥΡΟΣλιγότερο από όλα (συμπεριλαμβανομένων άλλων ΑΚΥΡΟΣ);
- ΑΚΕΡΑΙΟΣ ΑΡΙΘΜΟΣΚαι ΠΡΑΓΜΑΤΙΚΟΣλιγότερο από οποιαδήποτε ΚΕΙΜΕΝΟΚαι ΑΜΟΡΦΗ ΜΑΖΑ, συγκρίνονται αριθμητικά μεταξύ τους.
- ΚΕΙΜΕΝΟλιγότερο από οποιαδήποτε ΑΜΟΡΦΗ ΜΑΖΑ, συγκρίνονται μεταξύ τους βάσει της αντιπαραβολής τους.
- ΑΜΟΡΦΗ ΜΑΖΑ-σ συγκρίνονται μεταξύ τους μέσω memcmp().

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

Αξίες ΑΜΟΡΦΗ ΜΑΖΑΚαι ΑΚΥΡΟΣεισάγονται πάντα σε οποιαδήποτε στήλη "ως έχει".

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

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

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

Θα σημειώσω εδώ ότι στο SQLite ένα μοναδικό ευρετήριο μπορεί να έχει τόσα πολλά ΑΚΥΡΟΣτιμές (η Oracle συμφωνεί με αυτό και η MS SQL διαφωνεί).

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

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

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

UPD:Αποδεικνύεται ότι είναι ήδη δυνατό να ανοίξετε δύο συνδέσεις σε μία βάση δεδομένων στη μνήμη.

Rc = sqlite3_open("file:memdb1?mode=memory&cache=shared", &db);

ΕΠΙΣΤΑΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ "file:memdb1?mode=memory&cache=shared" AS aux1;

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

Ανά πάσα στιγμή μπορούμε ανοιχτή σύνδεση ενώνωέως και 10 ακόμη βάσεις δεδομένων μέσω Εντολή SQL ΕΠΙΣΤΑΣΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ.

Sqlite3_open("foo.sqlite3", &db); // ανοίξτε μια σύνδεση με τη βάση δεδομένων στο αρχείο "foo.sqlite3" sqlite3_exec(&db, "ATTACH "bar.sqlite3" AS bar", ...); // προσάρτηση "bar.sqlite3"

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

Για να επιλύσετε διενέξεις ονομασίας, θα πρέπει να χρησιμοποιήσετε το όνομα σύνδεσης (καλείται η κύρια βάση "κύριος"):

SELECT * FROM main.my_table UNION SELECT * FROM bar.my_table

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

Sqlite3_open("foo.sqlite3", &db); // ανοίξτε μια σύνδεση με τη βάση δεδομένων στο αρχείο "foo.sqlite3" sqlite3_exec(&db, "ATTACH ":memory:" AS mem", ...); // επισύναψη νέας βάσης δεδομένων στη μνήμη

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

Προσωρινή βάση δεδομένων
Περάστε μια κενή συμβολοσειρά αντί για το όνομα αρχείου sqlite3_open()και μια προσωρινή βάση δεδομένων θα δημιουργηθεί σε ένα αρχείο στο δίσκο. Επιπλέον, μετά το κλείσιμο της σύνδεσης με τη βάση δεδομένων, θα διαγραφεί από το δίσκο.
Βελτιώστε τη βάση δεδομένων χρησιμοποιώντας την εντολή PRAGMA
Εντολή SQL ΠΡΑΓΜΑχρησιμεύει για να ορίσετε όλα τα είδη ρυθμίσεων για τη σύνδεση ή την ίδια τη βάση δεδομένων:

Όνομα PRAGMA; // ζητήστε την τρέχουσα τιμή της παραμέτρου ονόματος PRAGMA name = value; // ορίστε την παράμετρο ονόματος σε τιμή

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

Διατίθεται πλήρης περιγραφή όλων των παραμέτρων.

Θα επικεντρωθώ στα πιο σημαντικά πράγματα.

PRAGMA page_size = byte; // Μέγεθος σελίδας βάσης δεδομένων; μια σελίδα βάσης δεδομένων είναι μια μονάδα ανταλλαγής μεταξύ του δίσκου και της κρυφής μνήμης, είναι λογικό να είναι ίσο με το μέγεθος του συμπλέγματος δίσκων (έχω 4096) PRAGMA cache_size = -kibibytes. // ορίστε το μέγεθος της κρυφής μνήμης σύνδεσης σε kilobyte, από προεπιλογή είναι 2000 σελίδες βάσης δεδομένων PRAGMA encoding = "UTF-8"; // τύπος δεδομένων βάσης δεδομένων, χρησιμοποιήστε πάντα UTF-8 PRAGMA ξένα_κλειδιά = 1; // ενεργοποιήστε την υποστήριξη για ξένα κλειδιά, από προεπιλογή - ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟ PRAGMA journal_mode = DELETE | ΚΟΛΟΦΟ | ΕΠΙΜΕΝΟΥΝ | ΜΝΗΜΗ | WAL | ΜΑΚΡΙΑ ΑΠΟ; // ορίστε τον τύπο καταγραφής, δείτε παρακάτω PRAGMA synchronous = 0 | ΑΠΕΝΕΡΓΟΠΟΙΗΣΗ | 1 | ΚΑΝΟΝΙΚΟ | 2 | ΓΕΜΑΤΟΣ; // τύπος συγχρονισμού συναλλαγών, βλέπε παρακάτω

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

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

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

Εάν δεν χρησιμοποιείτε ρητά τις συναλλαγές ( ΑΡΧΙΖΩ; ...; ΔΙΑΠΡΑΤΤΩ;), Αυτό δημιουργείται πάντα μια σιωπηρή συναλλαγή. Ξεκινά πριν από την εκτέλεση της εντολής και δεσμεύεται αμέσως μετά.

Από εδώ προέρχονται, παρεμπιπτόντως, τα παράπονα για τη «βραδύτητα» του SQLite. Το SQLite μπορεί να εισάγει έως και 50 χιλιάδες εγγραφές ανά δευτερόλεπτο, αλλά καταγράψτε τις συναλλαγέςδεν μπορεί να κάνει περισσότερα από ~50 το δευτερόλεπτο.

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

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

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

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

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

Η ατομικότητα του μηχανισμού συναλλαγής περιγράφεται λεπτομερώς.

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

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

Από προεπιλογή, το αρχείο καταγραφής διατηρείται σε λειτουργία ΔΙΑΓΡΑΦΩ.
PRAGMA journal_mode = DELETE

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

Σε λειτουργία ΚΟΛΟΒΟΣΤο αρχείο καταγραφής περικόπτεται στο μηδέν (σε ορισμένα συστήματα αυτό είναι πιο γρήγορο από τη διαγραφή του αρχείου).

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

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

Ή μπορείτε να απενεργοποιήσετε εντελώς το ημερολόγιο ( PRAGMA journal_mode = OFF). Σε αυτήν την περίπτωση, η επαναφορά συναλλαγής σταματά να λειτουργεί (εντολή ΑΝΤΙΣΤΡΟΦΗ) και η βάση δεδομένων πιθανότατα θα καταστραφεί εάν το πρόγραμμα τερματιστεί ασυνήθιστα.

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

Ας πάμε λίγο πίσω. Πώς το SQLite «βεβαιώνει» ότι η βάση δεδομένων θα είναι πάντα συνεπής;

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

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

Τι γίνεται αν το αρχείο διαγραφεί πριν από την ενημέρωση της βάσης δεδομένων;

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

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

PRAGMA σύγχρονοορίζει τον βαθμό «παράνοιας» που έχει το SQLite από αυτή την άποψη.

Τρόπος ΜΑΚΡΙΑ ΑΠΟ(ή 0) σημαίνει: Το SQLite θεωρεί ότι τα δεδομένα είναι σταθερά στο δίσκο αμέσως μετά τη μεταφορά τους στο λειτουργικό σύστημα (δηλαδή αμέσως μετά την κλήση του αντίστοιχου API του λειτουργικού συστήματος).

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

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

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

Έτσι, μόνο το θέμα ενός περιοδικού όπως WAL.

Λειτουργία καταγραφής WAL
Από προεπιλογή, η λειτουργία καταγραφής της βάσης δεδομένων "επιστρέφει" πάντα σε ΔΙΑΓΡΑΦΩ. Ας υποθέσουμε ότι ανοίξαμε μια σύνδεση με τη βάση δεδομένων και ορίσαμε τη λειτουργία ΕΠΙΜΕΝΩ. Άλλαξαν δεδομένα, κλειστή σύνδεση.

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

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

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

Γιατί λοιπόν χρειάζεται;

Το SQLite σχεδιάστηκε αρχικά ως μια ενσωματωμένη βάση δεδομένων. Η αρχιτεκτονική για την κοινή χρήση ταυτόχρονης πρόσβασης σε δεδομένα σχεδιάστηκε πρωτόγονα: πολλές συνδέσεις μπορούν ταυτόχρονα να διαβάζουν τη βάση δεδομένων, αλλά να γράφουν σε αυτή τη στιγμήΜπορεί να υπάρχει μόνο μία σύνδεση κάθε φορά. Αυτό σημαίνει τουλάχιστον ότι σύνδεση γραφήςπεριμένει να «απελευθερωθεί» η βάση δεδομένων από τους αναγνώστες. Όταν προσπαθείτε να γράψετε σε μια «απασχολημένη» βάση δεδομένων, η εφαρμογή λαμβάνει ένα σφάλμα SQLITE_BUSY(δεν πρέπει να συγχέεται με SQLITE_LOCKED!). Αυτός ο μηχανισμός κοινής χρήσης επιτυγχάνεται μέσω του API κλειδώματος αρχείων (το οποίο δεν λειτουργεί καλά μονάδες δίσκου δικτύου, επομένως δεν συνιστάται η χρήση του SQLite εκεί. )

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

  1. Λειτουργικότητα. Δυνατότητα δημιουργίας πινάκων, κανόνων, ευρετηρίων κ.λπ.
  2. Λειτουργεί σωστά με την κωδικοποίηση UTF-8
  3. Τιμή. Είναι επιθυμητό, ​​φυσικά, η τιμή να είναι μηδενική, αλλά μέσα σε λογικά πλαίσια μπορείτε να ξεχωρίσετε λίγο.
  4. Διαθεσιμότητα ρωσικής διεπαφής. Δεν είναι σημαντικό, αλλά είναι ακόμα πιο βολικό να εργάζεστε με το πρόγραμμα στη μητρική σας γλώσσα.
  5. Ευκολία. Δεν θα ήθελα να περάσω πολύ χρόνο ψάχνοντας στη διεπαφή απαραίτητες λειτουργίες.

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

Πρόγραμμα περιήγησης βάσης δεδομένων SQLite

Τιμή: δωρεάν

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

Χρησιμοποιώντας το "SQLite Database Browser" μπορείτε:

  1. προβολή δομής βάσης δεδομένων
  2. δημιουργήστε νέους πίνακες χρησιμοποιώντας τον οδηγό
  3. δημιουργία ευρετηρίων
  4. προβολή δεδομένων σε πίνακες και εκτέλεση βασικών ερωτημάτων SQL (το πρόγραμμα κολλάει τελείως κατά την εκτέλεση ερωτημάτων όπως "ΔΗΜΙΟΥΡΓΙΑ ΕΝΔΥΝΑΜΙΣΗΣ...").

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

SQLite3 manager LITE

Ιστότοπος κατασκευαστή: http://www.pool-magic.net/sqlite-manager.htm

Τιμή: Lite έκδοσηδιανέμονται δωρεάν .

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

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

U δωρεάν έκδοσηυπάρχει ένα μειονέκτημα - δεν κατανοεί τα δεδομένα που κωδικοποιούνται στο UTF-8. Είναι, φυσικά, δυνατό να καθοριστεί η κωδικοποίηση της βάσης δεδομένων κατά το άνοιγμα ενός αρχείου, αλλά το UTF-8 δεν περιλαμβάνεται στη λίστα κωδικοποιήσεων. Δεν είδα ποτέ πώς λειτουργεί η πλήρης έκδοση του προγράμματος, γιατί... στην ιστοσελίδα του κατασκευαστή ο διάβολος σπάει το πόδι του. Υπάρχει κάποιο είδος ακατανόητης javascript που κρέμεται, που εμφανίζει ακατανόητες πληροφορίες. Σε γενικές γραμμές, η εντύπωση ήταν ότι το έργο είχε σταματήσει με επιτυχία.

Διαχειριστής SQLite

Τιμή: δωρεάν

Αρκετά εύκολο στη χρήση και λειτουργικό πρόγραμμα. Ολόκληρη η δομή της βάσης δεδομένων παρουσιάζεται με τη μορφή ενός δέντρου αντικειμένων, το οποίο μπορεί να προσαρμοστεί ανάλογα με τις προτιμήσεις σας. Προφανώς το SQLite Administrator είναι γραμμένο χρησιμοποιώντας . Μεταξύ των πρόσθετων λειτουργιών του προγράμματος είναι η δημιουργία κώδικα Delphi από ένα επιλεγμένο τμήμα SQL. Για να δημιουργήσετε πίνακες, εναύσματα κ.λπ. χρησιμοποιούνται βολικοί μάγοι. Όταν χρησιμοποιούσα αυτό το πρόγραμμα, ήμουν πολύ απογοητευμένος από την έλλειψη ευκαιρίας κανονική λειτουργίαμε UTF-8 και, ελαφρώς, αλλά ακόμα κάπως χάλασε την εντύπωση της ρωσικής διεπαφής - ορισμένες επιγραφές δεν ταιριάζουν στον χώρο που τους έχει παραχωρηθεί. Έτσι κατά τη δοκιμή χρησιμοποίησα τα προεπιλεγμένα αγγλικά.

Εάν η χρήση του UTF-8 δεν είναι σημαντική για εσάς, κάντε λήψη Διαχειριστής SQLite - δεν θα το μετανιώσεις.

SQLiteManager

Τιμή: $49 έκδοση επίδειξης διαθέσιμη

SQLiteManager σαν προηγούμενο πρόγραμμαέχει αρκετά φιλική προς το χρήστη διεπαφή, κατανοεί τέλεια το UTF-8 και, μαζί με αυτό, έχει μια σειρά από τα δικά του «κόλπα». Μεταξύ των οποίων:

  1. SQL Query Analyzer
  2. Έλεγχος ακεραιότητας βάσης δεδομένων
  3. Βελτιστοποίηση βάσης δεδομένων
  4. Η δυνατότητα χρήσης των δικών σας σεναρίων στο πρόγραμμα (κατά τη γνώμη μου, VBScript) για τη βελτίωση της χρηστικότητας.

ΝΑ πρόσθετες λειτουργίεςΤο πρόγραμμα περιλαμβάνει τη δυνατότητα δημιουργίας αναφορών στη βάση δεδομένων. Η δοκιμαστική έκδοση έχει τους δικούς της αυστηρούς περιορισμούς στα ερωτήματα, για παράδειγμα, μόνο οι πρώτες 20 εγγραφές από το σύνολο περιλαμβάνονται στα αποτελέσματα SELECT. Όσον αφορά την ευκολία χρήσης, η εντύπωση χάλασε πολύ από το τρεμόπαιγμα κατά την επανασχεδίαση των παραθύρων. Ο υπολογιστής μου δεν είναι τόσο παλιός, αλλά ακόμα και με 512 Mb τα παράθυρα βίντεο αναβοσβήνουν αισθητά.

SQLite Maestro

Τιμή: από 79$ υπάρχει δοκιμαστική έκδοση για 30 ημέρες .

Σε γενικές γραμμές, η σειρά προϊόντων από SQL Maestro σύνολα τεράστιο ποσόπροϊόντα για τη διαχείριση μιας μεγάλης ποικιλίας βάσεων δεδομένων, συμπεριλαμβανομένου του SQLite. Η πρώτη εντύπωση του προγράμματος είναι ένα καλοφτιαγμένο παιχνίδι για περισυλλογή από έξω. Ναί SQLite Maestro έχει όλη τη λειτουργικότητα που χρειαζόμουν, ένα βολικό δέντρο αντικειμένων βάσης δεδομένων, τη δυνατότητα γρήγορης δημιουργίας διαφόρων αντικειμένων βάσης δεδομένων κ.λπ., αλλά μετά από αυτό είναι αρκετά εύκολο στη χρήση Διαχειριστής SQLite η εμφάνιση μπερδεμένων μενού πολλαπλών επιπέδων με ένα σωρό διαφορετικές επιλογές που, σε γενικές γραμμές, δεν χρειάζονται κατ 'αρχήν, κατά κάποιο τρόπο γίνεται ανατριχιαστικό να δουλεύεις με αυτό το πρόγραμμα. Για αυτό το λόγο, ορίστηκε στο 1 για λόγους ευκολίας. Η τιμή δεν ήταν επίσης ιδιαίτερα ευχάριστη - 79 $. Για μένα, θα ήταν καλύτερο να απλοποιήσουν τη διεπαφή και να μειώσουν την τιμή στα 50 $ τουλάχιστον, τότε θα μπορούσα να σκεφτώ να το αγοράσω.

SQLite Expert

Τιμή: Προσωπική έκδοση - δωρεάν, Επαγγελματική έκδοση- από 38 $

Γενικά, για μένα δεν υπάρχουν πάρα πολλές διαφορές μεταξύ των εκδόσεων Προσωπικός από Επαγγελματίας . Για να γίνει η δουλειά SQLite Expert δεν πήρε περισσότερο από πέντε λεπτά. Το πρόγραμμα έχει όλο το σύνολο των λειτουργιών που χρειαζόμουν. Σαν SQLiteManager Expert μπορεί να ελέγξει την ακεραιότητα της βάσης δεδομένων, να εξάγει δεδομένα σε CSV ή άλλες μορφές βάσης δεδομένων, έχει βολικός επεξεργαστής SQL, οδηγοί για τη δημιουργία πινάκων, ευρετηρίων, ενεργοποιητών κ.λπ. Η πρόσβαση στις λειτουργίες του προγράμματος είναι κάπως πιο δύσκολη από Διαχειριστής SQLite , αλλά όχι τόσο που να σε τρομάζει μόνο με την εμφάνισή σου :). Σε γενικές γραμμές, επέλεξα SQLite Expert Personal .

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

Ράφι

Ονομα:Βάσεις δεδομένων και Δελφοί. Θεωρία και πράξη

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

Αγορά με λίτρα 383 τρίψτε.
Συγγραφέας: Anatoly Khomonenko, Vladimir Gofman
Ονομα:Εργασία με βάσεις δεδομένων στους Δελφούς
Περιγραφή: Συζητά τη χρήση των εργαλείων Delphi για την ανάπτυξη εφαρμογών βάσεων δεδομένων. Δίνονται οι έννοιες των βάσεων δεδομένων, χαρακτηρίζονται τα στοιχεία και περιγράφονται τα στάδια σχεδιασμού σχεσιακών βάσεων δεδομένων, σκιαγραφείται η τεχνολογία ανάπτυξης πληροφοριακά συστήματα, καλύπτει τεχνικές για την εργασία με δεδομένα, τη δημιουργία πινάκων και εφαρμογών βάσεων δεδομένων και την προετοιμασία αναφορών.
Αγορά με λίτρα 151 τρίψτε.

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

Ποια δωρεάν προγράμματα μπορούν να ανοίξουν αρχείο sqlite

  1. SQLite δωρεάν εφαρμογή, το οποίο σας επιτρέπει να δημιουργείτε, να προβάλλετε και να επεξεργάζεστε βάσεις δεδομένων σε sqlite και άλλες μορφές. Αξίζει να σημειωθεί ότι αυτή η εφαρμογή είναι απλώς μια βιβλιοθήκη στην οποία προστίθεται το ίδιο το πρόγραμμα. Το βοηθητικό πρόγραμμα δεν θα αλληλεπιδράσει άμεσα με το σύστημα. Το μέγιστο επιτρεπόμενο μέγεθος βάσης δεδομένων για εργασία είναι 2 TB
  2. - δωρεάν επεξεργαστής κειμένου, είναι ουσιαστικά μια βελτιωμένη έκδοση του σημειωματάριου. Υποστηρίζει τη σύνταξη όλων των δημοφιλών (και όχι δημοφιλών) γλωσσών προγραμματισμού, μετατροπή κωδικοποίησης, εισαγωγή της «βάσης» του εγγράφου (με βάση την επέκταση στην οποία είναι αποθηκευμένο το έγγραφο) και επίσης πολύ βολική λειτουργίαδιαχωρισμός παραθύρων.
  3. δωρεάν βοηθητικό πρόγραμμαγια επεξεργασία αρχεία κειμένου. Η διεπαφή της εφαρμογής είναι παρόμοια με τη διεπαφή του σημειωματάριου, αλλά παρέχει πολλές περισσότερες λειτουργίες. Μεταξύ αυτών υπάρχουν λειτουργίες όπως η αναζήτηση ενός εγγράφου, η αλλαγή κωδικοποίησης, η εκτύπωση και διάφορες κωδικοποιήσεις.
  4. Το Notepad είναι ο απλούστερος επεξεργαστής κειμένου που περιλαμβάνεται σε τυπικό σετ εφαρμογές Windows. Επικεντρώνεται κυρίως σε μορφή txt, αλλά μπορείτε να το χρησιμοποιήσετε για να ανοίξετε οποιαδήποτε έγγραφα με σήμανση κειμένου. Η μορφοποίηση, οι παραγράφοι και η εισαγωγή γραφικών δεν υποστηρίζονται.


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

Κορυφή