Wykorzystanie pakietu DELPHI 6.0 w pracy nauczyciela - wychowawcy

Wykorzystanie pakietu DELPHI 6.0 w pracy nauczyciela - wychowawcy Nauczyciel - wychowawca coraz częściej ma do czynienia z ogromną ilość danych. Żeby ...
0 downloads 0 Views 203KB Size
Wykorzystanie pakietu DELPHI 6.0 w pracy nauczyciela - wychowawcy Nauczyciel - wychowawca coraz częściej ma do czynienia z ogromną ilość danych. Żeby „nie pogubić” się w tak obszernych zbiorach informacji należałoby je jakoś posegregować. Zorganizowane w struktury zbiory informacji nazywamy bazami danych. Służą temu różnego typu programy. Łatwość obsługi współczesnego oprogramowania bazodanowego staje się inspiracją dla wielu ludzi do tworzenia własnych baz. Mogą to być dane dotyczące np. własnych zbiorów książek, płyt CD, kaset video. Większość pakietów oprogramowania do projektowania baz danych ułatwia użytkownikom zarówno definiowanie pól i tabel, jak również zapytań, formularzy i raportów wykorzystywanych do obróbki danych. Obecnie do wielu programów dołączane są przykładowe struktury, które można kopiować i modyfikować, dostosowując je do potrzeb odbiorcy. Z uwagi na dużą liczbę informacji, z jaką styka się nauczyciel w swojej pracy, także i ja postanowiłem skonstruować bazę danych, która by te wszystkie dane przechowywała i dzięki, której dostęp do tych informacji byłby łatwiejszy. Narzędziem, które w znacznym stopniu mi to ułatwiło był program Delphi 6.0. Konstruowanie bazy danych i obsługującej jej aplikacji można opisać w trzech etapach: • Pierwszy etap polega na zaprojektowaniu bazy danych w aspekcie logicznym, czyli na zdefiniowaniu tabel oraz należących do nich pól, ustaleniu kluczy podstawowych i obcych, zdefiniowaniu relacji i wprowadzeniu integralności danych na różnych poziomach, • Etap drugi to implementacja projektu logicznego w konkretnym pakiecie oprogramowania bazodanowego. Wymaga to utworzenia tabel, określenia pól kluczowych i relacji oraz wykorzystania dostępnych narzędzi do zagwarantowania integralności danych, • Trzeci etap polega na stworzeniu aplikacji, z którą będzie się komunikował użytkownik zewnętrzny. Aplikacja ta powinna umożliwić pojedynczym użytkownikom lub ich grupom interakcję z danymi przechowywanymi w bazie. Sam proces jej tworzenia można podzielić na mniejsze etapy, jak: określenie czynności, które ma wykonać użytkownik, ustalenie sekwencji tych czynności, określenie, których danych wymagają generowane raporty, oraz utworzenie systemu menu, który ułatwi poruszanie się po aplikacji. Moim celem było stworzenie bazy danych o uczniach, która ułatwiłaby pracę nauczycielowi - wychowawcy. Baza zawiera informacje podobne do tych, jakie znajdują się w typowym dzienniku zajęć lekcyjnych oraz arkuszu, a więc są to m.in.: dane osobowe uczniów, oceny z poszczególnych przedmiotów, oceny za zachowanie, frekwencja, terminy spotkań z rodzicami, terminy rad pedagogicznych itd. BAZY DANYCH – POJĘ CIA PODSTAWOWE Definicja bazy danych Najczęściej myśląc o bazie danych, wyobrażamy sobie dane zapisane w formie tabeli, w której są takie pola jak: Imię, Nazwisko, Adres itp. Pola wypełnione są danymi tworzącymi indywidualne rekordy w pliku bazy danych. Nie jesteśmy wówczas dalecy od prawdy, chociaż nie jest to pojęcie całkiem poprawne. Prawdą jest, że baza może sprowadzać się do jednej tabeli, z drugiej jednak strony rzeczywiste implementacje baz danych zawierają dziesiątki lub nawet setki tabel z tysiącami lub setkami rekordów. Tabele te mogą zawierać jeden lub więcej indeksów. Kompletne rozwiązanie bazy danych SQL typu klient/serwer może również składać się z licznych zapytań i procedur zapamiętanych. Jak zatem widzimy, baza danych to coś więcej niż tylko tabela z danymi.

