Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych (transakcyjnych) są stosunkowo proste. Główne wyzwania: wierne odwzorowanie zdarzeń gospodarczych, zapewnienie jednoznaczności i bezpieczeństwa danych etc. Wobec tego kluczowe znaczenie mają bazy danych a systemy zarządzania bazą danych realizują większość funkcji systemu ewidencyjnosprawozdawczego. Baza danych Zbiór danych zorganizowany według określonej struktury, przechowywany na nośniku komputerowym. Sposób organizacji danych nazywa się modelem danych Modele danych prosty, hierarchiczny, sieciowy, relacyjny, obiektowy, wielowymiarowych baz danych (wykorzystywany w hurtowniach danych) etc. System zarządzania bazą danych Ang. DataBase Management System (DBMS) Oprogramowanie do kompleksowej obsługi b.d. – umożliwia tworzenie b.d., wprowadzanie, modyfikację, wyszukiwanie i prezentację danych, zarządzanie dostępem do danych itd. Relational DBMS (RDBMS) – system zarządzania relacyjną bazą danych. Popularne komercyjne RDBMS: Oracle, DB2 (IBM), Microsoft SQL Server, Microsoft Access i wiele innych. Popularne darmowe RDBMS: MySQL, PostgreSQL. Relacyjna baza danych (RBD) Jest to baza danych oparta na modelu relacyjnym, sformułowanym przez E. Codda (1970). RBD jest to zestaw tabel (relacji) o następujących własnościach: Każda tabela w b.d. posiada unikalną nazwę. Każda kolumna w tabeli posiada unikalną (w ramach tej tabeli) nazwę. Kolumny to inaczej atrybuty (np. nazwisko pracownika, data urodzenia itp.). Poszczególne pozycje w kolumnie reprezentują ten sam typ danych (np. tekstowy, liczby całkowite itd.). Zbiór wszystkich możliwych wartości atrybutu tworzy tzw. dziedzinę. Na wartości atrybutów mogą być nałożone różnego rodzaju ograniczenia. Relacyjna baza danych – c.d. Porządek kolumn w tabeli nie ma znaczenia. Każdy wiersz (in. krotka, rekord) tabeli zawiera zestaw powiązanych danych – na temat określonej jednostki (np. pojedynczego studenta w tabeli studentów) lub określonego związku (np. o zapisie danego studenta na daną specjalność). Porządek wierszy w tabeli nie ma znaczenia – nie niesie informacji (np. o kolejności zapisów na wykład). Przecięcie wiersza i kolumny nazywane jest polem tabeli. Pole może zawierać wartość nieokreśloną (NULL), oznaczającą brak danych. Normalizacja bazy danych Normalizacja to proces przekształcenia bazy danych do takiej postaci, która – głównie dzięki eliminacji powtórzeń danych – będzie w jak najmniejszym stopniu narażona na powstawanie niespójności w trakcie korzystania z b.d. Normalizacja bazy danych prowadzi zwykle do podziału początkowego zbioru danych na wiele tabel. Normalizacja opiera się na określonych regułach, których omówienie pominiemy. Przykład – przed normalizacją Kontrahent firma A firma B firma C firma X firma Y firma Z AdresKontr Łódź Pabianice Zgierz Stryków Stryków Łódź IdPrac 1 2 3 3 1 2 NazwiskoPrac Kowalski Iksiński Kowalska Kowalska Kowalski Iksiński Stanowisko niższe wyższe wyższe wyższe niższe wyższe Dane o kontrahentach i pracownikach oraz o przypisaniu pracowników do obsługi kontrahentów (założenie: za danego kontrahenta odpowiedzialny jest 1 pracownik). Przykład – po normalizacji Pracownicy IdPrac NazwiskoPrac 1 Kowalski 2 Iksiński 3 Kowalska Stanowisk o niższe wyższe wyższe Kontrahenci Kontrahent firma A firma B firma C firma X firma Y firma Z AdresKontr Łódź Pabianice Zgierz Stryków Stryków Łódź IdPrac 1 2 3 3 1 2 IdPrac w tablicy Kontrahenci jest atrybutem pozwalającym powiązać dane z tej tabeli z danymi pracowników. Jak wyglądałaby b.d. zakładając, że jednym kontrahentem może się opiekować kilku pracowników (i pracownik może obsługiwać wielu kontrahentów)? Klucze W relacyjnej bazie danych rekordy znajdujące się w różnych tabelach można powiązać za pomocą kluczy. Klucz główny (podstawowy) – atrybut lub zestaw atrybutów, który jednoznacznie identyfikuje każdy wiersz tabeli (np. IdPrac jednoznacznie identyfikuje pracownika). Wartości klucza głównego nie mogą się powtarzać [w przykładzie: IdPrac w tabeli Pracownicy oraz Kontrahent w tabeli Kontrahenci]. Klucz obcy – atrybut lub zestaw atrybutów, który pełni funkcję klucza głównego w innej (obcej) tabeli. Służy do powiązania rekordu w danej tabeli z rekordem w innej tabeli [w przykładzie: IdPrac w tabeli Kontrahenci].