Sprawdź, z jakimi wyzwaniami na codzień mierzy się tester oprogramowania i dobrze przygotuj się do zawodu testera oprogramowania!
28 kwietnia 2020
W poprzednich artykułach Zgłoszenie defektu, priorytet i ważność, oraz Produkty procesu testowego mieliśmy okazję zapoznać się z budową i prawidłowym zastosowaniem produktów pracy testerskiej. W tym wpisie zobaczysz jak utworzyć
21 kwietnia 2020
Jeśli przygotowujesz się do egzaminu ISTQB z pewnością trafisz na tematykę testowania opartego na strukturze. W dużym uogólnieniu opiera się ono na testowaniu przepływu sterowania i przepływu danych. Przykładowo, dla
13 kwietnia 2020
W poprzednim wpisie Zgłoszenie defektu, priorytet i ważność rozpisałem jakie są najczęściej pomijane punkty dobrego zgłoszenia błędu. Umieściłem tam również przykładowy formularz zgłoszenia. Jednak skupienie się na samym zgłoszeniu błędu

PODOBAŁ CI SIĘ TEN ARTYKUŁ?

Sprawdź inne teksty

Wśród podstawowych umiejętności wymaganych od testera znajduje się język zapytań SQL. Aby móc zacząć swobodnie używać tego języka należy zaznajomić się z terminem relacyjnej bazy danych. W artykule poznasz podstawowe pojęcia z zakresu baz danych, które ułatwią Ci zrozumienie mnogości zastosowań tego rodzaju silników bazodanowych - od zwykłych relacji kilku tabel po hurtownie danych przetwarzające ogromne wolumeny danych. Cofnijmy się jednak o kilkanaście lat.

Relacyjność bazy danych, czyli historia jednego Nulla

Jedną z najczęściej używanych struktur danych jest relacyjna baza danych. Idea, za którą stoi tworzenie relacyjności powstała z potrzeby rozwiązania pewnego problemu. We wczesnych latach rozwoju baz danych aplikacje zapisywały dane w swojej własnej strukturze. W związku z tym chcąc tworzyć aplikacje na podstawie tych danych należało bardzo dobrze znać tę strukturę, co było kosztowne i czasochłonne. Ciężko było znaleźć specjalistów, którzy mieliby wystarczającą wiedzę domenową w zakresie danego biznesu. Dodatkowo, nie ujednolicono jeszcze wtedy podejścia do wyszukiwania brakujących informacji takich jak np. nieznany adres, numer telefonu.

Problem ten próbowano rozwiązać poprzez podstawienie kilku specjalnych wartości mających wypełnić luki w rekordach. Jednak dopiero Edgar Frank Codd wpadł na genialny w swej prostocie pomysł. W 1979 roku zaproponował on pojedynczą wartość NULL. Ta mała rewolucja w całości zmieniła podejście, rozszerzając logikę dwuwartościową typową dla operatorów boolean (Tak, Nie) o porównania do logiki trójwarstwowej. Mówiąc w skrócie, od tej pory na każde pytanie dało się odpowiedzieć: Tak, Nie, Nieznane/Null. Rozwiązanie natychmiast znalazło zastosowanie. Chwilę później firma znana jako Relational Software (obecnie Oracle) wypuściła na rynek pierwszy komercyjny relacyjny system zarządzania bazą danych (RDBMS, czyli Relational Database Management Systems). Od tej pory model relacyjny na dobre zagościł jako dominujący system do przechowywania danych.

Zanim jednak poznasz główne metody tworzenia relacji w bazie danych, chcąc podejść do tematu strukturyzowania danych musimy zacząć od podstawowych pojęć - czyli czym jest baza danych. Jest to zbiór tabel oraz narzędzi, które stosuje się do przekształcania i wyszukiwania danych w danym przedsiębiorstwie. Podstawowe konstrukcje, jakie powinien znać tester to:

  • Schemat - kontener zawierający wszystkie obiekty wymienione poniżej. Charakteryzuje go możliwość nadawania uprawnień na wybranym obiekcie. Każdy utworzony przez użytkownika bazy danych schemat będzie przypisany do niego domyślnie.
  • Tabela - zbiór ujednoliconych rekordów opisujących dany obiekt. Przykładem może być tabela Pracownicy, która będzie zawierała wszystkie rekordy związane z pracownikami danego przedsiębiorstwa.
  • Rekord - pojedynczy wiersz w tabeli. Dla przykładu, będzie to jeden z pracowników tabeli Pracownicy.
  • Pole - jedno wybrane pole z wiersza, które przechowuje jedną daną.
  • Klucze główne i obce.

