DZWON

Są tacy, którzy czytają tę wiadomość przed wami.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu

Pracujesz z bazami danych SQL? Wtedy ta aplikacja na pewno Ci się przyda - z jej pomocą możesz przeglądać, edytować i zapisywać bazy danych w dowolnej aplikacji.

Cechy:

Edytor SQLite nie wymaga domyślnych praw administratora. Ale bez nich pozwoli na edycję i zapisanie zmodyfikowanych baz danych tylko tych aplikacji, które są zainstalowane na MicroSD.

Z prawami roota możesz z kolei aktualizować bazy danych dowolnych aplikacji - także tych znajdujących się w pamięci wewnętrznej.

Program doskonale współgra z funkcjonalnością menedżer plików „RutExplorer”. Z jego pomocą można wygodnie otwierać bazy danych w aplikacji przeglądając je w katalogu.

Ponadto katalog plików umożliwia dodawanie plików SQL do ulubionych, co ułatwia ich wyszukiwanie. Udostępnia również historię (jest też w samej aplikacji), w której znajdują się informacje o ostatnich ścieżkach.

Rejestracja

Program przenosi tylko obciążenie funkcjonalne. Dlatego możesz zapomnieć o pięknościach interfejsu. Główne menu prezentowane jest w surowej kolorystyce granatowo-czarnej.

Prosta czcionka i ikony pseudo-wolumetryczne to kolejne funkcje interfejsu.

Ponadto nie ma rosyjskiej lokalizacji. Nie przeszkadza to jednak doświadczonym użytkownikom w poruszaniu się po zestawie narzędzi narzędzia.

To wygodny program stanie się niezawodnym pomocnikiem dla maniaków i zaawansowanych użytkowników, którzy chcieliby dokonywać zmian w aplikacjach bezpośrednio na swoim urządzeniu mobilnym.

SQLite to kompaktowa wbudowana relacyjna baza danych. Kod źródłowy biblioteki został udostępniony jako własność publiczna. W 2005 roku projekt otrzymał nagrodę Google-O'Reilly Open Source Awards.

Słowo „osadzony” oznacza, że \u200b\u200bSQLite nie używa paradygmatu klient-serwer, to znaczy silnik SQLite nie jest osobnym procesem, z którym program współdziała, ale zapewnia bibliotekę, z którą program jest połączony, a silnik staje się część programy. Zatem wywołania funkcji (API) biblioteki SQLite są używane jako protokół wymiany. Takie podejście zmniejsza koszty ogólne, skraca czas odpowiedzi i upraszcza program. SQLite przechowuje całą bazę danych (w tym definicje, tabele, indeksy i dane) w jednym standardowym pliku na komputerze, na którym działa program. Łatwość implementacji uzyskuje się dzięki temu, że przed rozpoczęciem wykonywania transakcji zapisu cały plik przechowujący bazę danych zostaje zablokowany; Funkcje ACID są również osiągane poprzez utworzenie pliku dziennika.

Kilka procesów lub wątków może jednocześnie bez problemu odczytywać dane z jednej bazy danych. Zapis do bazy danych można wykonać tylko wtedy, gdy nie ma innych żądań w ten moment nieobsługiwany; w przeciwnym razie próba zapisu nie powiedzie się i do programu zostanie zwrócony kod błędu. Innym wariantem rozwoju zdarzeń jest automatyczne powtarzanie prób rejestracji w określonym przedziale czasu.

W zestawie znajduje się również funkcjonalna część kliencka w postaci wykonywalnego pliku sqlite3, która demonstruje implementację funkcji biblioteki głównej. Po stronie klienta działa od wiersz poleceń, umożliwia dostęp do pliku bazy danych w oparciu o typowe funkcje systemu operacyjnego.

Dzięki architekturze silnika możliwe jest wykorzystanie SQLite zarówno na systemach wbudowanych, jak i na dedykowanych maszynach z gigabajtowymi macierzami danych.

SQLite obsługuje dynamiczne wpisywanie danych. Możliwe typy pól: INTEGER, REAL, TEXT, BLOB.

