Typy systemów zarządzania bazami danych (SZBD)
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
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
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
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ą
- 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
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
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)
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)
Przeczytaj scenariusz i wybierz najbardziej odpowiedni SZBD (uzasadnij wybór):
- Szkoła planuje mały system do zarządzania biblioteką (1-2 użytkowników jednocześnie).
- Firma e-commerce 24/7, duża liczba transakcji i użytkowników.
- Bank wymagający wysokiej dostępności i skalowalności.
- 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
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
7 — Tabela porównawcza (cechy)
| Cechy | MS Access | MySQL | MSSQL | Oracle |
|---|---|---|---|---|
| Licencja | Komercyjna | Open Source / Komercyjna | Komercyjna | Komercyjna |
| Skalowalność | Niska | Średnia/Wysoka | Wysoka | Bardzo wysoka |
| Typ zastosowań | Lokalne / prototypy | WWW / aplikacje | Korpo / ERP | Bankowość / duże systemy |
| Narzędzia administracyjne | Access GUI | MySQL Workbench | SSMS | Oracle Enterprise Manager |
| Koszty | Niskie (licencja Office) | Niskie / darmowe | Średnie/ Wysokie | Wysokie |
- 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
- Zdefiniuj wymagania: liczba użytkowników, SLA, budżet.
- Sprawdź integracje (platforma, języki, narzędzia).
- Określ potrzeby skalowalności i bezpieczeństwa.
- Rozważ koszty (licencje, utrzymanie, backup, monitoring).
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.
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
W text editorze napisz polecenia SQL, które:
- Tworzą bazę
projekt_db - Tworzą tabelę
uzytkownicyz kolumnami id (PK), login, email - Tworzą tabelę
zamowieniaz FK douzytkownicy.id
-- 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) );
Na podstawie tabel z ćwiczenia A napisz zapytania:
- Wyświetl wszystkich użytkowników
- 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ń
MySQL
MS Access
Oracle
Inny
MS Access
Silne relacje i normalizacja
HTTP
Wyłącznie kolor interfejsu