Wykład I 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 danychHelion 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 Wykład I ( 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 Wykład I 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 Wykład I System Zarządzania Bazą Danych współpracuje z systemem operacyjnym; model danych wspiera określony 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 Wykład I 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