2010-11-16

Szansa dla Firebird

Obecnie najpopularniejszą darmową bazą danych jest bez wątpienia MySQL. Ta baza danych została napisana przez szwedzką firmę MySQL AB. Na początku 2008 roku firma została wykupiona przez Sun Microsystems. Na początku 2010 roku firmę Sun Microsystems kupiła firma Oracle. Tym sposobem Oracle stała się właścicielem między innymi bazy danych MySQL.

Taka sytuacja spowodowała zaniepokojenie dotychczasowych użytkowników MySQL. Baza ta była dotychczas dostępna na dwóch licencjach: darmowej i komercyjnej. Użytkownicy obawiali się, że firma Oracle nie będzie zainteresowana dalszym udostępnianiem darmowej wersji MySQL — tym bardziej, że w swojej ofercie oprócz dużej bazy ma również bazę danych Berkeley DB.

Niedawno firma Oracle ogłosiła nowe zasady licencjonowania bazy danych MySQL. Między innymi cena licencji komercyjnej wzrosła czterokrotnie.

Marco Cantù w swoim blogu zastanawia się, jaki wpływ będzie mieć ta decyzja na popularność innych darmowych (i komercyjnych) baz danych, a w szczególności na Firebird.

Nowe banery MindTheBird

W portalu MindTheBird! dostępne są nowe banery — w formacie GIF oraz Adobe Flash. Uwzględniają one fakt, że została już udostępniona finalna wersja Firebird 2.5, udostępniająca użytkownikom nowe możliwości.

Użytkownicy dotychczasowych banerów proszeni są o pobranie ich nowych wersji i użycie ich w miejscach dotychczasowych banerów.

2010-11-12

Automatyczna optymalizacja indeksów

Przebudowę indeksów, o której informuje artykuł Przebudowa indeksów Firebird, można przeprowadzić w sposób automatyczny. Wystarczy przygotować i wykonywać od czasu do czasu  skrypt SQL, zawierający ciąg instrukcji ALTER INDEX NazwaIndeksu ACTIVE dla każdego indeksu z bazy danych.

Jeżeli baza zawiera wiele indeksów, które w dodatku od czasu do czasu zmieniają się lub są dodawane nowe indeksy (na przykład w efekcie rozwoju programów), to ręczne aktualizowanie wymienionego skryptu SQL staje się uciążliwe i jest podatne na pomyłki.

Proces przebudowy indeksów można przeprowadzić automatycznie. Odpowiedni skrypt dla systemów POSIX opracował Damyan Ivanov. Natomiast Grzegorz Skoczylas opracował analogiczną procedurę dla systemu Windows. »Tutaj« jest opis procedury. Można też ją stamtąd pobrać.

Procedura została przetestowana w systemie operacyjnym Windows Vista Professional oraz dla Firebird 2.5.

2010-11-11

Przebudowa indeksów Firebird

W trakcie dodawania nowych danych oraz modyfikowania istniejących danych w bazie danych, wewnętrzne struktury służące do przechowywania indeksów, mogą nie być zbudowane w sposób optymalny. Aby zapewnić optymalny dostęp do danych, należy od czasu do czasu przebudować indeksy.

Jednym ze sposobów na przebudowę indeksów jest wykonanie kopii bezpieczeństwa bazy danych (backup), a następnie odbudowanie całej bazy na podstawie tej kopii (recreate). W przypadku wielkich baz danych takie postępowanie może być nie do przyjęcia — głównie z powodu długiego czasu potrzebnego na odbudowanie bazy danych.

Na szczęście nie trzeba odtwarzać bazy danych, aby przebudować indeksy. Wystarczy dezaktywować indeksy poleceniem ALTER INDEX xxxxx INACTIVE, a następnie ponownie je aktywować poleceniem ALTER INDEX xxxxx ACTIVE.

Niestety, powyższy sposób nie umożliwia przebudowania indeksów kluczy głównych (PRIMARY KEY) oraz indeksów dla kluczy obcych (FOREIGN KEY). Takich indeksów nie można dezaktywować. W Firebird jest na to sposób: można wykonać polecenie ALTER INDEX xxxxx ACTIVE bez uprzedniego dezaktywowania indeksu. Mimo, że aktywowanie aktywnego indeksu może wydawać się dziwne, serwer Firebird w takim przypadku również przebuduje indeks. Można tę cechę Firebird wykorzystać do przebudowy wszystkich indeksów, również indeksów kluczy głównych i kluczy obcych.

Listę wszystkich indeksów z bazy danych można uzyskać wykonując polecenie:
SELECT
   'ALTER INDEX '
   || Trim(RDB$INDEX_NAME)
   || ' ACTIVE;'
 FROM
   RDB$INDICES
 WHERE
   RDB$RELATION_NAME NOT STARTING WITH 'RDB$';

Nowa wersja biblioteki FreeAdhocUDF

Dostępna jest nowa wersja darmowej biblioteki funkcji UDF — FreeAdhocUDF (wersja 20101111). Zaimplementowano w niej 11 nowych funkcji oraz poprawiono błędy znalezione w dotychczasowej biblioteki i rozszerzono działanie niektórych funkcji.

Biblioteka zawiera obecnie 551 funkcji. Dostępna jest w wersjach dla Win32, Win64, Linux32 i Linux64. Zawiera między innymi wsparcie dla kodowania UTF-8 oraz UNICODE_FSS.