Najogólniej mówiąc przez bazę danych rozumiemy pewien uporządkowany zbiór danych, a dosłownie miejsce, gdzie przechowuje się informacje (dane). Natomiast przez system bazy danych – bazę danych wraz z oprogramowaniem umożliwiającym operowanie na niej. Najprostszym typem bazy danych jest lokalna baza danych, która rezyduje na pojedynczym komputerze. Innym sposobem implementacji bazy danych jest baza danych typu klient/serwer. Sama baza danych jest tworzona i utrzymywana na serwerze plików, dostęp zaś do niej posiada jeden lub więcej użytkowników (klientów) zazwyczaj rozproszonych po sieci. Użytkownicy kontaktują się z taką bazą poprzez aplikacje umieszczone na lokalnych komputerach. Tabela Tabela to zbiór pól (kolumn). Pojedyncze pole określa jedną właściwość, cechę charakterystyczną lub fakt dotyczący zbioru danych przechowywanego w tabeli. Na przykład, tabela OSOBY może zawierać pola określające ich numery identyfikacyjne, imiona i nazwiska oraz adresy. Oprócz pól tabela zawiera również rekordy (wiersze, krotki). Każdy rekord zawiera opis jednego elementu przechowywanych w tabeli danych. Pojedynczy rekord może przykładowo zawierać numer identyfikacyjny, imię i nazwisko oraz adres osoby. Typy pól Typy pól określają, jakie dane są zapisywane w tabeli (ciąg znaków, liczba całkowita, wartość logiczna, wyrażenie określające datę itp.). Typy danych w Delphi przedstawiam poniżej. Typy numeryczne Integer

liczba całkowita 32-bitowa

Short Integer

liczba całkowita 16-bitowa

Byte

liczba całkowita z zakresu od 0 do 255

Float

liczba rzeczywista

Money

liczba ze stałą liczbą miejsc dziesiętnych

Autoincrement

unikatowa liczba automatycznie zwiększana o 1

Boolean

dwie wartości: True lub False; Yes lub No; 1 lub 0

Typy znakowe Character

dowolne znaki ASCII

Alpha

dowolne znaki ASCII

Memo

dowolne znaki ASCII

Text

dowolne znaki ASCII

Typy czasu i daty Date

dzień, miesiąc, rok

Time

godzina, minuta, sekunda

Date & Time

data i czas

Timestamp

data i czas

Inne typy pól Binary

dane binarne

Image

grafika

Bitmap

grafika w formacie BMP

OLE

grafika, muzyka, dokumenty itp.. Klucz gł ówny

