Baza danych Baza danych to: zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku (najczęściej dysku twardym komputera), mogący zaspokoić potrzeby wielu użytkowników korzystających z niego w sposób selektywny w dogodnym dla siebie czasie Baza danych Relacyjna baza danych to: baza danych, w której dane podzielone są na mniejsze, logicznie wydzielone części (zapisane w tabelach) połączone ze sobą tzw. relacjami określającymi ich wzajemny stosunek baza danych, która przechowuje obiekty w odróżnieniu od rekordowo (tablicowo) zorganizowanych danych i połączonych relacjami przechowywanych w relacyjnej bazie danych. Ponieważ dane przechowywane są w postaci obiektów, mogą być odczytywane tylko przy pomocy metod udostępnianych przez te obiekty. Obiekty przechowywane w takiej bazie danych są widoczne jako obiekty języka programowania. Ta właściwość nazywana jest transparentną trwałością (ang. transparent persistence). W połączeniu z obiektowymi językami programowania, obiektowe bazy danych działają szybciej od baz relacyjnych, ponieważ nie ma potrzeby mapowania relacji na obiekty (ang. impedance mismatch). Obiektowe bazy danych rozszerzają obiektowe języki programowania o funkcjonalność zarządzania wielowątkowością, obiektowy język zapytań, funkcje odzyskiwania danych. PODSTAWOWE POJĘCIA TABELA fakty, które można zapisać i które posiadają określone znaczenie pamięci zbiór danych wzajemnie zależnych REKORD czyli wiersz w tabeli POLE (atrybut) czyli kolumna w tabeli KLUCZ identyfikator rekordu w tabeli rekord pole DANE RELACJA (zależność) wszystkie możliwe rodzaje powiązań między rekordami relacyjnej bazy danych INDEKS jest to zbiór par zawierający numer rekordu w bazie oraz wartość obliczoną na podstawie jednego lub kilku pól rekordu PODSTAWOWE POJĘCIA SQL (Structured Query Language) “strukturalny język zapytań” QBE (Query By Example) “pytanie przez przykład” DBF format zapisu bazy danych np. DataBase RDBMS (Relational DataBase Management System) – relacyjny system zarządzania baz danych, czyli zbiór programów, które umożliwiają użytkownikowi tworzenie bazy i przetwarzanie zawartych w niej informacji DBMS system odpowiedzialny za przechowywanie danych na twardych nośnikach MDB format zapisu bazy danych MS Access (do 2003) ACCDB nowy format bazy danych MS Access (2007-) RODZAJE ZALEŻNOŚCI •1-1 rekordowi w pierwszej tabeli odpowiada dokładnie jeden rekord z innej tabeli •1-N rekordowi w pierwszej tabeli odpowiada jeden lub więcej rekordów w innej tabeli •N-M rekordowi pierwszej tabeli odpowiada zero, jeden lub więcej rekordów w innej tabeli i odwrotnie, rekordowi z innej tabeli odpowiada zero, jeden lub więcej rekordów w pierwszej tabeli Zależności N-M Definicje Co wskazują klucze? Klucz - to unikatowy identyfikator rekordu w tabeli Klucz podstawowy (główny) - pole tabeli, zawierające dane jednoznacznie identyfikujące dany rekord w tabeli Klucz obcy - klucz podstawowy jednej tabeli umieszczony w innej tabeli w celu połączenia obu tabel Baza danych Baza danych Normalizacja bazy danych - dzielenie danych na mniejsze fragmenty w celu ułatwienia pracy z bazą oraz w celu wyeliminowania zbędnych i powtarzających się informacji. Zgodnie z zestawem zasad dr Codda proces projektowania bazy danych nazywany jest normalizacją danych. Dr Codd wyróżnia sześć poziomów normalizacji. Skoncentrujemy się tutaj na cztery z nich, gdyż mają one największy wpływ na decyzje dotyczące projektu bazy: 1NF pierwsza postać normalna; oznacza, że dane w polu muszą być atomowe czyli maksymalnie proste; nie można więc zapisać w polu: "Jan Kowalski" ale należy utworzyć dwa pola: dla imienia i nazwiska 2NF druga postać normalna; spełnia warunki 1NF oraz zakłada zależność wszystkich pól nie tworzących klucza podstawowego od składowych tego klucza, tzn. że bez jednego z elementów klucza nie byłoby możliwe zidentyfikowanie wartości pól 3NF trzecia postać normalna; spełnia warunki 2NF oraz zakłada, że pola nie tworzące klucza podstawowego są od siebie niezależne co oznacza, że ich wartości nie mogą się zmieniać na skutek zmiany wartości innego pola nie będącego kluczem głównym 4NF czwarta postać normalna; spełnia warunki 3NF oraz zakłada, że uczestniczy w niej jeden zestaw zdarzeń; oznacza to, że nie można w jednej tabeli umieścić zależności pacjent – lekarz (relacja N – M ), ale trzeba utworzyć osobną tabelę opisującą te zależności Pierwsza postać normalna W pierwszej postaci normalnej wszystkie kolumny w tabeli muszą posiadać wartości atomowe. Innymi słowy, każde pole może zawierać tylko jedną wartość, a nie listę wartości lub powtarzającą się grupę danych. Rysunek a) przedstawia przykład tabeli, która nie jest w pierwszej postaci normalnej, ponieważ w kolumnie ContactInfo przechowywana jest tablica wartości. Rysunek a) przedstawia przykład tabeli, która nie jest w pierwszej postaci normalnej, ponieważ w kolumnie ContactInfo przechowywana jest tablica wartości. Rysunek b) jest przykładem tabeli w pierwszej postaci normalnej, gdyż w żadnej z kolumn nie występują powtarzające się informacje. Imię Nazwisko Mówimy, że tabela jest w drugiej postaci normalnej, gdy jest w pierwszej postaci normalnej i jednocześnie każde z jej pól nie będących polem klucza głównego Druga postać normalna jest w pełni zależne od całego klucza głównego. Innymi słowy, część informacji może być przechowywana w innej tabeli i pobierana z niej poprzez odnośnik. Rysunek a) Mimo iż tabela jest w pierwszej postaci normalnej, nie jest jednak w drugiej postaci normalnej. Klucz główny składa się z ContactID, ContactInfoID i ContactInfo. Czy kolumna ContactName zależy od części klucza: ContactInfoID i ContactInfo? Nie, gdyż jest zależna od pola ContactID. Aby przekształcić tę tabelę do drugiej postaci normalnej, należy informacje o kliencie umieścić w osobnej tabeli odnośnika i utworzyć pomiędzy tabelami relację jeden-do-wielu. Rysunek b) tabela jest w pierwszej postaci normalnej Trzecia postać normalna Mimo iż tabele na rys a) są w pierwszej i drugiej postaci normalnej, nie są jednak w trzeciej postaci normalnej. Z tabelą w trzeciej postaci normalnej mamy do czynienia, gdy wszystkie pola, nie będące polami klucza głównego, są wzajemnie niezależne. Rysunek a) Rysunek b) Korzyści z normalizacji Mniej błędów Szybsze wprowadzanie danych Mniej wymaganego miejsca na dysku Szybsze przeszukiwanie Literatura •Date C.J., 2005: Relacyjne bazy danych dla praktyków. Helion. Warszawa. •OPI, 1997: Bazy Danych. Ośrodek Przetwarzania Informacji. Warszawa. •Wilton P., Colby J., 2005: SQL. Od podstaw. Warszawa. •ESRI, 2002: Building geodatabase. •http://148.81.185.146/han/ibuk/https/ssl.ibuk.pl/ipaper/korpo-6011.ipaper