Bazy danych - jak je ugryźć?

79

description

Bazy danych - jak je ugryźć?. Plan prezentacji. Kilka definicji na dobry początek. Dane i bazy danych. Podstawy relacyjnego modelu danych. Rozważania o tabeli. Modelowanie z wykorzystaniem tabel relacyjnych. Problemy i anomalie związane z gromadzeniem danych w tabelach. - PowerPoint PPT Presentation

Transcript of Bazy danych - jak je ugryźć?

Page 1: Bazy danych  - jak je ugryźć?
Page 2: Bazy danych  - jak je ugryźć?

Bazy danych - jak je ugryźć?

informatyka + 2

Page 3: Bazy danych  - jak je ugryźć?

Plan prezentacji

informatyka + 3

1.Kilka definicji na dobry początek.2.Dane i bazy danych.3.Podstawy relacyjnego modelu danych.4.Rozważania o tabeli.5.Modelowanie z wykorzystaniem tabel relacyjnych.6.Problemy i anomalie związane z gromadzeniem danych w tabelach.7.Systemy Zarządzania Bazami Danych.8.Spójność i integralność danych.9.Od rozkładu jazdy do bankowości internetowej.10.Podsumowanie wykładu – pytania.

Page 4: Bazy danych  - jak je ugryźć?

Dane

informatyka + 4

• Liczby, znaki, symbole (i cokolwiek innego) zapisane w celu ich przetwarzania

• 15,’ Ala’,’12-09-1987’, /…/---/…/, ‘Warszawa’, To są jakieś dane

Tylko do końca nie wiemy co one znaczą

Wniosek :Dane bez uporządkowania i

bez umiejętności ich interpretacji to najczęściej

„ŚMIETNIK”

Page 5: Bazy danych  - jak je ugryźć?

Krótkie podsumowanie

informatyka + 5

Dane:

- znaki- liczby- teksty- dźwięki- obrazy

Bez uporządkowania korzystanie z danych jest praktycznie niemożliwe

Proces wykorzystywania danych związany jest z ich przetwarzaniem

Page 6: Bazy danych  - jak je ugryźć?

Informacja

informatyka + 6

Trudno przytoczyć jedną definicję pojęcia informacja

Informacja to taki czynnik, któremu człowiek może przypisać określony sens (znaczenie), aby móc ją wykorzystywać do różnych celów

Informacje możemy „zdobywać” dzięki przetwarzaniu i interpretacji danych .

Page 7: Bazy danych  - jak je ugryźć?

Wiedza

informatyka + 7

Podobnie jak w przypadku informacji – trudno jest jednoznacznie zdefiniować pojęcie wiedza

Tak definiował to pojecie Platon :„ogół wiarygodnych informacji o rzeczywistości wraz z umiejętnością ich wykorzystywania”

Proszę zwrócić uwagę na fakt, że wiedza to, miedzy innymi, umiejętność wykorzystania informacji .

Page 8: Bazy danych  - jak je ugryźć?

Społeczeństwo informacyjne 1

informatyka + 8

I znów będziemy mieli problem z jednoznacznym zdefiniowaniem pojęcia społeczeństwo informacyjne

Społeczeństwo charakteryzujące się przygotowaniem i zdolnością do użytkowania systemów informatycznych, skomputeryzowane i wykorzystujące usługi telekomunikacji do przesyłania i zdalnego przetwarzania informacji”(I Kongres Informatyki Polskiej, 1994)

Wszystko wskazuje na to, że przyszłość należeć będzie do społeczeństw informacyjnych

Page 9: Bazy danych  - jak je ugryźć?

Społeczeństwo informacyjne 2

informatyka + 9

Umiejętność korzystania ze zgromadzonych danych jest jedną z podstawowych cech społeczeństwa informacyjnego.

Page 10: Bazy danych  - jak je ugryźć?

Podsumowanie części 1

informatyka + 10

Dane

In

fo

rm

ac

ja

Wiedza

Dane - powstają na różnych etapach działalności gromadzimy dane w celu ich późniejszego wykorzystania przechowując dane należy zapewnić określony porządek

Informacje - często powstaje w wyniku przetwarzania i interpretacji danych

Wiedza - to miedzy innymi umiejętność wykorzystania informacji

Społeczeństwo informacyjne - to także my

Page 11: Bazy danych  - jak je ugryźć?

Plan prezentacji

informatyka + 11

1.Kilka definicji na dobry początek.2.Dane i bazy danych.3.Podstawy relacyjnego modelu danych.4.Rozważania o tabeli.5.Modelowanie z wykorzystaniem tabel relacyjnych.6.Problemy i anomalie związane z gromadzeniem danych w tabelach.7.Systemy Zarządzania Bazami Danych.8.Spójność i integralność danych.9.Od rozkładu jazdy do bankowości internetowej.10.Podsumowanie wykładu – pytania.

Page 12: Bazy danych  - jak je ugryźć?

Porozmawiajmy o danych 1

informatyka + 12

Tomek Kowal

Zosia Nowak

Mon

ika Ł

agod

naFizyka

Matematyka

Informatyka

