JZKdb: Nowy system bazy danych

Poniższy dokument zawiera informacje techniczne, przydatne dla zaawansowanych użytkowników. Informacje dotyczące formatu 2011 i JZKdb mogą dotyczyć Pakietu JZK w wersjach, które jeszcze nie są publicznie dostępne. Wszystkie informacje podane na tej stronie to dane robocze i będą ulegać zmianie w czasie prac nad systemem.

Zobacz więcej o nowym formacie baz danych.

Format baz danych

Bazy danych JZK dostępne są w kilku formatach. Bazy w typowym formacie strumieniowym zapisywane są w plikach o rozszerzeniach DAT, na przykład faktury.dat. Format strumieniowy ma kilka wariantów, rozpoznawany automatycznie przez program w czasie odczytu bazy.

UWAGA. Uruchomienie nowej wersji programu powoduje automatyczną konwersję baz danych na nowy format JZK@2011. Poprzednie bazy danych w formacie *.dat zostaną zachowane w aplikach o nazwie .dat.stara. Otworzenie w starszej wersji programu po dokonaniu konwersji wymaga przeniesienia tych baz do innej lokalizacji i zmiany nazwy plików z powrotem na .dat. Zalecamy wykonanie kopii zapasowej, co zresztą należy robić codziennie.

Format strumieniowy 97

Klasyczny liniowy format binarny, w którym obiekty zapisywane są w prostym stumieniu. W pliku bazy danych zapisana jest po prostu kolekcja obiektów stanowiących listę. Każdy obiekt zaczyna się od dwubajtowego identyfikatora obiektu, po nim następują dane. Każdy obiekt sam wie, jak odczytać siebie ze strumienia. Obiekty w strumieniu położone są bezpośrednio jeden za drugim, stąd dopisanie jednej litery w nazwie jednego towaru powoduje zwiększenie rozmiaru pliku towary.dat dokładnie o 1 bajt. Usunięcie obiektu automatycznie zmniejsza rozmiar pliku, dodanie obiektu odpowiednio zwiększa.

Niektóre obiekty zawierają w sobie oprócz własnych danych, również kolekcje innych obiektów, na przykład obiekt Faktura zawiera n obiektów Towar, stanowiących pozycje faktury. Obiekty mogą być bardziej zagnieżdżone, na przykład Książka zawiera Miesiące, z których każdy zawiera serię Wpisów. Większość obiektów zawiera także w sobie rekord Dane, zawierający dane kontrahenta. Każda kolekcja może zawierać maksymalnie ok. 32 tysiące elementów. Podczas pracy programu cała kolekcja jest wczytywana do pamięci i tam obrabiana.

Format strumieniowy JZK-2006

W wersji 2006 format został rozszerzony o opcjonalne informacje dodatkowe, w tym o haśle i uprawnieniach. Zmieniono także typ danych rejestrujących ilość obiektów dostępnych w pliku, obiekty mogą być też luźno dopisywane na końcu strumienia, co pozwala na spokojniejsze dodawanie danych w sieci. Limit danych jest zwiększony do ok. 64 tysięcy w jednym pliku. Nadal całość strumienia wczytywana jest do pamięci, a rozmiar pliku fluktuuje w trakcie edycji danych.

Format JZK-2011

W formacie 2011 zmienia się format pliku DAT. Nadal każdy obiekt zapisuje sam siebie, ale robi to we własnym, prywatnym strumieniu. Na początku pliku zawarta jest teraz tablica alokacji, wskazująca początek i koniec każdego obiektu - stąd możliwy jest sekwencyjny dostęp do poszczególnych obiektów. Usunięcie obiektu powoduje jedynie dodanie znacznika usunięcia w tablicy alokacji, dodanie lub edycja obiektu powoduje dopisanie nowego obiektu w wolnym miejscu w strumieniu i dodanie odpowiedniego wpisu w tablicy alokacji.

Zobacz więcej o nowym formacie baz danych.

Format JZKdb

Nowy, od zera opracowany format baz danych, dopasowany do potrzeb nowoczesnych aplikacji. Plik JZKdb zawiera w sobie lużno upakowane strumienie formatu 2011. W odróżnieniu od formatu strumieniowego, tutaj każdy obiekt ma swój identyfikator i każdy obiekt jest zapisywany luzem. Pozwala to na lepsze zarządzanie przestrzenią i zdejmuje jakikolwiek ograniczenia. Teoretyczna ilość obiektów to nieco ponad 2 miliony pozycji. Rozmiar pliku stanowi wielokrotność 1MB (okrągłe 1048576 bajtów), co najczęściej daje dużo wolnego miejsca do wykorzystania podczas swobodnej pracy.

