Professional Documents
Culture Documents
Bazy Danych I Big Data
Bazy Danych I Big Data
Autorzy:
Adam Kowalkowski 325288
Dawid Markowski 325302
Prowadzący:
Dr hab.inż. Marcin Kowalczyk
1
Projekt BDBT – Spis treści
1. Zakres i cel projektu (opis założeń funkcjonalnych projektowanej bazy
danych)…..................................................................................................3
2. Definicja systemu.................................................................................3
2.1 Perspektywy użytkowników.............................................................................................................4
3. Model konceptualny.............................................................................4
3.1 Definicja zbiorów encji określonych w projekcie (decyzje projektowe)…........................................4
4. Model logiczny......................................................................................13
4.1 Charakterystyka modelu relacyjnego...............................................................................................13
5. Faza fizyczna.........................................................................................17
5.1 Projekt transakcji i weryfikacja ich wykonalności.............................................................................17
Bibliografia................................................................................................32
2
1. Zakres i cel projektu (opis założeń funkcjonalnych projektowanej
bazy danych)
Celem projektu było opracowanie oraz zaimplementowanie „relacyjnej bazy
danych”.
Osiągnięcie tego zadania wymagało realizacji trzech zasadniczych faz składających się na cały
proces: konceptualnej, relacyjnej oraz fizycznej. Pierwsze dwie fazy dotyczyły modelowania
schematu bazy danych (model/schemat ER – Entity Relationship), natomiast trzecia –
właściwej implementacji w określonym silniku bazy danych.
Zrealizowana baza danych dotyczy obsługi i zarządzania domem kultury. W bazie,
oprócz informacji o samym domu kultury, przechowywane są również dane o
organizowanych wydarzeniach oraz zajęciach kulturalnych. W poczet klientów można
zaliczyć zarówno osoby prywatne, jak i szkoły. Dom kultury zatrudnia pracowników na
różnego rodzaju stanowiska, wśród których można wyróżnić pracowników recepcji,
nauczycieli, obsługę techniczną oraz sprzątającą. Dodatkowo, baza umożliwia ewentualne
wprowadzenie informacji o językach obcych, jeśli tylko ich znajomość chcą zaznaczyć
pracownicy. Każdemu z pracowników może przysługiwać wypłacane co miesiąc
wynagrodzenie.
Oprogramowanie, które było potrzebne podczas realizacji projektu, składało się z:
2. Definicja systemu
Definicja systemu zakłada następujące funkcjonalności:
3. Model konceptualny
3.1 Definicja zbiorów encji określonych w projekcie (decyzje projektowe)
W projekcie na poziomie konceptualnym wyróżniamy następujące encje:
5
dla samochodu; samochodów a może
samochód jest nie posiadać żadnego.
opcjonalny dla Za to samochód aby
salonu był samochodem
samochodowego. musi istnieć w salonie
samochodowym.
Warsztat - Pracownik Jeden do wielu Warsztat jest Warsztat może
opcjonalny dla posiadać wielu
pracownika; pracowników, ale
pracownik jest może też nie posiadać
opcjonalny dla żadnego. Za to
warsztatu pracownik nie musi
pracować w w
warsztacie, ponieważ
może pracować na
innym stanowisku.
Klient - samochód Wiele do wielu Klient jest Klient może zamówić
opcjonalny dla wiele samochodów a
samochodu; może nie zamówić
samochód jest żadnego. Za to
opcjonalny dla samochód może być
klienta. zamówiony przez
wielu klientów a
może nie być
zamówiony przez
nikogo.
Pracownik-samochód Wiele do wielu Pracownik jest Pracownik może
opcjonalny dla sprzedać wiele
samochodu; samochodów a może
pracownik jest nie sprzedać żadnego.
opcjonalny dla Za to samochód może
klienta. być sprzedany przez
wielu pracowników a
może nie być
sprzadny przez
nikogo.
6
3.3 Określenie atrybutów i ich dziedzin
Salon_samochodowy
Atrybut Typ i dziedzina Obowiązkowość Opis
ID_salonu Integer Obowiązkowy Unikatowy identyfikator salonu
samochodowego
Nazwa VarChar(20) Obowiązkowy Nazwa salonu samochodowego
Adres VarChar(200) Obowiązkowy Adres salonu samochodowego.
Pole segmentowe, które
zawiera kraj, miasto, ulicę,
numer budynku,
numer lokalu i kod pocztowy
Numer_telefonu VarChar(15) Obowiązkowy Numer telefonu salonu
samochodowego
Data_zalozenia Date Obowiązkowy Data założenia salonu
samochodowego
Email VarChar(30) Obowiązkowy Adres email salonu
samochodowego
Pracownik
Atrybut Typ i dziedzina Obowiązkowość Opis
ID_pracownika Integer Obowiązkowy Unikatowy identyfikator
pracownika
Imie VarChar(20) Obowiązkowy Imie pracownika
Drugie_imie VarChar(20) Nieobowiązkowy Drugie imie pracownika
Nazwisko VarChar(40) Obowiązkowy Nazwisko pracownika
Data_urodzenia Date Obowiązkowy Data urodzenia pracownika
Plec Plec Obowiązkowy Plec pracownika
Adres VarChar(200) Obowiązkowy Adres pracownika. Pole
segmentowe, które
zawiera kraj, miasto, ulicę,
numer budynku,
numer lokalu i kod pocztowy
Email VarChar(30) Obowiązkowy Adres email pracownika
PESEL Character(11) Nieobowiązkowy Numer pesel pracownika
Data_zatrudnienia Date Obowiązkowy Data zatrudnienia pracownika
7
Sprzedawca
Atrybut Typ i dziedzina Obowiązkowość Opis
Nr_Stanowiska Integer Obowiązkowy Numer stanowiska sprzedawcy
Jezyk VarChar(50) Obowiązkowy Znajomość języka obcego
sprzedawcy.
Pole segmentowe, które
zawiera język obcy
oraz stopień jego znajomości
Serwisant
Atrybut Typ i dziedzina Obowiązkowość Opis
Nr_legitymacji VarChar(6) Obowiązkowy Numer legitymacji serwisanta
Lata_doswiadczenia Decimal(2, 1) Obowiązkowy Liczba przepracowanych lat
serwisanta
Warsztat
Atrybut Typ i dziedzina Obowiązkowość Opis
ID_warsztatu Integer Obowiązkowy Unikatowy identyfikator
warsztatu
Powierzchnia VarChar(10) Obowiązkowy Powierzchnia warsztatu
Adres VarChar(200) Obowiązkowy Adres warsztatu. Pole
segmentowe, które zawiera
kraj, miasto, ulicę, numer
budynku, numer
lokalu i kod pocztowy
Samochod
Atrybut Typ i dziedzina Obowiązkowość Opis
ID_samochodu Integer Obowiązkowy Unikatowy identyfikator
samochodu
Marka VarChar(30) Obowiązkowy Marka samochodu
Model VarChar(30) Obowiązkowy Model samochodu
Data_produkcji Date Obowiązkowy Data produkcji samochodu
Nr_VIN VarChar(23) Obowiązkowy Numer VIN samochodu
Pojemnosc_silnika Float(1) Obowiązkowy Pojemnosc silnika samochodu
Samochod_dostawczy
Atrybut Typ i dziedzina Obowiązkowość Opis
8
Samochod_osobowy
Atrybut Typ i dziedzina Obowiązkowość Opis
Liczba_miejsc SmallInt Obowiązkowy Liczba miejsc samochodu
osobowego
Wyposażenie VarChar(400) Obowiązkowy Wyposażenie samochodu
osobowego
Klient
Atrybut Typ i dziedzina Obowiązkowość Opis
ID_klienta Integer Obowiązkowy Unikatowy identyfikator klietna
Osoba_prywatna
Atrybut Typ i dziedzina Obowiązkowość Opis
Imie VarChar(20) Obowiązkowy Imie osoby prywatnej
Drugie_imie VarChar(20) Nieobowiązkowy Drugie imie osoby prywatnej
Nazwisko VarChar(30) Obowiązkowy Nazwisko osoby prywatnej
Firma
Atrybut Typ i dziedzina Obowiązkowość Opis
Nazwa VarChar(100) Obowiązkowy Nazwa firmy
NiP Character(10) Obowiązkowy Numer NiP firmy
9
3.4 Dodatkowe reguły integralnościowe (reguły biznesowe)
W ramach dodatkowych reguł integralnościowych założonych na potrzeby spójności
projektu, doprecyzowano, że:
10
3.6 Schemat ER na poziomie konceptualnym
11
3.7 Problem pułapek szczelinowych i wachlarzowych – analiza i
przykłady.
Potrzebne do zobrazowania sposobu rozwiązania pułapki szczelinowej encje zostały
przedstawione poniżej:
12
4. Model logiczny
4.1 Charakterystyka modelu logicznego
Po ukończeniu etapu opracowania koncepcyjnego schematu ER i po zweryfikowaniu jego
poprawności, wykorzystując odpowiednie funkcje w programie Toad Data Modeler,
przeprowadziliśmy proces konwersji projektu na poziom logiczny. Przejście na poziom
logiczny skutkuje kilkoma zmianami:
• Relacje “wiele do wielu” zamienione w dwie relacje jeden do wielu z tablicą łącząca
te relacje
• W tabelach pojawił się dodatkowy atrybut w postaci klucza obcego
• Typy danych zostały dostosowane do tych, które są obsługiwane przez
• wybrany przez nas silni
• Identyfikujący atrybut każdej encji stał się kluczem głównym tabel
• Usunęliśmy pola segmentowe - zamiast tego stworzyliśmy oddzielne tabele,
• które połączyliśmy z tabelą, w której uprzednio znajdowało się pole
• Zmieniliśmy nazwy tabel na liczbę mnogą
• Pomiędzy tabelami uszczegóławiającymi a tabelami nadrzędnymi domyślnie stworzone
zostały relacje jeden do wielu z nieobowiązkowym typem uczestnictwa po stronie potomka
oraz obowiązkowym po stronie rodzica.
13
4.3 Proces normalizacji – analiza i przykłady
Optymalne działanie bazy danych wymaga, aby była ona zorganizowana w sposób
dostosowany do potrzeb silnika bazy danych. Aby osiągnąć tę pożądaną strukturę, stosuje
się proces normalizacji. Postaci normalne stanowią kryteria oceniające stopień, w jakim
struktura bazy danych odzwierciedla tę optymalną formę. Dążymy do osiągnięcia trzeciej
formy normalnej. Normalizacja bazy danych dąży do usunięcia zduplikowanych danych,
centralizując je. To podejście zwiększa bezpieczeństwo przechowywanych informacji i
usprawnia proces aktualizacji danych, przyczyniając się do ich szybszej i bardziej efektywnej
edycji.
14
4.4 Schemat ER na poziomie modelu logicznego
15
Możliwe Zastosowania Denormalizacji
Proces denormalizacji jest procesem odwrotnym do normalizacji, którego przeprowadzenie
służy przyspieszeniu dostępu do pewnych danych oraz zwiększeniu wydajności kosztem
sprawności aktualizacji poprzez wprowadzenie kontrolowanej redundancji w ramach
złagodzenia pewnych reguł normalizacji. Do opisania pierwszego przykładu, w którym
możliwe było przeprowadzenie procesu celowej denormalizacji, warto wspomóc się
rysunkiem relacji potrzebnych do tej czynności:
16
5. Faza fizyczna
5.1 Projekt transakcji i weryfikacja ich wykonalności
Transakcja Weryfikacja Potrzebne dane
wykonalności
Podgląd informacji o salonie Wykonalne Salon_samochodowy, Adres
samochodowym
Dodawanie/modyfikowanie/usuwanie Wykonalne Salon_samochodowy, Adres
informacji o salonie samochodowym
Podgląd informacji o warsztatach Wykonalne Warsztat,adres
Dodawanie/modyfikowanie/usuwanie Wykonalne Warszat,adres
informacji o warsztatach
Podgląd informacji o samochodach Wykonalne Samochody
Dodawanie/modyfikowanie/usuwanie Wykonalne Samochody
informacji o samochodach
Podgląd informacji o samochodach Wykonalne Samochody,samochody
dostawczych _dostawcze
Dodawanie/modyfikowanie/usuwanie Wykonalne Samochody,samochody
informacji o samochodach dostawczych _dostawcze
Podgląd informacji o samochodach Wykonalne Samochody,Samochody
osobowych _osobowe
Dodawanie/modyfikowanie/usuwanie Wykonalne Samochody,Samochody
informacji o samochodach osobowych _osobowe
Podgląd informacji o pracownikach Wykonalne Pracownicy,adresy
Dodawanie/modyfikowanie/usuwanie Wykonalne Pracownicy,adresy
informacji o pracownikach
Podgląd informacji o salonie Wykonalne Pracownicy,adresy,sprz
pracownikach jako sprzedawcy edawcy
Dodawanie/modyfikowanie/usuwanie Wykonalne Pracownicy,adresy,sprz
informacji o pracownikach jako edawcy
sprzedawcy
Podgląd informacji o salonie Wykonalne Pracownicy,adresy,serw
pracownikach jako serwisanci isanci
17
Dodawanie/modyfikowanie/usuwanie Wykonalne Sprzedawcy
informacji o znajomości języków
obcych przez sprzedawców
Podgląd informacji o klientach Wykonalne Klienci,adresy
Dodawanie/modyfikowanie/usuwanie Wykonalne Klienci,adresy
informacji o klientach
Podgląd informacji o klientach jako Wykonalne Klienci,adresy,Firmy
firmy
Dodawanie/modyfikowanie/usuwanie Wykonalne Klienci,adresy,Firmy
informacji o klientach jako firmy
Podgląd informacji o klientach jako Wykonalne Klienci,adresy,osoby
osoby prywatne prywatne
Dodawanie/modyfikowanie/usuwanie Wykonalne Klienci,adresy,osoby
informacji o klientach jako osoby prywatne
prywatne
Podgląd informacji o samochodach Wykonalne Samochody,Pracownik,S
sprzedawanych przez pracowników przedaje
Dodawanie/modyfikowanie/usuwanie Wykonalne Samochody,Pracownik,S
informacji o samochodach przedaje
sprzedawanych przez pracowników
Podgląd informacji o samochodach Wykonalne Samochody,Klient,Zama
zamawianych przez klientów wia
Dodawanie/modyfikowanie/usuwanie Wykonalne Samochody,Klient,Zama
informacji o samochodach wia
zamawianych przez klientów
18
5.3 Skrypt SQL zakładający bazę danych
-- Create sequences section -------------------------------------------------
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOMINVALUE
CACHE 20
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOMINVALUE
CACHE 20
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOMINVALUE
CACHE 20
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOMINVALUE
CACHE 20
19
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOMINVALUE
CACHE 20
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOMINVALUE
CACHE 20
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOMINVALUE
CACHE 20
-- Table Salon_samochodowy
20
CREATE INDEX "IX_adres_salonu" ON "Salon_samochodowy" ("ID_adresu")
-- Table Pracownicy
"Drugie_imie" Varchar2(20 ),
"PESEL" Char(11 ),
21
"ID_salonu" Integer NOT NULL,
22
/
-- Table Klienci
-- Table Firmy
23
CREATE TABLE "Firmy"(
-- Table Osoby_prywatne
"Drugie_imie" Varchar2(20 ),
24
/
-- Table Sprzedawcy
-- Table Serwisanci
25
/
-- Table Samochody
26
/
-- Table Warsztaty
-- Table Samochody_osobowe
27
-- Add keys for table Samochody_osobowe
-- Table Samochody_dostawcze
-- Table Zamawia
28
"ID_samochodu" Integer NOT NULL
-- Table Sprzedaje
-- Table Adresy
29
/
-- Table Znajomosc_jezykow_obcych
-- Table Jezyki_obce
30
ALTER TABLE "Jezyki_obce" ADD CONSTRAINT "PK_Jezyki_obce" PRIMARY KEY ("ID_jezyka")
ALTER TABLE "Samochody" ADD CONSTRAINT "Oferuje" FOREIGN KEY ("ID_salonu") REFERENCES
"Salon_samochodowy" ("ID_salonu")
ALTER TABLE "Klienci" ADD CONSTRAINT "Klient_ma_adres" FOREIGN KEY ("ID_adresu") REFERENCES "Adresy"
("ID_adresu")
ALTER TABLE "Pracownicy" ADD CONSTRAINT "Pracownik_ma_adres" FOREIGN KEY ("ID_adresu") REFERENCES
"Adresy" ("ID_adresu")
31
ALTER TABLE "Klienci" ADD CONSTRAINT "Obsługuje" FOREIGN KEY ("ID_salonu") REFERENCES
"Salon_samochodowy" ("ID_salonu")
Bibliografia
Podczas sporządzania dokumentacji za materiały pomocnicze posłużyły nam slajdy
z przedmiotu Bazy Danych i Big Data (BDBT) autorstwa dr hab. inż. Marcina Kowalczyka
(Instytut Telekomunikacji na Wydziale Elektroniki i Technik Informacyjnych Politechniki
Warszawskiej)
32