• Poza stopniem i typem asocjacji, każdy
związek jest również opisany przez jedną z
dwóch klas przynależności:
– Opcjonalną (może)
– Obowiązkową (musi)
• Związek może być obowiązkowy dla obu lub
jednego z uczestniczących w nim obiektów
– Może – musi
– Musi – może
– Musi – musi
• Przykłady
• -(-)- <- znak może
• [Książka]N–(-)-<jest wypożyczona>-(-)-
1[Czytelnik]
• [pracownik]1-(-)-<wykorzystuje>-----------
1[komputer]
• [kierowca]1----<korzysta>-----------------
1[samochód]
• Elipsa – może, brak elipsy – musi. Domyślnie
– brak elips na modelu – może.
• [lekarz]1-(-)-<wystawia>-(-)-1[Pacjent]
|
|N
[recepta]
• Każdy szef musi być pracownikiem
• Każdy pracownik nie musi być
szefem
• |------------------------------------|
• [pracownik]1-(-)-<jest szefem>-|
Biblioteka
• Biblioteka ma swoich pracowników i czytelników oraz
dysponuje zbiorem książek. Pracownik posiada numer
PESEL, imię i nazwisko, jest określonej płci, ma
określone wykształcenie i staż pracy w bibliotece.
Czytelnik również posiada imię i nazwisko, mieszka pod
określonym adresem oraz posiada przydzielony mu
przy zapisie do biblioteki niepowtarzalny numer
czytelnika. Książka znajdująca się w księgozbiorze
biblioteki ma tytuł, autora, rok wydania oraz numer
ISBN. Czytelnicy wypożyczają książki. Pracownicy
rejestrują zakupione książki oraz zapisują do biblioteki
nowych czytelników.
• Stopień asocjacji
• Spróbujemy wykonać pr
• Zykładowy diagram O-Z (ERD – Entity – Relationship
Diagrams) dla systemu obsługującego hurtownię. Od
utworzonej bazy danych oczekiwać będziemy realizacji
następujących zadań:
–
Ewidencja danych o odbiorcach i dostawcach towarów,
–
Ewidencja i realizacja procesu fakturowania
–
Umożliwienie tworzenia zestawień statystycznych.
• W dziedzinie analizowanego problemu występować będą
następujące podstawowe obiekty:
–
Dostawcy,
–
Odbiorcy,
–
Faktury,
–
Towary.
Model danych
• Model danych to zbiór koncepcji stosowanych do
opisu struktury bazy danych (typy danych, związki
pomiędzy nimi i ograniczenia nałożone na dane).
– Konceptualne modele danych (koncepcja, abstrakcja)
• Wyróżnianie obiektów w miniświecie i związków między nimi
– Implementacyjne modele danych (sposób realizacji)
• Sposób odwzorowywania danych i związków między nimi;
model implementacyjny może być: hierarchiczny, sieciowy,
relacyjny lub obiektowy
– Fizyczne modele danych
• Określają sposoby organizacji danych na dysku.
Model relacyjny
• Przedstawienie w konkretny sposób
obiektów i związków między nimi,
• W modelu relacyjnym dane reprezentuje się
za pomocą dwuwymiarowej tabeli,
nazywanej relacją.
• Pojęcia:
– Relacja (tabela)
– Atrybut (kolumna)
– Krotka (wiersz)
• Relacja to pojęcie matematyczne
• Relacja jest zbiorem krotek,
posiadających taką samą strukturę
(schemat) i różne wartości,
przedstawianych w postaci wierszy
tablicy. Każda krotka zawiera co
najmniej jeden atrybut o określonej
dziedzinie, przedstawiany w postaci
kolumny tablicy.
• Liczba wierszy w tabeli to liczebność
tabeli.
Każda relacja charakteryzuje się
następującymi własnościami:
• Każdy element w tabeli przedstawia jedną daną
elementerną,
• Każda z kolumn jest jednorodna, co oznacza, iż
elementy w kolumnie są tego samego rodzaju,
• Każda kolumna ma odrębną nazwę,
• Wszystkie wiersze muszą być różne; nie dopuszcza
się duplikatów,
• Zarówno wiersze jak i kolumny mogą być
wykorzystane w dowolnej kolejności, bez wpływu na
ich zawartość informacyjną lub znacznie dla funkcji
operującej na tej tabeli,
• Musi istnieć klucz podstawowy (główny) tabeli.
• Pierwszy z warunków wymaga, aby
wprowadzone dane były elementarne.
Oznacza to konieczność wprowadzania do
tabeli wartości, których nie można rozłożyć
na wartości prostsze.
• Konieczność zapewnienia elementarności
ułatwia wprowadzanie danych i nie prowadzi
do niejednoznaczności interpretacji zapisu w
tabeli (zmiana imienia z nazwiskiem, kłopot
wyodrębnienia o składników).
• Warunek drugi – każda kolumna powinna być jednorodna –
to znaczy wpisywanne w nią wartości powinny pochodzić
ze ściśle i precyzyjnie określonego zbioru wartości danego
atrybutu. Wyobraźmy sobie, że mamy kolumnę dotyczącą
wzrostu pracownika. Wiadomo, iż zbiorem wartości będą
dane numeryczne reprezentujące wzrost pracowników, ale
wzrost może być podany w centymetrach, w metrach,
mogą również zdarzyć się dane będą importowane z
innego systemu niż metryczny (185cm, 1,78m, 7stóp). W
jaki sposób je uporządkujemy?
• Warunek trzeci – konieczność stosowania odmiennych nazw
kolumn. Ma to na celu jednoznaczną identyfikację kolumny.
W podanym przykładzie warunek ten jest spełniony.
• Czwarty warunek nie pozwala, aby w tabeli
występowały te same wiersze więcej niż
jeden raz. Ma to na celu uniknięcie
nieprawidłowości związanej z
pozyskiwaniem informacji.
• Piąty warunek – zamiana miejscami kolumn
oraz wierszy nie może powodować zmiany
wartości informacji przechowywanej w tej
tabeli. Jeżeli tabela nie ma tej cechy, to nie
jest tabelą relacyjną.
• Ostatni warunek – konieczność istnienia klucza
pierwotnego tabeli w celu jednoznacznej identyfikacji
wystąpienia danego wiersza relacji (krotki).
• Wiersze w tabeli nie są numerowane, wobec tego musi
istnieć możliwość jednoznacznej identyfikacji każdego
wiersza za pomocą wartości zapisanej w jednej lub kilku
kolumnach. Kolumna taka nosi nazwę klucza
pierwotnego relacji (klucza podstawowego). W
relacji nie mogą wystąpić dwa wiersze, które miałyby
identyczne wartości klucza pierwotnego. Kluczem
pierwotnym może być pojedyncza kolumna lub kilka
kolumn. Wyboru klucza pierwotnego dokonuje osoba
projektująca relację.
Klucz główny
• Każda relacja musi posiadać klucz
główny.
• Klucz główny to atrybut lub kombinacja
kilku atrybutów, które determinują
wartości pozostałych atrybutów relacji.
• Innymi słowy: klucz główny pozwala
identyfikować krotki (wiersze). Nie mogą
istnieć w relacji dwie krotki w takiej samej
wartości klucza głównego.
• Tabelę, która spełnia sześć powyższych
warunków nazywamy relacją. Natomiast
bazę danych używającą relacji określa się
jako relacyjną bazę danych.
• W związku z tym odpowiedź na pytanie co
to jest relacyjna baza danych może
brzmieć następująco:
• Jest to baza danych, która jako sposób
zapisu informacji wykorzystuje tabele
spełniające określone warunki.
Rodzaje i typy kolumn
• Z każdą kolumną jest związany jej typ danych.
Kolumny przypominają pola w plikach. W
relacyjnej bazie danych nie ma
odpowiedników rekordów mogących zmieniać
swój rozmiar czy liczbę składowych. Typ
każdej kolumny musi być prosty i
przechowywać takie dane jak:
– Znaki
– Liczby
– Daty
– Wartości logiczne
Krotka - wiersz
• Wiersze służą do zapisywania
wartości dla pojedynczych obiektów,
które są reprezentowane przez …
W jaki sposób łączymy
tabele?
• Relacyjna baza danych prawie
zawsze składa się z więcej niż jednej
tabeli. W tym momencie zachodzi
konieczność wiązania ze sobą
wierszy w różnych tabelach.
Klucz obcy
• Relacja pozwala na zbieranie powiązanych ze
sobą danych o pewnym obiekcie lub pojęciu. W
rzeczywistości łatwo wskazać związki nie tylko
pomiędzy danymi opisującymi pewien obiekt,
ale również pomiędzy samymi obiektami.
• Model relacyjny pozwala na definiowanie
związków pomiędzy relacjami.
• Związki te tworzy się za pomocą kluczy obcych.
• Klucz obcy jest to atrybut, który jest kluczem
głównym innej relacji.
Ograniczenia
integralnościowe
• Jak wiadomo, baza danych odwzorowuje wybrany fragment niż
rzeczywistości. Odwzorowanie to jest wtedy poprawne, gdy w
każdej chwili baza danych odzwierciedla jeden z możliwych
stanów tej rzeczywistości. Mówimy wtedy, że baza danych jest w
stanie spójnym.
• Po pierwsze należy zapewnić systematyczną (dotyczącą
znaczenia) zgodność danych przechowywanych w bazie danych.
• W przypadku kluczy obcych mamy do czynienia ze specyficznymi
ograniczeniami zwanymi więzami integralności. Wymuszają one
by wartość klucza obcego odwoływała się do klucza głównego w
relacji podstawowej lub przyjmowała wartość pustą NULL.
• Ograniczenia integralnościowe należy rozumieć jako pewne
ograniczenia nakładane na dane, określające, jakie mogą one
przyjmować wartości.
Operacje na danych
• Model relacyjny charakteryzuje się:
– Relacyjnymi strukturami danych
– Więzami integralności
– Dostępnością operatorów algebry
relacyjnej
• Operatory algebry relacyjnej działają
na jednej lub wielu relacjach, a ich
wynikiem są inne relacje.
Operatory algebry relacyjnej
•
Wyróżnia się następujące operatory:
– Selekcji – umożliwiający wybór krotek relacji
spełniających określone warunki
– Projekcji – umożliwiający okrojenie relacji do
wybranych atrybutów
– Połączenia – umożliwiający łączenia krotek wielu
relacji
– Operatory teorii mnogości, np. produkt kartezjański,
unia, przekrój, różnica
•
Operatory kodujemy w języku programowania
(SQL) rozumianym przez system zarządzania
bazą danych.
• Selekcja (ograniczenie) umożliwia
wybór krotek relacji, spełniających
określone warunki.
• Projekcja (rzut), umożliwiający
okrojenie relacji do wybranych
atrybutów.
• Połączenie – umożliwia łączenie
krotek z kilku relacji.
Język baz danych
• Powszechnym standardem w dziedzinie języków baz danych,
oferowanym przez większość relacyjnych baz danych jest
SQL (ang. SQL – Structured Query Language).
• Umożliwia on zarówno definiowanie danych (np. tworzenie
nowej tabeli, dodanie atrybutu do tabeli), jak i
manipulowanie danymi (np. selekcja danych spełniających
zadane kryterium, modyfikacja danych).
• Wyróżnia się:
–
DDL (ang. Data Definition Language) – język definiowania danych
–
DML (ang. Data Manipulation Language) – języka manipulowania
danymi
–
DQL (ang. Data Query Language) – język zapytań
• W języku SQL tworzy się zapytania do bazy danych
(zapytanie zwane jest w MS Access kwerendą).
Język baz danych
• Przykładowe polecenia w języku SQL:
• SELECT * FROM Filmy Select rok >
1990;
• SELECT tytuł, rok FROM Filmy;
• SELECT Nr_albumu, PESEL, Nazwisko,
Imię, Kierunek, Semestr, Tryb FROM
Grupy_studenckie, Studenci WHERE
Grupy_studenckie.Nr_albumu :=
Studenci.Nr_albumu;
• CREATE TABLE Filmy
• ( tytuł VCHAR2(50) NOT NULL
PRIMARY KEY,
• Rok NUMBER(4) NOT NULL,
• Długość NUMBER(3) NULL,
• typFilmu VCHAR2(12) NOT NULL
• CHECK typFilmu in (‘kolor’,’czarno
biały’));
• ALTER TABLE Studenci
• ADD Drugie_Imię VCHAR2(30) NULL;
• ALTER TABLE Studenci
• ADD CONSTRAINT Ograniczenie_01
• UNIQUE (PESEL);
• DROP TABLE Studenci;
• UPDATE Filmy
• SET długość=110
• WHERE tytuł = ‘Potężne kaczory’;
• UPDATE Filmy
• SET rok = rok +1
• WHERE rok > 1990.
• INSERT INTO Studenci(Nr_albumu,
PESEL, Nazwisko, Imię,
Adres_zamieszkania, Imię_Ojca,
Numer_grupy)
• VALUES
• (10,”645”,”…
• DELETE FROM Studenci
• WHERE PESEL = ‘912349355’;