Długi wstęp, NAUKA, WIEDZA, Bazy danych


Długi wstęp, który warto przeczytać

   Ten dział poświęcony jest programowaniu aplikacji bazodanowych w BCB. Na wstępie chciałbym napisać parę uwag dotyczących informacji w nim zawartych. Ten kurs dotyczyć będzie programowania przy użyciu BDE. Standardowe komponenty BCB pozwalają na tworzenie aplikacji bazodanowych tylko przy wykorzystaniu BDE ale istnieje na sieci wiele darmowych komponentów pozwalających ominąć tę niedogodność. To nie jest kurs języka SQL więc proszę nawet nie wysyłać listów z pytaniami. Na sieci jest mnóstwo poradników dotyczących SQLa więc zainteresowanych wysyłam do sieci :))). Zajmować się będę tylko prostymi, lokalnymi, relacyjnymi bazami danych. Jeżeli ktoś chce nauczyć się czegoś o współpracy z serwerami baz bazach takimi jak Oracle, Interbase, Sybase, Informix, DB2 itd. to źle trafił. Nauka technologia MIDAS też nie jest tematem tego kursu a o BDE będę starał się mówić tak mało jak to tylko będzie możliwe. 

   Teraz po wyjaśnieniu kilku spraw możemy już zabrać się za krótką teorię. Naprawdę będzie to bardzo krótka teoria :))). Nie zamierzam przytaczać tutaj całej teorii baz danych gdyż jest to bardziej skomplikowana tematyka niż to się może niektórym osobom wydawać. Dużo ludzi napisało na ten temat wiele mądrych książek więc zainteresowanych odsyłam do czytelni. Może w przyszłości coś wystukam ale nie teraz :))). Aby jednak zająć się bazami danych musimy wiedzieć (przynajmniej tak w skrócie) czym jest taka baza. Relacyjną bazę danych (pod kątem wykorzystania w BCB) możemy zdefiniować jako zbiór tabel powiązanych między sobą zależnościami. Hmmm, brzmi trochę obco. Wiem ale przed chwilą to wymyśliłem :))). W definicji użyłem słowa Tabela.... Co to takiego ??? Tabela pozwala nam na odwoływanie się do danych w niej zawartych poprzez podanie wiersza (rekordu, krotki) i kolumny. W ten sposób możemy dostać się do konkretnego pola. Wiem, że to taka chłopska definicja ale od czegoś trzeba zacząć. Pomijam tu wszelkie problemy związane z normalizacją baz danych, przechodzeniem z jednej postaci relacyjnej do drugiej itd. ... Muszę jednak zaznaczyć, że stworzenie dobrej bazy jest bardzo trudne. 

   Powróćmy do tabeli. Każda kolumna w tabeli ma określony typ. Można to porównać do typu zmiennej. Tak więc do każdego z pól kolumny typy Integer możemy wpisać tylko liczbę. Wprowadzenie znaku z alfabetu spowoduje wyświetlenie komunikatu o błędzie. Oto przykładowe typy danych dla bazy Paradoxa:

