Wykad 1 Wprowadzenie Bazy danych 1 Literatura 1
Wykład 1 - Wprowadzenie Bazy danych 1
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. [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 11 g : 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
Zastosowania • 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. 3
Kryteria klasyfikacji b. d. • wielkość • liczba odwołań • stopień ważności informacji • struktura informacji • implementacja komputerowa 4
Cele i zadania • 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
Konkluzje • informacja jako dobro materialne • wpływ specyfiki informacji na metodę projektowania bazy danych • celowość budowania modelu 6
Pojęcie pliku i procesu 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 informacji 7
Symbole 8
Plikowe bazy danych 9
Transakcyjne bazy danych tutaj komunikują się pomiędzy sobą dwa procesy — większe bezpieczeństwo — większa elastyczność (wielozadaniowość) 10
Pojęcie klienta i serwera 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
Transakcja 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
Popularne systemy b. d. d. Base Clipper Firefox MS Access My. Sql SQL Server Postgre. SQl Sybase Informix SAS Oracle 13
Komunikacja warstwowa Kapitanowie grają w szachy („na odległość”) Pośrednicy zapisują kody ruchów (np. c 1 -c 2) i zanoszą na pokład Operatorzy zamieniają kody na impulsy alfabetu Morse’a Jak umożliwić rozgrywanie 2 partii jednocześnie? 14
Warstwowy model sieci R. Stevens, Programowanie zastosowań sieciowych w systemie Unix, WNT, Warszawa, 1996. 15
Pojęcie protokołu 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
Rozproszone bazy danych 17
Pojęcie rekordu 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
Pojęcie obiektu 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 im Z. ustaw_re(0); Z. ustaw_im(0); Z. wyswietl(); 19
Cechy podejścia obiektowego 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
Techniki programowania obiektowego Przeciążanie funkcji różna liczba argumentów, różne typy argumentów, parametry domyślne, rozstrzyganie void fun(int i) {cout<<”nfun 1: i= ”<<i; } void fun(double d) {cout<<”nfun 2: d= ”<<d; } void main(void) { clrscr(); fun(5. 0); } 21
Przeciążanie (c. d. ) 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, 1); cout<<”n”<< sum(1, 1, 100, 2); } 22
Szablony funkcji – parametryzacja typu T gre(T x, T y) { if(x>y) return(x); //funkcja gre() zadziała dla wszystkich else 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
Szablony klas – parametryzacja typu (c. d. ) 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 int x[0] = 1; x[1] = 2; x[2] = 3; cout<<”n”<<x[0]<<”n”<<x[1]<<”n”<<x[2]; getch(); } 25
Dziedziczenie class figura { //klasa podstawowa (bazowa) - abstrakcyjna public: void kuku(void) {cout<<"n. Kuku"; }; virtual double pole(void)=0; //funkcja wirtualna }; class kwadrat: public figura{ //klasa pochodna double a; public: kwadrat(double x) {a=x; }; double pole(void) {return(a*a); }; }; 26
Elementy algebry relacji Relacje Osoba (imię, nazwisko, pesel, data_ur, płeć) Samochód (nr_rejestr, rocznik, marka, poj_siln, pesel_właściciela) 27
Selekcja 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
Projekcja (rzut) 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
Różnica Podobnie jak różnica zbiorów: A B – elementy które należą do zbioru A, i jednocześnie należą do zbioru B 30
Iloczyn kartezjański 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ężczyzn B – numery pesel kobiet A×B – wszystkie możliwe pary (mieszane) Liczba możliwych par jest równa iloczynowi liczby mężczyzn i liczby kobiet 31
Złączenie 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
- Slides: 32