Pojęcie systemu baz danych System baz danych- skomputeryzowany system przechowywania danych/informacji zorganizowanych w pliki. Składa się z zasadniczych elementów: 1) Danych 2) Sprzętu 3) Programów 4) Użytkowników. System Zarządzania Bazą Danych (SZBD) jest zorganizowanym zbiorem narzędzi umożliwiającym zdefiniowanie struktury bazy, jej utworzenie i później wykonywanie wszystkich operacji na bazie. Popularna jest nazwa angielska SZBD: DataBase Management System (DBMS). SZBD może posiadać wbudowane narzędzia umożliwiające tworzenie aplikacji użytkownika, tj. programów, za pomocą których użytkownik łączy się i obsługuje bazę. Zarządzanie bazą danych obejmuje m.in.: organizowanie struktury danych, wprowadzanie danych, wyszukiwanie danych według zadanych kryteriów, usuwanie danych, aktualizowanie danych, zachowanie integralności (ochronę przed błędami, które utrudniłyby wykonywanie różnych operacji), administrowanie bezpieczeństwem, organizowanie pracy wielodostępnej, łączenie i wymianę danych z innymi systemami baz danych, zarządzanie transakcjami, tj. złożonymi operacjami, które muszą się albo wszystkie wykonać poprawnie, albo żadna z nich (anulowanie transakcji musi zakończyć się wycofaniem wszelkich dokonanych już zmian i doprowadzeniem danych do stanu sprzed rozpoczęcia transakcji). Wiele systemów umożliwia wykonywanie transakcji rozproszonych. Popularne współczesne systemy zarządzania bazami danych oparte o architekturę klient-serwer: Oracle (http://www.oracle.com/), jeden z dwóch najpopularniejszych w Polsce systemów komercyjnych, Microsoft SQL Server (http://www.microsoft.com/), jeden z dwóch najpopularniejszych w Polsce systemów komercyjnych, 1 PostgreSQL (http://www.postgresql.com/), istnieje bardzo popularna wersja darmowa na Linuxa, system jest znacznie prostszy w porównaniu z pierwszymi dwoma, posiada za to pewne rozszerzenia obiektowe, MySQL (http://www.mysql.com/) – istnieje bardzo popularna wersja darmowa na Linuxa, system jest prostszy od PostgreSQL, pewne ważne mechanizmy stosowane w bazach relacyjnych nie są zaimplementowane, jednak jest to system bardzo szybki, czasami dorównujący nawet Oracle czy SQL Serwerowi, DB2 firmy IBM, w wielu testach uznawany za najszybszy, Sybase (http://www.sybase.com/). Charakterystyka systemów typu desktop. Jednym z najbardziej znanych systemów typu desktop jest MS Access. Baza danych oraz oprogramowanie klienckie stanowi tu integralną całość. Nie ma serwera, który odpowiadałby na pytania klientów, praca sieciowa jest realizowana na zasadzie wspólnego dostępu do plików. Opis niektórych systemów: 2 Architektura systemu baz danych Architektura baz danych: Uwagi: Architektura ANSI-SPARC (American National Standards Institute, Standards Planning And Requirements Committee) to abstrakcyjny standard projektowania systemów zarządzania bazami danych zaproponowany po raz pierwszy w 1975 roku. Większość powszechnie używanych współcześnie baz danych opiera się na tym schemacie, aczkolwiek nie został on nigdy sformalizowany. 3 4 5 6 1 1 http://ii.uwb.edu.pl/~aboltuc/images/stories/wykad_1.pdf 7 Dodatkowe informacje z innych źródeł: - Jednowarstwowe bazy danych to takie, które wykonują natychmiast wszelkiego rodzaje zmiany, zaś program, który udostępnia użytkownikowi zawartość bazy ma z nim bezpośredni kontakt. - Dwuwarstwowe bazy danych – klient porozumiewa się z serwerem za pomocą specjalnych sterowników. Jeśli chodzi o samo połączenie to jest ono zależne od samego serwera, natomiast kontrolowanie poprawności danych zależy od klienta. Rozwiązanie takie wiąże się ze sporym obciążeniem programu klienckiego. Większość lokalnych baz danych opiera się na jednowarstwowym modelu natomiast bazy typu klientserwer na dwu lub wielowarstwowym modelu architektury baz danych. Architektury współczesnych systemów baz danych. Architektura klient-serwer we współczesnych dużych systemach baz danych Klient jest programem żądającym obsługi pewnego zlecenia, Serwer jest programem odbierającym od klienta żądanie i wykonującym je. Architektury dwuwarstwowe, trójwarstwowe i wielowarstwowe. Dwuwarstwowa – jedna warstwa to system bazy danych, druga to oprogramowanie klienckie. W architekturze trójwarstwowej (lub uogólniając – wielowarstwowej) między serwerem bazy danych a programem klienckim jest program pośredniczący, na przykład serwer WWW. 8 9 Architektury rozproszone Dane są przechowywane na różnych serwerach, ale są wzajemnie dostępne (przynajmniej część z nich). Bazy rozproszone można tworzyć na przykład aby przybliżyć serwer do klienta. O bazach rozproszonych, technikach ich tworzenia będzie osobny wykład. 10