background image

 

 

Wykład XIX

Bazy danych

Podstawy informatyki
Semestr III Elektrotechnika
Politechnika Radomska

background image

 

 

Baza danych

zbiór  danych  istniejący  przez  pewien 
czas
utrwalony na nośniku komputerowym
zorganizowany 

przez 

system 

zarządzania  bazą  danych  (DBMS  – 
database management system)

background image

 

 

Funkcje DBMS

utworzenie  nowej  bazy  danych  i  określenie  jej  schematu 

(logicznej  struktury)  oraz  modyfikowanie  schematu  istniejącej 

bazy  danych  za  pomocą  języka  definiowania  danych  (data 

definition language)
możliwość  tworzenia  zapytań  (query  -  kwerend)  oraz 

aktualizowania 

danych 

(dopisywanie, 

usuwanie, 

modyfikowanie)  za  pomocą  języka  zapytań  (query  language) 

zwanego  inaczej  językiem  operowania  danymi  (data 

manipulation language)
możliwość przechowywania ogromnej ilości danych (> GB, TB) 

przez  długi  czas,  wraz  z  ochroną  przed  niepowołanym 

dostępem
sterowanie  jednoczesnym  dostępem  do  danych  przez  wielu 

użytkowników

background image

 

 

Relacyjne systemy baz 

danych

1970, Ted Codd
prezentowanie  użytkownikowi  danych 

postaci 

tabel 

(relacji) 

bez 

znajomości wewnętrznej struktury
zapytania  wyrażane  w  języku  bardzo 
wysokiego 

poziomu 

np. 

SQL 

(structured  query  language  –  język 
zapytań strukturalnych)

background image

 

 

Przykład

Relacja  Student  służąca  do  gromadzenia 
informacji o studentach Wydziału Transportu:

tabela  –  relacja,  kolumny  –  atrybuty  relacji, 
wiersze – krotki

Nr ewid

Nazwisko

Miejscowość

12345

Kowalski

Radom

67890

Nowak

Warszawa

...

...

...

background image

 

 

Zapytanie o adres 

Kowalskiego:

SELECT miejscowość
FROM Student
WHERE nazwisko = ’Kowalski’

1. Sprawdź  wszystkie  krotki  relacji  wskazanej  w 

klauzuli FROM

2. Wyszukaj  krotki  spełniające  warunek  wskazany  w 

klauzuli WHERE

3. Sformułuj  odpowiedź  zawierającą  wybrane  krotki  z 

uwzględnieniem  atrybutów  wskazanych  w  klauzuli 

SELECT

background image

 

 

Architektura DBMS

dane
opis  danych
  –  nazwy  relacji, 

nazwy  atrybutów  relacji,  typy 

atrybutów,  indeksy  (struktury 

danych  pomagające  w  szybkim 

odnajdowaniu 

właściwych 

danych)
motor 

bazy 

danych 

– 

składowa  realizująca  dostęp  do 

danych,  może  wykorzystywać 

system 

plików 

systemu 

operacyjnego, 

często 

bezpośrednio 

zarządzają 

pamięcią 

dyskową 

(efektywność!)

procesor  zapytań  –  przekształca  zapytanie  lub  operację  na 

bazie  danych,  wyrażoną  zazwyczaj  w  języku  bardzo  wysokiego 

poziomu  (np.  SQL)  w  ciąg  poleceń  żądających  dostarczenia 

określonych danych, wykonuje optymalizację zapytania

background image

 

 

Architektura DBMS

moduł  zarządzania  transakcjami  –  gwarantuje 

spójność 

systemu 

(brak 

kolizji 

jednocześnie 

przetwarzanych zapytań, bezpieczeństwo danych nawet 

w  przypadku  awarii  systemu),  tworzy  grupy  operacji 

(transakcje)  –  niepodzielne  (przeprowadzone  w  całości 

albo  wcale),  spójne  (po  zakończeniu  gwarantują 

niesprzeczność  danych),  izolowane  (bez  wzajemnego 

oddziaływania  z  innymi  transakcjami),  trwałe  (bez 

możliwości utraty danych nawet z powodu awarii)
wejścia do DBMS – zapytania (bezpośrednie lub przez 

programy),  aktualizacje  (bezpośrednie  lub  przez 

programy),  modyfikacje  schematu  (wykonywane  przez 

administratora)

background image

 

 

Architektura klient-serwer

 

DANE 

MOTOR B.D. 

SERWER SQL 

KLIENT SQL 

INTERFEJS 

KLIENT SQL 

INTERFEJS 

KLIENT SQL 

INTERFEJS 

redakcja 

zapytania 

prezentacja 

wyniku 

przesłanie 

odpowiedzi 

przesłanie 

zapytania 

realizacja 

zapytania 

background image

 

 

Modelowanie baz danych 

– diagramy związków encji

zbiory  encji  (entity  sets)  –  klasy  obiektów  świata 

rzeczywistego
atrybuty (attributes) – właściwości encji (cechy obiektów)
związki (relationships) – połączenia między zbiorami encji

background image

 

 

Liczebność związków

wiele do wiele ( –  ) – z każdą encją zbioru encji C jest 

związanych  wiele  encji  zbioru  encji  D  oraz  z  każdą  encją 
zbioru encji D jest związanych wiele encji zbioru encji C

wiele  do  jeden  (  –  1)  –  z  każdą  encją  zbioru  encji  C  jest 

związana dokładnie jedna encja zbioru encji D ale z każdą 
encją  zbioru  encji  D  jest  związanych  wiele  encji  zbioru 
encji C (strzałkę stawia się po stronie „jeden”)

jeden  do  jeden  (1  –  1)  –  z  każdą  encją  zbioru  encji  C  jest 
związana dokładnie jedna encja zbioru encji D oraz z każdą 
encją  zbioru  encji  D  jest  związana  dokładnie  jedna  encja 
zbioru encji C

background image

 

 

Atrybuty związków

Uwaga  !  czasami  atrybut  jest 
wygodniej powiązać ze związkiem niż 
ze zbiorem encji

background image

 

 

Klucze

To 

atrybuty 

lub 

zbiory 

atrybutów 

jednoznacznie 

identyfikujące 

encję 

wewnątrz zbioru encji
Jeżeli  jest  możliwych  do  ustalenia  więcej 
kluczy,  wybiera się  jeden z  nich  jako  klucz 
główny (primary key)

background image

 

 

Zasady projektowania

dokładność 

– 

zbiory 

encji 

powinny 

odzwierciedlać świat rzeczywisty
unikanie  redundancji  (nadmiarowości)  – 
np.  Przedmioty  mogłyby  posiadać  atrybuty 
tytuł i nazwisko wykładowcy
prostota  –  nie  należy  wprowadzać  do 
projektu elementów niepotrzebnych
dobór  właściwych  elementów  (atrybut  – 
zbiór encji – związek) 

background image

 

 

Przykład. Baza ocen 

studentów Wydziału 

Transportu – diagram 

związków encji

background image

 

 

Relacyjny model danych

relacja – dwuwymiarowa tabela, w której wpisuje się 

dane
atrybut – nazwa kolumny relacji
schemat  relacji  –  nazwa  relacji  oraz  zbiór  jej 

atrybutów  np.: 

Student(nr 

ewid, 

nazwisko, 

miejscowość)

krotka – wiersz relacji zawierający dane np.:
(12345, Kowalski, Kalisz)
dziedzina  atrybutu  –  typ  elementarny,  do  którego 

należą wartości odpowiedniej składowej każdej krotki
instancja relacji – zbiór krotek danej relacji

background image

 

 

Transformacja diagramów 

związków encji do projektu 

relacyjnego

zbiór encji  relacja (o tej samej nazwie i z tym samym zbiorem atrybutów)

Wykładowcy

nazwis

ko

tytuł

Abacki

prof.

Bebacki mgr
...

...

background image

 

 

Transformacja diagramów 

związków encji do projektu 

relacyjnego

związek encji

– wiele  do  wiele    relacja  o 

schemacie  zawierającym  klucze 

relacji  uczestniczących  w  związku 

oraz własne atrybuty związku 

 

nazwa 

 

Przedmioty 

uzyskał 

ocenę 

stopień 

 

Studenci 

nr albumu 

 

. . . 

Ocena

nr 

album

studen

ta

nazwa 

przedmi

otu

stopi

12345

j.prog.

5,0

12345 syst.oper.

4,0

67890

j.prog.

4,5

...

...

...

background image

 

 

Transformacja diagramów 

związków encji do projektu 

relacyjnego

związek encji

– wiele  do  jeden  i  jeden  do  jeden    włączenie 

klucza relacji „jeden” do relacji „wiele”

Przedmiot

nazwa

nr 

ewid 

wykł

ad

j.prog.

1

syst.op

er.

2

podst.i

nf.

1

...

...

background image

 

 

Przykład. Baza ocen 

studentów Wydziału 

Transportu – schemat 

relacyjny

Wykładowca(

id: integer,
nazwisko: string,
tytuł: string)

Przedmiot(

id: integer,
nazwa: string,
id_wykładowcy: 

integer)

Student(

id: integer,
nazwisko: string,
miejscowość: string)

Ocena(

id_studenta: integer,
id_przedmiotu: 

string,
stopień: real)

Przedmiot.id_wykładowcy  Wykładowca.id

Ocena.id_studenta  Student.id

Ocena.id_przedmiotu  Przedmiot.id

background image

 

 

Przykład. Baza ocen 

studentów Wydziału 

Transportu – schemat 

relacyjny

background image

 

 

Algebra relacji

działania 

teoriomnogościowe 

(oba 

schematy  relacji  R  i  S  muszą  mieć 
identyczne zbiory atrybutów)

suma relacji R  S (zbiór elementów, z których 

każdy należy do R lub do S lub do obu naraz)

przecięcie  relacji  R    S  (zbiór  elementów 

występujących zarówno w R i S)

różnica relacji R – S (zbiór elementów z R, które 
nie należą do S)

background image

 

 

Algebra relacji

rzutowanie 

A,A2,..,An

(R) 

–relacja 

powstająca 

przez 

pozostawienie  atrybutów  A

1

,  A

2

,  ...,  A

n

,  np.:  

nazwisko,

 

miejscowość

(Student)

selekcja  

C

(R)  –  podzbiór  krotek  relacji  R  spełniających 

warunek C, np.: 

miejscowość=Opole

(Student)

iloczyn  kartezjański  R    S  (zbiór  wszystkich  możliwych  par 

uporządkowanych, w których pierwszy element należy do R, 

a  drugi  do  S,  krotka  wynikowa  zawiera  wszystkie  składowe 

krotek, które wchodzą do pary)
złączenie naturalne R  S – połączenie w pary tych krotek, 

które mają identyczne wartości dla określonych atrybutów
złączenie teta R 

Ø

 S – wybranie z R  S  tych krotek, które 

spełniają warunek Ø. 

background image

 

 

PRZYKŁAD. Nazwiska 

wykładowców, którzy 

postawili ocenę 

niedostateczną:

nazwisko

(

id wykładowcy

(

id 

przedmiotu

( 

stopień=2,0

(Ocena))  

Przedmiot)  Wykładowca)


Document Outline