Każda tabela bazy danych powinna zawierać klucz główny. Klucz główny tabeli to pole lub grupa pól , która w sposób jednoznaczny identyfikuje rekord w tabeli. Na przykład, dla tabeli zawierającej dane abonentów operatora telefonicznego kluczem głównym jest pole zawierające numer telefonu, który jednoznacznie identyfikuje danego abonenta. W celu zoptymalizowania wydajności bazy danych zaleca się stosowanie jako kluczy głównych pól typu Integer lub pól zawierających niezbyt długie dane znakowe. Kluczami głównymi nie mogą być pola, którym przypisano typ danych np. Memo. Klucz obcy Klucz obcy jest to jedno lub więcej pól, które pozwalają na łączenie danych przechowywanych w różnych tabelach bazy danych. Tworząc klucz obcy definiujemy związek między tabela klucz głównego i tabelą klucza obcego. Domena Podstawowym elementem w relacyjnej bazie danych jest element danych, jak np. nazwisko, numer, kod pocztowy. Takie elementy są najmniejszymi, niepodzielnymi obiektami. Zbiór tych elementów tego samego typu nazywamy domeną. Np. domeną dla danych numeru PESEL są wszystkie istniejące numery PESEL. Domena to zbór wartości, z którego można wybrać element dla pola w tabeli. Encja Każda tabela w projekcie relacyjnej bazy danych jest encją. Encją nazywa się coś ważnego dla analizowanej firmy lub organizacji, dla której projektowana jest baza danych. Właściwości encji to atrybuty. W każdym diagramie ustala się powiązania poszczególnych encji. Integralność referencyjna Jest ona ściśle związana z kluczami obcymi. Służy do tworzenia związków pomiędzy encjami bazy danych. Zapewnia ona poprawność związków między rekordami tabel powiązanymi relacją, a przede wszystkim zapobiega przypadkowemu usunięciu lub zmianie powiązanych relacją danych. W trakcie tworzenia diagramu encji definiuje się wszystkie encje, a następnie przystępuje się do definiowania związków między nimi. Najważniejszą rzeczą w definiowaniu relacji jest określenie liczby instancji jednej encji w relacji z inną encją. Możemy wybrać jedną z poniższych wartości: • • • •

jeden do jeden – jedna instancja pierwszej encji może korespondować z jedną instancją drugiej encji. jeden do wielu - jedna instancja pierwszej encji może korespondować z więcej niż jedną instancją drugiej encji. wiele do jeden – więcej niż jedna instancja pierwszej encji może korespondować z jedną instancją drugiej encji. wiele do wielu - więcej niż jedna instancja pierwszej encji może korespondować z więcej niż jedną instancją drugiej encji. CZYM JEST DELPHI? – KRÓTKA CHARAKTERYSTYKA PROGRAMU

Delphi jest narzędziem do szybkiego i łatwego tworzenia aplikacji (ang. RAD – Rapid Application Development) dla Windows i oparty jest na języku programowania obiektowego Object Pascal.

Za pomocą Delphi możemy tworzyć aplikacje do zarządzania danymi wszelkiego typu – zarówno multimedialnymi, jak i graficznymi, dźwiękowymi czy animowanymi. Możemy także zarządzać bazami danych najprzeróżniejszych formatów. Program bazuje na filozofii elementów VCL (Visual Komponent Library), czyli bibliotece komponentów wizualnych. Posiadają one wypracowany kod wewnętrzny, zdolny przystosować się do jakiegokolwiek konkretnego zastosowania jedynie poprzez modyfikację pewnych charakterystyk nazywanych właściwościami. Dzięki temu programowanie w Delphi opiera się na kompletnym środowisku pracy wizualnej, gdzie większość naszego wysiłku ogranicza się do wybierania komponentów i przeciągnięcia ich do obszaru projektowania. Począwszy od tego momentu możemy dopasować cechy każdego użytego elementu, aby dostosować je do naszych celów. Na koniec możemy dopisać ręcznie kod, konieczny do skompletowania zadania. Delphi jest narzędziem dwukierunkowym: jeśli zmienimy cokolwiek we właściwościach jakiegoś elementu, np. etykietę, która pojawia się przy wejściu danych, automatycznie zmienia się kod, który Delphi generuje. Jeśli zaś zmienimy kod ręcznie, tzn. zapiszemy coś w pliku źródłowym, zmiany jakie zajdą, zostaną odzwierciedlone we właściwościach obiektu, a także na ekranie w odpowiednim momencie. Tak powinien wyglądać ekran komputera po uruchomieniu Delphi 6.0.

