E.14: Tworzenie aplikacji internetowych i baz danych oraz administrowanie bazami.

EGZAMIN PRAKTYCZNY E.14-01-16.05

SIERPIEŃ 2016 ZADANIE 3

Zadanie egzaminacyjne

Wykonaj projekt polegający na opracowaniu zapytań do bazy i stworzeniu witryny internetowej wykorzystującej te zapytania. Wykorzystaj do tego celu pakiet XAMPP z bazą MySQL i narzędziem phpMyAdmin. Stronę internetową zbuduj przy wykorzystaniu edytora zaznaczającego składnię lub edytora WYSIWYG.

Aby wykonać zadanie, zaloguj się na konto Egzamin bez hasła. Na pulpicie znajdziesz archiwum ZIP o nazwie baza2.zip, zabezpieczone hasłem: Baza4Egzamin Plik należy rozpakować.

plik sportowcy.sql z archiwum baza2.zip
-- phpMyAdmin SQL Dump
-- version 4.4.14
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Czas generowania: 06 Paź 2015, 10:21
-- Wersja serwera: 5.6.26
-- Wersja PHP: 5.6.12

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Baza danych: `sportowcy`
--

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `sportowiec`
--

CREATE TABLE IF NOT EXISTS `sportowiec` (
  `id` int(10) unsigned NOT NULL,
  `imie` text,
  `nazwisko` text
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;

--
-- Zrzut danych tabeli `sportowiec`
--

INSERT INTO `sportowiec` (`id`, `imie`, `nazwisko`) VALUES
(1, 'Anna', 'Kowalska'),
(2, 'Monika', 'Nowak'),
(3, 'Ewelina', 'Nowakowska'),
(4, 'Janina', 'Przybylska'),
(5, 'Maria', 'Kowal'),
(6, 'Ewa', 'Nowacka');

-- --------------------------------------------------------

--
-- Struktura tabeli dla tabeli `wyniki`
--

CREATE TABLE IF NOT EXISTS `wyniki` (
  `id` int(10) unsigned NOT NULL,
  `dyscyplina_id` int(10) unsigned NOT NULL,
  `sportowiec_id` int(10) unsigned NOT NULL,
  `wynik` decimal(5,2) DEFAULT NULL,
  `dataUstanowienia` date DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=latin1;

--
-- Zrzut danych tabeli `wyniki`
--

INSERT INTO `wyniki` (`id`, `dyscyplina_id`, `sportowiec_id`, `wynik`, `dataUstanowienia`) VALUES
(1, 1, 1, '12.40', '2015-10-14'),
(2, 1, 1, '12.00', '2015-10-06'),
(3, 1, 2, '11.80', '2015-10-14'),
(4, 1, 2, '11.90', '2015-10-06'),
(5, 1, 3, '11.50', '2015-10-14'),
(6, 1, 3, '11.56', '2015-10-06'),
(7, 1, 4, '11.70', '2015-10-14'),
(8, 1, 4, '11.67', '2015-10-06'),
(9, 1, 5, '11.30', '2015-10-14'),
(10, 1, 5, '11.52', '2015-10-06'),
(11, 1, 6, '12.10', '2015-10-14'),
(12, 1, 6, '12.00', '2015-10-06'),
(13, 3, 1, '63.00', '2015-11-11'),
(14, 3, 1, '63.60', '2015-10-13'),
(15, 3, 2, '64.00', '2015-11-11'),
(16, 3, 2, '63.60', '2015-10-13'),
(17, 3, 3, '60.00', '2015-11-11'),
(18, 3, 3, '61.60', '2015-10-13'),
(19, 3, 4, '63.50', '2015-11-11'),
(20, 3, 4, '63.60', '2015-10-13'),
(21, 3, 5, '70.00', '2015-10-07'),
(22, 3, 6, '68.00', '2015-10-07');

--
-- Indeksy dla zrzutów tabel
--

--
-- Indexes for table `sportowiec`
--
ALTER TABLE `sportowiec`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `wyniki`
--
ALTER TABLE `wyniki`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT dla tabeli `sportowiec`
--
ALTER TABLE `sportowiec`
  MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=7;
--
-- AUTO_INCREMENT dla tabeli `wyniki`
--
ALTER TABLE `wyniki`
  MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=23;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Wyniki swojej pracy zapisz w folderze stworzonym na pulpicie konta Egzamin. Jako nazwy folderu użyj swojego numeru PESEL.

Operacje na bazie danych

Baza danych sportowcy jest zgodna ze strukturą przedstawioną na rysunku. Tabela wyniki ma dwa klucze obce: dyscyplina_id oraz sportowiec_id odpowiadające relacja między tabelami.

E.14 egzamin praktyczny

Dla uproszczenia należy pominąć tabelę dyscyplina i przyjąć, że pole dyscyplina_id zawiera identyfikatory dyscyplin sportowych zgodnie z tabelą.

E.14 egzamin praktyczny

Wykonaj następujące operacje na bazie danych:

Wybierz program XAMPP Control Panel i uruchom usługi Apache oraz MySQL. Wybierz w przeglądarce adres //localhost/, a następnie narzędzie phpMyAdmin:
  • utwórz nową bazę danych o nazwie sportowcy;
  • zaimportuj bazę sportowcy.sql z wcześniej rozpakowanego archiwum;
  • wykonaj zrzut ekranu po imporcie. Zrzut zapisz w formacie PNG i nazwij import.png. Na zrzucie powinny być widoczne elementy wskazujące na poprawnie wykonany import (okno programu phpMyAdmin, widoczna baza danych, np. tabele, pola);
  • stwórz następujące zapytania SQL do bazy sportowcy i sprawdź poprawność ich działania:
    • zapytanie 1: liczące ilość rekordów w tabeli sportowiec,
    • zapytanie 2: wybierające imię i nazwisko sportowca o id=1,
    • zapytanie 3: liczące średni wynik z dyscypliny rzut oszczepem dla sportowca o id=1,
    • zapytanie 4: wybierające najlepszy wynik dla dyscypliny rzut oszczepem;
  • zapytania zapisz w pliku kwerendy.txt. Ponumeruj je, stosując format zapisu: „zapytanie 1: ... treść zapytania...”.

Witryna internetowa

Witryna internetowa przedstawiona jest na rysunku.

E.14 egzamin praktyczny


Cechy witryny:
  • nazwa pliku: oszczep.php,
  • zastosowany właściwy standard kodowania polskich znaków;
  • tytuł strony widoczny na karcie przeglądarki; „Rzut oszczepem”;
  • arkusz stylów w pliku o nazwie styl_oszczep.css, prawidłowo dołączony do pliku z kodem strony;
  • podział strony na bloki: baner, główny, stopka zrealizowany za pomocą znaczników sekcji (np. znacznika div);
  • zawartość baneru: nagłówek pierwszego stopnia o treści: „Klub sportowy: rzut oszczepem”;
  • zawartość bloku głównego: nagłówek pierwszego stopnia o treści „Nasz rekord: ”, dalej skrypt, dalej oznaczenie jednostki „m”; poniżej napisu znajduje się tabela wypełniona wartościami z bazy danych;
  • zawartość stopki: paragraf (akapit) o treści: „Klub sportowy”, poniżej: „Stronę opracował: ”, dalej wpisany numer PESEL zdającego.

Styl CSS witryny internetowej

Cechy stylu CSS:
  • definicja w pliku styl_oszczep.css, styl prawidłowo podpięty pod plik z kodem strony;
  • baner i stopka: kolor tła: #773D24, kolor czcionki: biały, wyrównywanie tekstu: do środka, marginesy wewnętrzne: 20px;
  • sekcja główna: kolor tła: #B97E65, wysokość: 600px;
  • tabela; szerokość: 80% strony, odstępy między komórkami 30px;
  • komórka tabeli: kolor tła: #DEAD98;
  • paragraf: wyrównywanie tekstu do środka.

Skrypt połączenia z bazą

Dla ułatwienia w tabeli podano wybór funkcji PHP do obsługi bazy MySQL.
Wymagania dotyczące skryptu:
  • napisany w języku PHP:
  • nie jest wymagane sprawdzenie, czy operacja powiodła się, i wyświetlenie stosownego komunikatu;
  • skrypt powinien połączyć się z serwerem MySQL, parametry połączenia: localhost, użytkownik root bez hasła;
  • skrypt powinien wybrać bazę danych o nazwie sportowcy;
  • na końcu działania skryptu powinno zostać obsłużone zamknięcie połączenia z serwerem;
  • działanie skryptu:
    - skrypt wysyła do bazy zapytanie 4 (z pliku kwerendy.txt);
    - w kodzie strony, po tekście: „Nasz rekord:” wypisuje wartość zwróconą zapytaniem 4. (wartość powinna zawierać się w nagłówku pierwszego stopnia);
    - skrypt wysyła do bazy zapytanie 1 (z pliku kwerendy.txt);
    - w kodzie strony, po tekstem: „Nasz rekord...” tworzy tabelę o liczbie komórek równej wartości zwróconej zapytaniem 1. Tabela powinna mieć stałą liczbę kolumn równą 2. Na przykład, jeśli liczba rekordów jest równa 3, to jest tworzona tabela o dwóch kolumnach i dwóch wierszach, z czego w drugim wierszu jest tylko jedna komórka. Należy założyć, że baza będzie się rozrastać i nie trzeba na sztywno tworzyć sześciu komórek, tak jak na rysunku 2.

E.14 egzamin praktyczny


UWAGA: po zakończeniu pracy zgłoś przewodniczącemu ZN gotowość do nagrania płyty CD/DVD z rezultatami pracy. W folderze z Twoim numerem PESEL powinny się znajdować pliki: import.png, kwerendy.txt, oszczep.php, styl_oszczep.css, ewentualnie inne przygotowane przez Ciebie pliki. Po nagraniu płyty CD/DVD sprawdź liczbę oraz poprawność działania zapisanych plików.

Czas przeznaczony na wykonanie zadania wynosi 150 minut.

Ocenie podlegać będą 4 rezultaty:
  • operacje na bazie danych,
  • witryna internetowa,
  • styl CSS witryny internetowej,
  • skrypt połączenia z bazą.