SYSTEMY BAZ DANYCH - WYKŁADY
27.02.2004 - wykład 1, 2
mgr inż. Krzysztof Smółka
ksmolka@interia.pl - odpowiedź w ciągu tygodnia - zazwyczaj we wtorek
zjazd raz w miesiącu na 2 wykłady
Daty zjazdów: 26.03, 7.05, 4.06.
Egzamin: pytanie lub test
Za 5 z ćwiczeń jesteśmy zwolnieni z egzaminu z wykładów, wystarczy przyjść po wpis
Końcowa ocena składa się z oceny z: ćwiczeń, wykładu i projektu.
Egzamin najprawdopodobniej w sesji
Na egzaminie też będą pytania do wypunktowania.
Przerabiać będziemy: Accessa i Microsoft SQL Server 2000.
Trialowa 120 dniowa (nie uboższa) ze strony www.microsoft.com
Jakiś notatek szukać z 5 semestru.
Treści programowe:
podstawowe cechy systemów danych
wybrane współczesne architektury systemów do baz danych
główne elementy współczesnych relacyjnych systemów
zarządzanie bazą danych
modele danych
metodologie projektowania relacyjnych baz danych
instalowanie, zarządzanie i połączenie z serwerem SQL Server 2000
MS SQL Server 2000 jako System Zarządzania Bazami Danych
Język Transact-SQL (tworzenie elementów składowych baz, definiowanie i wprowadzanie danych, tworzenie zapytań)
Literatura (podstawowa, wybrane najlepsze książki):
Beymon - Daries: Systemy Baz Danych. WNT Warszawa 2000.
Dobson R, Programowanie Microsoft Access 2000, Wydawnictwo RM Warszawa.
Baza danych może być traktowana na wiele sposobów, np.: jako:
Model świata rzeczywistego
Zbiór struktur danych
Uniwersum interpretacji języka danych
Zasób systemu informatycznego
Element wsadowy systemu informatycznego.
Schemat konceptualnej bazy danych
Ustalenie związków między danymi w bazach danych a faktami w świecie rzeczywistym (czyli ustalenie semantyki danych) nie odbywa się bezpośrednio . Pomostem umożliwiającym określenie tych związków jest tzw. schemat konceptualnej bazy danych.
Bazy danych charakteryzują się czterema podstawowymi własnościami
niezależność aplikacji i danych
abstrakcyjna reprezentacja danych
różnorodność sposobów widzenia danych
fizyczna i logiczna niezależność danych.
SZBD - System zarządzani bazą danych
Transakcje - zmiana danych w bazie danych z jednego stanu w drugi odbywa się za pomocą transakcji. W momencie stwierdzenia faktów, iż stan przejścia danej jest poprawny (w oparciu o więzy integralności) transakcje dokonuje zmian lub generuje komunikat o błędzie nie dokonując żadnych modyfikacji w bazie danych.
Więzy integralności - reguły, które określają w jaki sposób baza danych ma przedstawiać obszar analizy. Dzielimy je na dwa główne typu:
więzy statyczne - używane do sprowadzania, czy transakcje nie zmienia stanu bazy danych w stan niepoprawny.
Więzy przejść - są ograniczeniem nałożonym na przejście. Przejście jest zmianą stanu bazy danych i dlatego może być reprezentowane przez kilka stanów.
Funkcje bazy danych
Wyróżniamy dwa rodzaje funkcji operujących na danych w bazie danych:
aktualizująca - jest dokonywanie zmian na danych, a funkcji - zapytań wydobywanie danych z bazy danych i najczęściej .........
Funkcje zapytań - nie modyfikują danych w bazie danych.
Czego oczekuje się od systemu SZBD
Umożliwia użytkownikowi wytworzenie nowej bazy danych i określenie jej schematu (logicznej struktury danych) za pomocą specjalizowanego języka definiowania danych
Udostępnienia użytkownikowi możliwości tworzenia zapytań (query) o dane oraz aktualizowanie danych za pomocą odpowiedniego języka nazywanego językiem zapytań (query language)
Zapewnienia możliwości ............
Sterowanie jednoczesnym dostępem do danych przez wielu użytkowników, z zapewnieniem bezkolizyjności oraz ochrony danych przez przypadkowym uszkodzeniem.
Podstawowe funkcje realizowane p SZBD to:
zarządzanie plikami:
wyszukiwanie informacji
zarządzanie bazą danych
Funkcje systemu zarządzania bazą danych:
przechowywanie danych w co wchodzi tworzenie i utrzymywanie struktur danych
zapewnienie mechanizmów bezpieczeństwa i prywatności
umożliwienie równoczesnego, kontrolowanego korzystania z bazy danych wielu użytkownikom,
umożliwienie wprowadzania i ładowania danych
umożliwienie wydobywania i operowania na przechowywanych danych
zapewnienie integralności rekordów bazy danych
udostępnianie wydajnych mechanizmów indeksowania pozwalających na szybkie przeszukiwanie i odnajdywanie interesujących nas danych
zapewnienie ochrony przechowywanych danych przed ewentualną utratą, na skutek przyczyn niekoniecznie zależnych od człowieka, za pomocą metod tworzenia kopii bezpieczeństwa i procedur użytkownika.
Cztery grupy języków, które stosuje się do projektowania i wypełniania bazy danych:
język definiowania danych (Data Definition Language - DDL), który umożliwia definiowanie struktury danych przechowywanych w bazie, czyli tworzenie schematu implementacyjnego
język manipulowania danymi (Data Manipulation Language - DML), który możliwa wypełnianie, modyfikowanie i uruchamianie informacji z bazy danych
język sterowania danymi (Data Control Language - DCL), który umożliwia sterowanie transakcjami (np. zatwierdzanie lub wycofywanie)
język zapytań (Query Language), który umożliwia pobieranie z bazy danych informacji zgodnych z podanymi warunkami.
Usługi w SQL Serwerze:
MSSQLServer jest faktycnym serwerem bazy danych. Kiedy serwer SQL jest uruchamiany lob zatrzymany, oznacza to na ogół uruchomienie lub zatrzymanie usług MSSQLServer
SQL Server Agnet umożliwia obslugę zaplanowanych zadań, ostrzeżeń
MSDTC (Distributed Transaction Coordinator) obsługuje transakcje rozproszone pomiędzy wiele serwerów
Microsoft Search obsługuje indeksowanie pól tekstowych w SQL Server
MSSQL Server OLAPService obsługuje Microsoft SQL Server Analysis Service
MSSQLServer ADItelper obsluguje Microsoft SQL Server Active Directory Integration. Usługa nie wymaga żadnej kontroli administratora
Baza danych master - kluczowa baza danych dla uruchomionego serwera SQL Server.
Baza danych model - za każdym razem tworząc nową bazę danych, kopiowana jest baza model, a następnie są dokonywane zmiany np. rozmiaru, wymagane do nowej bazy danych
Baza danych tempdb to miejsce, gdzie wykonywane są operacje wymagające przestrzeni tymczasowej, jak np. sortowania, złączenia i inne
Baza danych MSDB obsługuje usługę SQL Server Agent, włączając w to przechowywanie informacji na temat zadań, zdarzeń i replikacji
Baza pubs jest narzędziem do nauki. Zawiera przykładową bazę danych dotyczącą wydawcy,
Baza Northwind jest alternatywną bazą służącą do nauki .jest to przykł. baza danych dostarczoną przez Microsoft Access od pewnego czasu
Niezbędne bazy: pubs, tempdb, model, master, northwind
26.03.2004 - wykład 3, 4
Historyczny przegląd baz danych:
architektura dwuwarstwowa (server i klienci) serwer - baza danych, informacje o bazie danych, obsługa, nadawanie kryteriów - klient, zadawanie zapytań
przesłanką architektury klient/server jest podział wykonywania zadań pomiędzy klika procesorów znajdujących się w sieci
Architektura CS
W architekturze klient - serwer, serwer pełni rolę DBMS natomiast klientami mogą być aplikacje poziomu zewnętrznego.
Architektura CS rozproszona
Zalety i wady
Zalety:
duża elastyczność całego systemu, gdyż możemy pracować z różnymi środowiskami graficznymi, równocześnie możemy operować danymi w sposób spójny
Wady:
stopień kompilacji
pisząc aplikacje klienckie musimy zapewnić ich właściwe komunikowanie się
KOMUNIKACJA
sam SQL nie oferuje określonych standardów, a jest kwestią samego łącza
standard ODBC
ROZWARSTWIENIE
Okazuje się, że tworzenie bardzo dużych systemów, gdzie aplikacja kliencka musi realizować bardzo dużo funkcji, w których mamy do czynienia nie z jednym ale z wieloma serwerami danych rozproszonych.
Trzecia warstwa tzw. warstwa prezentacyjna określająca sposób wprowadzania i wyświetlania danych. Określa ona np. czy pewne dane przedstawiamy.
Architektura dwu i pół warstwowa
Powstała idea przeniesienia pewnej warstwy funkcjonalnej, czyli sposobów zarządzania i przetwarzania informacji na stronę serwera.
Trigery powoduje np., że przy zmianie pewnych danych inne się uaktualniają, gdy usuwamy z naszej bazy informacje o kliencie, to chcemy usunąć wszystkie zamówienia jakie on złożył itd. Procedury te powinny uruchamiać się automatycznie bez integracji użytkownika.
Drugim elementem są zaimplementowane w bazie danych reguły biznesowe wspólne dla wszystkich.
Architektura Trójwarstwowa
Jednak istnieją pewne wady tej arch. Język procedur wbudowanych i trigerów jest dość skomplikowany.
Istnieje też groźba przepisywania od nowa procedur, w przypadku zmiany serwera bazy danych.
Trzecia warstwa (serwer aplikacji), warstwy która byłaby niezależna zarówno od serwera jak też od aplikacji klienckiej.
Model systemów zarządzania bazami danych (modele baz danych)
hierarchiczny
obiektowy
relacyjny
sieciowy
Hierarchiczny model danych
Model ten używa dwóch struktur, którymi są: typy rekordów i związki nadrzędny-podrzędny. Typ rekordów jest nazwany strukturą danych, złożoną ze zbioru nazwanych pól. Każde pole jest używane do przechowywania prostego atrybutu i jest mu przyporządkowany typ danych.
Struktury danych są inne: w hierarchicznym modelu danych mamy typy rekordów, w relacyjnym mamy relacje i związki.
Związki są inaczej implementowane.
Jeżeli podrzędny typ rekordu ma związane dwa lub więcej nadrzędnych typów rekordów, to rekord podrzędny musi zostać powielony dla każdego rekordu.
Diagram modelu hierarchicznego
Relacje w HMBD są reprezentowane w kategoriach „ojciec/syn”. Pojedyncza tabela nadrzędna może mieć kilka tabel podrzędnych, lecz pojedyncza tabela podrzędna może mieć tylko jedną tabelę nadrzędną.
Obiektowy model danych
Główną różnicą między obiektowym językiem programowania, a bazami danych jest to, że obiektowe bazy danych wymagają istnienia ....
Mają możliwość pracy z multimediami.
Filarami na których opiera się każdy model obiektowy są pojęcia: złożone obiekty tożsamości.
Obiekt jest pakietem danych i procedur. Dane są trzymane w atrybutach obiektu. Procedury są definiowane za pomocą metod obiektu. Metody są uaktualniane przez komunikaty przekazywane między obiektami.
Obiektowy model danych powinien dostarczać środków do realizacji tożsamości obiektów. Jest to możliwość rozróżnienia dwóch obiektów o tych samych cechach.
Celem nadrzędnym obiektowości jest lepsze dopasowanie modeli pojęciowych, modeli relacyjnych systemów do „wrodzonych instynktów” własności psychologicznych, mentalnych mechanizmów percepcji i rozumienie świata.
Relacyjny model jest modelem danych zorientowanych na wartości.
Dwa identyczne rekordy w obiektowej bazie danych mogą się odwoływać się do dwóch różnych obiektów.
Powstaje więc kilka kierunków rozwoju baz danych.
Po pierwsze - dalszy rozwój systemów opartych o relacyjny model danych:
ich obecne bardzo duże rozpowszechnienie
zaufanie
Drugi kierunek rozwoju baz danych to obiektowo-relacyjne bazy danych.
Trzeci kierunek rozwoju baz danych to obiektowe bazy danych.
Podstawowy programowania baz danych
Algebra relacyjna jest zbiorem 8 operatorów. Każdy operator bierze jedną lub więcej relacji jako argument i produkuje jedną relację jako wynik
Trzema głównymi są:
selekcja
rzut
złączenie
iloczyn
suma
przecięcie
różnica
iloraz
Schemat relacji
R≤D1xD2xD3x...Dn
R- relacja
D-dziedzina (zbiór wartości)
Zapytanie (kwerenda) dowolna funkcja zastosowana do relacji np. wyszukiwania.
Podstawowe operacje algebry relacji
Suma S=AuB
Różnica R=A-B
Przecięcie P=A^B
Iloczyn kartezjański K=AxB
Specjalne:
wybór
rzut
złączenie
podzielenie (divide)
Selekcja - jest to operator, który bierze jedną relację jako swój argument i produkuje w wyniku jedną relację
RESTRICT nazwa tablicy
WHERE warunek >[-> tabela wynikowa]
Np. RESTRICT Studenci WSHERE Wiek>=18 -> poborowi
Rzut (projekcja)
(kolumny) PROJECT nazwa tablicy
(lista kolumn) -> tabela wynikowa
Złączenie jest na relacyjnym operatorze iloczynu kartezjańskiego
PRODUCT<tabela 1>WITH<tablea 2> -> tabela wynikowa
Równozłączenie łączy się dwie tabele, ale tylko dla wierszy, w których wartości w kolumnach złączenia są takie same
EQUILOIN<tab1>with<tab2> -> tabela wynikowa
Złączenie naturalne
JOIN<tab1>with<tab2> -> tabela wynikowa
Złącznie zewnętrzne - które dzieli się na:
złączenie lewo stronne - bierze się w nim pod uwagę wszystkie wiersze z jedną relacją
złączenie obustronne - z obu relacji
Suma - bierze dwie zgodne relacje jako swoje argumenty i produkuje jedną relację wynikową
<tab1>UNION<ta2> -> tabela wynikowa
Przecięcie
<tab1>Intersection<tab2> -> tabela wynikowa
Różnica
<tab1>Difference<tab2>-> tabela wynikowa
Algebra jest proceduralnym językiem zapytań ponieważ ma własności domknięcie
DDL - CREATE
DML - manipulowanie (SELECT, INSERT)
SQL - typy danych
Typy napisowe (string) i bitowe
Charakter (N) - typ znakowy
Charakter
Bit Typy liczbowe
Numeric
Po przecinku
Integer
Shortint
Float
SQL - Tworzenie tabel
Do CREATE TABLE
CREATE TABLE nazwa tabeli
(nazwa kolumny1 typ danych (długość),
nazwa kolumny2 typ danych (długość),
nazwa kolumnyN typ danych (długość))
Każda kolumna tabeli może być zdefiniowana jako NOT NULL, oraz jako UNIQUE - jednoznaczna.
Poz.
Create Table Osoby
(Id_Osoby Integer,
Nazwisko text (25),
Data date defoult NOW,
Opis memo
Pesel text (11) Not null)
Usuwanie i modyfikowanie
Do usuwania tabeli z bazy danych służy instrukcja DROP TABLE
DROP TABLE nazwa tabeli
DELETE FROM nazwa tabeli
Dodawanie kolumny
ALTER TABLE nazwa tabeli
ADD COLUMN nazwa kolumny typ danych (nowa dł.)
Np.
ALTER TABLE Wykładowcy
ADD COLUMN
Modyfikacja długości kolumn
ALTER TABLE nazwa tabeli
ALTER COLUMN nazwa kolumny typ danych (nowa dł.)
Usuwanie kolumn
ALTER TABLE nazwa tabeli
DROP COLUMN
Operowanie danych
SELECT do wyszukiwania, wycinania pionowego i poziomego i łączenia kolumn z tabeli i kwerend
SZELECT lista pól
FROM lista tabeli
WHERE [warunek lub warunki]
GROUP BY nazwa pola określającego grupowania
HAVING <określenie wyboru, grupy>
ORDER BY nazwa pola określającego sortowanie
Lista pól zawiera struktury [Nazwa tabeli].[Nazwa tabeli], oddzielane przecinkami. Jeśli nazwa tabeli lub pola jest jednowyrazowa to można zrezygnować z nawiasów kwadratowych.
Select Id_osoby, Nazwisko, Pesel, Pensja
From Osoby
Where Pensja>1000
Order By Nazwisko Asc, Pencja Desc
Funkcje agregujące
AVG (wyrażenie) - średnia arytmetyczna
GOUNT (wyrażenie) - zlicza liczbę rekordów zwracanych przez zapytanie
FIRST - wartość pierwszego rekordu
LAST - wartość ostatniego rekordu
MAX (wyrażenie) - maksyma
MIN (wyrażenie) - min.
STDEN (wyrażenie) STDEVP (wyrażenie) - odchylenia
SUM (wyrażenie) - suma
VAR (wyrażenie), VARP - wariacje
AS Pensja Brutto - zmiana nagłówka kolumny
Parametry SEL
ALL - wszystkie
DISTRINCT - wartości unikatowe
DISTINCTROW - rekordy unikatowe
TOP - wybranie n pierwszych wartości
TOP n PERENT
INTO po której podajemy nazwę tworzonej tabeli docelowy
Klauzura FROM zawiera nazwę tabeli źródłowej lub oddzielone przecinkami od siebie
WHERE - warunek lub warunki
SELECT Nazwisko
FROM Pracownia
WHERE Miasto=”Łódź” AND Wiek<25
ORDER BY
GROUP BY - zawiera nazwę
Select Wydział, avg(Pensja), Count(*)
From Wykładowcy
Group By wydział
HAVING - określa grupy wierszy, które pojawiają się w tabeli logicznej zdefiniowanej przez instrukcję SELECT. Warunek wyszukiwania odnosi się do kolumn określającej w klauzurze Group By.
Parameters [Nazwa parametru: ] typ danych
Modyfikowanie
UPDATE - do kwerendy aktualizującej
INSERT
DELETE
Update nazwa tabeli
Set [Nazwa tabeli].[Aktualizowane pole]=przypisana wartość
Where [warunek]
INSERT INTO - do tworzenia kwerendy dołączającej rekordy do tabeli źródłowej
Insert into nazwa tabeli docelowej
Usuwanie danych
DELETE nazwy wybieranych pól oddzielone przecinkami
FROM nazwa tabeli z której usuwamy rekordy
WHERE [warunek]
W instrukcji DELETE nie można odwoływać się do kwerend utworzonych przyp omocy operatora UNION.
Łączenie danych UNION, INSERSECT, EXCEPT do odpowiada operatorom algebry relacyjnej: sumy, iloczynu i różnicy, np. połączenie informacji dotyczących przedmiotów na różnych latach studiów dziennych magisterskich i uzupełniających
Relacja może być łączona sumą ze sobą, wg kilku warunków
Instrukcje tworzące tabele
SELECT INTO służy do tworzenia kwerendy tworzącej tabelę z warunków
Jeżeli tabela o nowej nazwie już istnieje, to SZBD prosi o jej usunięcie. Kolumny w nowej tabeli dziedziczą atrybuty kolumn utworzonych na liście wyboru
7.05.2004 - wykład 5, 6
Sieciowy model danych (niewiele odbiera od hierarchicznego).
Operowanie danymi ma też charakter proceduralny: typowe operacje to wyszukiwanie rekordu na podstawie zawartości pól i/lub przynależności do danego wytępienia typu kolekcji.
Sieciowy model danych został stworzony głównie w celu rozwiązywania problemów związanych z modelem hierarchicznym
Kolekcje umożliwiają wyprowadzanie jeden-do-wielu, co oznacza, że w obrębie struktury każdy rekord z tabeli - właściciela może być powiązany z dowolną ilością rekordów z tabeli-członka, natomiast pojedynczemu rekordowi z tabeli może odpowiadać tylko jeden rekord.
Zaletą modelu sieciowego jest szybkość, a wadą jest obsługa
W SMBD dostęp do danych można uzyskać poruszając się po kolekcjach, użytkownik może rozpocząć od dowolnej tabeli.
Bazy obiektowe:
dane niejednorodne - charakteryzują się niewielką liczbą typów i duża liczbą wystąpień każdego typu. Nowe zastosowanie baz danych wymagają natomiast różnorodnej kolekcji projektowanych obiektów, które charakteryzuje duża liczba typów oraz stosunkowo mała liczba wytępień każdego..
długie łańcuchy znakowe o zmiennej długości, zapis informacji multimedialnych w postaci cyfrowej
obiekty złożone
wielowersyjność
ewolucja schematu - bazy danych wspomagające projektowanie z reguły podlegające modyfikacji schematu
obiekty równoważne
długie transakcje - transakcja jest sekwencją operacji zapisywania i odczytu, która nie narusza integralności bazy danych
Obiektowa Baza Danych
zbiór obiektów, ich stan, zachowanie się i związki występujące między nimi określone są zgodnie z obiektowym modelem danych
system, który umożliwia zarządzanie bazą danych, zorientowany obiektowo
system, który dziedziczy wszystkie zasadnicze cechy technologii obiektowych i baz danych (trwałości, dziedziczenie logicznego i fizycznego poziomu danych, zarządzanie wielodostępem)
model danych, w których wykorzystano cechy obiektowości to jest: pojecie klasy i obiektów klasy, enkapsulacja, mechanizm identyfikacji obiektów, dziedziczenie, przeciążanie funkcji
Obiekt jest podstawowym pojęciem dla obiektowości. Reprezentuje sobą konkretny pojedynczy byt (książkę, osobę, samochód), charakteryzowany poprzez opis stanu (atrybuty obiektu) i zachowanie tego bytu (metody obiektu). Opis jest realizowany przy użyciu klasy
Klasa i obiekty klasy
Klasa jest zbiorem obiektów o jednakowej strukturze wewnętrznej.
Opis stanu obiektów (czym różnią się obiekty, klasa):
różnice mogą być spowodowane tym, iż pojęcia te nie zawsze są rozumiane jednakowo w różnych językach
Atrybuty - stanowią opis statycznej struktury klasy i obiektów, opis ich poszczególnych cech.
Metody stanowią opis dynamiczny zachowań obiektów, czyli operacje widocznych na zewnątrz obiektu.
Elementy składające się na standardowy opis klasy:
nazwa klasy
cechy klasy
opis statyczny
opis dynamiczny
Dziedziczenie polega na różnicach a nie podobieństwach.
Enkapsulacja - (hermetyczna) wywodzi się z potrzeby rozdzielenia deklaracji i implementacji operacji oraz z potrzeby strukturyzacji. W części deklaracyjnej wyszczególnia się zestaw operacji jakie mogą być wykonywane.
Mechanizm dziedziczenia - pozwala na tworzenie nowych klas, zwanych podklasami z klas już istniejących. Nowe klasy przejmują (dziedziczą) struktury danych i metody klas, ponadto dołączane są do nich nowe własności
Modele dziedziczenia
dziedziczenie dotyczące deklaracji typów
dziedziczenie związane z zależnością grupową
dziedziczenie związane z implementacją typów
dziedziczenie związane z różnicami między obiektami
Relacyjny model bazy danych (RMBD)
Codd oczekiwał, że w wyniku ..... zostaną dwie podstawowe korzyści:
zostanie poprawiony możliwy do wykonania poziom niezależności między danymi
wzrośnie wydajność tworzenia oprogramowania
RMBD charakteryzują się następującymi własnościami:
wszystkie dane przedstawione są za pomocą relacji
wszystkie wartości są atomowe, tzn. pole tabeli posiada niepodzielną wartość z punktu widzenia logiki każdego modelu
regułą domknięcie, czyli wszystkie operacje są wykonywane są na całej relacji, a jej wynikiem jest następna relacja
każda relacja musi posiadać klucz główny
Klucz obcym nazywamy jedną lub więcej kolumn w tabeli.
Relacja jest reprezentowana za pomocą tabeli składającej się z kratek i atrybutów. Tabela jest zbiorem wartości które są przechowywane w polach tabeli. Pola są częściami tabeli w przecięciach wierszy z kolumnami.
Tabele to relacje. Wiersze relacji to krotki. Kolumny relacji są atrybutami. Licznością relacji nazywamy liczbę krotek.
Relacje są zbiorami krotek, a zatem jedna krotka nie może wystąpić w danej relacji więcej niż jeden raz.
Klucze to pola spełniające specjalne funkcje, zdeterminowane przez ich typy.
Cechy klucza podstawowego:
musi jednoznacznie identyfikować każdy rekord w tabeli
musi zawierać unikalne wartości
nie może zawierać wartości zerowych
nie może być polem segmentowym
powinien składać się z minimalnej liczby pól wymaganej do uzyskania niepowtarzalności wartości
jego wartość nie może być w żadnym stopniu opcjonalna
musi bezpośrednio określać wartość każdego pola w tabeli
jego wartość może być zmieniona tylko w wyjątkowych przypadkach
Aby wybrany klucz podstawowy jednoznacznie identyfikował każdy rekord w tabeli, wsz6ystkie pozostałe pola muszą być od niego funkcyjnie zależne.
Kroki i kolumny relacji nie muszą być uporządkowane w żaden sposób, gdyż relacja jest zbiorem. Jednak często zdarzają się sytuacje, w których występuje „jakieś” uporządkowanie krotek relacji wg wartości jednego lub wielu kolumn.
Do porządkowania struktury danych używa się procesu normalizacji. Normalizacja jest procesem kolejnego przekształcenia przez kolejne stopnie postaci normalnych.
Zgodnie z teorią model danych w relacyjnych bazach danych składa się z trzech podstawowych elementów:
relacyjnych struktur danych
operatorów relacyjnych umożliwiających tworzenie, przeszukiwanie i modyfikację bazy danych
więzów integralności jawnie lub niejawnie określających wartości danych
Każda krotkach odpowiada jednemu wierszowi tablicy. Każda krotka posiada co najmniej jeden atrybut odpowiadający pojedynczej kolumnie tablicy. Każda relacja (tablica) posiada następujące własności:
krotki (wiersze) są unikalne
atrybuty (kolumny) są unikalne
kolejność krotek nie ma znaczenia
kolejność atrybutów nie ma znaczenia
wartości atrybutów (pól) są atomowe
@;”brak” [zielony];”nieznany” [niebieski]
Relacje w RMBD można podzielić na trzy grupy:
jeden do jednego (związek jednoznaczny)
jeden do wielu
wiele do wielu (związek wieloznaczny)
Relacyjny model logiczny bazy danych posiada wiele zalet. Najważniejsze z nich to:
wielopoziomowa integralność danych. Integralność na poziomie pól zapewnia dokładność wprowadzania danych, integralność na poziomie tabel uniemożliwia powtarzanie się tego samego rekordu i pozostawienie nie wypełnionych pól wchodzących w skład klucza podstawowego, integralność na poziomie relacji gwarantuje odpowiednie ich zdefiniowanie reguły integralności kontrolują
logiczna i fizyczna niezależność od aplikacji baz danych zarówno zmiany wprowadzone przez użytkowników do projektu logicznego
zagwarantowana dokładność i poprawność danych
łatwy dostęp do danych
Wady RMBD - fakt, że oparte na nim aplikacje działały bardzo powoli, nie byłą to jednak wina samego modelu
Algebra relacyjna jest zbiorem 8 operatorów. 3 najważniejsze to: selekcje (ograniczenie), rzut (projekcja), złączenie. Dodatkowe operatory to: iloczyn, suma, przecięcie, różnica i iloraz. Dzięki tym trzem operatorom możemy wykonywać większość operacji na danych.
Widoki są traktowane przez system zarządzania bazą danych podobnie jak tabele. Widok nie posiada własnych danych. Wszystkie dane udostępniane przez widok są danymi zawartymi w jednej lub kilku tabelach.
Widoki stosuje się w celu:
ograniczenia dostępu do tabeli w bazie danych
uproszczenie zapytań kierowanych do systemu
zapewnienie niezależności danych wewnątrz aplikacji
Ze względu na ilość tabel, na których zdefiniowany został widok, widoki można podzielić na: proste, złożone
Do tworzenia widoków służy rozkaz CREATE VIEW.
Transakcje są wykonywane za pomocą dwóch rozkazów: COMMIT i ROLLBACK, pierwszy zapisuje wszystkie zmiany, a drugi wycofuje zmiany uprzednio wycofane.
Rozkaz COMMIT służy do zapisywania na stałe wykonanych uprzednio operacji. Przed wykonaniem tego rozkazu żadne zmiany w bazie danych nie są widocznie dla innych użytkowników.
SAVEPOINT - zaznacza i nazywa pewien punkt wewnątrz transakcji
Dla każdego związku pomiędzy tabelami w bazie
ograniczone usuwanie (podejście ostrożne) - nie dopuszcza do usuwania rekordu nadrzędnego, jeśli istnieją rekordy podrzędne
kaskadowe usuwanie (podejście ustne) - przy usuwaniu rekordu nadrzędnego usuwa także rekordy podrzędne
izolowanie usuwania (podejście wyważone) - usuwa jedynie rekord nadrzędny
Diagramy przepływu danych (DFD) jest to model pokazujący w jaki sposób dane przepływają między funkcją i jak są przez nie używane. Model ten jest przedstawiony w sposób graficzny.
W grafice DFD mamy następujące elementy:
procesy odpowiadające funkcjom hierarchii za ich pomocą przedstawia się sposób przetwarzania...
magazyny danych
Modelowanie danych
Diagramy związków encji (nazywa się je również diagramami ER) są metodą modelowania danych. Obrazują podstawowe składniki bazy danych i związki między nimi w trakcie jej projektowania.
Encja - to zbiór obiektów.
Normalizacja
Proces kolejnego przekształcenia projektu bazy danych przez te trzy postacie normalne jest znane jako normalizacja.
Normalizacja - przekształcenie krok po kroku.
Normalizacja składa się z następujących etapów:
zebranie zbioru danych
przekształcenie nieznormalizowanego zbioru danych w tabele w pierwszej postaci normalnej
przekształcenie tabeli z pierwszej postaci normalnej w drugą postać normalną
przekształcenie z drugiej na trzecią jeśli jeszcze w tej postaci występują anomalie danych, to należy
przekształcić z trzeciej w czwartą, potem
z czwartej w piątą
Relacja jest w pierwszej postaci normalnej wtedy i tylko wtedy, gdy każdy atrybut niekluczowy jest funkcyjnie zależny od klucza głównego. Wartości atrybutów muszą być elementarne tzn. są to pojedyncze wartości określonego typu, a nie zbiory wartości.
Pierwsza postać normalna jest konieczna, aby tabelę można było nazwać relacją.
Druga postać normalna wtedy i tylko wtedy, gdy jest w 1NF i każdy atrybut niekluczowy (nie należący do żadnego klucza) jest w pełni funkcyjnie zależny od klucza głównego.
Trzecia postać normalna wtedy i tylko wtedy, gdy jest w 1NF i każdy jej atrybut niekluczowy jest bezpośrednio zależny od klucza głównego. Aby przejść z drugiej do trzeciej usuwamy zależności przechodnie między danymi. Aby to zrobić w każdej tabeli, dla każdej pary niekluczowych elementów danych sprawdzamy czy wartość pola A zależy od wartości B. Jeśli tak to przenosimy powiązanie elementy do oddzielnej tabeli.
Istota procesu normalizacji polega na tym, że:
wszystkie elementy danych w tabeli muszą całkowicie zależeć od całego klucza
w tabeli nie mogą wystąpić powtarzające się grupy danych
Najważniejszymi z postaci normalnych są trzecia postać normalna oraz postać normalna Boyce'a Codda.
Dana relacja jest w 4 postaci normalnej wtedy i tylko wtedy, gdy jest w trzeciej postaci normalnej i wielowartościowa zależność zbioru Y od X pociąga za sobą funkcjonalną zależność.
Dana relacja jest w 5 postaci normalnej wtedy i tylko wtedy, gdy jest w trzeciej postaci normalnej i nie istnieje jej rozkład odwracalny.
Przekształcenie relacji do kolejnych postaci normalnych wiąże się najczęściej ze zmniejszoną ilością pamięci potrzebnej do przechowywania informacji.
Proces normalizacji ma na celu takie przekształcenie, by nie posiadała ona cech niepożądanych.
Projektowanie relacyjnych baz danych
Składa się z 3 faz:
analizy wymagań zakłada wgłębienie się w sposób funkcjonowania obsługiwanej organizacji
faza modelowania danych polega na tworzeniu „zrębów struktury” nowej bazy danych. W skład wchodzi definiowanie pól i przypisywanie ich odpowiednim tabelom, przypisywanie tabelom kluczy podstawowych, wprowadzenie kolejnych poziomów integralności danych oraz zdefiniowanie poszczególnych relacji za pomocą odpowiednich kluczy obcych
normalizacja jest procesem, w którym następuje rozkład dużych tabel na mniejsze w celu wyeliminowania powtarzających się danych
Obecnie stosowane postacie normalne to: 1, 2, 3, 4, 5, Boyce'a Codda oraz postać normalna klucze/domeny
Analiza wymagań:
formułowanie definicji celu i wymagań
analiza istniejącej bazy danych
tworzenie struktur danych
wprowadzanie reguł integralności
definiowanie perspektyw (widoków)
kontrola integralności danych
4.06.2004 - wykład 7, 8
Egzamin:
2 i 9 lipca 2004 r. (piątek, najprawdopodobniej aula nr 1)
o 17:00
Test wyboru ok. 20 pytań
Np: kolejność ustawić poleceń w SQLu, uzupełnić słowo
Czas: 45 min
Mogą być 2 grupy
Za ściąganie wyprasza
Aby zaliczyć trzeba zrobić 60 %, a jeśli ktoś wpisał się na listę to musi zrobić tylko 35 % aby zaliczyć
5 z ćwiczeń bez egzaminu, przyjść tylko po wpis
Podział i charakterystyka baz danych
Bazy danych bardzo różnią się między sobą - praktycznie każdy podział tworzy własną kategorię i dlatego trudno je szufladkować. Tą zależność najlepiej widać w przypadku baz relacyjnych i obiektowych: model relacyjny okazał się zbyt skromny dla rosnących potrzeb, a obiektowy zbyt trudny (kosztowny) w realizacji.
Relacyjne bazy danych
Opracowane przez Codda. Zwykle produkt kwalifikuje się przy pomocy specyfikacji języka SQL. Z czasem relacyjne bazy danych oddalały się od swojej teoretycznej podstawy algebry relacji.
Model danych relacyjnych:
dane przechowywane są w tabelach, w których każda ma stałą ilość kolumn i dowiązaną ilość wierszy
wiersze odpowiadają niepodzielnym krotkom a kolumny odpowiednim atrybutom
typy są zdefiniowane na etapie projektowania bazy danych i jest ich określona ilość, mają stały rozmiar i zwykle są to ogólne znane typy proste (liczba, data, godzina, ciąg znaków itp.). Każda tabela ma zdefiniowany klucz - wyróżniany atrybut lub kilka atrybutów którego wartość jednoznacznie identyfikuje dany wiersz.
Język zapytań:
widok (kwerenda) jest to pewien podzbiór bazy danych w formie tabeli, będący wynikiem wykonania zapytania
dane z bazy są wybierane na podstawie wartości z konkretnych pól w krotkach. Zapytania mogą mieć prostą postać i mogą wymagać danych z wyłącznie jednej tabeli, mogą być wyrafinowane wymagając od systemu operowania łączeniem (join), zagnieżdżeniem (nesting), różnica i suma teorii zbiorów (set union, difference) oraz innym operatorami.
Model Obliczeniowy
wszelkie przetwarzanie oparte jest na wartościach. Krotki nie posiadają uniwersalnego identyfikatora. Nie ma też zabezpieczenia przed odwołaniem się do innego wiersza nowej tabeli
podobnie ma się sprawa uaktualniania danych. Manipulacja relacjami odbywa się w sposób globalny przy użyciu operatorów algebry relacji, przetwarzanie wiersza po wierszu nie jest dozwolone.
Obiektowe Bazy Danych
nie są określone żadnym oficjalnym standardem. Obowiązkowy obecnie standard opracowany przez ODMG został opublikowany w 1993.
Dzięki mechanizmom obiektowym można zwiększyć niezależność danych od aplikacji
Model Danych
stosowany w obiektowych bazach danych korzysta z takich jak klasy, atrybuty, metody, udostępnianie, identyfikatory obiektów
obiektowe bazy danych łączą właściwości obiektowości i obiektowych języków programowania z możliwościami systemów baz danych, a więc nie tyko przechowywania danych.
Języki zapytań
obiektowo zorientowany język staje się zarówno językiem programowania jak i językiem baz danych, zapewniając bezpośrednią zależność między obiektem w aplikacji a obiektem w bazie
standard ODMG-93 dostarcza dodatkowo deklaratywny język OQL. Język ten nie jest w pełni kompatybilny z SQL
Model obliczeniowy
możliwe są wciąż zapytania deklaratywne, głównym sposobem tworzenia i modyfikacji...
zwykle identyfikatory są konwertowane na wskaźnik do pamięci w chwili wczytywania konkretnego obiektu - występuje skrócony czas dostępu
Obiektowo-relacyjne Bazy Danych
stanowią bardzo silną grupę systemów
kierunek rozwoju jest wyznaczony przez dwie tendencje: niedostatków w technologii relacyjnej, szczególnie w zakresie danych
chęć wprowadzenia wielu cech obiektowości: klasy, metody, dziedziczenie, abstrakcyjne typy danych
Model danych
korzysta z modelu danych zawartego w standardzie SQL3. dane są wciąż przechowywane w tabelach, jednak wartości mogą mieć bogatszą niż dotychczas postać - abstrakcyjny typ bazy. Zachowuje z funkcjonalności zwykłych pól przy nowych zawartościach (np. multimedia)
Język zapytań
rozszerza model relacyjny, dotyczy to rozbudowy możliwości zapytań o obiekty zagnieżdżone. Wyniki są wciąż podawane w formie tabel, krotek, a nie jako relacje.
Model obliczeniowy
rozszerzony język SQL jest podstawowym interfejsem dostępu do danych
Cecha |
RDBMS (relacyjne) |
ORDBMS (obiektowo-relacyjne) |
ODBMS (obiektowe) |
Standard |
SQL2 (ADS X 342) |
SQL3/4 |
ODBG - v2.0 |
Współpraca z obiektowym językiem programowania |
Słaba, programiści muszą dostosować program obiektowy do potrzeb bazy |
Ograniczona głównie do nowych typów danych |
Bezpośrednie, trudno rozumiane |
użytkowanie |
Łatwe do zrozumienia struktura, wiele narzędzi dla użytkowników |
Zapewnia niezależność danych od aplikacji, trudno odzwierciedla złożone powiązanie |
Łatwe dla programistów, użytkownika, pozostaje pewien dostęp przez SQL |
Programowanie |
Zapewnia niezależność danych od aplikacji, trudno odzwierciedla złożone powiązanie |
Zapewnia niezależność danych od aplikacji, trudno odzwierciedla złożone powiązanie |
Obiekty w naturalny sposób odzwierciedlają dziedzinę, łatwość modelowania różnorodnych typów i powiązań |
Wady i zalety poszczególnych modeli
relacyjne bazy danych
zalety:
oparte na solidnych podstawach teoretycznych,
stabilna pozycja na rynku
wady:
z góry ustalony konstruktor,
brak złożonych obiektów,
brak środków hermetyzacji i modularyzacji (brak oddzielenia implementacji od specyfikacji)
brak środków do przechowywania informacji proceduralnych
niezgodność impedancji
niezgodność modelu pojęciowego z modelem implementacyjnym
Obiektowe bazy danych
zalety:
złożone obiekty
typy danych definiowane przez użytkownika
tożsamość obiektów (identyfikator)
trwałość
hermetyzacja, hierarchia, dziedziczenie
rozszerzalność
zgodność we wszystkich fazach życia bazy danych
metody i funkcje przechowywania wraz z danymi
nowe możliwości (wersjonowanie, rejestracja zmian, powiadomienie)
możliwość nowych zastosowań (mniejszym kosztem), multimedialność
porównywalna wydajność
wady:
brak optymalizacji zapytań
niedopracowane mechanizmy zarządzania dużą bazą obiektów, sterowania wersjami
mała liczba ekspertów od technik obiektowych
nie wiadomo z jakimi kosztami wiąże się migracja dużych systemów
brak dopracowanych standardów
większość wad z czasem samoczynnie zniknie, gdyż są spowodowane zbyt dużym tempem rozwoju
Obiektowo-relacyjne bazy danych
zalety:
przystosowane do multimediów
dane przestrzenne
abstrakcyjne typy danych
metody
kolekcje (zbiory, wielozbiory, sekwencje, tablice zagnieżdżone)
typy referencyjne
przeciążanie funkcji
optymalizacji zapytań
wady:
wciąż nie uniknięto wielu błędów modelu relacyjnego
brak perspektyw na przyszłość
produkt hybrydowy „dwa w jednym”
Modele dostępu do danych
Jet - silnik baz danych Microsoftu
Access 2000 jest zaawansowanym interfejsem użytkownika dla silnika baz danych Microsoft Jet 4.0. przechowuje on tabele, indeksy i kwerendy, które są uruchamiane przez wbudowany mechanizm zapytań. Jest rozbudowaną, wyposażoną w kompletny zestaw. Jet zarządza bazą danych zawartą w pliku MDB.
Wersja 4.0, opcje:
nowy rozbudowany dostawca baz danych OLE
blokowanie na poziomie rekordów
pełna obsługa UNICODE
Ulepszenia SQL
def. widoków i procedur
wywoływanie procedur
wywoływanie parametrów
transakcje
tworzenie i modyfikacja tabel DDl
API
Open Database Connectivity ODBC
Był to ogólny, programowy interfejs API, umożliwiający programistom tworzenie aplikacji dla każdej bazy danych
DAO
RDO - Remote Database Objet - dostęp do baz danych bez silnika Get (pominięto go)
ODBC Direct - rozszerzenie modelu obiektowego DAO, które wykorzystywały obiekty RDO jako metody dostępu do zewnętrznych baz danych bez użycia Yet. Istniały już wówczas 4 metody dostępu do danych: API, ODBC
ODBC - standard połączenia z ...
Yet - bezpośrednio związany z Accesem
Bazy danych OLE - otwarta specyfikacja zaprojektowana jako kontynuacja sukcesu ODBC.
OLE to otwarty standard, umożliwiający dostęp do każdego rodzaju danych.
Bazy danych OLE do komunikowania się ze źródłami danych wykorzystują o tego celu dostawców danych.
Wygląd technologii Universal Data Access
Obiekty ActiveX data (ADO)
Obiekty te to model obkektowy, którego możesz używać w celu pobierania danych z baz OLE
ACO 1.0 - posiadały one jedynie podstawowy zestaw funkcji
ADO 1.5 - 97 rok
ADO 2.0 - 98 r. - dołączono dstawców baz danych O(E
ADO 2.1 - operacje ODL i IRO
Model obiektowy ADO składa się z 7 obiektów (Connection, Recordset, Command, Parameter, Field, Property, Error)
Connection - przedstawia fizyczne połączenie do bazy danych dostawcy danych
Recordset - programowym zbiorem danych
Command - służy do wpisania komendy
Error - podczas pisania kodu zdarza się popełnić błąd
Field - (pole) przedstawia każdą kolumnę pól w zestawie rekordów
JDBC - dostęp w Javie - steronik
Obowiązkowe: master, model, msdb, temp
Składani polecenia select:
Select ..... - lista kolumn
From ...... - nazwa tabeli
Where …..- kryterium dla wierszy
Group by .... - grupy według
Having ..... - kryterium dla grup
Order by ..... - sortowanie
4
Systemy baz danych - wykłady
Start
Systematyzacje fragmentu świata
Analiza Systemowa
Moduł koncepcyjny
Implementacje w języku DHL i RRL
Model logiczny danych
Implementacje niskiego poziomu
Realizacje fizyczne
Klient 1
Klient 2
Klient 3
Klient 4
Sieć komunikacyjna
Serwer = DBMS
Serwer A
Sieć komunikacyjna
Serwer B
Klient 3
Klient 2
Klient 1
Serwer C
Relacyjna Baza Danych (RBD)
warstwa pośrednia
Serwer sieciowy
Przeglądarka
Pośrednia
terminarz
klienci
muzycy
umowy
rozliczenia
Pośrednicy
Klienci
Muzycy
Rozliczenia
Umowy
Style muzyczne
Aplikacje
DAO
RDO
ADO
OLEDB
ODBC
Dane w SQL
SQL Server
Orocle
Jet
FoxPro
Intro
Katal
Inne
Tekst
Video
Poczta
Dane nie związane z SQL
Usługi
Komptuer Centralny i Starsze Dane