Systemy baz danych wykład


SYSTEMY BAZ DANYCH - WYKŁADY

27.02.2004 - wykład 1, 2

Treści programowe:

Literatura (podstawowa, wybrane najlepsze książki):

Baza danych może być traktowana na wiele sposobów, np.: jako:

  1. Model świata rzeczywistego

  2. Zbiór struktur danych

  3. Uniwersum interpretacji języka danych

  4. Zasób systemu informatycznego

  5. 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.

0x08 graphic

Bazy danych charakteryzują się czterema podstawowymi własnościami

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:

Funkcje bazy danych

Wyróżniamy dwa rodzaje funkcji operujących na danych w bazie danych:

Funkcje zapytań - nie modyfikują danych w bazie danych.

Czego oczekuje się od systemu SZBD

  1. Umożliwia użytkownikowi wytworzenie nowej bazy danych i określenie jej schematu (logicznej struktury danych) za pomocą specjalizowanego języka definiowania danych

  2. 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)

  3. Zapewnienia możliwości ............

  4. 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:

Funkcje systemu zarządzania bazą danych:

Cztery grupy języków, które stosuje się do projektowania i wypełniania bazy danych:

Usługi w SQL Serwerze:

Niezbędne bazy: pubs, tempdb, model, master, northwind

26.03.2004 - wykład 3, 4

Historyczny przegląd baz danych:

Architektura CS

0x08 graphic

W architekturze klient - serwer, serwer pełni rolę DBMS natomiast klientami mogą być aplikacje poziomu zewnętrznego.

Architektura CS rozproszona

0x08 graphic

Zalety i wady

Zalety:

Wady:

KOMUNIKACJA

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.

0x08 graphic

Model systemów zarządzania bazami danych (modele baz danych)

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

0x08 graphic

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:

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ą:

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:

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:

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

0x08 graphic

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:

Obiektowa Baza Danych

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):

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:

      1. nazwa klasy

      2. cechy klasy

      3. opis statyczny

      4. 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

Relacyjny model bazy danych (RMBD)

Codd oczekiwał, że w wyniku ..... zostaną dwie podstawowe korzyści:

  1. zostanie poprawiony możliwy do wykonania poziom niezależności między danymi

  2. wzrośnie wydajność tworzenia oprogramowania

RMBD charakteryzują się następującymi własnościami:

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:

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:

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:

@;”brak” [zielony];”nieznany” [niebieski]

Relacje w RMBD można podzielić na trzy grupy:

Relacyjny model logiczny bazy danych posiada wiele zalet. Najważniejsze z nich to:

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:

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

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:

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:

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:

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:

Obecnie stosowane postacie normalne to: 1, 2, 3, 4, 5, Boyce'a Codda oraz postać normalna klucze/domeny

Analiza wymagań:

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:

Język zapytań:

Model Obliczeniowy

Obiektowe Bazy Danych

Model Danych

Języki zapytań

Model obliczeniowy

Obiektowo-relacyjne Bazy Danych

Model danych

Język zapytań

Model obliczeniowy

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

    1. relacyjne bazy danych

      1. zalety: