BAZY DANYCH *Poziom logiczny - poziom spojrzenia użytkownika na bazę danych. * Poziom fizyczny - poziom związany z fizyczną implementacją bazy danych na poziomie struktur i operacji wewnętrznych komputera. * Podejście programocentryczne - skoncentrowanie uwagi analityków 1 programistów na programie, jego architekturze i efektywności l Innych parametrach eksploatacyjnych. Struktury danych podporządkowane są architekturze programu. * Podejście danocentryczne - podejście odwrotne, związane z sposobem organizacji struktur danych i dostępu do nich. Programy są środkiem prowadzącym do celu, satelitami krążącymi wokół struktur danych. Zadania realizowane przez bazę danych : 1) Zapewnienie trwałości danych dane nie ulatują po zakończeniu sesji pracy z komputerem, są stale dostępne 2) Efektywny (szybki) dostęp do dużej liczby danych, w szczególności w zawarty w wielu plikach; w bardziej złożonych przypadkach żąda się zapewnienia jednoczesnego dostępu do danych wielu Użytkownikom 3) 'Podtrzymywanie' choć jednego modelu danych, czyli możliwości opisu wycinka w postaci schematu danych. Najbardziej popularne modele: relacyjny, sieciowy, obiektowo-zorientowany - Języki wyższego rzędu (przyjazne dla użytkownika) do: *opisu schematu danych * manipulowania danymi, np. wyszukiwania, aktualizowania, usuwania danych *5) Zarządzanie transakcjami, czyli zapewnienie prawidłowego dostępu do danych wielu użytkownikom, którzy pracują z bazą w tym samym czasie 6) Syntaktyczna kontrola danych , które celem jest sprawdzanie składniowych aspektów danych, np.. Czy numer telefonu składa się z cyfr. 7) Semantyczna kontrola danych, która korzysta z tzw. zależności semantycznych zdefiniowanych przez projektanta bazy w celu sprawdzenia czy dane znajdujące się w bazie lub dane wprowadzane do bazy spełniają warunki stanowiące element modelowanego świata, np. czy wiek człowieka nie jest liczbą ujemną. 8) Zapewnienie niezależności danych, niewielkie zmiany w schemacie danych, albo zmiana fizycznego sposobu przechowywania danych w komputerze nie powinny prowadzić do istotnych zmian w jej eksploatacji 9) Ochrona danych rozumiana jako: * uniemożliwienie dostępu do danych lub uniemożliwienie wykonania pewnych operacji na danych osobom nieuprawnionym fizyczne zabezpieczanie danych przed Ich zniszczeniem lub kradzieże. 10) Skuteczne odtwarzanie danych po awariach systemu. 11) Obserwowanie, monitorowanie i ocena procesów zachodzących w bazie; System zarządzania bazą danych (DBMS - data base management system) - środki sprzętowe i programistyczne pozwalające zrealizować powyższe zadania. System bazy danych - baza danych (dane) wraz z jej systemem zarządzania LUDZIE SYSTEMU BAZ DANYCH : 1) Projektanci - dokonują analizy wycinka świata rzeczywistego oraz identyfikują te typy informacji i relacji występujące między nimi, które są ważne dla użytkownika. Określają rodzaj operacji jaki będzie wykonywany na danych. Wybierają sprzęt i oprogramowanie niezbędne do zrealizowania bazy danych. Ścisła współpraca z użytkownikiem. 2)Realizatorzy, programiści systemowi - materializacja wizji stworzone przez projektantów, obejmująca implementację: * schematów danych i zapisanie ich w dostępnym jeżyku opisu schematów * procedur wprowadzania, aktualizacji i usuwania danych * procedur przeglądania l wyszukiwania danych * procedur generowania sprawozdań, raportów i statystyk * procedur wspomagania 3) Administratorzy - osoby odpowiedzialne za stan bazy. Zadania: *tworzenie i zmiana opisu b.d *odwzorowanie opisu w pamięci *udzielanie użytkownikom zezwoleń dostępu do bazy *wykonywanie kopii archiwalnych *przywracanie stanu bazy po awarii *obserwowanie i dokumentowanie zjawisk zachodzących podczas eksploatacji 4) Użytkownicy: *którzy korzystają z systemu osobiście. Ograniczona wiedza na temat baz danych *którzy pracuj z baza na zlecenie innych osób. Specjaliści w dziedzinie informacji i użytkowaniu baz danych RELACYJNA BAZA DANYCH - *zbiór tabel opisujący obiekty lub związki w modelowym świecie
*zbiór zależności semantycznych, które opisują ogólne zależności w opisywanym świecie : - każda z trzech pierwszych cyfr ciągu będącego wartością atrybutu nr_indeksu musi być 0,1 lub 2; - jeśli w tabeli `uczestnictwo' występuje krotka xxx-xxxx G12-000 to musi wystąpić również krotka xxx-xxxx M09-343 (gdy student uczęszcza na wykład z geodezji to musi uczęszczać również na wykład z matematyki); NORMALIZACJA - proces przekształcania struktur danych prowadzących do uzyskania struktur relacyjnych (tzw. 1NF, 2NF l 3NF). Podstawowy zabieg przy przechodzeniu od struktury encja - związek do struktury relacyjnej. Proces obejmuje: *eliminacje atrybutów powtarzalnych poprzez zastąpienie Ich odrębnymi relacjami; *„spłaszczenie" struktury danych poprzez eliminację atrybutów złożonych; *zastąpienie związków relacjami; *ustalenie pierwotnych l obcych kluczy, które reprezentują związki semantyczne; *wyeliminowanie niepożądanych zależności (np. funkcyjnych) pomiędzy kolumnami relacji poprzez wprowadzenie nowych relacji PIERWSZA POSTAĆ NORMALNA - *Reprezentacja danych zgodnie z którą wszystkie dane są zapisane w postaci tablic (relacji) o określonej liczbie kolumn i określonej liczbie wierszy; *Elementy tablic muszą być wartościami atomowymi (bez struktury) i nie mogą być odsyłaczami do wierszy tablicy; *W ramach tablicy wiersze nie mogą się powtarzać; *Pierwsza forma normalna jest podstawowym założeniem modelu relacyjnego DRUGA POSTAĆ NORMALNA - relacja nie jest w drugiej formie normalnej jeżeli jej klucz składa się z dwóch lub więcej atrybutów i pewien niekluczowy atrybut znajduje się w zależności funkcyjnej od części klucza. Nie spełnienie warunku drugiej formy normalnej prowadzi do redundancji i anomalii aktualizacyjnych.
TRZECIA POSTAĆ NORMALNA - *Relacja znajduje się w trzeci formie normalnej, jeżeli nie zawiera tranzytowych zależności funkcyjnych, tj. takich trzech atrybutów A, B, C, że zachodzi A -> B oraz B -> C *Nie spełnienie warunku drugiej formy normalnej prowadzi do redundancji i anomalii aktualizacyjnych. *Eliminacja zależności tranzytowych wyeliminowanie atrybutu C z danej relacji (projekcja) oraz utworzenie nowej relacji zawierającej atrybuty B i C. DIAGRAM ZWIĄZKÓW ENCJI ERD - Cele procesu projektowania bazy danych jest: * Wyspecyfikowanie wymagań użytkowników przyszłej bazy danych *Utworzenie schematu bazy danych *ERD jest pośredni model pomiędzy wymaganiami użytkowników a schematem bazy danych. Powinien w sposób jednoznaczny określić wymagania użytkowników, umożliwiając im sprawdzenie czy analityk systemu rzeczywiście dobrze zrozumiał ich intencję i specyfikę firmy. RODZAJE ELEMENTÓW ERD - 1. Encja coś co istnieje, co jest odróżnialne od innych, o czym informację trzeba znać lub przechować, np. dom, działka, student 2. Atrybut jest to własność encji danego typu, reprezentowana pewną własnością, np. liczbą całkowitą, liczbą rzeczywistą, napisem. Atrybut powinien opisywać encje, przy której śle go umieszcza np. numer miejsca atrybut biletu do kina czy atrybut fotela w klnie. Atrybut lub zbiór atrybutów dla danego typu encji, których wartość jednoznacznie Identyfikuje każdą Instancje encji nazywamy kluczem. Przykład atrybutu encji dom; ilość kondygnacji, funkcja budynku, właściciel. 3. Związek jest to uporządkowana lista encji. Każdy związek określa pewną relacje między zbiorami egzemplarzy encji wchodzących w skład związku. Przykłady: pracownik pracuje w dziale, kraj eksportuje towar. Rodzaje związków : * Związek wieloznaczny m:n, wiele do wiele. Przykład: związek pomiędzy encjami: osoby a projekty, każda osoba może brać udział w wielu projektach, z kolei w każdym projekcie może brać udział wiele osób. Związek nie ma bezpośredniej reprezentacji w relacyjnej bazie danych, należy go na binarne związki jednoznaczne. *Związek jednoznaczny 1: n, wiele do jeden, jeden do wiele. Przykład każda osoba może być zatrudniona w jednym dziale ale w każdym dziale może być zatrudnionych wiele osób *Związek jedno-jednoznaczny 1:1, jeden do jeden. Przykład każdy student jest osobą. Relacyjna baza danych relacja-podzbiór iloczyn kartezjańskiego listy dziedzin Zbiory wartości D1= {0,1,2}D2={tak,nie} D1*D2*...Dk (v1,v2...vk) gdzie v1εD1,v2εD2 ... D1*D2 , k2 {(0,tak), (0,nie),(1,tak),(1,nie)...} S={A1,A2..An} schemat formalny relacji {Nr indeksu, nazwisko, imię, rok urodzenia}{A1,A2..An}- zbiór nazw atrybutów z każdym atrybutem Ai1<=i<=n wiążemy dziedziną di: D- suma dziedzin atrybutów A1A2...An k odwzorowane k:s - D. R. relacją na schemacie S nazywamy zbiór {k,k2...kn} takich ,że dla każdego k∈ R musi k(Ai) Di, 1< i<n . Odwzorowanie k1,k2...kp nazywamy krotkami np.3 relacje student, wykład, uczestnictwo OPERACJE NA RELACJACH Selekcja Niech będzie relacja R rozpięta na schemacie S, atrybutu A S oraz a dom (A) - dziedzina atrybutu A wykonanie operacji selekcji Σw(R) prowadzi do utworzenia R' = { k∈ R : w (k) =true} warunek `w' buduje się z warunków elementarnych k(A) φa ,k(A)φk(B) gdzie φ jest symbolem relacji w dziedzinie dom(A) np.dla dziedzin liczbowych φ {#,=,>,<} .Jeżeli w1 i w2 są warunkami elementarnymi to warunkami są : w1 and w2, w1 or w2 , NOT w1 SQL - Select * from posiada_dzialki where obreb = 344
Rzut Niech będzie relacja R rozpięta na schemacie S Zbiór atrybutów S'< S wykonane operacji rzutu лs'(R) prowadzi do utworzenia relacji R' = {k(S'):k<R}.Definicja mówi, że relacja R' powstaje z R przez usunięcie wszystkich kolumn odpowiadającym atrybutom ze zbioru s-s', a następnie usuwa się o ile istnieją wszystkie powtórzenia krotek Przykład rzutu (usunięcie kolumny). SQL - Select nr_dzialki, obreb from posiada_dzialki
Złączenie Niech będzie relacja R' rozpięta na schemacie S', R” na schemacie S” oraz S = S'∪S”. Przyjmujemy, że atrybut A ∈ S' oraz B ∈ S”. Niech k' i k” oznaczają krotki z relacji R' i R” zaś k' * k” oznacza sklejenie krotek. Wykonanie operacji złączenia R' * R” przy warunku k(A) ϕ k(B) gdzie ϕ ∈ {≠ ≥ ≤ > < =} prowadzi do utworzenia relacji R. R(S) = {k'(S') * k”(S”) : k'(A) ∈ R', k”(B) ∈ R” i k(A) ϕ k(B) gdy ϕ jest znakiem „=”, a A i B są identyczne to złączenie nazywamy naturalnym. Przykład złączenia : SQL - Select *from posiada_działki, właściciel where posiada_dzialki.id_wlasciciela = wlasciciel.id_własciciela
|
BAZY DANYCH *Poziom logiczny - poziom spojrzenia użytkownika na bazę danych. * Poziom fizyczny - poziom związany z fizyczną implementacją bazy danych na poziomie struktur i operacji wewnętrznych komputera. * Podejście programocentryczne - skoncentrowanie uwagi analityków l programistów na programie, jego architekturze i efektywności l Innych parametrach eksploatacyjnych. Struktury danych podporządkowane są architekturze programu. * Podejście danocentryczne - podejście odwrotne, związane z sposobem organizacji struktur danych l dostępu do nich. Programy są środkiem prowadzącym do celu, satelitami krążącymi wokół struktur danych. Zadania realizowane przez bazę danych : 1) Zapewnienie trwałości danych dane nie ulatują po zakończeniu sesji pracy z komputerem, są stale dostępne 2) Efektywny (szybki) dostęp do dużej liczby danych, w szczególności w zawarty w wielu plikach; w bardziej złożonych przypadkach żąda się zapewnienia jednoczesnego dostępu do danych wielu Użytkownikom 3) 'Podtrzymywanie' choć jednego modelu danych, czyli możliwości opisu wycinka w postaci schematu danych. Najbardziej popularne modele: relacyjny, sieciowy, obiektowo-zorientowany - Języki wyższego rzędu (przyjazne dla użytkownika) do: *opisu schematu danych * manipulowania danymi, np. wyszukiwania, aktualizowania, usuwania danych *5) Zarządzanie transakcjami, czyli zapewnienie prawidłowego dostępu do danych wielu użytkownikom, którzy pracują z bazą w tym samym czasie 6) Syntaktyczna kontrola danych , które celem jest sprawdzanie składniowych aspektów danych, np.. Czy numer telefonu składa się z cyfr. 7) Semantyczna kontrola danych, która korzysta z tzw. zależności semantycznych zdefiniowanych przez projektanta bazy w celu sprawdzenia czy dane znajdujące się w bazie lub dane wprowadzane do bazy spełniają warunki stanowiące element modelowanego świata, np. czy wiek człowieka nie jest liczbą ujemną. 8) Zapewnienie niezależności danych, niewielkie zmiany w schemacie danych, albo zmiana fizycznego sposobu przechowywania danych w komputerze nie powinny prowadzić do istotnych zmian w jej eksploatacji 9) Ochrona danych rozumiana jako: * uniemożliwienie dostępu do danych lub uniemożliwienie wykonania pewnych operacji na danych osobom nieuprawnionym fizyczne zabezpieczanie danych przed Ich zniszczeniem lub kradzieże. 10) Skuteczne odtwarzanie danych po awariach systemu. 11) Obserwowanie, monitorowanie i ocena procesów zachodzących w bazie; System zarządzania bazą danych (DBMS - data base management system) - środki sprzętowe i programistyczne pozwalające zrealizować powyższe zadania. System bazy danych - baza danych (dane) wraz z jej systemem zarządzania LUDZIE SYSTEMU BAZ DANYCH : 1) Projektanci - dokonują analizy wycinka świata rzeczywistego oraz identyfikują te typy informacji i relacji występujące między nimi, które są ważne dla użytkownika. Określają rodzaj operacji jaki będzie wykonywany na danych. Wybierają sprzęt i oprogramowanie niezbędne do zrealizowania bazy danych. Ścisła współpraca z użytkownikiem. 2)Realizatorzy, programiści systemowi - materializacja wizji stworzone przez projektantów, obejmująca implementację: * schematów danych i zapisanie ich w dostępnym jeżyku opisu schematów * procedur wprowadzania, aktualizacji i usuwania danych * procedur przeglądania l wyszukiwania danych * procedur generowania sprawozdań, raportów i statystyk * procedur wspomagania 3) Administratorzy - osoby odpowiedzialne za stan bazy. Zadania: *tworzenie i zmiana opisu b.d *odwzorowanie opisu w pamięci *udzielanie użytkownikom zezwoleń dostępu do bazy *wykonywanie kopii archiwalnych *przywracanie stanu bazy po awarii *obserwowanie i dokumentowanie zjawisk zachodzących podczas eksploatacji 4) Użytkownicy: *którzy korzystają z systemu osobiście. Ograniczona wiedza na temat baz danych *którzy pracuj z baza na zlecenie innych osób. Specjaliści w dziedzinie informacji i użytkowaniu baz danych RELACYJNA BAZA DANYCH - *zbiór tabel opisujący obiekty lub związki w modelowym świecie
*zbiór zależności semantycznych, które opisują ogólne zależności w opisywanym świecie : - każda z trzech pierwszych cyfr ciągu będącego wartością atrybutu nr_indeksu musi być 0,1 lub 2; - jeśli w tabeli `uczestnictwo' występuje krotka xxx-xxxx G12-000 to musi wystąpić również krotka xxx-xxxx M09-343 (gdy student uczęszcza na wykład z geodezji to musi uczęszczać również na wykład z matematyki); NORMALIZACJA - proces przekształcania struktur danych prowadzących do uzyskania struktur relacyjnych (tzw. 1NF, 2NF l 3NF). Podstawowy zabieg przy przechodzeniu od struktury encja - związek do struktury relacyjnej. Proces obejmuje: *eliminacje atrybutów powtarzalnych poprzez zastąpienie Ich odrębnymi relacjami; *„spłaszczenie" struktury danych poprzez eliminację atrybutów złożonych; *zastąpienie związków relacjami; *ustalenie pierwotnych l obcych kluczy, które reprezentują związki semantyczne; *wyeliminowanie niepożądanych zależności (np. funkcyjnych) pomiędzy kolumnami relacji poprzez wprowadzenie nowych relacji PIERWSZA POSTAĆ NORMALNA - *Reprezentacja danych zgodnie z którą wszystkie dane są zapisane w postaci tablic (relacji) o określonej liczbie kolumn i określonej liczbie wierszy; *Elementy tablic muszą być wartościami atomowymi (bez struktury) i nie mogą być odsyłaczami do wierszy tablicy; *W ramach tablicy wiersze nie mogą się powtarzać; *Pierwsza forma normalna jest podstawowym założeniem modelu relacyjnego DRUGA POSTAĆ NORMALNA - relacja nie jest w drugiej formie normalnej jeżeli jej klucz składa się z dwóch lub więcej atrybutów i pewien niekluczowy atrybut znajduje się w zależności funkcyjnej od części klucza. Nie spełnienie warunku drugiej formy normalnej prowadzi do redundancji i anomalii aktualizacyjnych.
TRZECIA POSTAĆ NORMALNA - *Relacja znajduje się w trzeci formie normalnej, jeżeli nie zawiera tranzytowych zależności funkcyjnych, tj. takich trzech atrybutów A, B, C, że zachodzi A -> B oraz B -> C *Nie spełnienie warunku drugiej formy normalnej prowadzi do redundancji i anomalii aktualizacyjnych. *Eliminacja zależności tranzytowych wyeliminowanie atrybutu C z danej relacji (projekcja) oraz utworzenie nowej relacji zawierającej atrybuty B i C. DIAGRAM ZWIĄZKÓW ENCJI ERD - Cele procesu projektowania bazy danych jest: * Wyspecyfikowanie wymagań użytkowników przyszłej bazy danych *Utworzenie schematu bazy danych *ERD jest pośredni model pomiędzy wymaganiami użytkowników a schematem bazy danych. Powinien w sposób jednoznaczny określić wymagania użytkowników, umożliwiając im sprawdzenie czy analityk systemu rzeczywiście dobrze zrozumiał ich intencję i specyfikę firmy. RODZAJE ELEMENTÓW ERD - 1. Encja coś co istnieje, co jest odróżnialne od innych, o czym informację trzeba znać lub przechować, np. dom, działka, student 2. Atrybut jest to własność encji danego typu, reprezentowana pewną własnością, np. liczbą całkowitą, liczbą rzeczywistą, napisem. Atrybut powinien opisywać encje, przy której śle go umieszcza np. numer miejsca atrybut biletu do kina czy atrybut fotela w klnie. Atrybut lub zbiór atrybutów dla danego typu encji, których wartość jednoznacznie Identyfikuje każdą Instancje encji nazywamy kluczem. Przykład atrybutu encji dom; ilość kondygnacji, funkcja budynku, właściciel. 3. Związek jest to uporządkowana lista encji. Każdy związek określa pewną relacje między zbiorami egzemplarzy encji wchodzących w skład związku. Przykłady: pracownik pracuje w dziale, kraj eksportuje towar. Rodzaje związków : * Związek wieloznaczny m:n, wiele do wiele. Przykład: związek pomiędzy encjami: osoby a projekty, każda osoba może brać udział w wielu projektach, z kolei w każdym projekcie może brać udział wiele osób. Związek nie ma bezpośredniej reprezentacji w relacyjnej bazie danych, należy go na binarne związki jednoznaczne. *Związek jednoznaczny 1: n, wiele do jeden, jeden do wiele. Przykład każda osoba może być zatrudniona w jednym dziale ale w każdym dziale może być zatrudnionych wiele osób *Związek jedno-jednoznaczny 1:1, jeden do jeden. Przykład każdy student jest osobą. Relacyjna baza danych relacja-podzbiór iloczyn kartezjańskiego listy dziedzin Zbiory wartości D1= {0,1,2}D2={tak,nie} D1*D2*...Dk (v1,v2...vk) gdzie v1εD1,v2εD2 ... D1*D2 , k2 {(0,tak), (0,nie),(1,tak),(1,nie)...} S={A1,A2..An} schemat formalny relacji {Nr indeksu, nazwisko, imię, rok urodzenia}{A1,A2..An}- zbiór nazw atrybutów z każdym atrybutem Ai1<=i<=n wiążemy dziedziną di: D- suma dziedzin atrybutów A1A2...An k odwzorowane k:s - D. R. relacją na schemacie S nazywamy zbiór {k,k2...kn} takich ,że dla każdego k∈ R musi k(Ai) Di, 1< i<n . Odwzorowanie k1,k2...kp nazywamy krotkami np.3 relacje student, wykład, uczestnictwo OPERACJE NA RELACJACH Selekcja Niech będzie relacja R rozpięta na schemacie S, atrybutu A S oraz a dom (A) - dziedzina atrybutu A wykonanie operacji selekcji Σw(R) prowadzi do utworzenia R' = { k∈ R : w (k) =true} warunek `w' buduje się z warunków elementarnych k(A) φa ,k(A)φk(B) gdzie φ jest symbolem relacji w dziedzinie dom(A) np.dla dziedzin liczbowych φ {#,=,>,<} .Jeżeli w1 i w2 są warunkami elementarnymi to warunkami są : w1 and w2, w1 or w2 , NOT w1 SQL - Select * from posiada_dzialki where obreb = 344
Rzut Niech będzie relacja R rozpięta na schemacie S Zbiór atrybutów S'< S wykonane operacji rzutu лs'(R) prowadzi do utworzenia relacji R' = {k(S'):k<R}.Definicja mówi, że relacja R' powstaje z R przez usunięcie wszystkich kolumn odpowiadającym atrybutom ze zbioru s-s', a następnie usuwa się o ile istnieją wszystkie powtórzenia krotek Przykład rzutu (usunięcie kolumny). SQL - Select nr_dzialki, obreb from posiada_dzialki
Złączenie Niech będzie relacja R' rozpięta na schemacie S', R” na schemacie S” oraz S = S'∪S”. Przyjmujemy, że atrybut A ∈ S' oraz B ∈ S”. Niech k' i k” oznaczają krotki z relacji R' i R” zaś k' * k” oznacza sklejenie krotek. Wykonanie operacji złączenia R' * R” przy warunku k(A) ϕ k(B) gdzie ϕ ∈ {≠ ≥ ≤ > < =} prowadzi do utworzenia relacji R. R(S) = {k'(S') * k”(S”) : k'(A) ∈ R', k”(B) ∈ R” i k(A) ϕ k(B) gdy ϕ jest znakiem „=”, a A i B są identyczne to złączenie nazywamy naturalnym. Przykład złączenia : SQL - Select *from posiada_działki, właściciel where posiada_dzialki.id_wlasciciela = wlasciciel.id_własciciela
|
BAZY DANYCH *Poziom logiczny - poziom spojrzenia użytkownika na bazę danych. * Poziom fizyczny - poziom związany z fizyczną implementacją bazy danych na poziomie struktur i operacji wewnętrznych komputera. * Podejście programocentryczne - skoncentrowanie uwagi analityków l programistów na programie, jego architekturze i efektywności l Innych parametrach eksploatacyjnych. Struktury danych podporządkowane są architekturze programu. * Podejście danocentryczne - podejście odwrotne, związane z sposobem organizacji struktur danych l dostępu do nich. Programy są środkiem prowadzącym do celu, satelitami krążącymi wokół struktur danych. Zadania realizowane przez bazę danych : 1) Zapewnienie trwałości danych dane nie ulatują po zakończeniu sesji pracy z komputerem, są stale dostępne 2) Efektywny (szybki) dostęp do dużej liczby danych, w szczególności w zawarty w wielu plikach; w bardziej złożonych przypadkach żąda się zapewnienia jednoczesnego dostępu do danych wielu Użytkownikom 3) 'Podtrzymywanie' choć jednego modelu danych, czyli możliwości opisu wycinka w postaci schematu danych. Najbardziej popularne modele: relacyjny, sieciowy, obiektowo-zorientowany - Języki wyższego rzędu (przyjazne dla użytkownika) do: *opisu schematu danych * manipulowania danymi, np. wyszukiwania, aktualizowania, usuwania danych *5) Zarządzanie transakcjami, czyli zapewnienie prawidłowego dostępu do danych wielu użytkownikom, którzy pracują z bazą w tym samym czasie 6) Syntaktyczna kontrola danych , które celem jest sprawdzanie składniowych aspektów danych, np.. Czy numer telefonu składa się z cyfr. 7) Semantyczna kontrola danych, która korzysta z tzw. zależności semantycznych zdefiniowanych przez projektanta bazy w celu sprawdzenia czy dane znajdujące się w bazie lub dane wprowadzane do bazy spełniają warunki stanowiące element modelowanego świata, np. czy wiek człowieka nie jest liczbą ujemną. 8) Zapewnienie niezależności danych, niewielkie zmiany w schemacie danych, albo zmiana fizycznego sposobu przechowywania danych w komputerze nie powinny prowadzić do istotnych zmian w jej eksploatacji 9) Ochrona danych rozumiana jako: * uniemożliwienie dostępu do danych lub uniemożliwienie wykonania pewnych operacji na danych osobom nieuprawnionym fizyczne zabezpieczanie danych przed Ich zniszczeniem lub kradzieże. 10) Skuteczne odtwarzanie danych po awariach systemu. 11) Obserwowanie, monitorowanie i ocena procesów zachodzących w bazie; System zarządzania bazą danych (DBMS - data base management system) - środki sprzętowe i programistyczne pozwalające zrealizować powyższe zadania. System bazy danych - baza danych (dane) wraz z jej systemem zarządzania LUDZIE SYSTEMU BAZ DANYCH : 1) Projektanci - dokonują analizy wycinka świata rzeczywistego oraz identyfikują te typy informacji i relacji występujące między nimi, które są ważne dla użytkownika. Określają rodzaj operacji jaki będzie wykonywany na danych. Wybierają sprzęt i oprogramowanie niezbędne do zrealizowania bazy danych. Ścisła współpraca z użytkownikiem. 2)Realizatorzy, programiści systemowi - materializacja wizji stworzone przez projektantów, obejmująca implementację: * schematów danych i zapisanie ich w dostępnym jeżyku opisu schematów * procedur wprowadzania, aktualizacji i usuwania danych * procedur przeglądania l wyszukiwania danych * procedur generowania sprawozdań, raportów i statystyk * procedur wspomagania 3) Administratorzy - osoby odpowiedzialne za stan bazy. Zadania: *tworzenie i zmiana opisu b.d *odwzorowanie opisu w pamięci *udzielanie użytkownikom zezwoleń dostępu do bazy *wykonywanie kopii archiwalnych *przywracanie stanu bazy po awarii *obserwowanie i dokumentowanie zjawisk zachodzących podczas eksploatacji 4) Użytkownicy: *którzy korzystają z systemu osobiście. Ograniczona wiedza na temat baz danych *którzy pracuj z baza na zlecenie innych osób. Specjaliści w dziedzinie informacji i użytkowaniu baz danych RELACYJNA BAZA DANYCH - *zbiór tabel opisujący obiekty lub związki w modelowym świecie
*zbiór zależności semantycznych, które opisują ogólne zależności w opisywanym świecie : - każda z trzech pierwszych cyfr ciągu będącego wartością atrybutu nr_indeksu musi być 0,1 lub 2; - jeśli w tabeli `uczestnictwo' występuje krotka xxx-xxxx G12-000 to musi wystąpić również krotka xxx-xxxx M09-343 (gdy student uczęszcza na wykład z geodezji to musi uczęszczać również na wykład z matematyki); NORMALIZACJA - proces przekształcania struktur danych prowadzących do uzyskania struktur relacyjnych (tzw. 1NF, 2NF l 3NF). Podstawowy zabieg przy przechodzeniu od struktury encja - związek do struktury relacyjnej. Proces obejmuje: *eliminacje atrybutów powtarzalnych poprzez zastąpienie Ich odrębnymi relacjami; *„spłaszczenie" struktury danych poprzez eliminację atrybutów złożonych; *zastąpienie związków relacjami; *ustalenie pierwotnych l obcych kluczy, które reprezentują związki semantyczne; *wyeliminowanie niepożądanych zależności (np. funkcyjnych) pomiędzy kolumnami relacji poprzez wprowadzenie nowych relacji PIERWSZA POSTAĆ NORMALNA - *Reprezentacja danych zgodnie z którą wszystkie dane są zapisane w postaci tablic (relacji) o określonej liczbie kolumn i określonej liczbie wierszy; *Elementy tablic muszą być wartościami atomowymi (bez struktury) i nie mogą być odsyłaczami do wierszy tablicy; *W ramach tablicy wiersze nie mogą się powtarzać; *Pierwsza forma normalna jest podstawowym założeniem modelu relacyjnego DRUGA POSTAĆ NORMALNA - relacja nie jest w drugiej formie normalnej jeżeli jej klucz składa się z dwóch lub więcej atrybutów i pewien niekluczowy atrybut znajduje się w zależności funkcyjnej od części klucza. Nie spełnienie warunku drugiej formy normalnej prowadzi do redundancji i anomalii aktualizacyjnych.
TRZECIA POSTAĆ NORMALNA - *Relacja znajduje się w trzeci formie normalnej, jeżeli nie zawiera tranzytowych zależności funkcyjnych, tj. takich trzech atrybutów A, B, C, że zachodzi A -> B oraz B -> C *Nie spełnienie warunku drugiej formy normalnej prowadzi do redundancji i anomalii aktualizacyjnych. *Eliminacja zależności tranzytowych wyeliminowanie atrybutu C z danej relacji (projekcja) oraz utworzenie nowej relacji zawierającej atrybuty B i C. DIAGRAM ZWIĄZKÓW ENCJI ERD - Cele procesu projektowania bazy danych jest: * Wyspecyfikowanie wymagań użytkowników przyszłej bazy danych *Utworzenie schematu bazy danych *ERD jest pośredni model pomiędzy wymaganiami użytkowników a schematem bazy danych. Powinien w sposób jednoznaczny określić wymagania użytkowników, umożliwiając im sprawdzenie czy analityk systemu rzeczywiście dobrze zrozumiał ich intencję i specyfikę firmy. RODZAJE ELEMENTÓW ERD - 1. Encja coś co istnieje, co jest odróżnialne od innych, o czym informację trzeba znać lub przechować, np. dom, działka, student 2. Atrybut jest to własność encji danego typu, reprezentowana pewną własnością, np. liczbą całkowitą, liczbą rzeczywistą, napisem. Atrybut powinien opisywać encje, przy której śle go umieszcza np. numer miejsca atrybut biletu do kina czy atrybut fotela w klnie. Atrybut lub zbiór atrybutów dla danego typu encji, których wartość jednoznacznie Identyfikuje każdą Instancje encji nazywamy kluczem. Przykład atrybutu encji dom; ilość kondygnacji, funkcja budynku, właściciel. 3. Związek jest to uporządkowana lista encji. Każdy związek określa pewną relacje między zbiorami egzemplarzy encji wchodzących w skład związku. Przykłady: pracownik pracuje w dziale, kraj eksportuje towar. Rodzaje związków : * Związek wieloznaczny m:n, wiele do wiele. Przykład: związek pomiędzy encjami: osoby a projekty, każda osoba może brać udział w wielu projektach, z kolei w każdym projekcie może brać udział wiele osób. Związek nie ma bezpośredniej reprezentacji w relacyjnej bazie danych, należy go na binarne związki jednoznaczne. *Związek jednoznaczny 1: n, wiele do jeden, jeden do wiele. Przykład każda osoba może być zatrudniona w jednym dziale ale w każdym dziale może być zatrudnionych wiele osób *Związek jedno-jednoznaczny 1:1, jeden do jeden. Przykład każdy student jest osobą. Relacyjna baza danych relacja-podzbiór iloczyn kartezjańskiego listy dziedzin Zbiory wartości D1= {0,1,2}D2={tak,nie} D1*D2*...Dk (v1,v2...vk) gdzie v1εD1,v2εD2 ... D1*D2 , k2 {(0,tak), (0,nie),(1,tak),(1,nie)...} S={A1,A2..An} schemat formalny relacji {Nr indeksu, nazwisko, imię, rok urodzenia}{A1,A2..An}- zbiór nazw atrybutów z każdym atrybutem Ai1<=i<=n wiążemy dziedziną di: D- suma dziedzin atrybutów A1A2...An k odwzorowane k:s - D. R. relacją na schemacie S nazywamy zbiór {k,k2...kn} takich ,że dla każdego k∈ R musi k(Ai) Di, 1< i<n . Odwzorowanie k1,k2...kp nazywamy krotkami np.3 relacje student, wykład, uczestnictwo OPERACJE NA RELACJACH Selekcja Niech będzie relacja R rozpięta na schemacie S, atrybutu A S oraz a dom (A) - dziedzina atrybutu A wykonanie operacji selekcji Σw(R) prowadzi do utworzenia R' = { k∈ R : w (k) =true} warunek `w' buduje się z warunków elementarnych k(A) φa ,k(A)φk(B) gdzie φ jest symbolem relacji w dziedzinie dom(A) np.dla dziedzin liczbowych φ {#,=,>,<} .Jeżeli w1 i w2 są warunkami elementarnymi to warunkami są : w1 and w2, w1 or w2 , NOT w1 SQL - Select * from posiada_dzialki where obreb = 344
Rzut Niech będzie relacja R rozpięta na schemacie S Zbiór atrybutów S'< S wykonane operacji rzutu лs'(R) prowadzi do utworzenia relacji R' = {k(S'):k<R}.Definicja mówi, że relacja R' powstaje z R przez usunięcie wszystkich kolumn odpowiadającym atrybutom ze zbioru s-s', a następnie usuwa się o ile istnieją wszystkie powtórzenia krotek Przykład rzutu (usunięcie kolumny). SQL - Select nr_dzialki, obreb from posiada_dzialki
Złączenie Niech będzie relacja R' rozpięta na schemacie S', R” na schemacie S” oraz S = S'∪S”. Przyjmujemy, że atrybut A ∈ S' oraz B ∈ S”. Niech k' i k” oznaczają krotki z relacji R' i R” zaś k' * k” oznacza sklejenie krotek. Wykonanie operacji złączenia R' * R” przy warunku k(A) ϕ k(B) gdzie ϕ ∈ {≠ ≥ ≤ > < =} prowadzi do utworzenia relacji R. R(S) = {k'(S') * k”(S”) : k'(A) ∈ R', k”(B) ∈ R” i k(A) ϕ k(B) gdy ϕ jest znakiem „=”, a A i B są identyczne to złączenie nazywamy naturalnym. Przykład złączenia : SQL - Select *from posiada_działki, właściciel where posiada_dzialki.id_wlasciciela = wlasciciel.id_własciciela
|
BAZY DANYCH *Poziom logiczny - poziom spojrzenia użytkownika na bazę danych. * Poziom fizyczny - poziom związany z fizyczną implementacją bazy danych na poziomie struktur i operacji wewnętrznych komputera. * Podejście programocentryczne - skoncentrowanie uwagi analityków l programistów na programie, jego architekturze i efektywności l Innych parametrach eksploatacyjnych. Struktury danych podporządkowane są architekturze programu. * Podejście danocentryczne - podejście odwrotne, związane z sposobem organizacji struktur danych l dostępu do nich. Programy są środkiem prowadzącym do celu, satelitami krążącymi wokół struktur danych. Zadania realizowane przez bazę danych : 1) Zapewnienie trwałości danych dane nie ulatują po zakończeniu sesji pracy z komputerem, są stale dostępne 2) Efektywny (szybki) dostęp do dużej liczby danych, w szczególności w zawarty w wielu plikach; w bardziej złożonych przypadkach żąda się zapewnienia jednoczesnego dostępu do danych wielu Użytkownikom 3) 'Podtrzymywanie' choć jednego modelu danych, czyli możliwości opisu wycinka w postaci schematu danych. Najbardziej popularne modele: relacyjny, sieciowy, obiektowo-zorientowany - Języki wyższego rzędu (przyjazne dla użytkownika) do: *opisu schematu danych * manipulowania danymi, np. wyszukiwania, aktualizowania, usuwania danych *5) Zarządzanie transakcjami, czyli zapewnienie prawidłowego dostępu do danych wielu użytkownikom, którzy pracują z bazą w tym samym czasie 6) Syntaktyczna kontrola danych , które celem jest sprawdzanie składniowych aspektów danych, np.. Czy numer telefonu składa się z cyfr. 7) Semantyczna kontrola danych, która korzysta z tzw. zależności semantycznych zdefiniowanych przez projektanta bazy w celu sprawdzenia czy dane znajdujące się w bazie lub dane wprowadzane do bazy spełniają warunki stanowiące element modelowanego świata, np. czy wiek człowieka nie jest liczbą ujemną. 8) Zapewnienie niezależności danych, niewielkie zmiany w schemacie danych, albo zmiana fizycznego sposobu przechowywania danych w komputerze nie powinny prowadzić do istotnych zmian w jej eksploatacji 9) Ochrona danych rozumiana jako: * uniemożliwienie dostępu do danych lub uniemożliwienie wykonania pewnych operacji na danych osobom nieuprawnionym fizyczne zabezpieczanie danych przed Ich zniszczeniem lub kradzieże. 10) Skuteczne odtwarzanie danych po awariach systemu. 11) Obserwowanie, monitorowanie i ocena procesów zachodzących w bazie; System zarządzania bazą danych (DBMS - data base management system) - środki sprzętowe i programistyczne pozwalające zrealizować powyższe zadania. System bazy danych - baza danych (dane) wraz z jej systemem zarządzania LUDZIE SYSTEMU BAZ DANYCH : 1) Projektanci - dokonują analizy wycinka świata rzeczywistego oraz identyfikują te typy informacji i relacji występujące między nimi, które są ważne dla użytkownika. Określają rodzaj operacji jaki będzie wykonywany na danych. Wybierają sprzęt i oprogramowanie niezbędne do zrealizowania bazy danych. Ścisła współpraca z użytkownikiem. 2)Realizatorzy, programiści systemowi - materializacja wizji stworzone przez projektantów, obejmująca implementację: * schematów danych i zapisanie ich w dostępnym jeżyku opisu schematów * procedur wprowadzania, aktualizacji i usuwania danych * procedur przeglądania l wyszukiwania danych * procedur generowania sprawozdań, raportów i statystyk * procedur wspomagania 3) Administratorzy - osoby odpowiedzialne za stan bazy. Zadania: *tworzenie i zmiana opisu b.d *odwzorowanie opisu w pamięci *udzielanie użytkownikom zezwoleń dostępu do bazy *wykonywanie kopii archiwalnych *przywracanie stanu bazy po awarii *obserwowanie i dokumentowanie zjawisk zachodzących podczas eksploatacji 4) Użytkownicy: *którzy korzystają z systemu osobiście. Ograniczona wiedza na temat baz danych *którzy pracuj z baza na zlecenie innych osób. Specjaliści w dziedzinie informacji i użytkowaniu baz danych RELACYJNA BAZA DANYCH - *zbiór tabel opisujący obiekty lub związki w modelowym świecie
*zbiór zależności semantycznych, które opisują ogólne zależności w opisywanym świecie : - każda z trzech pierwszych cyfr ciągu będącego wartością atrybutu nr_indeksu musi być 0,1 lub 2; - jeśli w tabeli `uczestnictwo' występuje krotka xxx-xxxx G12-000 to musi wystąpić również krotka xxx-xxxx M09-343 (gdy student uczęszcza na wykład z geodezji to musi uczęszczać również na wykład z matematyki); NORMALIZACJA - proces przekształcania struktur danych prowadzących do uzyskania struktur relacyjnych (tzw. 1NF, 2NF l 3NF). Podstawowy zabieg przy przechodzeniu od struktury encja - związek do struktury relacyjnej. Proces obejmuje: *eliminacje atrybutów powtarzalnych poprzez zastąpienie Ich odrębnymi relacjami; *„spłaszczenie" struktury danych poprzez eliminację atrybutów złożonych; *zastąpienie związków relacjami; *ustalenie pierwotnych l obcych kluczy, które reprezentują związki semantyczne; *wyeliminowanie niepożądanych zależności (np. funkcyjnych) pomiędzy kolumnami relacji poprzez wprowadzenie nowych relacji PIERWSZA POSTAĆ NORMALNA - *Reprezentacja danych zgodnie z którą wszystkie dane są zapisane w postaci tablic (relacji) o określonej liczbie kolumn i określonej liczbie wierszy; *Elementy tablic muszą być wartościami atomowymi (bez struktury) i nie mogą być odsyłaczami do wierszy tablicy; *W ramach tablicy wiersze nie mogą się powtarzać; *Pierwsza forma normalna jest podstawowym założeniem modelu relacyjnego DRUGA POSTAĆ NORMALNA - relacja nie jest w drugiej formie normalnej jeżeli jej klucz składa się z dwóch lub więcej atrybutów i pewien niekluczowy atrybut znajduje się w zależności funkcyjnej od części klucza. Nie spełnienie warunku drugiej formy normalnej prowadzi do redundancji i anomalii aktualizacyjnych.
TRZECIA POSTAĆ NORMALNA - *Relacja znajduje się w trzeci formie normalnej, jeżeli nie zawiera tranzytowych zależności funkcyjnych, tj. takich trzech atrybutów A, B, C, że zachodzi A -> B oraz B -> C *Nie spełnienie warunku drugiej formy normalnej prowadzi do redundancji i anomalii aktualizacyjnych. *Eliminacja zależności tranzytowych wyeliminowanie atrybutu C z danej relacji (projekcja) oraz utworzenie nowej relacji zawierającej atrybuty B i C. DIAGRAM ZWIĄZKÓW ENCJI ERD - Cele procesu projektowania bazy danych jest: * Wyspecyfikowanie wymagań użytkowników przyszłej bazy danych *Utworzenie schematu bazy danych *ERD jest pośredni model pomiędzy wymaganiami użytkowników a schematem bazy danych. Powinien w sposób jednoznaczny określić wymagania użytkowników, umożliwiając im sprawdzenie czy analityk systemu rzeczywiście dobrze zrozumiał ich intencję i specyfikę firmy. RODZAJE ELEMENTÓW ERD - 1. Encja coś co istnieje, co jest odróżnialne od innych, o czym informację trzeba znać lub przechować, np. dom, działka, student 2. Atrybut jest to własność encji danego typu, reprezentowana pewną własnością, np. liczbą całkowitą, liczbą rzeczywistą, napisem. Atrybut powinien opisywać encje, przy której śle go umieszcza np. numer miejsca atrybut biletu do kina czy atrybut fotela w klnie. Atrybut lub zbiór atrybutów dla danego typu encji, których wartość jednoznacznie Identyfikuje każdą Instancje encji nazywamy kluczem. Przykład atrybutu encji dom; ilość kondygnacji, funkcja budynku, właściciel. 3. Związek jest to uporządkowana lista encji. Każdy związek określa pewną relacje między zbiorami egzemplarzy encji wchodzących w skład związku. Przykłady: pracownik pracuje w dziale, kraj eksportuje towar. Rodzaje związków : * Związek wieloznaczny m:n, wiele do wiele. Przykład: związek pomiędzy encjami: osoby a projekty, każda osoba może brać udział w wielu projektach, z kolei w każdym projekcie może brać udział wiele osób. Związek nie ma bezpośredniej reprezentacji w relacyjnej bazie danych, należy go na binarne związki jednoznaczne. *Związek jednoznaczny 1: n, wiele do jeden, jeden do wiele. Przykład każda osoba może być zatrudniona w jednym dziale ale w każdym dziale może być zatrudnionych wiele osób *Związek jedno-jednoznaczny 1:1, jeden do jeden. Przykład każdy student jest osobą. Relacyjna baza danych relacja-podzbiór iloczyn kartezjańskiego listy dziedzin Zbiory wartości D1= {0,1,2}D2={tak,nie} D1*D2*...Dk (v1,v2...vk) gdzie v1εD1,v2εD2 ... D1*D2 , k2 {(0,tak), (0,nie),(1,tak),(1,nie)...} S={A1,A2..An} schemat formalny relacji {Nr indeksu, nazwisko, imię, rok urodzenia}{A1,A2..An}- zbiór nazw atrybutów z każdym atrybutem Ai1<=i<=n wiążemy dziedziną di: D- suma dziedzin atrybutów A1A2...An k odwzorowane k:s - D. R. relacją na schemacie S nazywamy zbiór {k,k2...kn} takich ,że dla każdego k∈ R musi k(Ai) Di, 1< i<n . Odwzorowanie k1,k2...kp nazywamy krotkami np.3 relacje student, wykład, uczestnictwo OPERACJE NA RELACJACH Selekcja Niech będzie relacja R rozpięta na schemacie S, atrybutu A S oraz a dom (A) - dziedzina atrybutu A wykonanie operacji selekcji Σw(R) prowadzi do utworzenia R' = { k∈ R : w (k) =true} warunek `w' buduje się z warunków elementarnych k(A) φa ,k(A)φk(B) gdzie φ jest symbolem relacji w dziedzinie dom(A) np.dla dziedzin liczbowych φ {#,=,>,<} .Jeżeli w1 i w2 są warunkami elementarnymi to warunkami są : w1 and w2, w1 or w2 , NOT w1 SQL - Select * from posiada_dzialki where obreb = 344
Rzut Niech będzie relacja R rozpięta na schemacie S Zbiór atrybutów S'< S wykonane operacji rzutu лs'(R) prowadzi do utworzenia relacji R' = {k(S'):k<R}.Definicja mówi, że relacja R' powstaje z R przez usunięcie wszystkich kolumn odpowiadającym atrybutom ze zbioru s-s', a następnie usuwa się o ile istnieją wszystkie powtórzenia krotek Przykład rzutu (usunięcie kolumny). SQL - Select nr_dzialki, obreb from posiada_dzialki
Złączenie Niech będzie relacja R' rozpięta na schemacie S', R” na schemacie S” oraz S = S'∪S”. Przyjmujemy, że atrybut A ∈ S' oraz B ∈ S”. Niech k' i k” oznaczają krotki z relacji R' i R” zaś k' * k” oznacza sklejenie krotek. Wykonanie operacji złączenia R' * R” przy warunku k(A) ϕ k(B) gdzie ϕ ∈ {≠ ≥ ≤ > < =} prowadzi do utworzenia relacji R. R(S) = {k'(S') * k”(S”) : k'(A) ∈ R', k”(B) ∈ R” i k(A) ϕ k(B) gdy ϕ jest znakiem „=”, a A i B są identyczne to złączenie nazywamy naturalnym. Przykład złączenia : SQL - Select *from posiada_działki, właściciel where posiada_dzialki.id_wlasciciela = wlasciciel.id_własciciela
|
|
|
|