Oprócz wyżej wymienionych, charakterystyczne dla budowy baz danych są tzw. klucze główne i klucze obce, które pokazują relacje występujące między tabelami:

  1. Klucz główny (Primary Key, w skrócie PK) jednoznacznie identyfikuje każdy rekord i zbiór kolumn w danej tabeli. Jest niepowtarzalny i nie może być pusty (nie może być NULL). Każda tabela może mieć tylko jeden taki klucz. Wyobraź sobie kolumnę, której każdy rekord będzie unikatowy. Zazwyczaj są to ID dla każdego rekordu tabeli, np. id_pracownika.
  2. Klucz obcy (Foreign Key - w skrócie FK) jest to kombinacja jednej lub wielu kolumn wskazujących na klucz główny w innej tabeli. W ten sposób prezentuje się między nimi związki. W tabeli która jest powiązana należy powielić strukturę kolumn aby móc je ze sobą powiązać. Klucz obcy może dotyczyć również tej samej tabeli!

Przytaczając ponownie przykład tabeli Pracownicy, rozważmy przykład następującej relacji między tabelami. Istnieją tabele Placówka oraz Pracownicy. Tabela Pracownicy, oprócz kolumn przeznaczonych na dane osobowe pracowników przedsiębiorstwa posiada kolumnę id_pracownika. Tabela Placówka posiada dane związane z wybraną placówką przedsiębiorstwa oraz dodatkowe powiązanie poprzez kolumnę id_pracownika. W tej relacji Pracownicy.id_pracownika będzie kluczem głównym, a Placówka.id_pracownika kluczem obcym tabeli Pracownicy powielając się w innej tabeli (Placówka). W ten sposób każda z tych dwóch tabel ma identyczne, unikatowe wartości po których można powiązać pracowników z placówką, w której pracują.

Tworząc wyżej wspomniane tabele baz danych i powiązania między nimi, tworzymy relacyjną bazę danych. Aby w pełni wykorzystać potencjał silników baz danych, zapoznaj się z funkcjonowaniem opisanych powyżej kluczy. Dodatkowo, wyróżnia się trzy rodzaje relacji baz danych:

Relacja jeden do jednego

Występuje wtedy, kiedy rekordowi z tabeli A jest przyporządkowany dokładnie jeden rekord z tabeli B i vice versa.

Przykład: Dowód osobisty. Każdy dokument jednoznacznie identyfikujący Twoją tożsamość. Możesz posiadać tylko jeden dowód osobisty, a każdy dowód osobisty będzie miał tylko jednego właściciela.

Relacja jeden do wielu

Najczęściej używany typ połączenia. Rekord z tabeli A jest przyporządkowany jednemu lub więcej rekordowi z tabeli B, a pojedynczemu rekordowi z tabeli B jest przyporządkowany jeden rekord z tabeli A.

Przykład: Uczeń i Wychowawca. Jeden uczeń może mieć jednego wychowawcę, ale wychowawca może mieć pod opieką wiele klas.

Relacja wiele do wielu

Rekord w tabeli ma wiele dopasowanych rekordów z tabeli B i rekord w tabeli B ma wiele dopasowanych do niego rekordów z tabeli A. W tym momencie kluczowe staje się zrozumienie idei stojącej za kluczami głównymi i obcymi. Aby utworzyć taką relację, należy utworzyć dodatkową, trzecią tabelę, której klucz główny będzie składał się z dwóch kluczy obcych z tabel A i B. Aby to zrozumieć, wyobraź sobie, że relacja wiele do wielu to nic innego, jak dwie relacje jeden do wielu z trzecią tabelą.

Przykład: Pupil i Weterynarz. Jednym pupilem może zajmować się wielu weterynarzy (specjaliści), a jeden weterynarz może zajmować się wieloma pupilami.

Znając już podstawową budowę, tworzenie relacji oraz typy relacji, czas rozwinąć wątek przetwarzania danych. Bazy danych charakteryzują się następującymi kategoriami przetwarzania: OLTP (On-Line Transactional Processing), oraz OLAP (On-Line Analytical Processing). Poznając termin bazy danych, poznajesz tak naprawdę silnik OLTP. Podział ten wykracza poza klasyczne postrzeganie bazy danych jako jednostki w danej organizacji i rozwija procesowanie transakcyjne o przetwarzanie analityczne. Dowiesz się, jak dane zebrane z obydwu systemów mogą być wykorzystane do dalszej obróbki dla korzyści przedsiębiorstw stosujących podejście Big Data.

OLTP

Czyli transakcyjne przetwarzanie danych w skład którego wchodzą wszelkie bazy danych jednej organizacji , które wykorzystuje się do codziennej pracy maksymalizując wydajność transakcji oraz dużą dostępność. Jest to najczęściej spotykane rozwiązanie, które możesz znać po prostu jako "baza danych".

Przykład systemu OLTP:

Operacje na łączonym koncie bankowym. Wyobraź sobie sytuację, w której razem ze swoją bliską osobą posiadacie wspólne konto bankowe. Sytuacja wymaga od was tego, aby w pewnym momencie, będąc w dwóch różnych miejscach w tym samym czasie pobrać pieniądze z bankomatu. Dodatkowo, każde z was postanawia wyciągnąć wszystkie środki z konta, tak dla pewności.

Jak możesz się domyślić, pieniądze wybierze ta osoba, która pierwsza została poprawnie zweryfikowana w systemie. System OLTP zadba o to, aby kwota wyciągana z konta nigdy nie była większa niż środki dostępne na koncie. Widać więc, że system ten używa czysto transakcyjnego podejścia, pomijając całkowicie analizę danych, która jest cechą charakterystyczną dla OLAP.

Inne przykłady systemu OLTP:

  • Indywidualna bankowość internetowa.

  • Rezerwacja biletów lotniczych.

  • Wysyłanie SMS.

  • Dodanie artykułu do koszyka w sklepie internetowym.

Zalety OLTP:

Wady OLTP:

idealne do zarządzania transakcjami w organizacji

W przypadku awarii poważnie wpływa na transakcje sieciowe

znaczące uproszczenie poszczególnych procesów organizacji

systemy OLTP umożliwiają dostęp i zmianę tych samych danych wielu użytkownikom naraz

OLAP

Jest to kategoria narzędzi które zapewniają tworzenie raportów obejmujących całe bazy danych i wykresy dla decyzji biznesowych. Pozwalają na analizowanie informacji z wielu systemów baz danych jednocześnie. Jest to większy poziom abstrakcji - wcześniej omawiana baza danych staje się w tym miejscu jednym z wielu miejsc do przetwarzania. Typowym przykładem wykorzystującym system OLAP hurtownie danych.

Przykład systemu OLAP:

Organizacja, która porównać sprzedaże swoich flagowych telefonów komórkowych z czerwca ze sprzedażami we wrześniu. Następnie zebrane dane porównuje z filią znajdującą się w innym państwie. Dane z innych filii znajdują się na innych bazach danych.

Inne przykłady systemu OLAP:

Zalety OLAP:

Wady OLAP:

tworzy jedną platformę dla wszystkich rodzajów potrzeb analitycznych biznesowych, która obejmuje planowanie, budżetowanie, prognozowanie i analizy.

tradycyjne narzędzia OLAP wymagają skomplikowanej procedury modelowania.

spójność informacji i obliczeń.

wymagają współpracy osób z różnych działów, aby były skuteczne, co nie zawsze może być możliwe.

skupia się na zabezpieczeniu danych na użytkownikach i obiektach tak, aby dopasować się do przepisów i chronić wrażliwe dane.

wymagają potężnych zasobów, lub zastosowania rozwiązania chmurowego.

Różnice pomiędzy OLTP a OLAP

  • OLAP to kategoria narzędzi programowych, które analizują dane przechowywane w bazie danych, podczas gdy online przetwarzanie transakcji OLTP obsługuje aplikacje zorientowane na transakcje w architekturze trójwarstwowej.

  • OLAP tworzy jedną platformę dla wszystkich rodzajów potrzeb analizy biznesowej, która obejmuje planowanie, budżetowanie, prognozowanie i analizę, podczas gdy OLTP jest przydatny do zarządzania codziennymi transakcjami organizacji.

  • OLAP charakteryzuje się dużą ilością danych, a OLTP dużą liczbą krótkich transakcji online.

  • W OLAP hurtownia danych jest tworzona w sposób unikalny, dzięki czemu może integrować różne źródła danych w celu zbudowania skonsolidowanej bazy danych, podczas gdy OLTP wykorzystuje tradycyjny DBMS.

