background image

 

 

Wykład 1

Systemy baz 

danych

background image

 

 

Program wykładów

Projektowanie schematów baz danych - diagramy 
związków encji, zależności funkcyjne, postacie 
normalne. 

Język relacyjnych i obiektowo-relacyjnych baz danych 
SQL. 

Rozszerzenia proceduralne SQL: język PL/SQL w 
Oracle, opcja obiektowa w Oracle, interfejsy 
programistyczne, aplikacje internetowe. 

Budowa i działanie systemu baz danych. 
Administrowanie i dostrajanie systemu baz danych. 

Rozproszone bazy danych. Hurtownie danych.

 

background image

 

 

Program ćwiczeń

1-2 Projektowanie schematów baz danych w Visio 
oraz zależności funkcyjne, postacie normalne.

3 Kartkówka 30min.

3-8 SQL.

9 Kolokwium nr 1 (SQL).

10-13 PL/SQL.

14 Kolokwium nr 2 (PL/SQL, procedury, 
wyzwalacze).

15 Zaliczanie projektów i ćwiczeń.

background image

 

 

Kryteria zaliczeń

Zaliczenie ćwiczeń w oparciu o wyniki 
wejściówek, pracy na ćwiczeniach, kartkówki, 
dwóch kolokwiów oraz ewentualnego projektu. 

Warunkiem pisania egzaminu jest zaliczenie 
ćwiczeń. 

Egzamin będzie miał charakter testowy. 
Końcowa ocena będzie średnią zaliczenia 
ćwiczeń i wyniku testu.

background image

 

 

Bibliografia 

Lech Banachowski, Krzysztof Stencel, Bazy danych Projektowanie 

aplikacji na serwerze, Akademicka Oficyna Wydawnicza EXIT, 2001. 

Lech Banachowski, Bazy danych Tworzenie aplikacji, Akademicka 

Oficyna Wydawnicza PLJ, 1998. 

Lech Banachowski, Elżbieta Mrówka Matejewska,  Krzysztof Stencel 

Systemy baz danych. Wykłady i ćwiczenia. Wydawnictwo PJWSTK, 2004.

Raghu Ramakrishnan and Johannes Gehrke, Database Management 

Systems, 3nd edition, McGraw-Hill, 2000. 

Jeffrey D. Ullamn, Jennifer Widom, Podstawowy wykład z baz danych, 

WNT 1999. 

Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom, Implementacja 

systemów baz danych, WNT, 2003

Paul Beynon-Davies, Systemy baz danych, WNT 1998. 

Dokumentacja Oracle oraz książki na temat baz danych, w szczególności 
na temat Oracle.

 

background image

 

 

Projektowanie 

schematów baz danych

Przypomnienie

background image

 

 

Obiekty modelu danych 

Encja

 

   

Coś co istnieje, jest odróżnialne od innych, o 

czym informację trzeba znać lub 
przechowywać. (najlepszym polskim 
odpowiednikiem jest słowo byt). Miejsce, w 
którym będziemy gromadzić informację 
jednego typu (np. o pracownikach w jednej 
encji, a o samochodach – w drugiej)

 

background image

 

 

Obiekty modelu danych 

Atrybut

   Własność encji, to co ją opisuje, 

charakteryzuje. Czyli to, jakiego 
rodzaju informacje nas interesują (np. 
dla pracownika chcemy przykładowo 

znać imię, nazwisko, adres i telefon).

 

background image

 

 

Obiekty modelu danych 

Związek

    Uporządkowana lista encji, poszczególne 

encje mogą wystąpić wielokrotnie. 
Innymi słowy zależność miedzy dwoma 
(lub więcej) encjami, to co je łączy 
(Związek między encjami Pracownik i 
Samochod: Pracownik ma samochod). 

background image

 

 

Obiekty modelu danych i 

odpowiadające im obiekty bazy 

danych

 

Obiekty 

modelu 

danych 

Obiekty 

bazy 

danych 

Przykłady 

Encja

Tabela

Pracownik, 

Samochod

Atrybut

Pole

Nazwisko, Imie, 
Marka, Model, itd

Związek

Relacja

Pracownik ma 

samochod

background image

 

 

Ilustracja graficzna

Związek

Encje

Przykładowy

 

atrybut

background image

 

 

Klucze 

Klucz główny 

(jednoznaczny identyfikator)

    Jest to atrybut lub zbiór atrybutów encji, dla których 

wartości jednoznacznie identyfikują każdy wiersz. Np. 
dla encji Osoba może to być Pesel. Klucz główny ma dwie 
podstawowe własności: unikatowość (w każdym wierszu 
wartość klucza jest inna, klucza nie można powtórzyć) i 
minimalność (nie potrzeba więcej atrybutów, aby 
zapewnić unikatowość). Ponadto w kluczu nie może być 
NULL. Jeśli klucz jest złożony z kilku atrybutów, to w 
żadnym z nich nie może być wartości NULL.

background image

 

 

Klucze 

Klucz jednoznaczny 

 (nazywany też 

kluczem alternatywnym lub w 

skrócie kluczem) 

    Ma tę samą własność co klucz główny 

przy czym klucz główny jest tylko 
jeden, kluczy jednoznacznych w tabeli 
może być więcej niż jeden.

background image

 

 

Klucze 

Klucz obcy

    Jest to zbiór złożony z jednej lub więcej 

kolumn, których wartości występują jako 
wartości ustalonego klucza głównego lub 
jednoznacznego w tej samej lub innej 
tabeli i są interpretowane jako wskaźniki 
do wierszy w tej drugiej tabeli.

background image

 

 

Typy związków

Związek jednojednoznaczny – jeden do 

jeden.

Związek jednoznaczny – jeden do wiele.

Związek wieloznaczny – wiele do wiele. 

background image

 

 

Związek jednoznaczny – jeden do 

wiele

Jeden pracownik ma wiele samochodów, jeden 

samochód należy tylko do jednego pracownika. Mamy tu 

klasyczną sytuację jeden do wiele (jeden pracownik – 

wiele samochodów).

IDPracownika jest takim 
samym atrybutem 
samochodu jak np. 
Marka, ponieważ ten 
samochód ma jednego 
właściciela, tak samo jak 
jedną markę.

Kropka po stronie wiele. 
IDPracownika  
występuje w tabeli 
Samochód wiele razy. W 
tabeli pracownik – raz.

background image

 

 

Związek wieloznaczny – wiele do 

wiele

Jeden pracownik może mieć wiele samochodów, 
a jeden samochód należy do wielu pracowników. 
Widzimy związek wiele do wiele. 

Związków takich nie możemy bezpośrednio 
reprezentować w relacyjnej bazie danych. 
Musimy zatem rozłożyć ten związek na dwa 
związki jeden do wiele, czyli stworzyć tabelę 
pośrednią (asocjacyjną) pomiędzy naszymi 
tabelami. 

background image

 

 

Związek wieloznaczny – 

reprezentacja

Sposób 1

Kluczem tej tabeli są klucze tabel 
Pracownik i Samochod. Jest to klucz 
obcy. Relacje były identyfikujące, a ta 
encja jest encją zależną

background image

 

 

Związek wieloznaczny – 

reprezentacja

Sposób 2

Ta encja ma własny klucz główny. Jest 
więc niezależna. Relacje są 
nieidentyfikujące.

background image

 

 

Postacie Normalne 

Celem normalizacji jest uniknięcie redundancji, czyli zbędnego powtarzania informacji. 

Dzięki normalizacji unikamy anomalii przy:

Wstawianiu

Usuwaniu

Aktualizacji

background image

 

 

Pierwsza postać normalna:

Każdy atrybut zawiera informację 

jednostkową.

 

Brak 1NF

Przez to pole brak pierwszej postaci 
normalnej

background image

 

 

Pierwsza postać normalna:

Każdy atrybut zawiera informację 

jednostkową.

 

Jak poprawić?

background image

 

 

Druga postać normalna: 

Każdy atrybut nie wchodzący w skład klucza 

zależy od całego klucza, a nie od jego części.

 

Brak 2NF

To pole zależy tylko od 
pola KodTowaru, a więc 
od części klucza.

To pole zależy od całego 
klucza, a więc klucz nie 
jest za duży

background image

 

 

Druga postać normalna: 

Każdy atrybut nie wchodzący w skład klucza 

zależy od całego klucza, a nie od jego części.

 

Jak poprawić?

background image

 

 

Trzecia postać normalna: 

Nie ma atrybutów zależących od części klucza 

ani nawet przechodnio od klucza. 

Brak 3NF

To pole  zależy od pola ZakladPracy, 
a dopiero pole ZakladPracy zależy od 
klucza tabeli. Jest to przechodnia 
zależność od klucza.

background image

 

 

Trzecia postać normalna: 

Nie ma atrybutów zależących od części klucza 

ani nawet przechodnio od klucza. 

Jak poprawić?

background image

 

 

Projektujemy schemat bazy 

danych

Opracuj schemat bazy danych Geografia. Uwzględnij 
wiadomości o państwach, miastach, morzach, 
językach urzędowych i kontynentach, wiedząc, że:
 

Jedno państwo leży na jednym lub wielu kontynentach. 
Każde miasto znajduje się w jednym państwie. 

Każdy język może być językiem urzędowym dla 
jednego lub wielu państw, a każde państwo może mieć 
jeden lub wiele języków urzędowych. 

Każde morze oblewa jedno lub kilka państw, natomiast 
państwo może graniczyć z jednym, z kilkoma lub z 
żadnym z mórz (uwzględnij długość granicy morskiej). 

background image

 

 

Diagram związków encji


Document Outline