Wprowadzenie do baz danych

Transkrypt

Wprowadzenie do baz danych
Bazy danych
Wprowadzenie
SKiBD
Motywacja do rozwoju baz danych
• Posiadanie dużej ilości danych
• Trudności w przechowywaniu i udostępnianiu danych
• Konieczność szybkiego dostępu do informacji
Potrzeba:
Przechowywanie i przetwarzanie informacji o
obiektach występujących w rzeczywistości
2
Przykład
• Firma sprzedająca pewne produkty
• Pracownicy spędzają dużo czasu na wypełnianiu dokumentów
w formie papierowej
• Kierownictwo chce usprawnić działanie firmy
• Istnieje zapotrzebowanie na informacje analityczne:
— Które produkty sprzedają się najlepiej?
— Którzy klienci przynoszą największe zyski?
— Jaka jest dynamika sprzedaży?
Narzędzie
do realizacji
zasygnalizowanych
potrzeb:
• Obecnie wykonanie
takich
analiz jest czasochłonne
i żmudne
• Aktualne
System
informatyczny
zastępujący
dotychczasowe
prace:
wyniki analiz
pozwolą podejmować
decyzje
prowadzące
wzrostusprzedaży,
zysków firmy
baza
danych do
klientów,
magazynu, podsumowania
3
Co to jest baza danych
• Struktura do przechowywania informacji
• Związek informacji z rzeczywistością
• Określony format umożliwiający szybki dostęp do danych
Przykład złej organizacji informacji
Zbiór informacji
Kartki
ze swobodnym
o książkach
opisem,wodręcznym:
bibliotece:
- brak
jednolity
jednolitego
format kart
formatu
opisujących książki
-- porządek
alfabetyczny
nazwisk autorów
utrudnienie
dostępu do wg
informacji
- różnorodność informacji
4
Wnioski
Wprowadzenie określonej struktury (formatu) pozwala na:
• uporządkowanie informacji
• szybsze i łatwiejsze operowanie informacją
Postulat
należy skonstruować strukturę pozwalającą:
• przechowywać różne dane
• opracować jednolite reguły przetwarzania takich danych
5
Teoria Codd’a
E. F. Codd 1970 – relacyjny model danych (poszukiwana struktura)
• silne podstawy teoretyczne (teoria mnogości: zbiory, relacje)
• prostota rozwiązania (struktura tabeli)
• reprezentacja danych w oderwaniu od fizycznej implementacji
• uniwersalny przenośny język operowania danymi
Sygnat. Autor
Rok
• określanie operacji naTytuł
zbiorach zamiast przetwarzania
348510 L.Banachowski Bazy Danych, tworzenie aplikacji
1998
pojedynczych elementów
568900
Mei Kobayashi
Wavelets and their applications
1998
102345
Ulka Rodgers
Oracle, przewodnik projektanta baz danych 1995
...
...
...
...
6
Systemy baz danych
Korzyści z zastosowania systemu bazy danych
• ukrycie fizycznych aspektów
przechowywania danych
• standardowy język
manipulacji danymi (SQL)
• umożliwienie projektowania na
poziomie pojęć odpowiadających
obiektom występującym w
rzeczywistości
System bazy danych
SQL
Implementacja pojęć
i związków
Interfejs użytkownika
7
Producenci systemów baz danych
Oracle
IBM (DB2)
Microsoft (SQL Server)
Informix
Sybase
Interbase
inne (np. MySQL AB)
Microsoft Access – oprogramowanie umożliwiające
realizację prostych jednostanowiskowych baz danych.
Zawiera pakiet do graficznego projektowania i realizacji
aplikacji
8
Definicje pojęć
Pole – pojedynczy niepodzielny element informacji
Nazwa – identyfikuje pole
Typ
– zbiór wartości które może przyjąć
Wartość – informacja zapisana w polu
Rekord – nieuporządkowany zbiór różnych pól
Tabela – nieuporządkowany zbiór rekordów tego samego typu
9
Reprezentacja graficzna
Tabela – zbiór obiektów tego samego rodzaju
10
Reprezentacja graficzna
Każdy wiersz (rekord) opisuje jeden obiekt.
11
Reprezentacja graficzna
Pole 1
Pole 2
Pole 3
Pole 4
Pole 5 Pole6
Pole – pojedynczy atrybut,
cecha obiektu
Nagłówek tabeli – opis pól rekordów
12
Reprezentacja graficzna
Pole 1
Pole 2
Pole 3
Pole 4
Pole 5 Pole6
Kolumna – zbiór pól tego samego rodzaju
wszystkich obiektów
13
Unikalny identyfikator rekordu
Potrzeba jednoznacznej identyfikacji rekordu
- nie mogą istnieć dwa takie same rekordy
Klucz – minimalny zbiór pól, na podstawie których
można jednoznacznie identyfikować rekordy
Uproszczenie klucza - wprowadzenie dodatkowego
pola zawierającego unikalny identyfikator
Przykłady unikalnych identyfikatorów w życiu
NR indeksu studenta
zamiast:PESEL
NIP
nazwisko, imię, rok urodzenia, imię ojca, matki
14
Własności elementów tabeli
• kolejność pól w rekordzie nie jest ważna
• kolejność rekordów w tabeli nie jest istotna
• w tabeli nie może być dwóch identycznych rekordów
Operowanie zbiorami zamiast elementami zbiorów - zbliżenie do języka naturalnego
15
Przykład wyrażeń w różnych językach
Język naturalny:
„wybierz nazwiska pracowników, których pensja przekracza 3000zł”
Język zapytań (SQL):
SELECT nazwisko FROM
WYBIERZ
Z pracownicy WHERE
GDZIE pensja > 3000
Język proceduralny (język C):
for (i = 1; i<= LiczbaRekordów; i = i+1)
{
if (rekord[i].pensja > 3000)
{
... wydrukuj rekord ...
}
}
16
Iloczyn kartezjański zbiorów
Iloczyn kartezjański dwóch zbiorów A, B
jest zbiorem wszystkich możliwych par {ai, bi}, gdzie
ai, bi są odpowiednio elementami zbiorów A, B
Przykład
A = {5, 1}
B = {3, 2, 1}
AxB={
{5,3}
{5,2}
{5,1}
{1,3}
{1,2}
{1,1} }
17
Relacja
„Relacją R nazywamy uporządkowaną trójkę zbioru{A, grR, B},
gdzie:
A oznacza zbiór argumentów relacji,
B oznacza zbiór wartości relacji zaś
grR (graf relacji, wykres relacji) jest pewnym podzbiorem
iloczynu kartezjańskiego A x B”
definicja podana na przedmiocie Algebra i Teoria Mnogości
18
Przykład relacji (związku)
Opisanie związku występującego w rzeczywistości:
„kto prowadzi jakie zajęcia”
mgr Kowalski Teoria pola
dr Nowak
Elektronika, Algebra
dr Kamiński
nie prowadzi zajęć w tym semestrze (urlop habilit.)
Zbiory:
A = Pracownicy
mgr Kowalski
dr Nowak
dr Kamiński
B = Przedmioty
Teoria pola
Algebra
Elektronika
Podzbiór
iloczynu kartezjańskiego
C=AxB
Iloczyn kartezjański
C=AxB
Tylko
te pary
które są
zgodne
z rzeczywistością:
Wszystkie
możliwe
pary
(pracownik,
przedmiot) – „każdy z każdym”
{Kowalski, Teoria pola}, {Nowak, Elektronika}, {Nowak, Algebra}
19
Realizacja relacji z użyciem tabel
Tabela zawierająca elementy zbioru A
Tabela zawierająca elementy zbioru B
IDA (klucz)
IDB (klucz)
Dodatkowa tabela zawierająca zbiór par pozostających w związku
IDA
IDB
Każdy rekord tabeli dodatkowej opisuje pojedynczą parę
20
Przykład
Tabela zawierająca Pracowników
Tabela zawierająca Przedmioty
Nazwisko
tytuł
IDA (klucz)
IDB (klucz)
Nazwa
Kowalski
mgr
1
1
Algebra
Nowak
dr
2
2
Elektronika
Kamiński
dr
3
3
Teoria pola
Dodatkowa tabela zawierająca zbiór par Pracownik - Przedmiot
IDA
IDB
1
3
2
1
2
2
Każdy rekord tabeli dodatkowej opisuje pojedynczą parę
21
Definicje pojęć (cd.)
Baza danych – zbiór tabel oraz związków (relacji)
Indeks – lista określająca porządek rekordów wg.
pewnego kryterium
Z punktu widzenia teorii indeks nie jest konieczny
ale przyspiesza operacje na danych.
Przykład
Indeks pracowników wg alfabetycznej
kolejności nazwisk
22
Operacje 1)
Operacje wywodzące się z teorii mnogości 2):
Suma
A ∪ B, suma rekordów
Iloczyn
A ∩ B, część wspólna
Różnica
A – B, rekordy tabeli A nie występujące w tabeli B
Iloczyn kartezjański A x B, wszystkie pary rekordów (a, b)
Operacje relacyjne:
Selekcja
Projekcja
Złączenie
wybór rekordów na podstawie kryterium
ukrycie niektórych pól rekordów
połączenie rekordów dwóch tabel na podstawie
równości ustalonych pól
Uwagi
1) Wynikiem każdej operacji jest tabela
2) Format rekordów tabel A i B musi być taki sam
23
Przykład sumy
Tabela pracownicy1
Tabela pracownicy2
Instytut Nazwisko
Tytuł
Instytut Nazwisko
Tytuł
I-14
Kowalski
mgr
I-13
Karwowski mgr
I-14
Nowak
dr
I-12
Czyżewska dr
I-15
Dębski
mgr
I-12
Dąbrowski
I-16
Wrocławski mgr
I-14
Kamiński
mgr
dr
24
Przykład sumy
Wynik sumy tabel pracownicy1 oraz pracownicy2
Instytut Nazwisko
Tytuł
I-14
Kowalski
mgr
I-14
Nowak
dr
I-15
Dębski
mgr
I-16
Wrocławski mgr
I-14
Kamiński
I-13
Karwowski mgr
I-12
Czyżewska dr
I-12
Dąbrowski
dr
mgr
25
Przykład iloczynu (część wspólna)
Tabela pracownicy1
Tabela pracownicy2
Instytut Nazwisko
Tytuł
Instytut Nazwisko
Tytuł
I-14
Kowalski
mgr
I-13
Karwowski mgr
I-14
Nowak
dr
I-14
Nowak
dr
I-15
Dębski
mgr
I-14
Kamiński
dr
I-16
Wrocławski mgr
I-14
Kamiński
dr
26
Przykład iloczynu (część wspólna)
Tabela pracownicy1
Tabela pracownicy2
Instytut Nazwisko
Tytuł
Instytut Nazwisko
Tytuł
I-14
Kowalski
mgr
I-13
Karwowski mgr
I-14
Nowak
dr
I-14
Nowak
dr
I-15
Dębski
mgr
I-14
Kamiński
dr
I-16
Wrocławski mgr
I-14
Kamiński
dr
27
Przykład iloczynu (część wspólna)
Wynik iloczynu tabel pracownicy1 i pracownicy 2
Instytut Nazwisko
Tytuł
I-14
Nowak
dr
I-14
Kamiński
dr
28
Przykład różnicy
Tabela pracownicy1
Tabela pracownicy2
Instytut Nazwisko
Tytuł
Instytut Nazwisko
Tytuł
I-14
Kowalski
mgr
I-13
Karwowski mgr
I-14
Nowak
dr
I-14
Nowak
dr
I-15
Dębski
mgr
I-14
Kamiński
dr
I-16
Wrocławski mgr
I-14
Kamiński
dr
29
Przykład różnicy
Tabela pracownicy1
Tabela pracownicy2
Instytut Nazwisko
Tytuł
Instytut Nazwisko
Tytuł
I-14
Kowalski
mgr
I-13
Karwowski mgr
I-14
Nowak
dr
I-14
Nowak
dr
I-15
Dębski
mgr
I-14
Kamiński
dr
I-16
Wrocławski mgr
I-14
Kamiński
dr
30
Przykład różnicy
Wynik różnicy: pracownicy1 minus pracownicy2
Instytut Nazwisko
Tytuł
I-14
Kowalski
mgr
I-15
Dębski
mgr
I-16
Wrocławski mgr
31
Przykład iloczynu kartezjańskiego
Tabela pracownicy
Tabela projekty
IDA Nazwisko
Tytuł
ID
Nazwa
1
Kowalski
mgr
14
Red Runner
2
Nowak
dr
125 Wostok
3
Dębski
mgr
32
Przykład iloczynu kartezjańskiego
Iloczyn kartezjański tabel pracownicy oraz projekty
IDA Nazwisko
Tytuł ID
Nazwa
1
Kowalski
mgr
14
Red Runner
1
Kowalski
mgr
125
Wostok
2
Nowak
dr
14
Red Runner
2
Nowak
dr
125
Wostok
3
Dębski
mgr
14
Red Runner
3
Dębski
mgr
125
Wostok
33
Przykład selekcji
Tabela pracownicy
IDA (klucz)
Nazwisko
Tytuł
Instytut
1
Kowalski
mgr
I-16
2
Nowak
dr
I-16
3
Dębski
mgr
I-15
4
Wrocławski
mgr
I-14
5
Kamiński
dr
I-14
34
Przykład selekcji
Wybierz pracowników z tytułem doktora
IDA (klucz)
Nazwisko
Tytuł
Instytut
1
Kowalski
mgr
I-16
2
Nowak
dr
I-16
3
Dębski
mgr
I-15
4
Wrocławski
mgr
I-14
5
Kamiński
dr
I-14
35
Przykład selekcji
Wynik selekcji: Wybierz pracowników z tytułem doktora
IDA (klucz)
Nazwisko
Tytuł
Instytut
2
Nowak
dr
I-16
5
Kamiński
dr
I-14
36
Przykład projekcji
Tabela pracownicy
IDA (klucz)
Nazwisko
Tytuł
Instytut
1
Kowalski
mgr
I-16
2
Nowak
dr
I-16
3
Dębski
mgr
I-15
4
Wrocławski
mgr
I-14
5
Kamiński
dr
I-14
37
Przykład projekcji
Wybierz nazwiska i tytuły pracowników
IDA (klucz)
Nazwisko
Tytuł
Instytut
1
Kowalski
mgr
I-16
2
Nowak
dr
I-16
3
Dębski
mgr
I-15
4
Wrocławski
mgr
I-14
5
Kamiński
dr
I-14
38
Przykład projekcji
Wynik projekcji: Wybierz nazwiska i tytuły pracowników
Nazwisko
Tytuł
Kowalski
mgr
Nowak
dr
Dębski
mgr
Wrocławski
mgr
Kamiński
dr
39
Przykład złączenia
Tabela pracownicy
Tabela instytuty
IDA Nazwisko
Tytuł Inst.
IDI
1
Kowalski
mgr
I-16
I-14 Instytut Metrologii
2
Nowak
dr
I-16
I-15 Instytut Elektrotechniki
3
Dębski
mgr
I-15
I-16 Instytut Elektroniki
4
Wrocławski mgr
I-14
5
Kamiński
I-14
dr
Nazwa
40
Przykład złączenia
Wynik złączenia tabel Instytuty i Pracownicy
IDA
Nazwisko
Tytuł
Inst.
IDI
Nazwa
1
Kowalski
mgr
I-16
I-16
Instytut Elektroniki
2
Nowak
dr
I-16
I-16
Instytut Elektroniki
3
Dębski
mgr
I-15
I-15
Instytut Elektrotechniki
4
Wrocławski
mgr
I-14
I-14
Instytut Metrologii
5
Kamiński
dr
I-14
I-14
Instytut Metrologii
Uwagi
1) Przy określaniu złączenia można użyć innej relacji niż równość (np. mniejszość)
2) Złączenie będzie używane do otrzymania informacji o związkach
41
Inne zagadnienia baz danych
• Jednoczesny dostęp wielu użytkowników
• Zasilanie bazy danych w informacje (kto, jak, kiedy?)
• Aktualność danych
• Zgodność z rzeczywistością (opis obiektów, zależności, reguły)
• Trwałość danych (przechowywanie przez określony czas)
• Ochrona danych (utrata, przekłamania) – archiwizacja
• Wartość informacji zawartych w bazie danych
42
Język SQL
• Instrukcje języka SQL
• Operatory w języku SQL
• Definiowanie zapytań w SQL’u
43
Konwencja zapisu
SELECT – słowo kluczowe
parametr – nazwa parametru
{ } – wyrażenie opcjonalne
[element1 | element2] – jeden ze zbioru
...
– analogiczna kontynuacja
Przykład
INSERT INTO tabela { (pole1 { , pole_2 {, ...} } ) }
VALUES (wartość1 { ,wartość2{, ...}} )
44
Język SQL
DDL [ang. Data Definition Language] – instrukcje definiowania struktury danych
DML [ang. Data Manipulation Language] – instrukcje manipulacji na danych:
wstawianie,
kasowanie,
modyfikowanie,
wybieranie.
Operatory używane w wyrażeniach
45
Instrukcje DDL
CREATE TABLE - utworzenie nowej tabeli
CREATE INDEX - utworzenie indeksu
CREATE VIEW - utworzenie perspektywy
(nazwanego zapytania)
ALTER TABLE - zmiana formatu tabeli (dodanie,
usunięcie, zmiana pól tabeli)
DROP TABLE - usuniecie tabeli z bazy danych
DROP INDEX - usuniecie indeksu z bazy danych
DROP VIEW - usuniecie perspektywy
46
Instrukcje DML
SELECT - wybieranie danych (zapytanie)
SELECT INTO - zapisanie wyników zapytania do tablicy
INSERT INTO - dodawanie rekordów do tablicy
UPDATE - modyfikowanie danych
DELETE - usunięcie danych
UNION - suma tabel
INTERSECT - część wspólna tabel (iloczyn, przecięcie)
MINUS - różnica tabel
47
Inne elementy SQL
Związki
LEFT, RIGHT, INNER, OUTER JOIN - określanie związków
pomiędzy tabelami
PARAMETERS - definiowanie parametrów zapytania
Operatory w wyrażeniach
Logiczne: AND, OR, NOT
Arytmetyczne: + - / *
Relacyjne: = < > <= > = < >, BETWEEN ... AND,
Inne: {NOT} IN, LIKE, IS {NOT} NULL
48
Instrukcja SELECT
SELECT {predykat}
[ * | tabela.* | {tabela.}pole1 {AS alias1}{,{tabela.}pole2 {AS alias2}
{,...}}]
FROM wyrażenie_tabelowe {, ...} {IN zewnętrzna_baza_danych}
{WHERE... }
{GROUP BY... }
{HAVING... }
{ORDER BY... }
49
Instrukcja SELECT
SELECT
które_pola
FROM
z_której_tabeli
{WHERE... } – jakie kryterium selekcji
{GROUP BY... }- grupowanie
{HAVING... }- ograniczenie wybranych
rekordów w grupowaniu
klauzule – dodatkowe
określenie jak
wykonać zapytanie
{ORDER BY... }- porządkowanie
Uwaga
Istotna kolejność słów kluczowych
50
Przykłady instrukcji SELECT
1)
SELECT ∗ FROM Pracownicy;
2)
SELECT Nazwisko, Imię FROM Pracownicy;
3)
SELECT Nazwisko, Imię FROM Pracownicy WHERE Pensja > 3000;
4)
SELECT Nazwisko, Imię, Pensja FROM Pracownicy
WHERE Pensja > 3000 ORDER BY Nazwisko, Imię;
51
Zastępcza nazwa - ALIAS
ALIAS (synonim)
Zastąpienie nazwy pola
Zastąpienie nazwy tabeli
Skrót upraszczający opis wyrażeń
SELECT Nazwisko, Imię, Pensja AS Pobory FROM Pracownicy
WHERE Pobory > 3000;
SELECT Nazwisko FROM Pracownicy AS Pr
WHERE Pr.Pensja > 3000 AND Pr.Data<2-02-2000;
52
Agregacja i grupowanie
Agregacja - wyznaczenie pojedynczej wartości dla całej grupy:
Sumy, Średniej, wartości maksymalnej, minimalnej
Miesiąc
Wpływ
Razem za cały mc
Styczeń
1000
Styczeń
2300
Styczeń
4000
Luty
1000
7300
2300
Luty Miesiąc, SUM(Wpływ)
1300
SELECT
FROM Operacje
Marzec
3850
GROUP
BY Miesiąc; 1450
Marzec
2300
Marzec
100
53
Funkcje agregujące
SUM
Suma
COUNT
Liczba elementów w grupie
AVG
Średnia
MAX
Wartości maksymalna
MIN
Wartość minimalnej
FIRST
Pierwszy z grupy
LAST
Ostatni z grupy
Uwaga
Funkcje wyznaczają pojedynczą wartość dla zbioru wartości.
54
Zapytania zagnieżdzone
Wykorzystanie wyniku jednego zapytania jako parametru
drugiego zapytania
Tabela2
Zapytanie1
Tabela
Wynik1
Zapytanie2
Wynik
parametr
SELECT Miesiąc, Wpływ FROM Operacje
WHERE Wpływ IN
(SELECT MAX(Wpływ) FROM Operacje);
55
Perspektywy [ang. VIEW]
Zapamiętanie zapytania pod określoną nazwą (synonim zapytania)
Ukrycie złożonego zapytania – ułatwienie dla użytkownika
Wspomagają realizację łańcucha zapytań
Zapytanie1
Tabela
Zapytanie2
Wynik pośredni
Wynik
CREATE VIEW WpływyMies AS
SELECT Miesiąc, SUM(Wpływ) AS SumaW FROM Operacje
GROUP BY Miesiąc;
SELECT * FROM WpływyMies WHERE Miesiąc<12;
56
Zapytania z wielu tabel
Zapytania z wielu tabel dają możliwość realizacji:
- iloczynu kartezjańskiego
- złączeń (naturalnych, theta)
SELECT * FROM Pracownik, Prezent;
- iloczyn kartezjański
SELECT * FROM Pracownik, Instytut
WHERE Pracownik.Inst=Instytut.ID;
- złączenie naturalne
SELECT * FROM Pracownik INNER JOIN Instytut ON
Pracownik.Inst=Instytut.ID;
- złączenie naturalne
57
Złączenia opcjonalne
Wartość NULL – oznaczenie że rekord nie jest związany
Wykorzystanie słów kluczowych RIGHT, LEFT JOIN
SELECT * FROM Pracownik, Instytut
WHERE (Pracownik.Inst = Instytut.ID)
OR (Pracownik.Inst IS NULL);
- złączenie opcjonalne
SELECT * FROM Pracownik LEFT JOIN Instytut ON
Instytut.ID = Pracownik.Inst;
- złączenie opcjonalne
58
Dopełnienie zapytania
Słowa kluczowe: NOT IN
SELECT Pola FROM Tabela
WHERE PoleKluczowe NOT IN (Zapytanie1);
Wybranie wpływów, które nie są maksymalne
SELECT * FROM Wpływy
WHERE Kwota NOT IN
(SELECT MAX(Kwota) FROM Wpływy);
59
Samo-złączenie tabeli
Zastosowanie przy związkach rekurencyjnych
Polega na utworzenie synonimu tabeli:
SELECT Pola FROM Tabela, Tabela AS SynonimTabeli
...
Pracownik ( ID, Nazwisko, Imie, IDKierownika)
– związek rekurencyjny przez pola ID = IDKierownika
SELECT Nazwisko, Kierownik.Nazwisko
FROM Pracownik, Pracownik AS Kierownik
WHERE Pracownik.IDKierownika = Kierownik.ID;
60
Zapytanie krzyżowe
Postać graficzna zapytania grupującego
Zaimplementowana w MS Access’ie
TRANSFORM ... PIVOT ...
forma tradycyjna
NRklienta
Miesiąc
Kwota
Miesiąc
forma krzyżowa
01
02
102034
01
34,56
NRklienta
102034
02
40,50
102034
34,56
103000
04
120,00
103000
01
30,45
103000
30,45 100,32
103000
02
100,32
301988
80,87
301988
01
80,87
301988
02
70,65
04
40,50
120,00
70,65
61
Operacje relacyjne a SELECT
Operacje relacyjne:
Selekcja
Projekcja
Złączenie
wybór rekordów na podstawie kryterium
ukrycie niektórych pól rekordów
połączenie rekordów dwóch tabel na podstawie
równości ustalonych pól
projekcja
określenie
SELECT
które pola wybrać
argumentów
FROM
z których tabel wybrać dane
operacji -tabel;
złączenie
WHERE
jakie kryterium selekcji
selekcja
lub złączenie
62
Problem z wyrażeniem rekurencji
Struktura drzewa
...
• Wyrażenie pojedynczego poziomu rekurencji (1)
• Wyrażenie ustalonej liczby poziomów (przez łańcuch zapytań typu (1) )
• Brak własności SQL’a pozwalających na wyrażenie całego drzewa
63
Problemy łączenia SQL z innymi językami
Różnice pomiędzy modelami danych
SQL
C, Pascal
C++, Delphi
model danych relacyjny
strukturalny 1)
obiektowy
typy danych
typy podstawowe:
całkowity,
rzeczywisty,
znakowy,
struktury
macierze
jak 1) oraz
nowe typy
obiektowe
zbiór
Potrzebny jest interfejs pośredniczący.
64