Bazy danych

32
Wykład 1 - Wprowadzenie 1

description

Wykład 1 - Wprowadzenie. Bazy danych. Literatura. [1] System zarządzania bazą danych Oracle 7 i Oracle 8 /R. Wrembel, J. Jezierski, M. Zakrzewicz, wyd. Nakom, Poznań, 2000. [2] Poznaj Oracle 8 /D. Austin, wyd. Mikom, Warszawa , 1999. - PowerPoint PPT Presentation

Transcript of Bazy danych

Page 1: Bazy danych

Wykład 1 - Wprowadzenie

1

Page 2: Bazy danych

[1] System zarządzania bazą danych Oracle 7 i Oracle 8 /R. Wrembel, J. Jezierski, M. Zakrzewicz, wyd. Nakom, Poznań, 2000.

[2] Poznaj Oracle 8 /D. Austin, wyd. Mikom, Warszawa , 1999. [3] Oracle - łatwiejszy niż przypuszczasz /J. Gnybek. Gliwice : Helion,

1996.[4] Learning Oracle PL/SQL /B. Pribyl, S. Feuerstein. Beijing : O’Reilly,

2002.[5] Oracle database 11g :kompendium administratora /K. Loney ,

Gliwice : Helion, 2010.[6] HTML 4 :biblia /B. Pfaffenberger, B. Karow. Gliwice : Helion, 2001.[7] UML dla każdego :Ujednolicony Język Modelowania - wyrażanie

związków między klasami w projektowaniu obiektowym /J. Schmuller.Gliwice : Helion, 2003.[8] UML - przewodnik użytkownika /G. Booch, J. Rumbaugh, J. ,

Warszawa : WNT, 2002.[9] Techniczne podstawy systemów klient-serwer /C. L. Hall. Warszawa :

WNT, 1996.[10] Postawy języka C++/S. Lippman, WNT Warszawa, 2001.

2

Page 3: Bazy danych

3

• systemy bankowe (bankomat)• systemy masowej obsługi (hipermarket)• rezerwacja biletów lotniczych• telefonia komórkowa (sms)• Dziekanat Wydziału Elektroniki• toto-lotek• policja (ewidencja przestępców, rejestr samochodów)• rejestry sądowe, księgi wieczyste• ankiety internetowe• sklepy internetowe• gry internetowe• system audiotele• biblioteka PWr.

Page 4: Bazy danych

• wielkość• liczba odwołań• stopień ważności informacji• struktura informacji• implementacja

komputerowa

4

Page 5: Bazy danych

• wysoka jakość danych, wiarygodność i spójność

• bezpieczeństwo (przed niepowołanym dostępem do informacji i utratą danych)

• szybki dostęp do informacji (wielozadaniowość)

• prosta obsługa systemu

5

Page 6: Bazy danych

• informacja jako dobro materialne• wpływ specyfiki informacji na

metodę projektowania bazy danych• celowość budowania modelu

6

Page 7: Bazy danych

Plik — ciąg bajtów, przechowuje się wskaźnik do początku ciągu, ciąg zakończony jest umowną wartością oznaczającą jego koniec.

Proces — instancja programu w trakcie uruchomienia.

Baza danych = pliki + procesy. Pliki — przechowują informacje Procesy — zarządzają przepływem

informacji7

Page 8: Bazy danych

8

PlikProces

Page 9: Bazy danych

plik.dbf

aplikacjaużytkownika

9

Page 10: Bazy danych

plik.dbf

procespośrednik

aplikacjaużytkownika

10

tutaj komunikują się pomiędzy sobą dwa procesy— większe bezpieczeństwo— większa elastyczność (wielozadaniowość)

Page 11: Bazy danych

Klient — proces który prosi o (zleca) wykonanie pewnej usługi.

Serwer — proces czekający na zlecenia klientów i realizujący je (nie mylić, tego samego określenia używa się potocznie dla określenia fizycznej maszyny – komputera — dedykowanego do wykonywania procesów serwerowych).

11

Page 12: Bazy danych

serwer jest uruchomiony i śpi (czeka, czuwa)

klient przesyła zlecenie do serwera serwer budzi się i wykonuje szereg

procesów mających na celu realizację zlecenia

klient czeka serwer wysyła odpowiedź do klienta klient odbiera odpowiedź serwer jest uruchomiony i śpi (czeka,

czuwa)12

Page 13: Bazy danych

dBase Clipper Firefox MS Access MySql SQL Server PostgreSQl Sybase Informix SAS Oracle

13

Page 14: Bazy danych

KapitanPośr.

Oper.

KapitanPośr.

Oper.

A B

14

Kapitanowie grają w szachy („na odległość”)Pośrednicy zapisują kody ruchów (np. c1-c2) i zanoszą na pokładOperatorzy zamieniają kody na impulsy alfabetu Morse’a

Jak umożliwić rozgrywanie 2 partii jednocześnie?

Page 15: Bazy danych

warstwaaplikacji

warstwakanałowa

warstwasieciowa

warstwatransportowa

warstwaaplikacji

warstwakanałowa

warstwasieciowa

warstwatransportowa

15

R. Stevens, Programowanie zastosowań sieciowych w systemie Unix, WNT, Warszawa, 1996.

Page 16: Bazy danych

Protokół – zespół reguł umożliwiających komunikację, standard pozwalający na przekazywanie informacji pomiędzy warstwami, w sposób zrozumiały po obu stronach, łączenie danych w większe paczki itp.

16

Page 17: Bazy danych

BAZAD AN YC H

(C EN TR ALA)

