Przeczytaj
Zadanie 1. Fanka
Gosia mieszka w Kucykowie i jest fanką lokalnej kobiecej drużyny piłki nożnej Galop Kucykowo. Gosia zbiera informacje o wszystkich wynikach oficjalnych meczów tej drużyny.
Informacje te zapisuje w plikach: Druzyny.txt
, Sedziowie.txt
, Wyniki.txt
. Pierwszy rekord w każdym z plików jest nagłówkiem. Dane w każdym rekordzie oddzielone są znakiem tabulacji.
Pliki potrzebne do rozwiązania tego zadania znajdują się w załączniku:
Zadanie zostało opracowane przez Centralną Komisję Egzaminacyjną i pojawiło się na egzaminie maturalnym z informatyki w maju roku (poziom rozszerzony, część ). Cały arkusz można znaleźć na stronie internetowej CKE.
W pliku Druzyny.txt
każdy rekord danych zawiera informacje o drużynie przeciwnej:
Id_druzyny
– identyfikator drużyny, liczba z zakresu od 1 do 100;Nazwa
– nazwa drużyny, tekst o maksymalnej długości 30 znaków;Miasto
– miasto pochodzenia drużyny, tekst o maksymalnej długości 30 znaków.
Przykład Druzyny.txt
:
W pliku Sedziowie.txt
każdy wiersz danych zawiera informacje o jednym sędzi:
Nr_licencji
– numer licencji, tekst o długości 6 znaków;Imie
– imię sędziego, tekst o maksymalnej długości 20 znaków;Nazwisko
– nazwisko sędziego, tekst o maksymalnej długości 50 znaków.
Przykład Sedziowie.txt
:
W pliku Wyniki.txt
każdy wiersz danych zawiera informacje o wynikach jednego meczu rozegranego przez drużynę Galop Kucykowo:
Data_meczu
– data rozegrania meczu (w formacie rrrr‑mm‑dd);Rodzaj_meczu
– rodzaj meczu (T – towarzyski, L – ligowy, P – pucharowy; jeden znak);Gdzie
– miejsce rozegrania meczu (W – wyjazdowy, D – u siebie; jeden znak);Id_druzyny
– identyfikator drużyny przeciwnej, liczba z zakresu od 1 do 100;Nr_licencji
– numer licencji sędziego meczu, tekst o długości 6 znaków;Bramki_zdobyte
– bramki zdobyte przez Galop Kucykowo, liczba z zakresu od 0 do 20;Bramki_stracone
– bramki stracone przez Galop Kucykowo, liczba z zakresu od 0 do 20.
Przykład Wyniki.txt
:
Wykorzystaj dostępne narzędzia informatyczne oraz dane zawarte w plikach druzyny.txt
, sedziowie.txt
i wyniki.txt
i wykonaj zadania. Odpowiedzi poprzedzone numerami zadań zapisz w pliku tekstowym wyniki.txt
.
Rozwiązanie zadania
Przygotuj nowy plik bazy danych o nazwie: Fanka.accdb
.
Import danych z plików tekstowych i relacje w Microsoft Access
Rozpoczynamy od przeniesienia danych udostępnionych w zadaniu (w postaci plików tekstowych) do tabel systemu bazodanowego, nie zapominając o sprawdzeniu typów danych oraz o ustanowieniu odpowiednich kluczy podstawowychkluczy podstawowych i relacjirelacji (powiązań) pomiędzy atrybutami tabel:
![](https://static.zpe.gov.pl/portal/f/res-minimized/R1ADP1VOfaqbA/1665414556/7FL9NuPRGdTf7tSA1dvDnlx5J3GVMyFS.png)
Film dostępny pod adresem /preview/resource/R1ADP1VOfaqbA
Film nawiązujący do treści: Import danych z plików tekstowych i relacje w Microsoft Access.
Import danych z plików tekstowych i relacje w LibreOffice Base
Importujemy tabelę Druzyny, otwierając plik tekstowy druzyny.txt
w narzędziu LibreOffice Calc, nie zmieniając przy tym domyślnych opcji importu pliku tekstowego. Upewniamy się, że w opcjach wyboru separatora zaznaczono pole przy tabulatorze:
![Zrzut ekranu przedstawia okno: Importuj tekst - [druzyny.txt]. W sekcji importuj w polu Zestaw znaków wybrano: Unicode (UTF‑8). W polu jęzuk wybrano: Domyślny- Polski. W polu od wiersza wpisano 1. W sekcji Operacje separatora wybrano opcję: Rozdzielony. Następnie zaznaczono pole wyboru Tabulator.](https://static.zpe.gov.pl/portal/f/res-minimized/RYR6F2291Cfq6/1665414581/MhPuf0IHXFWk9WZ8e23b1iAspSg340m.png)
Po otwarciu pliku w arkuszu kalkulacyjnym z menu Edycja
wybieramy opcję Zaznacz
, następnie Zaznacz obszar danych
lub naciskamy kombinację klawiszy Ctrl + *
. W ten sposób zaznaczymy wszystkie dane, znajdujące się w arkuszu:
![Zrzut ekranu przedstawia plik: druzyny.txt w programie LibreOffice Calc. Kliknięto opcję: Edycja, następnie wybrano: zaznacz a następnie wybrano opcję: Zaznacz obszar danych.](https://static.zpe.gov.pl/portal/f/res-minimized/R1K3w0KDiAx9e/1665414582/UE2jVrz8ntXH3ZbC4ftcpnBsRuoF5LAu.png)
Pora skopiować zaznaczony obszar danych kombinacją klawiszy Ctrl + C
, po czym przejść do narzędzia LibreOffice Base i upewnić się, że w oknie Baza danych
aktywną zakładką jest zakładka Tabele
:
![Zrzut ekranu przedstawia profil LibreOffice Base. Z Baza danych wybrano: Tabele.](https://static.zpe.gov.pl/portal/f/res-minimized/R1L4Y2lH5c6Kb/1665414582/2Ath0CWCD8BRj8tqF050S7tyVV5M5bO9.png)
Teraz możemy wkleić informacje ze schowka za pomocą kombinacji klawiszy Ctrl + V
. Spowoduje to otwarcie kreatora Kopiuj tabelę
. Poprawną konfigurację zatwierdzamy przyciskiem Dalej
, po czym przenosimy wszystkie skopiowane kolumny do nowo utworzonej tabeli:
![Zrzut ekranu przedstawia okno dialogowe kopiuj tabelę. W polu nazwa tabeli wpisano Druzyny. W sekcji opcje wybrano: Definicje i dane. Poniżej zaznaczono pole wyboru: Użyj pierwszego wiersza jako nazw kolumn. Czerwonym prostokątem zaznaczono przycisk Dalej. W drugim oknie dialogowym: Zastosuj kolumny czerwonym prostokątem zaznaczono przycisk strzałki skierowanej w prawą stronę z kreską. Okno posiada takie przyciski jak: Pomoc, wstecz, dalej, utwórz, anuluj.](https://static.zpe.gov.pl/portal/f/res-minimized/R15OLVjAb00k4/1665414582/1PJLivyjy2DX73VGAAGDbpAIXSuRtZo1.png)
W trzecim kroku kreatora upewniamy się co do typu wartości każdej kolumny – w przypadku tabeli Druzyny wszystkie atrybuty są typu Tekst [ VARCHAR ]
.
Nie należy także zapomnieć o ustanowieniu w tabeli klucza podstawowego – klikając prawym przyciskiem myszy w atrybut Id_druzyny
, zaznaczamy opcję Klucz główny
:
![Zrzut ekranu przedstawia okno: Formatowanie typu. Prawym przyciskiem myszy kliknięto na: Id_druzyny. Następnie zaznaczono opcję: Klucz główny.](https://static.zpe.gov.pl/portal/f/res-minimized/Ry1KbSC2XnuTk/1665414583/1fLl3z16sYGMII8AB3pApS8gFm2SRdhf.png)
Spowodowało to dodanie małej ikonki klucza przy wskazanym atrybucie. Możemy zakończyć import tabeli, klikając przycisk Utwórz
.
Analogicznie postępujemy z pozostałymi tabelami, importując dane przy użyciu narzędzia LibreOffice Calc jako pośrednika w procesie przenoszenia plików tekstowych do bazy danych. Pamiętajmy, aby zawsze w pierwszym kroku kreatora importu zaznaczona była opcja Definicje i dane
. Typy danych dobieramy zgodnie z opisem kolumn w treści zadania.
Warto jeszcze zauważyć, iż tabela Wyniki nie zawiera atrybutu, który mógłby stać się kluczem głównym – w związku z tym pozwalamy kreatorowi dodać własny klucz podstawowy, np. o nazwie Id_meczu
:
![Zrzut ekranu przedstawia okno dialogowe: Kopiuj tabelę. Poniżej w polu nazwa tabeli wpisano: Wyniki. W sekcji Opcje wybrano opcję: Definicje i dane, utwórz nowe pole jako klucz główny oraz użyj pierwszego wiersza jako nazwy kolumn. W pole nazwa wpisano: Id_meczu . Okno to zawiera takie przyciski jak: pomoc, wstecz, dalej, utwórz, anuluj.](https://static.zpe.gov.pl/portal/f/res-minimized/R1IeObPBOW0Gb/1665414583/mHOIGm4VIHaoW7hxIGiY1R6WOxK3k9Ce.png)
W celu stworzenia relacji pomiędzy zaimportowanymi tabelami z menu wybieramy Narzędzia
| Relacje
, po czym dodajemy wszystkie trzy tabele do projektu relacji.
Ustanawiamy następujące powiązania pomiędzy kluczami podstawowymi i obcymi:
![Zrzut ekranu przedstawia relacje tabel: Druzyny, Wyniki, Sedziowie. Z pola Id_druzyny w tabeli Druzyny wychodzi prosta z oznaczeniem 1, następnie dąży do pola: Id_druzyny z podpisem n. Z tabeli wyniki od pola: Nr_licencji wychodzi prosta z podpisem n, następnie dąży do pola Nr_licencji z oznaczeniem 1 w tabeli Sedziowie.](https://static.zpe.gov.pl/portal/f/res-minimized/R1OoRAxtdpPNT/1665414584/1xef4ngAjy4FEitAr1h6SU6IylTwCOYg.png)
Zadanie 1.1
1.1 a: Podaj, ile towarzyskich, ile ligowych oraz ile pucharowych meczów rozegrała drużyna Galop Kucykowo z drużynami ze swego miasta.
1.1 b: W którym roku drużyna Galop Kucykowo rozegrała najwięcej meczów z drużynami ze swego miasta (łącznie wszystkie rodzaje meczów)? Podaj rok i liczbę tych meczów.
Rozwiązanie w Microsoft Access
Rozwiązanie 1.1 a
![](https://static.zpe.gov.pl/portal/f/res-minimized/Rg877UIAB2pip/1665414585/1vTetLLeKvFURSzP1cpV41uII6tu2a49.png)
Film dostępny pod adresem /preview/resource/Rg877UIAB2pip
Film przedstawiający rozwiązanie zadania.
Rozwiązanie 1.1 b
![](https://static.zpe.gov.pl/portal/f/res-minimized/R1YUzAUyLRRSN/1665414600/1DUXwL3PWS0O0QgdOVf2995f8b0hnMc7.png)
Film dostępny pod adresem /preview/resource/R1YUzAUyLRRSN
Film przedstawiający rozwiązanie zadania.
Rozwiązanie w LibreOffice Base
Aby utworzyć nową kwerendękwerendę w LibreOffice Base, należy w sekcji Baza danych
kliknąć w zakładkę o nazwie Kwerendy
, po czym wybrać opcję Utwórz projekt kwerendy
:
![Zrzut ekranu przedstawia zaznaczono kwerendy z sekcji Bazdy danych. W sekcji Zadania zaznaczono: Utwórz projekt kwerendy.](https://static.zpe.gov.pl/portal/f/res-minimized/RAes3ENjJx0vo/1665414617/UIv9fmdjSNFHgrI34TymilhAntOxDThu.png)
Rozwiązanie 1.1a
Projekt kwerendy 1a
wyznaczającej liczbę towarzyskich, ligowych oraz pucharowych meczów rozegranych przez Galop Kucykowo z drużynami ze swego miasta wygląda analogicznie jak w MS Access – rekordy grupujemy według atrybutu Rodzaj_meczu
, zaś funkcja agregująca zlicza liczbę rekordów.
![Zrzut ekranu przedstawia relacje pomiędzy tabelą Wyniki i Druzyny. Poniżej w dla Miasta w sekcji widoczny nie jest zaznaczone pole wyboru.](https://static.zpe.gov.pl/portal/f/res-minimized/R164bhLYtRgyZ/1665414617/2SSuSt8D5gQmR2umUyDLtWn0dhpbCeRX.png)
Warto zwrócić uwagę, iż wartości kolumny Miasto nie chcemy pokazywać w rezultatach – dlatego nie zaznaczono pola Widoczny dla tego atrybutu. Natomiast kryterium wartości tej kolumny jest oczywiście wymagane w grupowaniu, aby zliczane były tylko wyniki meczów z drużynami z Kucykowa.
Rozwiązanie 1.1b
Projekt kwerendy 1b
wyznaczającej rok, w którym drużyna Galop Kucykowo rozegrała najwięcej meczów z drużynami ze swego miasta, prezentuje się następująco:
![Zrzut ekranu przedstawia relacje pomiędzy tabelą Wyniki i Druzyny. Poniżej pole: YEAR("Data_meczu"), id_meczu, Miasto. W tabela, Wyniki dla id_meczu oraz Druzyny dla Miasto. W sortowanie malejąco dla Id_meczu. W widoczny pola wyboru zaznaczone dla data_meczu oraz Id_meczu. W funkcja: Grupuj dla Data_meczu, liczba dla Id_meczu. Kryterium 'Kucykowo' dla Miasto. W prawym górnym roku przy ikonie leja z przekreślonym znakiem równa się, wybrano liczbę 1.](https://static.zpe.gov.pl/portal/f/res-minimized/Rraf1mx9jRhDz/1665414617/2GYz1Oi5HJMWmxhDAHWtyqvtjobtzz5S.png)
Do wyjęcia roku z kolumny Data_meczu posłużono się funkcją o łatwej do zapamiętania nazwie YEAR()
. Warto też zauważyć konieczność posortowania wyników malejąco, według wyznaczonej wartości liczby meczów.
Co ciekawe, argumentem funkcji agregującej, która oblicza liczbę meczów, mógł być dowolny atrybut tabeli Wyniki – w końcu zliczamy rekordy tej tabeli, a nie wartości w którejkolwiek z kolumn. W przedstawionym rozwiązaniu zdecydowano się na atrybut Id_meczu
.
Liczbę zwracanych przez zapytanie rezultatów ograniczono do jednego wiersza (patrz: czerwona ramka) – w ten sposób otrzymujemy rok z największą liczbą meczów z drużynami z Kucykowa, jako że wyniki uprzednio posortowano malejąco.
Poprawna odpowiedź 1.1a:
Liczba meczów:
L 113
P 25
T 6
Poprawna odpowiedź 1.1b:
w roku 2007
liczba meczów rozegranych z drużynami ze swojego miasta: 21
Schemat oceniania
3 punkty – za prawidłową odpowiedź w całym poleceniu (oba podpunkty), w tym:
1 punkt – podpunkt 1a – za poprawną liczbę meczów,
2 punkty – podpunkt 1b - w tym: 1 punkt za podanie prawidłowego roku oraz 1 punkt za prawidłową liczbę meczów rozegranych z drużynami ze swego miasta,
0 punktów – za odpowiedź błędną albo za brak odpowiedzi.
Zadanie 1.2
Podaj listę zawierającą nazwy drużyn, z którymi drużyna Galop Kucykowo ma zerowy bilans bramkowy, tzn. łączna liczba bramek zdobytych we wszystkich meczach rozegranych z daną drużyną jest równa łącznej liczbie bramek straconych w tych meczach.
Rozwiązanie w Microsoft Access
![](https://static.zpe.gov.pl/portal/f/res-minimized/RUfQACROE3q4G/1665414618/2HqzRl2iQvKUUGgDf9LYkRcWjFtNYFr7.png)
Film dostępny pod adresem /preview/resource/RUfQACROE3q4G
Film nawiązujący do polecenia drugiego.
Rozwiązanie w LibreOffice Base
W kwerendzie wyznaczamy wartość nowego atrybutu wirtualnego Bilans
, którego wartość powstaje jako różnica w liczbie bramek zdobytych i straconych. Poszukiwana przez nas wartość to bilans zerowy, co uwzględniono w kryterium.
Jednak w zapytaniu nie chodzi o bilans pojedynczego spotkania, lecz o bilans wszystkich meczów z daną drużyną. Stąd rekordy zgrupowano według nazw poszczególnych zespołów oraz zsumowano bilanse wszystkich rozegranych z nimi spotkań:
![Zrzut ekranu przedstawia relacje pomiędzy tabelą Wyniki i Druzyny. Poniżej pole: Nazwa, "Bramki_zdobyte" - "bramki stacjonarne". W alias wprowadzono Bilans dla pola Bramki zdobyte- stracone. W tabela, Druzyny dla Nazwa. W widoczny pola wyboru zaznaczone dla Nazwa oraz Bramki zdobyte - stracone. W funkcja: Grupuj dla Nazwa, suma dla bramki zdobyte - stracone. Kryterium 0 dla Bramki zdobyte - stracone.](https://static.zpe.gov.pl/portal/f/res-minimized/R48W69ybVIVrl/1665414633/12wcmvnzszWh7UcBj8hcfWhSx2OhYvJk.png)
Poprawna odpowiedź:
Nocne Pumy
Zwinne Mewy
Schemat oceniania
2 punkty – za prawidłową odpowiedź,
1 punkt – za podanie poprawnych dwóch ID_druzyny (84 i 48),
0 punktów – za odpowiedź błędną lub brak odpowiedzi.
Zadanie 1.3
Podaj liczby meczów wyjazdowych – wygranych, przegranych i zremisowanych – drużyny Galop Kucykowo.
Rozwiązanie w Microsoft Access
![](https://static.zpe.gov.pl/portal/f/res-minimized/R8WANPZTmFFqq/1665414633/18cD2gCTQbf6DIo9BW7IixdNeO7sPNfP.png)
Film dostępny pod adresem /preview/resource/R8WANPZTmFFqq
Film przedstawiający rozwiązanie zadania.
Rozwiązanie w LibreOffice Base
Instrukcję IIf
znaną z MS Access możemy zastąpić w LibreOffice Base funkcją CASEWHEN()
:
![Zrzut ekranu przedstawia przedstawia edycję bazy fanka.odb W pole czerwonym prostokątem zaznaczono: CASEWHEN("Bramki_zdobyte" - "Bramki_stracone").](https://static.zpe.gov.pl/portal/f/res-minimized/RxFvFiSIS1vYE/1665414666/1H1jlAKbflhgBFABztBWQiAq1NaSzLRp.png)
Zawartość wpisana w czerwoną ramkę jest analogiczna do rozwiązania przedstawionego dla programu MS Access:
Jest to zagnieżdżona instrukcja, która realizuje logikę trzech możliwych scenariuszy – w zależności od wartości bilansu bramkowego, wartością nowego atrybutu Rezultat meczu
będzie słowo: Wygrana
, Przegrana
lub Remis
.
Dysponując takimi trzema wartościami jednoznacznie definiującymi wynik spotkania, łatwo już dokonać grupowania ze zliczeniem liczby rekordów pasujących do każdej z tych trzech kategorii.
Poprawna odpowiedź:
przegrana: 452
remis: 170
wygrana: 579
Schemat oceniania
3 punkty – za prawidłową odpowiedź, po jednym punkcie za każdy rekord,
2 punkty – za odpowiedź uzyskaną bez zastosowania filtra na mecze wyjazdowe (Przegrana: 910, Remis: 352, Wygrana: 1185),
0 punktów – za inną błędną odpowiedź albo za brak odpowiedzi.
Słownik
zwany też kluczem głównym (ang. primary key) to jedno lub więcej pól (atrybutów), których wartość jednoznacznie identyfikuje każdy rekord w tabeli; taka cecha klucza nazywana jest unikatowością (unikalnością); klucz podstawowy służy do powiązania rekordów w jednej tabeli z rekordami z innej tabeli
(inaczej: zapytanie) czynność polegająca na zbieraniu lub poszukiwaniu informacji w bazach danych; kwerendy mogą mieć na celu wyłącznie pobranie danych, jak i ich usuwanie, dodawanie czy modyfikację
powiązanie logiczne występujące między dwoma tabelami realizowane za pomocą kluczy albo specjalnej tabeli (tabela łącząca); w oryginalnej nomenklaturze, którą wprowadził E. F. Codd, relacja oznaczała podzbiór iloczynu kartezjańskiego, czyli tabelę; współcześnie używamy tego terminu raczej w odniesieniu do powiązań logicznych pomiędzy tabelami, niż do samych tabel