BAZY DANYCH
Baza danych (database) – magazyn danych – informacji powiązanych tematycznie, umożliwiający ich wyszukiwanie według zadanych kryteriów
Baza danych składa się z jednej lub wielu tabel.
Tabela (table) – dwuwymiarowa struktura przechowująca dane dotyczące określonego tematu
Kwerenda - (z ang. Query) - inaczej zapytanie do bazy danych. Istnieje wiele rodzajów zapytań, m.in: kwerendy wybierające, aktualizujące, usuwające, dołączające, krzyżowe, tworzące tabele etc. Np. kwerenda wybierająca może dla nas znaleźć w bazie wszystkich ludzi o danym nazwisku.
SQL - jest akronimem pochodzącym od Structured Query Language (strukturalny język zapytań kierowanych do bazy danych). Jest to język opracowany przez firmę IBM w celu współpracy z relacyjnymi bazami danych. SQL stał się standardem w komunikacji z relacyjnymi bazami danych. Dziś SQL-a spotkamy najczęściej w trzech systemach zarządzania bazami: MySQL firmy Oracle, PostgreSQL opracowany na uniwersytecie w Berkeley oraz FireBird korporacji Borland.
Formularz - służy do wygodnego wprowadzania, edytowania i usuwania danych w tabeli. Wymienione operacje wykonuje się za pomocą okna w którym użytkownik obsługuje pola. Znaczenie pól opisane jest za pomocą etykiet, można też wprowadzić mechanizmy wykrywania poprawności wypełnienia formularza (tzw. walidacja poprawności danych)
Raport - to informacje wyjęte z bazy danych, sformatowane i poukładane w czytelny dla odbiorcy sposób, tak aby można było je przedstawić np. na wydruku
Procedura - Procedurą nazywamy serię poleceń zapisaną w języku programowania baz danych, służącą do wykonywania obsługi na elementach bazy: tabelach, formularzach, raportach, kwerendach.
Sortowanie - Sortowaniem rekordów nazywamy ich porządkowanie według jakiegoś kryterium. Kryterium to nazwa lub nazwy pól według których odbywa się sortowanie.
Przykładowo może być to sortowanie rosnące (sortuje wartości w porządku rosnącym (od A do Z, albo od 0 do 9) lub sortowanie malejące (sortuje wartości w porządku malejącym od Z do A, od 9 do 0)
TYPY DANYCH - W każdej kolumnie tabeli w bazie przechowane są dane jednakowego typu. Systemy zarządzania bazami danych oferują wiele typów danych, m.in.:
Typ |
Rozmiar |
Opis |
CHAR[x] |
x bajtów |
Pole przechowujące od 0 do max. 255 znaków |
VARCHAR[x] |
Długość łańcucha x + 1 bajt |
Pole tekstowe o zmiennej długości |
TEXT |
Długość łańcucha + 2 bajty |
Łańcuch o maksymalnej długości 65535 znaków |
LONGTEXT |
Długość łańcucha + 4 bajty |
Łańcuch o maksymalnej długości 4294967295 znaków |
INT |
4 bajty |
Liczby z zakresu od -2147483648 do 2147483647 |
FLOAT |
4 bajty |
Liczba rzeczywista, zmiennoprzecinkowa |
DATE |
3 bajty |
Data w formacie YYYY-MM-DD |
TIME |
3 bajty |
Data w formacie HH:MM:SS |
NULL - jeśli dana wartość nie jest znana lub nie ma jej w ogóle, to mówimy, że jest to warość NULL (to nie to samo co 0 lub znak spacji).
Funkcje bazy danych
Funkcje zależne od użytkownika:
Funkcje zależne od oprogramowania:
Typy baz danych
Najczęściej spotykane typy baz danych
Baza danych flat file
Baza typu „płaskiego” (flat file) –wszystkie dane w pojedynczej tabeli.
•Dane są umieszczane w rekordach o określonej strukturze, z polami o z góry określonej długości i typie
•Każdy rekord ma tą samą długość
•Rekordy nie muszą być posortowane
•Trudne wyszukiwanie –aby odszukać rekord trzeba przeszukać cały plik (struktura nieoptymalna)
Zastosowanie np. baza płyt CD/DVD:
Relacyjne bazy danych
Relacyjna baza danych -zbiór danych zawartych w wielu tabelach połączonych ze sobą relacjami (związkami) –jedna tabela dla każdego typu informacji
Klucze tabeli
Klucz podstawowy (ang. primary key) zwany też kluczem głównym to jedno lub więcej pól, których wartość jednoznacznie identyfikuje każdy rekord w tabeli. Taka cecha klucza nazywana jest unikatowością.
Najważniejsze typy klucza podstawowego:
•klucze podstawowe jednopolowe
•klucze podstawowe wielopolowe – gdy żadne z pól nie gwarantuje, że wartości w nim zawartych będą unikatowe
•klucze typu „autonumeracja” – licznik zwiększany automatycznie przy dodawaniu nowego rekordu
Indeksowanie tabeli
Pole indeksowane –przyspiesza wyszukiwanie i sortowanie tabeli wg. indeksowanego pola
•klucz podstawowy jest zawsze indeksowany
•niektóre pola nie mogą być indeksowane z uwagi na typ pola
•indeksy przyspieszają wyszukiwanie, ale mogą też powodować spowolnienie aktualizacji dużych rekordów
•nie należy stosować indeksu, jeśli indeksowane pola nie są używane do wyszukiwania, sortowania lub sprzężenia
•usunięcie indeksu nie powoduje usunięcia pola ani danych wprowadzonych w polu
Pola unikalne i niepuste
Pola unikatowe (unique):
Pola niepuste (not null)
Relacje opisują sposób powiązania informacji zawartych w wielu tabelach.
Relacja –związek ustanowiony pomiędzy wspólnymi polami (kolumnami) w dwóch tabelach
Relacja działa poprzez dopasowanie danych w polach kluczowych —zwykle są to pola o tej samej nazwie w obu tabelach. W większości przypadków dopasowywane pola to klucz podstawowy z jednej tabeli, który dostarcza unikatowego identyfikatora dla każdego rekordu, oraz klucz obcy w drugiej tabeli.
Klucz obcy
Klucz obcy (foreign key) –jedno lub kilka pól (kolumn) tabeli, które odwołują się do pola lub pól klucza podstawowego w innej tabeli.
Klucz obcy wskazuje sposób powiązania tabel relacjami
Relacja „jeden do wielu”
Relacja pomiędzy tabelami „jeden do wielu” (one-to-many):
Przykład:
•do jednego wykonawcy przypisanych jest wiele płyt CD
•każda płyta CD ma tylko jednego autora
Relacja „wiele do wielu”
Relacja pomiędzy tabelami „wiele do wielu” (many-to-many)
•Rekord w tabeli A może mieć wiele dopasowanych do niego rekordów z tabeli B i tak samo rekord w tabeli B może mieć wiele dopasowanych do niego rekordów z tabeli A.
•Jest to możliwe tylko przez zdefiniowanie trzeciej tabeli (nazywanej tabelą łącza), której klucz podstawowy składa się z dwóch pól —kluczy obcych z tabel A i B.
•Relacja wiele-do-wielujest w istocie dwiema relacjami jeden-do-wieluz trzecią tabelą.
Relacja „jeden do jednego”
Relacja pomiędzy tabelami „jeden do jednego” (one-to-one)
•W relacji jeden-do-jednegokażdy rekord w tabeli A może mieć tylko jeden dopasowany rekord z tabeli B, i tak samo każdy rekord w tabeli B może mieć tylko jeden dopasowany rekord z tabeli A.
•Ten typ relacji spotyka się rzadko, ponieważ większość informacji powiązanych w ten sposób byłoby zawartych w jednej tabeli. Relacji jeden-do-jednegomożna używać do podziału tabeli z wieloma polami, do odizolowania długiej tabeli ze względów bezpieczeństwa, albo do przechowania informacji odnoszącej się tylko do podzbioru tabeli głównej.
Etapy projektowania relacyjnej bazy danych
Etap 1 –Określenie celu, jakiemu ma służyć baza danych:
•jakich informacji ma dostarczyć baza danych
•jakie zagadnienia będą analizowane w bazie (tabele)
•jakie informacje mają określać każde zagadnienie (pola w tabelach)
•konsultacja z przyszłymi użytkownikami bazy danych
•naszkicować wzory raportów, które powinna wytwarzać
•zgromadzić formularze do wpisywania danych, które są używane obecnie
•zapoznać się z działaniem dobrze zaprojektowanych baz danych, podobnych do tej, która ma być utworzona
Etap 2 –Określenie tabel, które są potrzebne w bazie danych:
•tabela nie powinna zawierać powtarzających się informacji, a informacje nie powinny powtarzać się w różnych tabelach –dane wystarczy aktualizować w jednym miejscu
•każda tabela powinna zawierać informacje tylko na jeden temat –dane na temat jednego zagadnienia można przetwarzać niezależnie od danych dotyczących innych zagadnień
Etap 3 –Określenie pól, które są potrzebne w tabelach:
•należy powiązać każde pole bezpośrednio z zagadnieniem, którego dotyczy tabela
•nie należy wprowadzać danych pośrednich lub obliczonych (danych, które są wynikiem wyrażenia)
•należy uwzględnić wszystkie potrzebne informacje
•informacje należy przechowywać w możliwie najmniejszych jednostkach logicznych (na przykład Imię oraz Nazwisko, a nie Dane personalne)
Etap 4 –Przypisanie polom jednoznacznych wartości w każdym rekordzie
•Aby program bazy danych mógł powiązać informacje przechowywane w różnych tabelach, każda tabela w bazie danych musi zawierać pole lub zbiór pól, które jednoznacznie określają każdy rekord. Takie pole lub zbiór pól nazywany jest kluczem podstawowym.
•Klucz podstawowy (primarykey) –jedno lub więcej pól, których wartości w sposób jednoznaczny identyfikują dany rekord w tabeli. Klucz podstawowy nie może być pusty (NULL) i zawsze musi mieć indeks unikatowy
Etap 5 –Określenie relacji między tabelami
•Po podzieleniu danych na tabele i zdefiniowaniu pól kluczy podstawowych trzeba określić sposób poprawnego łączenia powiązanych danych w logiczną całość.
•W tym celu definiuje się relacje między tabelami w bazie danych.
Etap 6 –Wprowadzenie danych i utworzenie innych obiektów bazy danych
Zakończenie etapu projektowego:
Po zakończeniu etapu projektowego należy:
Etap 7 –Testowanie i udoskonalanie bazy danych
•praktyczna weryfikacja projektu
•sprawdzenie poprawności wyników zapytań
•testowanie szybkości działania bazy
•optymalizacja i reorganizacja bazy, ew. poprawa projektu i utworzenie bazy od nowa
•testowanie z udziałem użytkowników bazy –serwis
Optymalne projektowanie tabel
Optymalizacja tabel pod kątem ich wydajności
•Należy projektować tabele bez danych nadmiarowych
•Należy wybierać odpowiednie typy danych dla każdego z pól. Podczas definiowania danego pola, należy wybrać typ danych wymagający możliwie najmniej pamięci i odpowiedni dla danych przechowywanych w polu
•Należy tworzyć indeksy dla pól, które są sortowane, sprzęgane lub dla których ustawiane są kryteria
•Zbyt duża liczba indeksów spowalnia działanie bazy
Wybór typu pola
Przy podejmowaniu decyzji, jakiego typu danych użyć w polu tabeli, należy uwzględnić następujące czynniki:
•Jakie wartości będą dozwolone dla pola?
•Ile miejsca będą mogły zajmować dane przechowywane w polu?
•Jakie operacje będą wykonywane na wartościach w polu?
•Czy wartości w polu będą sortowane lub indeksowane?
•Czy pole będzie używane do grupowania rekordów w kwerendach lub raportach?
•W jaki sposób wartości pola będą sortowane?
System zarządzania bazą danych SZBD
System Zarządzania Bazą Danych (SZBD, ang. DBMS) – uniwersalny system programowy, umożliwiający tworzenie, obsługę i ochronę baz danych w różnych zastosowaniach, inaczej mówiąc to zbiór komponentów służących do definiowania, konstruowania i modyfikowania bazy danych.
SZRBD – system zarządzania relacyjną bazą danych, przechowuje również związki między danymi
Budowa SZRDB:
•interfejs aplikacji –komunikacja użytkownika z bazą
•interpreter SQL –tłumaczenie języka SQL na kod wewnętrzny
•moduł dostępu do danych
•baza danych –fizyczne pliki z danymi
Zadania SZBD
•Realizuje procedury niskiego poziomu, które pozwalają utrzymać dane w określonej postaci
•Przeprowadza wszelkie operacje odczytu i zapisu z/do plików lub urządzeń o bezpośrednim dostępie na serwerze bazy danych
•Zapewnia mechanizmy szybkiego dostępu do danych
•Zmniejsza lub wyklucza konieczność przechowywania nadmiarowych danych
•Optymalizuje sposób przechowywania danych
•Zapewnia integralność i spójność danych
Zalety SZBD
•optymalne zarządzanie złożonymi, relacyjnymi danymi
•dostęp do danych niezależny od oprogramowania i sprzętu
•pozwala na wykonywanie wielu jednoczesnych operacji na danych przez wielu użytkowników
•szybsze wyszukiwanie danych
•bezpieczeństwo danych (autoryzacja dostępu)
•usługi zarządzania bazą
•korzystanie z gotowego oprogramowania
Kiedy warto stosować SZBD?
•duża ilość danych
•jednoczesny dostęp wielu użytkowników
•istnieją powiązania pomiędzy danymi
•więcej niż jeden rodzaj rekordu
•ograniczenia danych (np. długość pola)
•potrzeba uzyskiwania raportów z danych
•potrzeba szybkiego wyszukiwania danych wg złożonych kryteriów
•potrzeba łatwego dodawania, usuwania i modyfikowania danych
Ogólna struktura zabezpieczeń systemów informatycznych:
I. Zagrożenia dla baz danych:
1) Zagrożenia wynikające z umyślnego działania nieuprawnionych użytkowników.
a) nieuprawniony odczyt,
b) nieuprawniony i niepoprawny zapis / modyfikacja,
2) Zagrożenia wynikające z błędów (użytkowników, oprogramowania i sprzętu) i zdarzeń losowych:
a) pomyłki użytkowników przy wprowadzaniu i aktualizacji danych,
b) niepoprawna modyfikacja wynikająca z niekontrolowanego współbieżnego dostępu do danych,
c) niepoprawna modyfikacja wynikająca z błędów programów i awarii systemu,
d) zniszczenie danych przy poważnych awariach sprzętu,
II. Kierunki przeciwdziałania zagrożeniom:
1) Polityka bezpieczeństwa w systemach baz danych:
a) kontrola dostępu,
b) monitorowanie b.d.,
c) szyfrowanie w b.d.,
2) Ochrona integralności baz danych:
a) Integralność semantyczna: - ograniczenia dziedzin atrybutów, - więzy referencyjne,
b) Integralność transakcyjna: - mechanizmy blokad, - prowadzenie dziennika transakcji.
Kontrola dostępu do baz danych:
Kontrola dostępu w języku SQL (DCL - Data Control Language)
Monitorowanie baz danych – instrukcja AUDIT:
Szyfrowanie w bazach danych: