Podstawy baz danych: Rysunek 1. Tradycyjne systemy danych 1- Obsługa wejścia 2- Przechowywanie danych 3- Funkcje użytkowe 4- Obsługa wyjścia Ewolucja baz danych: Fragment świata rzeczywistego System przetwarzania danych Systemy baz danych Hurtownie Baz danych Coraz większa ilość danych Szybkość działania Model logiczny SZBD Model fizyczny OLTP -Online Transaction Processing (OLTP) On-Line Analytical Processing, OLAP Eksploracja danych- (ang. data mining) - jeden z etapów procesu odkrywania wiedzy z baz danych Na wyjściu systemy podają wiedzę a nie dane Systemy klientserwer Systemy rozproszone BD No SQL BAZA WIEDZY+WNIOSKOWANIE SYSTEMY EKSPERTOWE SZTUCZNA INTELIGENCJA (AL -artificial intelligence) 1
Online Transaction Processing (OLTP) kategoria aplikacji klient-serwer dotyczących baz danych w ramach bieżącego przetwarzania transakcji obejmujących takie zastosowania jak systemy rezerwacji, obsługa punktów sprzedaży, systemy śledzące itp. W systemach tych klient współpracuje z serwerem transakcji, zamiast z serwerem bazy danych. Przetwarzanie analityczne danych (On-Line Analytical Processing, OLAP) - kwerendy (w SQL lub innych językach wspomagających tego typu operacje) pozwalające na wykonywanie zestawień statystycznych, wykresów i raportów, podsumowujących znaczne ilości danych. 2
Poziomy relacyjnej bazy danych Te same dane w bazie danych mogą być w różny sposób widziane i w różny sposób przetwarzane w zależności od wyboru odpowiedniego poziomu abstrakcji realizowanego przez dany system. Podstawowe realizowane poziomy abstrakcji to: 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. Z poziomu użytkowego korzystają głównie końcowi użytkownicy systemu. Z poziomu logicznego korzysta głównie administrator danych systemu. Natomiast z poziomu fizycznego korzysta głównie administrator bazy danych nazywany w skrócie dba. Oczywiście projektant bazy danych definiuje i zajmuje się wszystkimi trzema poziomami. 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. Historia baz danych 1951 - Firma Univac wprowadziła taśmę magnetyczną do przechowywania danych (oprócz dotychczasowych dziurkowanych kart). 1956 - Firma IBM wprowadziła stacje twardych dysków magnetycznych do przechowywania 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 (1924-2003), 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). 3
1979 - firma Relational Software (później Oracle) wprowadziła na rynek pierwszą komercyjną wersję systemu zarządzania relacyjną bazą danych. 1987 pierwszy standard języka SQL (ISO), o 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 do dzisiaj rozszerzenie baz danych o nowe aspekty: architektury wielowarstwowe, rozproszenie, integrację, 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 (Customer Relationship Management). Słownik pojęć tabela - dwuwymiarowa struktura danych złożona z kolumn i wierszy. Na przecięciu wiersza i kolumny znajduje się elementarna dana. W wierszu jest zapisywany rekord danych opisujący obiekt (np. rekord danych opisujący osobę lub firmę) lub pewien związek między obiektami. Każda kolumna zawiera zbiór elementarnych danych opisujących jeden atrybut obiektu np. nazwę firmy lub nazwisko osoby. klucz - zbiór kolumn (często jednoelementowy), których wartości jednoznacznie określają wiersz (obiekt). klucz główny - wyróżniony klucz, którego używa się jako identyfikatora obiektu. klucz jednoznaczny - to samo co klucz. klucz obcy - zbiór kolumn (często jednoelementowy), 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. NULL - konstrukcja określająca brak wartości (danych). perspektywa - wirtualna tabela, którą posługują się użytkownicy - definiowana na poziomie logicznym, używana na poziomie użytkowym. Gdy jej zawartość zostanie zapisana w postaci tabeli, nosi nawę perspektywy zmaterializowanej. więzy spójności danych - warunki poprawności danych w tabelach relacyjnej bazy danych --- referencyjne - warunek poprawności danych mówiący, że wartości klucza obcego mogą być albo Null albo muszą występować jako wartości powiązanego z nim klucza głównego (lub jednoznacznego). Architektura klient-serwer 4
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). 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. 5
https://ophelia.cs.put.poznan.pl/webdav/dm/students/winter_2009/lectures/dm_edbspl.pdf 6