Zenon Poważny

Maria Ciekawa

Romek Atomek

12-0

3-20

09

15-03-2009

18-03-2009

5 3

6

Jak widać - dane bez określonego porządku to chaos … i nie ma z takich danych korzyści

Powoli zbiór danych staje się bardziej przejrzystyJeszcze trochę pracy i powinno być dobrze

Uczeń Przedmiot Nauczyciel Data Ocena

informatyka + 12

Page 13: Bazy danych  - jak je ugryźć?

Porozmawiajmy o danych 2

informatyka + 13

Gromadzenie danych musi zapewnić porządek bo w przeciwnym razie nie damy sobie rady w sytuacji gdy danych będzie bardzo dużo.

Jak sprawnie gromadzić dane zachowując możliwość ich wykorzystania ?

Page 14: Bazy danych  - jak je ugryźć?

Bazy danych 1

informatyka + 14

Baza danych

Nazwisko : KotekImię : JasioData ur. : 07-11-1991Pesel : 07111134498Kod poczt: 26-987Miasto : SopotUlica : Klonowa 12/8

Nazwisko : SarenkaImię : ZosiaData ur. : 11-11-1991Pesel : 91111134498Kod poczt: 26-987Miasto : PoznańUlica : Osinowa 22/8

Nazwisko : LisekImię : PiotrData ur. : 11-02-1991Pesel : 91021134498Kod poczt: 96-987Miasto : OpoleUlica : Długa 62/8

Nauczyciel : Józef OstryPrzedmiot :InformatykaRodzaj : SprawdzianData wyst. : 17-05-2009Ocena : 2

Nauczyciel : Jan PowagaPrzedmiot :MatematykaRodzaj : SprawdzianData wyst. : 17-05-2009Ocena : 5

Nauczyciel : Maria BryłaPrzedmiot :FizykaRodzaj : SprawdzianData wyst. : 17-05-2009Ocena : 3

Dane gromadzimy w bazach danych

Page 15: Bazy danych  - jak je ugryźć?

Bazy danych 2

informatyka + 15

Baza danych to zbiór danych zapisanych w ściśle określony sposób w strukturach odpowiadających założonemu modelowi danych.

Aktualnie najczęściej wykorzystuje się bazy danych oparte na relacyjnym modelu danych

Page 16: Bazy danych  - jak je ugryźć?

Bazy danych 3

informatyka + 16

Codziennie korzystamy z różnych baz danych:

Rozkład jazdy pociągówKorzystanie z bankomatuKorzystanie z pomocy i podpowiedzi w różnych programach

Wyszukiwarki internetowe

Page 17: Bazy danych  - jak je ugryźć?

Podsumowanie części 2

informatyka + 17

Dane opisują pewne fakty i zdarzenia

Gromadzimy dane w celu ich późniejszego wykorzystania

Gromadzenie danych bez określonego porządku jest bezsensowne

Dane gromadzimy w bazach danych

Bardzo wiele codziennych czynności związanych jest z korzystaniem z baz danych

Page 18: Bazy danych  - jak je ugryźć?

Plan prezentacji

informatyka + 18

1.Kilka definicji na dobry początek.2.Dane i bazy danych.3.Podstawy relacyjnego modelu danych.4.Rozważania o tabeli.5.Modelowanie z wykorzystaniem tabel relacyjnych.6.Problemy i anomalie związane z gromadzeniem danych w tabelach.7.Systemy Zarządzania Bazami Danych.8.Spójność i integralność danych.9.Od rozkładu jazdy do bankowości internetowej.10.Podsumowanie wykładu – pytania.

Page 19: Bazy danych  - jak je ugryźć?

Relacyjny model danych 1

informatyka + 19

Sposób modelowania danych w którym podstawowym pojęciem jest tabela.

Relacja jest pojęciem matematycznym (z dziedziny teorii zbiorów) i cały model relacyjny jest doskonale opisany przez matematyków.

Dobra interpretacja matematyczna pozwoliła zrealizować dobre oprogramowanie obsługujące relacyjne bazy danych.

Page 20: Bazy danych  - jak je ugryźć?

Wybrane cechy modelu relacyjnego 1

informatyka + 20

Nazwisko Imię Adres Języki obce RodzeństwoKod Ulica Miasto

Kot Jasio 12-098 Nowa 33/21

Opole Angielski, francuski, hiszpański

brat Staś, siostra Mariola

Lis Hania 65-987 Cicha 17/2 Sopot Angielski, niemiecki

brak

Żuk Piotrek 33-093 Miła 4/3 Gdynia Nie zna brat Jaś, brat Staś, siostra Hania

Wszystkie wartości zapisywane w tabelach oparte są na prostych typach danych(brak struktur złożonych )

Powyższa tabela nie spełnia tej cechy - w dalszej części pokażemy jak można ten problem rozwiązać

Page 21: Bazy danych  - jak je ugryźć?

Wybrane cechy modelu relacyjnego 2

informatyka + 21

Wszystkie dane w bazie relacyjnej przedstawione są w formie dwuwymiarowych tabel zwanych relacjami

