Koncepcja bazy danych, tabele, pola, rekordy, klucze, relacje, modele baz danych
ð Podstawa programowa: II.3dBaza danych (ang. database) to zorganizowany zbior danych przechowywany w sposob umozliwiajacy efektywne wyszukiwanie, dodawanie, modyfikowanie i usuwanie informacji. Bazy danych sa sercem niemal kazdego systemu informatycznego.
Relacja to polaczenie logiczne miedzy dwiema tabelami oparte na kluczach. Wyrozniamy trzy typy relacji:
Jeden rekord w tabeli A jest powiazany z dokladnie jednym rekordem w tabeli B. Przyklad: Uczen ↔ Legitymacja szkolna (kazdy uczen ma jedna legitymacje).
Jeden rekord w tabeli A moze byc powiazany z wieloma rekordami w tabeli B. To najczestszy typ relacji. Przyklad: Klasa → Uczniowie (jedna klasa ma wielu uczniow, ale kazdy uczen nalezy do jednej klasy).
Wiele rekordow w tabeli A moze byc powiazanych z wieloma rekordami w tabeli B. Wymaga tabeli posredniej (lacznikowej). Przyklad: Uczniowie ↔ Przedmioty (uczen uczy sie wielu przedmiotow, przedmiot jest uczony przez wielu uczniow). Tabela posrednia: Oceny (ID_ucznia, ID_przedmiotu, Ocena).
Normalizacja to proces organizowania danych w celu minimalizacji redundancji (powtarzania) i zapewnienia integralnosci danych. Podstawowe formy normalne:
SZBD (ang. Database Management System) to oprogramowanie do tworzenia i zarzadzania bazami danych:
Diagram zwiazokow encji (Entity-Relationship Diagram, ERD) to graficzna reprezentacja struktury bazy danych pokazujaca tabele, pola i relacje miedzy nimi. Jest podstawowym narzedziem do projektowania baz danych.
Wyobraz sobie baze danych biblioteki szkolnej. Zidentyfikuj: (a) jakie tabele sa potrzebne (min. 3), (b) jakie pola powinna miec kazda tabela, (c) ktore pole bedzie kluczem glownym kazdej tabeli, (d) jakie relacje lacza tabele (okresl typ: 1:1, 1:N, N:M). Narysuj schemat (recznie lub w programie).
Tabele:
1. Ksiazki (ID_ksiazki [PK], Tytul, Autor, ISBN, Rok_wydania, Gatunek)
2. Czytelnicy (ID_czytelnika [PK], Imie, Nazwisko, Klasa, Email)
3. Wypozyczenia (ID_wypozyczenia [PK], ID_ksiazki [FK], ID_czytelnika [FK],
Data_wypozyczenia, Data_zwrotu)
Relacje:
- Ksiazki 1:N Wypozyczenia (jedna ksiazka moze byc wielokrotnie wypozyczona)
- Czytelnicy 1:N Wypozyczenia (jeden czytelnik moze miec wiele wypozyczen)
- Ksiazki N:M Czytelnicy (przez tabele Wypozyczenia)
Zaprojektuj baze danych dla sklepu internetowego. Baza powinna zawierac tabele: Klienci, Produkty, Zamowienia, Pozycje_zamowienia, Kategorie. Dla kazdej tabeli: okresl pola i ich typy danych, klucze glowne i obce. Narysuj diagram ERD pokazujacy relacje. Uzasadnij, dlaczego potrzebna jest tabela Pozycje_zamowienia.
Stworz baze danych "Dziennik szkolny" w Microsoft Access lub LibreOffice Base. Utworz tabele: Uczniowie (ID, Imie, Nazwisko, Klasa, Data_urodzenia), Przedmioty (ID, Nazwa, Nauczyciel), Oceny (ID, ID_ucznia, ID_przedmiotu, Ocena, Data). Ustaw klucze glowne i obce. Wpisz po 10 przykladowych rekordow do kazdej tabeli.
Dana jest tabela z danymi zamowien: Nr_zamowienia, Data, Imie_klienta, Nazwisko_klienta, Adres, Telefon, Produkt1, Cena1, Ilosc1, Produkt2, Cena2, Ilosc2. Ta tabela narusza formy normalne. Wykonaj normalizacje: (a) przeksztalc do 1NF, (b) przeksztalc do 2NF, (c) przeksztalc do 3NF. Pokaz kazdy krok i wyjasnij, co poprawilam.