Korzystanie z SQLite

Sama biblioteka SQLite jest napisana w C; istnieje wiele powiązań z innymi językami programowania, w tym Delphi, C ++, Java, C #, Visual Basic .NET, Perl, PureBasic, Tcl (narzędzia Tcl są dołączone do SQLite), Haskell, Scheme, Smalltalk i Parser, a także wiele innych. Pełna lista istniejących narzędzi jest umieszczona na stronie projektu.

Łatwość i łatwość osadzania SQLite doprowadziła do tego, że biblioteka jest używana w przeglądarkach, odtwarzaczach muzyki i wielu innych programach.

W szczególności SQLite używa:

  • - środowisko do uruchamiania aplikacji (częściowo);
  • Autoit;
  • Struktura;
  • Framework Yii; (W magazynie);
  • Framework XUL oparty na Gecko 1.9+, 1.9+ i potencjalnie wszystkie aplikacje oparte na tym frameworku, w tym:
  • Niektóre modele nawigatorów GPS Garmin;
  • Android API;
  • Minetest.

Wiele programów obsługuje SQLite jako format przechowywania danych (szczególnie w systemach Mac OS i iOS, Android), w tym:

  • 1C: Enterprise 7.7 (przy użyciu komponentu zewnętrznego);
  • 1C: Enterprise 8.3 (do przechowywania wpisów dziennika);
  • Adobe Photoshop Lightroom
  • Eserv;
  • Punkt F;
  • (od wersji 3.0);
  • Daminion;

SQLite Expert Personal to wygodne narzędzie do tworzenia i zarządzania wieloma bazami danych SQLite3 z prostym interfejsem i możliwością edycji tabel, a także wykonywania zapytań i skryptów. Program jest przydatny zarówno przy tworzeniu nowych baz danych, jak i przy budowaniu i edycji złożonych zapytania SQL... Główne okno wyświetla wszystkie podłączone bazy danych i tam możesz uruchamiać własne skrypty za pomocą Query Builder. Możesz łatwo modyfikować wszystkie pola, klucze obce, indeksy, ograniczenia i wyzwalacze.

Przy pierwszym uruchomieniu program wybierze domyślny alias bazy danych, następnie możesz go zmienić według własnych upodobań lub otworzyć istniejącą bazę danych w menu „Plik”. Następnie możesz przeglądać i edytować wszystkie tabele, wybierając je w okienku o strukturze drzewiastej po lewej stronie. Dodatkowo SQLite Expert daje użytkownikowi możliwość indeksowania wszystkich tabel lub importu / eksportu danych w innych formatach.

Główne różnice w stosunku do wersji polegają na tym, że ta wersja jest całkowicie bezpłatna do dowolnego użytku, ale ma nieco ograniczoną funkcjonalność (wersja Pro ma więcej możliwości pracy z funkcjami SQLite).

Kluczowe cechy i funkcje

  • program jest całkowicie darmowy zarówno do użytku prywatnego, jak i komercyjnego;
  • prosty przyjazny interfejs;
  • edytor wizualny dla SQL Query Builder;
  • możliwość przenoszenia danych do różnych formatów;
  • wygodne narzędzia do edycji danych;
  • obsługa Unicode;
  • wsparcie dla dodatków SQLite.

SQLite Jest to biblioteka zawierająca całkowicie niezależny, transakcyjny silnik bazy danych SQL. Nie wymaga instalacji ani konfiguracji systemu. Ponadto nie ma potrzeby konfigurowania serwera, nie ma potrzeby jego uruchamiania ani zatrzymywania, ani tworzenia nowa baza dane. Kolejnym plusem jest to, że działa po kolei, rozpoczynając i kończąc każdą część osobno, co jest przydatne w przypadku błędu lub awarii systemu. Dzięki temu dane nie zostaną utracone, ale zapisane i będą dalej działać. SQL jest najpopularniejszą bazą danych na świecie i jest bardzo powszechna. Ma całkowicie otwarty kod źródłowy, który jest dostępny dla każdego użytkownika.



