Baza danych

Transkrypt

Baza danych
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