Numer Nazwa albumu Rok wydania

Nazwa zespołu

1 Kwiaty polskie 1969 Akwarele

2 Help 1967 The Beatles

3 Mrowisko 1971 Klan

4 Rubikone 2009 Piotr Rubik

5 Hellwood 2009 Hunter

Płyty

Page 22: Bazy danych  - jak je ugryźć?

Wybrane cechy modelu relacyjnego 3

informatyka + 22

Ponieważ w modelu relacyjnym kolejność kolumn i wierszy nie ma żadnego znaczenia - to widoczne trzy postaci tabel są identyczne i można z nich pobrać dokładnie te same informacje

Wszystkie operacje wykonywane są w oparciu o logikę bez względu na położenie wiersza w tabeli

Page 23: Bazy danych  - jak je ugryźć?

Wybrane cechy modelu relacyjnego 4

informatyka + 23

W tabeli musi istnieć kolumna lub zbiór kolumn o wartościach niepowtarzalnych, pozwalający odnaleźć konkretny wiersz.

Taką kolumnę (lub zbiór) nazywamy kluczem podstawowym (ang. primary key)

Nazwisko Imię DataUr.

Nowak Jan 15-07-1992

Nowak Piotr 16-10-1992

Kowalski Jan 22-11-1992

Kowalski Jan 22-11-1992

Piskorska Beata 03-05-1992

Pesel Nazwisko Imię DataUr.92071598712 Nowak Jan 15-07-1992

92101675643 Nowak Piotr 16-10-1992

92112287965 Kowalski Jan 22-11-1992

92112233562 Kowalski Jan 22-11-1992

92050322411 Piskorska Beata 03-05-1992

Zaznaczone wiersze są nierozróżnialne,Tak naprawdę nie wiadomo czy jest to pomyłka czy też opis dwóch różnych osób

Dodatkowa kolumna „Pesel” – umożliwiła rozróżnienie dwóch osób. Pesel może być uznany za klucz podstawowy.

Page 24: Bazy danych  - jak je ugryźć?

Relacyjny model danych 2

informatyka + 24

Projekt bazy danych, opartej na modelu relacyjnym, polega na opisaniu pewnej dziedziny życia za pomocą wielu tabel

Każda tabela opisuje jeden rodzaj obiektów (np. uczeń, klient, książka) lub zdarzeń (np. wystawiona ocena, wykonany przelew, wizyta lekarska)

Projektując bazę danych zapewnia się możliwość łączenia ze sobą danych zawartych w różnych tabelach.

Więcej o projektowaniu relacyjnej bazy danych w dalszej części wykładu

Page 25: Bazy danych  - jak je ugryźć?

Podsumowanie części 3

informatyka + 25

Model relacyjny opiera się na pojęciu tabeli

Każda tabela musi posiadać klucz podstawowy

W modelu relacyjnym nieistotna jest kolejność kolumn i wierszy

Baza danych oparta na modelu relacyjnym składa się z wielu tabel opisujących pewną dziedzinę życia.

Bazy relacyjne są aktualnie najbardziej rozpowszechnione.

Page 26: Bazy danych  - jak je ugryźć?

Plan prezentacji

informatyka + 26

1.Kilka definicji na dobry początek.2.Dane i bazy danych.3.Podstawy relacyjnego modelu danych.4.Rozważania o tabeli.5.Modelowanie z wykorzystaniem tabel relacyjnych.6.Problemy i anomalie związane z gromadzeniem danych w tabelach.7.Systemy Zarządzania Bazami Danych.8.Spójność i integralność danych.9.Od rozkładu jazdy do bankowości internetowej.10.Podsumowanie wykładu – pytania.

Page 27: Bazy danych  - jak je ugryźć?

informatyka + 27

Tabela relacyjna

Cechy tabeli relacyjnej

1.Przeznaczenie

Uczniowie

2.Kolumny – określają cechy opisywanego obiektu

Nazwisko Imie Data_ur Pesel

3.Klucz podstawowy

PeselIducznia

Sztuczny klucz

podstawowy

4.Wiersze – suma cech danego obiektu

1 Nowak Jan 11.09.1991 910911456542 Rybak Zofia 12.11.1991 911112567443 Kowal Stefan 21.02.1992 92022172138

4 Kozak Jan 17.08.1992 92081711737

5 Pływak Anna 04.02.1993 93020495571

I już mamy tabelę wraz z zawartością

Page 28: Bazy danych  - jak je ugryźć?

informatyka + 28

Normalizacja – podstawa projektowania

Idfaktury Numer Data_w Netto Vat Firma Nip Ulica Miasto

1 234/08 11.08.08 345.67 71.22 Wedel 1234652789 Nowa 3 Warszawa

2 43/08 12.08.08 763.00 167.00 Wedel 1234652789 Nowa 3 Warszawa

3 01/2008 15.08.08 322.00 68.65 Złotex 6573298722 Miła 7 Sopot

4 11.08/1 22.09.08 100.00 22.00 Koral 5582998721 Dobra 1 Opole

5 34w/08 28.09.08 882.00 187.00 Wedel 1234652789 Nowa 3 Warszawa

6 987/08 02.10.08 250.55 58.12 Złotex 6573298722 Miła 7 Sopot

7 002.08 11.10.08 891.00 201.15 Złotex 6573298722 Miła 7 Sopot

Faktury

I co tutaj nie gra Redundancja!!!!!!!!!!!!!!

Page 29: Bazy danych  - jak je ugryźć?

informatyka + 29

Normalizacja – podstawa projektowania

Idfaktury Numer Data_w Netto Vat

1 234/08 11.08.08 345.67 71.22

2 43/08 12.08.08 763.00 167.00

3 01/2008 15.08.08 322.00 68.65

4 11.08/1 22.09.08 100.00 22.00

5 34w/08 28.09.08 882.00 187.00

6 987/08 02.10.08 250.55 58.12

7 002.08 11.10.08 891.00 201.15

Faktury

Firma Nip Ulica Miasto

Wedel 1234652789 Nowa 3 Warszawa

Złotex 6573298722 Miła 7 Sopot

Koral 5582998721 Dobra 1 Opole

FirmyIdFirmy

1

2

3

Idfirmy1

1

23

1

2

2

1 Wedel 1234652789 Nowa 3 Warszawa

1 Wedel 1234652789 Nowa 3 Warszawa

1 Wedel 1234652789 Nowa 3 Warszawa

2 Złotex 6573298722 Miła 7 Sopot

3 Koral 5582998721 Dobra Warszawa

2 Złotex 6573298722 Miła 7 Sopot

2 Złotex 6573298722 Miła 7 Sopot

Klucz obcy

Page 30: Bazy danych  - jak je ugryźć?

Podsumowanie części 4

informatyka + 30

Model relacyjny opiera się na pojęciu tabeli

Każda tabela musi posiadać klucz podstawowy

W modelu relacyjnym nieistotna jest kolejność kolumn i wierszy

Baza danych oparta na modelu relacyjnym składa się z wielu tabel opisujących pewną dziedzinę życia.

Bazy relacyjne są aktualnie najbardziej rozpowszechnione.

Page 31: Bazy danych  - jak je ugryźć?

Plan prezentacji

informatyka + 31

1.Kilka definicji na dobry początek.2.Dane i bazy danych.3.Podstawy relacyjnego modelu danych.4.Rozważania o tabeli.5.Modelowanie z wykorzystaniem tabel relacyjnych.6.Problemy i anomalie związane z gromadzeniem danych w tabelach.7.Systemy Zarządzania Bazami Danych.8.Spójność i integralność danych.9.Od rozkładu jazdy do bankowości internetowej.10.Podsumowanie wykładu – pytania.

Page 32: Bazy danych  - jak je ugryźć?

Przykładowy projekt bazy danych

informatyka + 32Schemat bazy danych do rejestrowania ocen uczniów

Page 33: Bazy danych  - jak je ugryźć?

Przykładowe fragmenty baz danych

informatyka + 33

Rejestr wypożyczeń książek

Tabela słownikowa

Tabela opisująca osoby

Powiązanie pomiędzy tabelami

Tabela opisująca

książki

Tabela opisująca

wypożyczenia książek

Powiązanie pomiędzy tabelami

Powiązanie pomiędzy tabelami

Page 34: Bazy danych  - jak je ugryźć?

Analiza pewnego problemu 1

informatyka + 34

Wyobraźmy sobie, że w pewnej bazie danych istnieje tabela o nazwie „Klienci” o strukturze pokazanej na rysunku obok

Przykładowa zawartość takiej tabeli mogłaby wyglądać tak jak na rysunku poniżej

Proszę zwrócić uwagę na fakt, że jak brak pewnych danych to w tabeli przechowywana jest specyficzna wartość null

Page 35: Bazy danych  - jak je ugryźć?

Analiza pewnego problemu 2

informatyka + 35

W trakcie eksploatacji naszej przykładowej bazy danych wyniknął problem, ponieważ użytkownicy bazy danych chcieliby dodatkowo przechowywać dane o numerze telefonu komórkowego.

Rozwiązaniem problemu mogłoby być dodanie do tabeli Klienci dodatkowej kolumny TelefonKomorkowy – tak jak poniżej

Tak mogłaby wyglądać zmodyfikowana tabela

… a tak zawartość tej tabeli

Page 36: Bazy danych  - jak je ugryźć?

Analiza pewnego problemu 3

informatyka + 36

… ale czy mamy pewność, że w trakcie dalszej eksploatacji tej bazy danych nie będzie potrzeby dodawania kolejnych kolumn np. żeby zapisać więcej niż jeden numer telefonu albo adres strony www, numer faksu (… a może dwa numery), numer GG … itd.

… a może chwila zastanowienia i rozwiązać ten problem raz a dobrze ???

Page 37: Bazy danych  - jak je ugryźć?

Analiza pewnego problemu 4

informatyka + 37

Problem rozwiążemy w trzech krokach :

1.Utworzymy tabelę słownikową o nazwie „RodzajeKontaktow”

2. Z tabeli „Klienci” usuniemy kolumny opisujące numery telefonów itp.

3.Utworzymy nową tabelę (tzw. tabelę asocjacyjną) o nazwie „KontaktyKlienta”

Page 38: Bazy danych  - jak je ugryźć?

Analiza pewnego problemu 5

informatyka + 38

Model bazy danych

Page 39: Bazy danych  - jak je ugryźć?

Analiza pewnego problemu 6

informatyka + 39

Przykładowa zawartość tabel (RodzajeKontaktow)

Tabele podobnego typu nazywamy tabelami słownikowymi.

Jeżeli będziemy dodatkowo potrzebowali przechowywać w bazie danych informacje o numerach Gadu Gadu i adresy stron WWW – to wystarczy dopisać kolejne wiersze do tabeli

Page 40: Bazy danych  - jak je ugryźć?

Analiza pewnego problemu 7

informatyka + 40

Przykładowa zawartość tabel (Klienci)

W tabeli „Klienci” nie zapisujemy teraz danych o numerach telefonów, adresach e-mail itp.

Dodatkowo uzyskujemy jeszcze jedna korzyść – w sytuacji gdy dany klient nie ma telefonu lub innego środka łączności, nie musimy przechowywać w tabeli wartości null.

Page 41: Bazy danych  - jak je ugryźć?

Analiza pewnego problemu 8

informatyka + 41

Przykładowa zawartość tabel (KontaktyKlienta)

Tabele tego typu nazywamy tabelą powiązań (asocjacyjną)

Dane zawarte w tabeli KontaktyKlienta wymagają interpretacji, żeby stały się czytelne

Page 42: Bazy danych  - jak je ugryźć?

Analiza pewnego problemu 9

informatyka + 42

Poniżej postać danych z poprzedniego slajdu, przekształcona do bardziej czytelnej postaci

Dzięki kluczom obcym w tabeli KontaktyKlienta mogliśmy powiązać dane zapisane w różnych tabelach

Page 43: Bazy danych  - jak je ugryźć?

informatyka + 43

Za pomocą dwuwymiarowych tabel opisujemy wybrany fragment rzeczywistości (bank, szkoła , kolekcja płyt)

Tabele relacyjne mogą opisywać :•Obiekty rzeczywiste (uczniowie, nauczyciele, klasy)•Słowniki pojęć (przedmioty, rodzaje ocen)•Zdarzenia i powiązania (wystawione oceny)

Powiązanie danych zapisanych w różnych tabelach osiągamy dzięki parze kluczy : klucz obcy --- klucz podstawowy

Podsumowanie części 5

Page 44: Bazy danych  - jak je ugryźć?

Plan prezentacji

informatyka + 44

1.Kilka definicji na dobry początek.2.Dane i bazy danych.3.Podstawy relacyjnego modelu danych.4.Rozważania o tabeli.5.Modelowanie z wykorzystaniem tabel relacyjnych.6.Problemy i anomalie związane z gromadzeniem danych w tabelach.7.Systemy Zarządzania Bazami Danych.8.Spójność i integralność danych.9.Od rozkładu jazdy do bankowości internetowej.10.Podsumowanie wykładu – pytania.

Page 45: Bazy danych  - jak je ugryźć?

Problemy gromadzenia danych w tabelach 1

informatyka + 45

Pesel Nazwisko Imię DataUrodzenia Płeć Wiek

92092256787 Kotek Janina 1992-09-22 Kobieta 17

921105au34 Lisek Piotr 1992-07-21 Kotek 33

Wiktor 23 Lis 8 maj 91 Chłopak OK

Problem 1 : Gromadzenie danych w tabeli nie może się odbywać bez reguł i ograniczeń – nie wystarczy samo nazwanie kolumn

Jak widać na powyższym przykładzie – w tabeli bardzo łatwo może zapanować totalny bałagan, choćby z tego powodu, że to ludzie wprowadzają dane, a człowiek jest omylny.

Bazy danych powinny posiadać mechanizmy ułatwiające wymuszanie poprawności zapisywanych danych

Page 46: Bazy danych  - jak je ugryźć?

Problemy gromadzenia danych w tabelach 3

informatyka + 46

Pesel Nazwisko Imię DataUrodzenia Płeć Wiek

92092256787 Kotek Janina 1992-09-22 Kobieta 17

921105au34 Lisek Piotr 1992-39-42 Kotek 33

Wiktor 23 Lis 8 maj 91 Chłopak OK

Kilka słów o przedstawionych problemach

1. Nazwa kolumny nie gwarantuje zapisywania w niej właściwych danych

2. Gdy mamy zapisane błędne dane – baza danych traci sens.

3. W powyższym przykładzie – numer Pesel powinien być zależny od daty urodzenia

Page 47: Bazy danych  - jak je ugryźć?

Problemy gromadzenia danych w tabelach 4

informatyka + 47

Problem 2: Problemy i anomalie związane z zapisywaniem danych

W powyższej, przykładowej, tabeli mamy cały szereg problemów, które mogą wyniknąć w nieprawidłowo zabezpieczonej bazie danych

Page 48: Bazy danych  - jak je ugryźć?

Problemy gromadzenia danych w tabelach 5

informatyka + 48

Problem 2: Problemy i anomalie związane z zapisywaniem danych

1. Czy Jan Kotek i Kotek Jan – to ta sama osoba????

2. Czy Daria Miła mieszka na ulicy Naftowej czy Benzynowej ???

3. Czy Sprawdzian i Sprawdz. to ten sam rodzaj oceny????

4. Czy Historia i Chistoria (ale wtyd – ale zdarzyć się może) to ten sam przedmiot ?????

Page 49: Bazy danych  - jak je ugryźć?

Podsumowanie części 6

informatyka + 49

•Przedstawione wcześniej problemy oraz wiele innych, których nie zdążymy teraz omówić są poważnym wyzwaniem dla twórców baz danych.

•Bez rozwiązania tych problemów bazy danych byłyby niewiarygodne.

•W dalszej części wykładu omówimy niektóre sposoby zapewnienia poprawności przechowywanych danych

Page 50: Bazy danych  - jak je ugryźć?

Plan prezentacji

informatyka + 50

1.Kilka definicji na dobry początek.2.Dane i bazy danych.3.Podstawy relacyjnego modelu danych.4.Rozważania o tabeli.5.Modelowanie z wykorzystaniem tabel relacyjnych.6.Problemy i anomalie związane z gromadzeniem danych w tabelach.7.Systemy Zarządzania Bazami Danych.8.Spójność i integralność danych.9.Od rozkładu jazdy do bankowości internetowej.10.Podsumowanie wykładu – pytania.

Page 51: Bazy danych  - jak je ugryźć?

System Zarządzania Bazą Danych 1

informatyka + 51

Systemem Zarządzania Bazami Danych nazywamy specjalistyczne oprogramowanie umożliwiające tworzenie baz danych oraz ich eksploatację

SZBD powinien(miedzy innymi) umożliwiać :

•Definiowanie obiektów bazy danych

•Manipulowanie danymi

•Generowanie zapytań

•Zapewnienie spójności i integralności danych

Page 52: Bazy danych  - jak je ugryźć?

System Zarządzania Bazą Danych 2

informatyka + 52

MS SQL Server 2008

Przykłady SZBD :

Oracle

MySQL

Access

DB2

… i wiele, wiele innych

Page 53: Bazy danych  - jak je ugryźć?

System Zarządzania Bazą Danych 2

informatyka + 53

Jednym z najważniejszych zadań stojących przed SZBD jest zapewnienie spójności i integralności danych

SZBD dostarczają szereg mechanizmów służących zapewnieniu poprawności przechowywanych danych

Page 54: Bazy danych  - jak je ugryźć?

System Zarządzania Bazą Danych 2

informatyka + 54

Rodzaje reguł i ograniczeń

•Deklaracja typu

•Definicje kluczy

•Reguły poprawności dla kolumny

•Reguły poprawności dla wiersza

•Reguły integralności referencyjnej

Poszczególne typy reguł zostaną omówione w dalszej części wykładu

Page 55: Bazy danych  - jak je ugryźć?

Plan prezentacji

informatyka + 55

1.Kilka definicji na dobry początek.2.Dane i bazy danych.3.Podstawy relacyjnego modelu danych.4.Rozważania o tabeli.5.Modelowanie z wykorzystaniem tabel relacyjnych.6.Problemy i anomalie związane z gromadzeniem danych w tabelach.7.Systemy Zarządzania Bazami Danych.8.Spójność i integralność danych.9.Od rozkładu jazdy do bankowości internetowej.10.Podsumowanie wykładu – pytania.

Page 56: Bazy danych  - jak je ugryźć?

Spójność i integralność danych

informatyka + 56

Jednym z najistotniejszych elementów Systemów Zarządzania Bazami Danych są mechanizmy zapewnienia spójności i integralności danych przechowywanych w bazie

Podstawowe sposoby zapewnienia integralności danych

•Deklaracja typu

•Deklaracje kluczy

•Reguły poprawności dla kolumny

•Reguły poprawności dla wiersza

•Reguły integralności referencyjnej

Page 57: Bazy danych  - jak je ugryźć?

Deklaracja typu 1

informatyka + 57

W tabelach relacyjnych przechowujemy dane różnego typu (liczby, teksty, znaki, daty …)

Każda kolumna w tabeli musi mieć określony typ przechowywanych danych

Deklaracja typu jest pierwszym sposobem zapewnienia poprawności danych – w ujęciu matematycznym jest to określenie dziedziny wartości dla kolumny

Page 58: Bazy danych  - jak je ugryźć?

Deklaracja typu 2

informatyka + 58

Przykładowe typy danych w SQL Server 2008 Dla danych znakowych •char(n) - ciąg n znaków o stałej długości (np. jeżeli kolumna ma określony typ char(25) a wpiszemy słowo „kot” – to i tak zostanie ono zapisane za pomocą 25 znaków – uzupełnione spacjami) •varchar(n) – ciąg n znaków o zmiennej długości (np. jeżeli kolumna ma określony typ varchar(25) a wpiszemy słowo „kot” –zostanie ono zapisane za pomocą 3 znaków)