Alpha - łańcuchy znaków np. "Ala ma kota". Odpowiednik w BCB: AnsiString.
Number - zwykła liczba.
Money - waluta (Currency).
Short - liczba od -32,767 do 32,767.
Long Integer - liczba od -2147483648 do 2147483647.
BCD - liczba w formacie BCD.
Date - data.
Time - godzina.
Timestamp - data i godzina.
Memo - typ używany przez TDBMemo.
Formatted Memo - typ używany przez TDBRichEdit.
Graphic - grafika typu BMP.
OLE - obiekt OLE.
Logical - wartość logiczna true / false.
Autoincrement - pole automatycznie zwiększające swoją wartość (tylko do odczytu).
Binary, Bytes - typy do własnego zaprogramowania formatu danych

   Generalnie możemy wyróżnić typy zwykłe (Alpha, Number, Date...) jak typy BLOB (Memo, Graphic, OLE...). BLOB to akronim od Binary Large OBjects (bardzo duże obiekty binarne). Dostęp do pól tego typu przy użyciu standardowych komponentów jest tak samo prosty jak do pól zwykłych jednak jeżeli chcemy zdefiniować własne typy BLOB (np. wczytywanie obrazków JPEG a nie tylko BMP) to musimy się trochę nagimnastykować. 

   Dostęp do lokalnych baz danych w BCB może odbywać się albo poprzez BDE (czyli wykorzystywanie komponentu TTable) bądź poprzez TClientDataSet. Różnica między tymi dwoma metodami jest znaczna. Można ją zobaczyć dokładnie na schemacie zaczerpniętym z plików pomocy BCB. W pierwszym przypadku odwołujemy się do bazy znajdującej się w pliku poprzez interfejs BDE. Jest on jednak dla nas bardzo przeźroczysty. Pisząc program możemy sobie nawet nie zdawać sprawy z jego istnienia (no może tylko przez te ciągłe komunikaty o błędach). Cała baza przechowywana jest w pliku (bądź kilku plikach, a zazwyczaj w więcej niż kilku) o rozszerzeniu zależnym od typu bazy jaki wybraliśmy. W trakcie pracy programu wybieramy tylko, który rekord ma być w danym momencie aktywny i jest on automatycznie wczytywany do pamięci. Wspomniałem o typie bazy danych. To jest bardzo ważne. BDE samo w sobie ma sterowniki do dwóch najpopularniejszych baz danych: dBASE i Paradox. Osobiście polecam bazy typu Paradox i na tym się głównie skupię w dalszej części. Oczywiście nic nie stoi na przeszkodzie aby otwierać bazy danych Accessa ale do tego potrzebne są odpowiednie sterowniki (wiąże się to z takimi skrótami jak ADO, DAO, JET, licencja i dużo dodatkowej forsy). Wykorzystanie BDE wiąże się z problemem umieszczania go wraz z aplikacją. Sam plik instalacyjny zajmuje około 4 - 5 Mb. Aby nasza aplikacja działała na innym komputerze musimy najpierw zainstalować na nim BDE. Jest to warunek konieczny ale nie wystarczający aby nasza aplikacja działała poprawnie. Oczywiście tak jak już wspomniałem wcześniej, możemy odwoływać się do niektórych baz lokalnych bez użycia BDE wykorzystując różne dodatkowe darmowe, bądź komercyjne komponenty. Zmniejsza to drastycznie wielkość pliku ale jest również mniej elastyczne. Tak więc na początku przed stworzeniem programu radzę się dobrze zastanowić dla kogo piszemy nasz program i czy będzie on chciał zainstalować na swoim komputerze "krowiaste" BDE tylko po to aby go uruchomić. 

0x01 graphic

   W przypadku wykorzystania opcji TClientDataSet (w odróżnieniu do BDE) do poprawnego działania programu wystarczy rozprowadzać go z plikiem DBCLIENT.DLL . Główna różnica polega jednak na tym, że dane przetrzymywane są w pamięci operacyjnej. Nawet jeżeli dokonamy zmian to zmiany te nie zostaną odzwierciedlone w pliku jeżeli nie odwołamy się do odpowiedniej funkcji. Tworzenie dużych baz danych przy użyciu tego sposobu nie jest zalecane. tracimy oczywiście możliwość korzystania z komponentów współpracujących z BDE oraz wszelkie korzyści z tego płynące :((((.

   Podstawowymi komponentami odpowiedzialnymi za bazy danych są TTable (jeżeli używamy BDE), TClientDataSet (gdy wybraliśmy opcję nie używania BDE) oraz TDataSource. Komponenty te zostaną omówione bliżej tutaj.

   To tyle tytułem przydługiego wstępu. Więcej dopiszę w miarę jak będą mi przychodziły nowe rzeczy na myśl :))).



Wyszukiwarka

Podobne podstrony:
Podstwy bazy danych, edukacja i nauka, Informatyka
Bazy danych wstęp, informatyka
BazyDanych - MySQL - 3, Nauka, studia infa, Semestr 3, Bazy danych, 1 MYSQL
BazyDanych - MySQL - 5, Nauka, studia infa, Semestr 3, Bazy danych, 1 MYSQL
Kopia Zao Lab bazy danych, polibuda, nauka, bazy
Bazy Danych wstep
1 Tworzenie bazy danychid 10005 ppt
bazy danych II
Bazy danych
Podstawy Informatyki Wykład XIX Bazy danych
Bazy Danych1
eksploracja lab03, Lista sprawozdaniowych bazy danych
bazy danych druga id 81754 Nieznany (2)
bazy danych odpowiedzi

więcej podobnych podstron