Wprowadzenie do baz danych
O czym będziemy mówić Bazy danych - zastosowania Typy bazy danych Terminologia Programy do zarządzania bazami danych SQL Bazy danych Open Source
Dlaczego mówimy o bazach danych Bazy danych - podstawa współczesnych systemów informatycznych. Inteligentny użytkownik partnerem w rozmowie z projektantem, programistom, deweloperem, lepiej może wyrazić swoje potrzeby i zrozumie języka używanego przez kadry IT, jest w stanie opisać model i procesy biznesowe stosowane w przedsiębiorstwie w sposób ułatwiający tworzenie i rozwój aplikacji.
Kiedy używać bazy danych? Do czego są używane komputery? Gromadzenia informacji Przetwarzania informacji Wyszukiwania informacji Digital Library Initiative - dostęp do informacji multimedialnej przez WWW: teksty, mapy, obrazy, muzyka, filmy. http://sunsite.berkeley.edu/collections/ Biblioteka Kongresu Narodowego USA (Congress Library) Ok. 20 Terabajtów tekstu + ponad 10 TB zdjęć + 200 TB map + 500 TB filmów + 2000 TB płyt CD = ok. 3 Petabajtów. Dyski komputerów są w stanie przechowywać wszystko, co... wprowadzimy!
Czym jest Baza Danych System bazy danych zawiera: zbiór danych zapisanych w pamięciach masowych (dysk twardy, CD-ROM, DVD); system zarządzania bazą danych (program) użytkownicy bazy danych administrator (ang. DataBase administrator DBA) 1 administrator jest w stanie administrować do 40 baz danych i więcej projektant użytkownik (business user, business analyst) sprzęt (serwery, SAN, NAS...)
Czym jest baza danych Dane powinny służyć możliwie wielu zastosowaniom Baza danych zbiór nie powtarzających się danych elementarnych Baza danych jest zbiorem informacji (danych) dotyczących określonego tematu Baza danych (ang. Data Base) - zbiór wystąpień różnych typów rekordów oraz opisów powiązań między rekordami i danymi elementarnymi Redundacja - nadmiarowość - powtórzenie tej samej informacji Cele redundacji informacji w bazach danych zabezpieczenie informacji wyszukiwanie informacji
Czym jest baza danych Baza danych zbiór wzajemne powiązanych danych pamiętanych bez zbędnej redundacji, służących jednemu lub wielu zastosowaniom w sposób optymalny, dane są niezależne od programów, które z nich korzystają przy dołączaniu (dodawaniu) i modyfikacji oraz wyszukiwaniu danych stosuje się wspólną metodę umożliwiającą sprawdzanie poprawności wykonywanych operacji. (James Martin, Computer Data Base Organization Prentice Hall, 1977, James Martin, Organizacja baz danych, PWN, 1983, s. 30)
Operacje na danych Wyszukiwanie Aktualizacja Wprowadzanie Przechowywanie Przechowywanie informacji zgodnie z wymaganiami ustawowymi. Usuwanie
Personalne bazy danych Co przechowują Lista - adresy, telefony Lista książek, monet,... Co używają Edytor tekstu Arkusz kalkulacyjny Program w telefonie komórkowym, Osobisty Organizator (ang. Personal Information Manager) - programy do zarządzania podręczną informacją
Przykłady zastosowań bazy danych Dane o wyrobach Dane o kontrahentach Dane o studentach Dane o surowcach Dane o książkach Dane o projektach Dane o częściach Poczta elektroniczna Dane o pacjentach Dane o dostawcach Dane o pracownikach Dane o jednostkach biznesowych Dane dotyczące Planowania Wykonania Planu
Przykłady zastosowań bazy danych GIS, Systemy Informacji Geograficznej - bazy danych połączone z cyfrowymi mapami. Systemy udostępniające pliki multimedialne Dun & Bradstreet (D&B) - największa na świecie firma (oddziały w 60 krajach, 2 miliony klientów rocznie) zajmująca się dostarczaniem informacji gospodarczych. Wyszukiwarki internetowe www.google.com www.yahoo.com www.onet.pl www.wp.pl www.szukaj.pl
Przykłady zastosowań bazy danych Social Security, USA: 40.000 terminali, 20 milionów transakcji dziennie. NASA - przyrost 100 MB/dzień Biblioteka Kongresu USA CERN Genewa Polska PESEL, Powszechny Elektroniczny System Ewidencji Ludności System rejestracji pojazdów ZUS GUS - Główny Urząd Statystyczny, dane statystyczne, rejestr REGON LEX - krajowy system informacji prawnej
Typy bazy danych bazy tekstowe, Textract, http://www.textract.com - bazy tekstowe, np. archiwum gazety, dla setek gigabajtów, szybkie wyszukiwanie i indeksacja informacji bazy danych bez struktury (free form) - informacja niestrukturyzowana
Typy bazy danych - bazy oparte na płaskich plikach tekstowych (ang. flat file) Stosowane w latach 60-70 stosowane w komputerach mainframe. Informacje są umieszczane w polach, które albo mają stała szerokość, albo są rozdzielane znakiem specjalnym, na przykład ;. Znak rozdzielający nie może występować w samych danych. Występują pola Numer Identyfikacyjny - 4 kolumny, Profesja - 5 do 15 kolumn, Imię i Nazwisko - 16 do 40 kolumn. Przykład danych opartych na płaskich plikach oddzielonymi ;. 1234;księgowy;Adam Rutkowski; 3241;tokarz;Rafal Baniewicz;
Typy bazy danych - bazy oparte na płaskich plikach tekstowych (ang. flat file) Przykład danych opartych na płaskich plikach o stałej szerokości. 1234 księgowy Adam Rutkowski 3241 tokarz Rafal Baniewicz
Typy bazy danych - bazy oparte na płaskich plikach tekstowych (ang. flat file) Płaskie pliki są często wykorzystywane do przenoszenia danych pomiędzy różnymi implementacjami baz danych. Na przykład plik Exportu z jednej wersji Oracle jest Importowany do wyższej wersji bazy danych Oracle; dane są przenoszone z jednej bazy do drugiej. System zarządzania bazy danych Oracle potrafi widzieć płaskie pliki w systemie operacyjnym jako tabelę bazy danych, jeżeli opiszemy strukturę plików; podamy miejsce pliku - dysk, katalog.
Typy bazy danych - bazy hierarchiczne Architektura modelu hierarchicznej bazy danych opiera się na relacji nadrzędny / podrzędny. Na wierzchu hierarchicznej struktury jest główna tabela, która wskazuje tabele podrzędne, związane z nią. Model hierarchicznej bazy danych ma postać typu odwróconego drzewa. Przykłady hierarchicznej bazy danych baza domen w Internecie Wydawca Wykonawca Sklepy Album Album Stan magazynu Sprzedaż» Piosenka
Typy bazy danych - bazy hierarchiczne W bazie danych powinno się przechowywać możliwie najmniej nadmiarowych informacji. Przy aktualizacji danych jest konieczna aktualizacja tych danych jednocześnie w wielu miejscach, w celu uniknięcia powstawania niespójności danych. Tabela nadrzędna może posiadać wiele tabel podrzędnych. Tabela podrzędna może mieć tylko jedną tabelę nadrzędną. W celu odczytania danych z tabeli podrzędnej trzeba najpierw odczytać tabelę nadrzędną. System zarządzania bazy danych Oracle ma możliwość implementacji w relacyjnej bazie danych modelu hierarchicznego - drzewa (ang. tree) i wyszukiwania informacji w nim poprzez zapytania, które przeszukują drzewa.
Typy bazy danych - model sieciowy Rozwój modelu hierarchicznego. Tabele podrzędne mogą mieć wiele tabel nadrzędnych. Nie ma konieczności odczytywania głównej tabeli w celu uzyskania dostępu do danych z tabel podrzędnych. Relacje pomiędzy tabelami w modelu sieciowym noszą nazwę struktury grupowej, w której jedna tabela jest właścicielem a inne tabele są członkami struktury. Struktury grupowe umożliwiają realizację relacji jeden-do-wielu pomiędzy tabelami. Jeśli zostanie zmieniona struktura bazy danych, zmiany wymaga również aplikacja. Trudna zmiana, modyfikacja struktury raz utworzonych baz danych.
Typy bazy danych - model Wydawca sieciowy Wykonawca Sklepy Album Zamówienia Stan Magazynu Sprzedaż» Piosenka
Typy bazy danych - relacyjny model Najczęściej używanym obecnie modelem baz danych jest model relacyjny. Ojciec koncepcji relacyjnego modelu bazy danych jest badacz firmy IBM dr E.F. Codd. Jako podstawę formalną relacyjnego modelu baz danych uznaje się opracowany przez niego dokument ang. A Relational Model of Data for Large Shared Data Banks - 1970 ( Relacyjny model danych dla dużych współużytkowanych banków danych ) W tym modelu jest najłatwiej zaimplementować kontrolę integralności danych poprzez stosowanie ograniczenia (ang. constraints). Łatwo można zmieniać strukturę bazy danych.
Koncepcje relacyjnego modelu według E.F. Codda Użytkownicy widzą logiczny sposób przechowywania danych i nie muszą poznawać ani rozumieć fizycznego sposobu ich przechowywania. Łatwiejszy proces odczytywania danych. Wszystkie informacje w relacyjnej bazie danych (łącznie z nazwami tabel i kolumn) są reprezentowane bezpośrednio, jako wartości przechowywane w tabelach. Każda wartość w relacyjnej bazie danych musi być dostępna poprzez określenie nazwy tabeli, wartości klucza podstawowego i nazwy kolumny. Oznacza to, że nie trzeba znać fizycznej lokalizacji danych i że można w sposób niezależny bezpośrednio odczytywać dowolne rekordy znajdujące się w tabelach bazy danych.
Koncepcje relacyjnego modelu według E.F. Codda DBMS powinien obsługiwać puste wartości (dane nieznane lub nieadekwatne), odróżniając je od wartości domyślnych i (w sposób niezależny) od ich dziedziny. Opis bazy danych i jej zawartości jest reprezentowany na poziomie logicznym, w postaci tabel, i może być odczytywany za pomocą zapytań wyrażonych w języku bazy danych. Oznacza to, że meta dane, czyli dane opisujące dane, są przechowywane również w tabelach bazy danych. Co najmniej jeden język rozumiany przez bazę danych musi mieć dokładnie zdefiniowaną składnię i musi być zrozumiały dla użytkowników. Musi on umożliwiać definiowanie danych, modyfikację danych, definiowanie reguł integralności, autoryzację i obsługę transakcji.
Koncepcje relacyjnego modelu według E.F. Codda System musi umożliwiać aktualizację danych poprzez wszystkie perspektywy, które teoretycznie pozwalają modyfikować dane. DBMS musi pozwalać na odczytywanie, wstawianie, aktualizację i usuwanie danych na poziomie zbiorów. Zmiana metod dostępu lub struktur przechowujących dane na poziomie fizycznym nie może wpływać logicznie na napisane aplikacje i zapytania. Zmiany w strukturze tabel mają mieć jak najmniejszy wpływ na napisane aplikacje i zapytania. W przypadku rozdzielenia jednej tabeli na dwie, aplikacja będzie musiała ulec zmianie ñ tak aby odpowiednie kolumny były odczytywane z obu tabel.
Koncepcje relacyjnego modelu według E.F. Codda Język bazy danych musi umożliwiać definiowanie reguł integralności chroniących dane. Reguły te muszą być przechowywane w dostępnym na bieżąco katalogu i nie może istnieć możliwość ich pominięcia podczas modyfikacji danych. Fizyczne rozmieszczanie i przemieszczanie danych nie może mieć wpływu na napisane aplikacje i zapytania. Musi istnieć możliwość pominięcia reguł integralności danych poprzez użycie języków niskiego poziomu.
Typy baz danych - relacyjny model - wymagania wobec użytkownika Użytkownicy muszą się nauczyć języka SQL. Użytkownicy muszą wiedzieć, jakie są relacje pomiędzy tabelami i kto jest ich właścicielem. W celu odczytania danych zawartych w pojedynczej tabeli należy: znać jej właściciela, struktury tabeli i mieć uprawnienia do jej odczytania.
Typy baz danych - obiektowe bazy danych Obiektowa baza danych (ang. object-oriented database) to taka baza, w której dane można przechowywać, definiować i korzystać z nich za pośrednictwem języków programowania obiektowego. Języki programowania obiektowego - C++, Visual Basic, Java. W obiektowych bazach wyróżniamy dwie podstawowe struktury: obiekty (ang. objects) ze strukturami posiadającymi identyfikatory umożliwiające tworzenie powiązań z innymi obiektami literały (ang. literals) to wartości związane z obiektami, które nie posiadają identyfikatorów.
Typy baz danych - obiektowe bazy danych Obiekty mogą dziedziczyć właściwości od innych obiektów. Poprzez nadawanie wartości właściwościom obiektów określa się między innymi sposób ich zachowania. W przypadku bazy obiektowej język programowania obiektowego służy zarówno do definiowania struktury bazy danych, jak i do tworzenia aplikacji będącej interfejsem tej bazy. Obiektowy model danych określa zbiór obiektów; ich stan; uch zachowanie; relacje między nimi
Typy baz danych - obiektowe bazy danych Odpowiednikiem tabeli w bazie relacyjnej jest klasa w bazie obiektowej. Obiekty klasy; dziedziczenie... Do odczytywania wartości z innych klas oraz do dodawania i usuwania wartości służą operacje. Typ w relacyjnej bazie danych można zdefiniować jako grupę obiektów i literałów posiadających ten sam zestaw właściwości, które można modyfikować dla konkretnych obiektów.
Typy baz danych - obiektowe bazy danych Do operowania na danych w obiektowej bazie danych służy obiektowy język zapytań (ang. object query language - OQL). Jest on oparty na standardowym języku baz relacyjnych - SQL, ale posiada dodatkowe możliwości, dzięki którym można wykonywać operacje na danych przechowywanych w postaci obiektów posiadających właściwości. Jeżyk zapytań Object Query Language (OQL) grupowanie obiektów zamki - metoda zamykania przez transakcje dostępu do obiektów zasady zachowania integralności bazy danych poprawność dziedziczenia hierarchia dziedziczenia
Typy baz danych - obiektowe - relacyjne bazy danych (ang. object-relational) Obiektowo-relacyjne bazy danych łączą w sobie koncepcje relacyjnego modelu bazy danych z obiektowym stylem programowania. Model ten ma stanowić połączenie najlepszych właściwości modelu obiektowego i relacyjnego. Międzynarodowa Organizacja Normalizacyjna (ang. International Standards Organization ñ ISO) ujęła koncepcje obiektowo-relacyjne w nowym standardzie języka SQL o nazwie SQL3, nazywanym również SQL99. Architektura relacyjnej bazy danych staje się bardziej trójwymiarowa. Można tworzyć własne typy danych.
Typy baz danych - obiektowe - relacyjne bazy danych (ang. object-relational) Użytkownik musi rozumieć zarówno koncepcje obiektowe, jak i relacyjne. W niektórych implementacjach modelu obiektowo-relacyjnego nie jest możliwe dziedziczenie właściwości obiektów.
Typy baz danych OLTP (On Line Transaction Processing) - systemy transakcyjne. Transakcja - pełny obieg danych i aktualizacja bazy. system sprzedaży, system rezerwacji biletów system finansowo - księgowy system obsługi transakcji bankowych DSS (Decision Support Systems) - Systemy wspomagające podejmowania decyzji. system obsługi wniosków o udzielania kredytów Rozproszone bazy danych - na wielu systemach komputerowych Sieciowe bazy danych, udostępnianie baz danych przez WWW.
Terminologia Banki danych - bazy danych w których przechowuje się informację historyczne. Hurtownie danych (data warehouse): zweryfikowane dane z różnych baz, przydatne do analiz i podejmowania strategicznych decyzji. ODBS (Open Data Base Systems), otwarty standard baz danych. ODBC (Open DataBase Connectivity), otwarta komunikacja pomiędzy bazami danych, standard wymiany danych pomiędzy bazami danych różnych producentów - na przykład między bazą danych Oracle i Ms Access. IDAPI (Integrated Database Application Programming Interface), zintegrowany interfejs programowy dla aplikacji, które korzystają z baz danych.
Terminologia Replikacja - proces powielania informacji, całej bazy, jej fragmentów lub elementów (np. indeksów). Baza - produkcyjna -> baza zapasowa (ang. stendbay) Baza - produkcyjna -> hurtownia danych (ang. data warehouse) Replikacja scalana - łączenie zmian z kilku baz danych, wymaga rozstrzygania konfliktów. System informujący o wolnych miejscach w samolotach różnych przewoźników. Replikacja migawkowa - pobiera chwilowy obraz bazy danych. Robi zdjęcie bazy danych w danym momencie czasowym. Replikcja transakcyjna - wykorzystuje model wydawcysubskrybenta wraz z dziennikiem przeprowadzonych transakcji.
Terminologia OLAP - On-Line Analytical Processing, czyli proces podsumowania dużych ilości informacji na bieżąco. Sygate Analyst Data Mining, albo Knowledge Discovery in Databases (KDD) - narzędzia do odkrywania wiedzy w bazach danych. Oracle Discover
Terminologia Projektowanie - proces odzwierciedlenia modelu biznesowego w bazę danych. Jak funkcjonuje firma Znajomość modelu stosowanego w bazach danych - relacyjny, obiektowy UML
Opisy danych - definicje Opis logiczny danych - opis danych oraz powiązań między danymi przedstawiane programiście lub użytkownikowi Opis fizyczny - jak dane są przechowywane na dysku
Obiekty relacyjnych baz danych Obiekty w relacyjnej bazie danych są logiczną reprezentację fizycznej lokalizacji danych. W relacyjnych bazach danych występują różne typy obiektów. Związane z Definicją danych Tabela (ang. table) Perspektywa widok (ang. view) - tabela wirtualna, wygląda i zachowuje się jak tabela. Struktura i dane perspektywie pochodzą z tabeli, na której dana perspektywa jest oparta. Za pomocą perspektywy można odczytywać dane, a czasem również je aktualizować. Z powodu bezpieczeństwa, zamiast do tabeli użytkownicy zwykłe mają dostęp do perspektywy.
Obiekty relacyjnych baz danych Ograniczenie (ang. constraint) - obiekt służący do określania reguł dotyczących danych. Ograniczenia kontrolują poprawność danych umieszczanych w kolumnach. Są one również wykorzystywane do utrzymywania integralności powiązań w relacjach nadrzędny-podrzędny. Indeks (ang. index) - obiekt służącym do przyśpieszenia procesu odczytywania danych z tabeli.
Obiekty relacyjnych baz danych Związany z Metodę dostępu do obiektów baz danych Wyzwalacz (ang. trigger) - fragment składowanego w bazie danych kodu, który jest uruchamiany w wyniku zachodzenia określonych zdarzeń. Uruchomienie wyzwalacza może spowodować zmodyfikowanie danych w wyniku wykonania operacji na innych danych. Wyzwalacze dobrze nadają się do utrzymywania w bazie, powtarzających się w wielu miejscach, danych. Procedura (ang. procedure) - program składowany w bazie danych. Procedury wykonywane są na poziomie bazy danych i służą przede wszystkim do wsadowego przetwarzania danych.
Elementy bazy danych Podstawowym elementem relacyjnych baz danych jest tabela. Wszystkie dane wprowadzane przez użytkownika są przechowywane w tabeli. Tabela jest zbudowana z kolumn. Tabela zawiera rekordy - wiersze. Wydawnictwo Helion PWE Autor Scott Urman Collete Rolland Tytuł Oracle 8. Programowanie w języku PL/SQL. Bazy danych. Od koncepcji do realizacaji
Pole, - definicje Pole - dana elementarna - najmniejsza jednostka danych mająca nazwę Adres Ulica Nazwa informuje jakie dane są przechowywane. Kolumna zawiera wartości danego pola dla wszystkich rekordów. Na przykład kolumna Wydawnictwo zawiera wartości: Helion PWE...
Rekord - definicje Rekordy - wiersze składają się z określonej liczby pól - kolumn. Rekordem (ang. record) nazywamy zestaw danych elementarnych. Rekord - może zawierać informacje dotyczące jednej faktury jednego kontrahenta...
Identyfikator obiektu Identyfikator obiektu - jeden z atrybutów obiektu, pełni rolę identyfikatora obiektu. Identyfikator obiektu musi być jednoznaczny - żaden inny obiekt nie może mieć tej samej wartości danego wyróżnionego atrybutu. Identyfikator obiektu PRACOWNIK - jest Numerem Pracownika Identyfikator obiektu Dostawca - jest Numerem Dostawcy
Identyfikator rekordu Identyfikator rekordu - może składać się z kilku identyfikatorów (identyfikatorów kilku obiektów)
Relacje między tabelami i modelowanie związków encji Encje - elementy, jednostki systemu. Encja - logiczne obiekty w bazie danych odpowiadające rzeczywistym obiektom (rzeczom, osobom). Encje reprezentują dane przedsiębiorstwa. Każda encja musi posiadać nazwę. Encja może posiadać także synonim - inną nazwę, pod której jest znana. Encje posiadają atrybuty dla każdego interesującego nas funkcjonalnego elementu obiektu rzeczywistego. Encje są przekształcane w tabele, a atrybuty w kolumny. W złożonych systemach 1 encja może być modelowana w kilku tabelach. Możliwe jest też modelowanie kilku encji w jednej tabeli. Hans Ladanyi, SQL- ksiega experta, Helion, Gliwice 2000, s. 658, 659
Encje - klucze Encje są powiązane pomiędzy sobą związkami (relacjami). Związek posiada dwa końce po jednym dla każdej encji które łączy. Relacje mogą być stałe /musi/ (wymagane) lub opcjonalne /może/. W bazie danych mogą się znajdować tabele, których rekordy można tworzyć tylko pod warunkiem istnienia odpowiedniego rekordu w innej tabeli. Na przykład możemy mieć w tabeli zakupy asortyment, tylko jeżeli on naj pierw jest wprowadzony w tabeli Kartoteka Asortymentu (Towaru). Hans Ladanyi, SQL- ksiega experta, Helion, Gliwice 2000, s. 658
Encje - klucze W innych tabelach mogą opcjonalnie występować rekordy odpowiadające rekordom innej tabeli. Na przykład w tabeli Zakupy nie muszą występować wszystkie elementy zbioru (Tabeli) Kartoteki Asortymentu (Towarowej). W Kartotece Asortymentowej mogą występować numery identyfikacyjne asortymentu zakupionego w poprzednich latach.
Encje - klucze Tabele mogą być powiązane wzajemnie za pośrednictwem wspólnych wartości kolumn noszących nazwę kluczy. Związki pomiędzy encjami są mapowane jako więzy kluczy obcych(#). Można tworzyć następujące typy relacji pomiędzy (encjami) tabelami: jeden - do - jednego jeden - do - wielu wiele - do - jednego wiele - do - wielu. Hans Ladanyi, SQL- ksiega experta, Helion, Gliwice 2000, s. 658
Encje - klucze Między tabelami może istnieć związek tabela nadrzędna / tabela podrzędna. Tabela nadrzędna może posiadać wiele tabel podrzędnych. Tabela podrzędna może być zależna od wiele tabel nadrzędnych. Mechanizm sprawdzania integralności odwołań zarządza relacjami pomiędzy tabelami nadrzędnymi i podrzędnymi, kontrolując dane wprowadzane do tabel. Można też definiować inne ograniczenia, określające dopuszczalne wartości danych dla poszczególnych kolumn i będące podstawą relacji pomiędzy tabelami. Na przykład w kolumnie (pole) płeć można wprowadzić ograniczenia wprowadzania tylko 2 wartości M lub K.
Związki encji - przykład dziecko rodzic dziecko dziecko Koniec rodzica jest zazwyczaj opcjonalny, co oznacza, że mogą istnieć rekordy rodziców bez przepisanych im rekordów dzieci. Koniec dziecka zazwyczaj jest wymagany - rekordy dzieci nie mogą istnieć bez związanych z nimi rekordów rodziców.
Związki encji - przykład Łączy pojedynczy wiersz z tabeli A z pojedynczym wierszem z tabeli B. Każdemu rekordowi w encji (tabeli) A może odpowiadać tylko jeden rekord w encji (tabeli) B, a każdemu rekordowi w encji B może odpowiadać tylko jeden rekord w encji (tabeli) A. Jedna osoba może mieć tylko jeden PESEL Jedna osoba może mieć tylko jednego małżonka w danym momencie. Kolumna, która identyfikuje wiersz musi być zdefiniowana jako kolumna klucza podstawowego albo jako klucza unikalnego. To oznacza że wartości tego klucza nie mogą być dublowane. Nie mogą istnieć dwie osoby z tym samym numerem PESEL.
Związki encji - przykład Relacja jeden do jednego Numer Kontrahenta do Numeru Kontrahenta Miesięczna tabela sprzedaży zawiera zagregowane, sumaryczne dane dotyczące sprzedaży do poszczególnych kontrahentów. KONTRAHENCI MIESIĘCZNA SPRZEDAŻ Numer Kontra -henta Nazw a Miast o Nume r Kontr a- henta Data Wartość brutto 00001 ADAX Kalisz 00001 04-11-03 150 00002 AMS Łódź 00002 04-11-03 210
Związki encji -jeden do wielu w tej samej tabeli - złączenie rekurencyjne Kolumna w tabeli wskazuje na inną kolumnę w tej samej tabeli. Modelowanie hierarchicznej struktury (bazy danych) w relacyjnym modelu. W diagramie ER ten związek jest wyrażany tak zwanym świnskim uchem Każdy pracownik ma szefa Pracownicy Każdy pracownik może nadzorować jednego lub więcej pracowników Hans Ladanyi, SQL- ksiega experta, Helion, Gliwice 2000, s. 662
Związki encji -jeden do wielu w tej samej tabeli - złączenie rekurencyjne Przykład struktury firmy Pracownik_ID Stanowisko Kierownik 0001 włascicieł 0 0002 Kierownik ds. Sprzedaży 0001 0003 Kierownik ds. zakupów 0001 0004 Osoba zamawiająca 0003 0005 Przedstawicieł handłowy 0002 0006 Przedstawicieł handłowy 0002
Związki encji - wielu do wielu Bezpośredni związek wielu - do - wielu pomiędzy dwoma tabelami. Na poziomie bazy danych taki związek nie istnieje. Ten związek w bazie danych jest prezentowany poprzez tabele intersekcji (przecięcia). Relacja wielu do wielu nie można zaimplementować w SQL. Zgodnie z zasadami dobrego projektowania powinno się unikać bezpośrednich relacji wiele-do-wielu. Jest to rozwiązanie niedobre pod wzglídem projektowym z powodu przechowywania nadmiarowych danych. Klient Umowa Prawnik Lekarze Wizyty Pacjenci
Definiowanie relacji i połączeń tabel Połączenie zewnętrzne (ang. outer join) - powoduje dołączenie do wyniku brakujących wartości jednego z pól. Brane są wszystkie rekordy z encji (tabeli) A i tylko te wartości z encji (tabeli) B, które odpowiadają (są równe kluczom z tabeli A). W Oracle takie połączenie się zapisuje następująco: tabela_a.klucz_a = tabela_b.klucz_b(+) Pracownik_Id Placa stała Pracownik_Id Premia 0001 900 0001 150 0002 1200 0003 140 0003 1900 0006 200 0004 2100 0005 1700 0006 1500
Definiowanie relacji i połączeń tabel Iloczyn kartezjański (ang. Cartesian Product) - pokazuje wszystkie kombinacje danych z dwóch lub więcej tabel. Czasami chcemy posiadać tabelę, która zawiera wszystkie elementy z dwóch tabel, które nie mają wspólnego klucza. Gdy połączy się dane z dwóch tabel bez warunku łączącego, wszystkie rekordy tabeli A są łączone z wszystkimi rekordami tabeli B. W większości przypadków powinno sií unikać łączenia kartezyjańskiego. Na przykład możemy zrobić łączenie kartezyjańskie pacjentów i lekarzy danej przychodni, wykładowców i sal, Dostawców i Producentów.
Jak projektować encje? Wywiady z użytkownikami Analiza wymagań Reingenering istniejącego systemu? Jakich raportów potrzebują użytkownicy? Jak powiązane są ze sobą encje? Należy unikać przechowywania danych nadmiarowych. Wprowadzenie encji łączącej mającej na celu wyeliminowanie relacji wiele-do-wielu powoduje powstanie dwóch relacji jedendo-wielu. Dwie oryginalne encje przestają być powiązane bezpośrednio.
Narzędzia modelowania diagramów związków encji (ang. Entity Relationship ER) Diagramy związków encji (ang. Entity Relationship ER) są standardowym sposobem prezentacji encji i ich związków. Używane do modelowania reingeneringu - remodelowanie - budowa modelu na podstawie istniejącej bazy danych Er-Win (Computer Associated?) Oracle Designer (Oracle) Power Designer (Sybase) S-Designer (Quest) Data Modeler (Rational Rose)
Normalizacja danych Procedura normalizacji danych wymusza standardy dla modelu danych zapobiega nadmiarowi zbytecznych danych podstawa do integralności bazy danych Normalizacja teoretycznie oznacza poprawę wydajności. Denormalizacja danych w celu wydajności i szybkości wyszukiwania informacji przy mniejszych tabelach. Pięć postaci normalnych Większość projektów spełnia przynajmniej trzecią postać normalną. Hans Ladanyi, SQL- ksiega experta, Helion, Gliwice 2000, s. 689
Relacje między tabelami Mamy trzy tabele, r, q, s, które mają (pola, kolumny odpowiednio r - A, B q - C, D s - E, F Chcemy uzyskać zbiór A, F, pod warunkiem, że r.b = q.c and q.d=s.e
Pierwsza forma normalna 1NF, czyli pierwsza forma normalna bazy danych, przydatna w projektowaniu dużych baz danych. Relacja jest w pierwszej postaci normalnej, jeśli wartości atrybutów są elementarne, tzn. są to pojedyncze wartości określonego typu, a nie zbiory wartości. Dane opisowe z kolumny tabeli, w której są przechowywane w formie swobodnej są wydzielane w osobnej nowej tablicy słownikowej. Przykład studenci i zajęcia w formie swobodnej. Pole zajęcia jest podstawą do tworzenia tabeli DYSCYPLINY. Collete Rolland, Bazy danych. Od koncepcji do realizacji, PWE, Warszawa 1988, (Les bases de donnees - d une conception a une realisation extensible) Artur Górnik, Integralność i spójność danych, Oracle
Druga forma normalna Wszystkie atrybuty są zależne od jednoznacznego identyfikatora. Atrybut (A) jest zależny funkcjonalne od innego atrybutu (B), jeśli dla każdej wartości atrybutu B istnieje tylko jedna wartość atrybutu A. Klucz jest określany jako decydujący o wszystkich wartościach wierszy, ponieważ mogą one być określone poprzez wyszukiwanie ich w wierszu pobranym przez klucz. Dlatego wszystkie inne wartości wierszy zależą od klucza. Druga postać normalna jest stosowana tylko do tabel z unikalnym kluczem złożonym. Hans Ladanyi, SQL- ksiega experta, Helion, Gliwice 2000, s. 691-692
Trzecia postać normalna Dana relacja jest w drugiej postaci normalnej i żaden atrybut nie będący częścią klucza nie zależy od innego atrybutu nie będącego częścią klucza. zbyt duża ilość informacji informacja umieszczona w złym miejscu (niewłaściwej tablicy) Pola rekordu, które nie są częścią jego klucza, nie zależą do tabeli. Jeśli zawartość grupy pól odnosi się do więcej niż jednego rekordu tabeli, należy rozważyć umieszczenie tych pól w oddzielnej tabeli. Hans Ladanyi, SQL- ksiega experta, Helion, Gliwice 2000, s. 692-695 Artur Górnik, Integralność i spójność danych, Oracle
Trzecia postać normalna Stosowanie trzeciej postaci normalnej tylko do często zmieniających się danych. Przykład tablica STUDENTS Numer_ID Numer Ubezpieczenia Społecznego Nazwisko Poziom Kurs Kredyt
Czwarta postać normalna Dana relacja jest w czwartej postaci normalnej (zwaną również postacią normalną Boyce a-codda (BCNF)) wtedy i tylko wtedy, gdy jest w trzeciej postaci normalnej i wielowartościowa zależność zbioru Y od X pociąga za sobą funkcjonalną zależność wszystkich atrybutów tej relacji od X.
Piąta postać normalna Dana relacja r o schemacie R jest w piątej postaci normalnej wtedy i tylko wtedy, gdy jest w czwartej postaci normalnej i w przypadku występowania w niej połączeniowej zależności funkcjonalnej R[R1,...,Rm] zależność ta wynika z zależności atrybutów od klucza.
Integralność i Spójność Danych Czy wynik raportu odzwierciedla dane w bazie Jak aktualizować dane i mieć jednocześnie raporty - multiversion concurrency model zapytania widzą tylko stan zatwierdzonych zmian blokada na poziomie wiersza
Wielodostęp i dokładnie wyniki Personalne bazy danych dokładny wynik ponieważ dane nie są modyfikowane przez użytkownika podczas wykonywania raportów Korporacyjne bazy danych modyfikacja danych przez wielu użytkowników jednocześnie - wprowadzanie, usuwanie, zmiana Jak zapewnić spójność i powtarzalność wyników raportów?
Wielodostęp i dokładnie wyniki Oracle - wielowersyjny dostęp równoległy (ang. multi-version concurrency model) zmiany nie blokują raportowania, ani raportowanie nie blokuje zmian użytkownik widzi tylko zatwierdzone, pewne, dane do których może mieć zaufanie blokada na poziomie wiersza nigdy nie przechodzi do blokady na poziomie tabeli
Deklaratywne więzy spójności Więzi spójności gwarantują, że dane są integralne, wiernie odzwierciedlają w bazie danych modelowany obiekt rzeczywisty. Wbudowanie więzi spójności w definicji tabel Utrzymywanie spójności poprzez wyzwalacze (ang. trigers) Dwa typy więzi spójności więzy spójności encji więzy spójności referencyjnej System zarządzania bazy danych dba o więzi spójności podczas importu, eksportu, modyfikacji danych.
Typy blokowania tabeli w bazie Share danych (na przykładzie bazy danych Oracle) blokada przeciw zmianom dokonywanym przez kogokolwiek. Wielu użytkowników może ustawić taką blokadę w tym samym czasie. Exclusive blokada przez jednego użytkownika nie pozwalająca innym użytkownikom zmieniać czegokolwiek w bazie danych. Tylko jeden użytkownik może w danym momencie czasowym utworzyć taką blokadę.
Deklaratywne spójności encji Więzi spójności encji ograniczają możliwe wartości, jakie mogą pojawić się w wierszu tabeli Więzy klucza głównego (primary key) wartości w określonych kolumnach jednoznacznie identyfikują wiersz nie jest dopuszczalna wartość null w kolumnach klucza głównego automatyczne założenie indeksu na kolumnach tworzących klucz główny jedna tabela może posiadać tylko jeden klucz główny.
Więzi not null Wartość null w polu (kolumnie) nie jest dozwolona
Więzy check Warunek, który musi być prawdziwy dla wszystkich wierszy danej tabeli nie może zawierać podzapytania zapytanie w zapytaniu nie może zawierać funkcji zmiennych w czasie (np.. Sysdate - data systemowa) może zawierać nazwy jednej lub więcej kolumn.
Programy zarządzania bazami danych System Zarządzania baz danych - oprogramowanie służące do zarządzania i przechowywania danych (ang. Data Base Management Systems DBMS) Wymagania wobec programów zarządzającymi bazami danych: Szybkość wyszukiwania informacji, Zdalny dostęp, Kompresja danych - tabela, przestrzeń (ang. tablespace) (Oracle9i, Oracle 10g) Przechowywanie informacji multimedialnej - obrazy, dźwięk, filmy Przechowywanie informacji geograficznej - GIS
Programy zarządzania bazami danych Równoczesny dostęp do danych przez wielu użytkowników - współbieżność (ang. concurrency) XML Prezentacja danych w Web (Intranet / Internet) - Oracle 9i, Oracle 10g System pozwala na odtwarzanie danych po awarii. Łatwa administracja
Rozwój bazy danych w systemie operacyjnym MS-DOS, Windows FoxPro (Microsoft) pod DOS, Windows, Mac, Unix, wersja polska. Paradox (Borland) - Query by Example, pytania poprzez analogie. Interbase (Borland) dbase (Borland), od 1981 roku (dbase II pod CP/M), wersja polska.
Bazy danych - producenci komercyjnych bazach danych Oracle Corporation około 50% rynku, IBM - DB2 (Informix) Microsofcie - SQL Server - na Windows 2000/XP. Sybase NCR - Terabyte
Bazy danych Która z baz danych jest darmową alternatywą dla Ms Access (Ms SQL Server) w systemie operacyjnym Windows?
Bazy danych Open Source Ingres - Computer Associates mysql PostgresSQL Również w systemie operacyjnym Linux Sybase - do 5 GB - darmowa
Systemy do zarządzania bazach danych Wprowadzać informacje Wybierać informacje Prezentować informację w raportach Formularz Konektor - ODBC Zapytania - Kwerendy Raporty
Formularz Używany jest do wprowadzenia danych w bazie danych Przykład formularza jest okno na ekranie, które zawiera pola, w które można wprowadzić właściwe dane.
Zapytania - kwerendy Zapytania są używane do wyszukiwania, analizowania, przetwarzania danych. Przykłady zapytań - kwerend Którzy kontrahenci są z określonego miasta? Jakie obroty zrobili poszczególni (określeni) kontrahenci? Ile kupiliśmy u dostawcy X?
Raport Raportu używamy do generacji, przygotowywanie raportu (wydruku) z bazy danych. Formaty w których mogą być generowane raporty Ms Excel - XLS Ms Word - RTF Adobe - PDF Programy do raportowania Ms Access ma wbudowany program do tworzenia raportów Oracle - Oracle Reports Agata Report http://www.agata.org.br/us/index.php Przykład raportów kontrahenci z określonego miasta
Język zapytań SQL- język relacyjnych baz danych SQL (Structured Query Language),czyli Strukturalny Język Zapytań. SQL jest standardowym językiem do kierowania poleceń do relacyjnej bazy danych i komunikacji z bazą. Za pomocą języka SQL można wprowadzać dane do bazy, odczytywać modyfikować usuwać. Ponieważ SQL jest standardowym językiem wykorzystywanym we wszystkich relacyjnych bazach danych, użytkownik znający ten język może pracować z dowolną relacyjną bazą danych. Wariacje SQL w zależności od producenta bazy danych - Oracle, IBM, Sybase, Microsoft, mysql PDQ (Parallel Data Query), czyli SQL na wiele procesorów
Relacyjne bazy danych - standardy SQL Stworzono standardowy język zapytań (SQL), służący do operowania na danych w bazach relacyjnych. Standardy dotyczące relacyjnych baz danych są dobrze zdefiniowane przez takie organizacje, jak Międzynarodowa Organizacja Normalizacyjna (ISO) i Narodowy Amerykański Instytut Standaryzacyjny (ang. American National Standards Institute - ANSI). SQL - 89 SQL - 92 - SQL 2 SQL - 92 - rozszerzony o ODBC w 1995 roku SQL - 99 - SQL 3 wzbogacony o rozszerzenia obiektowe
Język definicji i manipulacji danymi Język SQL składa się z trzech języków podrzędnych, pozwalających wykonywać praktycznie dowolne operacje w relacyjnej bazie danych Do projektowania, definiowania logicznej struktury danych używany jest język definicji danych (ang. DDL - Data Definition Language). do tworzenia tabel, usuwania ich, definiowania perspektyw, indeksów, ograniczeń itd Do modyfikowania danych w systemu służy język manipulacji danymi (ang. DML - Data Manipulation Language). Język zapytań o dane (odczytywania danych) (ang. DQL - Data Query Language)
Rozwój technologii baz danych Pierwsze systemy - płaskie pliki Obecnie użytkownika nie interesuje jak fizyczne jest zorganizowane przechowywanie informacji - na jednym dysku, czy rozproszone na grupach dysków, na jednym serwerze czy w klastrze, wymagana jest tylko - dostępność do danych 24x7x365
Wybór systemu zarządzania bazą danych Jakie są wymagania aplikacji w stosunku do systemu do zarządzania bazą danych? Jaki zostanie wybrany model bazy danych? TCO - total cost of ownership - całkowite koszty posiadania W jakim systemie operacyjnym chcemy stosować bazy danych? / Microsoft Access / SQL Server nie działa na Linux, Unix, a tylko na Windows/ Jak długo będzie funkcjonowała tworzona baza danych? Jakie są wymagania wobec dostępności, odporności na awarie? Jaka jest skala danych? Jakiego wsparcie technicznego potrzebujemy? Jaki jest koszt 1 licencji dla użytkownika?
Zasoby - literatura C.J.Date, Wprowadzenie do baz danych, WNT, Warszawa 1981, An Introduction to Database Systems, Addison-Wesley, 1977 Artur Górnik, Integralność i spójność danych, Oracle Ken Henderson, Bazy danych w architekturze klient / serwer, Robomatic, Wrocław 1998, Delphi 3 Client / Server Developer s Guide, SAMS 1997 Hans Ladanyi, SQL- ksiega experta, Helion, Gliwice 2000 James Martin, Computer Data Base Organization Prentice Hall, 1977, James Martin, Organizacja baz danych, PWN, 1983 Collete Rolland, Bazy danych. Od koncepcji do realizacji, PWE, Warszawa 1988, (Les bases de donnees - d une conception a une realisation extensible)
Zasoby - Internet Bazy Danych Oracle www.oracle.com www.oracle.com.pl www.otn.oracle.com IBM www.ibm.com Sybase www.sybase.com www.sybase.pl MySQL www.mysql.com Ingres www.ca.com/ingres PostgresSQL Narzedzia do Raportowania Agata Report www.agata.org.br/us/index.php Oracle Report www.oracle.com Crystal Reports www. crystaldecisions.com
Zasoby - Internet Narzedzia do Modelowania Oracle Designer www.oracle.com Power Designer www.sybase.com www.sybase.pl S-Designer www.quest.com www.??? Toad www.quest.com http://www.teta.com.pl/quest.asp Rational Rose www.rational.com