relacyjne bazy danych

40
1 opr. Lech Banachowski, Jan Wierzb Relacyjne Bazy Danych Wykład I

Upload: drucilla-terris

Post on 03-Jan-2016

88 views

Category:

Documents


1 download

DESCRIPTION

Relacyjne Bazy Danych. Wykład I. Literatura. Lech Banachowski : Bazy danych - projektowanie aplikacji, Akademicka OficynaWydawnicza PLJ, 1998 Dariusz Boratyn : MS Access, Paul Beynon-Davies : Systemy baz danych, WNT, 1998. Baza danych. pojęcie sięgające wieków - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Relacyjne Bazy Danych

1opr. Lech Banachowski, Jan Wierzbicki

Relacyjne Bazy Danych

Wykład I

Page 2: Relacyjne Bazy Danych

2opr. Lech Banachowski, Jan Wierzbicki

Literatura

• Lech Banachowski: Bazy danych - projektowanie aplikacji, Akademicka OficynaWydawnicza PLJ, 1998

• Dariusz Boratyn: MS Access,

• Paul Beynon-Davies: Systemy baz danych, WNT, 1998

Page 3: Relacyjne Bazy Danych

3opr. Lech Banachowski, Jan Wierzbicki

Baza danych

• pojęcie sięgające wieków

• Informacja, dane – pewien zasób

• ludzie od zawsze próbują gromadzić informację i wnioskować na jej podstawie

• komputery – tylko ułatwiają przetwarzanie informacji

Page 4: Relacyjne Bazy Danych

4opr. Lech Banachowski, Jan Wierzbicki

• Dane są takim samym zasobem firmy jak każdy inny (np. pracownicy, materiały, urządzenia) i wymagającym, tak samo jak one, zarządzania.

• Informacja to dane razem z ich semantyką - znaczeniem dla firmy.

• Zarządzanie danymi jest realizowane poprzez system informacyjny obsługujący zapotrzebowania na informacje dla pewnego fragmentu rzeczywistości w firmie.

• Baza danych stała się standardową metodą wprowadzenia struktury do procesu zarządzania danymi.

• Baza danych jest częścią systemu informacyjnego firmy.

Page 5: Relacyjne Bazy Danych

5opr. Lech Banachowski, Jan Wierzbicki

Informacja ma wartość

gdy jest:

• dokładna (nie za dużo, ani nie za mało)

• dostępna

gdy mamy „zły” sposób poszukiwania informacji możemy nie być wstanie jej odszukać

- może nam zabraknąć np. „życia”

- komputer tu nic nie pomoże

Page 6: Relacyjne Bazy Danych

6opr. Lech Banachowski, Jan Wierzbicki

Baza danych

• metoda strukturalizacji zarządzania informacją

• dotyczy fragmentu rzeczywistości i stanowi kolekcję danych

• część systemu informacyjnego

- aplikacja bazy danych (oprogramowanie)

- system informatyczny (sprzęt)

Page 7: Relacyjne Bazy Danych

7opr. Lech Banachowski, Jan Wierzbicki

Linia lotnicza

A

B

C

D

E

F

Page 8: Relacyjne Bazy Danych

8opr. Lech Banachowski, Jan Wierzbicki

Inne złożone Bazy danych

• Bankowe ochrona danych

• Satelitarnetryliardy danych

Page 9: Relacyjne Bazy Danych

9opr. Lech Banachowski, Jan Wierzbicki

Bazy danych

• Wszechobecność informacji: od serwisów działających na przeglądarkach internetowych, po aplikacje naukowe.• Zbiory danych o coraz większej różnorodności i wielkości: biblioteki elektroniczne, multimedialne bazy danych, interaktywne

video, projekty badania genomu człowieka, projekt obserwacji Ziemi (NASA).

• Przy konstrukcji systemów baz danych wykorzystuje się większość działów informatyki: 

systemy operacyjne, teorię informatyki, sztuczną inteligencję, logikę, języki programowania, multimedia, inżynierię oprogramowania.

• Obszar systemów baz danych reprezentuje jeden z największych i najbardziej aktywnych segmentów rynku.

Page 10: Relacyjne Bazy Danych

10opr. Lech Banachowski, Jan Wierzbicki

Cechy bazy danych

• trwałość (aplikacja powinna działać przez długi okres czasu – dane przechowywane „latami”)

• zgodność z rzeczywistościązmiana rzeczywistości musi być uwzględniona w

bazie danych

Page 11: Relacyjne Bazy Danych

11opr. Lech Banachowski, Jan Wierzbicki

BIBLIOTEKA

Tytuł:

Autor:

ISBN:.......

Tytuł:

Autor:

ISBN:.......

Tytuł:

Autor:

ISBN:.......

POLE REKORD

Potop

H.Sienkiewicz H.Sienkiewicz

Quo VadisPan Tadeusz

A.Mickiewicz

Page 12: Relacyjne Bazy Danych

12opr. Lech Banachowski, Jan Wierzbicki

Ujęcie projektowe

Dane przechowywane w tabeli:

Tytuł Autor ISBN Rok Wydania

...

Potop H.Sienkiewicz 23xc4 1970 ...Quo Vadis H.Sienkiewicz 3e45d 1985 ...Pan Tadeusz

A.Mickiewicz 231ws 1990 ...

... ... ... ... ...

Page 13: Relacyjne Bazy Danych

13opr. Lech Banachowski, Jan Wierzbicki

W bazie danych, musimy

• kontrolować redundancję (powtarzanie się danych)

• jeden fakt powinien być reprezentowany na jeden sposób– problem dostępności i dokładności

poszukiwanych danych (czas dostępu oraz nadmiar danych)

Page 14: Relacyjne Bazy Danych

14opr. Lech Banachowski, Jan Wierzbicki

Problem jednej tabeli

Tytuł Autor ISBN Rok Wydania

...

Potop H.Sienkiewicz 23xc4 1970 ...Quo Vadis H.Sienkiewicz 3e45d 1985 ...Pan Tadeusz

A.Mickiewicz 231ws 1990 ...

... ... ... ... ...H.Sienkiewicz ... ... ...A.Mickiewicz ... ... ...

Page 15: Relacyjne Bazy Danych

15opr. Lech Banachowski, Jan Wierzbicki

Problem jednej tabeli

Uczeń Hobby Zachowanie Telefon domowy

...

Adaś Komputery hmmmm 123456 ...Karolina Kwiatki wzorowe 654321 ...Paweł Legia odpowiednie 876543 ...

... ... ... ... ...

... ... ... ... ...

... ... ... ... ...

Page 16: Relacyjne Bazy Danych

16opr. Lech Banachowski, Jan Wierzbicki

Relacyjna Baza Danych

Autor

imię

nazwisko

adres...

Książka

tytuł

ISBN

rok wyd...

Wydawnictwo

nazwa

adresopis

Page 17: Relacyjne Bazy Danych

17opr. Lech Banachowski, Jan Wierzbicki

Relacyjna Baza Danych

imię nazwisko

Henryk Sienkiewicz

Adam Mickiewicz

Autor

tytuł ISBN

Potop 12234ee4

Quo Vadis 334we2

Pan Tadeusz

23we45

Książka

Page 18: Relacyjne Bazy Danych

18opr. Lech Banachowski, Jan Wierzbicki

Dane osobowe

imię

nazwisko

......

Hobby

nazwa

opis

.....

Przedmiot

nazwa

opis

Oceny

ocena

opis

Uczeń

Page 19: Relacyjne Bazy Danych

19opr. Lech Banachowski, Jan Wierzbicki

Relacyjny model danych - Edgar Codd (1970)

W terminologii matematycznej - baza danych jest zbiorem relacji.

W matematyce definiuje się relację jako podzbiór iloczynu

kartezjańskiego zbiorów wartości. Reprezentacją relacji jest

dwuwymiarowa tabela złożona z kolumn i wierszy.

Page 20: Relacyjne Bazy Danych

20opr. Lech Banachowski, Jan Wierzbicki

Założenia:

• Liczba kolumn jest z góry ustalona. • Z każdą kolumną jest związana jej nazwa oraz

dziedzina, określająca zbiór wartości, jakie mogą wystąpić w kolumnie.

• Na przecięciu wiersza i kolumny znajduje się pojedyncza (atomowa) wartość należąca do dziedziny kolumny.

• Wiersz reprezentuje jeden rekord informacji np. osobę. • W modelu relacyjnym abstrahujemy od kolejności

wierszy (rekordów) i kolumn (pól w rekordzie).

Page 21: Relacyjne Bazy Danych

21opr. Lech Banachowski, Jan Wierzbicki

IdWykładowcy   

Imię        Nazwisko       Tytuł           

237 

Jan Kowalski Doktor

3245 

Maciej Jankowski Docent

8976 

Artur Malinowski Profesor

Tabela wykładowców

Page 22: Relacyjne Bazy Danych

22opr. Lech Banachowski, Jan Wierzbicki

NazwaPrzedmiotu 

Kod     

IdWykładowcy     

Bazy danych 

BDA 1237 

Projektowanie systemów informacyjnych  

PSI 3245 

Technologie internetowe 

TIN 3245 

Programowanie obiektowe 

POB 8976 

Systemy decyzyjne 

SDE 1237 

Tabela przedmiotów

Page 23: Relacyjne Bazy Danych

23opr. Lech Banachowski, Jan Wierzbicki

Znaczenie IdWykładowcy w tabeli Przedmiotów: 

• Jego wartość nie opisuje cechy wykładu. 

• Reprezentuje związek danego przedmiotu z wykładowcą, o którym informacja znajduje się w innej tabeli i tylko korzystając z identyfikatora możemy rozpoznać w innej tabeli wiersz właściwego wykładowcy i odczytać o nim informacje. 

• Istotne jest więc, aby identyfikator ten jednoznacznie określał danego wykładowcę - w modelu relacyjnym nie ma innej możliwości identyfikacji wiersza tylko poprzez wartości kolumn, które jednoznacznie identyfikują wiersz.

Page 24: Relacyjne Bazy Danych

24opr. Lech Banachowski, Jan Wierzbicki

Klucz główny i jednoznaczny

• Dla każdej tabeli musi być określony jednoznaczny identyfikator nazywany kluczem głównym - jedna lub więcej kolumn, w których wartości jednoznacznie identyfikują cały wiersz.

• Klucz jednoznaczny (nazywany też kluczem alternatywnym lub w skrócie kluczem) ma tę samą własność co klucz główny przy czym klucz główny jest tylko jeden, kluczy jednoznacznych w tabeli może być więcej niż jeden.

• W tabeli Przedmioty kluczem głównym jest KodPrzedmiotu, kluczem alternatywnym jest NazwaPrzedmiotu.

• W tabeli Wykładowcy kluczem głównym jest IdWykładowcy. Nazwisko nie musi być kluczem!

Każda tabela musi mieć dokładnie jeden klucz główny.

Page 25: Relacyjne Bazy Danych

25opr. Lech Banachowski, Jan Wierzbicki

Klucz obcy

• Klucz obcy jest to jedna lub więcej kolumn, których wartości występują jako wartości ustalonego klucza głównego lub jednoznacznego w tej lub innej tabeli i są interpretowane jako wskaźniki do wierszy w tej drugiej tabeli.

• W tabeli Przedmioty kluczem obcym jest IdWykładowcy, którego wartości pochodzą z kolumny IdWykładowcy w tabeli Wykładowcy.Na przykład, wartość 1237 występująca w wierszu przedmiotu "Bazy danych" tabeli Przedmioty stanowi odwołanie do wiersza w tabeli Wykładowcy, w którym są zapisane informacje o wykładowcy o nazwisku "Kowalski":   

"Przedmiot Bazy danych jest wykładany przez Jana Kowalskiego"

Każda tabela może mieć więcej niż jeden klucz obcy.

Page 26: Relacyjne Bazy Danych

26opr. Lech Banachowski, Jan Wierzbicki

NULL – "brak wartości"

• Dziedziny kolumn są rozszerzane o specjalny obiekt Null - oznaczający brak wartości – 

• chwilowy bądź  • wynikający z istoty rzeczy (coś innego niż napis pusty

czy zero).  • Wszystkie porównania i operacje na danych, w

których argumentem jest Null dają w wyniku Null (również Null=Null). 

• Jest to więc w efekcie trzecia wartość logiczna obok True i False. 

Page 27: Relacyjne Bazy Danych

27opr. Lech Banachowski, Jan Wierzbicki

OR     

True   

False    

Null    

True True True True

False True False Null

Null True Null Null

Operator alternatywy OR

AND     

True   

False    

Null    

True True False Null

False False False False

Null Null False Null

Operator koniunkcji AND

Page 28: Relacyjne Bazy Danych

28opr. Lech Banachowski, Jan Wierzbicki

NOT  True False 

Null 

False True Null

Operator negacji NOT

Wartość wyrażenia logicznego jest prawdziwa na przykład dla alternatywy, której jeden argument ma wartość true a drugi ma wartość nieokreśloną NULL.

Predykaty Is Null oraz Is Not Null

Pozwalają stwierdzić, czy dana wartość jest Null czy nie: •"X Is Null" = True gdy, X jest Null •"X Is Null" = False gdy, X nie jest Null•"X=Null" = Null dla wszystkich X

Wartością wyrażenia "(Null=Null)  Is Null" jest True tzn. wyrażenie jest prawdziwe.

Page 29: Relacyjne Bazy Danych

29opr. Lech Banachowski, Jan Wierzbicki

Więzy spójności danych - warunki poprawności danych w tabelach

• Dla pojedynczych wartości w wierszu np. 0<Wiek<140 • Dla kilku wartości w wierszu np. • Data_urodzenia<Data_zatrudnienia • Więzy klucza głównego, więzy klucza jednoznacznego. • Więzy NOT NULL. • Więzy referencyjne (więzy spójności referencyjnej):

wartość klucza obcego może być albo Null albo musi występować jako wartość powiązanego z nim klucza głównego (lub jednoznacznego).

• Bardziej skomplikowane reguły wymagające zastosowania bardziej skomplikowanego języka np.       Suma wszystkich zarobków pracowników działu X = Fundusz płac działu X

Page 30: Relacyjne Bazy Danych

30opr. Lech Banachowski, Jan Wierzbicki

Perspektywa (view)- wirtualna tabela, którą posługują się użytkownicy

Przedmioty-Wykładowcy:

NazwaPrzedmiotu      

Wykładowca    

Bazy danych 

Kowalski

Projektowanie systemów informacyjnych    

Jankowski

Technologie internetowe 

Jankowski

Programowanie obiektowe 

Malinowski

Systemy decyzyjne 

Kowalski

Page 31: Relacyjne Bazy Danych

31opr. Lech Banachowski, Jan Wierzbicki

Zawartość zwykłej perspektywy jest na życzenie wyliczana przez

system ze źródłowych tabel. Nie jest na stałe zapisywana w bazie

danych. W pewnych sytuacjach wygodniej jest zapisać zawartość

perspektywy w bazie danych a następnie korzystać z jej

„materializacji”. Taki specjalny rodzaj perspektywy nosi nazwę

perspektywy zmaterializowanej.

Indeks 

jest to dodatkowa struktura danych umożliwiająca szybki dostęp

do wierszy tabeli na podstawie wartości w określonej kolumnie

lub kolumnach np. indeks zbudowany na kolumnie Nazwisko

umożliwia szybkie wyszukiwanie danych wykładowcy w oparciu

o jego nazwisko. Przypomina indeks (skorowidz) w książce.

Page 32: Relacyjne Bazy Danych

32opr. Lech Banachowski, Jan Wierzbicki

Poziomy relacyjnej bazy danych

• Poziom użytkowy – widoki na dane i programy, którymi posługuje się użytkownik. 

• Poziom logiczny (koncepcyjny) – zbiór tabel, perspektyw i indeksów.

• Poziom fizyczny – zbiór plików z danymi i z indeksami.

Przy czym perspektywy  definiuje się na poziomie logicznym a używa się na poziomie użytkowym; indeksy definiuje się na poziomie logicznym a używa się na poziomie fizycznym. Jeśli chodzi o tabele to definiuje się na poziomie logicznym a używa się zarówno na poziomie użytkowym jak i fizycznym.

Page 33: Relacyjne Bazy Danych

33opr. Lech Banachowski, Jan Wierzbicki

Korzystanie z poszczególnych poziomów odbywa się do

pewnego stopnia w sposób niezależny. Na przykład,

można zmieniać położenie danych na dysku i ich zapis

bez potrzeby zmiany struktury logicznej tabel; można

zmieniać tabele bez konieczności zmiany programów

aplikacyjnych - o ile programy aplikacyjne są oparte na

perspektywach a nie tabelach. W pierwszym przypadku

mamy do czynienia z tak zwaną niezależnością fizyczną