OD

DZ

IAŁY

prognoza pogody kursy walut

kopia zapasowa

im port/export

aplikacje klienckiei lokalne bazy danych,w tym serwer W W W

term inale/bankom aty/roboty/czujniki

raporty/m edia/telegazeta

17

Page 18: Bazy danych

Rekord — paczka wartości ustalonych atrybutów (tzw. pól) np. imię, nazwisko, pesel, nip, adres, data urodzenia, płeć.

Przykład poglądowy w języku C++:struct liczba_zespolona {double re,im;};...liczba_zespolona Z; Z.re=0;Z.im=0;

cout<<”Z=”<<re<<”+j”<<im;

18

Page 19: Bazy danych

Obiekt — oprócz pól zawiera także metody np. do przetwarzania wartości pól i komunikacji z innymi obiektami

Przykład poglądowy w języku C++:class liczba_zespolona{double re,im;public:void ustaw_re(double x) {re=x;};void ustaw_im(double y) {im=y;};void wyswietl(void) {cout<<re<<”+j”<<im;};};...liczba_zespolona Z;//Z.re=0;Z.im=0; — bła˛d — brak doste˛pu do pól re i imZ.ustaw_re(0);Z.ustaw_im(0); Z.wyswietl();

19

Page 20: Bazy danych

hermetyczność (tzw. enkapsulacja) — zamknięcie powiązanych danych w „kapsułce”, i udostępnianie ich tylko poprzez interfejs publiczny kontrolujący poprawność;

dziedziczenie — programowanie od ogółu do szczegółu, definiowanie klas obiektów na bazie już istniejących;

polimorfizm — dzięki mechanizmowi przeciażania, metody dla różnych typów obiektów mogą być uruchamiane tym samym poleceniem;

20

Page 21: Bazy danych

Przeciążanie funkcjiróżna liczba argumentów, różne typy argumentów,

parametry domyślne, rozstrzyganie

void fun(int i) {cout<<”\nfun1: i= ”<<i;}void fun(double d) {cout<<”\nfun2: d= ”<<d;}void main(void){clrscr();fun(5);fun(5.0);}

21

Page 22: Bazy danych

argumenty opcjonalne, wartości domyślne

int sum(int a, int b, int c=10, int mnoznik=1){return( mnoznik*(a+b+c) );}void main(void){clrscr();cout<<”\n”<< sum(0,0);cout<<”\n”<< sum(0,0,1);cout<<”\n”<< sum(1,1,100,2);}

22

Page 23: Bazy danych

T gre(T x, T y){if(x>y) return(x); //funkcja gre() zadziała dla

wszystkichelse return(y); //typów (klas) dla których

zdefiniowany jest} //operator porównywania >void main(){ clrscr();int i=0,j=1; cout<<gre(i,j);double x=0.22,y=0.88; cout<<”\n”<<gre(x,y);}

23

Page 24: Bazy danych

template <class T>class Vector{T *data;int size;public:Vector(int);~Vector( ) { delete[ ] data; }T& operator[ ] (int i) { return data[i]; }

//przeciążany operator []};

24

Page 25: Bazy danych

template <class T> Vector<T>::Vector(int n) { data = new T[n]; size = n;};

void main() {Vector<int> x(3); // skonstruowanie wektora 3-

elementowego typu intx[0] = 1; x[1] = 2; x[2] = 3;cout<<”\n”<<x[0]<<”\n”<<x[1]<<”\n”<<x[2];getch();}

25

Page 26: Bazy danych

class figura { //klasa podstawowa (bazowa) - abstrakcyjna

public:void kuku(void) {cout<<"\nKuku";};virtual double pole(void)=0; //funkcja wirtualna};

class kwadrat:public figura{ //klasa pochodnadouble a;public:kwadrat(double x) {a=x;};double pole(void) {return(a*a);};};

26

Page 27: Bazy danych

Relacje

Osoba (imię, nazwisko, pesel, data_ur, płeć)

Samochód (nr_rejestr, rocznik, marka, poj_siln, pesel_właściciela)

27

Page 28: Bazy danych

Wybieramy podzbiór relacji

Przykład. Z tabeli osób wybieramy te wiersze (całe) dla których w polu płeć występuje warość mężczyzna

Przykład. Z tabeli samochodów wybieramy te wiersze, w których nr_rejestr rozpoczyna się od DW….

28

Page 29: Bazy danych

Wybieramy niektóre kolumny.

Przykład. Wybieramy tylko numery pesel (jedną kolumnę) z tablicy osób.

Przykład. Wybieramy numery pesel (projekcja), ale tylko te które należą do mężczyzn (selekcja).

29

Page 30: Bazy danych

Podobnie jak różnica zbiorów:

A \ B – elementy które należą do zbioru A, i jednocześnie nie należą do zbioru B

30

Page 31: Bazy danych

A×B - Zbiór wszystkich możliwych par, w których pierwszy element należy do A, a drugi element należy do B

Przykład A – numery pesel mężczyznB – numery pesel kobietA×B – wszystkie możliwe pary (mieszane)Liczba możliwych par jest równa

iloczynowi liczby mężczyzn i liczby kobiet

31

Page 32: Bazy danych

Równozłączenie – iloczyn kartezjański, a następnie selekcja z warunkiem równości wartości pewnego atrybutu (wspólnego) z obu tabel

Złączenie naturalne – dodatkowo usuwane są powtarzające się atrybuty (te porównywane)

Złączenie zewnętrzne – w wyniku pozostają wiersze nie mające odpowiednika

32