Bazy danych doc


Bazy danych.

Baza danych to wielowymiarowy zbiór danych, charakteryzujący się systemem wielu wewnętrznych powiązań między elementami , tak że przechowywaną informację można prezentować z różnych perspektyw.

Najwcześniejsze znane użycie terminu baza danych miało miejsce w listopadzie 1963, kiedy odbyło się sympozjum pod nazwą "Development and Management of a Computer-centered Data Base"[1], sponsorowane przez System Development Corporation

Pierwszy system zarządzania baz danych został opracowany w latach sześćdziesiątych XX wieku. Pionierem był Charles Bachman. Wczesne opracowanie Bachmana pokazywały, że jego celem było bardziej efektywne użycie nowych urządzeń bezpośredniego dostępu do składowanych danych, które wtedy zaczynały być dostępne. Jak dotąd, przetwarzanie danych było oparte na kartach dziurkowanych i taśmach magnetycznych. Oznaczało to szeregowy dostęp do danych, co pociągało za sobą użycie innych algorytmów niż dla dostępu swobodnego.

W 1970 E. F. Codd zaproponował relacyjny model danych. Krytykował on istniejące modele danych za mieszanie abstrakcyjnego opisu struktury informacyjnej z opisami mechanizmów fizycznego dostępu. Jednak przez dłuższy czas model relacyjny pozostawał tylko w sferze rozważań akademickich.

Jednym z pierwszych implementacji modelu relacyjnego były: Ingres Michaela Stonebrakera z Berkeley i System R z IBM. Oba były prototypami badawczymi, ogłoszonymi w ciągu roku 1976.

Pierwsze komercyjne rozwiązania, Oracle i DB2 nie były dostępne aż do roku około 1980.

Natomiast pierwszym udanym produktem tego typu dla mikrokomputerów był dBASE dla systemów operacyjnych CP/M i PC-DOS/MS-DOS.

Podczas lat osiemdziesiątych XX wieku, aktywność badaczy skupiała się na rozproszonych bazach danych i maszyn bazodanowych (ang. database machines) ale te wysiłki nie miały większego odzwierciedlenia w ofertach rynkowych.

Inną ważną ideą był funkcyjny model danych, ale oprócz specjalnych zastosowań w genetyce, biologii molekularnej i wykrywaniu nadużyć finansowych, także nie miały szerszych zastosowań.

Historycznie w miarę rozszerzania się możliwości i zastosowań sprzętu komputerowego, najpierw każdą aplikację implementowano jako oddzielny system z własnym zestawem danych np. przygotowywanie listy płac.

W późniejszym okresie powstał system indeksowy, który pozwalał na interakcyjne odczytywanie danych.

Pojedyncze zautomatyzowane systemy wykorzystywały dane w sposób nieefektywny (różne działy tej samej firmy nie mogły współdzielić informacji) informacja była powielana a jakakolwiek zmiana wymagała korekt w różnych węzłach.

W systemie zintegrowanym:

0x01 graphic

Zróżnicowanie uprawnień dostępu odbywa się poprzez stworzenie schematów i podschematów bazy danych.

Np.

Sekcja rejestracji studentów nie ma możliwości dostępu do danych związanych z zatrudnieniem awansami i wynagrodzeniami pracownika, natomiast kwestura nie ma dostępu do danych studentów, których kształci dany pracownik.

Warstwowa struktura baz danych

0x01 graphic

DBM zawiera podprogramy, które można wykorzystać w aplikacji jako narzędzia abstrakcyjne, przekształcające polecenia wyrażane w terminach pojęciowego spojrzenia na bazę danych na terminy związane z rzeczywistą organizacją bazy.

Relacyjny Model bazy danych

Model relacyjny to model baz danych oparty na postulatach relacyjności. Twórcą teorii relacyjnych baz danych jest nieżyjący już Edgar Frank Codd. Postulaty te zostały opublikowane po raz pierwszy w „A Relational Model of Data for Large Shared Data Banks”.

0x01 graphic

Wymagania, które musi spełniać tabela.

Projektowanie relacyjne

Polega na zaprojektowaniu relacji tworzących bazę danych.

