Technologie Informacyjne Bazy danych Marek Bazan 1
Plan wykładu 1. Bazy danych definicja i podział na typy. 2. Czym są relacyjne bazy danych? 3. Formy zapytań relacyjnej bazy danych? 4. Technologie dostępu do bazy danych? 5. Bezpieczeństwo baz danych. Ochrona danych. 6. Rozproszone bazy danych, spójność danych. 2
Bazy danych - definicje Co to są dane? Dane to fakty związane z dowolnym rozważanymi obiektami. Np. imię, nazwisko, wiek ale też np. dane rejestrowe o spółce notowanej na giełdzie oraz notowania kursów akcji, zdjęcia, pliki pdf itd. Co to są bazy danych? Baza danych to narzędzia do zbierania i organizowania danych w sposób systematyczny wg określonych reguł.
Bazy danych - DBMS Co to jest system zarządzania bazą danych? Database Management System (DBMS) jest zbiorem programów, który pozwala na dostęp do danych w bazie danych oraz na ich łatwy zapis i modyfikację. DBMS zarządza również dostępem do bazy danych przez użytkowników z różnymi uprawnieniami.
Bazy danych – rodzaje baz danych Typy baz danych Hierarchiczne Rekordy są modelowane przez węzły natomiast podgałęzie węzłów reprezentują pola Relacyjne definiuje relacje w postaci tabel z kolumnami określonych typów (MS SQL, Oracle, mySQL, itd.) Obiektowe Dane zapisywane w postaci obieków wraz z metodami, które można wykonać na obiektach. (Postgress) Nierelacyjne (NoSQL) Relacja klucz-wartość (HaDoop)
Relacyjne bazy danych - definicje Czym są relacyjne bazy danych? Relacyjna baza danych to baza danych oparta o model relacyjny danych. Model ten organizuje dane w tabelki (relacje) kolumn i wierszy z kluczem unikalnym. Wiersze nazywamy rekordami a kolumny atrybutami.
Relacyjne bazy danych - składowe Każda tabela/relacja reprezentuje typ encji (np. Klient) Każdy wiersz w tabeli to instancja danego typu encji (np. Jan Nowak) Natomiast każda kolumna to atrybut instancji (np. adres)
Relacyjne bazy danych - klucze Każda tabela ma zestaw kolumn, które unikalnie identyfikują w niej wiersz – primary key. Wiersze tabeli mogą być powiązane z innymi tabelami przez wartość klucza w innej tabeli, takie klucze to klucze obce (foreign key)
Relacyjne bazy danych – związki między tabelami Związki między tabelami – są definiowane za pomocą kluczy głównych. Pomiędzy tabelami możemy mieć związki 1-1 1-wiele wiele-wiele
Relacyjne bazy danych - indeksy Indeksy – struktury przechowujące referencje do posortowanych rekordów po kluczach w celu szybszego wyszukiwania rekordów. Indeksy oparte są o takie struktury jak B-tree, R- tree, bitmapy.
Podstawowe operacje na bazie danych – Data Definition Language Tworzenie tabel Modyfikcja tabel Usuwanie tabel Usuwanie ograniczeń
Podstawowe operacje na bazie danych – Data Manipulation Language Dodawanie rekordów Usuwanie rekordów Modyfikowanie rekordów Wybieranie rekordów spełniających określony warunek
Różne formy zapytań - Query By Example (QBE) - Excel - Structured Query Language (SQL) – MS SQL Server
Podstawowe operacje na bazie danych – Data Definition Language Tworzenie tabel – CREATE TABLE CREATE TABLE table_name( column_list, PRIMARY KEY (column_sublist)) Modyfikcja tabel – ALTER TABLE ALTET TABLE table_name MODIFY column new_type Usuwanie tabel – DROP TABLE DROP TABLE table_name Usuwanie ograniczeń – DROP CONSTRAINTS DROP CONSTARAINT constraint_name
Podstawowe operacje na bazie danych – Data Manipulation Language Dodawanie rekordów INSERT INTO table_name Usuwanie rekordów DELETE FROM table_name where warunek Modyfikowanie rekordów UPDATE table_name set column = new-value where warunek Wybieranie rekordów spełniających określony warunek select columns from tables (JOINS – LEFT, RIGHT, INNER, OUTER)
Transakcje w relacyjnych bazach danych Transakcje to podstawowe pojęcie systemów baz danych. Umożliwiają współbieżny dostęp do zawartości bazy danych, dostarczając niezbędnych mechanizmów synchronizacji. Przykład: UPDATE Konta SET saldo = saldo - 100.00 WHERE klient = 'Jan Nowak'; UPDATE Konta SET saldo = saldo + 100.00 WHERE klient = 'Jan kowalski';
Metody dostępu do bazy danych - ODBC (Linux, Windows) - OLE DB (Windows) - ADO.NET (Windows)
Ochrona danych w bazach danych Bezpieczeństwo serwera baz danych to: zapewnienie stabilnego i w miarę możliwości bezawaryjnego działania serwera baz danych zapewnienie uprawnionym użytkownikom dostępu do odpowiednich baz danych ograniczenie dostępu do danych dla użytkowników nieuprawnionych
Ochrona danych w bazach danych (2) Bezpieczeństwo serwera baz danych to: zapewnienie stabilnego i w miarę możliwości bezawaryjnego działania serwera baz danych zapewnienie uprawnionym użytkownikom dostępu do odpowiednich baz danych ograniczenie dostępu do danych dla użytkowników nieuprawnionych
Ochrona danych w bazach danych (3) Uwierzytelnienie - oznacza identyfikację użytkownika na podstawie jego nazwy i hasła. Autoryzacja - jest fazą następującą po poprawnym uwierzytelnieniu i polega na określeniu uprawnień przypadających uwierzytelnionemu użytkownikowi.
Ochrona danych w bazach danych (3) Poziomy bezpieczeństwa bezpieczeństwo fizyczne danych bezpieczeństwo sieci bezpieczeństwo domeny bezpieczeństwo maszyny lokalnej bezpieczeństwo serwera baz danych bezpieczeństwo bazy danych bezpieczeństwo aplikacji bazodanowej
Ochrona danych w bazach danych (4) Bezpieczeństwo fizyczne danych Poziom bezpieczeństwa fizycznego danych określa, czy w przypadku awarii sprzętu, katastrofy (jako katastrofę rozumiemy nie tylko czynniki naturalne, jak np. powodzie, lecz także kradzieże i inne wpływy czynnika ludzkiego) lub fizycznego uszkodzenia plików danych jesteśmy w stanie odtworzyć dane i jak długo baza danych (lub serwer baz danych) będzie niedostępny dla użytkowników. (math.uni.lodz.pl/~bleja/asb/ITA- 101-Modul_10_v2.pdf)
Ochrona danych w bazach danych (5) Bezpieczeństwo aplikacji bazodanowej Piętą achillesową jest GUI. Szczególnie chodzi tu o umożliwienie przez błędy w aplikacji użytkownikom oddziaływania na serwer baz danych lub nawet na system operacyjny serwera z poziomu aplikacji klienckiej.
Rozproszone bazy danych – reguły Date'a (1995) 1. Lokalna autonomia 2. Uniezależnienie od centralnego miejsca 3. Działanie ciągłe 4. Niezależność lokalizacji 5. Niezależność fragmentacji 6. Replikacja / redundancja 7. Niezależność sprzętowa
Rozproszone bazy danych – reguły Date'a (2) 8. Niezależność od systemu operacyjnego 9. Niezależność od systemu zarządzania bazą danych 10.Niezależność od sieci 11.Rozproszone zarządzanie transakcjami 12.Rozproszone przetwarzanie zapytań
Rozproszone bazy danych – reguły Date'a (2) Na podstawie: http://wazniak.mimuw.edu.pl/images/2/26/ZSBD-2st-1.2- w01.tresc-1.1.pdf
Dziękuję za uwagę ...