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

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


Bezpieczeństwo BD

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.

2) Zagrożenia wynikające z błędów (użytkowników, oprogramowania i sprzętu) i zdarzeń losowych:

II. Kierunki przeciwdziałania zagrożeniom:

1) Polityka bezpieczeństwa w systemach baz danych:

2) Ochrona integralności baz danych:

Kontrola dostępu do baz danych:

Kontrola dostępu w języku SQL (DCL - Data Control Language)

  1. Tworzenie użytkowników,
  2. Nadawanie uprawnień ogólnych (systemowych),
  3. Nadawanie uprawnień szczegółowych (obiektowych)

Monitorowanie baz danych – instrukcja AUDIT:

Szyfrowanie w bazach danych: