Podstawowe pojęcia
Baza danych-przechowywane dane organizacyjne w sposób scentralizowany w jednym miejscu zamiast zamiast zamiast wielu oddzielnych plikach.
Właściwości bazy danych
Współdzielenie danych-dane wykorzystywane przez wielu;
Integracja-baza nie powinna mieć danych redundancyjnych,celem jest przechowywanie tylko jednego logicznego elementu danych;
Integralność-dokladne odzwierciedlenie obszaru analizy;
Bezpieczeństwo-ograniczenie dostępu,określenie zbioru upoważnionych użytkowników w odniesieniu do calej lub do czesci bazy;
Abstrakcja-baza to model rzeczywistości,informacje SA tylko proba reprezentowania właściwości obiektow w swiecie rzeczywistym;
Niezależność-oddzielenie danych od procesow,które używają tych danych.celem jest osiagniecie sytuacji w której organizacja danych jest niewidoczna dla użytkowników użytkowników programow uzytkowych;
SZBD-zorganizowany zbior narzedzi umożliwiający dostep i zarzadzanie jedna lub wiecej bazami.jest to powloka bd która dokonuje operacje na bd:
1.pielegnacja danych-dodanie nowych struktur do bd,usuniecie,modyfikacja,wstawianie danych ,aktualizacja,usuwanie danych z istniejących struktur
2.wyszukiwanie-wydobywanie danych przez uzytkowniko
3.kontrola danych-tworzenie i monitorowanie użytkowników bd,ograniczenie dostępu,nadzorowanie dzialania bd
Generacje baz danych:
-pierwsza (lata 50-te) – pliki o dostępie sekwencyjnym
-druga (lata 60-te) – pliki o dostępie bezpośrednim na dyskach magnetycznych
-trzecia (lata 70-te) – prerelacyjna
-czwarta (lata 80-te) – relacyjna
-piąta (lata 90-te) – postrelacyjna
Spotyka się poglądy, że są tylko 3 generacje: przedrelacyjna, relacyjna, postrelacyjna. W I generacji z każdym programem związany był odpowiedni plik danych, nośnikami danych i programów były taśmy magnetyczne. W II generacji pozostawał statyczny związek programu z odpowiadającym mu plikiem, ale bazy danych mogły być użytkowane w trybie dialogowym, możliwy był wielodostęp oraz dostęp bezpośredni do rekordu przez jego adres. W III generacji rozróżniono dane na poziomie logicznym i fizycznym. Stworzono modele danych dla opisu struktur danych z logicznego punktu widzenia. Zaproponowano 2 modele danych: hierarchiczny i sieciowy. IV generacja to model relacyjny Codda, charakteryzuje się powstaniem języka zapytań oraz teorii relacyjnych baz danych, np.: hierarchiczna: IMS, sieciowa: IDS, IDMS, ADABAS, relacyjna: ORACLE, INFORMIX, DB2, PROGRES, MY SQLSERVER. V generacja – najbardziej znane podejścia to dedukcyjne (oparte na rachunku predykatów) oraz obiektowe. Rozwój baz danych obiektowych wynikał z potrzeb przedstawiania multimedialności.
Najbardziej zaawansowanym rozwiązaniem w dziedzinie baz obiektowych jest język UML.
Modele danych
Funkcjonowanie systemów baz danych opiera się w istocie na określonym modelu danych, często kojarzonym z modelem konceptualnym. Każdy model wycinka rzeczywistości (dziedziny przedmiotowej) odzwierciedlać winien 2 klasy cech: statyczne i dynamiczne.
S – statyczna definiująca strukturę, reguły jej tworzenia.
D – dynamiczna definiująca zestaw operacji w danej strukturze.
Zestaw reguł opisujących strukturę zazwyczaj jest definiowany przy pomocy języka opisu danych, określającego dopuszczalne struktury danych w ramach modelu.
W większości modeli danych część reguły tworzenia struktury podzielona jest na:
specyfikacje struktury – M
specyfikację więzów integralności – I
M – umożliwia generowanie struktur i kategorii schematu bazy danych
I – generowanie więzów integralności definiujące ograniczenia związane z tworzeniem i użytkowaniem schematu bazy danych.
Zestaw cech dynamicznych dziedziny przedmiotowej jest zazwyczaj wyrażany w języku manipulacji danymi, który definiuje dopuszczalne działania, operacje na bazach danych.
Język SQL w podejściu relacyjnym posiada cechy zarówno języka opisu danych, jak i języka manipulacji danymi.
WIĘZY INTEGRALNOŚCI czyli reguły spójności, kompletności i poprawności bazy danych i poszczególnych danych opisujących dziedzinę przedmiotową. Więzy integralności można podzielić na statyczne i dynamiczne.
Przykładami statycznych są:
1.określenie rodzaju i dopuszczalnego zakresu danych, np.: symbol pracownika jest polem numerycznym o maksymalnym zakresie 6 znaków,
2.unikalność kluczy, encji, relacji i innych kategorii poszczególnych modeli danych,
3.liczebność związków,
4.zależności hierarchiczne,
5.inne zależności semantyczne i liczbowe (np. maksymalna stawka ubezpieczeniowa dla określonej grupy wiekowej).
Więzy dynamiczne sterują transformacjami danych, zwłaszcza w odniesieniu do operacji aktualizacji, zapewniając ich spójność (np. płaca pracownika nie może maleć).
Rodzaje modeli danych:
wysokiego poziomu lub konceptualne,
wdrożeniowe,
niskiego poziomu lub fizyczne.
Modele konceptualne pozwalają na opis dziedziny przedmiotowej w kategoriach danych i związków między nimi w sposób przystępny dla użytkownika bazy danych. Spośród znanych modeli konceptualnych warto wymienić modele: związków encji, binarny, obiektowy, rachunek predykatów.
Modele na poziomie wdrożeniowym mogą być zrozumiałe zarówno przez użytkowników jak i zbliżone do sposobu przechowywania danych w pamięci. Modele te najczęściej stanowią podstawę komercyjnych SZBD. Zalicza się do nich 4 rodzaje modeli: hierarchiczny, sieciowy, relacyjny i obiektowy, przy czym zarówno model relacyjny jak i obiektowy są z pogranicza poziomu konceptualnego i wdrożeniowego.
Fizyczne modele danych opisują sposób przechowywania danych w pamięci komputerów i przedstawiają formaty rekordów czy ścieżki dostępu. Typowymi pojęciami z tego zakresu są metody adresowania, pliki indeksowo-sekwencyjne, struktury łańcuchowe i pierścieniowe, pliki odwrócone czy wyszukiwanie wielokluczowe
Obiektowy model danych
Podstawowymi pojęciami modelu podstawowego są obiekt, jego identyfikator (klucz), atrybut, metody, enkapsulacja i przesyłanie komunikatów, klasy obiektów, hierarchie klas oraz dziedziczenie
Obiektowa bd sklada się z klas obiektow i obiektow powiazanych pewna liczba mechanizmow abstrakcji
Obiekty: pakiet danych i procedur.Dane sa utrzymywane w atrybutach obiektu,a procedury sa definiowane za pomoca metod obiektu.metody sa przesylane za pomoca komunikatow.
Hermetyzacja-proces umieszczania danych i procesow w jednym opakowaniu u ramach zdefiniowanego interfejsu i udestepniania go na zewnatrz w sposób kontrolowany przez ten interfejs.
Klasa obiektu:jest zgrupowaniem podobnych obiektow.Uzywana do określania wspolnych atrybutow metod i związków.obiekty sa wiec instencjami pewnej klasy.KO definiuja schemat bazy danych.Obiekty definiuja zawartość bd.
Mechanizmy abstrakcji:uogólnienie,agregacja
Klasa klasyfikuje obiekt lub obiekt jest instancja klasy
Dziedziczenie:związane z pojeciem hierarchi uogólnienia.
Dziedziczenie struktury:podklasa dziedziczy atrybuty swojej nadkla
Dziedziczenie zachowania:dziedziczenie metod;
Dziedziczenie pojedyncze:podklasa może mieć tylko 1 nadklase
Dziedziczenie wielokrotne:klasa dziedziczy od wiecej niż 1 nadklas
Operowanie danymi:
1.metody tworzenia-tworza nowe instancje klasy
2.metosy usuwania-usuniecie niechcianych obiektow
3.metody dostępu-operacje właściwości obiektow
4.metody przekształcania-operacje przekazuja nowe obiekty uzyskane z istniejących obiektow
Komunikaty musza zawierac nazwe metody,id obiektu i parametry metody
Polimorfizm oznacza, że ta sama nazwa może odnosić się do róznych metod i atrybutów w róznych obiektach. Podobnie metody o róznych nazwach mogą realizować identyczne procedury. Jest to możliwe dzięki przypisaniu każdemu obiektowi unikalnego identyfikatora
Integralnośc danych:integralność wewnetrzna wynika ze związku
1.Klasa-klasa-nadklasa nie może być usunieta przed podklasami
2.klasa-obiekt-klasa nie może być usunieta przed jej obiektami
3.int.dzidziny-atrybuty sa definiowane na wczesniej utworzonych klasach lub na zbiorach identyfikatorow obiektow
4.int.referencyjna-istnienie kluczy obcych
Integralność dodatkowa wprowadzana za pomoca więzów w metod
Podstawowymi pojęciami modelu podstawowego są [14] obiekt, jego identyfikator (klucz), atrybut, metody, enkapsulacja i przesyłanie komunikatów, klasy obiektów, hierarchie klas oraz dziedziczenie. Obiektowa baza danych stanowi kolekcję obiektów, gdzie każdy obiekt reprezentuje encję, pojęcie, zdarzenie, ciąg liczb, łańcuch znaków, sekwencję krotek, schemat bazy danych czy słownik (skorowidz danych). Jest to więc dowolny aspekt, przedmiot odpowiedni do zastosowania bazy danych. Wszystkie obiekty mają dwie podstawowe cechy [15, s. 493]: pamięć (prwate memory) oraz interfejs (public interface). Pamięć przechowuje stan obiektu, podczas gdy interfejs stanowi „protokół" składający się z zestawu komunikatów, na które obiekt odpowiada. Obiekt posiada unikalny identyfikator, niezależny od wartości jego atrybutów.
Każdy obiekt posiada jeden lub więcej atrybutów oraz jedną lub więcej metod, które działają na wartościach atrybutów. Wartości atrybutów stanowią o stanie obiektu. Specyfikacja atrybutu może obejmować, poza jego nazwą, również więzy integralności. Atrybut może mieć pojedynczą wartość lub zestaw wartości ze swojej dziedziny. Użytkownik komunikuje się z obiektami (oraz obiekty między sobą) poprzez przesyłanie komunikatów, powodujących zmiany stanu obiektów lub przesłanie wyników. Poprzez komunikaty obiekty wykonują wszystkie operacje, m.in. wyszukiwanie wartości, obliczenia i aktualizacje. Środkiem, którym obiekt odpowiada na komunikat, jest metoda, czyli procedura uaktywniana po przesłaniu komunikatu do obiektu.
Istotną cechą obiektowych modeli danych jest zasada enkapsulacji (encap-sulation). Oznacza ona, że zarówno dane (atrybuty i wartości) w obiekcie, jak i operacje wykonywane na nim powinny być modelowane równocześnie. W ten sposób pamięć obiektu zawiera jego aktualny stan wraz z metodami, które są wdrożeniami operacji. Interfejs użytkownika uaktywnia metodę, czyli zestaw operacji wykonywanych na obiekcie.
Wszystkie obiekty posiadające ten sam zestaw atrybutów mogą być grupowane w klasy obiektów. Klasa może być także obiektem, jest wówczas metaklasą. Z kategorią klasy wiąże się pojęcie dziedziczenia. Podklasa dziedziczy zarówno atrybuty, jak i metody superklasy obiektu w danej hierarchii. Oznacza to, że dzięki dziedziczeniu obiekty, nawet o różniącej się strukturze, mogą posiadać te same metody dotyczące wspólnej części atrybutów. A zatem każda klasa (sub-klasa) obiektów w hierarchii dziedziczy wszystkie atrybuty i metody superklasy i może posiadać dodatkowe atrybuty i metody
Hierarchiczny model danych
Model ten wiąże się z tzw. strukturą „drzewiastą" — dane przedstawia się w postaci prostej struktury drzewa z określoną liczbą poziomów podrzędności. Jest to w określonych sytuacjach naturalny sposób modelowania rzeczywistości. Każde drzewo składa się z jednego rekordu nadrzędnego i zbioru rekordów podrzędnych połączonych wiązaniami. Dopuszczalna jest dowolna liczba rekordów podrzędnych i poziomów podrzędności. W nawiązaniu do przykładu relacyjnego modelu danych, jego hierarchiczny odpowiednik przedstawiony został na rys. 3.8.
Model hierarchiczny użytkowany jest w IBM-owskim systemie zarządzania bazą danych IMS. Jego stosowanie powoduje określone praktyczne problemy w zakresie aktualizacji baz danych.
Podstawa pierwszych komercyjnych SZDB.Najbardziej znany to IMS firmy IBM.Hierarchiczny uzywa 2 struktur danych:
Typ rekordu-zbior nazwanych pol,kazde pole jest uzywane do przechowywanie prostego atrybutu jakiegos typu jak integer lub charakter
Nadrzedny-podrzedny-zwiazek jeden do wiele miedzy dwoma typami rekordow
Integralność danych: np. nie można wstawiac rekordu podrzędnego dopóki nie zostanie powiazany z rekordem nadrzednym
Sieciowy model danych
Sieciowy model danych utrzymuje konwencję modelu hierarchicznego, tj. reprezentowanie danych przez rekordy i wiązania. Jednak każde wystąpienie rekordu może mieć dowolną liczbę rekordów podrzędnych i nadrzędnych. Wiązania realizowane są przez rekordy specjalne, zwane łącznikami, reprezentujące związek pomiędzy rekordami i zawierające dane opisujące ten związek. Wszystkie wystąpienia łączników danego rekordu powiązane są łańcuchem
Przelomowy moment to propozycja DBTG w 1971.Ostatnio w 1986 zarekomendowanie przez ANSI jezyka definicji sieciowycych(NDL)
2 struktury: typ rekordu(pola mogą przechowywac wiele wartości lub wartości złożone) i typ kolekcji(opis związku jeden do wielu miedzy tr)
Jezyk programowania i sbd to dwa rozne systemy oprogramowanie laczone interfejsem.
Integralność dotyczy członkostwa w kolekcji i trybu wstawiania:może być zdefiniowane jako wymagane lub opcjonalne;
Diagramy związków encji
Etapy zstępującej analizy danych: selekcja encji,określenie związków między encjami,dobór atrybutów
Dze-metoda analizy z gory na dol.pierwotnie zaproponowany jako model danych jest obecnie stosowana technika modelowania koncepcyjnego.trzy kategorie-encja,związek,atrybut.do metody e-r zaproponowano kilka rozszerzen:zw. rekurencyjne i trójargument, role
Encja-rzecz,która w przedsiębiorstwie jest rozpoznawalna jako istniejaca niezależnie i jednoznacznie zidentyfikowana.encja jest abstrakcja złożoności pewnej dziedziny.pewien aspekt swiata rzeczywistego.encja jest obiektem rzeczywistym,zdarzeniem,pojeciem.
Typ encji-kategoria encji,a encja instancja
Związek-jest pewnym powiazaniem miedzy encjami.moze być binarny miedzy 2 encjami i n-argumentowe miedzy jedna, trzema..
Relacja jest powiazaniem miedzy encjami,charakteryzuje się dwoma regulami:liczebnością i uczestnictwem.
Dwie encje mogą być powiazane wiecej niż jednym związkiem
Zawieranie i wykluczanie to dwa rozne rodzaje zwiazkow
Atrybut-uzywane do odróżnienia jednej encji od innej.np nazwadzialu i lokalizacja sa atrybutami które charakteryzuja encje dzial.
Liczebność-dotyczy liczby instancji biorących udzial w związku.
Uczestnictwa-czyli opcjonalnosc udzialu encji w związku.opcjonalne,gdy istnieje przynajmniej jedna encja która nie bierze udzialu w związku;
Związek rekurencyjny-zwiazek jednoargumentowy.
Role-pokazuja rozne spojrzenia na encje.pracownik może pelnic role kierownika i jednoczesnie podwładnego w innym związku.
Diagram klas UML
Diagram klas (zwany poprzednio także diagramem asocjacji klas lub modelem obiektowym) jest pojęciem centralnym we wszystkich znanych metodykach obiektowych. Z reguły diagram klas jest
zmodyfikowanym diagramem encja-związek (z nieco innym znaczeniami) rozbudowanym o nowe elementy. W porównaniu do diagramów encja-związek (objaśnionych np. w [BCN92])
diagramy klas wprowadzają istotną nowość, mianowicie metody przypisane do specyfikowanych klas. Oprócz tego zasadniczego elementu pojawiają się w diagramach klas różnorodne oznaczenia
o charakterze pomocniczym. Diagram klas pokazuje klasy w postaci pewnych oznaczeń graficznojęzykowych powiązanych w sieć zależnościami należącymi do trzech kategorii:
Dziedziczenie (inheritance), czyli ustalenie związku generalizacji/specjalizacji pomiędzy klasami.
Asocjacja (association), czyli dowolny związek pomiędzy obiektami dziedziny przedmiotowej, który ma znaczenie dla modelowania.
Agregacja (aggregation), czyli szczególny przypadek asocjacji, odwzorowujący stosunek całość-część pomiędzy obiektami z modelowanej dziedziny przedmiotowej.
Administrowanie bd
Funkcje administratora:
1.projektowanie fizyczne-admin danych zajmuje się projektowaniem koncepcyjnym i logicznym systemow bd, a administrator baz danych projektowaniem fizycznym i implementacja bd;
2.standardy i udokumentowanie danych-zapewnienie,ze fizyczne dane sa udokumentowane w standardowy sposób tak aby rozne aplikacje i użytkownicy mogli sprawnie z nich korzystac]
3.monitorowanie uzycia danych i strojenie systemow bd-monitorowanie na bieżąco dzialania systemow bd i zapewnienie odpowiedniej wydajności tych systemow
4.archiwizacja danych-tworzenie strategii archiwizacji danych wychodzących z uzycia
5.kopia zapasowa i odtwarzanie danych-opracowanie strategii tworzenia kopii zapasowej i odtwarzanie danych w wypadku powstania awarii sprzętu lub oprogramowania
Administrowanie DBMS
1.instalacja dbms i jej składowych
2.kontrola konfiguracji-wprowadzenie polityk i procedur zarzadzania modyfikacjami i zmianami w oprogramowaniu systemu bd
3.monitorowanie uzycia i strojenie dbms-nadzorowanie na bniezaco systemow baz danych i dostosowanie elementow struktury dbms dla zapewnienia efektywnego dzialania takich systemow.
Administrowanie środowiskiem bd
1.kontrola danych-tworzenie grup użytkowników,przypisywanie uprawnien, hasel, dostępu
2.szacowanie wpływu-zmian na uzycie danych w sys. Bd
3.prywatnosc,bezpieczeństwo,integralność-zapewnienie ze integralność danych,bezpieczeństwa i prywatności sa stosowane na poziomie fizycznym
4.szkolenie
SZBD = oprogramowanie umożliwiające tworzenie i użytkowanie bazy danych. Każdy system zarządzania bazą danych (SZBD), czyli oprogramowanie umożliwiające użytkowanie baz danych, ma swoją organizację. Polega ona na logicznym uporządkowaniu i powiązaniu różnych składników SZBD. Oczywiście organizacja ta jest uzależniona od rodzaju SZBD. Można wyróżnić kilka kryteriów ich klasyfikacji, wśród których najistotniejsze to:
1.użytkowany model danych (uwzględniany jest tu poziom wdrożeniowy modeli danych):hierarchiczne,sieciowe,relacyjne,obiekt
2.liczba użytkowników
systemy obsługujące wielu użytkowników równocześnie
systemy obsługujące pojedynczego użytkownika (np. MS Access)
3.stopień centralizacji
systemy scentralizowane (na jednej instalacji komputerowej)
systemy rozproszone (na wielu instalacjach połączonych siecią)
systemy wielobazowe (luźno połączone, o wysokim stopniu lokalnej niezależności)
SQl
SQL jest podzielony na 3 główne części:
1.definicja danych-dotyczy konstrukcji i posługiwania się tabelami i indeksami za create table index drop…(integralność danych)
2.operowanie danymi-wydobywanie danych z bd za pomoca select
3.kontrola danych
3 sposoby użytkowania SQL:
1 Interaktywny lub samodzielny SQL – służy wyszukiwaniu i manipulowaniu danymi w bazie danych. Użytkownik poprzez interaktywne wprowadzanie kolejnych instrukcji SQL wpływa na dane zgromadzone w bazie. Rezultatem interaktywnego zapytania jest tabela wirtualna przechowywana w pamięci komputera.
2 Statyczny SQL – stały kod SQL, przygotowany przed wykonaniem programu. Istnieją dwie jego wersje:
2a zanurzony (osadzony) SQL – kod SQL znajduje się w programie źródłowym innego języka; odwołania do bazy danych w języku SQL
2b modułowy SQL – gotowe moduły SQL są łączone z modułami kodu innego języka
3 Dynamiczny SQL – kod SQL generowany przez aplikację w czasie jej wykonywania w wyniku interakcji z użytkownikiem. Jest użytkowany zamiast statycznego SQL, gdy potrzebny kod nie może być określony podczas pisania programu, ponieważ zależy on od wyboru użytkownika
hurtownia danych
tematyczny,zintegrowany,określony w czasie i nielotny zbior danych uzywanych do wspierania procesu podejmowania decyzji kierowniczy.
...
tryniti