WYBRANE ELEMENTY ARCHITEKTURY ORAZ PROBLEMY PRACY Z BAZAMI DANYCH W DELPHI Aby umożliwić dostęp do lokalnych baz danych jak i do baz klient/serwer, Delphi udostępnia mechanizm BDE (Borland Database Engine). Jest to zbiór bibliotek DLL oraz narządzi umożliwiających dostęp do szeregu różnorodnych baz danych. W celu uzyskania dostępu do określonej bazy danych mechanizm BDE korzysta z tzw. aliasów (zbiór parametrów, które opisują połączenie z bazą danych). 1. Bazodanowe komponenty Delphi Komponenty służące do tworzenia baz danych w Delphi dzielą się na dwie kategorie: niewidoczne komponenty dostępu do baz danych i wizualne komponenty prezentacji danych. Oto ważniejsze komponenty: • TDataBase – komponent umożliwiający dostęp do bazy danych; • TTable – komponent umożliwiający dostęp do tabeli; • TQuery – jest on odpowiednikiem TTable, który umożliwia wykonywanie zapytań w języku SQL; • TDataSource – komponent ten łączy zbiór danych (TTable lub TQuery) z wizualnymi komponentami; • TDBEdit – komponent pozwalający na modyfikację pojedynczego pola; • TDBGrid - komponent ten pozwala na modyfikację oraz przeglądanie tabeli w formie siatki; • TDBNavigator – komponent służący do poruszania się po tabeli, przechodzenia w stan edycji, dopisywania nowego rekordu itp.; • TDBImage – komponent ten służy do wyświetlania obiektu binarnego, przechowywanego w formie obrazu; • TDBText – komponent umożliwiający wyświetlanie danych pochodzących z określonego pola bez możliwości ich modyfikacji. Komponenty bazodanowe umieszcza się na formularzach, tworząc w ten sposób interfejs użytkownika. 2. Moduł y danych Obiekt Data Module służy do przechowywania niewizualnych komponentów aplikacji. W obiekcie tym przechowywane są komponenty dostępu do danych. W czasie projektowania aplikacji komponent TDataModule dostępny jest jako widoczne okno, w którym programista może umieszczać niewizualne komponenty, aby ustawiać ich właściwości oraz tworzyć i przypisywać metody obsługi zdarzeń. Komponent TDataModule nie znajduje się na palecie komponentów, zatem aby go utworzyć, w czasie projektowania aplikacji należy wybrać opcję menu: FILE -> NEW, a następnie wybrać opcję Data Module. 3. Database Desktop Database Desktop jest narzędziem dołączonym do Delphi, które pozwala na bardzo wygodne zarządzanie oraz tworzenie struktur tabel relacyjnych baz danych. Database Desktop umożliwia tworzenie tabel w oparciu o sterowniki dostarczone wraz z pakietem Delphi. Pozwala również na budowę zapytań SQL, które można później zastosować w aplikacji. Narzędzie to umożliwia tworzenie tabel standardowych typów baz danych. Utworzenie nowej tabeli realizuje się poprzez wykonanie polecenia FILE -> NEW ->

TABLE. Rodzaj tabeli wskazuje się z listy rozwijalnej okna. Okno programu z wybranym typem tabeli Paradox przdstawiam poniżej.

3.1 Wł aś ciwoś ci tabel typu Paradox Tabele bazy Paradox są bardziej uniwersalne od innych typów baz danych i posiadają wiele interesujących właściwości, niedostępnych w innych typach tabel. Tworząc tabele typu Paradox w wersji 7, możemy określić m.in.: kontrolę poprawności wprowadzanych danych (Validity Checks); maskę wprowadzanych danych; indeksy dodatkowe do tabel typu Paradox (Secondary Indexes); integralność referencyjną; zabezpieczanie tabeli hasłem (Password Security); język tabeli (Table Language). Wyszukiwanie i filtrowanie danych W celu znalezienia rekordów w zbiorze danych w Delphi stosuje się trzy sposoby wyszukiwania: • • • • • • 4.

