Matura 2018 (maj). Zadanie 6. Centrum danych
Pewna firma utrzymuje centrum danych, w którym znajduje się kilkaset pracujących komputerów. Specjalny zespół pracowników odpowiada za wykrywanie i usuwanie awarii komputerów. Pliki komputery.txt, awarie.txt oraz naprawy.txt zawierają dane niezbędne do wykonania zadania.
Plik komputery.txt zawiera opisy maszyn znajdujących się w centrum w 2015 roku, każdy wiersz tego pliku zawiera kolejno:
- numer komputera (unikatową liczbę całkowitą) – Numer_komputera,
- sekcję, w której znajduje się komputer (sekcje oznaczone są wielkimi literami alfabetu
angielskiego: A, B, C, …) – Sekcja. - pojemność dysku twardego (liczoną w gigabajtach, liczba całkowita) – Pojemnosc_dysku.
Przykład:
Numer_komputera | Sekcja | Pojemnosc_dysku |
1 | R | 700 |
2 | N | 130 |
3 | E | 300 |
Plik awarie.txt zawiera informację o awariach komputerów w 2015 roku. Każdy wiersz tego pliku zawiera kolejno:
- unikatowy numer zgłoszenia awarii – Numer_zgloszenia,
- numer komputera, który uległ awarii – Numer_komputera,
- datę i godzinę wystąpienia awarii z dokładnością do sekundy – Czas_awarii,
- priorytet zgłoszenia – liczbę całkowitą określającą w skali od 1 do 10, jak krytyczna jest
awaria – Priorytet.
Przykład:
Numer_zgloszenia | Numer_komputera | Czas_awarii | Priorytet |
1 | 365 | 2015-01-01 04:40:55 | 8 |
2 | 249 | 2015-01-01 06:08:24 | 3 |
3 | 312 | 2015-01-01 06:33:43 | 4 |
W pliku naprawy.txt zapisane zostały raporty z prac, jakie wykonał zespół w 2015 roku.
Każdy wiersz tego pliku zawiera kolejno:
- numer zgłoszenia, którego dotyczyła naprawa (mogło zdarzyć się, że jedno zgłoszenie awarii wymagało kilku napraw) – Numer_zgloszenia,
- datę i godzinę zakończenia naprawy z dokładnością do sekundy – Czas_naprawy,
- rodzaj naprawy (słowo restart oznacza ponowne uruchomienie komputera, wymiana –
wymianę jednego z podzespołów komputera) – Rodzaj.
Przykład:
Numer_zgloszenia | Czas_naprawy | Rodzaj |
2 | 2015-01-01 20:08:15 | restart |
7 | 2015-01-02 16:30:15 | restart |
4 | 2015-01-02 19:37:03 | wymiana |
Dane w wierszach plików są oddzielone znakami tabulacji, pierwszy wiersz pliku jest wierszem nagłówkowym.
Za pomocą dostępnych narzędzi informatycznych podaj odpowiedzi do poniższych zadań, zapisz je w pliku wyniki.txt, a każdą z nich poprzedź numerem odpowiedniego zadania.
Pobieranie danych do programu:
Pobieranie danych z pliku tekstowego do tabeli w Access’ie wykonujemy zgodnie z poniżej przedstawionymi krokami.
Krok 1.
Pobieramy z pliku tekstowego dane do tabeli wybierając z menu Dane zewnętrzne -> Plik tekstowy.
Krok 2.
Wskazujemy, gdzie znajduje się plik tekstowy. Te czynności powtarzamy tyle razy ile jest plików tekstowych.
Krok 3.
Ustalamy w jaki sposób są wpisane dane do pliku tekstowego.
Krok 4.
Wybieramy znak rozdzielający pola oraz zaznaczamy pierwszy wiersz zawiera nazwy pól.
Krok 5.
Wybieramy odpowiednie typy dla każdej kolumny (dla każdego pola) w tabeli. Należy pamiętać, że konieczne jest wybrania typu dla pola daty.
Krok 6.
Wybieramy pole dla którego ma być ustawiony klucz podstawowy.
Krok 7.
Podajemy nazwę tabeli pod jaką ma być zapisana w naszej bazie.
Krok 8.
Ustawienie relacji dla nowo utworzonych tabel w naszej bazie. Pamiętaj, że powinno się wymuszać więzy integralności.
Zadanie 1.
Znajdź 10 najczęstszych rodzajów dysków (czyli 10 najczęściej występujących pojemności) wśród komputerów w centrum. Dla każdej ze znalezionych pojemności podaj liczbę komputerów z takim dyskiem. Posortuj zestawienie nierosnąco względem liczby komputerów z dyskiem o danej pojemności.
Rozwiązanie:
Tworzymy kwerendę która będzie zawierała jedną tabelę komputery, z której wybieramy dwukrotnie pole Pojemnosc_dysku. Wykonujemy Sumy dla pola Pojemnosc_dysku, wybieramy funkcję policz, aby policzyć ile razy występuje dany rodzaj dysku. Ostatnimi elementami zakonczenia zadania jest sortowanie wystąpień dysku Malejąco, oraz ograniczenie występowań dysku do ilości 10 rekordów.
Wyniki działania kwerendy jest następujący:
Na zakończenie zapisujemy kwerendę jako Zadanie 1.
Odpowiedź:
Pojemność | Liczba |
300 | 173 |
200 | 31 |
500 | 31 |
800 | 29 |
700 | 28 |
600 | 26 |
400 | 20 |
290 | 11 |
160 | 10 |
220 | 10 |
Zadanie 2.
Znajdź wszystkie komputery w sekcji A, w których trzeba było przynajmniej dziesięciokrotnie wymieniać podzespoły. Podaj ich numery, a także liczbę wymian podzespołów dla każdego z nich.
Rozwiązanie:
Odpowiedź:
Numer komputera | Ilość wymian podzespołów |
42 | 11 |
123 | 11 |
171 | 12 |
202 | 12 |
Zadanie 3.
Pewnego dnia nastąpiła awaria wszystkich komputerów w jednej z sekcji. Podaj datę awarii oraz symbol sekcji, w której nastąpiła awaria.
Rozwiązanie:
Odpowiedź:
Dniem awarii wszystkich komputerów był dzień 23-12, a było to w sekcji Q.
Zadanie 4.
Znajdź awarię, której usunięcie trwało najdłużej (czas liczymy od wystąpienia awarii do momentu zakończenia ostatniej z napraw, jakiej ta awaria wymagała). Podaj numer ogłoszenia, czas wystąpienia awarii i czas zakończenia ostatniej naprawy.
Rozwiązanie:
Odpowiedź:
Podaj numer ogłoszenia: 2087
Czas wystąpienia awarii: 2015-11-05 12:38:46
Czas zakończenia ostatniej naprawy: 2015-11-13 12:38:32
Zadanie 5.
Podaj liczbę komputerów, które nie uległy żadnej awarii o priorytecie większym lub równym 8 (wliczamy w to też komputery, które w ogóle nie uległy awarii).
Rozwiązanie:
Rozwiązanie zadania 5 w SQL:
SELECT 500-Count(*) AS Ilosc_komputerow
FROM (SELECT DISTINCT Numer_Komputera From Awarie WHERE Priorytet >= 8);
Rozwiązanie podane przez Pana Mateusza.
Odpowiedź:
Ilość komputerów: 149.