280 likes | 539 Views
SYSTEM BAZY DANYCH dBase. Cele i osiągnięcia: Uruchomić i założyć bazę danych dBase. Wprowadzenie.
E N D
SYSTEM BAZY DANYCH dBase Cele i osiągnięcia: Uruchomić i założyć bazę danych dBase
Wprowadzenie • System dBASE IIIumożliwia tworzenie tzw. relacyjnej bazy danych, gdzie podstawowymi składnikami bazy są relacje. Podejście relacyjne do danych wynika z faktu, że zawartość plików spełniających pewne warunki można traktować jako relacje matematyczne, do których stosuje się elementarną teorię relacjiKażdą relację w systemie bazy danych możemy przedstawić w postaci tablicyzawierającej szereg wierszy podzielonych na określoną liczbę kolumn. Zamiast określenia relacjaużywa się w dBase często określenia plik bazy danych, wiersze tablicy nazywa się rekordami, a jej kolumnypolami. Pliki bazy danych, zawierające relacje mają rozszerzenieDBF.
dBase • W przypadku dBASE III bazę danych może tworzyć wiele plików, przy czym jednocześnie otwartychmoże być najwyżej 9 plików. • Każdy plik składa się z nagłówka, w którym określona jest liczba rekordów i nazwy oraz charakterystyki pól tworzących rekord, oraz z rekordów zawierających dane. • Każdy rekord w pliku ma te samą strukturę, określoną podczas zakładania pliku bazy danych - długość rekordów i pól jest stała, bez względu na długość zapisywanej informacji. • Typ pola w rekordzie opisuje charakter danej, jaka będzie przechowywana w polu.
Podstawowe typy w dBASE III • System dBASE III akceptuje dane 5 podstawowych typów: • dane tekstowe - charakter field, • dane liczbowe - numeric field, • dane logiczne - logical field, • dane w postaci daty - date field, • wskaźnik do tzw. notatki (pola memo). Notatki zapisuje się do oddzielnego pliku o rozszerzeniuDBT.
Ograniczenia w dBase • Liczba rekordów w zbiorze max 1 miliard.Długość rekordu maks. 4000 bajtów, maks. 128 pól. W DBase IV max liczba pól w rekordzie 255, dług. rekordu też 4000 bajtów, w języku Clipper 5.0 mogą wystąpić maks. 1024 pola. • W dBase III+ w zbiorze .dbt (memo) treść pola memo wynosi maks. 5000 znaków, w dBase IV jest dowolna (ograniczona dostępną pamięcią), w języku Clipper 5.0 rozmiar pola memo ograniczony jest do 64 KB. • Poza plikami bazy danych, zawierającymi relacje (pliki o rozszerzeniu DBF) i plikami notatek (DBT), w systemie istnieją inne typy plików, zawierające informacje wspomagające działanie programu. Największe znaczenie mają pliki indeksowe o nazwach określonych przez użytkownika i rozszerzeniach NDX. Pliki o rozszerzeniu MEMzawierają dane i zmienne, trzymane podczas działania programu w pamięci operacyjnej. Pliki FMT zawierają szablony, wg których wyświetlana jest informacja z bazy na ekranie monitora. Pliki FRM zawierają schematy tworzenia raportów przez drukarki. • Pliki indeksowe mają za zadanie skrócenie czasu przeszukiwania pliku bazy danych. Plik indeksowy umożliwia uszeregowanie rekordów wg informacji zawartych w określonym polu. Założenie pliku indeksowego nie powoduje uporządkowania rekordów w pliku bazy danych (DBF), lecz jej uporządkowanie w ramachpliku indeksowego (NDX).W pliku indeksowym umieszcza się zawartość wybranego pola i nr rekordu, w którym znajduje się pole wg kolejności alfabetycznejZ plikiem bazy danych może być skojarzonych wiele plików indeksowych, ale równocześnie może być otwartych nie więcej niż 7.
Fazy użytkowania bazy danych Proces użytkowania bazy danych można podzielić na 2 zasadnicze fazy. • Faza pierwsza - zakładania bazy danych, podczas której należy opisać strukturę rekordów w plikach baz danych, a następnie wpisać do plików określoną liczbę danych początkowych (założyć rekordy - wypełnić ich pola). • Od momentu założenia zaczyna się faza druga, związana z przetwarzaniem i konserwacją informacji zawartych w bazie.
Praca w dBase może odbywać się na 2 sposoby: W trybie konwersacyjnym, bezpośrednim tzw. trybie z kropką w trybie a asystentem. W trybie konwersacyjnymdBase wyświetla kropkę będącą zaproszeniem do konwersacji.Użytkownik wpisuje instrukcję, która jest natychmiast wykonywana. Po wykonaniu ponownie znak zaproszenia.Kilka ostatnich instrukcji jest zapamiętanych, można do nich wrócić, poprawić i nakazać wykonanie ponowne. W trybie z asystentemna ekranie jest wyświetlane menu dostępnych operacji. Użytkownik wybiera pozycję i jest dopytywany o szczegóły poprzez kolejne zagnieżdżone menu.Na podstawie odpowiedzi jest budowana i uruchamiana instrukcja.Uruchamiamy tryb z asystentem przez wpisanie ASSIST w dBase III+ lub uruchomienie Centrum Sterowania w dBase IV.W tym trybie użytkownik wybiera odpowiednie pozycje z menu i potwierdza klawiszem <Enter>. Program pomocniczy standardowo włączony jest po uruchomieniu dBase, można go także wywołać pisząc polecenie assist lub naciskając <F2>. Pomoc – klawisz F1.
Zadanie Utworzyć w dBase bazę danychZnajomi(NR, IMIE, NAZWISKO, DATA_UR, TELEFON, ADRES)i wykonać kolejne zadania z tą bazą związane.
UruchomieniedBase • DBASE.EXE <Enter>Na dyskietce: dbase.bat – wersja ang.lub Polonus.bat – wersja polska • Zgłasza się nazwa dBase i wersjaprogramu oraz F1 - help, Napisz komendę lub ASSIST lub naciśnij Enter. Createnazwa_bazy – tworzenie bazy UseNazwa_bazy – otwarcie bazy z rozszerzeniem DBF USENazwa_bazyINDEXnazwa_pliku_ind – otwarcie bazy z automatyczną modyfikacją plików indeksowych DOnazwa_programu – uruchomienie programu z rozszerzeniem PRG Quit – wyjście z programu
Tworzenie bazy danych w dBase • W systemie znakiem zachęty jest kropka. Można wykorzystać opcje menu lub wpisać polecenie po znaku zachęty. • W dBase III+ będąc w Assist, wybiera się opcję utwórz (create). Wybiera się plik bazy danych, dysk, wpisuje nazwę bazy i wchodzi do edytora ekranowego definicji bazy. • W dBase IV po uruchomieniu Centrum Sterowania wybiera się z menu opcję utwórz. • W trybie z kropką wpisać polecenie: createnazwa_bazy (można skracać do 4 liter - tu crea) • Zad 1. Utworzenie bazy z wiersza poleceń: W linii poleceń (po kropce) wpisz komendę, np. CREATE ZnajomiWprowadzamynazwy i typy pól, domyślnie tekstowe, by zmienić naciskamyspacje.Po wprowadzeniu CTRL END kończy definiowanie struktury tabeli i zapisuje plik.Pytanie czy wprowadzamy rekordy:Input data record now? (Y/N)Po naciśnięciu Y można wprowadzić dane.
Zad. 2. Wprowadzanie danych i przeglądanie danych • Wprowadzanie danych a) bezpośrednio po założeniu struktury bazy danych - j. w. b) poleceniemAPPEND lub BROWSE • Zad. 3. Przeglądanie danych:Wykonać polecenia zaznaczone na czerwono:LIST oraz LIST OFF LIST nr, imie, nazwisko, telefon OFF LIST FOR ime=‘Mariola' nr, imie, nazwisko OFF LIST FOR imie=‘Karol' OR imie=‘Mariola' nr, nazwisko OFF • Można również określić zakres: List All- cała baza List next x - kolejnych x rekordów LIST NEXT 2 List rest- wszystkie rekordy od bieżącego do końca
Polecenie Display • Podobne w działaniu do LIST jest polecenie display • Przykłady: 1) DISPLAY – wyświetla bieżący rekord 2) goto top Display rest -rekordy od bieżącego do końca 3) display all - wyświetla całą bazę 4) display telefon for nazwisko=‘Nowak'
Polecenie Browse - Buszuj • Polecenie browse umożliwia przeglądanie i poprawianie rekordów. • Pisze się komendę Browse lub wybiera z menu Update Browse (albo Koryguj Buszuj w Polonus) • Przechodzenie między polami przy użyciu <Home> i <End> a miedzy rekordami klawiszami kursor w górę i w dół. • Wramach pola kursor przesuwamy klawiszami strzałki kursora lewo, prawo. • Jeśli pole nie mieści się na ekranie to ekran można przesuwać <Ctrl>-> lub <Ctrl><- • ZastosujBROWSE do modyfikacji i uzupełnienia bazy
Modyfikowanie bazy danych • Append - dodawanie nowych rekordów (Koryguj Dołącz lub UpdateAppendalbo zwykłe polecenie) • Edit - poprawa bieżącego rekordu • Browse - umożliwia edycję grupy rekordów w trybie ekranowym. Edytuje zawartość bazy - przeglądanie i poprawianie rekordów • Insert [before] [blank] - wstawia nowy rekord za lub (z Before) przed bieżącym rekordem, po czym przechodzi w tryb edycji ekranowej (jeśli nie było opcji Blank). • Change - umożliwia bezpośrednią modyfikację w trybie ekranowym zawartości wyspecyfikowanych rekordów i pól w aktualnej bazie danych
Zad. 4. Zastosować polecenia:APPEND, EDIT, BROWSE, INSERT, CHANGE Często trzeba zmienić rekord bieżący.Stosuje się polecenie locate z parametrem forlocate [<zakres.] [for <warunek>] [while <warunek>]np. locate for nazwisko=‘NOWAK‘ EDITZmiana rekordu bieżącego jest możliwa poleceniem gotogoto/go [record] <wyrażenie> [bottom/top]Np. goto 10go top - na początek bazygoto bottom - na koniec bazyDelete - zaznacza bieżący rekord do skasowania Pack - usuwa fizycznie z bazy danych rekordy zaznaczone do skasowania
Porządkowanie bazy danych • W celu łatwiejszego odnajdywania rekordów należy je uporządkować. Np. ułożyć w kolejności alfabetycznej wg nazwiska i imienia. Najlepszą metodą jest indeksowaniebazy wg określonych pól. Indeksowanienie zmienia fizycznego ułożenia rekordów, ale tworzy specjalny zbiór indeksowy zawierający informacje o logicznej kolejności rekordów. Zbiór indeksowy jest automatycznie modyfikowany (porządkowany) przy wpisywaniu nowego rekordu (jeśli bazę otworzy się łącznie z odpowiednim plikiem indeksowym). Plik indeksowy tworzy się poleceniem index on <wyrażenie> to <plik_indeksowy> [unique] - tworzy plik indeksowy skojarzony z aktywną bazą danych. Pola kluczowe są układane alfabetycznie, chronologicznie lub numerycznie (rosnąco). Opcja Unique powoduje pomijanie powtarzających się kluczyindex on nazwa_pola_i[+nazwa_pola_j+..] to nazwanp. index on nazwisko+imie to nazw gdzie nazwisko i imie są nazwami pól, wg których ma następować indeksowanie, a nazw jest nazwą pliku indeksowego.
Sortowanie bazy • Inną metodą porządkowania jest sortowanie bazy. Jest to czynność pracochłonna polegająca na fizycznej zmianie kolejności rekordów w pliku bazy danych. • Każde wprowadzenie nowego rekordu powoduje konieczność ponownego posortowania bazy, z tego względu metoda ta jest mniej popularna i może być stosowana w odniesieniu do baz o małej liczbie rekordów. • Do sortowania bazy danych stosuje się polecenie:sort to nowy_plik on nazwa_pola • Można sortować w porządku rosnącym dodając parametr /A (domyślnie) lub malejącym – parametr /D • Pełna forma polecenia:sort to <nowy plik> on <pole1> [/a] [/c] [/d] [, <pole2> [/a] [/c] [/d] ... [<zakres]] [for <warunek.] [while <warunek>]
Zadania 5, 6. Indeksacja bazy • Zad. 5. Zaindeksować bazę Znajomina pola nazwisko i imie - utworzyć plik nazw.indindex on nazwisko+imie to nazwause – zamkniecie bazyuse znajomi index nazwa – otwarcie bazy z uwzględnieniem pliku indeksowego, by możliwa była automatyczna modyfikacja indeksów list nr, imie, nazwisko, telefon off - lista wymienionych pól, bez numerów wierszy • Zad. 6. Posortować bazę wg nazwiska i wyprowadzić wyniki do pliku znajomi1.dbfSORT TO znajomi1 on nazwisko
Programowanie baz danych w dBase • System dBase umożliwia pisanie programów na obsługę bazy. • Przykład programu, który na podstawie wprowadzonego imienia i nazwiska sprawdza czy osoba w bazie istnieje i jeżeli nie to dopisuje nowy rekord automatycznie wypełniając pola imie i nazwisko. W przeciwnym wypadku umożliwia dokonanie zmian w danych istniejącej osoby.W przykładzie tworzone są 2 zmiennemimie i mnazwisko, w których przy użyciu poleceń get i read zapamiętane są dane wprowadzone przez użytkownika. • Do przeszukiwania wykorzystano funkcję found(). • Program można napisać pod dowolnym edytorem ASCIIa można wykorzystać edytor tekstowy bazy poleceniem:modify command plik_programunp. modify command dopisz.Po wpisaniu naciśniecie Ctrl End zapisuje program na dysku, dodając rozszerzenie prg, tutaj dopisz.prg.
Zad. 7. Program dopisz. prg Zad. 7. Napisać i uruchomić program dopisz. PrgMODIFY COMMAND plik_programu - uruchomienie edytora tekstu.Uruchomić polecenie: MODIFY COMMAND dopiszWpisać treść:set talk offset bell offuse znajomiindex on nazwisko+imie to nazwuseuse znajomi index nazwclearmnazwisko=space(20)mimie=space(20)@2,4 say 'Podaj nazwisko'@2,30 get mnazwisko@4,4 say 'Podaj imie'@4,30 get mimiereadseek mnazwisko+mimieif .not. found()append blankreplace nazwisko with mnazwiskoreplace imie with mimieelseeditendifset talk onset bell on Po wpisaniu nacisnąć CTR END - zapisanie programu na dysku.
Zad. 8. Uruchomić powyższy program dopisz.prg: • Uruchomić powyższy program (dopisz.prg):DO dopiszDopisać kilka rekordówUzupełnić dane: BROWSEZad. 9. Zamknąć bazę danych i otworzyć ponownie oraz przetestować dopisywanie i usuwanie danychUSE – zamyka bazę, USE nazwa – otwiera bazęUSE Znajomi – otwiera bazę Znajomi.dbf Uruchomić: LIST, BROWSEDopisać przez APPEND rekord z nazwiskiem na X, np. Xawery1 i Xawery2oraz z nazwiskiem NOWY i datą urodzenia 12/31/10 (mc/dz/rok)Sprawdzić przez LIST ALLSkasować nazwiska na 'X' poleceniemDELETE ALL FOR Nazwisko='X' .OR. Nazwisko='x'DELETE ALL FOR data_ur >= CTOD('12/31/10')
Działanie niektórych funkcji dBase • Zad. 10. Przetestować działanie funkcji dBaseWykonać polecenia:x=5z=3*x?x?z? abs(-5)? int(2.34)? 2^3? 2**3? date()? time()? mod (7,5)? sqrt(16)Wyniki skopiować do Painta i zapisać w pliku Nazwisko.GIFBazę danych Znajomi.dbf skopiować na nazwę nazwisko.dbf, gdzie nazwisko – swoje nazwisko.
Zad. 11Uruchomienie programu batchowego, który uruchamia dbasei wywołuje program osnpoz.prg a: cd \dbase echo off dbase osnpoz.prg Podczas pracy w dBase program osnpoz.prg można uruchomić przez polecenie DO osnpoz