Lekcja 1: Bazy danych – wprowadzenie

Autor:Tomasz Stelmach ©Wszelkie prawa zastrzeżone.

Czym tak naprawdę jest baza danych?

Baza danych to uporządkowany zbiór informacji (danych)  przechowywany w formie elektronicznej. Bazą danych zarządza zwykle system zarządzania bazami danych (DBMS). Dane i system DBMS oraz powiązane z nimi aplikacje, razem tworzą system bazodanowy, nazywany ogólnie bazą danych.

Dane przechowywane są w zaprojektowanych do tego celu tabelach (macierz kolumn i wierszy). Taka organizacja przetrzymywania danych usprawnia pracę z danymi. Najczęstszymi operacjami wykonywanymi na bazach danych są: wstawianie, usuwanie, edytowanie, wybieranie poszczególnych informacji.

Czym są „dane” ?

Dane są informacjami bezpośrednio odnoszącymi się do konkretnego przedmiotu, rzeczy, zagadnienia.

Np. kolor, rocznik, waga, marka – to dane Twojego samochodu. Metraż, ilość pokoi, lokalizacja – to dane Twojego mieszkania.

Większość baz danych do manipulacji danymi  wykorzystuje strukturalny język zapytań SQL (Structured Query Language).

SQL to język programowania wykorzystywany w bazach danych do tworzenia zapytań dotyczących danych, manipulowania nimi i ich definiowania oraz do zapewnienia kontroli dostępu.

Język SQL został opracowany przez firmę IBM w latach 70. przy istotnym współudziale firmy Oracle, co spowodowało wprowadzenie standardu SQL ANSI i powstanie wielu rozszerzeń języka SQL przygotowanych przez firmy IBM, Oracle i Microsoft.

Istnieje wiele implementacji relacyjnych baz danych. Oto kilka najpopularniejszych:

Bazy danych różnią się składnią i wykorzystaniem języka SQL, którego obsługują. Chociaż istnieje standard opisujący język SQL, występują drobne różnice pomiędzy SQL obsługiwanym przez poszczególne bazy danych. Właśnie te różnice w składni i stosowaniu SQL nazywane są dialektami.

Do czego wykorzystywane są bazy danych?

Bazy danych znajdują zastosowanie wszędzie tam, gdzie zachodzi potrzeba pracy w oparciu o większą ilość danych, np.

  • Wyszukiwarki internetowe
  • Spisy, zestawienia
  • Systemy bankowe, płatnicze
  • Kartoteki informacyjne 
  • Multimedialne bazy danych 
  • Katalogi produktowe

Baza danych vs. plik płaski (np. arkusz Excel)

Baza danychArkusz Excel
Możliwość jednoczesnej pracy dla wielu użytkownikówNie obsługuje dostępu dla wielu użytkowników
Możliwe efektywne przechowywanie i przetwarzanie ogromnych ilościZaprojektowany do pracy z ograniczoną ilością danych
Usuń nadmiarowość i integralnośćProblemy z redundancją i integralnością
Zwykle bardziej kosztowna w implementacji.Tańsze rozwiązanie
Łatwe do realizacji skomplikowane transakcjeBrak obsługi skomplikowanych transakcji

To jaki typ bazy danych należy zastosować w celu osiągnięcia optymalnych efektów, zależy głównie od czysto indywidualnych kwestii –  takich jak specyfika projektu czy polityka danej organizacji.

Wybrane typy baz danych:

  • Obiektowe

Wszystkie informacje mają postać obiektów, wykorzystywane są też niektóre z paradygmatów programowania obiektowego –  znane z języków programowania wysokiego poziomu.

  • Rozproszone

Rozproszona baza danych składa się z kilku części (co najmniej dwóch plików) znajdujących się w różnych lokalizacjach. Baza danych może być przechowywana na wielu komputerach znajdujących się w tej samej lokalizacji fizycznej lub rozproszonych w różnych sieciach.

  • Hurtownie danych

Rodzaj bazy danych, zaprojektowany do obsługi bardzo dużych volumenów danych i umożliwiający do nich szybki dostęp. Hurtownie zwykle posiadają wysokiej klasy mechanizmy analizy przetrzymywanych danych.

  • NoSQL

