bazy danych - WSL

Transkrypt

bazy danych - WSL
2016-10-27
2
PLAN WYKŁADU
1. Bazy danych – wprowadzenie
2. Relacyjne bazy danych
3. Projektowanie baz danych
BAZY DANYCH
BAZY DANYCH
3
4
LITERATURA
BAZA DANYCH
1. Hernandez M.J., Projektowanie baz danych dla każdego. Przewodnik krok po kroku,
Helion 2014
2. Moryk R. Podstawowy kurs systemów baz danych, Helion 2011
1. Ustawa z dnia 27 lipca 2001 r. o ochronie baz danych
Zbiór danych lub jakichkolwiek materiałów i elementów zgromadzonych według
określonej systematyki lub metody, indywidualnie dostępnych w jakikolwiek sposób,
w tym środkami elektronicznymi, wymagający istotnego, co do jakości lub ilości, nakładu
inwestycyjnego w celu sporządzenia, weryfikacji lub prezentacji jego zawartości.
2. PN-ISO/IEC 2382-1:1996
Zbiór danych zorganizowany zgodnie z pojęciową strukturą opisującą charakterystyki
tych danych oraz związki między ich elementami, stosowany w jednym lub wielu
zastosowaniach.
3. Definicja nieformalna
Zbiór danych o określonej strukturze wewnętrznej utworzony w celu efektywnego
wykorzystania dużej liczby danych. W węższym znaczeniu pojęcie obejmuje zbiory
danych przetwarzanych elektronicznie
BAZY DANYCH
BAZY DANYCH
5
6
BAZA DANYCH
MODELE BAZY DANYCH
BAZY PROSTE
1. Pojęcie bazy danych pojawiło się w 1963 r.
2. Pierwsze systemy bazodanowe pojawiły się w latach 60. XX w.
a) oparte na kartach perforowanych lub nośnikach taśmowych
b) w konsekwencji: dostęp szeregowy do danych
3. Wczesne lata 70. XX w.– relacyjny model danych
a) początkowo problemy techniczne z realizacją
b) próbne wdrożenia – 1976
c) wdrożenia komercyjne – ok. 1980 (Oracle, DB2)
d) wdrożenia na mikrokomputery – pierwsza połowa lat 80. XX w. (dBase)
1. Kartotekowe – jedna tabela danych
2. Hierarchiczne
a) Struktura drzewiasta
b) Przykład – struktura plików na dysku
3. Sieciowe (modyfikacja hierarchicznej)
a) Struktura drzewiasta
b) Dodatkowo jeden element może mieć więcej niż jednego „rodzica”
BAZY DANYCH
BAZY DANYCH
1
2016-10-27
7
BAZA HIERARCHICZNA A SIECIOWA
A
A1
A11
A12
A2
A13
8
MODELE BAZ DANYCH
BAZY ZŁOŻONE
A21
A3
A22
A31
1. Relacyjne
a) dane grupowane w relacje (pojęcie z teorii mnogości);
b) relacje można utożsamiać z tabelami
c) na bazę danych składa się wiele tabel
2. Temporalne
a) zazwyczaj wersja relacyjnych baz danych
b) dane opatrzone „stemplem czasowym” określającym czas ważności danych
c) umożliwiają automatyczne usuwanie danych
3. Inne
a) obiektowe
b) strumieniowe
BAZY DANYCH
BAZY DANYCH
9
BAZY DANYCH
PODZIAŁ FUNKCJONALNY
1. Operacyjne
– pozwalają na gromadzenie i modyfikowanie danych
2. Analityczne (hurtownie danych)
– gromadzą dane z baz operacyjnych, nie pozwalają na modyfikacje danych
BAZY DANYCH
WYBRANE POJĘCIA
BAZY DANYCH
11
12
SYSTEM ZARZĄDZANIA BAZĄ DANYCH
(SZBD)
PRZYKŁADOWE ZADANIA SZBD
1. Oprogramowanie służące do realizacji operacji na danych
2. Przykładowe operacje na danych
a) dodawanie i usuwanie danych
b) modyfikowanie danych
c) wyszukiwanie danych
d) prezentowanie danych
e) przechowywanie danych
f) przetwarzanie danych
g) kodowanie danych
1.
2.
3.
4.
5.
6.
7.
BAZY DANYCH
Tworzenie nowych baz danych
Wykonywanie operacji na danych
Zapewnienie dostępu do danych za pomocą odpowiedniego języka zapytań
Zapewnienie ochrony danych przed niepowołanym dostępem
Zapewnianie integralności danych
Przechowywanie zbiorów danych wraz z zapewnieniem im bezpieczeństwa
Zapewnienie wielodostępu
BAZY DANYCH
2
2016-10-27
13
14
POPULARNE SZBD
ARCHITEKTURA KLIENT-SERWER
1. DB2
2. FireBird
3. FrontBase
4. Ingres
5. Kexi
6. Microsoft Access
7. MySQL Community Server
8. MySQL Enterprise Server
9. Oracle
10.PostgreSQL
11.Sybase
1. Serwer
a) baza danych
b) SZBD
2. Klient
a) interfejs użytkownika
b) oprogramowanie realizujące połączenie z serwerem
3. Cechy charakterystyczne
a) Serwer
– przetwarzanie danych
– ochrona danych
– udostępnianie danych
b) Klient
– przyjmowanie zleceń operatora
– przekazywanie zleceń do serwera
– przyjmowanie wyników z serwera
BAZY DANYCH
BAZY DANYCH
15
16
ZAPYTANIA (KWERENDY)
1. Zapytanie
– operacja wyszukiwania lub przetwarzania danych
2. Rodzaje zapytań
a) wybierające
b) funkcjonalne
3. Popularne języki zapytań
a) Structured Query Language (SQL)
b) Query by Example (QBE)
c) DATALOG
RELACYJNE BAZY
DANYCH
BAZY DANYCH
17
1.
2.
3.
4.
5.
6.
7.
18
TABELE – PRZYKŁADY POZYTYWNE
RELACYJNE BAZY DANYCH
ZAŁOŻENIA
Dane przechowywane są w dwuwymiarowych tabelach (relacjach)
Każda tabela w bazie ma swoją własną niepowtarzalną nazwę
Każda kolumna w tabeli ma swoją własną niepowtarzalną w obrębie tabeli nazwę
Wartości w danej kolumnie tabeli są tego samego typu
W tabeli nie istnieją dwa identyczne wiersze
W tabeli przechowywane są dane proste (atomowe)
Kolejność kolumn i kolejność wierszy nie mają znaczenia
BAZY DANYCH
Pracownicy
Działy
Imię
Nazwisko
Dział
Dział
Opis
Telefon
Jan
Kowalski
Pr
Pr
Produkcja
222333444
Jan
Nowak
Pr
Ks
Księgowość
222333555
Ewa
Stasiak
Ks
Z
Zarząd
222333222
Anna
Biała
Z
BAZY DANYCH
3
2016-10-27
19
TABELE – PRZYKŁADY NEGATYWNE
20
TABELE – PRZYKŁADY NEGATYWNE
Pracownicy
Pracownicy
Działy
Imię
Nazwisko
Dział
Dział
Opis
Telefon
Imię
Nazwisko
Dział
Języki
Jan
Kowalski
Pr
Pr
Produkcja
222333444
Jan
Kowalski
Pr
Angielski
Jan
Kowalski
Pr
222333555
Księgowość
Ks
Jan
Nowak
Pr
Ewa
Stasiak
Ks
Zarząd
Z
222333222
Angielski
Niemiecki
Anna
Biała
Z
Ewa
Stasiak
Ks
Angielski
Anna
Biała
Z
Angielski
Niemiecki
Duński
BAZY DANYCH
BAZY DANYCH
21
22
RELACYJNE BAZY DANYCH
TERMINOLOGIA
DOSTĘP DO DANYCH – KLUCZ
1. Tabela, relacja – logicznie wydzielony zbiór danych
2. Kolumna, atrybut, pole – fragment tabeli posiadający własną nazwę i zawierający dane
jednego typu
3. Wiersz, rekord – zbiór danych o pojedynczym obiekcie
Imię
Nazwisko
Dział
Jan
Kowalski
Pr
1. Dane są dostępne przez wskazanie:
a) Tabeli
b) Kolumny
c) Klucza, pozwalającego jednoznacznie zidentyfikować wiersz
2. Klucz – atrybut lub minimalny zestaw atrybutów jednoznacznie identyfikujący wiersz
a) Klucz prosty – złożony z jednego atrybuty
b) Klucz złożony – składa się z wielu atrybutów
c) Klucz obcy – atrybut (lub zbiór atrybutów) występujący w tabeli będący kluczem w
innej tabeli
Jan
Nowak
Pr
Pracownicy
Ewa
Stasiak
Ks
Imię
Nazwisko
Dział
Dział
Opis
Telefon
Anna
Biała
Z
Jan
Kowalski
Pr
Pr
Produkcja
222333444
Jan
Nowak
Pr
Ks
Księgowość
222333555
Ewa
Stasiak
Ks
Z
Zarząd
222333555
Anna
Biała
Z
Pracownicy
BAZY DANYCH
Działy
BAZY DANYCH
23
PROSTA REALIZACJA KLUCZA
24
NORMALIZACJA BAZ DANYCH
PIERWSZA POSTAĆ NORMALNA (1NF)
Wszystkie dane w tabeli są danymi prostymi
a) Przykład negatywny
Pracownicy
IDPrac
Imię
Nazwisko
Dział
1
Jan
Kowalski
Pr
Pracownicy
2
Jan
Nowak
Pr
Imię
Nazwisko
Dział
Języki
3
Ewa
Stasiak
Ks
Jan
Kowalski
Pr
Angielski
4
Anna
Biała
Z
Anna
Biała
Z
Angielski
Niemiecki
Duński
b) Rozwiązanie – utworzenie odrębnej tabeli
BAZY DANYCH
Języki
Imię
Nazwisko
Język
Jan
Kowalski
Angielski
Anna
Biała
Angielski
AnnaBAZY DANYCH Biała
Niemiecki
Anna
Duński
Biała
4
2016-10-27
25
26
NORMALIZACJA BAZ DANYCH
DRUGA POSTAĆ NORMALNA (2NF)
NORMALIZACJA BAZ DANYCH
TRZECIA POSTAĆ NORMALNA (3NF)
Tabela jest w pierwszej postaci normalnej oraz dodatkowo wszystkie atrybuty są zależne
od klucza głównego
a) Przykład negatywny
Tabela jest w trzecie postaci normalnej oraz dodatkowo wszystkie atrybuty są
bezpośrednio (funkcjonalnie, merytorycznie) zależne od klucza głównego
a) Przykład negatywny
Oferta
Wynagrodzenia
Wydawnictwo
Miejscowość
Ulica
Tytuł
Cena
Nazwisko
Kategoria
Stawka godzinowa
ABC
Poznań
Biała 3
Excel
20
Kowalski
3
15
ABC
Poznań
Biała 3
Access
30
Nowak
3
15
BCA
Poznań
Czarna 7
Excel
25
Silska
4
18
BCA
Poznań
Czarna 7
Access
35
b) Rozwiązanie – utworzenie odrębnych tabel
b) Rozwiązanie – utworzenie odrębnych tabe
Pracownicy
Oferta
Wydawnictwa
Kategorie
Wydawnictwo
Tytuł
Cena
Nazwisko
Kategoria
Kategoria
ABC
Excel
20
ABC
Access
30
Kowalski
3
3
25
Nowak
3
4
35
Silska
4
Wydawnictwo
Miejscowość
Ulica
ABC
Poznań
Biała 3
BCA
Poznań
Czarna 7
BCA
BAZY DANYCH Excel
BCA
Access
Stawka godzinowa
15
18
BAZY DANYCH
27
28
NORMALIZACJA BAZ DANYCH
WARTOŚĆ NULL
1. Normalizacja baz danych
a) zwiększa liczbę tabel w bazie
b) redukuje lub likwiduje nadmiarowość (redundancję) danych
c) ułatwia zachowanie integralności danych
2. Normalizacja zwyczajowo jest stosowana w operacyjnych bazach danych
3. Przeciwieństwem podejścia normalizacyjnego jest tzw. podejście wielowymiarowe
stosowane czasami w hurtowniach danych (bazy analityczne)
1. Wartość „Null” (wartość „pusta”) – specyficzna wartość oznaczająca brak danych brak
dostępu do danych, lub niecelowość podawania danych. Wartość taka może mieć
charakter czasowy lub stały
2. Przykłady:
a) Imię i nazwisko małżonka u osób samotnych
b) Numer telefonu osoby, która tego numeru nie podała
c) Pojemność skokowa silnika w przypadku samochodów elektrycznych
3. Wartość Null jest różna od 0, spacji czy pustego ciągu znaków
BAZY DANYCH
BAZY DANYCH
29
30
WIĘZY INTEGRALNOŚCI
1. Więzy integralności nałożone na pojedyncze atrybuty, tabele lub całą bazę danych służą
do zapewnienia poprawności danych
2. Przykłady
a) określenie dopuszczalnych wartości atrybutu
– Płeć: K, M
– Ilość zamówiona: >0
b) określenie dopuszczalnych wartości atrybutu względem innych atrybutów
– Data dostawy: >Data zamówienia
c) zablokowanie możliwości powtarzania się wartości wybranego atrybutu
– PESEL
PROJEKTOWANIE
BAZ DANYCH
BAZY DANYCH
5
2016-10-27
31
32
TERMINOLOGIA
ETAPY PROJEKTOWANIA BAZ DANYCH
1. Tabele – zbiory danych
2. Zapytania (kwerendy) – służą do pozyskiwania i manipulowania danymi
a) zapytania wybierające – pobierają dane z bazy danych
b) zapytania funkcjonalne modyfikują bazy danych
3. Formularze – służą do wprowadzania danych, czasami do ich wyprowadzania w postaci
wydruku
4. Raporty – służą do wyprowadzania danych
1.
2.
3.
4.
5.
6.
7.
Projektowanie systemu
Projektowanie raportów
Projektowanie danych
Projektowanie tabel i związków między tabelami
Projektowanie kolumn (atrybutów)
Projektowanie formularzy
Projektowanie interfejsu (sterowania)
BAZY DANYCH
BAZY DANYCH
33
34
PROJEKTOWANIE SYSTEMU
PROJEKTOWANIE SYSTEMU – PRZYKŁAD (I)
1. Projektowanie systemu to inaczej określenie zakresu projektu
2. Projektowanie systemu tworzy się na podstawie wywiadu z klientem (lub całej ich serii)
3. Z klientem należy określić (i spisać) wszystkie funkcjonalności tworzonego systemu
(realizowane przez system zadania).
4. W przypadku większych projekt systemu może zawierać także etapowanie systemu
5. W wielu przypadkach warto także określić (i spisać) te funkcjonalności, których przyszły
system nie będzie realizował.
Wprowadzenie
a) Firma X prowadzi działalność polegającą na wywozie odpadów niesegregowanych od
osób fizycznych oraz odpadów segregowanych z pojemników ustawionych w
miejscach publicznych, a także odpadów segregowanych od osób prawnych.
b) Odpady niesegregowane odbierane są w workach foliowych i wywożone są na
podstawie umów zawierających określenie daty wywozu w postaci np. „1 i 3 wtorek
miesiąca.
c) Odpady segregowane odbierane z miejsc publicznych gromadzone są w
pojemnikach różnego typu. Obecnie są to pojemniki typu: 1100 i dzwon. pojemniki te
mogą być przeznaczone na szkło, plastik lub makulaturę.
d) Odpady segregowane odbierane od osób prawnych pakowane są w kontenery,
pojemniki, worki BIG BAG. Odpady te muszą być różnicowane na karton/papier,
tworzywa sztuczne – PET, tworzywa sztuczne – folia, tworzywa sztuczne – tworzywa
plastikowe, szkło.
BAZY DANYCH
BAZY DANYCH
35
36
PROJEKTOWANIE SYSTEMU – PRZYKŁAD (II)
PROJEKTOWANIE RAPORTÓW
System powinien
a) ewidencjonować umowy wywozu odpadów niesegregowanych wraz ze wskazaniem
adresu i terminu wywozu odpadów
b) tworzyć wydruki dla pracowników na poszczególne terminy wywozu odpadów
zawierające adresy nieruchomości z których odpady mają być wywiezione
c) tworzyć raporty dla gmin zawierające imię i nazwisko właściciela nieruchomości,
adres i termin wywozu odpadów
d) ewidencjonować pojemniki ustawiane w miejscach publicznych wraz ze wskazaniem
typu pojemnika i rodzaju odpadów
e) ewidencjonować firmy, z którymi zawarto umowy na wywóz odpadów
segregowanych, wraz ze wskazaniem typu pojemnika i rodzaju
System nie musi
a) umożliwiać wystawiana faktur i prowadzenia rozrachunków z klientami
b) ewidencjonować wszystkich kontaktów z klientami
1. Projektowanie raportów to projektowanie „wyjść” z aplikacji bazodanowej
2. Projektowanie raportów polega na:
a) w wersji minimalnej – określeniu zawartości raportów (wydruków)
b) w wersji maksymalnej – określeniu ich postaci graficznej
3. Przy tworzeniu raportów określa się:
a) elementy stałe (tzw. etykiety)
b) dane – elementy zmienne – pobierane z tabel (wartości poszczególnych pól)
c) dane wyliczalne – elementy zmienne wyliczalne – wartości określane na podstawie
innych wartości
d) inne istotne informacje – np. sposób sortowania danych
4. Projektowanie raportów pomaga doprecyzować projekt ogólny, przez zadanie
szeregu pytań klientowi
5. Projektowanie raportów pomaga określić zawartość tabel danych.
BAZY DANYCH
BAZY DANYCH
6
2016-10-27
37
38
PROJEKTOWANIE RAPORTÓW – PRZYKŁAD
PROJEKTOWANIE DANYCH
1. Raport Faktura zawiera musi zawierać następujące elementy:
a) dane nabywcy
b) wskazanie towaru (np. nazwę towaru)
c) ilość towaru
d) cenę jednostkową netto – pobieraną z osobnej tabeli – cennika
e) wartość netto (iloczyn ilości i ceny)
f) stawkę VAT – pobieraną z tabeli zawierającej informacje o towarach
g) wartość podatku VAT (iloczyn wartości netto i stawki VAT)
h) wartość brutto (sumę wartości netto i wartości podatku VAT.
1. Projektowanie danych to kilka etapów
a) zestawienie wszystkich danych, które występują na raportach wraz ze wskazaniem,
na jakich raportach występują, oraz określeniem typu z punktu widzenia raportu
(dane zapisane w tabelach i dane wyliczalne)
b) ujednolicenie i zróżnicowanie ich nazw
c) analiza danych pod względem ich wyliczalności i eliminacja danych wyliczalnych,;
d) analiza danych pod względem ich powtarzalności i eliminacja danych powtarzalnych,
e) przyporządkowanie danych do tabel,
f) określenie sposobu łączenia danych z różnych tabel – wprowadzenie
jednoznacznego identyfikatora rekordu w tabeli (klucza).
BAZY DANYCH
BAZY DANYCH
39
40
PROJEKTOWANIE TABEL I ZWIĄZKÓW MIĘDZY NIMI
PROJEKTOWANIE KOLUMN (ATRYBUTÓW)
1.
2.
3.
4.
1. Projektowanie nazw – nazwa powinna określać funkcję jakie pole pełni
2. Projektowanie zawartości – określenie co dane pole będzie zawierać
a) określenie typu danych (np. liczby, tekst)
b) określenie rozmiaru danych (liczby całkowite, liczby z częścią dziesiętną,
dopuszczalna długość tekstu)
3. Projektowanie reguł integralności, na przykład
a) tylko liczby dodatnie
b) tylko wartości unikatowe (PESEL)
4. Projektowanie masek wprowadzania, na przykład:
a) tylko wielkie litery
b) kod pocztowy z obowiązkowymi pięcioma cyframi z myślnikiem po drugiej cyfrze
5. Projektowanie reguł wprowadzania danych – określenie, które dane są obowiązkowe,
czy dopuszczalna jest wartość „null”
Przypisanie danych do tabel
Określenie kluczy dla każdej tabeli
Normalizacja bazy danych – optymalizowanie sposobu przechowywania danych
Określenie związków między tabelami
Pracownicy
Działy
Imię
Nazwisko
Dział
Dział
Opis
Telefon
Jan
Kowalski
Pr
Pr
Produkcja
222333444
Jan
Nowak
Pr
Ks
Księgowość
222333555
Ewa
Stasiak
Ks
Z
Zarząd
222333555
Anna
Biała
Z
BAZY DANYCH
BAZY DANYCH
41
42
PROJEKTOWANIE FORMULARZY
PROJEKTOWANIE STEROWANIA (MENU)
1. Projektowanie formularzy to projektowanie „wejść” – ekranów pozwalających na
wprowadzanie danych
2. Na formularzach występują
a) elementy informacyjne – etykiety
b) elementy służące do wprowadzania danych:
– pola tekstowe – pozwalające wpisywać dane
– pola kombi i pola listy – pozwalające wybierać dane ze zbioru danych
dopuszczalnych
– przyciski opcji
– pola wyboru
– przyciski akcji itp.
c) elementy graficzne
1. Projektowanie sterowania polega na utworzeniu narzędzi do wywoływania formularzy
i raportów.
2. Przy projektowaniu sterowania należy uwzględnić różne uprawnienia użytkowników, np
a) użytkownik tylko z prawem dostępu
b) użytkownik z prawem modyfikacji
c) administrator
3. Uwzględnienie różnych uprawnień użytkowników może skutkować
a) jednym interfejsem obsługi z blokowanymi niektórymi opcjami
b) wieloma interfejsami obsługi
BAZY DANYCH
BAZY DANYCH
7