danych, w drugim z niezależnością logiczną danych.

Page 34: Relacyjne Bazy Danych

34opr. Lech Banachowski, Jan Wierzbicki

Katalog (słownik danych), metadane

jest to zbiór tabel i perspektyw opisujących schemat bazy danych

to jest definicje wszystkich jej obiektów (na każdym z trzech

poziomów bazy danych). Istotne jest użycie relacyjnego

modelu danych w tym celu. Zatem metadane są zapisywane i

przetwarzane w taki sam sposób jak zwykłe dane.

Page 35: Relacyjne Bazy Danych

35opr. Lech Banachowski, Jan Wierzbicki

Architektura klient-serwer

Aplikacje bazodanowe składają się zwykle z co najmniej dwóch części: 

• strony klienta - na stacji roboczej użytkownika,  • strony serwera – na komputerze zawierającym serwer

bazy danych czyli bazę danych wraz z jej systemem zarządzania (SZBD).

Page 36: Relacyjne Bazy Danych

36opr. Lech Banachowski, Jan Wierzbicki

Funkcje aplikacji po stronie serwera bazy danych• Przechowywanie i organizacja dostępu do danych. • Wykonywanie instrukcji języka baz danych (jest to język o

nazwie SQL omawiany w wykładzie 9). • Sprawowanie kontroli nad spójnością danych. • Zarządzanie zasobami bazy danych w tym kontami

użytkowników.

Funkcje aplikacji po stronie klienta• Kontakt z użytkownikiem (interfejs użytkownika). • Wyjaśnianie użytkownikowi stanu obliczeń w tym błędów

i sytuacji wyjątkowych. • Przyjmowanie od niego zleceń na operacje, wykonywanie

tych zleceń lub przesyłanie ich w postaci instrukcji języka SQL do serwera bazy danych.

Page 37: Relacyjne Bazy Danych

37opr. Lech Banachowski, Jan Wierzbicki

Historia baz danych

• 1961– Integrated Data Store IDS (Charles Bachman, General Electric) - pierwszy SZBD, początek sieciowego modelu danych.

• 1965-70 – Information Management System IMS (IBM) – hierarchiczny model danych.

• 1970 – Edgar Codd, IBM – relacyjny model danych. • 1971 – CODASYL, standard sieciowego modelu danych. • 1976 – Peter Chen – model związków encji (ERD, ERM), brak

standardu do tej pory. • Początek lat siedemdziesiątych - w laboratorium badawczym IBM

w San Jose powstał prototyp języka SQL o nazwie Sequel. • 1973 - pierwszy system zarządzania relacyjną bazą danych (System

R w firmie IBM). • 1979 - firma Relational Software (później Oracle) wprowadziła na

rynek pierwszą komercyjną wersję systemu zarządzania relacyjną bazą danych.

Page 38: Relacyjne Bazy Danych

38opr. Lech Banachowski, Jan Wierzbicki

• 1987 pierwszy standard języka SQL (ISO),

• Kolejne wersje standardu ANSI/ISO: 1989, 1992 SQL2, 1999 SQL:1999 – model obiektowo-relacyjny, trwają prace nad następnymi standardami SQL3 i SQL4.

• Lata osiemdziesiąte – badania nad dedukcyjnymi i obiektowymi bazami danych.

• 1997 - Standard obiektowych baz danych ODMG 2.0.

• Lata dziewięćdziesiąte – rozszerzenie baz danych o nowe aspekty: architektury wielowarstwowe, rozproszenie, równoległość, Internet, hurtownie danych, OLAP, multimedia, bazy dokumentów w tym XML, GIS (Geographical Information Systems), ERP (Enterprise Resource Planning) oraz MRP (Management Resource Planning) - pakiety takie jak SAP, Baan, Oracle, PeopleSoft, Siebel, CRM (Client Relationship Management).

Page 39: Relacyjne Bazy Danych

39opr. Lech Banachowski, Jan Wierzbicki

Posługiwanie się bazą danych

• wyszukiwanie danych

• modyfikacja (aktualizacja) danych

• dopisywanie danych

• usuwanie danych

Page 40: Relacyjne Bazy Danych

40opr. Lech Banachowski, Jan Wierzbicki

Wyszukiwanie danych

• filtr – doraźnie

• kwerenda – trwale