Biblioteka jest dostępna na licencji LGPL. Oznacza to, że może być używana bez ponoszenia kosztów, również w zastosowaniach komercyjnych. Treść licencji jest »tutaj«.

Bibliotekę można pobrać z serwera FTP projektu. Na internetowej stronie projektu dostępna jest dokumentacja biblioteki. Jest ona obecnie aktualizowana i uzupełniania.

2010-11-10

Migracja z Firebird 2.1 do 2.5

Użytkownicy migrujący z Firebird 2.1 do 2.5 zastanawiają się, czy bezpieczne jest skopiowanie bazy użytkowników security2.fdb do Firebird 2.5, aby nie było potrzeby ponownego definiowania użytkowników.

Teoretycznie skopiowanie tego pliku powinno być wystarczające, ale nie ma pewności, czy w każdym przypadku. Firebird 2.5 używa nowej struktury baz danych (ODS 11.2). Dlatego lepiej byłoby wykonać kopię bazy użytkowników i na jej podstawie odbudować tę bazę w Firebird 2.5. Dzięki temu struktura bazy będzie w pełni zgodna z Firebird 2.5, ale nadal mogą zaistnieć problemy, związanych z nową rolą RDB$ADMIN (dającą użytkownikowi SYSDBA prawa do „normalnych” użytkowników). Normalni użytkownicy, którym przypisano rolę RDB$ADMIN, będą mieć problemy z użyciem nowych instrukcji SQL CREATE/ALTER/DROP USER

W Firebird 2.5.1 będzie skrypt SQL naprawiający ten problem. Tymczasem najbezpieczniejszym sposobem migracji do Firebird 2.5 jest ponowne zdefiniowanie wszystkich użytkowników, korzystając z programu GSEC (lub dowolnego innego) lub zaimplementowanego w SQL polecenia CREATE USER.

2010-11-03

Firebird w Android

Popularność platformy Microsoft .NET Framework wydaje się rosnąć. Platforma ta jest w Windows, ale Microsoft zdecydował się udostępnić pełną jej specyfikację. Dlatego powstały doskonałe klony .NET dla innych systemów operacyjnych. Jednym z najlepszych takich klonów jest darmowa platforma Mono (dla Windows, Linux, MacOS, Solaris i innych systemów operacyjnych).

Ostatnio bardzo popularne stają się różne smartfony. Aby ułatwić pisanie aplikacji dla tych urządzeń, powstały również klony platformy .NET dla tych urządzeń. Dzięki nim oraz sterownikowi .NET provider for Firebird (wersja dla Mono) możliwe jest korzystanie z Firebird również w tych systemach. Niedawno informowaliśmy o pomyślnych próbach używania Firebird w iPhone.

Klon platformy .NET, MonoDroid, dostępny jest również dla systemu operacyjnego Android. Jiří Činčura w swoim blogu prezentuje prostą aplikację testową napisaną w języku C#, udowadniającą, że również w tym systemie można korzystać z Firebird.

2010-10-29

Firebird 2.5 w Ubuntu

Marius Popa Adriam w swoim blogu opublikował artykuł, w którym opisuje, jak zainstalować Firebird 2.5 w systemie operacyjnym Ubuntu, korzystając z oficjalnego instalatora tar.gz.

Firebird 2.1.3 w Ubuntu

Richard Acosta Martinez w swoim blogu opublikował artykuł (po hiszpański), w którym opisuje, jak należy zainstalować Firebird 2.1.3 Classic Server w systemie operacyjnym Ubuntu.

Automatyczne tłumaczenie na język angielski jest »tutaj«.

2010-10-28

Firebird od środka

Norman Dunbar pracuje nad udokumentowaniem takich aspektów Firebird, jak struktura pliku bazy danych, sposób kompresji danych w rekordach itp. Dokumentacja nie jest jeszcze ukończona, ale nawet w obecnej wersji zawiera wiele ciekawych informacji.

Dokumentacja dostępna jest jako zestaw stron HTML oraz jako pojedynczy dokument PDF.

Różnice wydajności Firebird 2.5 o różnych architekturach

Firebird 2.5 dostępny jest w trzech różnych architekturach:
  1. Classic Server
  2. Super Server
  3. Super Classic
Thomas Steinmaurer udostępnił w swoim blogu wideo pokazujące różnice między różnymi architekturami serwera Firebird 2.5, działającego na wieloprocesorowym komputerze.

Wideo można obejrzeć bezpośrednio »tutaj«.

2010-10-22

Gra internetowa bazująca na Firebird

Delta Quadrant: Horizons to gra internetowa typu space opera, napisana w SQL, korzystająca z Firebird. Niektórzy porównują ja do gry Masteres of Orion, ale to nie jest klon tej gry. DQ:Horizons dostępna jest poprzez własną stronę internetową. Istnieje też wersja dla Facebook.

Implementacja gry rozpoczęła się od użycia Firebird 2.1. Obecnie gra korzysta z Firebird 2.5. Architektura gry jest w skalowalna. W bazie danych obecnie jest 85 tabel i 356 procedur. Autorzy spodziewają się, że w głównej bazie danych docelowo będzie 10 miliardów rekordów w tabeli eksplorowanych gwiazd.

Obecnie używany jest serwer o architekturze Classic Server. Planowane jest przejście wkrótce na architekturę SuperClassic.

Więcej informacji technicznych o tej grze jest »tutaj«.