Business Intelligence, czyli hurtownie danych w akcji

Hurtownie danych to zbiór zintegrowanych baz danych. Dane znajdujące się w tych bazach są przetwarzane za pomocą narzędzi ETL (Extract, Transform, Load), a następnie rozdzielane do hurtowni podzielonych tematycznie. Dane będą dalej analizowane przez serwery OLAP, których zastosowanie umożliwia wykonywanie w nich kwerend SQL, które z kolei tworzą metryki podsumowujące te znaczące ilości danych, aby te finalnie mogły zostać użyte do eksploracji danych (Data Mining). Typowa struktura procesu będzie wyglądała następująco:

Operacyjne bazy danych -> ETL -> Hurtownie danych -> rozdzielające dane na poszczególne tematyczne hurtownie danych -> serwer OLAP dostarczający potrzebne raporty -> Analiza, Raporty, Eksploracja danych.

Techniki eksploracji danych wywodzą się z dziedziny badań nad sztuczną inteligencją. Opierają się na próbie automatyzacji analiz i raportów poprzez odkrywanie zależności między nimi. Wybrane techniki jakich używa się do eksploracji danych:

  • techniki statyczne.

  • sieci neuronowe.

  • uczenie maszynowe.

  • logika rozmyta.

Dane mogą być później wykorzystane przez interesariuszy do zbierania istotnych informacji na temat działania przedsiębiorstwa. Na przykład:

  • sprzedaż w danym roku.

  • obrót.

  • zainteresowanie daną marką.

  • profil klienta.

  • prawdopodobieństwo ponownego skorzystania z usługi.

Skąd pochodzą te dane?

Dane znajdujące się w takich bazach najczęściej pochodzą z list tworzonych na podstawie zebranych dobrowolnych ankiet prowadzonych podczas działań charytatywnych, udziału w promocjach produktów, zgłoszeń konkursowych lub nawet z gotowych list zakupionych od innych organizacji. W celu wygenerowania wartościowych metryk stosuje się techniki, które następnie tworzą modele zachowań klientów. W części krajów firmy zobligowane są do przestrzegania ścisłych norm i przepisów, oferując konsumentom możliwość odmówienia zgody na komunikaty wysyłane wybranymi drogami, jeśli Ci sobie tego nie życzą. Z perspektywy testera praca w takim projekcie opiera się na testowaniu mechanizmów ETL, przepływów danych, sprawdzaniu  czy te poprawnie propagują się w wyznaczonych hurtowniach/hurtowniach tematycznych, bazach, schematach, tabelach.

Podsumowanie

Big Data, zaczynając od pojedynczych baz danych aż po nauczanie maszynowe może zrewolucjonizować świat. Jednym z najczęstszych skojarzeń związanych z machine learningiem są obawy przed stworzeniem Skynetu oraz utratą prywatności. Tymczasem często technologia ta stosowana jest nie tylko do celów komercyjnych, ale też do wspomagania pracy, np. nad wynalezieniem leków na nowe szczepy wirusów. Coraz częściej wykorzystywana jest też w kulturze, np. motywując indywidualnych twórców do ożywiania dawnych obrazów takich jak wycieczka po Nowym Jorku z roku 1911.

Jeśli interesuje Cię praca na wielkich wolumenach, wymagana będzie od Ciebie znajomość średnio-zaawansowanego SQL (najczęściej Oracle SQL), REST API, obsługi konsoli UNIX. Zobacz mój artykuł Jak zostać testerem, gdzie znajdziesz linki do tutoriali oraz stron z ćwiczeniami, dzięki którym posiądziesz powyższe umiejętności. Jedno jest pewne. Przygoda zaczyna się od znajomości relacyjnych baz danych i to właśnie dlatego te umiejętności stały się niemal obowiązkowe dla kandydatów na stanowisko testera oprogramowania.

Nie pozostaje więc nic innego, jak rozpocząć naukę!

 

 

05 maja 2020
Poznaj podstawowe pojęcia związane z relacyjnymi bazami danych, relacyjnością, OLTP, OLAP, Big Data oraz ich zastosowaniu w przetwarzaniu danych.

Zastosowania relacyjnych baz danych

DOWIEDZ SIĘ, JAK ZOSTAĆ TESTEREM

REMIGIUSZ BEDNARCZYK

Remigiusz Bednarczyk

To nie feature. Testerze, znalazłeś buga! Przeniesie Cię do Artykułów.

Znajdź mnie na mediach społecznościowych