•varchar(max) – ciąg znaków o zmiennej długości do 2 GB

Page 59: Bazy danych  - jak je ugryźć?

Deklaracja typu 3

informatyka + 59

Przykładowe typy danych w SQL Server 2008

Pytanie : Skoro typ char w porównaniu z varchar wykorzystuje więcej pamięci do zapisywania danych (uzupełnianie spacjami) – to jakie korzyści możemy osiągnąć w przypadku wykorzystania typu char

Page 60: Bazy danych  - jak je ugryźć?

Deklaracja typu 4

informatyka + 60

Przykładowe typy danych w SQL Server 2008

Istnieją także odmiany podanych wcześniej znakowych typów danych poprzedzone literka „n”

• nchar (n)• nvarchar(n)• nvarchar(max)

Są to typy danych znakowych (zapisywanych łącznie z informacją o stronie kodowej) umożliwiające przechowywanie tekstów używających znaków specyficznych dla różnych języków

Page 61: Bazy danych  - jak je ugryźć?

Deklaracja typu 5

informatyka + 61

Przykładowe typy danych w SQL Server 2008Dla danych liczbowych – liczby całkowite

•tinyint- liczba całkowita z zakresu 0 ÷ 255 - przechowywana za pomocą 1 bajtu •smallint- liczba całkowita z zakresu -32768 ÷ 32767 przechowywana za pomocą 2 bajtów

•int- liczba całkowita z zakresu -2147483648 ÷ 2147483647 przechowywana za pomocą 4 bajtów

•bigint- liczba całkowita z zakresu -9223372036854775808 ÷ 9223372036854775807 przechowywana za pomocą 8 bajtów

Page 62: Bazy danych  - jak je ugryźć?

Deklaracja typu 5

informatyka + 62

Przykładowe typy danych w SQL Server 2008Dla danych liczbowych – liczby z ułamkiem

•real , float - do zapisywania liczb zmiennoprzecinkowych

•decimal, numeric - do zapisywania liczb zmiennoprzecinkowych o określonej precyzji

•money - do zapisywania liczb wyrażających kwoty pieniężne

Page 63: Bazy danych  - jak je ugryźć?

Deklaracja typu 6

informatyka + 63

Przykładowe typy danych w SQL Server 2008Dla danych liczbowych – data i czas

•date- do zapisywania dat np. 2009-08-22

•time- do zapisywania czasu np. 19:22:07.2345644

•datetime - do zapisywania łącznie daty i czasu np. 2009-08-22 19:22:07.2345644

Page 64: Bazy danych  - jak je ugryźć?

Deklaracja typu 7

informatyka + 64

Przykładowe typy danych w SQL Server 2008Dla danych liczbowych – typy różne

•bit- do zapisywania wartości logicznych (true, false lub 0,1)

•varbinary(n)- do zapisywania danych binarnych o długości n bajtów

•varbinary(max) - do zapisywania danych binarnych o długości do 2 GB (np. obrazy, dźwięki itp. )

•xml- do zapisywania dokumentów XML o długości do 2 GB

•Timestamp - specjalny znacznik który automatycznie zmienia swoja wartość przy modyfikacji wiersza

Page 65: Bazy danych  - jak je ugryźć?

Deklaracja typu 8

informatyka + 65

Krótkie podsumowanie

•Każda kolumna w tabeli musi mieć określony typ danych jaki będzie w tej kolumnie zapisywany

•Decyzja o wyborze odpowiedniego typu danych jest pierwszym etapem zapewnienia spójności danych

•Wybór typu jest równoznaczny z określeniem dziedziny wartości dla danych zapisywanych w danej kolumnie

Page 66: Bazy danych  - jak je ugryźć?

Deklaracja kluczy

informatyka + 66

W każdej tabeli relacyjnej powinien być zdefiniowany klucz podstawowy – taka definicja zapewnia, ze każda wartość w kolumnie klucza podstawowego musi przyjąć inną wartość

W SZBD istnieją mechanizmy nadające kolumnom klucza podstawowego automatycznie unikalne wartości (autonumeracja)

Można także wymusić unikalność kolumn, które nie są kluczem podstawowym – klucze potencjalne

Page 67: Bazy danych  - jak je ugryźć?

Reguły poprawności dla kolumny

informatyka + 67

Deklaracja typu określa dziedzinę wartości dla kolumny ale często jest to dziedzina zbyt szeroka

Reguła poprawności dla kolumny jest wyrażeniem logicznym ograniczającym dziedzinę do tych wartości, które spełniają ten warunek

Przykład :

Numer Pesel (w tabeli Uczniowie) ma zadeklarowany typ danych char(11) - czyli ciąg znaków o maksymalnej długości 11. Powinniśmy wymusić, żeby to było dokładnie 11 znaków i mogą to być tylko cyfry.

Taka definicja zapewni, że zapisywane w tabeli numery Pesel będą poprawne (w tej części wymagań)

Page 68: Bazy danych  - jak je ugryźć?

Reguły poprawności dla wiersza

informatyka + 68

