Wykład BD - KK
1
Składowe schematu bazy danych
• obiekty
• powiązania między nimi z uwzględnieniem ich
rodzaju
• atrybuty – cechy obiektów
• Ze względu na ujmowane cechy model ten
nosi nazwę modelu OAR czyli OBIEKT-
ATRYBUT-RELACJA
Wykład BD - KK
2
Etapy budowy schematu bazy danych
1. Zidentyfikować procesy w organizacji
jednocześnie ustalając potrzebne
funkcjonalności
2. Zidentyfikować wszystkie obiekty
uczestniczące w tych procesach
3. Zidentyfikować rodzaje powiązań
pomiędzy obiektami
4. Zdefiniować słowniki
5. Zidentyfikować zmienne swobodne
Wykład BD - KK
3
Etapy budowy schematu bazy danych - Procesy
1. Zidentyfikować procesy w organizacji
jednocześnie ustalając potrzebne
funkcjonalności
• Określić cel realizacji poszczególnych
procesów
• Określić jakich informacji potrzebujemy aby
wykonać proces
• Określić elementy uczestniczące w procesie
• Określić działania potrzebne do wykonania
procesu
• Określić efekty końcowe i stan systemu przed
i po wykonaniu procesu
Wykład BD - KK
4
Etapy budowy schematu bazy danych - obiekty
2. Zidentyfikować wszystkie obiekty
uczestniczące w tych procesach
• Wyróżnić obiekty rzeczywiste (np.
osoba) i abstrakcyjne (np. zajęcia) i
nazwać je
• Określić atrybuty (cechy) obiektów,
które będą potrzebne
• Podać typy tych atrybutów, wielkości
wartości (ile znaków jest potrzebnych)
• Podać ograniczenia dla tych wartości
Wykład BD - KK
5
Etapy budowy schematu bazy danych - Relacje
3. Zidentyfikować rodzaje powiązań
pomiędzy obiektami
• Łączyć kolejne obiekty określając typ
powiązania
• Nie może pozostać żaden obiekt nie
podłączony do pozostałych
Wykład BD - KK
6
Etapy budowy schematu bazy danych - Słowniki
4. Zdefiniować słowniki
• Słownik to zbiór wartości cech wybranego
atrybutu
• Np. wartości atrybutu kolor to {zielony,
niebieski, biały ,...}
• Słownik powinien składać się ze stosunkowo
niewielkiej liczby elementów (kilkaset, kilka
tysięcy) – znacząco mniejszej niż liczba
wystąpień obiektu.
• Jedna wartość ze słownika powinna
wykorzystywana przez wiele obiektów (np.
10000 pojazdów może być tej samej marki
lub tego samego koloru, 5000 tytułów z tego
samego wydawnictwa)
Wykład BD - KK
7
Etapy budowy schematu bazy danych – zmienne
swobodne
5. Zidentyfikować zmienne swobodne
• Zmienne swobodne nie należą do
żadnego konkretnego obiektu ale
wpływają na działanie całego systemu
np. aktualna data, nazwa firmy, telefon,
NIP, REGON firmy, stawka
roboczogodziny, katalog aplikacji itp.
• Zmienne swobodne można umieścić w
osobnej tablicy, która nie musi być z
niczym połączona
Wykład BD - KK
8
Określić możliwe pytania do
nieistniejącej bazy przykład
BIBLIOTEKA
• Jakie są tytuły książek w bibliotece?
• Jacy są autorzy książek?
• Jakie są wydawnictwa?
• Jakie książki wydało dane
wydawnictwo?
• Jakie są dziedziny książek?
• Jakie są dane osobowe czytelników?
• itp.
Wykład BD - KK
9
Określić funkcje bazy –
pobieranie informacji
• wyświetla dane osobowe czytelników,
• wyświetla dane o wydawnictwie,
• wyświetla jakie są książki z danej
dziedziny,
• wyświetla jakie książki napisał autor,
• wyświetla wypożyczenia czytelnika,
• itp.
Wykład BD - KK
10
Dalsze funkcje bazy -
modyfikacja
• umożliwia modyfikację, dodawanie,
usuwanie danych o obiektach:
• czytelniku,
• autorze,
• wydawnictwie,
• dziedzinie,
• itp.
Wykład BD - KK
11
Dalsze funkcje bazy -
zestawienia
• umożliwia tworzenie zestawień,
podsumowań statystycznych, np.
• ile książek wypożyczył w danym
okresie czytelnik,
• czy w bibliotece jest wystarczająca
ilość egzemplarzy danej książki,
• które książki są najczęściej
wypożyczane,
• itp.
Wykład BD - KK
12
Co to jest Encja
• obiekt, coś istniejącego, odróżnialnego od
innych – o czym informacje chcemy znać
i przechowywać,
• zbiór odróżnialnych danych,
• np. AUTOR – dane osobowe autorów,
• KSIĄŻKA – dane o książce,
• WYDAWNICTWO – dane o wydawnictwie
• OSOBA
Wykład BD - KK
13
Encje mają atrybuty
• Encje są opisywane przez atrybuty,
• AUTOR: imię, nazwisko,adres,itp.
• POJAZD: nr rejestracyjny, typ, marka, kolor, ...
• STUDENT: nr indeksu, kobieta, data_urodzenia,
kierunek, ...
Atrybuty poszczególnych encji dobieramy według
potrzeb konkretnej bazy danych (np. BD czytelników
nie zawiera numeru buta osoby, ani jej wzrostu, a BD
dla potrzeb medycznych – zawiera)
Każda encja musi posiadać klucz – atrybut
identyfikujący wystąpienia encji (nr, PESEL,
NIP)
Wykład BD - KK
14
Atrybuty encji c.d.
• atrybut powinien opisywać encję, do której należy,
• Atrybut ma swoją nazwę (np. imię, cena,
nazwa_towaru itp.)
• atrybut ma swoją wartość,(np. imię –
Adam,
nazwisko –
Mickiewicz)
• Atrybuty mają swoje typy (znakowe, liczbowe,
logiczne, datowe itp.)
• Atrybuty mają swoje dziedziny wartości (np.
cena_towaru >=0, pojemność_silnika
[500,10000])
Wykład BD - KK
15
Atrybuty złożone i proste c.d.
• atrybuty w BD powinny przyjmować wartości atomowe
tzn. wartości proste, nierozkładalne na sensowne
wartości prostsze
• np. adres – [ul. Miła 50/4 Katowice] jest wartością
złożoną – należy go rozłożyć na wartości proste
– Ulica
– Nr_domu
– Nr_lokalu
– miasto
• Po co? Łatwiejsze wyszukiwanie, możliwość
porządkowania, unikanie bałaganu i różnego sposobu
zapisu
Wykład BD - KK
16
Związki encji
Encje wchodzą w związki między sobą
• Wydawnictwo
wydaje
książki
,
• Osoba
wypożycza
egzemplarz książki
,
• Klient
składa
zamówienia
,
• Osoba
jest
autorem książki
,
• Osoba
jest
właścicielem pojazdu
,
• Student
należy do
grupy
,
• Grupa
jest przypisana do
kierunku
• itp.,itd
Wykład BD - KK
17
Składowe schematu bazy danych- reprezentacja
graficzna
• obiekty - prostokąty
• powiązania - romby
• atrybuty – elipsy
• (często pomijane ze względu
na czytelność schematu)
Wykład BD - KK
18
Przykładowy schemat bazy danych
obiekt1
obiekt 2
obiekt 3
obiekt 4
obiekt 5
obiekt 6
atr 1
atr 2
atr 4
atr 3
Wykład BD - KK
19
Trzy typy powiązań
obiekt1
obiekt 2
1
n
obiekt1
obiekt 2
m
n
obiekt1
obiekt 2
1
1
jeden do jeden – bardzo
rzadkie
jeden do wielu – bardzo
częste
wiele do wielu – jeszcze
częstsze niż 1:n
Wykład BD - KK
20
Związki encji
• autor pisze
wiele
książek
• książka jest napisana przez
wielu
autorów
• wydawnictwo wydaje
wiele
książek
• książka jest wydana przez
jedno
wydawnictwo
• książka ma
wiele
egzemplarzy
• egzemplarz jest
jednej
książki
Wykład BD - KK
21
Związki encji a związki między
tabelami
• Związek 1:n oznacza że jednemu wierszowi z
pierwszej tabeli odpowiada 1 lub więcej wierszy z
drugiej tabeli, a jednemu wierszowi z drugiej
tabeli odpowiada 0 lub 1 rekord z pierwszej tabeli.
• Związek m:n oznacza że jednemu wierszowi z
pierwszej tabeli odpowiada 1 lub więcej wierszy z
drugiej tabeli, a jednemu wierszowi z drugiej
tabeli odpowiada 1 lub więcej rekordów z
pierwszej tabeli.
• Może tak się zdarzyć, że wierszowi z jednej tabeli
nie odpowiada ani jeden wiersz z innej tabeli
Wykład BD - KK
22
Powiązania a tabele w bazie danych
obiekt1
obiekt 2
1
n
obiekt1
obiekt 2
m
n
obiekt1
obiekt 2
1
1
JEDNA TABELA
DWIE TABELE
TRZY TABELE
Wykład BD - KK
23
Przykład związku 1:n
Jeden klient może
złożyć wiele zamówień
ale jedno zamówienie
może być złożone
przez tylko jednego
klienta
obiekt1
obiekt 2
1
n
DWIE TABELE
Wykład BD - KK
24
Przykład 2 związku 1:n
Jeden pracownik może
obsługiwać wiele
zamówień ale za jedno
zamówienie jest
odpowiedzialny tylko
jeden pracownik
obiekt1
obiekt 2
1
n
DWIE TABELE
Wykład BD - KK
25
Przykład 3 związku 1:n
Jeden produkt należy
tylko do jednej
kategorii ale jedna
kategoria może
obejmować wiele
produktów
obiekt1
obiekt 2
1
n
DWIE TABELE
Wykład BD - KK
26
Przykład związku m:n
Każdy klient może być
obsługiwany przez
wielu pracowników a
każdy pracownik może
obsługiwać wielu
klientów
Związek następuje
poprzez tabelę
zamówienia
obiekt1
obiekt 2
m
n
TRZY TABELE
Wykład BD - KK
27
Przykład 2 związku m:n
Na każdym
zamówieniu może
znajdować się wiele
produktów, a każdy
produkt może
występować na wielu
zamówieniach.
Związek następuje
poprzez tabelę Opisy
zamówień
obiekt1
obiekt 2
m
n
TRZY TABELE
WNIOSEK:
Związek m:n składa się z dwóch związków 1:n ze wspólną tabelą
Wykład BD - KK
28
BD jest zbiorem tabel połączonych
relacjami
Klienci są związani z produktami
Klienci zamówienia Opisy zamówień produkty
Pracownicy są związani z kategoriami
Pracownicy zamówienia Opisy zamówień produkty Kategorie
Wykład BD - KK
29
BD jest zbiorem tabel połączonych
relacjami
Tabele łączą się w relacje za pomocą kluczy np.
ID klienta w tabeli Klienci jest kluczem głównym a w
tabeli Zamówienia tzw. kluczem obcym
Podobnie w innych tabelach
Wykład BD - KK
30
Tabele samoistne i zależne
Tabele mogą istnieć samodzielnie np. Klienci, Pracownicy,
Dostawcy, Kategorie
lub są zależne od istnienia innych tabel np. Produkty zależą od
Kategorii, Zamówienia od Pracowników i Klientów itd.
Tabele samoistne mają tylko klucze główne, tabele zależne własny
klucz główny i co najmniej jeden klucz obcy
Wykład BD - KK
31
Kolejność tworzenia tabel
Tabele zaczynamy tworzyć od tabel samoistnych w dowolnej
kolejności
mogą istnieć samodzielnie np. Klienci, Pracownicy, Dostawcy,
Kategorie
lub są zależne od istnienia innych tabel np. Produkty zależą od
Kategorii, Zamówienia od Pracowników i Klientów itd.
Tabele samoistne mają tylko klucze główne, tabele zależne własny
klucz główny i co najmniej jeden klucz obcy
1
1
1
1
1
2
2
3
Wykład BD - KK
32
Projektowanie schematu Bazy Danych
Po co projektujemy schematy BD
• Uczynić zadość wymogom dobrej BD
• najlepiej spełnić wymagania użytkownika
• dla celów dokumentacji
• dla celów bieżącej eksploatacji
Wykład BD - KK
33
Projektowanie schematu Bazy Danych
Wymogi dobrego schematu BD
• brak redundancji
• przejrzystość
• czytelność
• odzwierciedlenie wszystkich obiektów
• odzwierciedlenie wszystkich powiązań
• wskazanie charakteru tych powiązań
• pokazanie typów pól
Wykład BD - KK
34
Projektowanie schematu Bazy Danych
Jak spełnić wymagania użytkownika
• uwzględnić wszystkie potrzebne mu informacje
• zapewnić jednoznaczność danych (redundancja)
• nie ograniczać możliwości bazy
• nie nakładać niepotrzebnych ograniczeń na
obiekty i relacje
• umożliwić zadawanie jak największej liczby
zapytań
• zapewnić przyzwoitą wydajność
• nie domagać się zbyt drogiego środowiska
(oprogramowanie i sprzęt)
Wykład BD - KK
35
Projektowanie schematu Bazy Danych
Po co dokumentujemy
• programiści, projektanci, administratorzy,
użytkownicy zmieniają się a bazy trwają
• bazy się rozwijają
• bazy się łączą między sobą
• do bazy przyłączane są nowe aplikacje
• na podstawie BD buduje się systemy analiz
Wykład BD - KK
36
Projektowanie schematu Bazy Danych
Bieżąca eksploatacja
• archiwizowanie i odtwarzanie z
archiwów
• porządkowanie danych
• wykorzystanie rzadziej używanych
funkcji
• przyłączanie nowych użytkowników
• upgradowanie
Wykład BD - KK
37
Podsumowanie
• Od procesów do obiektów które w
nich uczestniczą
• Od obiektów do atrybutów, które
opisują obiekty (w tym kluczy)
• Od obiektów do ich związków
• Od obiektów do tabel
• Od związków do relacji
• Od tabel i relacji do bazy danych