"Znajomy do programisty: - Pożycz mi 500 złotych."
Programista: - Dobra, masz tu 512 dla równego rachunku." :)

Technologie

W nowych bazach danych formatu JZK wykorzystano najnowsze dostępne technologie, poparte solidną porcją wiedzy teoretycznej i wieloletnim doświadczeniem naszych programistów, a przede wszystkim doświadczeniami użytkowników aplikacji JZK.

Kontrola wersji

Każdy obiekt w bazie posiada znacznik wersji, inkrementowany po każdej edycji, a także znacznik czasu ostatniego odczytu i zapisu. Zaimplementowana zostanie w ten sposób funkcja kontroli współbieżności wersji MVCC opartej o znacznik czasu. MVCC opiera się na działaniu nie na oryginale, ale na kopii obiektu, który zapisywany jest w nowej wersji w nowej lokalizacji. W tym czasie inne egzemplarze aplikacji mogą spokojnie kontynuować pracę na kopii, która zawiera dane sprzed zmiany. Na podobnym systemie opierają się najpopularniejsze systemy baz danych. Zamiast blokowania całej bazy lub nawet tylko jej fragmentów, wystarczy wyłącznie weryfikacja, czy obiekt poddawany edycji nie został faktycznie zmodyfikowany przez inną kopię programu.

Transakcyjność

Współzależne operacje (np. wystawienie faktury z jednoczesnym ściągnięciem stanów magazynowych) zostają w pełni połączone w transakcje, z jawnym rozpoczęciem i zakończeniem. Poztywne zakończenie jest możliwe tylko wtedy, gdy rekody podlegające transakcji nie uległy zmianie (czyli nr wersji i data zapisu jest identyczna jak przy starcie transakcji). Jeśli nie, transakcja jest anulowana. Daje to pełną implementację standardu ACID.

Spójność bazy

Cała baza danych znajdzie się w jednym pliku, którego nazwa równa będzie nazwie tożsamości, na przykład Nowa.JZKdb. Wszystkie dotychczasowe bazy (faktury, towary, kontrahenci itd) zaimplementowane zostaną jako kolekcje obiektów wewnątrz pliku bazy danych.

Trwałość danych

Każdego dnia zapisywana będzie pełna kopia bazy danych o nazwie nazwa-data.JZKdb, co z automatu daje nam pełnokrwistą kopię zapasową. Na koniec dnia baza podlegać będzie spakowaniu, co również w przypadku jednego pliku jest proste i szybkie.

Praca w sieci

Praca w sieci w ramach formatu 2011 jest teraz przyjemnością. Każdy obiekt ma swój numer wersji, zatem wiadomo, czy został zmieniony, czy też nie. Dodatkowo zawsze jest gwarancja, że nowa wersja nie zastąpiła wersji poprzedniej, jest bowiem zapisana w innym miejscu bazy danych. Pewna nadmiarowość danych jest gwarancją ich bezpieczeństwa.

Zobacz więcej o pracy w sieci w specjalnym dokumencie PDF.

Licencjonowanie

Nowy system baz danych będzie dostępny nieodpłatnie wyłącznie dla osób, które nabyły licencję na program JZK w ciągu ostatniego roku - czyli posiadają albo ważną licencję roczną, albo standardową licencję jednorazową na bieżącą wersję programu.

Etapy konwersji

Konwersja bazy danych jest potrzebna, aby uporządkować system baz danych. Za każdym razem konwersja jest wykonywana w tle, automatycznie i jest niezauważalna przez użytkownika.

Konwersja bazy danych na nowe formaty będzie wykonana w 3 etapach:

  • aktualnie: zmiana formatu wszystkich baz na pełny format strumieniowy 2006, spłaszczenie drzew strumieniowych (Hotel, Książka etc.),
  • po zakończeniu testów: konwersja wszystkich baz na format 2011,
  • później: konwersja na pojedynczą bazę JZKdb.

Zobacz więcej o nowym formacie baz danych.
Przeczytaj więcej w nowym Przewodniku Użytkownika.

W skrócie: JZKdb: Nowy format bazy danych JZK@2011 daje nowe możliwości.

© Studio JZK programy komputerowe, Gdańsk 1992-2012 | Wszelkie prawa zastrzeżone. | Mapa strony
Programy | Cennik | Dealerzy | Sklepy | Prasa | Opinie | Moje Faktury™