Rodzaj nierelacyjnej bazy danych, umożliwia przechowywanie nieuporządkowanych i częściowo uporządkowanych danych oraz manipulowanie nimi (w przeciwieństwie do relacyjnych baz danych, które określają sposób organizacji danych dodawanych do bazy danych). Nierelacyjne bazy danych od pewnego czasu zyskują coraz większa popularność, gdyż są szeroko wykorzystywane w budowie aplikacji internetowych.

  • Grafowe

Grafowa baza danych przechowuje dane w postaci encji i relacji między encjami.

  • OLTP 

Baza danych OLTP to szybka, analityczna baza danych przeznaczona do wykonywania dużej liczby transakcji przez wielu użytkowników.

  • Chmurowe

Chmurowa baza danych to zbiór danych, uporządkowanych lub nie, przechowywany na prywatnej, publicznej lub hybrydowej platformie przetwarzania w chmurze. Istnieją dwa modele chmurowych baz danych: tradycyjny i baza danych jako usługa (DBaaS). W przypadku baz danych DBaaS zadania związane z administracją i konserwacją są wykonywane przez usługodawcę.

  • Dokumentowe/JSON

Przeznaczone do przechowywania i pobierania informacji w postaci dokumentów i zarządzania nimi. Dokumentowe bazy danych to nowoczesny sposób na przechowywanie danych w formacie JSON, zamiast w postaci wierszy i kolumn.

  • Samoczynne

Najnowsze i najbardziej przełomowe bazy danych, samoczynne bazy danych (nazywane także autonomicznymi bazami danych). Działają w chmurze i wykorzystują uczenie maszynowe do automatyzacji optymalizacji, zabezpieczania, tworzenia kopii zapasowych i aktualizowania baz danych oraz innych rutynowych zadań zarządzania – tradycyjnie wykonywanych przez administratorów baz danych.


Co to jest DBMS?

System zarządzania bazą danych (DBMS) to rodzaj oprogramowania przeznaczony do zarządzania bazą danych w szerokim tego słowa znaczeniu. Dzięki DBMS możemy dowolnie przetwarzać  znajdujące się informacje w bazie danych. Jest to bardzo wygodny sposób konsumpcji wyników bazodanowych. Z poziomu DBMS oprócz dodawania, usuwania, manipulowania danymi, możemy administrować bazą danych z zachowaniem wysokiego bezpieczeństwa.

DBMS pozwala użytkownikom tworzyć własne bazy danych zgodnie z ich wymaganiami. Termin „DBMS” obejmuje użytkownika bazy danych i innych aplikacji. 

Zapewnia interfejs między danymi a aplikacją.

Zalety DBMS

  • Wiele mechanizmów przechowywania i odzyskiwania danych
  • Skuteczny moduł obsługi do równoważenia potrzeb wielu aplikacji korzystających z tych samych danych
  • Polityki procedur administracyjnych
  • Zaawansowane funkcje do wydajnego manipulowania i pobierania danych
  • Integralność i bezpieczeństwo danych
  • Równoczesny dostęp do danych w taki sposób, że tylko jeden użytkownik może uzyskać dostęp do tych samych danych jednocześnie
  • Skrócony czas budowy aplikacji/systemów

Wady DBMS

  • Wdrożenie oraz utrzymywanie wymaga określonych nakładów finansowych
  • Duża złożoność  systemów zarządzania, wymusza konieczność posiadania określonych technicznych umiejętności lub ich nabycia poprzez treningi i szkolenia
  • W niektórych organizacjach wszystkie dane są zintegrowane w jednej bazie danych, która może zostać uszkodzona z powodu awarii systemowej
  • Używanie tego samego programu na raz przez wielu użytkowników – czasami prowadzi do utraty niektórych danych.

Najpopularniejsze bazy danych w 2019 roku

Lista najpopularniejszych baz danych w roku 2019 – na podstawie corocznej ankiety przeprowadzanej na popularnym serwisie https://stackoverflow.com/

  1. MySQL
  2. PostgreSQL
  3. MS SQL Server
  4. SQLite
  5. MongoDB
  6. Redis
  7. MariaDB
  8. Oracle
  9. Elasticsearch
  10. Firebase
  11. DynamoDB
  12. Cassandra
  13. Couchbase

