Post on 16-Jan-2016
description
Wykład 1 - Wprowadzenie
1
[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
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.
• wielkość• liczba odwołań• stopień ważności informacji• struktura informacji• implementacja
komputerowa
4
• 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
• informacja jako dobro materialne• wpływ specyfiki informacji na
metodę projektowania bazy danych• celowość budowania modelu
6
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
8
PlikProces
plik.dbf
aplikacjaużytkownika
9
plik.dbf
procespośrednik
aplikacjaużytkownika
10
tutaj komunikują się pomiędzy sobą dwa procesy— większe bezpieczeństwo— większa elastyczność (wielozadaniowość)
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
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
dBase Clipper Firefox MS Access MySql SQL Server PostgreSQl Sybase Informix SAS Oracle
13
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?
warstwaaplikacji
warstwakanałowa
warstwasieciowa
warstwatransportowa
warstwaaplikacji
warstwakanałowa
warstwasieciowa
warstwatransportowa
15
R. Stevens, Programowanie zastosowań sieciowych w systemie Unix, WNT, Warszawa, 1996.
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
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
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
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
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
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
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
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
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
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
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
Relacje
Osoba (imię, nazwisko, pesel, data_ur, płeć)
Samochód (nr_rejestr, rocznik, marka, poj_siln, pesel_właściciela)
27
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
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
Podobnie jak różnica zbiorów:
A \ B – elementy które należą do zbioru A, i jednocześnie nie należą do zbioru B
30
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
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