Prezentacja do cwiczenia 2

background image

1

1

Wprowadzenie do projektowania baz danych na

Wprowadzenie do projektowania baz danych na

przykładzie bazy ms-mot

przykładzie bazy ms-mot

(wprowadzenie do baz danych na przykładzie języka

(wprowadzenie do baz danych na przykładzie języka

SQL, normalizacja bazy danych, definicja i

SQL, normalizacja bazy danych, definicja i

modyfikacja: tabel, typów danych, kluczy, relacji)

modyfikacja: tabel, typów danych, kluczy, relacji)

Prezentacja do ćwiczenia 2

Prezentacja do ćwiczenia 2

background image

2

2

RDBMS - System Zarządzania Relacyjną Bazą Danych

RDBMS - System Zarządzania Relacyjną Bazą Danych

Zalety płynące z korzystania z RDBMS:

Zalety płynące z korzystania z RDBMS:

RDBMS pozwala na szybszy dostęp do danych niż w przypadku

RDBMS pozwala na szybszy dostęp do danych niż w przypadku

plików

plików

RDBMS można zadawać zapytania o dane spełniające konkretne

RDBMS można zadawać zapytania o dane spełniające konkretne

kryteria

kryteria

RDBMS pozwala na swobodny dostęp do danych

RDBMS pozwala na swobodny dostęp do danych

RDBMS posiada wbudowany system uprawnień i kontroli

RDBMS posiada wbudowany system uprawnień i kontroli

dostępu do danych

dostępu do danych

Wielką zaletą jest zazwyczaj zgodność RDBMS ze standardem SQL

Wielką zaletą jest zazwyczaj zgodność RDBMS ze standardem SQL

Dlaczego RDBMS (Baza Danych) ?

Dlaczego RDBMS (Baza Danych) ?

background image

3

3

Wprowadzenie do relacyjnych baz danych

Wprowadzenie do relacyjnych baz danych

Relational Database Management System - System Zarządzania Relacyjną

Bazą Danych

Relacyjny model został opracowany przez Edgara Franka Codd’a na

przełomie lat 70 i 80. Od tamtego czasu jest postawą tworzenia

Relacyjnych Systemów Baz Danych

Idea relacyjnych baz danych:

1.

Wszystkie wartości danych oparte są na prostych typach danych

2.

Wszystkie dane w bazie relacyjnej przedstawiane są w formie

dwuwymiarowych tabel (w matematyce relacja)

3.

Każda tabela zawiera zero lub więcej wierszy i jedną lub więcej kolumn

4.

Na każdy wiersz składają się jednakowo ułożone kolumny wypełnione

wartościami, które z kolei w każdym wierszu mogą być inne

5.

Po wprowadzeniu danych do bazy, możliwe jest porównywanie wartości z

różnych kolumn, zazwyczaj również z różnych tabel, i scalanie wierszy, gdy

pochodzące z nich wartości są zgodne

6.

Wszystkie operacje wykonywane są w oparciu o algebrę relacji

7.

W celu jednoznacznej identyfikacji wiersza pojawia się potrzeba obecności

jednej lub więcej kolumn niepowtarzalnych w granicach całej tabeli,

pozwalających odnaleźć konkretny wiersz. Kolumny takie określa się jako

"klucz podstawowy" (PRIMARY KEY)

background image

4

4

SQL – definicje, podział

SQL – definicje, podział

SQL - strukturalny język zapytań używany do tworzenia,
modyfikowania baz danych oraz do umieszczania i pobierania
danych z baz danych opracowany w latach 70 przez firmę IBM. Do
dziś standard komunikacji z serwerami baz danych.

Podział języka SQL (Warstwy języka SQL)

• DML (Data Manipulation Language) – SELECT, INSERT, UPDATE,

DELETE [Manipulacja danymi]

• DDL (Data Definition Language) - CREATE, DROP, ALTER

[Definicja danych]

• DCL (Data Control Language) – GRANT, REVOKE, DENY

[Kontrola nad danymi]

Popularne systemy baz danych wykorzystujące SQL to: DB2,

Popularne systemy baz danych wykorzystujące SQL to: DB2,

Firebird, Ingres, MS Acces, MS SQL Server, MySQL, Oracle,

Firebird, Ingres, MS Acces, MS SQL Server, MySQL, Oracle,

PostgreSQL, SQL Lite, Sybase

PostgreSQL, SQL Lite, Sybase

background image

5

5

Relacyjna baza danych składa się relacji, zwanych zazwyczaj

Relacyjna baza danych składa się relacji, zwanych zazwyczaj

tabelami. Tabela jest dokładnie tym co oznacza – tabelą danych

tabelami. Tabela jest dokładnie tym co oznacza – tabelą danych

(analogia - arkusze kalkulacyjne)

(analogia - arkusze kalkulacyjne)

Każda kolumna posiada wyróżniającą ją nazwę i zawiera inny

Każda kolumna posiada wyróżniającą ją nazwę i zawiera inny

rodzaj danych (Tabela przechowuje dane różnych typów: napis,

rodzaj danych (Tabela przechowuje dane różnych typów: napis,

liczba itp., a kolumna jednego typu.

liczba itp., a kolumna jednego typu.

Każdy wiersz odpowiada innemu klientowi, format tabelaryczny

Każdy wiersz odpowiada innemu klientowi, format tabelaryczny

powoduje, że każdy wiersz (ang. row) ma te same atrybuty,

powoduje, że każdy wiersz (ang. row) ma te same atrybuty,

nazywane również polami (ang. field).

nazywane również polami (ang. field).

Wiersz to inaczej rekord lub krotka

Wiersz to inaczej rekord lub krotka

Tabela, wiersz, kolumna

Tabela, wiersz, kolumna

background image

6

6

Podstawowe typy danych w MS SQL:

Podstawowe typy danych w MS SQL:

Dane tekstowe:

Dane tekstowe:

char, varchar, nchar, ntest, nvarchar

char, varchar, nchar, ntest, nvarchar

Liczbowe:

Liczbowe:

int, smallint, bigint, tinyint, float, real, decimal, numeric

int, smallint, bigint, tinyint, float, real, decimal, numeric

Data i czas

Data i czas

datetime, smalldatetime

datetime, smalldatetime

Binarne

Binarne

binary, varbinary

binary, varbinary

Waluta

Waluta

mony, smallmony

mony, smallmony

Specjalne

Specjalne

text, image, bit

text, image, bit

Typy danych (MS SQL)

background image

7

7

Dodatkowe opcje dla typów danych

Dodatkowe opcje dla typów danych

Opcje dotyczące wszystkich typów

Opcje dotyczące wszystkich typów

PRIMARY KEY: określa daną kolumnę jako klucz główny tabeli. Tabela może

PRIMARY KEY: określa daną kolumnę jako klucz główny tabeli. Tabela może

posiadać tylko jeden klucz główny, jego wartości nie mogą się powtarzać

posiadać tylko jeden klucz główny, jego wartości nie mogą się powtarzać

oraz muszą by różne od NULL

oraz muszą by różne od NULL

DEFAULT wartość domyślna: określa wartość domyślną kolumny dla nowo

DEFAULT wartość domyślna: określa wartość domyślną kolumny dla nowo

wprowadzanych wierszy w przypadku, gdy instrukcja tworząca nowy

wprowadzanych wierszy w przypadku, gdy instrukcja tworząca nowy

wiersz nie zadaje tej wartości. Jeśli w definicji kolumny pominięto opcję

wiersz nie zadaje tej wartości. Jeśli w definicji kolumny pominięto opcję

DEFAULT (oraz nie podano opcji NOT NULL), to w takich wypadkach

DEFAULT (oraz nie podano opcji NOT NULL), to w takich wypadkach

wartością domyślną jest NULL. Jeżeli natomiat kolumna bez opcji DEFAULT

wartością domyślną jest NULL. Jeżeli natomiat kolumna bez opcji DEFAULT

została zadeklarowana jako NOT NULL, to w miejsce brakującej wartości

została zadeklarowana jako NOT NULL, to w miejsce brakującej wartości

zostanie automatycznie wprowadzona przez RDBMS wartość domyślna

zostanie automatycznie wprowadzona przez RDBMS wartość domyślna

zależna od typu.

zależna od typu.

background image

8

8

NOT NULL | NULL: określa, czy NULL jest dopuszczalną wartością w tej

NOT NULL | NULL: określa, czy NULL jest dopuszczalną wartością w tej

kolumnie. Domyślnie wartość NULL jest dopuszczalna, za wyjątkiem kluczy

kolumnie. Domyślnie wartość NULL jest dopuszczalna, za wyjątkiem kluczy

REFERENCES: opcja ta służy do deklarowania kluczy obcych i wymaga

REFERENCES: opcja ta służy do deklarowania kluczy obcych i wymaga

podania jako argumentu nazwy tabeli powiązanej, ew. kluczy powiązanych.

podania jako argumentu nazwy tabeli powiązanej, ew. kluczy powiązanych.

IDENTITY: podobne do typu danych auto-numeracji w bazach danych

IDENTITY: podobne do typu danych auto-numeracji w bazach danych

Microsoft Access oraz auto increment w MySQL. W każdej z tablic

Microsoft Access oraz auto increment w MySQL. W każdej z tablic

dozwolona jest jedna kolumna z własnością IDENTITY musi być ona także

dozwolona jest jedna kolumna z własnością IDENTITY musi być ona także

typu całkowitego lub zgodna z typem całkowitym.

typu całkowitego lub zgodna z typem całkowitym.

np.: identity (1,1) oznacza numerowanie od 1 co 1.

np.: identity (1,1) oznacza numerowanie od 1 co 1.

Przykłady:

Przykłady:

id

integer not null Primary Key;

integer not null Primary Key;

Alter table wyp_s add foreign key(id_skuter) references skuter (id_skuter)

Alter table wyp_s add foreign key(id_skuter) references skuter (id_skuter)

background image

9

9

Tworzenie tabel (MS SQL)

Tworzenie tabel (MS SQL)

Przykład utworzenie tablicy „klient”:

Przykład utworzenie tablicy „klient”:

create table klient

create table klient

(

(

id_klienta int identity (1,1) not null,

id_klienta int identity (1,1) not null,

imie varchar(50) not null,

imie varchar(50) not null,

nazwisko varchar(50) not null,

nazwisko varchar(50) not null,

ulica varchar(10) not null,

ulica varchar(10) not null,

numer varchar(10) not null,

numer varchar(10) not null,

miejscowosc varchar(50) not null,

miejscowosc varchar(50) not null,

kod_pocz varchar(10) not null,

kod_pocz varchar(10) not null,

nr_tel varchar(20) not null,

nr_tel varchar(20) not null,

Primary Key (id_klienta)

Primary Key (id_klienta)

)

)

background image

10

10

Modyfikacja struktury tabel

Modyfikacja struktury tabel

ADD [COLUMN] definicja_kolumny [AFTER kolumna | FIRST]:

ADD [COLUMN] definicja_kolumny [AFTER kolumna | FIRST]:

stworzenie nowej kolumny, według definicji o składni analogicznej jak w

stworzenie nowej kolumny, według definicji o składni analogicznej jak w

instrukcji CREATE TABLE. Opcje pozwalają zażądać, by nowa kolumna

instrukcji CREATE TABLE. Opcje pozwalają zażądać, by nowa kolumna

została stworzona w określonej pozycji (rozszerzenie MySQL) --

została stworzona w określonej pozycji (rozszerzenie MySQL) --

domyślnie umieszczana jest jako ostatnia.

domyślnie umieszczana jest jako ostatnia.

ALTER [COLUMN] nazwa_kolumny { SET DEFAULT wartość |

ALTER [COLUMN] nazwa_kolumny { SET DEFAULT wartość |

DROP DEFAULT }:

DROP DEFAULT }:

zmiana (lub usunięcie) wartości domyślnej z definicji istniejącej

zmiana (lub usunięcie) wartości domyślnej z definicji istniejącej

kolumny.

kolumny.

ADD INDEX [nazwa_indeksu]

ADD INDEX [nazwa_indeksu]

(nazwa_kolumny_indeksowej, ...):

(nazwa_kolumny_indeksowej, ...):

składnia analogiczna jak w deklaracji indeksu w instrukcji CREATE

składnia analogiczna jak w deklaracji indeksu w instrukcji CREATE

TABLE.

TABLE.

ADD UNIQUE [nazwa_indeksu]

ADD UNIQUE [nazwa_indeksu]

(nazwa_kolumny_indeksowej, ...):

(nazwa_kolumny_indeksowej, ...):

operacja analogiczna do ADD INDEX.

operacja analogiczna do ADD INDEX.

RENAME [AS] nowa_nazwa_tabeli:

RENAME [AS] nowa_nazwa_tabeli:

zmiana nazwy tabeli.

zmiana nazwy tabeli.

CREATE

CREATE

[

[

UNIQUE

UNIQUE

]

]

INDEX

INDEX

nazwa

nazwa

ON

ON

tabela (pole[

tabela (pole[

ASC

ASC

|

|

DESC

DESC

],...):

],...):

służy do tworzenia nowego indeksu w istniejącej tabeli.

służy do tworzenia nowego indeksu w istniejącej tabeli.

background image

11

11

Instrukcja DROP

Instrukcja DROP

Drop jest poleceniem do usuwania obiektów w RDBMS.

Drop jest poleceniem do usuwania obiektów w RDBMS.

Składnia polecenia:

Składnia polecenia:

Usunięcie tabeli

Usunięcie tabeli

DROP TABLE [nazwa obiektu] {RESTRICT | CASCADE}

DROP TABLE [nazwa obiektu] {RESTRICT | CASCADE}

Usuwanie kolumn:

Usuwanie kolumn:

DROP [COLUMN] nazwa_kolumny;

DROP [COLUMN] nazwa_kolumny;

Usuwanie kluczy głównych:

Usuwanie kluczy głównych:

DROP PRIMARY KEY: usuwa klucz główny a w przypadku jego

DROP PRIMARY KEY: usuwa klucz główny a w przypadku jego

braku klucza głównego w tabeli, usuwa pierwszy w kolejności

braku klucza głównego w tabeli, usuwa pierwszy w kolejności

indeks typu UNIQUE

indeks typu UNIQUE

Usuwanie indeksów

Usuwanie indeksów

DROP INDEX nazwa_indeksu;

DROP INDEX nazwa_indeksu;

Usuwanie widoków

Usuwanie widoków

DROP VIEW nazwa_widoku;

DROP VIEW nazwa_widoku;

Usunięcie bazy danych

Usunięcie bazy danych

DROP DATABASE nazwa_bazy;

DROP DATABASE nazwa_bazy;

background image

12

12

Klucz główny – Klucz podstawowy – Primary

Klucz główny – Klucz podstawowy – Primary

Key (PK)

Key (PK)

Problem:

Problem:

Konieczny jest sposób jednoznacznej identyfikacji klienta

Konieczny jest sposób jednoznacznej identyfikacji klienta

Nazwisko może się powtórzyć

Nazwisko może się powtórzyć

Adres także...

Adres także...

Rozwiązanie:

Rozwiązanie:

Wprowadzenie dodatkowej kolumny - id klienta

Wprowadzenie dodatkowej kolumny - id klienta

Id klienta liczba całkowita np. numer 6543 jednoznacznie go

Id klienta liczba całkowita np. numer 6543 jednoznacznie go

identyfikuje

identyfikuje

Kolumna lub zbiór kolumn jednoznacznie identyfikujący poszczególny

Kolumna lub zbiór kolumn jednoznacznie identyfikujący poszczególny

rekord (wiersz) w tabeli nazywane są kluczem głównym bądź

rekord (wiersz) w tabeli nazywane są kluczem głównym bądź

podstawowym (Primary Key)

podstawowym (Primary Key)

background image

13

13

Definicja Kluczy głównych (MS SQL)

Definicja Kluczy głównych (MS SQL)

Sposób 1:

Sposób 1:

create table [klient]

create table [klient]

(

(

id_klienta int Identity (1,1) NOT

id_klienta int Identity (1,1) NOT

NULL,

NULL,

imie Varchar(50) NOT NULL,

imie Varchar(50) NOT NULL,

nazwisko Varchar(50) NOT NULL,

nazwisko Varchar(50) NOT NULL,

ulica Varchar(10) NOT NULL,

ulica Varchar(10) NOT NULL,

numer Varchar(10) NOT NULL,

numer Varchar(10) NOT NULL,

miejscowosc Varchar(50) NOT NULL,

miejscowosc Varchar(50) NOT NULL,

kod_pocz Varchar(10) NOT NULL,

kod_pocz Varchar(10) NOT NULL,

nr_tel Varchar(20) NOT NULL,

nr_tel Varchar(20) NOT NULL,

Primary Key (id_klienta)

Primary Key (id_klienta)

)

)

Sposób 2:

Sposób 2:

create table klient

create table klient

(

(

id_klienta int Identity (1,1) NOT

id_klienta int Identity (1,1) NOT

NULL,

NULL,

Primary Key

Primary Key

,

,

imie varchar(50) null,

imie varchar(50) null,

nazwisko varchar(50) null,

nazwisko varchar(50) null,

ulica varchar(10) null,

ulica varchar(10) null,

numer varchar(10) null,

numer varchar(10) null,

miejscowosc varchar(50) null,

miejscowosc varchar(50) null,

kod_pocz varchar(10) null,

kod_pocz varchar(10) null,

nr_tel varchar(20) null,

nr_tel varchar(20) null,

)

)

background image

14

14

Klucz obcy

Klucz obcy

Klucz obcy jest kolumną lub zbiorem kolumn, który jest

Klucz obcy jest kolumną lub zbiorem kolumn, który jest

kluczem głównym w innej tabeli.

kluczem głównym w innej tabeli.

Uogólniając: klucz obcy jest kopią klucza głównego z innej tabeli, zawiera wartości występujące w

Uogólniając: klucz obcy jest kopią klucza głównego z innej tabeli, zawiera wartości występujące w

innej tabeli kolumnie klucza głównego.

innej tabeli kolumnie klucza głównego.

Relacja tworzona pomiędzy tabelami tworzona jest poprzez wzajemne

Relacja tworzona pomiędzy tabelami tworzona jest poprzez wzajemne

powiązanie klucza głównego z jednej tabeli z kluczem obcym w innej

powiązanie klucza głównego z jednej tabeli z kluczem obcym w innej

tabeli.

tabeli.

Wartość klucza obcego nie może istnieć bez powiązania z kluczem

Wartość klucza obcego nie może istnieć bez powiązania z kluczem

głównym.

głównym.

Przykład definicji klucza obcego:

Przykład definicji klucza obcego:

Alter table wypozyczenie add FOREIGN KEY(id) references

Alter table wypozyczenie add FOREIGN KEY(id) references

klient(id_klienta)

klient(id_klienta)

Podczas tworzenia klucza obcego, sprawdzane jest, czy kolumna w tabeli, do której odwołuje się

Podczas tworzenia klucza obcego, sprawdzane jest, czy kolumna w tabeli, do której odwołuje się

klucz obcy jest zadeklarowany w sposób gwarantujący unikatowość. Najczęściej kolumna do

klucz obcy jest zadeklarowany w sposób gwarantujący unikatowość. Najczęściej kolumna do

której odwołuje się klucz obcy jest kluczem głównym tabeli.

której odwołuje się klucz obcy jest kluczem głównym tabeli.

background image

15

15

Relacje

Relacje

Bazy Danych wykorzystują klucze podstawowe i obce do określenia

Bazy Danych wykorzystują klucze podstawowe i obce do określenia

relacji między danymi z odrębnych tabel, podczas wykonywania

relacji między danymi z odrębnych tabel, podczas wykonywania

zapytania i nie tylko.

zapytania i nie tylko.

W relacyjnych bazach danych uwzględnia się istnienie trzech typów

W relacyjnych bazach danych uwzględnia się istnienie trzech typów

relacji. Są one klasyfikowane zależnie od liczby wartości, które

relacji. Są one klasyfikowane zależnie od liczby wartości, które

mogą wystąpić po każdej stronie relacji. Wyróżnia się więc relacje:

mogą wystąpić po każdej stronie relacji. Wyróżnia się więc relacje:

Jeden do jednego” (np. klient - adres)

Jeden do jednego” (np. klient - adres)

Jeden do wielu” (klient - wypożyczenia)

Jeden do wielu” (klient - wypożyczenia)

Wiele do wielu” (książka – autor, autor – książka, książka może

Wiele do wielu” (książka – autor, autor – książka, książka może

mieć wiele autorów, autor mógł napisać wiele książek)

mieć wiele autorów, autor mógł napisać wiele książek)

background image

16

16

Typy relacji

Typy relacji

Jeden do jeden”:

Jeden do jeden”:

Jeden do wielu”:

Jeden do wielu”:

Wiele do

Wiele do

wielu”:

wielu”:

Tabela pośrednia

background image

17

17

Normalizacja bazy danych, postacie normalne

Normalizacja bazy danych, postacie normalne

Normalizacja - proces projektowania bazy danych tak, aby utworzyć zbiór tabel

o odpowiedniej strukturze jest nazywany normalizacją lub sprowadzaniem do

postaci normalnej. Normalizacja polega na kolejnych podziałach tabel na

mniejsze tabele, które są z kolei łączone w zapytaniach. Stopień normalizacji

jest wynikiem wypośrodkowania między teorią i praktyką normalizacji.

Postacie normalne:

Pierwsza postać normalna (1NF) – postać najsłabsza, wymaga jedynie, aby

dziedziny atrybutów były elementarne (nierozkładalne, atomowe), czyli np.

liczby całkowite, daty, łańcuchy, a nie np. listy liczb lub zbiory dat.

• w poszczególnych tabelach eliminujemy powtarzające się grupy

• dla każdego zestawu danych pokrewnych, tworzymy oddzielne wiersze

• dla każdego zestawu danych pokrewnych określamy klucz podstawowy

Druga postać normalna (2NF) – wymaga, aby w wierszu nie było danych

zależnych od fragmentu klucza głównego.

Trzecia postać normalna (3NF) – gdy nie istnieją żadne zależności

przechodnie (nietrywialne).

• Eliminacja

pól, które nie zależą od klucza.

pól, które nie zależą od klucza.

background image

18

18

Postacie normalne

Postacie normalne

Cel normalizacji:

uniknięcie redundancji (tj. powtarzania się pól z identycznymi
wartościami w różnych tabelach)

wyeliminowanie niewygodnych relacji wieloznacznych

uniknięcie anomalii przy aktualizacji: modyfikacji, wstawianiu i
usuwaniu

uniknięcie niespójności

Koszt:

Mnożenie liczby tabel

Wydłużenie czasu dostępu do danych


Document Outline


Wyszukiwarka

Podobne podstrony:
Prezentacja do cwiczenia 6 mssql
Prezentacja do cwiczenia 10 mssql
Prezentacja do cwiczenia 5 mssql
Prezentacja do cwiczenia 7 mssql
Prezentacja do cwiczenia 4 mssql
Prezentacja do cwiczenia 8 mssql
Prezentacja do cwiczenia 3 mssql
Prezentacja do cwiczenia 11 mssql
Prezentacja do cwiczenia 9 mssql
Enzymologia materiały do ćwiczeń
Higiena Przewodnik do cwiczen
Materiały do ćwiczeń z geologii
Instrukcja do cwiczenia 1
GEOGRAFIA NA CZASIE 3 ODPOWIEDZI DO ĆWICZEŃ
Instrukcje do ćwiczeń 2013
Materialy pomocnicze do cwiczen Statystyka cz I
parazytologia lekarska przewodnik do ćwiczeń UM Poznań
ściąga do ćwiczennia XII, Szkoła, penek, Przedmioty, Urządzenia nawigacyjne, Zaliczenie, egzamin, Ś

więcej podobnych podstron