Upload
trannguyet
View
225
Download
0
Embed Size (px)
Citation preview
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
Mariusz KLAPPERUniwersytet Otwarty AGH 8 marca 2014
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
Molier MIESZCZANIN SZLACHCICEM Teatr Telewizji 1969
(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.
Schemat logiczny bazy danych
Schemat funkcjonalny bazy danych
Schemat organizacyjny 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ó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
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
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
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
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.
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
Wyniki zapytania SQL
Przykładowy skrypt SQL tworzący tablicę w bazie 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
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 .
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
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
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
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.
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
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
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
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