background image

• 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

background image

• 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.

background image

• [lekarz]1-(-)-<wystawia>-(-)-1[Pacjent]

  |

|N

[recepta]

background image

• Każdy szef musi być pracownikiem
• Każdy pracownik nie musi być 

szefem

•       |------------------------------------|
• [pracownik]1-(-)-<jest szefem>-|

background image

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

background image

• 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.

background image

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.

background image

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

background image

• 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.

background image

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.

background image

• 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).

background image

• 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.

background image

• 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ą.

background image

• 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ę.

background image

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.

background image

• 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.

background image

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

background image

Krotka - wiersz

• Wiersze służą do zapisywania 

wartości dla pojedynczych obiektów, 
które są reprezentowane przez …

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

• 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.

background image

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ą).

background image

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; 

background image

• 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’));

background image

• ALTER TABLE Studenci
• ADD Drugie_Imię VCHAR2(30) NULL;

• ALTER TABLE Studenci
• ADD CONSTRAINT Ograniczenie_01
• UNIQUE (PESEL);

• DROP TABLE Studenci;

background image

• UPDATE Filmy
• SET długość=110
• WHERE tytuł = ‘Potężne kaczory’;

• UPDATE Filmy
• SET rok = rok +1
• WHERE rok > 1990.

background image

• INSERT INTO Studenci(Nr_albumu, 

PESEL, Nazwisko, Imię, 
Adres_zamieszkania, Imię_Ojca, 
Numer_grupy)

• VALUES
• (10,”645”,”…

• DELETE FROM Studenci
• WHERE PESEL = ‘912349355’;


Document Outline