Bazy danych w sterowaniu funkcje systemu zarządzania bazą danych, schemat pojęciowy, normalizacja relacji Jeffrey D. Ullman Systemy baz danych Claude Delobel Michel Adiba elacyjne bazy danych Paul Beynon-Davies Systemy baz danych Zbiór danych o określonej strukturze, mogący zaspokoić potrzeby użytkowników, korzystających z niego w sposób selektywny, w dogodnym dla siebie czasie. Zbiór ten jest zapisany na zewnętrznym nośniku pamięciowym komputera SAMOLOTY LOTNISKA PZEWOŹNICY OZKŁAD LOTÓW Inżynier obsługi Inwestor Pasażer 1
Oprogramowanie umożliwiające współpracę użytkownika z bazą danych zarządza organizacją danych umożliwia wyszukiwanie danych Opis danych logiczny, fizyczny Korzystanie z bazy informatycy, nieinformatycy Integralność danych reguły (warunki) integralności Poufność danych prawa dostępu Współbieżność dostępu czytelnicy i pisarze Niezawodność Poziom wewnętrzny sprzęt Poziom pojęciowy Model świata rzeczywistego Język opisu danych Model danych Poziom zewnętrzny interfejs użytkownika Program użytkowy Użytkownik Poziom zewnętrzny Poziom pojęciowy Poziom fizyczny Przepływ rozkazów Przepływ danych 2
Język opisu danych - zapis opracowanego schematu pojęciowego Definiowanie klas obiektów Definiowanie powiązań Warunki integralności danych Język manipulowania danymi Proste zapytania użytkowników Programy użytkowe Encja obiekt, jednostka dająca się jednoznacznie wyróżnić. Zbiór encji określony na podstawie wybranego kryterium grupowania. OSOBY SAMOCHODY UCZUCIA Przez wyliczenie elementów: PŁEĆ = {męska,żeńska} Przez podanie własności: x OSOBA i płeć(x)=męska Za pomocą iloczynu kartezjańskiego: A B = {(a,b): a A, b B} PATIA OK Za pomocą operatorów: sumy, iloczynu, różnicy Powiązanie jest relacją dwuczłonową na zbiorach encji X i Y. X F G Y F, G odwzorowania odwrotne względem siebie X zbiór źródłowy odwzorowania F Y zbiór docelowy odwzorowania F 3
X: Y: STUDENT KIEUNKEK_I_OK Piotr Jan Anna Tomasz 2_rok_informatyki 1_rok_zarządzania 3_rok_informatyki 2_rok_marketingu F zapisany, np. zapisany(jan)=2_rok_informatyki G grupa, np. grupa(2_rok_informatyki)={piotr,jan} Jednowartościowe każdemu elementowi ze zbioru źródłowego jest przyporządkowany co najwyżej jeden element ze zbioru docelowego Wielowartościowe przynajmniej jednemu elementowi ze zbioru źródłowego jest przyporządkowany więcej niż jeden element ze zbioru docelowego Całkowite każdemu elementowi ze zbioru źródłowego jest przyporządkowany przynajmniej jeden element ze zbioru docelowego Częściowe przynajmniej jednemu elementowi ze zbioru źródłowego nie jest przyporządkowany żaden element ze zbioru docelowego O określonej liczności minimalnej i maksymalnej zbioru wartości OSOBA płeć(1) { męska,żeńska} PATIA OK Kandydat (0) OSOBA wiek (1) LICZBA OSOBA mąż(0) { x OSOBAi płeć(x) = żeńska} { x OSOBAi płeć(x) = męska} żona(0) 1. Określenie zbiorów encji składających się na dany system 2. Określenie powiązań między zbiorami encji 3. Określenie warunków dotyczących powiązań odzice(2,2) OSOBA Dzieci (0) OSOBA 4
1. Udostępnienie schematów danych łatwych do wykorzystywania. Nie jest konieczna znajomość poziomu fizycznego Wszystkie zbiory encji, niezależnie od typu są reprezentowane jednakowo 2. Zapewnienie logicznej i fizycznej niezależności danych. Logiczna różnym zastosowaniom odpowiadają różne obrazy tego samego schematu pojęciowego Fizyczna możliwa jest modyfikacja fizycznej organizacji danych i ścieżek dostępu 3. Udostępnienie języków wysokiego poziomu. Język nieproceduralny określa się informacje, które mają być wybrane z bazy danych, bez definiowania sposobu ich uzyskania 4. Optymalizacja dostępu do bazy danych. 5. Zapewnienie integralności i poufności danych. Warunki integralności definiowane za pomocą pojęć logicznych Dane poufne i sposób ich ochrony definiowane ściśle dzięki językom nieproceduralnym 6. óżnorodność zastosowań. 7. Udostępnienie podejścia metodologicznego. Zbiór tablic zawierających dane NrPrz Nazwa NrStd Nazwisko Adres 152 Statystyka 1215 Abacki Kraków 210 Bazy Danych 1218 Babacki Łódź 212 Jęz. Ang. 1230 Cabacki Toruń 255 Filozofia STUDENT STUDENT STUDENT nazwiskost udenta(1) studentonazwisku (0) adresstudenta (1) zapisany (1) Studentzapisany (0) NAZWISKO ADES KIEUNEK _ I _ OK tworzymy relację SŁUCHACZE ( STUDENT, NAZWISKO, ADES, KIEUNEK _ I _ OK ) dla której SŁUCHACZE ( s, n, a, k) = prawda ( n = nazwiskostudenta( s) a = adresstudenta( s) k = zapisany ( s) 5
DOSTAWCY (Nazwa_dostawcy, Adres_dostawcy, Towar, Cena) Krzak Warszawa, Królewska 25 Zeszyt 60-kartkowy 3,00 zł Krzak Warszawa, Królewska 25 Kątomierz 2,50 zł Abacki Kraków, Kazimierza Wielkiego 13 Zeszyt 60-kartkowy 2,80 zł Byle S.A. Wrocław, Zakręcona 44 Linijka 30 cm 1,80 zł edundancja Anomalie przy aktualizacji Anomalie przy wstawianiu Anomalie przy usuwaniu Dana jest relacja (X,Y,Z). Mówimy, że Y jest funkcyjnie zależny od X X Y wtedy i tylko wtedy, gdy dla dowolnych wartości (a,b,c) i (a,b,c ) przyjmowanych przez X,Y,Z zachodzi: ( ( a, b, c) = prawda ( a, b', c' ) = prawda) ( b = b' ) czyli wartość X wyznacza wartość Y PACOWNICY(Numer, Nazwisko, Imię, ok_ur, Płaca) X={Numer, Nazwisko}, Y={Imię, ok_ur}, Z=Płaca Y jest funkcyjnie zależny od X SKLEPY(Branża, Nazwa, Adres) X=Branża, Y=Nazwa, Z=Adres Y nie jest funkcyjnie zależny od X Zależność funkcyjna X Y jest zależnością pełną, jeśli dla żadnego podzbioru właściwego X zbioru atrybutów X nie jest spełniona zależność funkcyjna X ' Y X jest kluczem relacji (X,Y,Z) jeśli zależność funkcyjna X Y, Z jest pełną zależnością funkcyjną 6
PLAN(Przedmiot, Dzień, Godzina, Sala, Wykładowca) X={Dzień, Godzina, Sala} Y={Przedmiot, Wykładowca} PLAN X Y Zależność ta jest pełna, gdyż nie istnieje podzbiór zbioru atrybutów X={Dzień, Godzina, Sala}, od którego byłby funkcyjnie zależny zbiór atrybutów Y={Przedmiot, Wykładowca}. X={Dzień, Godzina, Sala} jest kluczem relacji, gdyż wyznacza wszystkie pozostałe atrybuty. Operacja rozkładu relacji polega na zastąpieniu relacji dwoma relacjami 1 i 2 takimi, że każdy ze zbiorów atrybutów relacji 1 i 2 stanowi podzbiór zbioru atrybutów relacji, a relacje 1 i 2 zawierają te same informacje co relacja. elacja jest w pierwszej postaci normalnej (1NF), jeśli każda wartość atrybutu, w każdej krotce tej relacji jest wartością elementarną, tzn. nierozkładalną elacja jest w drugiej postaci normalnej (2NF), jeśli każdy atrybut tej relacji, nie wchodzący w skład żadnego klucza potencjalnego, jest w pełni funkcjonalnie zależny od wszystkich kluczy potencjalnych. (Nr_sklepu, Towar, Dział, Kierownik) Klucz: {Nr_sklepu, Towar} 7
elacja jest w trzeciej postaci normalnej (3NF), jeśli jest w drugiej postaci normalnej i każdy jej atrybut nie wchodzący w skład żadnego klucza potencjalnego nie jest przechodnio funkcjonalnie zależny od żadnego klucza potencjalnego tej relacji. { Nr_sklepu,Towar} Dział Kierownik 1(Nr_sklepu, Towar, Dział) 2(Nr_sklepu, Dział, Kierownik) 8