Bazy Danych cz 6

background image

1

Identyfikatory SQL

Identyfikatory SQL to nazwy służące do oznaczania

obiektów baz danych

Tabele, perspektywy, kolumny

Dozwolone znaki

Duże litery A, ..., Z

Małe litery a, ..., z

Cyfry 0, ..., 9

Podkreślenie _

Długość identyfikatora nie więcej niż 128 znaków

Musi rozpoczynać się od litery

Nie może zawierać spacji

background image

2

Dane znakowe

CHARACTER [VARYING] [

długośc

]

CHARACTER lub CHAR

CHARACTER VARYING lub VARCHAR

Pole

długość

określa maksymalną liczbę znaków, jaką

może mieć wartość w tej kolumnie

Domyślna wartość wynosi 1

Łańcuchy znaków

Stała długość

Zmienna długość

background image

3

Definiowanie danych znakowych

biuroNr

CHAR(4)

Definicja pola

biuroNr

typu znakowego o stałej

długości – cztery znaki

Jeżeli przechowywany ciąg będzie krótszy niż

cztery znaki pozostałe miejsca zostaną uzupełnione

spacjami

adres

VARCHAR(30)

Definicja pola adres typu tekstowego o zmiennej

długości

Maksymalna liczba znaków wynosi 30

background image

4

Dane logiczne

Pola typu logicznego służą do przechowywania

wartości

TRUE (prawda), FALSE (fałsz)

UNKNOWN (nieznana)

Typ logiczny jest typem wyliczeniowym

TRUE jest większa niż FALSE

Wynikiem dowolnego porównania, w którym występuje
wartość pusta lub wartość logiczna UNKNOWN jest
UNKNOWN

plec

BOOLEAN

plec

BOOL

background image

5

Dane bitowe

Bitowy typ danych wykorzystywany jest do

definiowania łańcuchów bitów

Dopuszczalne wartości znaków to „1” oraz „0”

Typy bitowe

Stała długość

lancuchBitow BIT(4)

Ustalona długość czterech bitów

Zmienna długość

lancuchBitow BIT VARYING(5)

Maksymalna długość pięć znaków

background image

6

Dokładne typy liczbowe

Dokładny typ liczbowy stosujemy przy definiowaniu

liczb, które mają dokładną reprezentację maszynową

Liczba składa się z

cyfr

,

kropki dziesiętnej

(opcjonalnie) oraz

znaku

(opcjonalnie)

Rozmiar

Całkowita liczba cyfr, łącznie z cyframi po kropce

Rozmiar określa jedynie liczbę cyfr, całkowita ilość

znaków może być większa o 2

Kropka oraz znak liczby

Dokładność

Liczba cyfr dziesiętnych (po przecinku)

background image

7

Definiowanie danych liczbowych

Dane w zapisie dziesiętnym

Domyślna dokładność 0, natomiast rozmiar zależy od
SZBD

NUMERIC [ rozmiar [,dokładnośc] ]

DECIMAL [rozmiar [,dokładność] ] ( lub DEC)

pensja DECIMAL(7,2)

Liczby całkowite (dodatnie i ujemne)

INTEGER ( lub INT )

SMALLIN

background image

8

Przybliżone typy liczbowe

Definiowanie liczb, które nie mają dokładnej reprezentacji
maszynowej

Liczby rzeczywiste

Typ zmiennoprzecinkowy

Mantysa, cecha

1.3456*10

4

FLOAT [

dokładność

]

REAL

DOUBLE PRECISION

Dokładność określa rozmiar mantysy

Maksymalny zakres liczb zmiennoprzecinkowych zależy od
implementacji

background image

9

Dane czasu i daty

Zapisywanie daty i czasu z określoną dokładnością

Elementy typów daty i czasu

YEAR(rok), MONTH(miesiąc), DAY(dzień), HOUR(godzina),
MINUTE(minuta), SECOND(sekunda)

TIMEZONE_HOUR(godzina w strefie czasowej)

TIMEZONE_MINUTE(minuta w strefie czasowej)

Odstęp czasowy w godzinach i minutach między aktualną
strefą czasową a czasem w Greenwich

DATE

TIME [

dokładność_czasu

][WITH TIME ZONE]

TIMESTAMP [

dokładność_czasu

][WITH TIME ZONE]

background image

10

DATE - stosowany dla dat

Pola YEAR, MONTH, DAY

TIME - zapis czasu

Pola HOUR, MINUTE, SECOND

TIMESTAMP - zawiera datę i godzinę

Parametr

dokładność_czasu

określa dokładność

informacji

Liczba miejsc po przecinku w polu SECOND

TIME = 0, TIMESTAMP = 6

Słowa kluczowe określają obecność pól związanych z
definicją strefy czasowej

background image

11

Typy przedziałowe

Służy do reprezentowania przedziału czasowego

Rok – miesiąc

YEAR i/lub MONTH

Dzień – godzina

DAY, HOUR, MINUTE, SECOND

INTERVAL {{

pole_początkowe

TO

pole_końcowe

}

pojedyncze_pole_daty_i_czasu

}

pole_początkowe

Określa podstawowe pole przedziału czasowego

background image

12

pole_początkowe

= YEAR | MONTH | DAY | HOUR |

MINUTE [

dokładność_początkowego_pola

]

pole_końcowe

Określa precyzję z jaką odmierzany jest przedział

czasowy

pole_końcowe

= YEAR | MONTH | DAY | HOUR | MINUTE

| SECOND [

dokładność_pola_sekund

]

Domyślną wartością dokładności pól jest 2

pojedyncze_pole_daty_i_czasu =

YEAR | MONTH | DAY |

HOUR

|

MINUTE

[

(

dokładność_początkowego_pola),

[

dokładność_sekund

]]

Typy przedziałowe

background image

13

Przykłady

INTERVAL YEAR(2) TO MONTH

Przedział czasu o wartościach od 0 lat i 0 miesięcy

do 99 lat i 11 miesięcy

INTERVAL HOUR TO SECOND(4)

Przedział czasu od 0 godzin, 0 minut i 0 sekund do

99 godzin, 59 minut i 59.9999 sekund

INTERVAL YEAR(4)

Przedział lat od 0 do 9999

background image

14

Integralność

Baza danych reprezentuje wybrany aspekt świata
rzeczywistego

Przechowuje informacje z określonych dziedzin

W bazie nie mogą znaleźć się informacje nie należące do

dziedziny problemu

Nie można polegać na wiedzy użytkownika

Kontrola integralności polega na przestrzeganiu ograniczeń

nałożonych na dane

Dane wymagane

Więzy dziedzinowe

Integralność encji

Integralność referencyjna (związków)

Więzy ogólne

background image

15

Dane wymagane

Pewne kolumny muszą zawierać dane (nie wolno
pozostawić ich pustych)

Wartość

NULL

służy do reprezentowania informacji

Niedostępnych

Nie może być wpisana do bazy danych (jest

nieznana w momencie uzupełniania rekordu)

Klauzula

NOT NULL

w definicji atrybutu

System odrzuci każdą próbę wprowadzenia rekordu, w którym

dana kolumna jest pusta

Brak klauzuli NOT NULL(wartość domyślana) dopuszcza

wartości puste

stanowisko

VARCHAR(10) NOT NULL

background image

16

Więzy dziedzinowe

Z każdą kolumną związane są dopuszczalne wartości

atrybutów

Dziedzina wartości

Więzy kolumnowe

Klauzula CHECK (

warunek_selekcji

)

Można się odwołać jedynie dla kolumny dla której

jest zdefiniowana klauzula

Utworzenie atrybutu

plec

przyjmującego tylko

wartości ('

M

', '

K

')

plec

CHAR NOT NULL CHECK (

plec

IN ('

M

','

K

') )

background image

17

Definiowanie dziedzin

Niezależne definiowanie dziedzin

Dziedzina może być wykorzystywana wielokrotnie do

określania dozwolonych wartości dla atrybutów

CREATE DOMAIN

NazwaDziedziny

[AS]

typ_danych

[DEFAULT

wartość_domyślna

]

[CHECK (

warunek_selekcji

)]

typ_danych – podstawowy typ danych na bazie którego

tworzona jest dziedzina

wartość_domyślna

– określa dane przyjmowane automatycznie

warunek_selekcji

– ograniczenia nałożone na wartości

background image

18

Tworzenie dziedziny

CREATE DOMAIN

RodzajPlci

AS CHAR

DEFAULT '

M

'

CHECK ( VALUE IN ('

M

','

K

'))

T

worzy dziedzinę o nazwie

RodzajPlci

Pojedyncze znaki o wartości '

M

' lub '

K

'

Wartość domyślna '

M

'

Definicja atrybutu z wykorzystaniem dziedziny

plec

RodzajPlci

NOT NULL

CREATE DOMAIN NumerBiura AS CHAR(4)

CHECK ( VALUE IN ( SELECT biuroNr FROM Biuro ))

Dziedzina NumerBiura zbudowana o numery biur z tabeli Biuro

Może pojawić się tylko istniejące biuro

background image

19

Usuwanie dziedziny

DROP DOMAIN

NazwaDziedziny

[ RESTRICT |

CASCADE ]

Jeżeli zdefiniowana dziedzina nie jest używana to zostanie
usunięta

RESTRICT, CASCADE

Określa sposób postępowania w przypadku używania dziedziny

RESTRICT

Dziedzina nie zostanie usunięta

CASCADE

W każdej kolumnie tabeli dziedzina zostanie zastąpiona na typ
bazowy dziedziny

Wartość domyślna

Więzy kolumnowe

background image

20

Integralność encji

Klucz główny

tabeli musi zawierać unikalną, niepustą

wartość w każdym wierszu

PRIMARY KEY(nieruchomoscNr)

Złożony klucz główny

PRIMARY KEY(biuroNr,nieruchomośćNr)

Klauzula może wystąpić tylko raz w definicji tabeli

Zagwarantowanie

unikalności

wartości

kolumn

alternatywnych

Kolumna (kolumny) wymienione w klauzuli UNIQUE muszą
mieć ustawiony atrybut NOT NULL

UNIQUE(nazwa_kolumny)

Klauzula może pojawić się klika razy

background image

21

Integralność referencyjna

Klucz obcy

to kolumna lub zbiór kolumn łączących

każdy wiersz tabeli podrzędnej z wierszem tabeli

nadrzędnej

Wartości występujące w polach klucza obcego muszą

się odnosić do istniejącego

klucza głównego

FOREIGN KEY (biuorNr) REFERENCES Biuro

Każda operacja INSERT i UPDATE zostanie

odrzucona jeżeli klucz oby nie będzie odpowiadał

wartości klucza głównego tabeli nadrzędnej

Sposób dodawania i modyfikowania danych zależy od

rodzaju akcji referencyjnej

background image

22

Akcje referencyjne

CASCADE

Usunięcie wiersza z tabeli nadrzędnej automatycznie
powoduje usunięcie związanych z nim wierszy z tabeli

podrzędnej

Jeżeli tabela podrzędna jest tabelą nadrzędną
względem innej tabeli opcja może powodować kolejne
usunięcia

SET NULL

Usunięcie wiersza z tabeli nadrzędnej i zastąpienie

wartości klucza obcego w jego wierszach podrzędnych
wartością pustą

Tabela podrzędna nie może mieć opcji NOT NULL dla
klucza obcego

background image

23

SET DEFAULT

Usunięcie wierszy z tabeli nadrzędnej i zastąpienie wartości
klucza obcego w jego wierszach podrzędnych wartością

domyślną

W tabeli podrzędnej musi być określona wartość

domyślna wartość klucza obcego

NO ACTION

Zaniechanie operacji usuwania z tabeli nadrzędnej

Domyślny tryb pracy

FOREIGN KEY (pracownikNr) REFERENCES Personel ON DELETE
SET NULL

FOREIGN KEY (wlascicielNr) REFERENCES Wlasciciel ON
UPDATE CASCADE

Akcje referencyjne

background image

24

Więzy ogólne - aseracje

Zmiany w tabelach mogą być ograniczone przez więzy ogólne

Aseracje nie są związane bezpośrednio z tabelami

Może nakładać ograniczenia na kilka tabel

CREATE ASSERATION NazwaAseracji

CHECK (warunek_selekcji)

Ograniczenie liczby nieruchomości nadzorowanych przez

jednego pracownika do 100

CREATE ASSERATION NieZaDuzo

CHECK ( NOT EXIST ( SELECT pracownikNr FROM
Nieruchomosc GROUP BY pracownikNr HAVING COUNT(*)
> 100 ))


Document Outline


Wyszukiwarka

Podobne podstrony:
kwerendy wybierające, SCI, OB-IV, bazy danych cz I
Bazy Danych cz III [tryb zgodności]
Bazy danych - cz zagadnie do egzaminu, Automatyka i Robotyka, Semestr 3, Bazy danych, BD, BD, Ba
Bazy Danych cz II [tryb zgodnos Nieznany (2)
kwerendy podsumowujące, SCI, OB-IV, bazy danych cz I
Bazy Danych cz 2
Bazy Danych cz 3
Bazy Danych cz 5
Bazy Danych cz 4
Bazy Danych cz 1
3 Bazy danych SQL cz 1 wykład
Bazy danych - podstawowe kroki w projektowaniu cz 2 - wyklady, Zajęcia z Baz Danych - MS Access, cz
Bazy danych - podstawowe kroki w projektowaniu cz 2 - wyklady, Zajęcia z Baz Danych - MS Access, cz
M Smyczek i M Kaim Od zera do ECeDeeLa cz 5 Bazy danych
3 Bazy danych SQL cz 2 wykład
3 Bazy danych SQL cz 2 wykład
Bazy Danych Elementy Jezyka SQL cz I
3 Bazy danych SQL cz 2 wykład

więcej podobnych podstron