Podstawy baz danych Wykład 1 3.10.2006 Antoni Dydejczyk http://www.ftj.agh.edu.pl/~antek
Tematyka wykładów Relacyjny model danych Język SQL Normalizacja w bazach danych, optymalizacja zapytań Zagadnienia bezpieczeństwa w bazach danych Techniczne aspekty stawiane systemom baz danych Dostęp do baz danych – ODBC, JDBC, CGI, Perl, PHP Język XML w systemach baz danych Narzędzia CASE w trakcie projektowania baz danych
Literatura Thomas Connolly, Carolyn Begg, Systemy baz danych Pearson Education Limited 2002, tłumaczenie RM 2004 Jeffrey D. Ullman, Jennifer Widom Podstawowy wykład z systemów baz danych Wydawnictwo Naukowo - Techniczne 2000 C.J.Date Wprowadzenie do systemów baz danych Wydawnictwo Naukowo – Techniczne 2000 Mark Whitehorn, Bill Marklyn Relacyjne bazy danych Wydawnictwo Helion 2002
Warunki zaliczenia Projekt 1 – prosta baza w Access’ie Projekt 2 – rozbudowany projekt – SQL Wystąpienie 10-15" na zajęciach (Test – podstawowe zagadnienia dotyczące baz danych) Diagramy ER w opisie baz danych Relacyjne bazy danych Normalizacja w relacyjnych bazach danych Bezpieczeństwo w bazach danych Zagadnienia techniczne w bazach danych Dostęp do baz danych
Bazy danych Historia badań w zakresie baz danych stanowi przykład wyjątkowej efektywności i niesamowitego sukcesu ekonomicznego. Mimo, że bazy danych są przedmiotem badań naukowych od dwudziestu lat, zasilają przemysł informatyczny około 10 miliardami dolarów rocznie w samych Stanach Zjednoczonych. Osiągnięcia w dziedzinie baz danych przyczyniły się walnie do rozwoju systemów komunikacyjnych, zagadnień transportowych i logistycznych, zarządzania finansami, systemów wnioskowania na podstawie danych, dostępu do informacji naukowej oraz wielu innych zastosowań cywilnych i wojskowych. Umożliwiły także istotny postęp w wielu klasycznych dziedzinach nauki, takich jak sama informatyka czy, na przykład, biologia. ( Silberschatz i in. 1990, 1996 )
Czym jest baza danych ? Baza danych jest : zbiorem informacji istniejącym przez długi czas, zbiorem powiązanych danych, uporządkowanym zbiorem danych, do których może mieć dostęp wielu użytkowników jednocześnie w dowolnym odpowiadającym im momencie czasu, logicznie spójnym zbiorem danych, przechowywanych w komputerze, który służy określonym celom i do którego istnieje współbieżny dostęp wielu użytkowników.
Czym jest baza danych ? W potocznym rozumieniu termin baza danych odnosi się do zbioru danych zorganizowanego przez system zarządzania bazą danych. Baza danych – systemy przetwarzania danych przechowywanie danych przetwarzanie danych wyszukiwanie danych
Przykładowe bazy danych system rezerwacji miejsc (hotel, biuro podróży, linie lotnicze) systemy bankowe, firmy ubezpieczeniowe system biblioteczne system dokumentujący działanie przedsiębiorstwa gospodarka materiałowa zarządzanie personelem obsługa zamówień i księgowość zarządzanie i planowanie produkcji
Wspólne cechy baz danych proste zbiory danych o stałym formacie, które mogą być opisane na poziomie logicznym, zwłaszcza przy zastosowaniu modeli danych opartych na rekordach; proste typy danych dla wartości pól lub atrybutów, opisujących zbiór danych sparametryzowane, wstępnie zdefiniowane zapytania, opisujące powtarzalne zadania wykonywane przez bazę danych; bezpośrednia aktualizacja, powodująca zastąpienie starych wartości nowymi bez zachowania starych wartości; krótkie transakcje, reprezentujące zadania do wykonania przez bazę danych w odpowiedniej do wykonania postaci.
System zarządzania bazą danych Umożliwienie użytkownikowi utworzenia nowej bazy danych i określenia jej schematu (logicznej struktury danych) za pomocą specjalizowanego języka definiowania danych ( DDL data definition language). Udostępnienie użytkownikowi możliwości tworzenia zapytań o dane, oraz aktualizowania danych (query language - DML data manipulation language). Zapewnienie możliwości przechowywania ogromnej ilości danych, ochrony danych przed niepowołanym dostępem, oraz efektywnego dostępu do danych Sterowanie jednoczesnym dostępem do danych przez wielu użytkowników
System zarządzania bazą danych Wejście - wprowadzanie danych - kontrola poprawności danych Wyjście - wyprowadzanie danych - raporty, wydruki Przetwarzanie danych - zakładanie zbiorów danych - wprowadzanie danych do zbiorów - aktualizacja danych - przetwarzanie i wyszukiwanie - wytwarzanie dokumentów zewnętrznych Dodatkowe funkcje systemu : - kontrola integralności danych - zgodność wszystkich danych - zabezpieczenie przed utratą danych - ochrona danych przed nieuprawnionym dostępem
Wejścia do systemu SZBD Główne elementy SZBD Wejścia do systemu SZBD Zapytania – pytania o dane. poprzez interfejs zapytań bezpośrednich poprzez interfejsy programów użytkowych Aktualizacja – operacja zmiany danych (aktualizacja możliwa poprzez interfejsy j.w.) Modyfikacja schematu – umożliwia administratorowi systemu zmianę schematu bazy danych, pozwala tworzyć nowe bazy danych.
Moduł zarządzania pamięcią Główne elementy SZBD Moduł zarządzania pamięcią Wybiera właściwe dane z pamięci i dostosowywać je do wymagań wyższych modułów moduł zarządzania plikami – organizuje wymianę danych zawartych w plikach w oparciu o strukturę fizyczną systemu plików - bloki dyskowe moduł zarządzania buforami – organizuje wymianę danych pomiędzy pamięcią operacyjną a blokami na dysku
Moduł przetwarzania zapytań Główne elementy SZBD Moduł przetwarzania zapytań Obsługa zapytań i aktualizacji danych optymalizacja zapytania indeksowanie bazy danych optymalizacja przeszukiwania bazy danych
Moduł zarządzania transakcjami Główne elementy SZBD Moduł zarządzania transakcjami Odpowiada za spójność systemu Transakcja – nieformalna grupa operacji przeznaczona do wykonania razem w jednym ciągu, jako duża operacja jednostkowa.
Dodatkowe moduły SZBD – zarządzania rozproszonymi danymi – tworzenia i administrowania replikami Replika danych – dane są znacznie częściej ‘używane’ niż aktualizowane; nie jest tylko kopią danych – to dynamiczne uaktualnienie tego co zostało zmienione (wykorzystuje się to np. u ‘mobilnych agentów’ – używanie komputerów przenośnych – mających zminimalizowaną bazę danych) Techniki tworzenia replik : - tryb synchroniczny – w momencie aktualizacji od razu tworzona jest replika - tryb asynchroniczny – przedziały czasowe lub zdarzenie wywołuje proces uaktualnienia
SZBD schematycznie Zestaw narzędzi SZBD Interfejs SZBD Model danych Jądro SZBD Świat zewnętrzny Baza danych
Podsystem komunikacyjny SZBD Klient 1 Klient 2 Klient 3 Podsystem komunikacyjny SZBD System operacyjny Baza danych
Ewolucja modeli danych Płaski model relacyjny System plików Diagramy Bachmana Model hierarchiczny Model sieciowy Płaski model relacyjny Zagnieżdżony model relacyjny Model związków encji Modele obiektów złożonych Semantyczne modele danych Model obiektowy
Modelowanie baz danych Zorientowany obiektowo DBMS ODL Pojęcia Relacje Relacyjny DBMS E/R E/R - Entity - Relationship ODL - Object Definition Language DBMS - Database Management System
Główne typy (generacje) baz danych 1. Proste modele danych. Dane zorganizowane są w strukturę rekordów zgrupowanych w plikach. Głównymi dostępnymi operacjami są operacje na rekordach (ewentualnie na ich poszczególnych polach). 2. Klasyczne modele danych. Należą do nich modele hierarchiczne, sieciowe i relacyjne. Modele relacyjne stanowią najbardziej popularną obecnie podstawę architektur systemów baz danych. 3. Semantyczne modele danych. Semantyka to inaczej znaczenie. Klasyczne modele danych nie dostarczają łatwego sposobu odczytania informacji o semantyce danych, stąd podejmuje się próby stworzenia innych modeli, uzupełniających ten brak. Przykładem częściowej realizacji tego programu są obiektowe modele danych.
Zasady (reguły) opisujące modele BD Model danych (a w odniesieniu do konkretnej realnej sytuacji - architektura systemu baz danych) - zbiór ogólnych zasad posługiwania się danymi. Zbiór ten obejmuje trzy główne części: 1. Definicja danych: zbiór reguł określających logiczną strukturę danych; 2. Operowanie danymi: zbiór reguł dotyczących procesu dostępu do danych i ich modyfikacji; 3. Integralność danych: zbiór reguł określających., które stany bazy danych są poprawne (a więc zarazem jakie operacje prowadzące do modyfikacji danych są dozwolone).
Architektura baz danych Model zewnętrzny - opisuje świat z punktu widzenia użytkowników baz danych - może istnieć wiele modeli zewnętrznych tej samej rzeczywistości - nie musi być związany z konkretnym modelem danych Poziomy abstrakcji Model zewnętrzny Schemat zewnętrzny Model pojęciowy Schemat pojęciowy Model wewnętrzny Schemat wewnętrzny
Architektura baz danych Poziomy abstrakcji Model zewnętrzny Schemat zewnętrzny Model pojęciowy - tworzony przez analityków - opisuje świat w kategoriach konkretnego modelu danych - abstrahuje od szczegółów implementacji odpowiada na pytanie "co?" a nie "jak?" Model pojęciowy Schemat pojęciowy Model wewnętrzny Schemat wewnętrzny
Architektura baz danych Poziomy abstrakcji Model zewnętrzny Schemat zewnętrzny Model wewnętrzny tworzony przez projektantów SZBD izolowany od aplikacji zarządzany przez administratora definiuje struktury danych i związane z nimi ścieżki dostępu oferuje fizyczną reprezentację danych, partycjonowanie dysku, alokację pamięci Model pojęciowy Schemat pojęciowy Model wewnętrzny Schemat wewnętrzny
Architektura baz danych Poziomy abstrakcji Języki Model zewnętrzny Definicja danych Schemat zewnętrzny Model pojęciowy Manipulacja danymi Schemat pojęciowy Model wewnętrzny Administracja danych Schemat wewnętrzny
Języki baz danych Do operowania na bazach danych służą następujące języki: Język definiowania danych (ang. DDL - Data Definition Language) umożliwiający definiowanie struktury danych przechowywanych w bazie, czyli schematu bazy danych Język manipulowania danymi (ang. DML - Data Manipulation Language) umożliwiający dodawanie, modyfikowanie i usuwanie informacji w bazie danych Język sterowania danymi (ang. DCL - Data Control Language) umożliwiający sterowanie transakcjami Język zapytań (ang. QL - Query Language) - umożliwiający pobieranie informacji z bazy danych. W praktyce te cztery języki są ze sobą zintegrowane. Takim zintegrowanym językiem jest m.in. SQL (ang. Structured Query Language). Do listy języków można tu jeszcze dodać rozszerzenia proceduralne stosowane przez różne firmy produkujące SZBD.
SZBD – z perspektywy projektanta systemu Poziom interfejsu Model danych i język zapytań Interfejs języka wewnętrznego Inne interfejsy Poziom języka przetwarzania Zarządzanie perspektywami Kompilator języka Sterowanie integralnością semantyczną Interpreter języka Autoryzacja Dekompozycja zapytania Generowanie planu dostępu Optymalizacja zapytania Poziom przetwarzania transakcji Wykonanie planu dostępu Generowanie transakcji Kontrola współbieżności Zarządzanie buforem Odtwarzanie Poziom zarządzania pamięcią pomocniczą Zarządzanie fizyczną strukturą danych Dostęp do dysku
Problem Dziennik ocen. Możliwość sortowania wg nazwiska, daty, oceny. Możliwość tworzenia list dla różnych przedmiotów Rozwiązania: Rozwiązanie przy pomocy arkusza kalkulacyjnego - Excel. Rozwiązanie przy pomocy bazy danych – Access.
Dane Nazwisko tekstowa 25 Imię tekstowa 20 Ocena całkowita Data oceny data Przedmiot tekstowa 20
Arkusze zawierają dane dla poszczególnych przedmiotów Excel Arkusze zawierają dane dla poszczególnych przedmiotów
Excel Operacje możliwe do wykonania na danych w arkuszu kalkulacyjnym sortowanie filtrowanie formularz operacje matematyczne
Excel Sortowanie danych
Excel Filtrowanie danych
Excel Formularz
Tabele danych w programie Access
Relacje pomiędzy tabelami Access Relacje pomiędzy tabelami
Formularz wprowadzający dane Access Formularz wprowadzający dane
Formularz przedstawiający dane zawarte w tabeli Access Formularz przedstawiający dane zawarte w tabeli
Wprowadzanie danych do tabeli ocena Access Wprowadzanie danych do tabeli ocena
Przedstawienie danych zawartych w tabeli - ocena Access Przedstawienie danych zawartych w tabeli - ocena