Bazy danych

Transkrypt

Bazy danych
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
sieciowy
– Wydawca
• Wykonawca
Album
Sklepy
Zamówienia
» Piosenka
Stan Magazynu
Sprzedaż
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
Autor
Tytuł
Scott
Urman
Oracle 8. Programowanie w
języku PL/SQL.
PWE
Collete Bazy danych. Od koncepcji
Rolland 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
dziecko
dziecko
•
rodzic
•
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
SPRZEDAŻ
Numer Nazw Miast
Kontra a
o
-henta
MIESIĘCZNA
Nume Data
r
Kontr
ahenta
00001 ADAX Kalisz 00001 04-11-03
00002 AMS Łódź 00002 04-11-03
Wartość
brutto
150
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
danych (na przykładzie bazy
danych Oracle)
•
Share
– 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
SQL
SQL
SQL
- 89
- 92 - SQL 2
- 92 - rozszerzony o ODBC w 1995 roku
- 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

Podobne dokumenty