Programowanie baz danych KNOW HOW
Kexi: wygodne budowanie baz danych w KDE
Bazy danych
dla każdego
Kexi jest aplikacją do budowania baz danych, wchodzącą w skład pakietu KOffice, dedykowaną dla środowiska
KDE. Umożliwia projektowanie tabel, zapytań, formularzy i raportów. Jak wiele innych programów Open Source,
także i ten w swojej najnowszej historii doświadczył gruntownej przebudowy. Okazuje się, że Zespół Kexi wdraża
zupełnie nową architekturę. Zobaczmy, jakie zmiany już zaszły oraz jakie są planowane.
JAROSłAW STANIEK I LUCIJAN BUSCH
ardziej wymagający użytkownik niką drag & drop.
żąda od pakietu biurowego obec- Jeśli w zapytaniu SQL znajduje się wię-
Bności aplikacji do budowania baz cej niż jedna tabela, użytkownik może do-
danych. W środowisku KDE, w ramach konać ich tzw. złączenia za pomocą wbudo-
pakietu KOffice, takim składnikiem jest wanego edytora zapytań. Operację taką
Kexi. W zamierzeniu autorów aplikacja ta można przeprowadzać na dwa sposoby: me-
ma być odpowiedzią na brak programu ty- todą drag & drop oraz wpisując tekst SQL.
pu MS Access dla wielu systemów opera- T
a druga metoda, mile widziana przez za- Rysunek 1: Korzystając z Kexi użytkownik
cyjnych, w szczególności dla Linuksa. awansowanych bazodanowców , oferuje może wygodnie zarządzać swoimi bazami da-
Jednakże cechą wyróżniającą Kexi, choć- podświetlanie składni, historię zmian, nych. Mimo że program jest jeszcze w fazie
by od MS Access, jest zdolność do współ- a nawet podpowiada, gdzie znajduje się Beta, oferuje już podstawowe funkcje, jak np.
pracy z różnymi typami serwerów relacyj- ewentualny błąd. Wprowadzone schematy projektowanie tabel.
nych baz danych. Kexi oferuje jednocze- zapytań (nawet gdy są błędne) są przecho-
śnie możliwość przechowywania swoich wywane w celu pózniejszego wykonania lub Kexi realizuje obsługę serwerów baz da-
baz danych w pliku, co okazuje się być naniesienia poprawek. nych z użyciem własnych sterowników
bardzo wygodne, czy to w początkowej fa- Jak wspomniano wyżej, istnieje możli- (ang. drivers). Z punktu widzenia użytkow-
zie budowania bazy, czy po prostu w przy- wość przechowywania danych bezpośred- nika bazy danych, jak też jej autora, Kexi
padku małych projektów. Z biegiem cza- nio w pliku, na lokalnym komputerze. Ze- zachowuje się w znacznym stopniu nieza-
su, gdy projekt się rozrasta i zaczynamy spół Kexi opracował w tym celu wbudowa- leżnie od użytego serwera baz danych.
wymagać, by do bazy danych miało jedno- ny silnik bazodanowy SQL o nazwie Kexi- Obecnie są dostępne sterowniki dla Post-
czesny dostęp wiele osób, Kexi umożliwi SQL, który znakomicie nadaje się, by roz- greSQL, MySQL. W celu powiększenia do-
przesiadkę na serwer bazodanowy. począć projekt bez angażowania serwera stępności przygotowywany jest też sterow-
bazodanowego. W tym przypadku wymiana nik ODBC.
Początki danych polega na prostym wysłaniu pliku
Bez wątpienia wersja Kexi beta 1 z kwiet- bazy danych mailem, bądz opublikowaniu Powrót do przyszłości
nia 2003 roku zawierała już wiele przy- na stronie www (takie pliki danych są za- Wśród modułów dostępnych w wersji Ke-
datnych funkcji. zwyczaj nieduże, choć nie ma tak naprawdę xi Beta 1 były formularze, raporty i ma-
Mimo to, programiści mieli poważne po- istotnych ograniczeń). KexiSQL jest po- kra. W kolejnych wersjach zdecydowano
wody by przebudować całą architekturę chodną cenionego projektu o nazwie SQLi- się poprawić elastyczność takich rozwią-
programu, zamieniając go w całe środowi- te[2]. Pomimo przechowywania danych zań i znacznie unowocześnić architekturę
sko do budowania baz danych. GUI (gra- w pojedynczym pliku, dostępne są typowe całego środowiska. Dokonano tego przez
ficzny interfejs użytkownika) oferowało funkcje serwera SQL, włącznie z transak- rezygnację z jednej, monolitycznej apli-
wówczas jedynie podstawowe funkcje, takie cjami. Pliki baz danych można przenosić kacji na rzecz systemu wtyczek. Jako
jak przeglądanie i edycja danych, projekto- i wykorzystywać na różnych systemach wtyczka działa w Kexi większość modu-
wanie prostych tabel (Rysunek 1) oraz za- oraz architekturach sprzętowych, w tym łów, łącznie z projektem tabel, zapytań
pytań przez pisanie poleceń SQL lub tech- także na 64-bitowych. i formularzy. Aktualnym celem jest ustabi-
www.linux-magazine.pl Maj 2004 41
Programowanie baz danych
KNOW HOW
dardem ECMA Script, czyli zna- ku PHP Wtyczki mają współpracować
.
nego z przeglądarek języka Java- m.in. z aplikacją Quanta+.
Script. Niewykluczone jest doda- Rozwój aplikacji Kexi jest aktywnie
nie w przyszłości obsługi języka wspierany przez firmę OpenOffice Pol-
Python. ska[5], przez codzienny udział etatowych
Dodatkowym modułem, które- pracowników w projekcie. W zamierzeniu
go zaczątki już istnieją, jest ele- firmy, Kexi ma w sposób unikalny wypeł-
ment integracyjny ze stronami niać lukę, jaką był brak aplikacji bazoda-
HTML. Moduł ten ma dać możli- nowej w pakiecie OpenOffice. Wkładem fir-
wości uaktualniania dynamicznej my, oprócz programistów i testerów, jest
zawartości stron na podstawie da- projekt Qt-KDE Wrapper[6], umożliwiają-
Rysunek 2: Po wprowadzeniu danych poprzez formu- nych wprowadzonych do Kexi, cy budowanie i przenoszenie aplikacji
larz, Kexi może automatycznie uaktualnić je na stronie np. z tabel bazy danych. Informa- KDE na MS Windows. Dzięki temu pro-
internetowej. cja jest zazwyczaj przesyłana do gram Kexi jest dostępny w niezmienionej
docelowej bazy danych serwera postaci także na ten system.
lizowanie architektury, tak by można było WWW. Wygląd strony można kontrolować
dodawać także swoje wtyczki. bezpośrednio w Kexi dzięki użyciu kompo- Budowanie z klocków
Moduł projektowania formularzy (obec- nentu KHTML, z którego korzysta także Kexi, jako aplikacja bazująca na bibliote-
nie rozwijany) działa w zbliżony sposób, przeglądarka Konqueror. Przedstawia to kach Qt i KDE, jest silnie zmodularyzo-
jak w przypadku aplikacji Qt Designer, jed- Rysunek 2. wana także wewnątrz. Ciekawostką jest,
nak już teraz widać przewagę Kexi w dzie- Począwszy od wersji 2.0 pakietu KOffice, że ponieważ praktycznie cały program
dzinie łatwości obsługi, choćby poprzez program Kexi ma zostać wpisany w cykl wy- stanowią biblioteki, sam plik programu to
możliwość wpisywania tekstu w pola tek- dawniczy tego pakietu i być dostępny tylko ok. 15 KB. Podstawą programu są
stowe bezpośrednio na projektowanym for- w większości dystrybucji trzy biblioteki: podstawo-
mularzu, bez potrzeby otwierania okna dia- Linuksa. W tej fazie roz- wa KexiCore (zajmuje
logowego. Dodawane są kolejne elementy woju mają też pojawić się się zarządzaniem wtycz-
formularzy (ang. widgets), których zbiór takie funkcje, jak integra- kami, realizacją akcji zle-
też można rozszerzać z użyciem odpowied- cja z korespondencją se- conych przez użytkowni-
nich wtyczek. Jedną z planowanych wty- ryjną KWorda, wymiana ka), biblioteka głównych
czek-komponentów jest wyświetlanie za- tabel danych z arkuszem komponentów GUI Ke-
wartości pola typu BLOB (ang. Binary Lar- KSpread. Będzie to ozna- xiWidgets oraz bardzo
ge OBject) z użyciem techniki KParts (osa- czać także wymienność istotna dla Kexi bibliote-
dzania). W ten sposób można w polach danych w formacie Ope- ka niezależnego dostępu
BLOB przechowywać np. dokumenty Ope- nOffice, gdyż KOffice 2.0 Rysunek 3: Zapytania w Kexi do baz danych KexiDB .
nOffice, PDF a
, pliki MP3 i setki innych for- będzie traktować ten for- mogą być wprowadzane wizual- T ostatnia jest istotnym
matów, po czym wyświetlać (bądz odtwa- mat jako własny. nie oraz z użyciem SQL. rozszerzeniem takich bi-
rzać dzwięk) bezpośrednio w formularzu. bliotek, jak QtSQL czy
Co ciekawe, nie ma przeciwwskazań, by to Proszę MS ADO, gdyż rozwiązuje wiele proble-
robić także w widoku tabelarycznym. o dokładkę mów dotyczących różnic między serwera-
Raporty są modułem, który ma się poja- Dla Zespołu Kexi wymienione cechy apli- mi baz danych, którymi dotychczas pro-
wić dopiero po nadejściu formularzy. Po- kacji to jeszcze nie wszystko. Odległe pla- gramista musiał się sam zajmować (np.
przednio do ich konstrukcji był używany ny otwierają dalsze możliwości: pełne śro- różne dialekty języka SQL, niezgodność
program o nazwie Kugar (z KOffice). Obec- dowisko typu RAD (ang. Rapid Applica- typów danych).
nie Zespół Kexi skłania się raczej do wła- tion Development) ma oferować swoje Samym wyświetlaniem głównego okna
snego rozwiązania. Planowane cechy mo- komponenty dla zewnętrznych aplikacji, zajmuje się biblioteka KexiMain; okno to
dułu raportowania to płynne skalowanie tzn. jeśli ktoś buduje program w C++ jest zbudowane z użyciem najnowszej tech-
(także podczas projektowania) i wygoda i chce, by używać w nim baz danych, mo- niki: KMDI z KDE 3.2 (ang. KDE Multiple
użycia porównywalna z już istniejącym mo- że skorzystać z modułów Kexi jako ze- Document Interface, z której korzystają też
dułem dla formularzy. wnętrznych bibliotek. Jako mocno oczeki- KDevelop3 i Kate). KMDI wprowadza
Moduł skryptów (makr) początkowo waną funkcję, Kexi ma oferować możli- możliwość wyboru stylu pracy z Kexi (je-
miał korzystać z biblioteki i środowiska wość zapisania projektu wraz z danymi den z czterech): może to być tryb klasyczny
QSA[3] (ang. Qt Script for Applications). w postaci wykonywalnego programu do- z pod-oknami, tryb z zakładkami: T
abPage
Z czasem jednak wybór padł na KJSEm- stępnego na różne systemy operacyjne, lub IDEAl (jak np. w Mozilli) oraz tryb To-
bed[4] (and. Kde JavaScript EMBEDding), nie wymagającego od użytkownika posia- pLevel (wszystkie okna osobno, jak np.
w miarę jak ten projekt osiągnął wysoką ja- dania samego Kexi. Programistom stron w programie GIMP). W każdym z trybów
kość i jest kandydatem do standardu skryp- internetowych Kexi będzie miał do zaofe- dowolne okno może być wyciągnięte poza
towego w ramach KDE. KJSEmbed posiada rowania wtyczki do automatycznego two- aplikację, co oznacza zwiększoną wygodę
własny interpreter języka zgodnego ze stan- rzenia skryptów i szablonów stron w języ- przy pracy na wielu pulpitach czy nawet
42 Maj 2004 www.linux-magazine.pl
Prenumerata
Linux Magazine
wielu monitorach: np. można wyciągnąć Dostępność i plany
duże okno z danymi i przesunąć na inny Kexi to program działający w wielu języ-
Nie przegap
monitor. kach, także w polskim. Każdy moduł odwo-
Co ciekawe, możliwe jest też pominięcie łujący się do użytkownika stara się robić to
takiej okazji!
uruchamiania Kexi w trybie GUI (z biblio- w jego ojczystym języku, co istotnie oszczę-
teką KexiMain) i praca tzw. w trybie wsado- dza wielu problemów początkującym użyt-
wym, bez GUI, z poziomu linii poleceń. kownikom. Dotyczy to także komunikatów
Oznacza to dalsze możliwości integracji błędów.
Kexi, tym razem ze skryptami powłoki. Planowane jest wbudowanie asynchro-
Uzupełnieniem mechanizmu wtyczek nicznej metody komunikacji z serwerami,
jest możliwość osadzania niektórych ofero- co spowoduje, że czasochłonne operacje bę-
wanych przez nie komponentów (np. tabel- dą mogły być wykonywane w tle . Jeśli
ka z danymi) bezpośrednio w dowolnym chodzi o bibliotekę KexiDB, programiści
programie KDE, z możliwością uaktualnia- będą mogli jej używać także w ramach zwy-
nia danych na żywo, np. w KWord. Jeśli kłych aplikacji Qt, bez konieczności posia-
chodzi o szybkość działania mechanizmu dania KDE. Zakłada się możliwość współ-
wtyczek, to Kexi ładuje wtyczki na żąda- istnienia w pojedynczym projekcie wielu
nie , co oznacza, że stara się nie ładować do zródeł danych (z serwerów lub plików) oraz
pamięci zbędnych modułów podczas startu. luzno połączonych zródeł zewnętrznych.
Dzięki temu użytkownik może posiadać ty- Biblioteki oferowane przez Kexi oraz
le wtyczek, ile potrzebuje i nie wpłynie to mechanizmy wtyczek są otwarte dla wszyst-
zauważalnie na spadek wygody pracy. kich programistów: Kexi, jako program
opatrzony licencją LGPL (ang. GNU Libra-
Przezroczyste bazy ry General Public License), jest otwarty
Biblioteka KexiDB dodaje rozbudowane także na rozszerzenia komercyjne oraz uży-
tzw. metainformacje do projektu bazy da- cie w komercyjnych aplikacjach.
nych, np. opcjonalne tytuły tabel i pól Program Kexi jest obecnie dostępny
(dowolnie rozbudowane, automatycznie w postaci kodów zródłowych w ramach pro-
wykorzystywane przy tworzeniu formula- jektu KDE. Z uwagi na fazę rozwoju nie
rzy) lub warunki poprawności danych. T jest jeszcze dołączany razem z KOffice do
a-
kie metainformacje, przechowywane ra- znanych dystrybucji Linuksa. Z witryny
zem z projektem, stanowią rozszerzenie firmy OpenOffice Polska można pobrać de-
możliwości języka SQL. Są one tłumaczo- monstracyjną wersję dla systemów MS
% Zamawiając
ne specyficznie dla każdego typu serwera Windows. Mniej więcej co kwartał progra-
baz danych, co umożliwia łatwą migrację miści publikują kolejną wersję beta, 20
prenumeratę
np. z bazy zapisanej w pliku na bazę na stycznia była to beta 2, na 20 kwietnia jest
oszczędzasz!
serwerze. Sam język SQL, widoczny dla zapowiadana beta 3. Zespół Kexi zaprasza
użytkownika w ramach Kexi, jest specjal- do współpracy zainteresowanych programi-
% Płacisz jak
nym dialektem, ukrywającym różnice stów i użytkowników. %
między serwerami. Kexi z użyciem wła-
za 9 numerów,
snych parserów kontroluje wprowadzone
polecenia SQL i tłumaczy na dialekt ser-
INFO
a otrzymujesz 12!
wera oraz z powrotem. Mechanizm ten
[1] Projekt Kexi:
jest stosowany m.in. w edytorze zapytań
% Z każdym
http://www.koffice.org/kexi/
(Rysunek 3). Dzięki wymienionym ce-
i http://www.kexi-project.org/
chom, przestają być konieczne niejedno- numerem DVD
[2] Projekt SQLite:
krotnie żmudne modyfikacje projektu dla
http://www.sqlite.org/
lub płyta CD-ROM.
konkretnych serwerów.
[3] Qt Script for Applications:
http://www.trolltech.com/
Lucijan Busch jest inicjatorem Pro- products/qsa/
jektu Kexi. Uczy się i mieszka w Kla-
[4] Projekt KJSEmbed:
Najszybszy sposób
genfurt w Austrii.
http://xmelegance.org/kjsembed/
[5] Kexi w OpenOffice Polska: zamówienia
Jarosław Staniek jest z wykształce- http://openoffice.com.pl/
nia informatykiem, pracuje w firmie index.php?id=60 prenumeraty:
OpenOffice Polska w Warszawie,
[6] Projekt QT-KDE Wrapper
http://www
.linux-magazine.pl
m.in. nad projektem Kexi.
http://www.iidea.pl/~js/qkw/
Infolinia:
0801 800 105
AUTORZY
Wyszukiwarka
Podobne podstrony:
Informatyka dla Gimnazjum Zeszyt Ćwiczeń Prosty serwis Wiki nie wymagający bazy danychBilling dla bazy danych OracleBAZY DANYCH Streszczenie z wykładówPHP i MySQL Dla kazdegoStrona polecenia do bazy danychwięcej podobnych podstron