metoda Locate, która służy do przeszukiwania zbioru danych w celu znalezienia rekordu, wówczas znaleziony rekord staje się rekordem bieżącym; • metoda Lookup zwraca wartość wskazanych pól rekordu, które pasują do określonych kryteriów wyszukiwania; • metody FindKey oraz FindNearest: pierwsza polega na przeszukiwanie zbioru danych w celu znalezienia rekordu zawierającego w polach wskazane wartości; metoda FindNearest natomiast w przypadku nieznalezienia szukanego wzorca w tabeli, przemieszcza kursor do rekordu, którego wartości są najbardziej zbliżone do wartości przekazanych w parametrze wywołania metody. Delphi umożliwia również wprowadzanie filtrowania danych. W tym celu komponent TTable wyposażony został w dwie właściwości i jedno zdarzenie. Właściwość pierwsza to Filter, która określa warunek, według którego filtrowany będzie zbiór danych. Druga właściwość: Filtered aktywuje Filter. Do zdefiniowania warunku filtru dla zbioru danych można zastosować zdarzenie OnFilterRecord, które wywoływane jest za każdym razem, kiedy inny rekord staje się bieżącym rekordem i gdy jednocześnie aktywne jest filtrowanie. •

Innym sposobem ograniczania zbioru dostępnych rekordów jest zastosowanie zakresów. Zakres jest zbiorem sąsiadujących ze sobą indeksowanych rekordów, ograniczonym pewnymi wartościami zakresu. 5. Ję zyk SQL w Delphi Z pojęciem języka SQL bezpośrednio wiąże się pojęcie kwerendy. Kwerenda jest zleceniem dla programu bazy danych, mającym na celu odszukanie rekordów spełniających określone kryteria. Przykładem kwerendy może być zlecenie odszukania rekordu zawierającego dane osoby o podanym nazwisku lub odszukaniu wszystkich osób pochodzących z jednego miasta. W pierwszym przypadku wynikiem zapytania będzie jeden rekord, w drugim cała ich grupa. Język SQL (Structured Query Language- język zapytań strukturalnych) został zaprojektowany przez firmę IBM w celu sprawnej realizacji kwerend w relacyjnych bazach danych. Do wykonania kwerendy w Delphi służy komponent TQuery. Jej podstawowe właściwości to: SQL – zawiera tekst komendy języka SQL, która zostanie wykonana; DatabaseName – określa nazwę bazy danych, z którą został skojarzony zbiór danych; Params – zawiera parametry przekazywane do komendy SQL; Active – określa czy zbiór danych jest otwarty, czy nie. Podstawową komendą języka SQL jest komenda SELECT. Jej podstawowa składnią jest: • • • •

SELECT co FROM skąd, np. SELECT marka FROM samochody, dodanie klauzuli WHERE pozwala na umieszczenie w zapytaniu tylko tych rekordów, dla których warunek przyjmuje wartość TRUE. 6. Buforowanie danych Buforowanie pozwala na pobranie danych z bazy, lokalne przechowywanie ich i edycję, a następnie zatwierdzenie zmian w bazie danych poprzez jednorazową transmisję danych do bazy. 7. Raporty Raporty stanowią istotny element aplikacji baz danych. To za ich pomocą prezentowane są najczęściej wszystkie dane zwracane przez kwerendy czy tabele. Tworzenie raportu w Delphi składa się z kilku podstawowych etapów. Najważniejsze to: przygotowanie strony raportu (wstawienie komponentu TQuickRep z zakładki QReport), utworzenie sekcji w tej stronie, a w końcu wstawienie do sekcji komponentów drukujących dane zbioru danych. OPIS REALIZACJI PROJEKTU Celem jaki stawiałem sobie przed realizacją projektu było stworzenie bazy danych zawierających informacje o uczniach. Zdanie to realizowałem w kolejnych etapach. Oto one: 1. Przygotowanie głównego katalogu aplikacji (C:\Windows\Pulpit\Dyplom ); 2. Utworzenie tabel typu Paradox za pomocą Database Desktop: • Uczeń : Id (+) klucz główny, Imię (A – 30), Nazwisko (A –30). • Dane_osobowe: Id (+) klucz główny, Data_urodzenia (A-20), Miejsce_urodzenia (A-15), Adres (A-15), Telefon (A-9), Imiona_rodziców (A-20), Id_u (I) klucz obcy.

