Wykład 1. - dr inż. Roman Ptak

Transkrypt

Wykład 1. - dr inż. Roman Ptak
Bazy Danych
dr inż. Roman Ptak
Katedra Informatyki Technicznej
[email protected]
Plan wykładu 2.
•
•
•
•
2
Modelowanie danych (ERD)
Normalizacja relacyjnych baz danych
Modelowanie obiektowe (UML)
Narzędzia CASE
WPROWADZENIE
3
Inżynieria oprogramowania
4
Niestrukturalizowane tworzenie
oprogramowania
„Kryzys oprogramowania”
Nowy dział informatyki: Inżynieria
oprogramowania (ang. Software
engineering)
1. Projektowanie
2. Implementacja
 Inżynieria baz danych
Cykl projektowy systemu informatycznego
Analiza
Projektowanie
Implementacja
Wdrożenie
Utrzymanie
5
Modele procesu tworzenia oprogramowania
1.
2.
3.
4.
5.
6
Kaskadowy
Typu V
Przyrostowy (ewolucyjny)
Szybkie prototypowanie (makietowanie)
Model spiralny
Model kaskadowy
Wymagania i specyfikacja
Projektowanie
Programowanie
Testowanie
Integracja
7
Paradygmaty programowania
•
•
•
•
•
•
•
•
•
•
•
•
8
programowanie proceduralne
programowanie strukturalne
programowanie funkcyjne
programowanie imperatywne
programowanie obiektowe
programowanie uogólnione
programowanie sterowane zdarzeniami
programowanie logiczne (np. Prolog)
programowanie aspektowe (np. AspectJ)
programowanie deklaratywne
programowanie agentowe
programowanie modularne
Metodologie tworzenia systemów
Obecnie stosowane są dwie główne
metodologie tworzenia systemów
informatycznych:
• Podejście strukturalne – starsze ale
mające wiele zastosowań praktycznych
• Podejście obiektowe – nowsze, znajdujące
coraz większą popularność
9
Obiektowy model danych
• Język modelowania UML
• Mapowanie obiektowo-relacyjne (ORM)
10
MODELOWANIE ERD
11
Etapy projektowania systemów bazodanowych
Sformułowanie problemu
Analiza wycinka rzeczywistości
Opracowanie konceptualnego modelu danych
Opracowanie modelu logicznego
Opracowanie modelu fizycznego
Tworzenie aplikacji
Testowanie systemu
12
I. Projektowanie (modelowanie)
konceptualne
• Faza analizy
1. Analiza wycinka rzeczywistości
2. Analiza wymagań funkcjonalnych
3. Analiza wymagań niefunkcjonalnych
Model konceptualny
13
1. Analiza wycinka rzeczywistości
• Wywiad z ekspertem dziedzinowym
14
2. Analiza wymagań funkcjonalnych
• Należy zidentyfikować i opisać funkcje,
np.:
– Wprowadzenia, modyfikowanie, usuwanie
danych – operacje CRUD (od ang. Create, Read,
Update i Delete),
– Wyszukiwanie danych,
– Przetwarzanie danych,
– Sporządzanie statystyk,
– Przygotowywanie raportów.
15
3. Analiza wymagań niefunkcjonalnych
• Na tym etapie opisujemy wszystkie
pozostałe aspekty związane z
opracowywana bazą danych
16
Analiza wymagań niefunkcjonalnych (2)
•
•
•
•
•
•
•
•
17
Tryb pracy (np. graficzny)
Czy program ma pracować w sieci?
Platforma sprzętowa (np. procesor Intel i7)
Platforma systemowa (np. Windows 7)
Środowisko implementacyjne BD (np. MySQL)
Środowisko programistyczne (Visual C++)
Rodzaj bazy danych (np. relacyjna)
Oszacowanie liczby danych wejściowych,
tempo przyrostu danych
Diagram Związków Encji
 ERD – ang. Entity Relationship Diagram
• ERD jest graficznym odpowiednikiem modelu
związków encji ERM
 ERM – ang. Entity Relationship Model
 EER – ang. Enhanced Entity–Relationship
• ERD pozwala na graficzne zamodelowanie
struktur danych oraz relacji pomiędzy nimi.
• Mając diagram ERD korzystając z systemów
CASE często mamy możliwość wygenerowania
gotowej bazy danych.
18
Przykład diagramu ERD
19
19
ERD – podstawowe pojęcia
• Encja – jest „rzeczą”, która w
modelowanym środowisku jest
rozpoznawana jako istniejący niezależnie
obiekt, zdarzenie lub pojęcie
• Związek – reprezentuje powiązania między
encjami, wynikające z opisu
modelowawnego fragmentu rzeczywistości
– Opcjonalność związków
– Krotność związków
20
Liczebność związków:
• 1:1 – jeden do jeden
encji odpowiada dokładnie jedna encja
• 1:N – jeden do wiele
encji odpowiada jedna lub więcej encji
• N:M – wiele do wiele
jednej lub więcej encjom odpowiada jedna lub
więcej encji
• W przypadku związków N:M należy dokonać
normalizacji diagramu, która polega na dodaniu
encji pośredniczącej i zastąpienie związku N:M
dwoma związkami 1:N z nową encją.
21
Przykłady diagramów ERD w różnych
notacjach
22
źródło: pl.wikipedia.org/wiki/Diagram_zwi%C4%85zk%C3%B3w_encji
II. Projektowanie logiczne
• Model logiczny jest modelem świata
rzeczywistego, wyrażony za pomocą reguł
pewnego architektonicznego modelu
danych.
– Relacyjny model danych
• Transformacja modelu konceptualnego do
modelu logicznego
23
III. Projektowanie fizyczne
• Modelowanie fizyczne obejmuje
konstruowanie modelu świata
rzeczywistego wyrażonego za pomocą
struktur danych i mechanizmów dostępu
istniejących w wybranym SZBD.
• Wybór konkretnego SZBD.
24
NORMALIZACJA RELACYJNYCH
BAZ DANYCH
25
Normalizacja baz danych
• Proces modyfikacji wybranej relacyjnej
bazy danych według ustalonych zasad.
• Proces ten polega na modyfikacji
schematu bazy danych, a nie na usuwaniu
danych.
• Mówimy o tzw. postaciach normalnych
(ang. Normal Form, NF).
26
W jakim celu normalizujemy?
• Bazy danych normalizujemy w celu
uniknięcia anomalii:
– Redundancji danych – dane powtarzają się w
kilku krotkach,
– Modyfikacji  niespójność danych – dana
zostanie zmodyfikowana tylko w jednej
krotce,
– Problemów z dołączaniem i usuwaniem danych
– np. usuwając krotkę możemy stracić pewne
informacje.
27
Etapy normalizacji
28
Pierwsza postać normalna – 1NF
• „Najsłabsza” postać.
• Pierwsza postać normalna mówi o atomowości
danych.
• Wprowadza także pojęcie istnienia klucza
głównego identyfikującego bezpośrednio każdy
unikalny rekord.
• Dziedziny atrybutów elementarne.
• Rozbicie atrybutów na mniejsze czynniki.
29
1NF - przykład
• Brak normalizacji (UNF):
Imię i nazwisko
Adres
Andrzej Kowalski
Wrocław, 54-203, Legnicka 23
Adrian Tomaszewski Gdańsk, 75-400, Traugutta 8
• Zastosowanie 1NF:
Imię
Andrzej
Adrian
30
Nazwisko
Miasto
Kowalski
Wrocław
Tomaszewski Gdańsk
Kod
54-203
75-400
Ulica
Legnicka
Traugutta
Numer
23
8
Druga postać normalna (2NF)
• Każdy atrybut, który nie jest kluczowy, jest
w pełni funkcyjnie zależny od każdego
potencjalnego klucza głównego
(kandydującego).
31
2NF - przykład
32
Imię
Nazwisko
Płeć
Stanowisko
Płaca
Antoni
Gal
Męska
Tokarz
2200
Natalia
Holender
Żeńska
Sekretarka
2500
Karolina
Gal
Żeńska
Sekretarka
2500
Antoni
Polak
Męska
Frezer
2300
Imię
Nazwisko
Stanowisko
Płaca
Imię
Płeć
Antoni
Gal
Tokarz
2200
Antoni
Męska
Natalia
Holender
Sekretarka
2500
Natalia
Żeńska
Karolina
Gal
Sekretarka
2500
Karolina
Żeńska
Antoni
Polak
Frezer
2300
1NF
2NF
Trzecia postać normalna (3NF)
•Nie występują żadne pola, które nie zależą
od klucza głównego encji.
•Normalizacja do tej postaci polega na
przeniesieniu wszystkich pól niezależnych
od klucza do osobnej encji.
33
3NF - przykład
34
NrFaktury
NazwaKlienta
Miasto
Kod
Ulica
Numer
100
Animex
Wrocław
54-203
Legnicka
32
101
Animex
Wrocław
54-203
Legnica
32
102
Betard
Gdańsk
80-827
Długa
3
NrFaktury
Nazwa Klienta
100
Animex
101
Animex
102
Betard
NazwaKlienta
Miasto
Animex
Betard
Kod
3NF
Ulica
Numer
Wrocław 54-203
Legnicka
32
Gdańsk
Długa
3
80-827
2NF
Wyższe postacie normalne
• 3,5 NF - Postać normalna Boyce’a-Codda
• 4 NF
• 5 NF
35
Wady normalizacji
• Zwiększenie ilości tabel = zmniejszenie
wydajności, poprzez konieczność
wykonywania złączeń przez RDBMS.
• Więc czasami decydujemy się na
denormalizację danych.
• Hurtownia danych jest przykładem
zdenormalizowanej postaci danych.
36
Modelowanie obiektowe
JĘZYK UML
37
Modelowanie obiektowe
• Modelowania systemów informacyjnych
z wykorzystaniem podejścia obiektowego i
języka UML.
• Zastosowania języka UML w różnych
obszarach, od projektowania systemów
czasu rzeczywistego poprzez
projektowanie baz danych aż po
modelowanie systemów biznesowych.
38
Klasa a obiekt klasy
• Obiekt
–
–
–
–
konkretne wystąpienie abstrakcji
byt o dobrze określonych granicach i tożsamości
obejmuje stan i zachowanie
egzemplarz klasy
• Klasa
– opis zbioru obiektów, które mają takie same atrybuty, operacje,
związki i znaczenie
– częściowa lub całkowita definicja dla obiektów
– zbiór wszystkich obiektów mających wspólną strukturę i
zachowanie
39
Definicja klasy wraz z kilkoma
obiektami (instancjami klasy)
40
Źródło: http://www.egrafik.pl/kurs-c-plus-plus/6.1.php
UML
• UML (ang. Unified Modeling Language) Ujednolicony Język Modelowania
• Aktualna wersja: 2.4.1
41
UML
• Graficzny język do obrazowania, specyfikowania,
tworzenia i dokumentowania elementów
systemów informatycznych.
• Diagramy UML to schematy przedstawiające
zbiór bytów i związków między nimi.
42
Literatura (wybór)
• G. Booch, J. Rumbaugh, I. Jacobson, UML
przewodnik użytkownika, WN-T, Warszawa
2002.
• R. A. Maksimchuk, E. J. Naiburg, UML dla
zwykłych śmiertelników, Warszawa 2007.
• http://www.uml.org/
• http://www.omg.org/spec/UML/
43
Historia UML
• Modelowanie obiektowe w latach 70 i 80
• 1996 r. – dokumentacja wersji 0.9
• 1997 r. – UML 1.0 w gestii Object
Management Group (OMG)
• Wersje: 1.1, 1.2, 1.3, 1.4, 1.4.2 (ta została
poddana standaryzacji ISO/IEC 19501), 1.5, 2.1.1,
2.1.2
• 2012 r. – najnowsza wersja: 2.4.1
44
(ISO/IEC 19505-1 i 19505-2)
Zastosowania
• tworzenie systemów informacyjnych
przedsiębiorstw,
• usługi bankowe i finansowe,
• przemysł obronnym i lotniczy,
• rozproszone usługi internetowe,
• telekomunikacja,
• transport,
• sprzedaż detaliczna,
• elektronika w medycynie,
• nauka.
45
45
Diagramy UML
• Diagramy struktury
• Diagramy zachowania (dynamiki)
Diagramy UML
Diagramy struktury Diagramy zachowania
Diagramy klas
46
Diagramy przypadków użycia
Diagramy obiektów
Diagramy stanów
Diagramy wdrożenia
Diagramy czynności
Diagramy komponentów
Diagramy interakcji
Diagramy przebiegu
Diagramy kooperacji
Diagramy struktury UML
• Klas
• Obiektów
• Wdrożeniowy
– Komponentów
– Rozlokowania
• Pakietów
• Struktur połączonych
źródło: http://www.erudis.pl/pl/node/93
47
Diagramy dynamiki UML
• Przypadków użycia
• Czynności
• Interakcji
–
–
–
–
Sekwencji
Komunikacji
Harmonogramowania
Sterowania interakcją
• Maszyny stanowej
źródło: http://www.erudis.pl/pl/node/93
48
Zastosowania w projektowaniu
systemów informatycznych
• Projektując system informatyczny, rozpoczyna się
przeważnie od tworzenia diagramów w następującej
kolejności:
–
–
–
–
Przypadków użycia,
Klas,
Czynności,
Sekwencji.
• Są to najczęściej wykorzystywane diagramy. Pozostałe z
nich bywają pomijane, zwłaszcza przy budowaniu
niedużych systemów informatycznych.
49
Diagramy przypadków użycia
(Use Case Diagrams)
• Definicja:
Diagramy służące do modelowania zachowania systemu. Opisują co system
powinien robić z punktu widzenia obserwatora z zewnątrz. Przedstawiają
scenariusze realizacji określonych zachowań (funkcji systemu).
• Zawartość:
–
–
–
–
–
przypadki użycia (ang. use case) - opisy zdarzeń,
aktorzy - osoby/rzeczy inicjujące zdarzenia,
powiązania między aktorami i przypadkami użycia,
zależności, uogólnienia i powiązania między przypadkami użycia,
pakiety, notatki i ograniczenia.
• Zastosowania:
–
–
–
–
50
modelowanie zachowania bytów - opis ciągu akcji zmierzających do realizacji
danej funkcji systemu,
modelowanie otoczenia systemu - definiowanie aktorów i ich ról,
modelowanie wymagań stawianych systemowi – określenie co system powinien
robić,
testowanie systemu.
51
51
Diagramy klas (Class Diagrams)
• Definicja:
Schemat przedstawiający zbiór klas, interfejsów, kooperacji oraz związki
między nimi.
• Używa się ich do modelowania struktury systemu.
• Stanowią bazę wyjściową dla diagramów komponentów i diagramów
wdrożenia.
• Szczególnie przydatne do tworzenia systemów (inżynieria do przodu i
wstecz).
• Zawartość:
–
–
–
–
–
klasy,
interfejsy,
kooperacje,
zależności, uogólnienia, powiązania,
notatki, ograniczenia, pakiety, podsystemy.
• Zastosowania:
–
–
–
52
modelowanie słownictwa systemu (struktura systemu),
modelowanie prostych kooperacji,
modelowanie schematu logicznej bazy danych.
53
Diagramy czynności
(Activity Diagrams)
• Definicja:
Diagramy czynności (schematy blokowe) przedstawiają
przepływ sterowania od czynności do czynności.
Większość diagramów czynności przedstawia kroki
procesu obliczeniowego.
• Zawartość:
–
–
–
–
stany akcji i stany czynności,
przejścia,
obiekty,
notatki i ograniczenia.
• Zastosowania:
– modelowanie przepływu czynności
– Modelowanie operacji
54
55
Diagramy interakcji
• Definicja:
Diagramy interakcji (ang. Interaction Diagrams)
służą do modelowania zachowania systemu.
Ilustrują kiedy i w jaki sposób komunikaty
przesyłane są pomiędzy obiektami.
• Diagramy przebiegu (ang. Sequence Diagrams)
• Diagramy kooperacji (ang. Collaboration
Diagrams)
56
Diagramy interakcji
Na diagramie przebiegu uwypukla się kolejność wysyłania
komunikatów w czasie.
Na diagramie kooperacji kładzie się nacisk na związki
strukturalne między obiektami wysyłającymi i
odbierającymi komunikaty.
Zawartość:
–
–
–
–
obiekty,
wiązania,
komunikaty,
notatki i ograniczenia.
• Zastosowania:
57
– modelowanie przepływu sterowania z uwzględnieniem
kolejności
– komunikatów w czasie,
– modelowanie przepływu sterowania z uwzględnieniem
organizacji strukturalnej obiektów
58
Wybrane aplikacje wspomagające
tworzenie diagramów (darmowe)
• ArgoUML - napisany w Javie, zaawansowane generowanie
kodu i podpowiedzi, ciągle tworzony,
• StarUML - środowiska modelowania pod platformę
Windows,
• Dia - ogólne narzędzie do rysowania diagramów,
• UML Sculptor - prosty, łatwy w użyciu program do
tworzenia diagramów klas,
• Umbrello - program dla Linuksa, część KDE,
• UMLpad,
• JUDE Community,
• NetBeans.
59
Wybrane aplikacje wspomagające
tworzenie diagramów (komercyjne)
60
• Borland Together - rodzina programów integrujących
się z różnymi IDE, jest wersja darmowa,
• Poseidon for UML - zaawansowane narzędzie bazujące
na ArgoUML, darmowa edycja Community,
• Enterprise Architect - Profesjonalne narzędzie w
przystępnej cenie o wygodnym interfejsie działające na
platformach Windows i Linux. Wspiera UML 2.0,
• Rodzina programów iGrafx - narzędzia począwszy od
iGrafx FlowCharter wspierają tworzenie diagramów
UML. Wersja testowa na witrynie iGrafx,
• Visual Paradigm for UML,
• IBM Rational Rose,
• Telelogic Tau G2,
• Visio.
Przykłady
• Stanisław Wrycza (red.), UML 2.1,
Ćwiczenia, Helion 2006.
61
61
DPU (ang. Use Case)
62
63
64
65
66
CASE (ang. Computer-Aided Software Engineering)
NARZĘDZIA DO MODELOWANIA
BAZ DANYCH
67
Wybrane narzędzia do modelowania
•
•
•
•
•
68
Oracle MySQL Workbench
Oracle SQL Developer Data Modeler
SAP Sybase PowerDesigner DataArchitect
IBM Rational Data Architect
Microsoft Visio
Oracle MySQL Workbench
• Narzędzie do zarządzania i modelowania baz
danych MySQL
• Wsparcie dla projektowania baz na poziomach
koncepcyjnym, logicznym i fizycznym
• Wsparcie dla procesów reverse-engineeringu
• Możliwość generowania skryptów SQL
• Wersja: 6.2.5.0
• Licencja: GNU GPLicense lub zamknięta EULA
• http://www.mysql.com/products/workbench
69
MySQL Workbench
70
Oracle SQL Developer Data Modeler
• Zintegrowane środowisko programistyczne
dla użytkowników zajmujących się
programowaniem baz firmy Oracle
• Wersja: 4.0.3.853
• Licencja: zamknięta
• http://www.oracle.com/technetwork/developertools/datamodeler/overview/index.html
• http://www.oracle.com/technetwork/developertools/datamodeler/downloads/datamodeler-087275.html
71
Oracle SQL Developer Data Modeler
72
SAP Sybase PowerDesigner DataArchitect
• Narzędzie do modelowania systemów: baz
danych, hurtowni danych, modelowanie
obiektowe, modelowanie procesów
biznesowych i in.
• Wersja: 16.5
• Licencja: zamknięta
• Cena: ~2000 € - ~10000 €
źródło: www.powerdesigner.de/en/pricing/
73
SAP Sybase PowerDesigner DataArchitect
74
Porównanie narzędzi
Sebastian Łacheciński, Analiza porównawcza Wybranych narzędzi CASE
do modelowania danych w procesie projektowania relacyjnych baz
danych, (w:) Informatyka Ekonomiczna Business Informatics, nr 1 (31),
2014, s. 239-258.
http://www.dbc.wroc.pl/dlibra/doccontent?id=25198
75
Testom poddane zostały:
• ER Studio XE5 Data Architect 9.7
• CA ERWin 9.5 Workgroup
• SAP Sybase Power Designer 16.5 Data
Architect RE
• Oracle SQL Developer Data Modeler
4.0.1
• MySQL Workbench 6.1.4
• MS Visio 2010/2013 Professional
• IBM InfoSphere Data Architect 9.1
76
Wyniki
• Najlepszy: SAP Sybase PowerDesigner 16.5
• Dla darmowych narzędzi najlepszy wynik
osiągnął: Oracle SQL Developer Data
Modeler v. 4
• Dla wdrożeń w oparciu o serwer MySQL
rozsądnym wyborem jest: MySQL
Workbench 6.1.4.
77
Pytania?
DZIĘKUJĘ ZA UWAGĘ

Podobne dokumenty

Wykład 6. - dr inż. Roman Ptak

Wykład 6. - dr inż. Roman Ptak • Modelowania systemów informacyjnych z wykorzystaniem podejścia obiektowego i języka UML. • Zastosowania języka UML w różnych obszarach, od projektowania systemów czasu rzeczywistego poprzez proje...

Bardziej szczegółowo