PostgrSQL

Na kartach tego kursu będziemy uczyć się korzystać z bazy danych – PostgreSQL. Wybrałem konkretnie tą bazę, ponieważ jest ona w pełni darmowa – oparta na licencji open-source. Oznacza to, że możesz z niej dowolnie korzystać, modyfikować i rozpowszechniać. Dodatkowo warto podkreślić, że jest ona bardzo popularna i szeroko wykorzystywana na rynku. Istnieje zatem duże prawdopodobieństwo, że już ją wykorzystujecie bądź będziecie z niej korzystać w swojej pracy.

W kolejnych lekcjach dokładnie krok po kroku przybliżę PostgreSQL – dzisiaj tylko krótkie objaśnienie.

PostgreSQL jest relacyjnym (obiektowo – relacyjnym) systemem zarządzania bazą danych. Jest jednym z najbardziej zaawansowanych systemów zarządzania bazą danych opartych na licencji open-source.


ZAPAMIĘTAJ!

Baza danych – to uporządkowany zbiór informacji (danych)  przechowywany w formie elektronicznej. Bazą danych zarządza zwykle system zarządzania bazami danych (DBMS). Dane i system DBMS oraz powiązane z nimi aplikacje, razem tworzą system bazodanowy, nazywany ogólnie bazą danych.

Dane – są informacjami bezpośrednio odnoszącymi się do konkretnego przedmiotu, rzeczy, zagadnienia

SQL – to język programowania wykorzystywany w bazach danych do tworzenia zapytań dotyczących danych, manipulowania nimi i ich definiowania oraz do zapewnienia kontroli dostępu.

System zarządzania bazą danych (DBMS) to rodzaj oprogramowania przeznaczony do zarządzania bazą danych w szerokim tego słowa znaczeniu.

PostgreSQL jest relacyjnym (obiektowo – relacyjnym) systemem zarządzania bazą danych. Jest jednym z najbardziej zaawansowanych systemów zarządzania bazą danych opartych na licencji open-source.

Typy baz danych:

  • Relacyjne
  • Obiektowe
  • Rozproszone
  • Hurtownie danych
  • NoSQL
  • Grafowe
  • OLTP 
  • Chmurowe
  • Dokumentowe/JSON
  • Samoczynne


PostgreSQL -> oficjalna strona: https://www.postgresql.org/ , dokumentacja: https://www.postgresql.org/docs/

MySQL -> oficjalna strona: https://www.mysql.com/ , dokumentacja: https://dev.mysql.com/doc/

SQLite -> oficjalna strona: https://sqlite.org/index.html , dokumentacja: https://sqlite.org/docs.html

HyperSQL -> oficjalna strona: http://hsqldb.org/ , dokumentacja: http://hsqldb.org/web/hsqlDocsFrame.html

MongoDB -> oficjalna strona: https://www.mongodb.com/ , dokumentacja: https://docs.mongodb.com/guides/

Redis -> oficjalna strona: https://redis.io/ , dokumentacja: https://redis.io/documentation

Notatka o autorze:

Zajmuję się testowaniem, zabezpieczaniem i zapewnianiem jakości oprogramowania od ponad 13 lat. Rozpocząłem swoją karierę od testów manualnych i analizy biznesowo-technicznej. Obecnie prowadzę firmę Quality Island, która zajmuje się szeroko pojętym testowaniem oprogramowania oraz szkoleniami dla przyszłych i obecnych testerów oprogramowania. Moją specjalnością są testy automatyczne aplikacji webowych oraz budowa procesów automatyzacji i robotyzacji. Od 8 lat prowadzę aktywnie szkolenia oraz konsultacje z tych tematów i wykonuję zlecenia dla firm trzecich jako konsultant, ekspert oraz audytor. Współpracuję również z firmami jako osoba do rekrutacji i weryfikacji technicznych. Interesują mnie głównie tematy związane z architekturą IT oraz zagadnienia DevOps/TestOps, ponieważ ściśle wiążą się z zapewnianiem jakości oprogramowania.

 

Tomasz Stelmach

CEO&Founder

 

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *