Bazy Danych, STUDIA, SEMESTR III, Bazy Danych, Wykład


Bazy Danych

Modelowanie Baz danych

Baza danych-uporządkowany zbiór danych z pewnej dziedziny tematycznej ,zorganizowany w sposób ułatwiający dostęp do danych i operowanie nimi według określonych kryteriów. Bazą danych może być np. kartoteka pacjentów w przychodni lekarskiej czy zbiór danych o uczniach i ich ocenach.

Wymagania stawiane systemom baz danych:

Modele baz danych

Bazy danych mogą różnić się pod względem sposobu, w jaki dane są zorganizowane i powiązane ze sobą. Ze względu na strukturę danych rozróżniamy bazy:

Model hierarchiczny-najstarszy model, baza ma strukturę drzewiastą jednym punktem początkowym i wieloma rozgałęzieniami (opiera się na modelu drzewa rodzic-potomek).Zbiór nadrzędny nazywany rodzicem zawiera określona liczbę podzbiorów nazywanych potomkami ,te z kolei zawierają kolejne podzbiory itd. W modelu tym zbiór nadrzędny może mieć wiele podzbiorów, jednak każdy podzbiór ma tylko jeden zbiór nadrzędny.

Model sieciowy-odmiana modelu hierarchicznego, baza posiada strukturę przypominającą sieć, w odróżnieniu od bazy hierarchicznej, w bazie sieciowej dowolny zbiór danych może zostać powiązany z każdym innym. W tym przypadku podzbiór może być powiązany z wieloma zbiorami nadrzędnymi lub z żadnym zbiorem.

Model obiektowy- bazy opierające się na modelu obiektowym łączą cechy programów komputerowych tworzonych za pomocą nowoczesnych języków programowania obiektowego z cechami aplikacji bazodanowych. Operują one na obiektach (czyli zbiorach połączonych danych i procedur umożliwiających manipulowanie tymi danymi) i tzw. klasach obiektów.

Model relacyjny-najpopularniejsza grupa baz danych. W tych bazach dane przechowywane są nie w jednej lecz w wielu tabelach, przy czym każda tabela przechowuje dane na określony temat. Dodatkowo pomiędzy tabelami tworzone są specjalne powiązania zwane relacjami. Dzięki nim możliwe jest uzyskiwanie informacji z bazy na wiele sposobów , poprzez kojarzenie ze sobą danych pochodzących z różnych tabel.

Modelowanie baz danych:

Encja

Encja- byt, przedmiot fizyczny (lub abstrakcja ) rozpoznawalny jako samodzielny i niezależny w organizacji rzeczywistości; rzecz znacząca. Interesujący nas obiekt, coś co istnieje i jest rozróżnialne wśród innych obiektów tego samego typu.

Model związków encji- dziedzina konceptualna postrzegana jako zbiór encji (obiektów) oraz związków między encjami

Elementy modelu związków encji (diagramu związków encji) :

Diagram związków encji-liczebność związków endji:

Klasyfikacja więzów - więzy stanowią część schematu bazy danych. Są określane przez projektanta równolegle z jej strukturą. Po określeniu więzów wszystkie operacje wstawienia i modyfikacji danych, które nie spełniają warunków narzuconych w więzach są niedopuszczalne:

a)Kulcze-atrybuty lub zbiory atrybutów , które jednoznacznie identyfikują encję wewnątrz zbioru encji. Klucz może być utworzony przez wybór atrybutu spełniającego rolę klucza oraz utworzenie specjalnego atrybutu spełniającego rolę klucza

b)Więzy jednoznaczności- wymaganie aby wartości w danym polu różniły się. W danej roli może występować tylko jedna wartość. Podstawowym przykładem są klucze.

c)więzy integralności referencyjnej-narzucają wymaganie, aby wartość którą wskazuje jakiś obiekt znajdowała się w bazie. Zakaz usuwania obiektu wskazywanego. Wraz z usuwanym obiektem (wskazywanym przez inne) usuwane są obiekty które na niego wskazują.

d)więzy domenowe-stanowią wymaganie aby wartość atrybutu należała do określonego zbioru wartości lub znajdowała się w określonym zakresie.

e)więzy zasadnicze -arbitralne narzucone warunki spełnienie których musi być bezwzględnie przestrzegane w definiowanej bazie danych.


Zasady projektowania:

a) dokładność - zbiory encji oraz ich atrybuty powinny odzwierciedlać świat rzeczywisty. Każdy element projektu powinien odpowiadać wiedzy o części świata rzeczywistego , którą reprezentuje.

b) unikanie redundacji - projekt nie może być nadmiarowy co wymaga unikania powtórzeń. Te same informacjie nie mogą znajdować się jednocześnie w kilku miejscach.

c) prostota - w projekcie powinny znaleźć się tylko te elementy które są naprawdę potrzebne

d) dobór właściwych elementów - wybór rodzaju elem. (zbioru encji,atrybut,związek) opisujący obiekt ze świata rzeczywistego. Jeżeli z pewnym elem. poza nazwą wiążą się inne dane to należy elem. taki definiować jako zbiór encji.

Relacyjny model baz danych

W relacyjnym modelu danych baza danych składa się zwykle z szeregu tabel (relacji) oraz związków pomiędzy tabelami. Tabele przechowuja informacje na temat interesujących obiektów. Na uzyskanie pełniejszych informacji pozwala łączenie tabel. Rodzaj danych, sposób podziału na tabele i związki jest ustalony w procesie normalizacji bazy. Tabele mogą być ze sobą powiązane. Każda z nich jest nazwana i ma stała liczbę kolumn oraz dowolną liczbę wierszy. Tabela składa się z krotek, czyli rekordów oraz niezależnych atrybutów czyli pól. Ich kolejność jest dowolna. Rekordy są zapisywane w wierszach natomiast atrybuty w kolumnach. Kolumny są opatrzone nazwami i mogą przechowywać dane określonego prostego typu (np. liczby o podanej precyzji, napisy o określonej długości albo daty). Wiersze reprezentują konkretne wystąpienie rekordu i można je dodawać lub usuwać.

Założeniem poprawnej budowy tabeli jest to , aby każda wartość atrybutu w każdej krotce była wartością atomową (wartością nie rozkładalną -pojedyncza wartość a nie zbiór wartości).

Atrybuty służą do nazywania kolumn relacji. Na ogół oddają znaczenie danych umieszczanych w kolumnach pod nimi.

Schemat relacji = nazwa relacji + zbiór atrybutów

W modelu relacyjnym projekt składa się z jednego lub kilku schematów relacji (schemat bazy danych).

W krotce każdy atrybut ma swój odpowiednik w postaci składowej krotki.

Pole podaje wartość atrybutu , którego dziedziną jest zbiór dopuszczalnych wartości jakie może przyjmować (dane określonego typu ,definiowane na etapie projektowania bazy danych -mają stały rozmiar i zwykle są to ogólnie znane typy proste -liczba,data,godzina,ciąg znaków,znak,itp.)

Instancja relacji (zbiór-krotek).

Własności relacji (tablicy):

Relacja między dwoma tabelami może przyjąć jeden konkretny typ :

Zbiór encji ---> relacja

Atrybuty relacji związku:

Atrybuty relacji:

Zależności funkcyjne

Warunek występowania zależności funkcyjnych:

A1,A2,...AnB

Jeżeli dwie krotki relacji R są zgodne dla atrybutów A1,A2,An (obie krotki mają te same wartości składowych dla wymienionych atrybutów) to muszą być również zgodne w pewnym innym atrybucie B.

A1,A2,...An-->B1

A1,A2,...An—B2

A1,A2,...AnBm

A1,A2,...AnB1B2...Bm

Jeżeli zbiór atrybutów A1,A2,An określa funkcyjnie więcej niż jeden atrybut B.

Klasyfikacja więzów- klucze

Klucze - atrybuty lub zbiory atrybutów, które jednoznacznie identyfikują encję wewnątrz zbioru encji.

Klucz może być utworzony przez:

Klucze relacji

Atrybut lub zbiór atrybutów {A1,A2,...An} tworzy klucz relacji jeżeli :

Każda tabela (relacja) posiada zdefiniowany klucz -wyróżnioną kolumnę lub kilka kolumn , których wartości jednoznacznie identyfikują dany wiersz. Ich wartość dla każdego rekordu jest unikalna. Kolumny jednoznacznie odróżniające rekordy relacji nazywane są kluczem głównym (podstawowym).

W każdej relacji istnieje pewna kombinacja atrybutów mająca zdolność jednoznacznej identyfikacji - tablica ma więcej niż jeden klucz kandydujący wśród klucz podstawowych. Wśród nich ten który poprzez minimalna ilość atrybutów jednoznacznie wyznacza dany wiersz jest określany kluczem właściwym.

Klucz obcy-Kolumny jednej tabeli są kluczem obcym jeśli nie są kluczem głównym tej tabeli ale ich wartości są wartościami klucza głównego innej tabeli.

W relacyjnym modelu logicznym dwie tabele są ze sobą w relacji jeśli wiążą je wartości klucza podstawowego i klucza obcego lub też specjalna tabela łącząca.

Atrybut lub zbiór atrybutów {A1,A2,...An} tworzy klucz relacji jeżeli :

Nadklucz- zbiór atrybutów zawierających klucz (spełnionny jest jedynie warunek pierwszy)

Reguły dotyczące zależności funkcyjnych :

1.Zasady podziału i łączenia

a) reguła podziału

zależność funkcyjną:

A1A2,...An-->B1B2...Bm

Można zastąpic zbiorem zależności funkcyjnych :

A1A2...An-->Bi gdzie i=1,2,...m

b)reguła łączenia

zbiór zależności funkcyjnych:

A1A2...An-->B1 gdzie i=1,2,...m

Można zastąpic zależ. Funk. :

A1A2...An-->B1B2...Bm

2.Zależności trywialne

zal.funk.:

A1A2...An-->B jest trywialna jeżeli B jest równe któremuś A

3.Reguła przechodniości

jeżeli w relacji R zachodzą zależności :

A1A2...An-->B1B2...Bm oraz B1B2...Bm-->C1C2...Ck

To w relacji R zachodzi także zal:

A1A2...An-->C1C2...Ck

Projektowanie relacyjnych schematów baz danych

Anomalie - problemy ze zbyt dużą liczbą danych w pojedynczej relacji

Redundacja -dane niepotrzebnie powtarzają się w kilku rekordach

Anomalie modyfikacji -podczas modyfikacji wartość danych nie zostanie poprawiona we wszystkich krotkach

Anomalie usunięć - usunięcie wartości atrybutu może spowodować utratę częsci danych (całej krotki )

Dekompozycja relacji - podział atrybutów R między dwa schematy nowych relacji

Normalizacja - proces przekształcania reprezentacji bazy danych (nazywany również rozkładem odwracalnym), polegający na odnajdywaniu logicznych związków między elementami danych. W każdym etapie normalizacja bazy strukturę danych dzieli na coraz więcej tabel z zachowaniem podstawowych związków między elementami danych.

Denormalizacja - wprowadzenie kontrolowanej nadmiarowości do bazy danych w celu przyśpieszenia wykonywania na niej operacji(np. obsługiwania zapytań)

Pierwsza postać normalna ( 1 NF) - relacja R 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 .

Druga postać normalna (2 NF) - atrybuty nie wchodzące w skład klucza są zależne od całego klucza ( nie tylko od jego części)

Każdy atrybut który nie wchodzi w skład żadnego klucza potencjalnego tej relacji jest w pełni funkcjonalnie zależny od wszystkich kluczy potencjalnych tej relacji

Relacja będąca już w 2 NF nie powinna zawierać redundacji .

Druga postać normalna (2 NF)

Postać normalna Boyce'a - Codda

Relacja R jest w postaci BCNF wtedy i tylko wtedy ,gdy dla każdej zależności A1,A2,...An-->B zbiór {A1,A2,...An} jest nadkluczem R.

Oznacza to że lewa strona każdej zależności nietrywialnej musi być nadkluczem.

Dekompozycja do postaci BCNF

Powtarzany dostatecznie długo proces dekomozycji prowadzi do zapisania każdej relacji w postaci kolekcji podzbiorów atrybutów spełniających warunki:

Trzecia postać normalna

Relacja R jest w trzeciej postaci normalnej wtedy i tylko wtedy gdy spełniony jest warunek :

Jeśli A1,A2,...An-->B jest zależnością nietrywialną to albo {A1,A2,...An} jest nadkluczem albo B jest elementem pewnego klucza.

Trzecia postać normalna

Trzecia postać normalna wymaga aby wszystkie kolumny nie należące do klucza zależały funkcyjnie od klucza kandydującego.

Klucz kandydujący spełnia te same warunki co klucz główny i charakteryzuje się tym , że :

W tej postaci normalnej nie są wymagane zależności pomiędzy kolumnami poza kluczem .

Relacja R jest w trzeciej postaci normalnej wtedy i tylko wtedy gdy spełniony jest warunek Jeśli A1,A2,...An-->B jest zależnością nietrywialną to albo {A1,A2,...An} jest nadkluczem albo B jest elementem pewnego klucza.

Zależnośc wielowartościowa A1,A2,...An-->B1 B2...Bm zachodz w relacji R jeżeli dla krotek o ustalonych wartościach atrybutów typu A zbiór wartości atrybutów typu B nie zależy od żadnych wartości tych atrybutów z relacji R których nie ma ani w zbiorze atrybutów typu A ani w zbiorze atrybutów typu B. Zależności wielowarstwowe występują wówczas gdy istnieją dwa takie zbiory atrybutów relacji których wartości występują w relacji we wszystkich możliwych kombinacjach.

Zależności wielowartościowe nie spełniają reguły podziału i reguły łączenia.

Czwarta postać normalna

Relacja R jest w czwartej postaci normalnej wtedy i tlyko wtedy jeżeli A1,A2,...An->->B1B2...Bm jest nietrywialną zależnością wielowartościową ;

{A1,A2,...An} jest nadkluczem

Języki zapytań

•język zapytań umożliwia użytkownikom uzyskanie żądanej informacji z bazy danych

•języki zapytań są najczęściej językami wyższego poziomu w porównaniu z językami programowania

języki zapytań:

proceduralne - użytkownik specyfikuje sposób wykonania sekwencji operacji na bazie danych w celu uzyskania żądanej informacji

nieproceduralne - użytkownik specyfikuje tylko żądaną informację z bazy danych bez podawania procedury uzyskania tej informacji

Język baz danych SQL (Structured Query Language)

standardy:

ANSI - (American National Standard Institute)

SQL-92 (SQL2)

SQL-3

funkcje:

DDL - język definicji danych

definiowanie bazy danych oraz struktur tablicowych, indeksy, atrybuty tablic, typy danych, klucze

DML - język zarządzania danymi

tworzenie, odczyt, modyfikacja, usuwanie atrybutów, krotek, tablic oraz indeksów

DML - język manipulacji danych

tworzenie oraz generowanie zapytań okresowych oraz zapytań ad-hoc

Proste zapytania w języku SQL

umożliwiają wybieranie krotek relacji spełniających określony w zapytaniu warunek

FROM - służy do określenia relacji, których dotyczy zapytanie

WHERE - warunek, jaki muszą spełniać krotki, aby zostały wybrane jako odpowiedź na zadane pytanie

SELECT - określa nazwy atrybutów dołączonych do odpowiedzi dla krotek spełniających warunek

Agregowanie

•Tworzenie jednej wartości z listy wartości

Operatory agregowania:

1.SUM - oblicza sumę wszystkich wartości w kolumnie

2.AVG - oblicza wartość średnią wszystkich wartości w kolumnie,

3.MIN - oblicza najmniejszą wartość w kolumnie

4.MAX - oblicza największą wartość w kolumnie

5.COUNT - określa liczbę wartości występujących w kolumnie

Modyfikacje bazy danych

a) Wstawianie nowych krotek do relacji

b)Usuwanie pewnych krotek z relacji

c) Zmiany wartości pewnych składowych w określonych krotkach

a )Wstawianie nowych krotek do relacji

Podstawowe elementy instrukcji wstawiania:

1.Słowo kluczowe INSERT INTO,

2.Nazwa relacji R,

3.Lista atrybutów relacji R ujęta w nawiasy,

4.Słowo kluczowe VALUES,

5.Ujęta w nawiasy lista wartości, po jednej wartości dla każdego atrybutu z listy (punkt 3)

INSERT INTO R(A1, A2, ... An) VALUES (v1, ...vn);

b) Usuwanie pewnych krotek z relacji

Podstawowe elementy instrukcji usuwania:

1.Słowo kluczowe DELETE FROM,

2.Nazwa relacji R,

3.Słowo kluczowe WHERE,

4.Warunek.

DELETE FROM R WHERE <warunek>;

c) Zmiany wartości pewnych składowych w określonych krotkach (aktualizacja)

Podstawowe elementy instrukcji aktualizacji:

1.Słowo kluczowe UPDATE,

2.Nazwa relacji R,

3.Słowo kluczowe SET,

4.Lista wyrażeń, z których każde określa wartość pewnego atrybutu relacji R,

5.Słowo kluczowe WHERE,

6.Warunek.

UPDATE R SET <nowe przypisania> WHERE <warunek>;

Definiowanie schematu relacji

a) Podstawowe typy danych

CHAR (n) - tekst o długości n znaków

VARCHAR(n) - tekst o długości nie większej niż n znaków

INT, INTEGER - liczby całkowite

FLOAT, REAL - liczby rzeczywiste (zmiennopozycyjne)

DECIMAL(n,d) - liczby rzeczywiste stałopozycyjne (n cyfr, z czego d po kropce), np. 2121.45 - DECIMAL(6,2)

DATE - data

TIME - czas

b)Deklaracja tabeli

1.Słowo kluczowe: CREATE TABLE

2.Nazwy relacji z listami nazw i typów atrybutów

3.

CREATE TABLE GwiazdaFilmowa

(nazwisko CHAR(30), adres VARCHAR(255), płeć CHAR(1), dataUrodzenia DATE);

c) Usuwanie tabel

Usunięcie relacji R

Słowo kluczowe: DROP R

d) Zmiany schematów relacji

Wskazanie modyfikowanej relacji R

ALTER TABLE R

Modyfikowanie kolumn

ADD - dodawanie nowej kolumny (wymaga określenia nazwy atrybutu i typu danych)

DROP - usuwanie kolumny (wymaga określenia nazwy kolumny)

e) Zmiany schematów relacji

Wskazanie modyfikowanej relacji R

ALTER TABLE R

Modyfikowanie kolumn

ADD - dodawanie nowej kolumny (wymaga określenia nazwy atrybutu i typu danych)

DROP - usuwanie kolumny (wymaga określenia nazwy kolumny)

f) Wartości domniemane

Słowo kluczowe: DEFAULT - dołączone do deklaracji atrybutu i jego typu

Przykłady wartości domniemanych: NULL, stała, bieżący czas lub data

g)Dziedzina - pozwala na określenie typu atrybutu; do jednej dziedziny może należeć kilka atrybutów (łatwiejsze definiowanie związków między atrybutami)

Definicja dziedziny:

1.Słowo kluczowe CREATE DOMAIN,

2.Nazwa dziedziny,

3.Słowo kluczowe AS,

4.Typ danych.

CREATE DOMAIN <nazwa> AS <opis typu>;

CREATE DOMAIN DziedzinaFilmu AS VARCHAR(50) DEFAULT `nieznany';

h) Indeks - określony na atrybucie relacji pozwala na efektywne wyszukiwanie krotek o ustalonej wartości składowej atrybutu

Określenie indeksu:

1.Słowo kluczowe CREATE INDEX,

2.Nazwa indeksu,

3.Słowo kluczowe ON,

4.Nazwa relacji

5.Nazwa atrybutu.

CREATE INDEX IndeksRoku ON Film(rok);

CREATE INDEX IndeksKlucza ON Film(tytuł,rok);

USUWANIE INDEKSU:

DROP INDEX IndeksRoku;

1



Wyszukiwarka

Podobne podstrony:
Biochemia - kolokwium[1], Studia, Semestr III, Biochemia, Wykłady
ZZL-wyklady, Materiały STUDIA, Semestr III, Zarządzanie zasobami ludzkimi, ZZL
ZZL wykłady wszystkie, Materiały STUDIA, Semestr III, Zarządzanie zasobami ludzkimi, ZZL
Wykład 3.10.2006, studia, semestr III, prawo cywilne
wykład 17.10.2006r., studia, semestr III, prawo cywilne
Hodowle komórek i tkanek zwierzęcych wykład 1 konspekt, Studia, I semestr III rok, Praktikum z hodow
Ekonomia integracji europejskiej - wyklady - semestr letni 2009, Dokumenty na studia semestr III, S.
Wykład 29.11.2006r., studia, semestr III, prawo cywilne
temp krytyczna, TRANSPORT PWR, STUDIA, SEMESTR II, FIZYKA, fizyka-wyklad, zagadnienia opracowane, za
Własności MC, STUDIA, SEMESTR III, Materiały Ceramiczne
wzorcowy plan kont, Materiały STUDIA, Semestr III, Rachunkowość finansowa, od OLI Rachunkowość finan
materiały 5, Edukacja, studia, Semestr III, Inżynieria Materiałowa, Laboratorium, Materiały 5
wyk3, studia, semestr V, zarzadzanie produkcja i uslugami, Wykład
inwest krótkot, PB-materiały, semestr III, Rachunkowość finansowa wykład
GLEBOZNAWSTWO WYKŁAD, Rok III, Rok II, Semestr III, Gleboznastwo, Gleboznastwo wykład
KANON2, studia, semestr III, prawo kanoniczne

więcej podobnych podstron