Bazy Danych
Europejska Wyższa Szkoła Informatyczno-
Ekonomiczna
Mgr inż. Piotr Greniewski
Wykład 1: Wstęp do baz danych
Copyright by Piotr Greniewski
2
Spis treści
Bazy danych wstęp
Geneza relacyjnych baz danych
Podstawy relacyjnych baz danych
Podstawy-SQL-1
Podstawy-SQL-2
Podstawy-SQL-3
Operacje na danych
Transakcje i blokady
Normalizacja
Copyright by Piotr Greniewski
3
Programowanie z wykorzystaniem danych
Niemal wszystkie bardziej złożone aplikacje
komputerowe przetwarzają duże ilości danych
Większość z nich została stworzona aby
przetwarzać dane a nie wykonywać obliczenia
80% wykonywanych przez programistów prac
wiąże się ze strukturami przechowywanymi w
bazie danych
Bazy stanowią ważną podstawę wielu aplikacji
Copyright by Piotr Greniewski
4
Programowanie z wykorzystaniem danych
Dane mogą przybierać dowolne formy i
rozmiary
Sposób w jaki się z nimi obchodzimy zależy od
ich natury
Dane stałe (dane nie ulegające zmianie w
programie np. liczba pi itp..)
Dane zmienne (dane zmieniające się w czasie
np. kursy walut)
Copyright by Piotr Greniewski
5
Programowanie z wykorzystaniem danych
Piszemy program przeliczający waluty krajów
członkowskich Eurolandu na EURO
Kursy wymiany są stałe (6 miejsc po przecinku
z dnia wymiany)
Lista krajów ulegać będzie zmianie ponieważ
dochodzić będą nowe kraje
W związku z tym przy każdym nowym kraju
trzeba będzie kompilować program
Copyright by Piotr Greniewski
6
Plik danych waluta => EURO
Dużo lepszą metodą będzie skorzystanie przez
aplikację z pliku zawierającego:
Nazwę waluty
Jej symbol
Kurs wymiany
Francja FRF 6.55
Niemcy DEM 1.95
Włochy ITL 1936.27
Belgia BEF 40.33
Copyright by Piotr Greniewski
7
Kartotekowe bazy danych
Pliki jednorodne lub kartoteki bardzo pożyteczne
do zapamiętywania danych w programach.
Wygodne w użyciu jeśli nie są przesadnie
rozbudowane.
Mogą służyć do przechowywania haseł i danych
sterujących.
Plik jednorodny składa się z kilku elementów
informacji (atrybutów). Razem tworzących
strukturę, która stanowi rekord.
Każdy wiersz reprezentuje pojedynczy rekord
Rolą całego pliku jest przechowywanie
powiązanych ze sobą rekordów.
Copyright by Piotr Greniewski
8
Kartotekowe bazy danych
Rozszerzamy naszą aplikację tak aby zawierała
informację o języku, liczbie ludności i obszarze.
W pliku jednorodnym w każdym wierszu
znajduje się jeden rekord.
Wszystkie rekordy są zestawami pewnej liczby
atrybutów.
Każdy pojedynczy atrybut zawsze znajduje się w
tym samym miejscu (np. symbol waluty zawsze
będzie drugim atrybutem).
Dane możemy przeszukiwać wg. kolumn, gdy
kolumny zawierają informacje tego samego typu.
Copyright by Piotr Greniewski
9
Kartotekowe bazy danych
Aby dodać język używany w określonym kraju musimy dodać
nową kolumnę.
Pojawia się problem, gdy w kraju jest więcej niż jeden oficjalny
język.
Francja FRF 6.55
francuski
Niemcy DEM 1.95
niemiecki
Włochy ITL 1936.27
włoski
Belgia BEF
40.33 ???
Copyright by Piotr Greniewski
10
Kartotekowe bazy danych
Problem ten określa się terminem
powtarzających się grup.
Poprawny element w rekordzie powtarza się
(Belgia – języki flamandzki i francuski)
Pliki jednorodne nie umożliwiają rozwiązania
tego problemu, ponieważ niemożliwe jest
określenie gdzie kończą się zapisy o językach i
zaczyna się reszta rekordu.
Jedynym sposobem jest dodanie struktury do
pliku ale to już nie będzie plik jednorodny.
Copyright by Piotr Greniewski
11
Strukturalne pliki tekstowe
Zbudujemy aplikację opisującą filmy: rok
produkcji, reżyser, gatunek oraz obsada
[2001: Odyseja kosmiczna]
Rok=1968
Reżyser=Stanley Kubrick
Gatunek=fantastyka
Obsada=Keir Dullea
Obsada=Leonard Rossister
[Władca Pierścieni]
Copyright by Piotr Greniewski
12
Strukturalne pliki tekstowe
Rozwiązaliśmy problem powtarzających się
grup przez wprowadzenie pewnych
znaczników wskazujących typ każdego
elementu w rekordzie.
Dalsze problemy z tym zapisem danych
Jak sprawdzać poprawność danych?
Jak posortować listę wg. filmów danego
reżysera?
Jak rozszerzać funkcjonalność bazy: np. Kto
pożyczył dany film z wypożyczalni?
Ile filmów wyprodukowano w 1968 r.
Copyright by Piotr Greniewski
13
Co to jest baza danych?
Baza danych jest to jest to duży zbiór danych
o określonej strukturze, która umożliwia ich
szybkie wyszukiwanie i wydobywanie. (
- słownik online Merriama
Webstera)
Copyright by Piotr Greniewski
14
Co to jest DBMS?
System zarządzania bazą danych
(DBMS – Data Base Management System) to:
zbiór bibliotek
aplikacji
narzędzi
Zwalniają one programistę aplikacji z
konieczności pamiętania o szczegółach
przechowywania i zarządzania danymi.
Dostarczają funkcji wyszukiwania i aktualizacji
rekordów.
Copyright by Piotr Greniewski
15
Rodzaje baz danych
Sieciowy model baz danych
Hierarchiczny model baz danych
Relacyjny model baz danych
W latach 60–tych i 70-tych opracowywano bazy
danych, rozwiązujące problem powtarzających
się grup na kilka różnych sposobów. Efektem
tych metod było opracowanie mechanizmu, który
można określić terminem modelu baz danych.
Badania firmy IBM zaowocowały opracowaniem
podstaw tych modeli.
Copyright by Piotr Greniewski
16
Sieciowy model bazy danych
W sieciowym modelu baz danych wykorzystano
pomysł wskaźników wewnątrz bazy danych.
Rekordy mogą zawierać odwołania do innych
rekordów.
Nazwa kraju Symbol
Kurs
Wskaźnik
Język n
Język n+1
nil
Copyright by Piotr Greniewski
17
Sieciowy model bazy danych
Belgia
BEF
40.33
francuski
flamandzki
nil
Mamy więc metodę wprowadzenia
dowolnej ilości języków obowiązujących
w danym państwie.
Copyright by Piotr Greniewski
18
Sieciowy model bazy danych
Włochy
ITL
1936.27
Francja
FRF
6.55
Niemcy
DEM
1.95
Belgia
BEF
40.33
francuski
włoski
flamandzki
nil
Tablica
krajów
Tablica
języków
nil
Copyright by Piotr Greniewski
19
Sieciowy model bazy danych
Wskaźniki wewnątrz bazy danych czyli
rekordy mogą odwoływać się do innych
rekordów
Dwa typy rekordów każdy przechowywany w
innej tablicy
Słowniki do przechowywania często
powtarzających się nazw.
Odnośniki – tzw. Klucze.
Pojęcie „nil” lub „puste” oznaczające koniec
listy
Copyright by Piotr Greniewski
20
Sieciowy model bazy danych
Zalety
– wszystkie rekordy jednego typu,
powiązane z określonym rekordem innego
typu, można znaleźć bardzo szybko idąc
według wskaźników od rekordu
początkowego.
Wady
- bardzo ciężko wydobyć informację typu
w jakich krajach mówi się po francusku?
Copyright by Piotr Greniewski
21
Sieciowy model bazy danych
Tego typu operację można przyspieszyć
poprzez stosowanie innych powiązanych list.
Powoduje to powstanie nadmiernie złożonej
struktury.
Pisanie aplikacji dla tego typu baz danych jest
bardzo złożone.
Copyright by Piotr Greniewski
22
Hierarchiczny model baz danych
W systemie IMS firmy IBM z końca
lat 60-tych przedstawiono
hierarchiczny model bazy danych. W
modelu tym rozwiązanie problemu
powtarzalnych grup opiera się na
stosowaniu rekordów danych, które
są złożone z kolekcji innych
rekordów.
Copyright by Piotr Greniewski
23
Hierarchiczny model baz danych
Model ten można porównać do zestawienia
materiałowego, (BOM – ang. Bill of Material),
które zastosowano w celu pokazania
złożoności produktu.
Samochód składa się z: nadwozia, podwozia,
silnika i czterech kół.
Silnik jest złożony z: cylindrów, głowicy i wału
korbowego
Itd.
Copyright by Piotr Greniewski
24
Hierarchiczny model baz danych
Głowica
Wał korb.
Cylindry
Silnik
Nadwozie
Samochód
Podwozie
4 Koła
Copyright by Piotr Greniewski
25
Hierarchiczny model baz danych
Hierarchiczny model bazy danych
wykorzystuje się do dziś.
Stosując ten model można zoptymalizować
przechowywanie danych i uczynić operację
poszukiwania odpowiedzi jeszcze bardziej
wydajną.
Np. pytając jaki samochód zawiera określoną
część?
Copyright by Piotr Greniewski
26
Pytania do wykładu 1
Dlaczego bazy danych stanowią najważniejszą część
składową większości aplikacji?
Podaj przykład 3 programów zawierających bazy
danych.
Co to są dane stałe – podaj przykład?
Co to są dane zmienne – podaj przykład?
Co to jest kartotekowa baza danych?
Zaprojektuj przykładową kartotekową bazę danych?
Co to są powtarzające się grupy?
Czy problem powtarzających się grup można
rozwiązać za pomocą kartotekowych baz danych?
Co to jest strukturalny plik tekstowy – podaj przykład?
Jakie wady posiada strukturalny plik tekstowy?