Czasami występują logiczne zależności pomiędzy danymi zapisanymi w różnych kolumnach (dla jednego wiersza)

Reguła poprawności dla wiersza jest wyrażeniem logicznym ograniczającym dziedzinę do tych wartości, które spełniają ten warunek .

Przykład :Numer Pesel (w tabeli Uczniowie) jest logicznie powiązany z datą urodzenia ucznia zapisaną w tej samej kolumnie.

Powinniśmy wymusić, żeby pierwsze sześć cyfr numeru Pesel odpowiadało dacie urodzenia zapisanej w innej kolumnie

Taka definicja zapewni, że zapisywane w tabeli numery Pesel i daty urodzenia będą logicznie poprawne

Page 69: Bazy danych  - jak je ugryźć?

Reguły integralności referencyjnej

informatyka + 69

Integralność referencyjna określa poprawność logiczna danych zapisanych w różnych tabelach

Klasycznym przykładem takich zależności jest para klucz obcy – klucz podstawowy.

Przykład :Kolumna iducznia w tabeli Uczniowie (jako klucz podstawowy) i kolumna iducznia w tabeli Oceny (jako klucz obcy)

Powinniśmy wymusić, żeby wartości klucza obcego przyjmowały tylko takie wartości, które występują w tabeli gdzie ta kolumna jest kluczem podstawowym – zapewnia to odpowiednie powiązanie danych zapisanych w różnych tabelach.

Page 70: Bazy danych  - jak je ugryźć?

Podsumowanie części 8

informatyka + 70

•Zapewnienie spójności i integralności danych jest jednym z najważniejszych wyzwań stojących przed twórcami baz danych

•Systemy Zarządzania Bazami Danych dostarczają mechanizmy ułatwiajace realizacje tych zadań

•W trakcie zajęć warsztatowych przyjrzymy się jak te mechanizmy działają w praktyce

Page 71: Bazy danych  - jak je ugryźć?

Plan prezentacji

informatyka + 71

1.Kilka definicji na dobry początek.2.Dane i bazy danych.3.Podstawy relacyjnego modelu danych.4.Rozważania o tabeli.5.Modelowanie z wykorzystaniem tabel relacyjnych.6.Problemy i anomalie związane z gromadzeniem danych w tabelach.7.Systemy Zarządzania Bazami Danych.8.Spójność i integralność danych.9.Od rozkładu jazdy do bankowości internetowej.10.Podsumowanie wykładu – pytania.

Page 72: Bazy danych  - jak je ugryźć?

Od rozkładu jazdy do bankowości internetowej

informatyka + 72

•Czy chcemy tego czy nie chcemy, czy wiemy o tym czy nie wiemy … bazy danych są wszechobecne w naszym życiu

•Korzystanie z internetu, •Załatwianie sprawy w urzędzie, •Wypłacanie pieniędzy w bankomacie•Zakupy w sklepie internetowym•Wykupienie recepty w aptece• … a jeszcze do tego elektroniczny dziennik lekcyjny

Trudno wyobrazić sobie działanie, żeby w tle nie było bazydanych

Page 73: Bazy danych  - jak je ugryźć?

Od rozkładu jazdy do bankowości internetowej

informatyka + 73

Codziennie setki milionów ludzi korzystają z wielkiej „bazy danych” – czyli internetu.

Kto nie zna internetowej wyszukiwarki np. google

Wyszukiwarki internetowe pozwalają wyszukiwać dane i informacje z zasobów internetu na podstawie słów kluczowych

Aktualnie stajemy się świadkami narodzin nowego!!!!

Page 74: Bazy danych  - jak je ugryźć?

Od rozkładu jazdy do bankowości internetowej

informatyka + 74

Projekt WolframAlpha – wprowadza nową jakość do świata wyszukiwarek internetowych

Różnicę w sposobie działania omówimy na przykładzie :

Chcemy dowiedzieć się o ilości mieszkańców Polski

Page 75: Bazy danych  - jak je ugryźć?

Od rozkładu jazdy do bankowości internetowej

informatyka + 75

Wykorzystamy najpierw wyszukiwarkę google ( … i język angielski – bo projekt WolframAlpha aktualnie najlepiej radzi sobie z tym językiem)

Wpisujemy w wyszukiwarce słowa - Poland citizniens (Polska obywalete)

I otrzymujemy wynik – ok. 5 milionów stron zawierających podane słowa

Page 76: Bazy danych  - jak je ugryźć?

Od rozkładu jazdy do bankowości internetowej

informatyka + 76

… a teraz to samo w wyszukiwarce WolframAlfa – wpisujemy to samo hasło ….

Początek podobny …. Ale efekt końcowy całkowicie odmienny

Page 77: Bazy danych  - jak je ugryźć?

informatyka + 77

Tym razem otrzymujemy odpowiedź na zadane pytanie

Page 78: Bazy danych  - jak je ugryźć?

informatyka + 78

Dziękuję za uwagę

… a może pytania ????

Page 79: Bazy danych  - jak je ugryźć?

informatyka + 79

Dziękuję za uwagę

… a może pytania ????