Oceny: Id (+) klucz główny, Imię_i_nazwisko (A-30), Zachowanie (A_20), Język_polski (N), Matematyka (N), Fizyka (N), Chemia (N), Informatyka (N) itd. • Klasa: Id (+) klucz główny, Imię (A-30), Nazwisko (A-30), Klasa (N). • Uspr. (godziny usprawiedliwione): Id(+) klucz główny, Wrzesień (N), Październik (N) .... Id_u (I) klucz obcy. • Nieuspr.: jak wyżej. 3. Określenie masek wprowadzanych danych i indeksów tabel (Secondary Index); 4. Utworzenie aliasu „Dyplom” i odpowiedniej ścieżki dostępu do tabel (Path); 5. Utworzenie formularza głównego i formularzy podrzędnych, powiązanie ich ze sobą i nadanie im nazw (właściwość Caption); 6. Wstawienie do projektu niezbędnych komponentów: TTable, TDataSource, TDBGrid, DBNavigator i wzajemne ich powiązanie (własności DataBaseName, TableName, DataSet, DataSource, MasterSource, Master Fields, IndexName, Active); 7. Dodanie do odpowiednich formularzy przycisków typu: Button, BitBtn i ustawienie ich własności typu Caption, Kind (zamknij, dodaj, edytuj, usuń itp.) oraz dodanie dodatkowych form do tych przycisków; 8. Dopisanie dla zdarzeń OnClick przycisków odpowiednich procedur; 9. Dodanie do formularzy formularzy przycisków, które umożliwiają filtrowanie rekordów odpowiednich tabel (własność Filtered oraz zdarzenie On FilterRecord komponentów TTable); 10. Skompilowanie programu i sprawdzenie działania aplikacji; 11. Utworzenie potrzebnych raportów (komponent TQuickRep). •

WNIOSKI Bez wątpienia tworzenie aplikacji bazodanowych wymaga wiele pracy i jest procesem ciągłym. Pocieszające jest jednak to, że Delphi czyni naszą pracę znaczne łatwiejszą niż inne środowiska programistyczne. Po stworzeniu pierwszej w życiu bazy danych można dojść do wniosku, że nie trzeba być fizykiem kwantowym, aby móc poprawnie zaprojektować bazę danych. Czas zainwestowany w stworzenie dobrej struktury bazy danych nie jest czasem straconym. Poprawnie zbudowana baza danych zapewnia wiele korzyści, umożliwia m.in.: • łatwą obsługę, proste zmiany w tabelach nie wpływają znacząco na zachowanie się całej reszty bazy; • proste modyfikowanie danych; • szybkie odczytywanie informacji, jeżeli tylko tabele są dobrze zaprojektowanie, a wszystkie relacje między nimi poprawnie zdefiniowane. Na zakończenie chciałbym stwierdzić, że moja baza danych zbierająca informacje o uczniach, których uczę jest tylko początkiem większego projektu, który mam zamiar stworzyć na podstawie doświadczeń jakie zdobyłem podczas pracy nad tym projektem. BIBLIOGRAFIA 1. Cantu M., Delphi 5. Praktyka programowania, Warszawa 2000. 2. Jakubowski A., Delphi 4. Tworzenie systemów baz danych, Gliwice 1999. 3. Lebiediewa S. Projektowanie problemowo zorientowanych baz danych, Wrocław 1995. 4. Marciniak A., Turbo Pascal 7.0, Poznań 1997. 5. Martin J., Organizacja baz danych, Warszawa 1983. 6. Snarska A., Ćwiczenia z Delphi 3.0, 4.0, 5.0, Warszawa 2000. 7. Teixeira S., Pachenko X., Delphi 4. Vademecum profesjonalisty, Gliwice 1999. 8. Teixeira S., Pachenko X., Delphi 5. Vademecum profesjonalisty (suplement), Gliwice 2000.

Opracował: mgr Andrzej Siwik