Transcript Slajd 1

Spójrzmy przez okno: oto nasz świat. Pędzimy życie skrzętne, zapobiegliwe, staramy
się żyć dostatniej, mieć więcej. [...] Wszyscy na swój sposób zapewniamy możliwie
najlepsze warunki rozwoju i życia naszym dzieciom, wnukom. [...] Burzymy stare
struktury społeczne i ekonomiczne, budujemy w ich miejsce nowe, nie oparte na
tradycji, lecz na współczesnych pomysłach i poglądach. [...] Czy potrafimy - tacy, jacy
jesteśmy - zrozumieć ludzi z minionych epok, którzy wyznawali inna zasadę świata
[...]? Byli mieszkańcami profanum, [...] i z obszaru profanum tęsknie spoglądali w
kierunku sacrum. Czy możemy to zrozumieć my, którzy sami przebywamy w sacrum,
gdzie wdarliśmy się po śmierci bogów?
Czy zauważyliśmy, odurzeni pozycją, jaką zajmujemy w kosmosie, jaką sami sobie
przyznaliśmy, że już przed ponad stu laty narodzili się dwaj bożkowie, a może tylko
demony - Interes i Wydajność? Za jakiś czas zechcą zająć miejsce opustoszałe po
prawdziwych wielkich bogach archaicznych. Jaka wówczas będzie pozycja człowieka?
Krzysztof Kowalski „Eros i kostucha” LSW Warszawa 1990 str. 276
Uniwersytet Otwarty AGH 8 marca 2014
Mariusz KLPPER
Co warto wiedzieć
o bazach danych
Uniwersytet Otwarty AGH 8 marca 2014
Mariusz KLAPPER
We współczesnej cywilizacji informatycznej
bazy danych stały się jednymi z najczęściej
spotykanych i wykorzystywanych struktur oraz
obiektów służących do przechowywania i
szybkiego wyszukiwania informacji. Występują
one zarówno jako ogromne zasoby o zasięgu
globalnym, jak i niewielkie lokalne obiekty
indywidualne. Mamy z nimi do czynienia w
wielu urządzeniach codziennego użytku, często
nie zdając sobie z tego w ogóle sprawy
Molier MIESZCZANIN SZLACHCICEM Teatr Telewizji 1969
Baza danych jest to zbiór danych zapisanych zgodnie z
określonymi regułami. W węższym znaczeniu obejmuje dane
cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego
programu komputerowego specjalizowanego do gromadzenia i
przetwarzania tych danych. Program taki (często pakiet
programów) nazywany jest „systemem zarządzania bazą
danych” (ang. database management system, DBMS).
Programy do obsługi bazy danych operują głównie na danych
tekstowych i liczbowych, lecz większość współczesnych
systemów umożliwia przechowywanie danych cyfrowych
różnego typu: dane o nieokreślonej strukturze, grafika, muzyka,
obiekty itp.
(Definicja według Wikipedii)
Schemat logiczny bazy danych
Schemat funkcjonalny bazy danych
Schemat organizacyjny bazy danych
Elementy składowe bazy danych
Serwer bazy danych to oprogramowanie obsługujące bazę danych
na określonym sprzęcie i systemie operacyjnym. Serwer może
obsługiwać kilka baz danych równocześnie.
Baza danych to uporządkowana kolekcja przechowująca dane
zapisane w postaci tablic, indeksów i procedur pomocniczych.
Tablica przechowuje w bazie danych informacje jednorodne
merytorycznie (ma jednolitą zawartość danych).
Indeksy definiują sposób porządkowania i dostępu do danych a
tablicach.
Procedury pomocnicze to fragmenty oprogramowania służące do
realizowania specyficznych operacji związanych ze strukturą
danych oraz obsługą baz danych przez użytkowników
Zasady ochrony danych w bazie określają uprawnienia oraz
warunki dostępu i obsługi danych dla użytkowników bazy danych
Niektóre popularne serwery baz danych
INFORMIX
Microsoft SQL Server
ORACLE
Dbase
Novell Btrieve
MySQL
Firebird
Microsoft Access
Cechy serwera lokalnej bazy danych ma także Microsoft
Excel
Serwer bazy danych jest oprogramowaniem
narzędziowym i musi być wcześniej zainstalowany na
komputerze, który ma obsługiwać bazę danych
Przykład serwera bazy danych Firebird
zainstalowanego na komputerze z systemem Windows
Serwer bazy danych Firebird jako proces w systemie Windows
Fizyczne pliki baz danych Firebird na dysku
Przykład grupy baz danych na serwerze Firebird
Zawartość bazy danych w przykładowej grupie
Tablice bazy danych w przykładowej grupie
Pola wybranej tablicy w przykładowej bazie danych
Indeksowanie baz danych
Przykład indeksacji danych w bazie
Indeksy tablicy w przykładowej bazie danych
Komunikacja użytkownika z bazą danych
Język zapytań SQL (Structured Query Language) to uniwersalny
język programowania umożliwiający administratorom i
użytkownikom komunikację i obsługę baz danych.
Serwer języka SQL jest częścią oprogramowania serwera baz
danych wbudowaną w pakiet obsługi baz danych
Język SQL ma znormalizowaną syntaktykę, ale jest wiele jego
dialektów dla różnych serwerów SQL. SQL umożliwia operowanie
na bazie danych (redagowanie jej zasobów) oraz uzyskiwanie
informacji z bazy danych przy pomocy zapytań.
Skrypty SQL to sekwencje zapisów języka SQL wysyłane przez
aplikacje użytkowe do serwera SQL, który zamienia je na operacje
bezpośrednio wykonywane na danych i/lub strukturach w bazie.
Serwer SQL jest więc interpreterem zapytań i poleceń języka SQL.
Podstawowe grupy poleceń języka SQL
Zapytania i polecenia języka SQL są nazywane skryptami SQL
Zawsze dotyczą one konkretnej tablicy w bazie danych, lub
struktury całej bazy. Przy pomocy skryptów SQL można także
tworzyć, modyfikować i kasować tablice oraz inne obiekty w
bazie danych. W niektórych wersjach SQL przy pomocy
skryptów SQL można także tworzyć i kasować całe bazy danych.
Przykład zapytania do bazy danych w języku SQL
select INOD_MIEJSC, INOD_ULICA, INOD_NAZWA
from INDEKS_KONTRAH
where Upper(INOD_MIEJSC) like %KRA%
order by INOD_MIEJSC, INOD_ULICA, INOD_NAZWIS
Wyniki zapytania SQL
Przykładowy skrypt SQL tworzący tablicę w bazie danych
Trygery i procedury wbudowane w bazę danych
Trygery (wyzwalacz) to wbudowana w strukturę bazy danych
procedura napisana w języku SQL, która jest wykonywana
automatycznie jako reakcja na pewne zdarzenia w tabeli bazy
danych. Wyzwalacze mogą np. ograniczać dostęp do pewnych
danych, rejestrować zmiany danych, nadzorować modyfikacje
danych lub wykonywać akcje związane ze zmianami w tabeli
Procedura wbudowana jest to napisana w języku SQL sekwencja
programu, która jest wbudowana w strukturę bazy danych i
może być używana przez użytkownika bazy poprzez wywołanie
jej skryptem SQL. Pozwala to na zmniejszenie liczby kroków
wymiany danych pomiędzy użytkownikiem a bazą danych.
Ułatwia ona i ujednolica operowanie bazą, przyczynia się do
wzrostu wydajności systemu zarządzania bazą danych, oraz
pozwala wprowadzić wygodną i przejrzystą komunikację
pomiędzy bazą danych a użytkownikiem
Przykładowy tryger bazy danych
Przykładowa procedura wbudowana bazy danych
Transakcje w bazie danych
Z bazy danych zazwyczaj równocześnie korzysta wielu użytkowników. Każdy z nich
(zależnie od posiadanych uprawnień) może wyszukiwać oraz/albo aktualizować
informacje w bazie danych. System zarządzania bazą danych musi zapewnić z
jednej strony możliwość sprawnego korzystania z bazy przez użytkowników, jak też
zabezpieczenie poprawności i integralności danych w bazie. Dodatkowo system
zarządzania bazą danych musi zabezpieczyć bazę przed skutkami ewentualnych
awarii technicznych lub funkcjonalnych .
Przykład utraty integralności danych w bazie
Użytkownik A
Użytkownik B
Ilość 32
Ilość 32
Wynik w
bazie danych
Było 32
Pobranie 10
Pobranie 15
Pobrano 25
Zapis 22
Zapis 17
Zapisane jest 17
Schemat działania transakcji w bazie danych
Użytkownik A
Użytkownik B
Ilość 32
Start transakcji
Pobranie 10
Zapis 22
Koniec transakcji
Czekaj
Czekaj
Ilość 22
Start transakcji
Wynik w
bazie danych
Było 32
Pobrano 25
Pobranie 15
Zapisane jest 7
Zapis 7
Koniec transakcji
Najważniejsze uwarunkowania transakcji
Zarówno rozpoczęcie, jak i zakończenie transakcji jest inicjowane
działaniem użytkownika. Podczas trwania transakcji dane używane w
jej trakcie nie są zmieniane w bazie danych. Informacje o kolejnych
krokach transakcji są pamiętane w bazie danych. Dane rzeczywiste w
bazie są zmieniane dopiero po zakończeniu transakcji
Transakcja może być w dowolnym momencie przerwana przez
użytkownika lub przyczyny zewnętrzne. Wtedy skutki transakcji są
usuwane z bazy danych i żadne dane w bazie nie są zmieniane.
Transakcja może być złożona, może obejmować wiele kroków
procedury i wiele różnych zasobów bazy danych
Realizowanie transakcji obciąża serwer bazy danych i zwalnia
procedury korzystania z bazy danych
Błędne wykonanie transakcji może uszkodzić bazę danych, lub
zablokować niektóre jej zasoby
Administrator bazy danych posiada na ogół narzędzia umożliwiające
usunięcie z bazy skutków błędnych transakcji.
Zakleszczenie bazy danych (deadlock)
Wprowadzenie transakcyjności w bazie danych stwarza ryzyko powstania tak
zwanego zakleszczenia. Występuje ono wtedy, kiedy dwa niezależne procesy
wykonywane w bazie danych żądają wzajemnego dostępu do danych
zablokowanych wcześniej w rama transakcji każdego z procesów. Obydwa procesy
pozostają wtedy w trwałym stanie oczekiwania, niemożliwym do usunięcia, gdyż
żaden proces nie może się uaktywnić bez zwolnienia zasobu innego procesu, a inny
proces nie może zwolnić zasobu, gdyż także jest w stanie oczekiwania na dostęp do
zasobów drugiego procesu czekającego. Taki stan powoduje trwałe zawieszenie
pracy obu procesów i zawieszenie współpracy ich użytkonwików z bazą danych.
Zjawisko zakleszczania jest bardzo trudno wyeliminować, nie ma także sprawnych i
niezawodnych metod wykrywania go.
Ochrona dostępu do danych w bazie
Zasadą jest chronienie dostępu do danych w bazie przy pomocy
identyfikatorów użytkownika i haseł dostępu. Ochrona może być
realizowana na różnych poziomach: całej bazy danych,
poszczególnych tablic w bazie, a nawet określonych pól w
tablicach.
Ochroną danych w bazach zarządzają specjalni pracownicy
nazywani administratorami bazy danych
Wszystkie profesjonalne serwery baz danych mają bardzo
bogate narzędzia administracyjne dla ochrony danych w bazie.
Niezależnie od tego ochronę danych realizuję się także na
poziomie oprogramowania użytkowego.
Ochrona przed nieuprawnionym dostępem do informacji
przechowywanych w bazach danych jest obecnie jednym z
najpoważniejszych problemów cywilizacji informacyjnej
Zabezpieczanie bazy danych przed skutkami awarii
Możliwe przyczyny uszkodzenia bazy danych:
= techniczne awarie sprzętu
= awarie oprogramowania serwera bazy danych
= błędy w oprogramowaniu użytkowym dla bazy danych
= nieprawidłowe obsługiwanie bazy danych
= błędne działania użytkowników bazy danych
= przyczyny losowe związane z pracą współbieżną użytkowników
= zdeterminowane działania przestępcze
Sposoby zabezpieczania i rekonstrukcji bazy danych:
= kopiowanie awaryjne bazy danych
= równoległa praca z dwoma kopiami bazy danych
= narzędzia i procedury administratora bazy
= staranna i skuteczna ochrona dostępu do bazy danych
= okresowa weryfikacja integralności bazy danych
= weryfikacja i testowanie oprogramowania użytkowego
= tworzenie zapisów archiwalnych na innych nośnikach danych
Niektóre znane aplikacje mające cechy
serwerów bazy danych
GOOGLE
YouTube
ePuaP
Płatnik ZUS
Strona www „Skład Osobowy AGH”
Książka adresowa telefonu komórkowego
Struktury bazodanowe można napotkać na wielu
witrynach Internetowych w związku z opcją „Szukaj”
Spójrzmy przez okno: oto nasz świat. Pędzimy życie skrzętne, zapobiegliwe, staramy
się żyć dostatniej, mieć więcej. [...] Wszyscy na swój sposób zapewniamy możliwie
najlepsze warunki rozwoju i życia naszym dzieciom, wnukom. [...] Burzymy stare
struktury społeczne i ekonomiczne, budujemy w ich miejsce nowe, nie oparte na
tradycji, lecz na współczesnych pomysłach i poglądach. [...] Czy potrafimy - tacy, jacy
jesteśmy - zrozumieć ludzi z minionych epok, którzy wyznawali inna zasadę świata
[...]? Byli mieszkańcami profanum, [...] i z obszaru profanum tęsknie spoglądali w
kierunku sacrum. Czy możemy to zrozumieć my, którzy sami przebywamy w sacrum,
gdzie wdarliśmy się po śmierci bogów?
Czy zauważyliśmy, odurzeni pozycją, jaką zajmujemy w kosmosie, jaką sami sobie
przyznaliśmy, że już przed ponad stu laty narodzili się dwaj bożkowie, a może tylko
demony - Interes i Wydajność? Za jakiś czas zechcą zająć miejsce opustoszałe po
prawdziwych wielkich bogach archaicznych. Jaka wówczas będzie pozycja człowieka?
DZIĘKUJĘ
ZA SPOTKANIE
Krzysztof Kowalski „Eros i kostucha” LSW Warszawa 1990 str 276
Zapraszam 29 marca 2014 roku
na rozmowę o systemie ANDROID
Uniwersytet Otwarty AGH 8 marca 2014
Mariusz KLAPPER