Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Klasa II

Bazy danych

SPIS TREŚCI

Co to jest baza danych?

Baza danych (ang. database) jest zbiorem zorganizowanych informacji przechowywanych w pamięci komputera i przetwarzanych przez ten komputer. Z bazami danych spotkałeś się już wielokrotnie, np. przy korespondencji seryjnej. W bazie danych informację przechowujemy w tabelach. Tabele zbudowane są z rekordów, które obejmują grupę powiązanych ze sobą informacji (np. dane osobowe, parametry produktu, itp.). Każdy rekord składa się z pól, w których umieszczamy pojedyncze informacje (np. imię, nazwisko, adres, wiek, telefon, itp.).

Bazą danych zarządza specjalne oprogramowanie komputerowe zwane systemem zarządzania bazą danych (ang. database management system, DBMS). Z systemem tym komunikuje się użytkownik w celu wyszukiwania, usuwania, dodawania informacji do bazy danych. Do współdziałania z DBMS używany jest specjalny język programowania zwany SQL (ang. Structured Query Language). Język ten jest obecnie powszechnie stosowany przez programistów baz danych oraz w programach obsługujących bazy.


do podrozdziału  do strony 

Tworzenie bazy danych

W Libreoffice programem DBMS jest aplikacja Base. Omówimy teraz krok po kroku procedurę tworzenia prostej bazy danych.

Najpierw musimy określić, jakie informacje chcemy przechowywać w bazie danych. Załóżmy, iż będą to imiona, nazwiska i telefony naszych znajomych. Dane mogą wyglądać następująco:

Nazwisko Imię Telefon
Haliński Tomasz 721544371
Bogacz Piotr 637668912
Jemioła Alicja 643216716
... ... ...

Skoro wiemy, co chcemy mieć w bazie danych, uruchamiamy aplikację Base. Na początku Base wyświetla okienko dialogowe kreatora bazy danych:

Jeśli chcesz utworzyć nową bazę danych, wybierasz opcję Utwórz nową bazę danych (HSQLDB jest skrótem angielskiej nazwy Hyper SQL DataBase) i klikasz przycisk Dalej >. Kreator przejdzie do drugiego kroku i pojawi się nowe okienko:

Tutaj decydujesz, czy twoja baza danych ma być dostępna (zarejestrowana) dla innych aplikacji Libreoffice (np. chcesz jej używać do korespondencji seryjnej w procesorze tekstu Write). Nie potrzebujemy rejestrować tej ćwiczeniowej bazy danych, zatem wybieramy opcję drugą. Dodatkowo oznaczamy opcję edycji bazy danych (inaczej nic nie mógłbyś w niej zmienić) i klikamy przycisk Zakończ.

Baza danych jest przechowywana jako plik na dysku. Dzieje się tak ze względów bezpieczeństwa oraz dlatego, iż dane mogą zajmować dużo miejsca. Wybierz zatem odpowiedni katalog do zapisu pliku bazy danych, a plikowi nadaj nazwę znajomi. Kliknij w przycisk Zapisz.

Pusta baza danych zostanie utworzona i zapisana w pliku znakomi .odb. (odb = open document base). Base wyświetli okienko zarządzania twoją bazą danych:

Z lewej strony wybierasz element bazy danych, z którym chcesz pracować. Elementy te omówimy później. Jeśli chcesz wprowadzać dane do bazy, musisz mieć odpowiednią tabelę. Zaczniemy zatem od jej utworzenia. Kliknij w Utwórz projekt tabeli...

Pojawi się nowe okno, w którym definiujemy pola tabeli danych. Pola te później staną się kolumnami w tabeli. Definicja pola polega na nazwaniu go oraz określeniu rodzaju przechowywanych w polu informacji. W kolumnie Opis możesz umieścić dodatkowe informacje na temat poszczególnych pól tabeli.

W każdej tabeli definiuje się zwykle jedno z pól jako tzw. klucz główny. Po co jest on nam potrzeby? Otóż wyobraź sobie, iż masz dwóch znajomych o tym samym nazwisku i imieniu:

Nazwisko Imię Telefon
Haliński Tomasz 721544371
Bogacz Piotr 637668912
Jemioła Alicja 643216716
Jemioła Alicja 712621755
... ... ...

