Materiały od profesora

Transkrypt

Materiały od profesora
Implementacyjne modele danych
Definicja bazy danych
Okre laj technologi transformacji modelu koncepcyjnego do
konkretnego systemu SZBD. W ród modeli implementacyjnych
wyró nia si modele:
Hierarchiczne
Baza danych jest zbiorem
powi zanych danych.
Baza danych jest
abstrakcyjnym, informatycznym odzwierciedleniem
wybranego fragmentu rzeczywisto ci nazywanego
mini wiatem. Zmiany w tym mini wiecie s
odzwierciedlane w bazie danych.
Rafał Kowalski
Transformacja modelu konceptualnego do
modelu relacyjnego.
RELACYJNE
obiektowe
PRACOWNICY
PRACOWNIK_ID
1
2
3
4
5
NAZWISKO
IMIE
Kudłaty
Pryszczaty
Pij cy
Ponury
Kulawy
Stanisław
Mieczysław
Gustaw
Bolesław
Franciszek
1
KIEROWNIK_ID WYDZIAL_ID
3
4
4
2
3
2
3
1
2
Rafał Kowalski
2
RELACYJNE BAZY DANYCH
i Strukturalny J zyk Zapyta SQL.
Metodyka tworzenia baz danych
Analiza mini wiata – konstrukcja modelu
konceptualnego mini wiata
sieciowe
1970r. dr E.F.Codd opublikował artykuł:
Diagramy koncepcyjne
„Relacyjny model danych dla du ych banków danych
współu ywanych”
Relacje
Proces normalizacji
Iinterfejs dost pu do relacyjnych baz danych:
SEQUEL
Relacje znormalizowane
SQL
Standardy j zyka: SQL-89, SQL-92 (SQL2), SQL-99.
Wybór struktur fizycznych i okre lenie
cie ek dost pu
Fizyczne struktury danych
SQL - jedyny j zyk obsługi
relacyjnych baz danych
Strojenie systemu
Rafał Kowalski
3
Rafał Kowalski
Dr. E. F. Codd
Dr. E. F. Codd 12 Postulatów
1.
12 Postulatów Systemów Relacyjnych
1.
Informacyjny.
2.
Gwarantowanego dost pu.
3.
Systemowej obsługi warto ci NULL.
4.
Dynamicznego słownika danych.
Modyfikowania BD przez perspektywy.
Postulat Informacyjny.
Postulat gwarantowanego dost pu.
Dost p do ka dej atomowej jednostki informacji (datum) jest realizowany przy
pomocy okre lenia nazwy tabeli, warto ci klucza głównego i nazwy kolumny.
3.
Pełnego j zyka danych.
6.
Systemów Relacyjnych
Cała informacja z relacyjnej bazy danych jest reprezentowana jedynie na
poziomie logicznym, tylko przy pomocy warto ci umieszczonych w tabelach.
2.
5.
4
Postulat systemowej obsługi warto ci NULL.
System Relacyjnej Bazy Danych przechowuje warto ci NULL, które
reprezentuj informacj brakuj c . Obsługa warto ci NULL jest realizowana w
sposób niezale ny od typów danych.
7.
Modyfikowania danych na wysokim poziomie abstrakcji.
8.
Fizycznej niezale no ci danych.
4.
9.
Logicznej niezale no ci danych.
Struktura bazy danych jest reprezentowana na poziomie logicznym w ten sam
sposób, co przechowywane dane i obsługiwana przez ten sam j zyk relacyjny.
1923 - 2003
10. Niezale no ci wi zów spójno ci.
Postulat dynamicznego słownika danych.
11. Niezale no ci dystrybucyjnej.
12. Bezpiecznych operacji niskiego poziomu.
Rafał Kowalski
5
Rafał Kowalski
6
1
Dr. E. F. Codd 12 Postulatów
5.
Dr. E. F. Codd 12 Postulatów
Systemów Relacyjnych
Postulat pełnego j zyka danych.
8.
W systemie relacyjnym musi by okre lony j zyk, którego wyra enia podlegaj
dokładnie okre lonej składni i umo liwiaj definiowanie, modyfikowanie i
przegl danie danych, ogranicze i realizacj transakcji. J zyk ten jest
niezale ny od obsługiwanych j zyków narodowych, j zyków programowania i
rodzajów interakcji z klientami systemu (SQL).
6.
Postulat modyfikowania BD przez perspektywy.
Wszystkie perspektywy danych, które teoretycznie umo liwiaj modyfikowanie
danych, musz umo liwia te modyfikacje w praktyce.
7.
Postulat modyfikowania danych na wysokim poziomie
abstrakcji.
Systemów Relacyjnych
Postulat fizycznej niezale no ci danych.
Praca klientów przy terminalach interaktywnych oraz działanie programów i
aplikacji s niezale ne od istniej cych fizycznych struktur danych i zmian
dokonywanych w strukturach fizycznego przechowywania i/lub metod dost pu
do danych fizycznych.
9.
Postulat logicznej niezale no ci danych.
Praca klientów przy terminalach interaktywnych oraz działanie programów i
aplikacji s niezale ne od zawarto ci i zmian dokonywanych w tre ci
przechowywanej informacji, je eli te zmiany nie wpływaj na struktury tabel
bazowych.
Wszystkie operacje dost pu do danych (przegl danie, wprowadzanie,
modyfikowanie i usuwanie) musz umo liwia jednorodne przetwarzanie relacji
bazowych(base) i wyliczanych(derived) .
Rafał Kowalski
Dr. E. F. Codd 12 Postulatów
7
Rafał Kowalski
Dr. E. F. Codd 12 Postulatów
Systemów Relacyjnych
8
Systemów Relacyjnych
10. Postulat niezale no ci wi zów spójno ci.
12. Postulat bezpiecznych operacji niskiego poziomu.
Wi zy spójno ci danych (ograniczenia integralno ci) musz by w pełni
definiowane przy pomocy j zyka relacyjnej bazy danych i przechowywane w
słowniku danych w sposób niezale ny od oprogramowania u ytkowego. System
musi obsługiwa co najmniej dwa rodzaje wi zów spójno ci:
Je eli system relacyjnej bazy danych udost pnia j zyk niskiego poziomu
(przetwarzania pojedynczych rekordów danych), to jego u ycie nie mo e
umo liwia łamania lub czasowego ograniczania wi zów spójno ci,
zdefiniowanych w j zyku wysokiego poziomu.
1.
Integralno
encji (klucz główny nie mo e przyjmowa warto ci NULL).
2. Integralno referencyjna (ka da okre lona (nie NULL) warto
musi pochodzi z domeny odpowiadaj cego klucza głównego).
klucza obcego
11. Postulat niezale no ci dystrybucyjnej.
Postulat Zero: „Ka dy system, który uznaje si za Relacyjn
Baz Danych, musi realizowa wszystkie operacje przetwarzania
danych tylko i wył cznie przy pomocy operatorów relacyjnych.”
System Relacyjnej Bazy Danych jest niezale ny od rozmieszczenia i
rozproszenia bazy danych. U ytkownicy systemu nie musz by wiadomi i
uzale nia swoich działa od rozproszenia danych.
Na
Napodstawie
podstawiezdefiniowanych
zdefiniowanychpostulatów
postulatów
mo
mo na
napowiedzie
powiedzie , , ee aden
adenwspółczesny
współczesnysystem
system
RDBMS
RDBMS
nie
niejest
jestsystemem
systememwwpełni
pełnirelacyjnym.
relacyjnym.
(6,9,10,11,12)
(6,9,10,11,12)
Rafał Kowalski
Podstawy j zyka SQL
9
Grupy polece SQL92
Rafał Kowalski
Podstawy j zyka SQL
KLASA
DML
DDL
Definiowanie
danych.
Modyfikacje
danych.
DCL
Sterowanie
serwerem danych
DQL
Rafał Kowalski
Wyszukiwanie
danych.
11
10
Klasy polece SQL99
Opis
Obsługa
poł czenia.
Sterowanie sesj - poł czeniem klienta z
serwerem.
Strukturalne
Sterowanie wykonywaniem zbiorów polece .
Przetwarzanie
danych
Wyszukiwanie danych poł czone z
modyfikowaniem nietrwałym lub modyfikowanie
trwałe.
Diagnostyka
systemu
Wy wietlanie informacji o kondycji i stanie pracy
serwera, bł dach i sytuacjach wyj tkowych.
Obsługa
schematów
Modyfikowanie struktur przechowuj cych dane w
serwerze.
Obsługa sesji
Modyfikowanie parametrów steruj cych
procesem przetwarzania informacji w sesji klienta
Obsługa
transakcji
Synchronizowanie współpracy wielu
u ytkowników i dzielenie procesów przetwarzania
danych na jednostki elementarne.
Rafał Kowalski
Przykłady
12
2
Hierarchiczno
modelu relacyjnego
Zapytania proste SELECT
KLASTER
Zbiór katalogów sesji SQL (cały system RDBMS).
Standard ANSI nakłada na klaster obowi zek
kontroli dost pu u ytkowników ?.
KATALOG
Inaczej: instancja bazy danych.
SCHEMAT
Zbiór obiektów u ytkownika (baza danych).
SELECT
Tabele, perspektywy, moduły, procedury
składowane.
OBIEKT
Unikatowy zbiór warto ci, atrybutu encji informacji.
KOLUMNA
TYP STANDARDOWY
TYP U YTKOWNIKA
Definicja zbioru prawidłowych warto ci kolumny
REGUŁA i ASERCJA
Reguły prawidłowego przetwarzania informacji:
PK, FK, U, NN, . . . , wyzwalacze
Rafał Kowalski
{
}
DISTINCT
UNIQUE
ALL
FROM
lista ródłowa
WHERE
GROUP BY
HAVING
ORDER BY
warunek S wyboru
lista grupowania
warunek G wyboru
13
Rafał Kowalski
CROSS JOIN
INNER
JOIN
Selekcja wyników zapytania
PROBLEMY
stop
tabela
,
Du a liczba odmiennych rodzajów warunków dla ró nych typów danych.
ON
Mo liwo
)
kolumna
Brak pierwsze stwa spełniania - kolejno
struktury zagł bionych nawiasów.
INNER
JOIN
Rafał Kowalski
OUTER
wzajemnego uzupełniania i zast powania si ró nych warunków.
Pomieszanie warunków selekcji ze zł czeniami Theta.
Warunek zł czenia
Zale no
LEFT
RIGHT
FULL
15
Rafał Kowalski
Prosty warunek logiczny
<
=
>
wewn trzne
<=
<>
>=
lewostronne
zewn trzne
(wszystkie wydziały)
NOT Pensja>1300 AND wydzial_id = 3
AND
OR
<=>
NOT
AND/OR
Sprawdzenie warto ci NULL
Sprawdzenie wyst powania pustej
warto ci atrybutu.
UWAGA:
0 i „” nie s warto ciami pustymi.
WHERE (2)
THETA
Pracownicy.wydzial_id = wydzialy.wydzial_id
Pracownicy.wydzial_id (+)= wydzialy.wydzial_id
Pracownicy.wydzial_id =* wydzialy.wydzial_id
Oracle
PostgreSQL
Porównywanie tekstów ze wzorcem
Zło ony warunek logiczny
Warunki proste, poł czone
operatorami zł cze i
nawiasami zmieniaj cymi
kolejno ich analizy.
16
Rodzaje warunków
Obsługa zł cze tabel
pensja=1300
okre lana wył cznie przez
od producentów serwerów i konfiguracji oprogramowania.
Rodzaje warunków WHERE(1)
Wyra enie logiczne zło one z dwóch
argumentów poł czonych operatorem
porównania, ewentualnie poprzedzone
kwalifikatorem negacji NOT.
WHERE
Opanowanie umiej tno ci stosowania warunków klauzuli WHERE jest
podstaw sukcesu stosowania j zyka SQL.
NATURAL
LEFT
RIGHT
FULL
OUTER
tabela
14
Klauzula WHERE słu y do okre lania listy warunków logicznych, które musz
spełnia wiersze wygenerowane przez polecenie SELECT lub DELETE.
,
USING (
;
lista kolejno ci
Składnia klauzuli FROM
start
lista wyboru
numer_telefonu IS NULL
imie IS NOT NULL
Rafał Kowalski
IS NULL
IS NOT NULL
17
Porównywanie tekstów,
wyszukiwanie ła cuchów ze
znakami wieloznacznymi.
UWAGA: W zale no ci od
kontekstu, serwer mo e dokona
niejawnej konwersji typu atrybutu.
imie
nazwisko
nazwisko
pensja
NOT LIKE ′%a′′
LIKE ′K_owal%′′
LIKE ′ _ _ _ _′′
LIKE ′3__0′′
%
dowolny
ła cuch znaków
_
dowolny jeden
znak
Sprawdzenie zakresu
Poszukiwanie
atrybutów
mieszcz cych si w
DOMKNI TYM
zakresie warto ci.
pensja BETWEEN 1000 and 3000
pensja NOT BETWEEN 2000 and 3000
imie BETWEEN
'Adam'
and ‘Bartek'
Rafał
Kowalski
BETWEEN x and y
NOT BETWEEN . . .
18
3
Rodzaje warunków
WHERE (3)
Sprawdzenie zbioru warto ci
Poszukiwanie atrybutów
mieszcz cych si w
wymienionym
zbiorze warto ci.
Podzapytania
Sprawdzanie zło onych warunków istnienia
nazwa IN ( ‘spedycja’ , ‘transport’ )
IN ( a,b,c)
imie NOT IN (′′Anna ′ , ′Ewa ′ )
pensja IN (1000, 1500, 2000)
NOT IN . . .
WHERE (4)
PODZAPYTANIA !!!
Poszukiwanie atrybutów, zwi zanych ze zbiorem warto ci generowanych przez
podzapytania SQL (zwykle skorelowane).
Przykład zapytania
Wy wietl pracowników, którzy posiadaj podwładnych.
pracownik_id, imie, nazwisko
pracownicy p
EXISTS
(SELECT empno FROM emp
WHERE
p.mgr = emp.empno)
ORDER BY
ename;
SELECT
FROM
WHERE
Wspomagane
IN ANY ALL EXISTS
< <=
przez
Rafał Kowalski
19
Agregowanie wyników
1
2
3
4
5
6
NAZWISKO
IMIE
Kudłaty
Pryszczaty
Pij cy
Ponury
Kulawy
Samotny
Stanisław
Mieczysław
Gustaw
Bolesław
Franciszek
Jan
2
7
PRACOWNIK_ID
3
2
3
1
1
2
3
4
5
5
Policz rekordy w tabeli PRACOWNICY
! "#$
6
"
%"
&
! "#$
6
!#'(")
*"
'
! "#$
5
Rafał Kowalski
NAZWISKO
IMIE
Kudłaty
Pryszczaty
Pij cy
Ponury
Kulawy
Stanisław
Mieczysław
Gustaw
Bolesław
Franciszek
Liczy rekordy, w których chocia
jedna kolumna nie jest pusta.
GROUP BY
WYDZIALY
KIEROWNIK_ID WYDZIAL_ID
3
4
4
2
3
2
3
1
2
WYDZIAL_ID
1
2
3
4
Poj cie agregowania danych wi
NAZWA
KIEROWNIK_ID SIEDZIBA_ID
spedycja
magazyn
transport
kadry
4
2
3
10
20
10
30
e si z wykorzystaniem klauzuli grupowania:
GROUP BY . . .
poł czonej z zastosowaniem specjalnych funkcji agreguj cych:
MIN() MAX() AVG() SUM() COUNT() . . .
Agregowanie pozwala odpowiedzie na pytania postaci:
Pogrupuj rekordy wg wskazanego kryterium a nast pnie wykonaj operacje typu:
Pomija rekordy z pustym
wpisem w kolumnie.
policz rekordy,
wyznacz warto ci minimalne/maksymalne/ rednie,
oblicz sumy warto ci liczbowych.
21
Składnia GROUP
Rafał Kowalski
=ANY
jest równowa ne
IN
20
Agregowanie wyników
PRACOWNICY
KIEROWNIK_ID WYDZIAL_ID
3
4
4
UWAGA
Rafał Kowalski
PRACOWNICY
PRACOWNIK_ID
=
!= => >
<>
23
Rafał Kowalski
BY
22
PODZAPYTANIA
Rafał Kowalski
24
4
PODZAPYTANIA „WHERE” zwracaj ce wiele wierszy
PRACOWNICY
PRACOWNIK_ID
1
2
3
4
5
NAZWISKO
Kudłaty
Pryszczaty
Pij cy
Ponury
Kulawy
IMIE
STANOWISKO
Stanisław
kierownik
Mieczysław
kierowca
Gustaw
magazynier
Bolesław
kierownik
Franciszek
goniec
+++
+++
++
WARUNEK
PODZAPYTANIA w klauzuli „HAVING”
PRACOWNICY
WYDZIALY
PLACA
WYDZIAL_ID
WYDZIAL_ID
NAZWA
KIEROWNIK_ID SIEDZIBA_ID
1
spedycja
4
2100
3
2
magazyn
2
1850
2
3
transport
3
300
3
4
kadry
2300
1
Wy
3100
3 nazwiska,
Wy wietl
wietl
nazwiska,stanowiska
stanowiskai i
10
20
10
30
pensje
pensjepracowników
pracownikówzarabiaj
zarabiaj cych
cych
najmniej
najmniejwwswoich
swoichwydziałach.
wydziałach.
PRACOWNIK_ID
1
2
3
4
5
NAZWISKO
Kudłaty
Pryszczaty
Pij cy
Ponury
Kulawy
=ANY jest równowa ne IN
IMIE
WYDZIALY
STANOWISKO
Stanisław
kierownik
Mieczysław
kierowca
Gustaw
magazynier
Bolesław
kierownik
Franciszek
goniec
PLACA
WYDZIAL_ID
WYDZIAL_ID
NAZWA
KIEROWNIK_ID SIEDZIBA_ID
1
spedycja
4
10
2100
3
2
magazyn
2
20
1850
2
3
transport
3
10
300 Wy 3wietl nazwy
i
rednie
płace
Wy wietl nazwy
i rednie płace 30
4
kadry
2300
tych1wydziałów, które przekraczaj
3100 tych3 wydziałów, które przekraczaj
redni
redni płac
płac wydziału
wydziału‘magazyn’
‘magazyn’
+++
+++
Etap PIERWSZY.
+++
+++
+ + + WARUNEK
Etap TRZECI.
IN, ANY, ALL, EXISTS
(PODZAPYTANIE )
(PODZAPYTANIE )
=, !=, <,>,>=,<=.
Rafał Kowalski
25
Etap DRUGI.
Rafał Kowalski
PODZAPYTANIA skorelowane
{ }
{wskazówka}
lista referencyjna tabel
{
warunki S wyboru
lista wy wietlania
PODZAPYTANIA skorelowane
?
?
26
Stosowane w przypadkach, gdy interesuj ca jest tylko
odpowied na pytanie, czy wiersz o zadanych warunkach
istnieje (lub nie istnieje).
EXISTS
}
Nale y do najbardziej wydajnych sposobów wykonywania
zło onych zapyta do bazy danych.
lista grupowania
{
{
warunki G wyboru
lista kolejno ci
}
}
Tabele tymczasowe generowane podczas wykonywania
W klauzuli warunkowej zapytania
wewn trznego wyst puje
odwołanie do kolumny z zapytania
zewn trznego.
IN ANY ALL zapyta nie posiadaj indeksów, co znakomicie je spowalnia.
;
Rafał Kowalski
27
Rafał Kowalski
28
TRANSAKCYJNO
MODYFIKOWANIE
DANYCH
Jawne rozpocz cie transakcji.
Niejawne rozpocz cie transakcji.
SET TRANSACTION . . .
BEGIN . . .
Polecenie DML (INSERT, UPDATE)
Dowolne polecenia SQL
rodowisko izolowanych modyfikacji,
które s niewidoczne dla pozostałych
u ytkowników systemu.
Wycofanie dokonanych
zmian z bazy danych.
DML
COMMIT
INSERT
UPDATE
DELETE
TRUNCATE
Rafał Kowalski
29
Trwałe zapisanie dokonanych
zmian w bazie danych i
pokazanie pozostałym
u ytkownikom systemu.
ROLLBACK
Rafał Kowalski
Jawne zako czenie transakcji
30
5
Składnia UPDATE
START
UPDATE
SET
tabela
Składnia DELETE
STOP
kolumna
wyra enie
=
TRUNCATE TABLE
tabela
DELETE FROM
tabela
,
START
WHERE
STOP
warunek S wyboru
warunek S wyboru
WHERE
Rafał Kowalski
31
Rafał Kowalski
32
CREATE TABLE Przykład 1,2
, '& "
%&* )
-%
./
2/
(!"
,0
"
%"
&
3/
' *
'(& "
)
&
.
"
.5
MODYFIKOWANIE
SCHEMATÓW
$
DDL
, '& "
%&* )
-%
./
(!"
,0
1
2/
"
%"
&
3/
' *
'(& "
)
&
.
"
.5
CREATE
ALTER
DROP
)
&
444 4
$
Rafał Kowalski
33
CREATE TABLE Przykład 3,4
, '& "
%&* )
-%
./
(!"
,0
1
2/
"
%"
&
3/
' *
'(& "
)
&
.
"
.5
,* )
-* 0
,* (*
,* )
&
,* "*
6
6
CREATE TABLE
nazwa tabeli
,*
6 6
444 4
)
&
7
nazwa kolumny
typ danych
(*
out-of-line
.
.5
0
)
STOP
444 4
wył cznie inline !
./
2/
3/
(
7
$
, '& "
%&* )
-%
(!"
,0
1
"
%"
&
' *
'(& "
)
&
"
,* )
-*
,* )
&
,* "*
34
CREATE TABLE Składnia
START
)
&
inline
Rafał Kowalski
CONSTRAINT
nazwa ograniczenia
Ograniczenie
integralno ci
kolumny
Ograniczenie
integralno ci
tabeli
,
%&* )
-%
"
$
Rafał Kowalski
35
Rafał Kowalski
36
6
CREATE TABLE Składnia
warunek integralno ci kolumny
START
DEFAULT
warto
CONSTRAINT
nazwa ograniczenia
CHECK
(
domniemana
STOP
CONSTRAINT
START
PRIMARY KEY
warunek logiczny kolumny
CREATE TABLE Składnia
warunek integralno ci tabeli
nazwa ograniczenia
(
STOP
nazwa kolumny
)
PRIMARY KEY
)
,
UNIQUE
CHECK
(
FOREIGN KEY
(
warunek logiczny kilku
kolumn jednego wiersza
)
UNIQUE
NOT NULL
REFERENCES
nazwa kolumny
(
REFERENCES
)
nazwa kolumny
Rafał Kowalski
nazwa tabeli
37
(
nazwa kolumny
38
ALTER TABLE Składnia 1
nazwa tabeli
nazwa schematu
.
CASCADE CONSTRAINTS
ALTER TABLE
nazwa tabeli
nazwa schematu
SIEDZIBY
SIEDZIBA_ID
ULICA
KOD_POCZTOWY
MIASTO
STAN_PROWINCJA
KRAJ_ID
)
,
Rafał Kowalski
DROP TABLE Składnia
DROP TABLE
)
,
nazwa tabeli
<pk> NUMBER(4)
VARCHAR2(40)
VARCHAR2(12)
VARCHAR2(30)
VARCHAR2(25)
<fk> CHAR(2)
.
{
WYDZIALY
SIEDZIBA_ID
WYDZIAL_ID
<pk> NUMBER(4)
NAZWA
VARCHAR2(30)
KIEROWNIK_ID <fk> NUMBER(6)
SIEDZIBA_ID
<fk> NUMBER(4)
Nieograniczona
ilo
opcji zmian
}
KRAJ_ID
Rafał Kowalski
39
Rafał Kowalski
ALTER TABLE Składnia 2
warunki integralno ci tabeli
Typy danych SQL 99 1
Oracle
CONSTRAINT
lista przecinkowa nazw kolumn
)
Warunek logiczny zawieraj cy nazwy
kilku kolumn
tego samego rekordu
CHECK (
lista przecinkowa nazw kolumn
REFERENCES
Nazwa tabeli
.
MySQL
ANSI
ZNAKOWE
lista przecinkowa nazw kolumn klucza
UNIQUE (
nazwa schematu
MS SQL
nazwa
PRIMARY KEY (
FOREIGN KEY (
40
CHAR(n)255
NCHAR(n)4/8000
VARCHAR(n)255
NVARCHAR(n)4/80
SET(w1,w2,...,wn)64
00
LONGTEXT4GB
TEXT2GB
MEDIUMTEXT65kB
.UNICODE
DECIMAL(m,d)
NUMBER(p1..38,s-84..127)
NUMERIC(p1..38,s)
DOUBLE(p,s)
DECIMAL(p1..38,s)
NUMERIC(p,s)
DECIMAL(p,s)
NUMBER(38)
INT, BIGINT
TINYINT
SMALLINT
BIGINTbardzo du o
SMALLINT-32768..32767
TINYINT -128..127
INTEGER
INT
SMALLINT
NUMBER
FLOAT
REAL
FLOAT(p ..24..53)
REAL(p,s)
FLOAT float 126 bit
DOUBLE PRECISION
REAL float 64 bit
)
PRIMARY KEY
PRIMARY KEY
UNIQUE
NATIONAL
CHAR
CHARACTER
VARYING (n)
LICZBOWE
( lista przecinkowa nazw kolumn
Rafał Kowalski
NCHAR(n)2000
NVARCHAR2(n)4000
CLOB4GB
41
)
Rafał Kowalski
42
7
Typy danych SQL 99 2
Oracle
MS SQL
MySQL
Typy danych SQL 99 3
ANSI
Oracle
MS SQL
MySQL
BINARNE
BLOB4GB
BFILE outside database
IMAGE2GB
BINARY8KB
VARBINARRAY8KB
LONGBLOB,
MEDIUMBLOB
DATE
DATETIME
„Binary Large Object”
TIMESTAMP
BIT, BOOL=tinyint(1)
BEZ INDEKSOWANIA !
Zajmuj bajt pami ci
8B, dokładno
1-01-4712BC .. 31-12-9999AD
LOGICZNE
DATETIME
3,33 ms.
SMALLDATETIME
1/1/1900 .. 6/6/2079
4B, dokładno 1 m.
Warto ci logiki
Łukasiewicza: TRUE,
FALSE, UNKNOWN
(NULL).
Rafał Kowalski
1000-01-01 .. 9999-12-31
1/1/1753 .. 12/31/9999
DATE
BIT(0,1,NULL)
TIMESTAMP
1000-01-01 00:00:00
9999-12-31 23:59:59
TIMESTAMP
YEAR
43
Rafał Kowalski
0 (0"
8
1
38
, )
(%"
&
$
MS SQL
0 (0"1
Pozwala na przechowywanie prawie ka dego innego podstawowego typu
SQL_VARIANT danych SQL Server. Wyj tki stanowi
! "
(!$ ! ) &!' !
#$%&!' ! . Jest podobny do typu danych
RowGUID
;
=
=
=
=
=
=
=
=
ENUM('value1','value2',...) TYP IMIENNY
Kolumna typu tekstowego, która mo e
przybiera warto ci wył cznie z
wylistowanego zbioru, zawieraj cego
maksymalnie 65535 ró nych warto ci.
SET('value1','value2',...)
Kolumna typu tekstowego, która mo e
zawiera od 0 do 64 elementów zbioru.
TYP ZBIOROWY
Rafał Kowalski
4
44
44
9
9
, )9
9
44: ; : 44
9
9
(%"
&
0 (0"
$
Budowanie identyfikatorów w bazach rozproszonych.
MySQL
44
UWAGA NA POLA TEKSTOWE !!!
ORACLE
PSEUDOKOLUMNA - Unikalny adres wiersza tabeli w bazie danych (typu:
tekstowego).
DATE
TIMESTAMP
TIME
Wybrane typy danych serwerów SQL 1
ROWID
ANSI
DATA I CZAS
4$
9
9
44:<
; :
< ;
=
=
=
=
=
=
=
=
45
Rafał Kowalski
Numerowanie automatyczne (AUTONUMEROWANIE) 1
46
Numerowanie automatyczne (AUTONUMEROWANIE) 2
MS SQL
MySQL
! "
0*"
'
(!"
,0
1
6 @ #
$
?
?
! "#
! "#
./
! "
0*"
'
(!"
,0
1
3/
3/
SET IDENTITY_INSERT pracownicy ON
pozwala na wprowadzanie bezpo rednie warto ci
! "#
(!"
,0
! "#$
! "#$
1
>
( 4$
! "#
?
?
TYLKO JEDNA taka kolumna w tabeli.
SUBINDEKSOWANIE zło onego klucza głównego.
ZEROWANIE po usuni ciu wszystkich wierszy.
1
>
( 4$
NIE ZERUJE LICZNIKA!!!
>
! "#4
TYLKO JEDNA taka kolumna w tabeli.
AA"
'& "#
Rafał Kowalski
! "#
"
'& *
&
(!"
,0
! "#
47
BC!#D& & !
Rafał Kowalski
! ,
"
% ",& "
&
48
8
CREATE
CREATE INDEX Składnia 1
{}
ON
INDEX
nazwa indeksu
nazwa schematu
PRZETWARZANIE
TRANSAKCYJNE
.
nazwa tabeli
nazwa schematu
nazwa aliasu
.
!
nazwa kolumny
(
funkcja kolumn
{}
BEGIN . . .
COMMIT . . .
ROLLBACK . . .
)
,
Rafał Kowalski
49
Rafał Kowalski
Przetwarzanie Transakcji
Spójny ci g powi zanych ze sob logicznie operacji
przetwarzania danych w bazie.
SZBD automatycznie synchronizuje i szereguje transakcje tak, aby nie
powstały konflikty i niespójno ci danych:
a)
metod porz dkowania według etykiet czasowych,
b)
metod walidacji,
c)
metod blokowania – w praktyce komercyjnych baz danych stosuje
si wył cznie blokowanie .
Transakcje zatwierdza si poleceniem COMMIT a wycofuje poleceniem
ROLLBACK.
UWAGA: Polecenia takie jak CREATE/ALTER/DROP, GRANT i
REVOKE ko cz si niejawnym poleceniem COMMIT.
Rafał Kowalski
Własno ci transakcji
ATOMOWO
Transakcja mo e by zatwierdzona lub wycofana przez
u ytkownika.
Wycofanie transakcji wi e si z odtworzeniem pierwotnego
stanu wszystkich zmienionych atrybutów.
Zatwierdzona przez u ytkownika transakcja mo e zosta
wycofana przez SZBD w przypadku niemo liwo ci jej
wypełnienia.
51
(ang. consistency)
Rafał Kowalski
Niepo
52
dane zjawiska współdzielenia danych
Standardy
SQL (ang.
i SQL92
laj
Bł
dne ANSI/ISO
odczyty
dirty okre
reads)
integralno
Zatwierdzona transakcja przeprowadza baz z jednego stanu spójnego do
innego stanu spójnego ( adne z ogranicze integralno ciowych nie jest
naruszone).
3 niepo dane zjawiska zakłócaj ce
danych i 4 poziomy izolacji dla ochrony przed nimi.
Transakcja odczytuje dane cz ciowo nadpisane przez inny proces ale
jeszcze nie zatwierdzone (commited).
Niepowtarzalne odczyty (ang. fuzzy reads)
IZOLACJA (ang. Isolation)
Zmiany dokonywane w bazie danych podczas trwania transakcji jednego
u ytkownika b d widoczne przez innych u ytkowników dopiero po
zatwierdzeniu transakcji.
TRWAŁO
(ang. atomicity)
Wszystkie akcje tworz ce transakcj musz zosta wykonane w
cało ci.
Własno ci transakcji
SPÓJNO
50
Złudne odczyty (ang. phantom read)
(ang. Durability)
Po zatwierdzeniu transakcji, zmodyfikowane informacje pozostaj trwale
zapami tane w bazie danych.
Rafał Kowalski
Transakcja odczytuje ponownie dane i stwierdza ich ró nice, spowodowane
przez inny proces, który zatwierdził swoj transakcj .
53
Ponowne wykonanie zapytania (query) oddaje inny zestaw wierszy,
uzupełniony o wykonane i zatwierdzone w mi dzyczasie transakcje.
Rafał Kowalski
54
9
Normalizacja - Wst
Poziomy izolowania transakcji
p
Technika działania, stosowana podczas tworzenia relacyjnych baz danych.
Poziom
Bł dne
odczyty
Niepowtarzalne
odczyty
Złudne odczyty
TAK
TAK
TAK
NIE
TAK
TAK
NIE
NIE
TAK
NIE
NIE
NIE
Read uncommitted
Read committed
Repeatable read
Serializable
Teoria normalizacji jest oparta na zestawie Postaci Normalnych. Relacja jest
w okre lonej postaci normalnej gdy spełnia odpowiedni zestaw ogranicze .
Aktualnie rozró nia si pi postaci normalnych, z których pierwsze trzy
wprowadził E.F. Codd i zastosował do nich okre lenia: 1NF, 2NF i 3NF.
Proces normalizacji jest (zazwyczaj) ko czony po osi gni ciu 3NF,
która w wi kszo ci praktycznych zastosowa uznawana jest za
wystarczaj c .
Przekształcanie relacji do zaawansowanych postaci normalnych dotyczy
tabel, które posiadaj wi cej ni 3 atrybuty i ka dy z nich pełni funkcj
klucza.
Rafał Kowalski
55
Rafał Kowalski
Przykład złego projektu ?
Eliminowanie istnienia
wielu (ró nych) kopii tej
samej informacji.
Nazwisko
Imie
Nadmiarowo
Nazwa wydziału
1
Kudłaty
Stanisław
transport
Pij cy Gustaw
Pryszczaty
Mieczysław
magazyn
Pryszczaty Mieczysław
3
Pij cy
Gustaw
transport
Pij cy Gustaw
4
Ponura
Mariola
spedycja
Ponura Mariola
5
Kulawy
Franciszek
spedycja
Ponura Mariola
6
Samotny
Jan
kadry
Samotny Jan
Co b dzie, je li usuniemy rekord pracownika z identyfikatorem 6 ?:
Stracimy informacje o istnieniu wydziału kadry.
Efekt uboczny modyfikacji:
Je eli „Ponura Mariola” wyjdzie za m i zmieni nazwisko na „Wesoła”, to
trzeba b dzie dokona licznych modyfikacji w ró nych atrybutach wielu
rekordów bazy danych.
Problemy spójno ci informacji w sytuacji
potrzeby wprowadzenia informacji o
istnieniu działu „produkcja”, w którym
aktualnie nikt nie pracuje.
Rafał Kowalski
danych.
Efekt uboczny usuni cia:
Kierownik
2
Sztuczne zale no ci funkcjonalne „obcych”
no ci
atrybutów,Eliminowanie
które musz zale
by wprowadzane
i
funkcjonalnej
ró nych
atrybutów.
modyfikowane
wspólnie.
Po co normalizowa ?
Unikni cie problemów i potencjalnych przyczyn bł dów,
zwi zanych z:
PRACOWNICY
Id_pracownika
56
Efekt uboczny wstawienia:
Jak (bez naruszenia spójno ci informacyjnej bazy danych) wprowadzi
informacj o istnieniu działu „produkcja”, w którym aktualnie nikt nie pracuje.
57
Rafał Kowalski
NORMALIZACJA – INTUICYJNA - definicja
Zale no
58
Funkcjonalna - DEFINICJA
Przygl daj si modelowi danych i zadawaj sobie (w my lach) pytania.
Je eli sytuacja tego wymaga – zmieniaj posta modelu danych.
Prac zako cz dopiero wtedy, gdy nie b dziesz potrzebował niczego
zmienia .
Czy na pewno zidentyfikowałem ka d informacj maj c znaczenie dla systemu ?
Przed wprowadzeniem definicji postaci normalnych nale y sformułowa dwie
niezb dne definicje zale no ci funkcjonalnej atrybutów relacji.
Koncepcja zale no ci funkcjonalnej le y u podstaw pierwszych trzech
kroków normalizacyjnych.
Czy nie istniej atrybuty, które powinny (przypadkiem) nale e do innych relacjii ?
Atrybut Y relacji R pozostaje w Zale no ci
Czy atrybut nie ma czasem oddzielnego znaczenia jako pewna cało
lepiej modelowa go jako osobn relacj ?
Funkcjonalnej od atrybutu X relacji R wtedy i tylko
i by mo e
DEFINICJA
Czy ka dy zwi zek jest naprawd istotny a nie np. potrzebny tylko podczas
wykonywania pewnej funkcji ?
(#'!"
& &) E
&( ' - #%"(-" %" #- F! "
&,G
FH #%"",
E%"&E, %&E E
&' &E &) E
"I
Rafał Kowalski
wtedy, gdy z ka d warto ci atrybutu X jest zawsze
skojarzona ta sama warto
notacja:
(# '0"
&%
59
atrybutu Y.
R.x —>; R.y
Rafał Kowalski
60
10
Pełna Zale no
Dotyczy relacji, posiadaj cych klucze główne zło one z kilku atrybutów.
Atrybut Y relacji R pozostaje w Pełnej Zale no ci
Funkcjonalnej od klucza K relacji R wtedy i tylko wtedy,
DEFINICJA
NORMALIZACJA
Funkcjonalna - DEFINICJA
gdy jest zale ny funkcjonalnie od X i nie jest zale ny
funkcjonalnie od adnej kombinacji atrybutów tworz cych
klucz K.
Rafał Kowalski
DATA
99-11-10
99-09-26
99-10-24
99-10-25
99-09-16
99-08-23
STAN1
kapitan
kapitan
kapitan
kapitan
kapitan
kapitan
00:00
00:00
00:00
00:00
00:00
00:00
NAZWA_LINI
SWISAIR
PACANOW-AI
PLL LOT
PLL LOT
PANAM
TWA
IMIE1
MAŁGORZATA
JOLANTA
ZBIGNIEW
JAN
LUCYNA
EWA
LOTNISKO_Z
LOTNISKO_DO
TORU
WARSZAWA
PIASECZNO
WARSZAWA
GARWOLIN
WARSZAWA
GÓRA KALWARIA W-WA
WARSZAWA
WESOŁA
SOCHACZEW
W-WA
NAZW1
CISZEWSKA
KISZAKIEWICZ
SŁOMSKA
PIASECKI
KR CIK
REBKOWSKA
STAN2
2-gi pilot
2-gi pilot
2-gi pilot
IMIE2
DONATA
EL BIETA
URSZULA
2-gi pilot EDYTA
2-gi pilot ANNA
61
PRODUCENT
JAK
MIG
PZL
IL
SU
SU
NAZW2
SOKÓŁ
KALINOWSKA
PIETKIEWICZ
PAWLUCZUK
J DRZEJEWSKA
MODEL
25
21
27
82
17
17
STAN3
naw igator
naw igator
naw igator
naw igator
naw igator
naw igator
POJEMNOSC
56
2
28
150
1
1
IMIE3
WANDA
AGNIESZKA
KASIA
MONIKA
BEATA
JANINA
NAZW3
MICHALSKA
WINNICKA
ANNA
ROMAN
BIELSKA
PIETRASZEWSKI
Rafał Kowalski
Pierwsza Posta Normalna (1NF)
62
Druga Posta Normalna (2NF)
LOT
NUMER_LOTU
DATA
NAZWA_PRZEWOZNIKA
NAZWA_LOTNISKA_POCZATKOWEGO
NAZWA_LOTNISKA_DOCELOWEGO
TYP_SAMOLOTU
MODEL_SAMOLOTU
LICZBA_PASAZEROW
STANOWISKO1
NAZWISKO1
IMIE1
STANOWISKO2
NAZWISKO2
IMIE2
STANOWISKO3
NAZWISKO3
IMIE3
CZLONEK_ZALOGI
IDENTYFIKATOR_ZALOGI
STANOWISKO
NAZWISKO
IMIE
1NF
Tabela (encja) jest w 1NF:
Posiada okre lony klucz główny.
Nie posiada powtarzaj cych si atrybutów.
Je li atrybut posiada kilka warto ci w jednej
krotce, to definiujemy now tabel (encj ),
opisan przez ten atrybut.
Tablela (encja) jest w 2NF:
Je eli encja posiada klucz główny zło ony z
kilku atrybutów, to wszystkie atrybuty zale
tylko od całego klucza głównego.
Je eli atrybut zale y tylko od cz ci klucza
głównego, to ten atrybut i ta cz
identyfikatora tworz podstaw nowej encji.
CZLONEK_ZALOGI
IDENTYFIKATOR_ZALOGI
STANOWISKO
NAZWISKO
IMIE
2 NF
LOT
Obslugiwany przez
Przydzielony do
Przydzielony do
NUMER_LOTU
DATA
NAZWA_PRZEWOZNIKA
NAZWA_LOTNISKA_POCZATKOWEGO
NAZWA_LOTNISKA_DOCELOWEGO
TYP_SAMOLOTU
MODEL_SAMOLOTU
LICZBA_PASAZEROW
Rafał Kowalski
63
Obslugiwany przez
TRASA_LOTU
stanowi podstawe
LOT
DATA
zgodny z
NUMER_LOTU
NAZWA_PRZEWOZNIKA
NAZWA_LOTNISKA_POCZATKOWEGO
NAZWA_LOTNISKA_DOCELOWEGO
TYP_SAMOLOTU
MODEL_SAMOLOTU
LICZBA_PASAZEROW
Rafał Kowalski
64
Trzecia Posta Normalna (3NF)
Tabela (encja) jest w 3NF:
STANOWISKO
ID_STANOWISKA
NAZWA
PRACOWNIK
IDENTYFIKATOR_PRACOWNIKA
NAZWISKO
IMIE
jest podstawa
na
Wszystkie atrybuty encji zale
bezpo rednio od klucza głównego.
Je eli jaki atrybut zale y od innego
atrybutu, który nie jest cz ci klucza
głównego, to atrybuty te tworz podstaw
nowej encji.
otrzymuje
dotyczy
FIRMA_PRZEWOZOWA
PRZYDZIAL_ZALOGI
ID_PRZEWOZNIKA
NAZWA_PRZEWOZNIKA
SAMOLOT
ID_SAMOLOTU
TYP
MODEL
LICZBA_PASAZEROW
wykonuje
obslugiwana przez
3 NF
wykorzystany do
do odbycia
obslugiwany przez
stanowi podstawe
LOT
TRASA_LOTU
NUMER_LOTU
na pokladzie
z
DATA
zgodny z
jest poczatkiem
do
Rafał Kowalski
jest koncem
LOTNISKO
ID_LOTNISKA
NAZWA
65
11