- SQLite to narzędzie przeznaczone do pracy z bazami danych dowolnego typu.
- Jest całkowicie samowystarczalny, co oznacza, że \u200b\u200bdo poprawnego działania nie potrzebuje dodatkowych narzędzi ani bibliotek.
- transakcyjny, który maksymalizuje uniknięcie utraty danych w przypadku awarii systemu, programu lub awarii zasilania, wyłączając komputer.
- Działa bez konieczności tworzenia i konfigurowania serwera, więc nie musisz niczego uruchamiać.
- Nie wymaga wstępnej instalacji, bez instalatora.
- Administratorzy nie muszą tworzyć nowej bazy danych.
- SQL jest bardzo popularnym i jednym z najbardziej elastycznych narzędzi do pracy z bazami danych.
- Narzędzie jest całkowicie open source, które jest dostępne dla każdego.

Wady programu

- Nie ma języka rosyjskiego.

- Procesor z częstotliwością zegara 800 MHz lub wyższą.
- Baran 128 MB lub więcej.
- 1 MB wolnego miejsca na dysku.
- Architektura 32-bitowa lub 64-bitowa (x86 lub x64).
- system operacyjny Windows XP, Windows Vista, Windows 7, Windows 8

DBMS: tabele porównawcze

Nazwa programu Po rosyjsku Dystrybucje Instalator Popularność Rozmiar Indeks
★ ★ ★ ★ ★ 286,7 Mb 100
★ ★ ★ ★ ★ 0,5 Mb 97

Postanowiłem napisać artykuł o SQLite, w którym chciałbym podsumować moje 3-letnie doświadczenie w korzystaniu z tej bazy danych pod Windows. Widzę, że temat jest popularny, ale informacji jest mało.

Małe wprowadzenie.

Ten artykuł nie jest przeznaczony dla początkujących programistów.
To nie jest tutorial SQL.
Nie zaleca używania SQLite.
Nie jest zwolennikiem używania SQLite.
Artykuł jest napisany w formie pytań od hipotetycznego nowicjusza w SQLite i odpowiedzi na nie (ponieważ informacji jest bardzo dużo, a nawet trochę łatwiej jest je uporządkować).

Co to jest SQLite?
SQLite to osadzona wieloplatformowa baza danych, która obsługuje dość kompletny zestaw poleceń SQL i jest dostępna w kodzie źródłowym (w języku C).

Kody źródłowe SQLite są w domenie publicznej, co oznacza, że \u200b\u200bnie ma żadnych ograniczeń użytkowania.

Strona internetowa (z doskonałą dokumentacją w języku angielskim): http://sqlite.org

Aktualna wersja: 3.7.13

SQLite można skompilować samodzielnie, ale pobieram go już skompilowany jako DLL systemu Windows.

Do własnego montażu najczęściej pobierają tzw. Połączenie
te. Źródła SQLite jako pojedynczy plik w C + sqlite3.h.

Aby zmniejszyć rozmiar kodu SQlite, wyrzucając niepotrzebne drobiazgi, używane są wszelkiego rodzaju DEFINE.