Jest to zadanie wymagające pewnego doświadczenia ponieważ jest w nim wiele subtelności, szczególnie kiedy baza podlega rozszerzeniu (rozbudowie).

Np. Jeżeli z każdym z pracowników z relacji (Tab.1) należy związać dodatkowe atrybuty:

To dołączenie tych danych do relacji (Tab.1).

Daje nową relację (Tab.2)

Tab.2

0x01 graphic

Umieszczenie dodatkowych atrybutów dało nieefektywną relację która zawiera większą liczbę krotek dla tego samego pracownika zdeterminowaną okresem zatrudnienia, ponieważ wymagane jest powtórzenie krotek z Tab.1.

Problemem rozszerzonej relacji jest również usuwanie informacji z bazy danych.

Np. Jeżeli Joe Baker, jedyny pracownik na stanowisku D7 opuści firmę i zostanie usunięty z bazy (Tab.2) to zniknie również informacja o kodzie umiejętności D2, ponieważ kod ten jest związany z Bakerem.

Można spróbować usunąć fragment krotki, jest to jednak rozwiązanie które określa, że projekt relacji nie jest spójny.

Źródło problemów to połączenie kilku pojęć w jedną relację.

Poprawę sytuacji można uzyskać poprzez podział pojedynczej relacji w zbiór kilku relacji. Występują tu dwa przypadki:

Informatyka cały czas zajmuje się badaniem właściwości relacji. Badania doprowadziły do powstania hierarchii klas relacji nazywanych postaciami normalnymi odpowiednio:

Im wyższa klasa danej relacji tym lepiej nadaje się ona do zastosowania w bazach danych.

Problem podziału relacji prześledźmy na przykładzie relacji Tab.2 wyróżniając trzy relacje pochodne:

Tab.3

0x01 graphic
Za pomocą trzech mniejszych relacji można uzyskać dowolną informację, którą można było uzyskać z jednej dużej relacji (np. można odnaleźć działy zatrudniające osobę

Operacje na relacjach

Relacyjny system baz danych udostępnia podprogramy do wykonywania operacji:

Relacja nowaSELECT from Nazwa relacji where atrybut=”warunek”

Relacja nowaPROJECT Atrybuty from Nazwa relacji

Relacja nowaJOIN Relacja A and Relacja B where warunek( relacje A,B)

Ilustracja zasady operacji „JOIN”

0x01 graphic

0x01 graphic

Wywoływanie podprogramów dokonywane jest z poziomu aplikacji za pomocą struktur syntaktycznych zgodnych ze składnią języka bazowego.

Przykłady operacji

0x01 graphic

0x01 graphic

JOIN

0x01 graphic

Kilka słów o języku SQL

SQL- Structured Query Language, opracowany i wprowadzony przez firmę IBM. Istnieje standard języka opracowany przez American National Standards Institute.

Kilka przykładów

    1. Instrukcja:

Select Nazwisko, Adres

From PRACOWNICY

Generuje listę pracowników znajdujących się w relacji PRACOWNICY

    1. Instrukcja:

Select IdPrac, Nazwisko, Adres, PESEL

From PRACOWNICY

where Nazwisko = `Cheryl H. Clark'

Daje wszystkie informacje z krotki dotyczącej pracownika Cheryl H.

3.Instrukcja:

select PRACOWNICY.Nazwisko, ZATRUDNIENIE.DataPocz

from PRACOWNICY, ZATRUDNIENIE

where PRACOWNICY.IdPrac =ZATRUDNIENIE. IdPrac

Wyprowadza listę nazwisk pracowników wraz z datami zatrudnienia. (Jest to wynik operacji JOIN na relacjach PRACOWNICY i ZATRUDNIENIE , a następnie SELECT oraz PROJECT na odpowiednich atrybutach zgodnie z klauzulami where i select.

4.Instrukcja:

insert into PRACOWNICY

values (`42Z12','Antoni K. Kowalski',' Piastowska 13',`56010298765')

Dodaje krotkę do relacji PRACOWNICY.

5. Instrukcja

delete from PRACOWNICY

where nazwisko = `Antoni K. Kowalski'

Usuwa krotkę dotyczącą Kowalskiego.

6. Instrukcja

update PRACOWNICY

set Address = `Plac Grunwaldzki 13.'

Where nazwisko = `Antoni K. Kowalski'

Zmienia adres w krotce Kowalskiego

7. Instrukcja

select IdPrac, Dział

from ZATRUDNIENIE, STANOWISKA,

where ZATRUDNIENIE. IdSTAN = STANOWISKA. IdStan

And ZATRUDNIENIE. DataZak = `*'

Generuje numery identyfikacyjne pracowników wraz z nazwami działów.

Obiektowe Bazy Danych.

Składają się z obiektów, które są powiązane ze sobą w sposób oddający zależności zachodzące między nimi.

Np.

Rozpatrywana poprzednio baza danych zawiera trzy klasy (typy obiektów):

Każdy z powyższych obiektów musi zawierać metody służące do uaktualniania i wypisywania informacji o obiekcie, metody definiujące sposób reakcji obiektu na komunikaty dotyczące jego zawartości i związków z innymi obiektami.

Uzyskanie zatem obsługi np. historii zatrudnienia pracownika nie wymaga zatem pisania zewnętrznej procedury definiującej sposób uzyskania informacji.

Połączenia między obiektami w obiektowej bazie danych utrzymuje DBMS (Database Management System).

0x01 graphic

Podczas wstawiania nowego obiektu do bazy aplikacja określa z jakimi obiektami ma zostać powiązany, a DBMS tworzy zbiór wskaźników do zapamiętania tych związków.

Ponieważ w systemie programowania obiektowego obiekty tworzone są na czas trwania obliczeń a po ich zakończeniu ulegają destrukcji co jest nie do przyjęcia dla baz danych DBMS musi zapewnić trwałą pamięć dla tworzonych obiektów.

Obiektowe bazy danych są bardziej efektywne kiedy atrybuty mają charakter audio lub wideo.

0x01 graphic

Protokół Zatwierdzania i Wycofywania

(Commit/Rollback)

Pojedyncza transakcja może zawierać wiele kroków na poziomie bazy danych.

Np. Przelew pieniędzy pomiędzy kontami bankowymi wymaga zmniejszenia salda jednego konta i zwiększenia drugiego. Występuje zatem sytuacja odcinka czasu kiedy suma funduszy się nie zgadza, występuje zatem przez ten czas niespójność bazy danych ( to samo może występować w sytuacjach rezerwacji miejsc w komunikacji lotniczej).

Sytuację może skomplikować zawieszenie systemu, czy też awaria zasilania.

Zadaniem DBMS jest zapewnienie, ze wystąpienie takich zdarzeń nie pozostawi bazy w niespójnym stanie.

Najczęściej zabezpiecza się przed tym utrzymując w nieulotnej pamięci np. na dysku twardym dziennik (log) dokumentujący czynności wykonywane przez każdą transakcję, dopiero po dokonaniu zapisu w logu, kiedy system ma zapisane informacje (punkt zatwierdzenia), można powiedzieć, że czynności wykonane przez transakcję znajdą odzwierciedlenie w bazie danych.

Projektowanie Bazy Danych.

Nie ma ustalonych reguł postępowania, wypracowane jednak zostały pewne praktyczne techniki.

Przeprowadzenie testów sporządzenie raportów dla przykładowych danych.



Wyszukiwarka

Podobne podstrony:
1 Tworzenie bazy danychid 10005 ppt
bazy danych II
Bazy danych
Podstawy Informatyki Wykład XIX Bazy danych
Bazy Danych1
eksploracja lab03, Lista sprawozdaniowych bazy danych
bazy danych druga id 81754 Nieznany (2)
bazy danych odpowiedzi
Bazy danych
notatek pl g owacki,bazy danych Nieznany
BAZY DANYCH SQL (2)
Bazy danych kolo 2 1 id 81756 Nieznany
Projekt Bazy Danych
Microsoft PowerPoint 02 srodowisko bazy danych, modele
kolokwium sklepy1, WAT, SEMESTR V, PWD, Bazy danych od maslaka

więcej podobnych podstron