Są to różne osoby. Aby umożliwić komputerowi rozróżnienie ich, dodajemy pole klucza, które zwykle przechowuje numer rekordu:

Klucz Nazwisko Imię Telefon
0 Haliński Tomasz 721544371
1 Bogacz Piotr 637668912
2 Jemioła Alicja 643216716
3 Jemioła Alicja 712621755
... ... ... ...

Warunkiem, aby dane pole mogło być kluczem głównym, jest unikalność każdej wartości klucza, tzn. w tabeli nie mogą wystąpić rekordy o takim samym kluczu. Nazwijmy to pole ID (and. identifier – identyfikator). Jako typ pola wybierz Integer [INTEGER]. Integer jest to liczba całkowita. Nazwa w klamrach używana jest w języku SQL, nie martw się tym teraz.

Gdy ustawisz typ pola, na spodzie okna ustaw opcję Wartość automatyczna na Tak. Uwolni to nas od konieczności ręcznego numerowania rekordów, Base będzie za nas wstawiać odpowiedni numer w polu ID. Dodatkowo Base umieszcza przy nazwie pola symbol klucza.

Przechodzimy do kolejnego pola danych. Nazwij je Nazwisko i jako typ zostaw Tekst [VARCHAR]. Typ ten oznacza tekst o zmiennej liczbie znaków. W opcjach na dole okna ustaw: Wpis wymagany na Tak (Base nie pozwoli ci wprowadzić rekordu bez nazwiska) i Długość na 50. Długość oznacza maksymalną liczbę znaków, które będzie można wpisać w to pole.

Pole Imię zdefiniuj podobnie jak pole Nazwisko. Pozostaw opcję Wpis wymagany ustawioną na Nie (możesz przecież nie znać imienia znajomego).

Ostatnim polem jest Telefon. Zostawiamy typ Tekst, ponieważ w numerze telefonu być może zechcemy wstawiać spacje lub pauzy w celu rozdzielenia cyfr, np. 549-126-388. Długość ustawiamy na 25.

Pola tabeli są zdefiniowane. Tabela musi zostać zapisana w pliku bazy danych, zanim będziemy mogli wprowadzać do niej dane. Kliknij ikonę dyskietki i wybierz nazwę dla tabeli, np. Znajomi:

Po zapisaniu tabeli okno projektu tabeli możesz już zamknąć. W oknie Tabele pojawi się twoja tabela:

Wprowadzimy teraz kilku znajomych. W sekcji Tabele kliknij dwukrotnie myszką tabelę Znajomi. Otworzy się widok tabeli danych:

Wiersze tabeli będą rekordami danych. Kolumny zawierają zdefiniowane przez nas pola. Pierwsza kolumna jest polami klucza głównego. Wpisywanie danych rozpoczynasz od drugiej kolumny. Wpisz pięciu fikcyjnych znajomych wraz z numerami ich telefonów (jeśli pole jest za krótkie na wprowadzany tekst, to możesz je sobie poszerzyć przeciągając granicę przy nazwach pól):

Zwróć uwagę, iż Base automatycznie numeruje wprowadzane rekordy. W kolumnach Imię i Telefon można pozostawić puste pole, gdyż nie jest ono obowiązkowe. Jednak nie możesz pozostawić pustego pola Nazwisko. Spróbuj wprowadzić nowy rekord, w którym jest wypełnione tylko pole Imię:

Gdy spróbujesz zatwierdzić ten rekord (np. klawiszem Enter), zobaczysz okienko błędu:

W okienku jest informacja w języku angielskim, co spowodowało błąd – wewnętrznie Base pracuje z bazą danych w języku SQL i to właśnie instrukcja INSERT INTO (wstaw do) języka SQL wygenerowała błąd, ponieważ nastąpiła próba wstawienia pustej wartości w pole Nazwisko, które nie może być puste (zastrzegliśmy to przy definiowaniu pól w projekcie tabeli). Zatwierdź okienko kliknięciem w OK, po czym kliknij prawym przyciskiem myszki w ołówek w szarej kolumnie po lewej stronie i z menu kontekstowego wybierz opcję Cofnij: wprowadzanie danych. Wadliwy rekord zniknie z tabeli.

Zamknij okienko Widoku tabeli danych, powrócisz do głównego okna Base. W dolnym panelu kliknij strzałkę w dół przy Brak i zmień na Dokument.

Zobaczysz wtedy fragment zawartości wybranej tabeli.

Tabelę można również utworzyć przy pomocy kreatora. Ten sposób może być wygodniejszy. Stworzymy nową tabelę o nazwie Znajomi2, w której umieścimy następujące pola:

ID Nazwisko Imię Telefon Email

W oknie Zadania kliknij w Użyj kreatora, aby utworzyć tabelę... Zostanie otwarte okno:

W pierwszym kroku mamy dostęp do różnych przykładowych tabel z gotowymi polami danych, które możemy wybrać dla tworzonej przez nas tabeli. Kategoria określa rodzaj tabel, do których będziemy mieli dostęp. Pola możemy wybierać z dowolnych tabel. Ustaw kategorię Prywatne, a następnie rozwiń listę Tabele przykładowe i wybierz tabelę Adresy.

Uzyskasz dostęp do definicji pól tej tabeli. Przenieś do Wybrane pola (przez dwukrotne kliknięcie):

Nie przejmuj się, jeśli nazwa wybranego pola nie jest dokładnie taka, jaką chciałbyś mieć w swojej tabeli. W następnym kroku będzie to można łatwo zmienić. Teraz kliknij przycisk Dalej >, aby przejść do kroku 2:

Dla pola Nazwisko ustaw Wpis wymagany na Tak.

Wybierz pole NumerTelefonu i zmień jego nazwę na Telefon. Tak samo zmień AdresEmail na Email.

Przyciski - i + na spodzie listy wybranych pól pozwalają usuwać pole lub dodawać nowe. Przyciski ze strzałkami ^ i v przesuwają wybrane pole w górę lub w dół listy, jeśli chcesz mieć w tabeli określoną kolejność pól (ma to znaczenie np. przy późniejszym imporcie danych do tabeli). My tutaj nie potrzebujemy z tych przycisków korzystać, kliknij zatem w Dalej >, aby przejść do kroku 3:

Ten krok pozwala zdefiniować pole klucza głównego. Pozostaw wybraną pierwszą opcję Dodaj klucz główny automatycznie, zaznacz jedynie Wartość automatyczna, aby Base sam wpisywał wartości do pola klucza głównego. Kliknij przycisk Dalej >. Przechodzimy do kroku 4:

Ten krok utworzy tabelę. Nazwij ją Znajomi2. Gdy teraz klikniesz przycisk Zakończ, pojawi się widok danych tabeli, w którym możesz już umieszczać swoje dane w tabeli Znajomi2:

Wpisz 5 fikcyjnych znajomych, po czym zamknij okno widoku danych. Powrócisz do głównego okna Base:

Jeśli w bazie danych pojawią się zmiany, które nie zostały jeszcze zapisane w pliku na dysku, to na ikonie dyskietki ukaże się czerwona kropka. Aby uaktualnić plik bazy danych, kliknij ikonę dyskietki lub naciśnij klawisze Ctrl+S.

Zamknij aplikację Base i uruchom ją ponownie. Tym razem otworzymy naszą bazę znajomi. W kreatorze wybierz drugą opcję:

W polu Ostatnio używane powinna znajdować się nazwa twojej bazy danych. Jeśli z jakiś powodów jej tam nie ma, to kliknij w przycisk Otwórz i wyszukaj plik bazy danych na swoim dysku. Kliknij w przycisk Zakończ. Baza zostanie odczytana i zobaczysz okno główne Base. Przejdź do sekcji Tabele, gdzie powinieneś zobaczyć swoje tabele Znajomi i Znajomi2:


do podrozdziału  do strony 

Import danych

Dane możemy w prosty sposób zaimportować do tabeli bazy danych z arkusza kalkulacyjnego. W tym celu wykonamy poniższe ćwiczenie, które pokaże, jak wczytać do tabeli bazy danych informację z pliku csv (comma-seperated values – dane rozdzielone przecinkami).

Pobierz poniższy plik na dysk swojego komputera:

Jest to plik tekstowy z danymi rozdzielonymi średnikami:

Plik zawiera dane o mieszkańcach. W pierwszym wierszą znajdują się nazwy pól rekordów, w następnych wierszach są rekordy. Każdy rekord zawiera dane o jednym mieszkańcu: imię, nazwisko, adres e-mail i miasto zamieszkania.

Uruchom arkusz kalkulacyjny LibreOffice Calc i wczytaj do niego plik mieszkancy.csv. Przy wczytywaniu pojawi się okno importu:

W okienku tym nic nie musisz zmieniać, kliknij w przycisk OK.  Plik zostanie wczytany i pojawi się w arkuszu:

Nie zamykaj arkusza kalkulacyjnego i uruchom aplikację LibreOffice Base. Utwórz pusta bazę danych i nadaj jej nazwę obywatele:

Ustaw teraz okna Base i Calc, tak aby się nie zasłaniały. W arkuszu Calc chwyć lewym przyciskiem myszki zakładkę mieszkancy i przeciągnij ją na okno Base do sekcji Tabele. Pojawi się okno dialogowe kopiowania tabeli:

Zmień nazwę tabeli na Mieszkancy. Wybierz opcję Utwórz nowe pole jako klucz główny, po czym kliknij w przycisk Utwórz. Base utworzy tabelę z danych pobranych z arkusza kalkulacyjnego:

Kliknij dwukrotnie lewym przyciskiem myszki tabelę Mieszkancy. Pojawi się okno widoku danych. Zwróć uwagę, iż rekordy są teraz numerowane w polu klucza od 1, a nie od 0. W niczym to nie przeszkadza.

Ważne jest tylko to, aby każdy rekord miał inną wartość w polu ID. Przejdź na koniec tabeli.

Pole klucza nie jest automatycznie wypełniane. Musimy zatem sami poustawiać sobie parametry tabeli. Zamknij okno widoku danych, po czym kliknij tabelę Mieszkancy prawym przyciskiem myszki i z menu kontekstowego wybierz opcję Edycja:

Pojawi się okno projektu tabeli:

Wybierz w nim kolejne pola i ustaw opcje:

ID

Wartość automatyczna: Tak

Imie

Długość: 50

Nazwisko

Wpis wymagany: Tak
Długość: 50

Email

Długość: 100

Miasto

Długość: 100

Zapisz zmiany. Zamknij okno projektu, po czym ponownie otwórz okno widoku danych tabeli. Na końcu dodaj nowy rekord z wymyśloną osobą. Pole klucza ID będzie automatycznie uzupełniane przez Base.

Zamknij okno widoku danych. Zapisz bazę w pliku. Tabela została dodana.


do podrozdziału  do strony 

Wyszukiwanie informacji

Do wyszukiwania informacji w bazie danych służą kwerendy (ang. queries). Wykonamy proste ćwiczenie, które pokaże nam, jak działa kwerenda. Pobierz na dysk swojego komputera bazę danych: handlowcy.odb. Uruchom program LibreOffice Base i otwórz w nim ten plik bazy danych.

Baza danych zawiera tabelę o nazwie Handel. Kliknij dwukrotnie lewym przyciskiem myszki tę tabelę w sekcji Tabele:

Tabela zawiera 1000 rekordów opisujących sprzedaż towarów. Rekordy posiadają następujące pola:

ID

Pole klucza głównego, automatycznie numerowane przez bazę danych.

Data_transakcji

Typ Data, pole wymagane, określa dzień, miesiąc i rok sprzedaży towaru.

Nazwa_towaru

Typ tekst, długość 100, pole wymagane, określa nazwę sprzedanego towaru.

Cena_towaru

Typ liczba z dwoma cyframi po przecinku, pole wymagane, określa cenę sprzedanego towaru.

Kolor_towaru

Typ tekst, długość 20, pole niewymagane.

Symbol_sklepu

Typ tekst, długość 50, pole wymagane, określa sklep, w którym dokonano sprzedaży towaru.

Miasto

Typ tekst, długość 50, pole wymagane, określa miasto, w którym odbyła się sprzedaż.

Nr_sprzedawcy

Typ tekst, długość 50, pole wymagane, określa sprzedawcę, który dokonał sprzedaży towaru.

W panelu nawigacyjnym Base kliknij Kwerendy. Widok w okienku roboczym zmieni się następująco:

Kwerenda wyszukuje w tabelach bazy danych informacje i wyniki umieszcza w tabeli wynikowej kwerendy. Załóżmy, iż na podstawie tabeli Handel chcielibyśmy otrzymać informację tylko o dacie sprzedaży, nazwie towaru oraz jego cenie.

W sekcji Zadania kliknij opcję Utwórz projekt kwerendy...

Najpierw musisz wybrać tabelę, z której kwerenda będzie pobierała informację. W naszej bazie danych jest tylko jedna tabela: Handel. Dodaj ją do kwerendy, po czym zamknij okienko Dodawania tabeli. Przejdziesz do widoku projektu kwerendy. U góry widzisz tabelę, która będzie współpracowała z kwerendą. Ustaw sobie odpowiednie rozmiary elementów:

W dolnej sekcji określa się kolumny tabeli wynikowej kwerendy. Ponieważ w wynikach chcesz mieć datę sprzedaży, nazwę i cenę towaru, to w tabelce u góry kliknij dwukrotnie myszką w każde z tych pól:

W wierszu Pole zostały umieszczone nazwy pól z wybranej tabeli.

W wierszu Alias możesz dla tych pól określić inne nazwy, które pojawią się w tabeli wyniku kwerendy.

W wierszu Tabela dla każdego pola znajduje się nazwa tabeli, z której to pole pochodzi. U nas jest to tabela Handel.

W wierszu Widoczny określasz, czy wybrane pole ma się pojawiać w tabeli wynikowej.

Kwerenda jest gotowa. Teraz należy ją uruchomić, aby otrzymać tabelę wynikową. Naciśnij klawisz F5. Kwerenda zostanie wykonana przez bazę danych i w wyniku otrzymasz jej tabelę wynikową:

Wróćmy do projektu kwerendy, naciśnij klawisz F4. W obecnym stanie tablica wynikowa kwerendy ma 1000 wierszy, ponieważ uwzględnia sprzedaż wszystkich towarów. Załóżmy jednak, że interesują nas tylko te transakcje, których wartość przekroczyła 100 zł. W tym celu do projektu kwerendy musimy dodać kryterium, w kolumnie Cena_towaru i w wierszu Kryterium wpisz:

Jeśli ponownie uruchomisz kwerendę (F5), to w tabeli wynikowej otrzymasz tylko transakcje na sumę większą od 100 zł:

Jeśli daną kwerendę będziesz chciał używać w przyszłości, to możesz ją zapisać w bazie danych. Kliknij w dyskietkę na pasku narzędziowym i wpisz nazwę dla kwerendy:

Twoja kwerenda pojawi się w sekcji Kwerendy:

Usuń podgląd dokumentu (w sekcji Kwerendy kliknij w strzałkę obok Dokument i wybierz opcję Brak):

 Wróć do edytora kwerend (kliknij nazwę kwerendy prawym przyciskiem myszki i z menu kontekstowego wybierz opcję Edycja).

Ręczne wpisywanie kryterium w projekcie kwerendy jest niewygodne, dlatego utworzymy w prosty sposób kwerendę z parametrem. W kolumnie Cena_towaru i wierszu Kryterium skasuj liczbę 100 i zamiast niej wpisz dwukropek (oznacza, że dane będzie wprowadzał użytkownik za pomocą klawiatury), po którym wpisz nazwę parametru (dowolne słowo, jednak takie, abyś wiedział, co wprowadzić):

Gdy uruchomisz kwerendę (klawisz F5), to przed wyświetleniem tabelki wynikowej kwerendy baza danych zapyta cię o wartość parametru. Pojawi się okienko dialogowe Parametr wejścia:

W polu Wartość wpisz wartość ceny, powyżej której kwerenda ma wyszukać sprzedane towary (w kryterium kwerendy jest parametr >:cena) i kliknij przycisk OK. Np dla cena=150 otrzymamy wynik:

Zapisz w bazie kwerendę (kliknij w ikonę dyskietki u góry okienka lub naciśnij klawisze Ctrl+S).

Zamknij okienko projektu kwerendy.

W podobny sposób utwórz kwerendy wyszukujące:


do podrozdziału  do strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.