37
Uniwersytet Otwarty AGH 8 marca 2014 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 Mariusz KLPPER

Co warto wiedzieć o bazach danych

Embed Size (px)

Citation preview

Page 1: Co warto wiedzieć o bazach danych

Uniwersytet Otwarty AGH 8 marca 2014

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

Mariusz KLPPER

Page 2: Co warto wiedzieć o bazach danych

Mariusz KLAPPERUniwersytet Otwarty AGH 8 marca 2014

Co warto wiedzieć

o bazach danych

Page 3: Co warto wiedzieć o bazach danych

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

Page 4: Co warto wiedzieć o bazach danych

Molier MIESZCZANIN SZLACHCICEM Teatr Telewizji 1969

Page 5: Co warto wiedzieć o bazach danych

(Definicja według Wikipedii)

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.

Page 6: Co warto wiedzieć o bazach danych

Schemat logiczny bazy danych

Page 7: Co warto wiedzieć o bazach danych

Schemat funkcjonalny bazy danych

Page 8: Co warto wiedzieć o bazach danych

Schemat organizacyjny bazy danych

Page 9: Co warto wiedzieć o bazach 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ówZasady ochrony danych w bazie określają uprawnienia oraz warunki dostępu i obsługi danych dla użytkowników bazy danych

Elementy składowe bazy danych

Page 10: Co warto wiedzieć o bazach danych

INFORMIX Microsoft SQL ServerORACLEDbaseNovell BtrieveMySQLFirebirdMicrosoft AccessCechy serwera lokalnej bazy danych ma także Microsoft ExcelSerwer bazy danych jest oprogramowaniem narzędziowym i musi być wcześniej zainstalowany na komputerze, który ma obsługiwać bazę danych

Niektóre popularne serwery baz danych

Page 11: Co warto wiedzieć o bazach danych

Przykład serwera bazy danych Firebird zainstalowanego na komputerze z systemem Windows

Page 12: Co warto wiedzieć o bazach danych

Serwer bazy danych Firebird jako proces w systemie Windows

Page 13: Co warto wiedzieć o bazach danych

Fizyczne pliki baz danych Firebird na dysku

Page 14: Co warto wiedzieć o bazach danych

Przykład grupy baz danych na serwerze Firebird

Page 15: Co warto wiedzieć o bazach danych

Zawartość bazy danych w przykładowej grupie

Page 16: Co warto wiedzieć o bazach danych

Tablice bazy danych w przykładowej grupie

Page 17: Co warto wiedzieć o bazach danych

Pola wybranej tablicy w przykładowej bazie danych

Page 18: Co warto wiedzieć o bazach danych

Indeksowanie baz danych

Page 19: Co warto wiedzieć o bazach danych

Przykład indeksacji danych w bazie

Page 20: Co warto wiedzieć o bazach danych

Indeksy tablicy w przykładowej bazie danych

Page 21: Co warto wiedzieć o bazach 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 danychJę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.

Komunikacja użytkownika z bazą danych

Page 22: Co warto wiedzieć o bazach danych

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.

Page 23: Co warto wiedzieć o bazach danych

select INOD_MIEJSC, INOD_ULICA, INOD_NAZWA from INDEKS_KONTRAH where Upper(INOD_MIEJSC) like %KRA%order by INOD_MIEJSC, INOD_ULICA, INOD_NAZWIS

Przykład zapytania do bazy danych w języku SQL

Page 24: Co warto wiedzieć o bazach danych

Wyniki zapytania SQL

Page 25: Co warto wiedzieć o bazach danych

Przykładowy skrypt SQL tworzący tablicę w bazie danych

Page 26: Co warto wiedzieć o bazach 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

Trygery i procedury wbudowane w bazę danych

Page 27: Co warto wiedzieć o bazach danych

Przykładowy tryger bazy danych

Page 28: Co warto wiedzieć o bazach danych

Przykładowa procedura wbudowana bazy danych

Page 29: Co warto wiedzieć o bazach 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 .

Page 30: Co warto wiedzieć o bazach danych

Ilość 32

Pobranie 10

Zapis 22

Ilość 32

Pobranie 15

Zapis 17

Było 32

Pobrano 25

Zapisane jest 17

Użytkownik A Użytkownik B

Wynik w bazie danych

Przykład utraty integralności danych w bazie

Page 31: Co warto wiedzieć o bazach danych

Ilość 32

Pobranie 10

Zapis 22

Ilość 22

Pobranie 15

Zapis 7

Było 32

Pobrano 25

Zapisane jest 7

Użytkownik A Użytkownik B

Wynik w bazie danych

Start transakcji

Czekaj

Koniec transakcji

Czekaj

Start transakcji

Koniec transakcji

Schemat działania transakcji w bazie danych

Page 32: Co warto wiedzieć o bazach danych

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 transakcjiTransakcja 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 danychRealizowanie transakcji obciąża serwer bazy danych i zwalnia procedury korzystania z bazy danychBłędne wykonanie transakcji może uszkodzić bazę danych, lub zablokować niektóre jej zasobyAdministrator bazy danych posiada na ogół narzędzia umożliwiające usunięcie z bazy skutków błędnych transakcji.

Najważniejsze uwarunkowania transakcji

Page 33: Co warto wiedzieć o bazach danych

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.

Page 34: Co warto wiedzieć o bazach danych

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 danychWszystkie 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

Ochrona dostępu do danych w bazie

Page 35: Co warto wiedzieć o bazach danych

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ępczeSposoby 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

Zabezpieczanie bazy danych przed skutkami awarii

Page 36: Co warto wiedzieć o bazach danych

GOOGLEYouTubeePuaPPłatnik ZUSStrona www „Skład Osobowy AGH”Książka adresowa telefonu komórkowegoStruktury bazodanowe można napotkać na wielu witrynach Internetowych w związku z opcją „Szukaj”

Niektóre znane aplikacje mające cechy serwerów bazy danych

Page 37: Co warto wiedzieć o bazach danych

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

Uniwersytet Otwarty AGH 8 marca 2014

Krzysztof Kowalski „Eros i kostucha” LSW Warszawa 1990 str 276

Mariusz KLAPPER

Zapraszam 29 marca 2014 rokuna rozmowę o systemie ANDROID