Jak popularny jest SQLite?
Krótko mówiąc: jest wszędzie. Przynajmniej na każdym smartfonie.
Jak niezawodne jest to?
Bardzo. Kiedy wersja zostaje wydana, przechodzi przez serię poważnych automatycznych testów (wykonywanych jest około 2 miliony testów), pokrycie kodu testami wynosi 100% (od sierpnia 2009).
Jakie inne narzędzia zapewniają programiści?
Dostępne jest narzędzie konsoli do pracy z bazami danych (sqlite3.exe, „powłoka wiersza poleceń do uzyskiwania dostępu do baz danych SQLite i ich modyfikowania”).
Czy to wszystko?
Tak, od głównych programistów - wszystko. Jednak inni ludzie piszą różnego rodzaju menedżerów itp.
Osobiście nigdy nie znalazłem idealnego i nie korzystam z konsoli.
Co oznacza „dość kompletny zestaw SQL”?
Jak wiecie, w swoim rozwoju SQL pospieszył w różnych kierunkach. Główni producenci zaczął wkuwać wszelkiego rodzaju rozszerzenia. I chociaż akceptowane są wszystkie rodzaje standardów (SQL 92), w rzeczywistości wszystkie duże bazy danych nie w pełni obsługują standardy + mają coś własnego. Tak więc SQLite stara się żyć zgodnie z zasadą „minimalnego, ale pełnego zestawu”. Nie obsługuje skomplikowanych rzeczy, ale jest prawie zgodny z SQL 92.
I wprowadza pewne własne cechy, które są bardzo wygodne, ale nie standardowe.
Co dokładnie może być mylące w obsłudze SQL?
Nie możesz usunąć ani zmienić kolumny w tabeli (ALTER TABLE DROP COLUMN…, ALTER TABLE ALTER COLUMN…).
Istnieją wyzwalacze, ale nie są tak potężne, jak duże RDBMS.
Dostępna jest obsługa kluczy obcych, ale domyślnie jest WYŁĄCZONA.
Nie ma wbudowanej obsługi UNICODE (ale generalnie nie jest to trudne do osiągnięcia).
Nie ma żadnych procedur składowanych.
A co jest dobre, a co niezwykłe?
a) każdy rekord zawiera wirtualną kolumnę rowid, która jest 64-bitową liczbą (unikalną dla tabeli).
Możesz zadeklarować własną kolumnę INTEGER PRIMARY KEY, a wtedy ta kolumna stanie się rowid (z własną nazwą, nazwa rowid nadal działa).
Podczas wstawiania rekordu możesz określić identyfikator wiersza lub pominąć go (a system wstawi wtedy unikalny).
Szczegóły: www.sqlite.org/autoinc.html
b) możesz łatwo zorganizować bazę danych w pamięci (jest to bardzo wygodne i powie Ci więcej szczegółów później);
c) łatwe do przeniesienia: domyślnie baza danych jest jednym plikiem (w formacie wieloplatformowym);
d) rodzaj kolumny nie determinuje rodzaju przechowywanej wartości w tym polu rekordu, to znaczy do dowolnej kolumny można wprowadzić dowolną wartość;
e) wiele wbudowanych funkcji (które mogą być używane w SQL): www.sqlite.org/lang_corefunc.html;
Nie rozumiem - co jest nie tak z typem? Dlaczego w ogóle potrzebujemy typu kolumny?
Typ kolumny określa sposób porównywania wartości (trzeba je rzutować na ten sam typ podczas porównywania, powiedzmy, w indeksie).
Nie zobowiązuje jednak do wpisywania tego typu wartości do kolumny. Coś jak słabe pisanie.

Powiedzmy, że zadeklarowaliśmy kolumnę jako „A INTEGER”.
SQlite umożliwia wprowadzenie dowolnego typu wartości do tej kolumny (999, „abc”, „123”, 678,525).
Jeśli wstawiona wartość nie jest liczbą całkowitą, SQlite próbuje rzutować ją na liczbę całkowitą.
Te. ciąg „123” zamieni się w liczbę całkowitą 123, a pozostałe wartości zostaną zapisane „tak jak jest”.

