Typy systemów zarządzania bazami danych (SZBD)

MS Access, MySQL, MSSQL, Oracle — rozszerzona lekcja, ćwiczenia i kod SQL

Moduł Co będziemy robić?

Ta rozszerzona lekcja (2 godziny w planie, materiał rozszerzony) omawia typy SZBD, porównuje MS Access, MySQL, MSSQL i Oracle oraz daje ćwiczenia praktyczne: analiza przypadków, wybór systemu, zadania SQL (pokazywane/ukrywane rozwiązania) i rozbudowany quiz.

  • Zrozumiesz różnice między systemami (licencja, skalowalność, użycie)
  • Przećwiczysz dobór SZBD do konkretnego projektu
  • Otrzymasz gotowe przykłady SQL z możliwością „pokaż/ukryj”

Cele Cele lekcji

  • Rozróżniać najpopularniejsze SZBD i ich przeznaczenie.
  • Analizować cechy techniczne i licencyjne SZBD.
  • Dobierać odpowiednie rozwiązanie SZBD do wymagań projektu.
  • Stosować podstawowe polecenia SQL (CREATE, SELECT) — zadania z przykładowym kodem.

Treść Omówienie typów SZBD

1 — Czym jest SZBD / krótka historia

Podstawy i ewolucja

SZBD (System Zarządzania Bazą Danych) — oprogramowanie do tworzenia, modyfikacji, przechowywania i odzyskiwania danych. Historia: od systemów hierarchicznych i sieciowych (lata 60.) przez model relacyjny (Edgar F. Codd, 1970) do współczesnych relacyjnych i NoSQL.

Kluczowe pojęcia: model danych, zapytania (SQL), transakcje (ACID), indeksy, backup/restore, replikacja.

2 — Klasyfikacja SZBD

Relacyjne, NoSQL, obiektowe

Podstawowe klasy:

  • Relacyjne: tabele, SQL (MySQL, MSSQL, Oracle, PostgreSQL)
  • NoSQL: dokumentowe, klucz-wartość, grafowe (MongoDB, Redis, Neo4j)
  • Obiektowe: obiekty zamiast tabel (rzadziej używane w edukacji)

W tym module skupiamy się na relacyjnych (MS Access, MySQL, MSSQL, Oracle) — to najważniejsze SZBD w praktyce biznesowej i edukacyjnej.

3 — MS Access

Dla kogo i do czego?

Opis

MS Access to desktopowy system bazodanowy Microsoftu. Łączy relacyjną bazę (Jet/ACE) z interfejsem graficznym do tworzenia formularzy i raportów.

Zalety

  • Łatwy start dla początkujących
  • Szybka budowa prototypów i małych aplikacji
  • Dobra integracja z MS Office

Ograniczenia

  • Nie nadaje się do dużych, wieloużytkownikowych systemów
  • Problemy ze skalowalnością i dostępnością
Ćwiczenie 1 — Analiza: Podaj 3 scenariusze (z życia szkoły), w których MS Access byłby dobrym wyborem i 2, gdzie należy stosować coś innego (np. MySQL lub MSSQL). (Zadanie otwarte — wpisz odpowiedź w zeszycie lub na platformie.)
Przykład (rozwiązanie):
  • Dobre: prosta baza uczniów do użytku lokalnego, lista wypożyczeń biblioteki w małej bibliotece szkolnej, rejestr sprzętu w pracowni.
  • Niedobre: system obsługi rekrutacji z wieloma równoczesnymi użytkownikami, sklep internetowy, aplikacja z dużymi zbiorami danych.

4 — MySQL

Open source, WWW, PHP

Opis

MySQL to popularny, otwartoźródłowy SZBD używany szeroko w aplikacjach WWW, często z PHP. Dostępne silniki (InnoDB — transakcje, MyISAM — prostsze użycia).

Zalety

  • Darmowy / open-source (również wersje komercyjne)
  • Duża społeczność i dokumentacja
  • Dobra wydajność dla typowych aplikacji WWW

Ograniczenia

  • Niektóre funkcje zaawansowane mogą być mniej rozbudowane niż w Oracle
Ćwiczenie 2 — Kod SQL (pokaż/ukryj):

Otwórz przykład SQL: utworzymy prostą bazę uczniów i tabelę ocen. Możesz kliknąć "Pokaż kod" — w zadaniu sprawdź, że rozumiesz każde pole.

Kliknij przycisk "Pokaż kod SQL"
-- MySQL: utworzenie bazy i tabeli ocen
CREATE DATABASE szkoladb;
USE szkoladb;

CREATE TABLE uczniowie (
  id INT AUTO_INCREMENT PRIMARY KEY,
  imie VARCHAR(50) NOT NULL,
  nazwisko VARCHAR(80) NOT NULL
);

CREATE TABLE oceny (
  id INT AUTO_INCREMENT PRIMARY KEY,
  uczen_id INT NOT NULL,
  przedmiot VARCHAR(50) NOT NULL,
  ocena TINYINT NOT NULL,
  FOREIGN KEY (uczen_id) REFERENCES uczniowie(id)
);

5 — Microsoft SQL Server (MSSQL)

Korporacyjny, Windows/ Linux

Opis

MSSQL to komercyjny system Microsoftu, bardzo popularny w środowiskach korporacyjnych. Dostarcza rozbudowane narzędzia administracyjne (SSMS), integrację z usługami MS.

Zalety

  • Silne wsparcie dla transakcji i bezpieczeństwa
  • Narzędzia BI i integracyjne

Ograniczenia

  • Koszty licencji w większych wdrożeniach (choć są też edycje Express)
Ćwiczenie 3 — Dobór SZBD:

Przeczytaj scenariusz i wybierz najbardziej odpowiedni SZBD (uzasadnij wybór):

  1. Szkoła planuje mały system do zarządzania biblioteką (1-2 użytkowników jednocześnie).
  2. Firma e-commerce 24/7, duża liczba transakcji i użytkowników.
  3. Bank wymagający wysokiej dostępności i skalowalności.
Przykładowe rozwiązania:
  • 1) MS Access lub mały MySQL — szybki prototyp. (Access dla lokalnego, MySQL dla webowego)
  • 2) MySQL lub MSSQL — wydajne, skalowalne; MSSQL gdy wymagane narzędzia MS/integ.
  • 3) Oracle lub MSSQL (enterprise) — ze względu na bezpieczeństwo, replikację i SLA.

6 — Oracle Database

Enterprise, skalowalność, bankowość

Opis

Oracle to jeden z najpotężniejszych komercyjnych SZBD, stosowany w bankowości, telekomunikacji i dużych systemach korporacyjnych. Oferuje zaawansowaną replikację, partycjonowanie i narzędzia do zarządzania.

Zalety

  • Skalowalność, wysoka wydajność przy dużych zbiorach
  • Wsparcie korporacyjne

Ograniczenia

  • Wysokie koszty licencji i uruchomienia
Ćwiczenie 4 — Analiza cech: W tabeli porównawczej uzupełnij, które cechy są najważniejsze przy wyborze Oracle (np. wysokie SLA, rozproszone bazy, zaawansowane backupy). (Otwarte — uzupełnij w notatkach)
Wskazówka: Oracle — najlepszy gdy: wymagane SLA, duża liczba transakcji, skomplikowane przetwarzanie analityczne, wielkoskalowa replikacja.

7 — Tabela porównawcza (cechy)

Licencja, skalowalność, użycie
CechyMS AccessMySQLMSSQLOracle
LicencjaKomercyjnaOpen Source / KomercyjnaKomercyjnaKomercyjna
SkalowalnośćNiskaŚrednia/WysokaWysokaBardzo wysoka
Typ zastosowańLokalne / prototypyWWW / aplikacjeKorpo / ERPBankowość / duże systemy
Narzędzia administracyjneAccess GUIMySQL WorkbenchSSMSOracle Enterprise Manager
KosztyNiskie (licencja Office)Niskie / darmoweŚrednie/ WysokieWysokie
Ćwiczenie 5 — Uzupełnij tabelę: W notatkach dopisz 2 dodatkowe kryteria porównania (np. replikacja, backup/restore) i wypełnij je dla wszystkich systemów.
Przykładowa odpowiedź:
  • Replikacja: MySQL (wbudowana), MSSQL (rozbudowane opcje), Oracle (zaawansowana), Access (brak/ograniczona)
  • Backup/Restore: Oracle (zaawansowane narzędzia), MSSQL (backup differential/log shipping), MySQL (mysqldump), Access (kopie pliku)

8 — Wskazówki praktyczne

Jak wybierać SZBD?
  1. Zdefiniuj wymagania: liczba użytkowników, SLA, budżet.
  2. Sprawdź integracje (platforma, języki, narzędzia).
  3. Określ potrzeby skalowalności i bezpieczeństwa.
  4. Rozważ koszty (licencje, utrzymanie, backup, monitoring).
Ćwiczenie 6 — Finalny case (zadanie):

Otrzymujesz zamówienie: lokalna przychodnia chce system do zarządzania pacjentami (maks. 10 użytkowników, wrażliwe dane, backup). Napisz krótkie uzasadnienie wyboru SZBD (Access, MySQL, MSSQL, Oracle) i zaproponuj podstawową konfigurację backupu.

Przykładowe rozwiązanie:

Wybór: MSSQL lub MySQL z szyfrowaniem i regularnymi backupami. MSSQL jeśli środowisko MS i budżet pozwala; MySQL jeśli chcemy tańsze rozwiązanie open-source. Backup: codzienny pełny + logi co godzinę, szyfrowane kopie offsite.

Ćwiczenia praktyczne Zadania krok-po-kroku

Ćwiczenie A — Utwórz schemat bazy (zadanie offline)

W text editorze napisz polecenia SQL, które:

  1. Tworzą bazę projekt_db
  2. Tworzą tabelę uzytkownicy z kolumnami id (PK), login, email
  3. Tworzą tabelę zamowienia z FK do uzytkownicy.id
Kliknij "Sprawdź SQL" aby otrzymać prostą informację zwrotną.
-- Przykładowe rozwiązanie (MySQL)
CREATE DATABASE projekt_db;
USE projekt_db;

CREATE TABLE uzytkownicy (
  id INT AUTO_INCREMENT PRIMARY KEY,
  login VARCHAR(50) NOT NULL,
  email VARCHAR(100) NOT NULL
);

CREATE TABLE zamowienia (
  id INT AUTO_INCREMENT PRIMARY KEY,
  uzytkownik_id INT NOT NULL,
  produkt VARCHAR(100),
  FOREIGN KEY (uzytkownik_id) REFERENCES uzytkownicy(id)
);
Ćwiczenie B — Zapytania SELECT

Na podstawie tabel z ćwiczenia A napisz zapytania:

  1. Wyświetl wszystkich użytkowników
  2. Wyświetl zamówienia dla użytkownika o loginie 'jan'
-- SELECT przykład
SELECT * FROM uzytkownicy;
SELECT z.* FROM zamowienia z JOIN uzytkownicy u ON z.uzytkownik_id = u.id WHERE u.login = 'jan';

Quiz Sprawdź wiedzę — 8 pytań

MS Access
MySQL
Oracle
MS Access
MySQL
Oracle
Atomicity, Consistency, Isolation, Durability
Inny
MSSQL
MS Access
Brak schematu (schemaless)
Silne relacje i normalizacja
SQL
HTTP
Wymagania funkcjonalne i niefunkcjonalne (SLA, budżet)
Wyłącznie kolor interfejsu

Podsumowanie Co powinieneś umieć

Materiały: INF.03 — Typy SZBD · Opracowanie: Tomasz Puchała