LITERATURA C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki ) H. Garcia Molina, Jeffrey D. Ullman, Jennifer Widom; Systemy baz danych. Kompletny podręcznik Helion 2011 ( seria Kanon Informatyki ) Ramez Elmasri, Shamkant B.Navathe Wprowadzenie do systemów baz danych- Helion 2005 L. Banachowski, A Chadzynska, K. Matejewski Relacyjne bazy danych. Wykłady i ćwiczenia Wydawnictwo PJWSTK Warszawa 2004 Kewin Kline, Daniel Kline; SQL ALMANACH opis poleceń języka Helion 2002 Michał Lentner; Oracle 9i Kompletny podręcznik użytkownika Wydawnictwo PJWSTK Warszawa 2003 Jonathan Gennick; SQL leksykon kieszonkowy Helion 2004 http://wazniak.mimuw.edu.pl 1
( kilka różnych definicji ) Baza danych zestaw danych model fragmentu świata rzeczywistego element składowy systemu informatycznego lub jego zasób algebra BD = < dane, operacje > dane i oprogramowanie umożliwiające dostęp do danych oraz ich zarządzanie definicja prawna: Baza danych oznacza zbiór danych lub jakichkolwiek innych materiałów i elementów zgromadzonych według określonej semantyki lub metody, indywidualnie dostępnych w jakikolwiek sposób, w tym środkami elektronicznymi, wymagający istotnego, co do jakości lub ilości, nakładu inwestycyjnego w celu sporządzenia, weryfikacji lub prezentacji jego zawartości Źródło: USTAWA z dnia 27 lipca 2001 r. o ochronie baz danych // Dz.U. z 2001 r. Nr 128, poz. 1402. Baza danych spójny zestaw danych i metadanych zbudowany w oparciu o model danych na którym można wykonywać określone operacje ( aspekt składniowy i operacyjny ) reprezentuje pewien fragment świata rzeczywistego ( aspekt semantyczny ) jest zaprojektowana, tworzona i utrzymywana dla określonych zastosowań i grupy użytkowników ( aspekt pragmatyczny ) Wymagania stawiane bazą danych integralność ( ang. integrity ) danych obejmuje formalną poprawność bazy danych i procesów przetwarzania spójność ( ang. consistency ) fizyczna; operacje bazodanowe kończą się sukcesem logiczna; baza danych jest spójna fizycznie, a jej zawartość odpowiada schematowi bazy danych i dodatkowym ograniczeniom współdzielenie danych wielu użytkowników ma jednoczesny dostęp do tych samych danych bezpieczeństwo danych dostęp do danych mają jedynie uprawnieni użytkownicy, których tożsamość jest weryfikowana hasłami dostępu niezależność danych fizyczna; zmiana rozmieszczenia fizycznego i organizacji danych powoduje jedynie zmianę definicji odwzorowania między poziomem pojęciowym a poziomem fizycznym logiczna; zmiany w strukturze logicznej danych nie powodują zmian na poziomie fizycznym trwałość danych; długi czas życia danych, a także ich niezależność od działania aplikacji i platformy sprzętowo-programowej 2
Model danych wg Kazimierza Subiety pojęcie niezbyt jednoznaczne, którego znaczenie jest wypadkową takich cech metajęzyk ( pojęcia, terminologia) do mówienia o danych, systemach baz danych i przetwarzaniu sposób rozumienia organizacji danych język opisu i przetwarzania danych, diagramy struktur danych, języki zapytań ogólne założenia dotyczące architektury systemu bazy danych ograniczenia, ideologie lub teorie matematyczne dotyczące struktur danych i dostępu do danych Model danych jako architektura systemów baz danych obejmuje: język definicji danych język operowania danymi więzy spójności i integralności danych jest odwzorowaniem istniejącej lub projektowanej struktury zbiorów informacji dla konkretnego systemu informatycznego zastosowany model danych w istotny sposób wpływa na przebieg projektu informatycznego oraz jego efekt końcowy- system informatyczny oparty na bazie danych Modele baz danych prosty system plików relacyjny klasyczny proste typy danych, gromadzone w tabelach, przetwarzanie danych odbywa się w języku SQL obiektowy złożone typy danych; obiekty, dziedziczenie, hierarchizacja relacyjno obiektowy semistrukturalny System Zarządzania Bazą Danych ( ang. Database Management System DBMS ) Zestaw oprogramowania obejmujący: podstawowy moduł gromadzenie, utrzymywanie i administrowanie masowymi zbiorami danych sprawny dostęp do danych ( optymalizacja pamięci i czasu dostępu do danych ) zarządzanie współbieżnością i spójnością ( jednoczesny dostęp do danych przez wielu użytkowników ) bezpieczeństwo danych ( autoryzacja ) interfejsy linia poleceń, graficzny interfejs użytkownika dodatkowo środki programistyczne - API dla popularnych języków programowania narzędzia dla środowisk rozproszonych Uwaga: 3
System Zarządzania Bazą Danych współpracuje z systemem operacyjnym; wspiera określony model danych Interakcja z bazą danych interfejsy użytkownika prosty w trybie tekstowym ( linia poleceń; interpreter języka obsługi baz danych ) graficzny interfejs ( typu BUILDER ) aplikacje typu FORMULARZ, RAPORT i inne Podział systemów baz danych Kryteria podziału: wykorzystywany model logiczny danych liczba węzłów / baz danych bazy scentralizowane bazy rozproszone cel stosowania : przetwarzanie transakcyjne ( On Line Transaction Processing OLTP ) przetwarzanie analityczne ( On Line Analytical Processing OLAP ) wspomaganie projektowania ( Computer Aided Design CAD ) systemy informacji geograficznej ( Geographical Information Systems GIS ) wytwarzanie oprogramowania ( Computer Aided Software Engineering CASE ) Niektóre dostępne na rynku Systemy Zarządzania Bazą Danych komercyjne - Oracle, IBM DB2, Microsoft SQL Server niekomercyjne MySQL, PostgreSQL, Firebird SQL ( Structured Query Language ) język do obsługi baz danych deklaratywny u standaryzowany optymalizowany obejmuje zapytania ( wyszukiwanie danych) tworzenie struktur danych i ich modyfikacje DDL aktualizację danych DML kontrolę danych DCL SELECT [ DISTINCT ] < lista_wynikowa > FROM < źródło danych > [ WHERE <warunek logiczny dla wierszy> ] [ GROUP BY <kryterium grupowania> [ HAVING <warunek logiczny dla grup> ] ] [ ORDER BY <kryterium porządkowania> ] ; 4
Porządkowanie - opcja ORDER BY Przykłady: SELECT Nazwisko, Imiona FROM Studenci ORDER BY Nazwisko ; SELECT Nazwisko, Data_urodzenia FROM Studenci WHERE Rok = 2 ORDER BY 2, 1 ; SELECT Nazwisko, Rok, Gr_dziekan FROM Studenci WHERE Rodzaj_studiow='INŻ_ST' ORDER BY Rok DESC, Gr_dziekan, Nazwisko ; SELECT Nazwisko, Data_urodzenia, Trunc( Months_between(Sysdate, Data_urodzenia )/12) Wiek FROM Studenci ORDER BY Wiek DESC, 1 ; SELECT Nazwisko, Imiona FROM Studenci WHERE Rodzaj_studiow='INŻ_ST' AND Rok = 2 AND Gr_dziekan = 1 ORDER BY Dbms_random.value() ; Uwagi: co może być kryterium porządkowania? domyślne ustawienia uporządkowania sposoby uporządkowania ( rosnący, malejący, pseudolosowy ) opcja ORDER BY występuje tylko raz w składni, na końcu zapytania 5