Więc nie musisz w ogóle określać typu kolumny?
Robi się to bardzo często: UTWÓRZ TABELĘ foo (a, b, c, d).
A co z architekturą? Nie ma serwera?
Nie ma serwera, sama aplikacja jest serwerem. Dostęp do bazy danych następuje poprzez „połączenia” z bazą danych (coś w rodzaju uchwytu pliku OS), które otwieramy, wywołując odpowiednie funkcje DLL... Podczas otwierania wskazywana jest nazwa pliku bazy danych. Jeśli czegoś takiego nie ma, jest tworzone automatycznie.
Dopuszczalne jest otwieranie wielu połączeń z tą samą bazą danych (poprzez nazwę pliku) w tej samej lub różnych aplikacjach.
Aby to wszystko działało, system wykorzystuje mechanizmy blokowania dostępu do plików na poziomie systemu operacyjnego
(te mechanizmy zwykle nie działają dobrze w przypadku dyski sieciowe, więc nie zaleca się używania SQlite z plikiem w sieci).
Początkowo SQlite działał na zasadzie „wiele czytanych, jeden pisze”.
Oznacza to, że w danym momencie do bazy danych zapisuje się tylko jedno połączenie. Jeśli inne połączenia również spróbują zapisać, złapią błąd SQLITE_BUSY.
Możesz jednak wprowadzić limit czasu dla operacji. Następnie połączenie, w obliczu zajętości bazy danych, będzie czekać N sekund, zanim zakończy się niepowodzeniem z błędem SQLITE_BUSY.
A jak być?
Jedno połączenie i wszystkie żądania za jego pośrednictwem lub kontynuuj po przekroczeniu limitu czasu i zapewnij ponowienie wykonania kodu SQL.
Jest jeszcze jedna możliwość: nie tak dawno się pojawiła nowy rodzaj Dziennik SQlite: Dziennik zapisu z wyprzedzeniem, WAL.
Jeśli włączysz ten konkretny tryb dziennika dla bazy danych, kilka połączeń będzie mogło jednocześnie modyfikować bazę danych.
Ale w tym trybie baza danych zajmuje już kilka plików.
Cóż, teraz jest jasne, dlaczego SQLite jest okropny, skoro nie ma GLOBALNEJ CACHE?
Rzeczywiście, wszystkie nowoczesne systemy RDBMS są nie do pomyślenia bez globalnej współdzielonej pamięci podręcznej, która może przechowywać różnego rodzaju rzeczy, takie jak skompilowane sparametryzowane zapytania. To jest zajęte przez serwer, którego tu nie ma. Jednak w ramach jednej aplikacji SQlite może współdzielić pamięć podręczną między kilkoma połączeniami (czytaj tutaj: www.sqlite.org/sharedcache.html) i oszczędzać trochę pamięci.
Dlaczego wszyscy narzekają, że SQLite działa wolno?
Dwa powody. Pierwsza to ustawienia domyślne. Pracują dla niezawodności, a nie wydajności.
Drugi to niezrozumienie mechanizmu zatwierdzania transakcji. Domyślnie, po każdym poleceniu, SQlite zatwierdzi transakcję (to znaczy zaczeka, aż baza danych będzie w stanie spójnym, aby wyłączyć zasilanie). W zależności od trybu paranoi, SQLite poświęci na to od 50 do 300 ms (czekając na zakończenie zapisu danych na dysku).
Co powinienem zrobić? Muszę wstawić 100 000 rekordów i to szybko!
Usuń indeksy, włącz tryb synchronizacji WYŁĄCZONY (lub NORMALNY), wstaw porcje N tysięcy (N - podnieś, weź 5000 na start). Przed wstawieniem porcji zrób BEGIN TRANSACTION, po - COMMIT.
Ale znalazłem błąd! Jak zgłosić?
Nie ma mowy.

Faktem jest, że popularność SQLite jest straszna - jest wszędzie. Nie żartuję.
Deweloperzy stanęli w obliczu lawiny komunikatów o błędach, które były spowodowane nieporozumieniami lub ukrytymi żądaniami funkcji. W rzeczywistości zamknęli bezpośredni odbiór raportów z błędami.
Warto więc zapisać się na listę mailingową i opisać tam problem i mieć nadzieję, że wszystko będzie dobrze.

Osobiście miałem sytuację, którą zinterpretowałem jako usterkę SQLIte. Opisałem to na liście mailingowej. W następnej wersji poprawiono zachowanie SQLite.

Poręczne narzędzie do zabawy z SQLite.

Ciąg dalszy nastąpi.

Tagi: dodawanie tagów

DZWON

Są tacy, którzy czytają tę wiadomość przed wami.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu