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

EGZAMIN PRAKTYCZNY E.14-01-16.05

MAJ 2016 ZADANIE 1

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 WYSTWYG.
Aby wykonać zadanie, zaloguj się na konto Egzamin bez hasła. Na pulpicie znajdziesz archiwum ZIP o nazwie baza1.zip, zabezpieczone hasłem: Baza!Baza
Plik należy rozpakować.
plik szkola.sql z archiwum baza1.zip

-- phpMyAdmin SQL Dump
-- version 4.4.14
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Czas generowania: 30 Wrz 2015, 09:36
-- 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: `szkola`
--

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

--
-- Struktura tabeli dla tabeli `ocena`
--

CREATE TABLE IF NOT EXISTS `ocena` (
  `id` int(10) unsigned NOT NULL,
  `przedmiot_id` int(10) unsigned NOT NULL,
  `uczen_id` int(10) unsigned NOT NULL,
  `ocena` int(10) unsigned DEFAULT NULL,
  `dataWystawienia` date DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;

--
-- Zrzut danych tabeli `ocena`
--

INSERT INTO `ocena` (`id`, `przedmiot_id`, `uczen_id`, `ocena`, `dataWystawienia`) VALUES
(1, 1, 2, 5, '2015-09-03'),
(2, 1, 2, 6, '2015-09-03'),
(3, 1, 1, 5, '2015-09-03'),
(4, 1, 1, 6, '2015-09-03'),
(5, 1, 2, 1, '2015-09-03'),
(6, 1, 2, 1, '2015-09-03'),
(7, 1, 2, 4, '2015-09-03'),
(8, 4, 1, 3, '2015-09-10'),
(9, 4, 1, 4, '2015-09-15'),
(10, 4, 1, 3, '2015-09-10'),
(11, 4, 1, 4, '2015-09-15'),
(12, 4, 1, 5, '2015-09-10'),
(13, 4, 1, 5, '2015-09-15'),
(14, 4, 2, 3, '2015-09-22'),
(15, 4, 2, 1, '2015-09-15'),
(16, 4, 2, 3, '2015-09-22'),
(17, 4, 2, 1, '2015-09-15');

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

--
-- Struktura tabeli dla tabeli `uczen`
--

CREATE TABLE IF NOT EXISTS `uczen` (
  `id` int(10) unsigned NOT NULL,
  `imie` text,
  `nazwisko` text,
  `PESEL` text,
  `klasa` text
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

--
-- Zrzut danych tabeli `uczen`
--

INSERT INTO `uczen` (`id`, `imie`, `nazwisko`, `PESEL`, `klasa`) VALUES
(1, 'Ewa', 'Kowalska', '00000000001', '1a'),
(2, 'Jan', 'Kowalski', '00000000002', '1a');

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

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

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

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT dla tabeli `ocena`
--
ALTER TABLE `ocena`
  MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=18;
--
-- AUTO_INCREMENT dla tabeli `uczen`
--
ALTER TABLE `uczen`
  MODIFY `id` int(10) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=4;
/*!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
Baza danych szkola jest zgodna jest ze strukturą przedstawioną na rysunku 1. Tabela ocena ma dwa klucze obce: przedmiot_id oraz uczen_id odpowiadające relacjom między tabelami.

E.14 egzamin praktyczny

Dla uproszczenia operacji, pomiń tabelę przedmiot i przyjmij, że pole przedmiot id zawiera identyfikatory przedmiotów zgodne z tabelą 1.

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 szkola;
  • zaimportuj bazę szkola.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 szkola i sprawdź poprawność ich działania:
     – zapytanie 1: wybierające wszystkie imiona i nazwiska z tabeli uczen,
     – zapytanie 2: wybierające imię i nazwisko ucznia o id=2,
     – zapytanie 3: wybierające oceny z przedmiotu język polski dla ucznia o id=2,
     – zapytanie 4: liczące średnią ocen z przedmiotu język polski dla ucznia o id= 2;
  • zapytania zapisz w pliku kwerendy.txt. Ponumeruj je, stosując format zapisu: „zapytanie 1: ... treść zapytania...”.

Witryna internetowa

E.14 egzamin praktyczny

Witryna internetowa przedstawiona jest na rysunku 2.

Cechy witryny:
  • nazwa pliku: polski.php,
  • zastosowany właściwy standard kodowania polskich znaków;
  • tytuł strony, widoczny na karcie przeglądarki: „Szkoła Ponadgimnazjalna”;
  • arkusz stylów w pliku o nazwie: styl.css, prawidłowo dołączony do pliku z kodem strony;
  • podział strony na bloki: baner, panele lewy i prawy, stopka zrealizowany za pomocą znaczników sekcji (np. znacznika div);
  • zawartość banera: nagłówek pierwszego stopnia o treści: „Oceny uczniów: język polski”;
  • zawartość panelu lewego: nagłówek drugiego stopnia o treści: „Lista uczniów: ” poniżej lista numerowana wypełniana za pomocą skryptu; ”, 
  • zawartość panelu prawego: nagłówek drugiego stopnia o treści: „Uczeń: ”, dalej skrypt; paragraf (akapit) o treści: „Średnia ocen z języka polskiego:”, dalej skrypt;
  • zawartość stopki: nagłówek trzeciego stopnia o treści: „Zespół Szkół Ponadgimnazjalnych”, poniżej paragraf o treści: „Stronę opracował: ”, dalej wpisany numer PESEL zdającego.

Styl CSS witryny internetowej

Cechy stylu CSS:
  • definicja w pliku styl.css, styl prawidłowo podpięty pod plik z kodem strony;
  • formatowanie banera: kolor tła: #3A7AD9, wyrównanie tekstu: do środka, wysokość 50px;
  • formatowanie panelu lewego: kolor tła: #5D93E2, wysokość: 400px, szerokość: 30%; 
  • formatowanie panelu prawego: kolor tła: #88B0EC, wysokość: 400px, szerokość: 70%;
  • formatowanie stopki: kolor tła:#3A7AD9, wyrównanie tekstu: do prawej strony.

Skrypt połączenia z bazą

W tabeli 2 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 szkola;
  • na końcu działania skryptu powinno zostać obsłużone zamknięcie połączenia z serwerem;
  • działanie skryptu w lewym panelu:
    - skrypt wysyła do bazy zapytanie 1 (z pliku kwerendy.txt);
    - następnie wyświetla wszystkie zwrócone w wyniku zapytania rekordy w liście numerowanej. Należy założyć, że baza będzie się rozrastać, więc skrypt powinien wyświetlać taką liczbę wierszy jaką Zwróci zapytanie (nie należy na sztywno wypisywać dwóch wierszy, jak w przykładzie);
  • działanie skryptu w prawym panelu:
    - skrypt wysyła do bazy zapytanie 2 (z pliku kwerendy.txt);
    - w kodzie strony, po słowie „Uczeń:” wypisuje imię i nazwisko zwrócone zapytaniem. Imię i nazwisko powinno zawierać się w nagłówku drugiego stopnia;
    - skrypt wysyła do bazy zapytanie 4 (z pliku kwerendy.txt);
    - w kodzie strony, po tekście „Średnia ocen z języka polskiego” wypisuje średnią ocen zwróconą zapytaniem.

E.14 egzamin praktyczny


UWAGA: po zakończeniu pracy zgłoś przewodniczącemu ZN gotowość do nagrania płyty z rezultatami pracy. W folderze z Twoim numerem PESEL powinny się znajdować pliki: import.png, kwerendy.txt, polski.php, styl.css, ewentualnie inne przygotowane przez Ciebie pliki. Po nagraniu płyty sprawdź jej poprawność.

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ą.