• Nie Znaleziono Wyników

Relacyjne Bazy Danych

N/A
N/A
Protected

Academic year: 2021

Share "Relacyjne Bazy Danych"

Copied!
40
0
0

Pełen tekst

(1)

Relacyjne Bazy Danych

Wykład I

(2)

Literatura

• Lech Banachowski: Bazy danych - projektowanie aplikacji, Akademicka OficynaWydawnicza PLJ, 1998

• Dariusz Boratyn: MS Access,

• Paul Beynon-Davies: Systemy baz danych, WNT, 1998

(3)

Baza danych

• pojęcie sięgające wieków

• Informacja, dane – pewien zasób

• ludzie od zawsze próbują gromadzić

informację i wnioskować na jej podstawie

• komputery – tylko ułatwiają przetwarzanie informacji

(4)

• Dane są takim samym zasobem firmy jak każdy inny (np. pracownicy, materiały, urządzenia) i

wymagającym, tak samo jak one, zarządzania.

• Informacja to dane razem z ich semantyką - znaczeniem dla firmy.

• Zarządzanie danymi jest realizowane poprzez system informacyjny obsługujący zapotrzebowania na

informacje dla pewnego fragmentu rzeczywistości w firmie.

• Baza danych stała się standardową metodą

wprowadzenia struktury do procesu zarządzania danymi.

• Baza danych jest częścią systemu informacyjnego

(5)

Informacja ma wartość

gdy jest:

• dokładna (nie za dużo, ani nie za mało)

• dostępna

gdy mamy „zły” sposób poszukiwania informacji możemy nie być wstanie jej odszukać

- może nam zabraknąć np. „życia”

- komputer tu nic nie pomoże

(6)

Baza danych

• metoda strukturalizacji zarządzania informacją

• dotyczy fragmentu rzeczywistości i stanowi kolekcję danych

• część systemu informacyjnego

- aplikacja bazy danych (oprogramowanie) - system informatyczny (sprzęt)

(7)

Linia lotnicza

A

B

C

D

E

F

(8)

Inne złożone Bazy danych

• Bankowe

ochrona danych

• Satelitarne

tryliardy danych

(9)

Bazy danych

• Wszechobecność informacji:

od serwisów działających na przeglądarkach internetowych, po aplikacje naukowe.

• Zbiory danych o coraz większej różnorodności i wielkości:

biblioteki elektroniczne, multimedialne bazy danych, interaktywne video, projekty badania genomu człowieka, projekt obserwacji Ziemi (NASA).

• Przy konstrukcji systemów baz danych wykorzystuje się większość działów informatyki:

systemy operacyjne, teorię informatyki, sztuczną inteligencję, logikę, języki programowania, multimedia, inżynierię

oprogramowania.

(10)

Cechy bazy danych

• trwałość (aplikacja powinna działać przez długi okres czasu – dane przechowywane

„latami”)

• zgodność z rzeczywistością

zmiana rzeczywistości musi być uwzględniona w bazie danych

(11)

BIBLIOTEKA

Tytuł:

Autor:

ISBN:

...

Tytuł:

Autor:

ISBN:

...

Tytuł:

Autor:

ISBN:

...

POLE REKORD

Potop

H.Sienkiewicz H.Sienkiewicz

Quo Vadis Pan Tadeusz

A.Mickiewicz

(12)

Ujęcie projektowe

Dane przechowywane w tabeli:

Tytuł Autor ISBN Rok

Wydania ...

Potop H.Sienkiewicz 23xc4 1970 ...

Quo Vadis H.Sienkiewicz 3e45d 1985 ...

Pan

Tadeusz A.Mickiewicz 231ws 1990 ...

... ... ... ... ...

(13)

W bazie danych, musimy

• kontrolować redundancję (powtarzanie się danych)

• jeden fakt powinien być reprezentowany na jeden sposób

– problem dostępności i dokładności

poszukiwanych danych (czas dostępu oraz nadmiar danych)

(14)

Problem jednej tabeli

Tytuł Autor ISBN Rok

Wydania ...

Potop H.Sienkiewicz 23xc4 1970 ...

Quo Vadis H.Sienkiewicz 3e45d 1985 ...

Pan

Tadeusz A.Mickiewicz 231ws 1990 ...

... ... ... ... ...

H.Sienkiewicz ... ... ...

A.Mickiewicz ... ... ...

(15)

Problem jednej tabeli

Uczeń Hobby Zachowanie Telefon

domowy ...

Adaś Komputery hmmmm 123456 ...

Karolina Kwiatki wzorowe 654321 ...

Paweł Legia odpowiednie 876543 ...

... ... ... ... ...

... ... ... ... ...

... ... ... ... ...

(16)

Relacyjna Baza Danych

Autor imię

nazwisko adres

...

Książka tytuł

ISBN rok wyd

...

Wydawnictwo nazwa

adres opis

(17)

Relacyjna Baza Danych

imię nazwisko

Henryk Sienkiewicz Adam Mickiewicz

Autor

tytuł ISBN

Potop 12234ee4 Quo Vadis 334we2 Pan

Tadeusz 23we45

Książka

(18)

Dane osobowe imię

nazwisko ...

Hobby nazwa

opis ...

Przedmiot nazwa

opis Oceny

ocena opis

Uczeń

(19)

Relacyjny model danych - Edgar Codd (1970)

W terminologii matematycznej - baza danych jest zbiorem relacji.

W matematyce definiuje się relację jako podzbiór iloczynu kartezjańskiego zbiorów wartości. Reprezentacją relacji jest dwuwymiarowa tabela złożona z kolumn i wierszy.

(20)

Założenia:

• Liczba kolumn jest z góry ustalona.

• Z każdą kolumną jest związana jej nazwa oraz dziedzina, określająca zbiór wartości, jakie mogą wystąpić w kolumnie.

• Na przecięciu wiersza i kolumny znajduje się

pojedyncza (atomowa) wartość należąca do dziedziny kolumny.

• Wiersz reprezentuje jeden rekord informacji np. osobę.

• W modelu relacyjnym abstrahujemy od kolejności wierszy (rekordów) i kolumn (pól w rekordzie).

(21)

IdWykładowcy  

  Imię        Nazwisko       Tytuł        237

 

Jan Kowalski Doktor

3245  

Maciej Jankowski Docent

8976  

Artur Malinowski Profesor Tabela wykładowców

(22)

NazwaPrzedmiotu  

Kod      

IdWykładowcy      

Bazy danych  

BDA 1237  

Projektowanie systemów informacyjnych 

 

PSI 3245  

Technologie internetowe  

TIN 3245  

Programowanie obiektowe  

POB 8976  

Tabela przedmiotów

(23)

Znaczenie IdWykładowcy w tabeli Przedmiotów: 

• Jego wartość nie opisuje cechy wykładu. 

• Reprezentuje związek danego przedmiotu z

wykładowcą, o którym informacja znajduje się w innej tabeli i tylko korzystając z identyfikatora

możemy rozpoznać w innej tabeli wiersz właściwego wykładowcy i odczytać o nim informacje. 

• Istotne jest więc, aby identyfikator ten

jednoznacznie określał danego wykładowcę - w modelu relacyjnym nie ma innej możliwości

identyfikacji wiersza tylko poprzez wartości kolumn,

(24)

Klucz główny i jednoznaczny

• Dla każdej tabeli musi być określony jednoznaczny identyfikator nazywany kluczem głównym - jedna lub więcej kolumn, w

których wartości jednoznacznie identyfikują cały wiersz.

• Klucz jednoznaczny (nazywany też kluczem alternatywnym lub w skrócie kluczem) ma tę samą własność co klucz główny przy

czym klucz główny jest tylko jeden, kluczy jednoznacznych w tabeli może być więcej niż jeden.

• W tabeli Przedmioty kluczem głównym jest KodPrzedmiotu, kluczem alternatywnym jest NazwaPrzedmiotu.

• W tabeli Wykładowcy kluczem głównym jest IdWykładowcy.

Nazwisko nie musi być kluczem!

(25)

Klucz obcy

• Klucz obcy jest to jedna lub więcej kolumn, których wartości występują jako wartości ustalonego klucza głównego lub

jednoznacznego w tej lub innej tabeli i są interpretowane jako wskaźniki do wierszy w tej drugiej tabeli.

• W tabeli Przedmioty kluczem obcym jest IdWykładowcy,

którego wartości pochodzą z kolumny IdWykładowcy w tabeli Wykładowcy.

Na przykład, wartość 1237 występująca w wierszu przedmiotu

"Bazy danych" tabeli Przedmioty stanowi odwołanie do wiersza w tabeli Wykładowcy, w którym są zapisane informacje o

wykładowcy o nazwisku "Kowalski":

"Przedmiot Bazy danych jest wykładany przez Jana Kowalskiego"

(26)

NULL – "brak wartości"

• Dziedziny kolumn są rozszerzane o specjalny obiekt Null - oznaczający brak wartości –

• chwilowy bądź

• wynikający z istoty rzeczy (coś innego niż napis pusty czy zero).

• Wszystkie porównania i operacje na danych, w

których argumentem jest Null dają w wyniku Null (również Null=Null).

• Jest to więc w efekcie trzecia wartość logiczna obok True i False.

(27)

OR    

  True    False   

  Null    

True True True True False True False Null Null True Null Null Operator alternatywy OR

AND    

  True    False   

  Null    

True True False Null

False False False False

Null Null False Null

Operator koniunkcji AND

(28)

NOT  True  False  Null  False True Null Operator negacji NOT

Wartość wyrażenia logicznego jest prawdziwa na

przykład dla alternatywy, której jeden argument ma wartość true a drugi ma wartość nieokreśloną NULL.

Predykaty Is Null oraz Is Not Null

Pozwalają stwierdzić, czy dana wartość jest Null czy nie:

•"X Is Null" = True gdy, X jest Null

•"X Is Null" = False gdy, X nie jest Null

•"X=Null" = Null dla wszystkich X

(29)

Więzy spójności danych - warunki poprawności danych w tabelach

• Dla pojedynczych wartości w wierszu np. 0<Wiek<140

• Dla kilku wartości w wierszu np.

• Data_urodzenia<Data_zatrudnienia

• Więzy klucza głównego, więzy klucza jednoznacznego.

• Więzy NOT NULL.

• Więzy referencyjne (więzy spójności referencyjnej):

wartość klucza obcego może być albo Null albo musi występować jako wartość powiązanego z nim klucza głównego (lub jednoznacznego).

• Bardziej skomplikowane reguły wymagające zastosowania bardziej skomplikowanego języka np.

(30)

Perspektywa (view)

- wirtualna tabela, którą posługują się użytkownicy

Przedmioty-Wykładowcy:

NazwaPrzedmiotu       

Wykładowca     

Bazy danych  

Kowalski Projektowanie systemów

informacyjnych     

Jankowski Technologie internetowe

 

Jankowski Programowanie obiektowe

 

Malinowski

(31)

Zawartość zwykłej perspektywy jest na życzenie wyliczana przez system ze źródłowych tabel. Nie jest na stałe zapisywana w bazie danych. W pewnych sytuacjach wygodniej jest zapisać zawartość perspektywy w bazie danych a następnie korzystać z jej

„materializacji”. Taki specjalny rodzaj perspektywy nosi nazwę perspektywy zmaterializowanej.

Indeks

jest to dodatkowa struktura danych umożliwiająca szybki dostęp do wierszy tabeli na podstawie wartości w określonej kolumnie lub kolumnach np. indeks zbudowany na kolumnie Nazwisko

umożliwia szybkie wyszukiwanie danych wykładowcy w oparciu

(32)

Poziomy relacyjnej bazy danych

• Poziom użytkowy – widoki na dane i programy, którymi posługuje się użytkownik.

• Poziom logiczny (koncepcyjny) – zbiór tabel, perspektyw i indeksów.

• Poziom fizyczny – zbiór plików z danymi i z indeksami.

Przy czym perspektywy definiuje się na poziomie logicznym a używa się na poziomie użytkowym; indeksy definiuje się na poziomie logicznym a używa się na poziomie fizycznym. Jeśli

chodzi o tabele to definiuje się na poziomie logicznym a używa się

(33)

Korzystanie z poszczególnych poziomów odbywa się do pewnego stopnia w sposób niezależny. Na przykład,

można zmieniać położenie danych na dysku i ich zapis bez potrzeby zmiany struktury logicznej tabel; można zmieniać tabele bez konieczności zmiany programów aplikacyjnych - o ile programy aplikacyjne są oparte na perspektywach a nie tabelach. W pierwszym przypadku mamy do czynienia z tak zwaną niezależnością fizyczną danych, w drugim z niezależnością logiczną danych.

(34)

Katalog (słownik danych), metadane

jest to zbiór tabel i perspektyw opisujących schemat bazy danych to jest definicje wszystkich jej obiektów (na każdym z trzech poziomów bazy danych). Istotne jest użycie relacyjnego

modelu danych w tym celu. Zatem metadane są zapisywane i przetwarzane w taki sam sposób jak zwykłe dane.

(35)

Architektura klient-serwer

Aplikacje bazodanowe składają się zwykle z co najmniej dwóch części:

• strony klienta - na stacji roboczej użytkownika,

• strony serwera – na komputerze zawierającym serwer bazy danych czyli bazę danych wraz z jej systemem zarządzania (SZBD).

(36)

Funkcje aplikacji po stronie serwera bazy danych

• Przechowywanie i organizacja dostępu do danych.

• Wykonywanie instrukcji języka baz danych (jest to język o nazwie SQL omawiany w wykładzie 9).

• Sprawowanie kontroli nad spójnością danych.

• Zarządzanie zasobami bazy danych w tym kontami użytkowników.

Funkcje aplikacji po stronie klienta

• Kontakt z użytkownikiem (interfejs użytkownika).

• Wyjaśnianie użytkownikowi stanu obliczeń w tym błędów i sytuacji wyjątkowych.

• Przyjmowanie od niego zleceń na operacje, wykonywanie

(37)

Historia baz danych

• 1961– Integrated Data Store IDS (Charles Bachman, General

Electric) - pierwszy SZBD, początek sieciowego modelu danych.

• 1965-70 – Information Management System IMS (IBM) – hierarchiczny model danych.

• 1970 – Edgar Codd, IBM – relacyjny model danych.

• 1971 – CODASYL, standard sieciowego modelu danych.

• 1976 – Peter Chen – model związków encji (ERD, ERM), brak standardu do tej pory.

• Początek lat siedemdziesiątych - w laboratorium badawczym IBM w San Jose powstał prototyp języka SQL o nazwie Sequel.

• 1973 - pierwszy system zarządzania relacyjną bazą danych (System R w firmie IBM).

(38)

• 1987 pierwszy standard języka SQL (ISO),

• Kolejne wersje standardu ANSI/ISO: 1989, 1992 SQL2, 1999 SQL:1999 – model obiektowo-relacyjny, trwają prace nad

następnymi standardami SQL3 i SQL4.

• Lata osiemdziesiąte – badania nad dedukcyjnymi i obiektowymi bazami danych.

• 1997 - Standard obiektowych baz danych ODMG 2.0.

• Lata dziewięćdziesiąte – rozszerzenie baz danych o nowe aspekty: architektury wielowarstwowe, rozproszenie,

równoległość, Internet, hurtownie danych, OLAP, multimedia, bazy dokumentów w tym XML, GIS (Geographical Information Systems), ERP (Enterprise Resource Planning) oraz MRP

(Management Resource Planning) - pakiety takie jak SAP, Baan,

(39)

Posługiwanie się bazą danych

• wyszukiwanie danych

• modyfikacja (aktualizacja) danych

• dopisywanie danych

• usuwanie danych

(40)

Wyszukiwanie danych

• filtr – doraźnie

• kwerenda – trwale

Cytaty

Powiązane dokumenty

W każdym obiekcie klasy Film występuje atrybut obsada, którego wartością jest zbiór referencji do obiektów klasy Gwiazda (na podstawie obiektu klasy Film można uzyskać

200 Bazy danych Boks.. Schemat relacji jest w postaci normalnej Boyce’a-Codda bo jedynym kluczem są wszystkie trzy atrybuty) a w tabeli jest redundancja i możliwe są anomalie.

Podstawowym obiektem interfejsu użytkownika jest formularz, wyświetlany na ekranie komputera i składający się ze zbioru elementów dialogowych takich jak: pola do wyświetlania

W przypadku raportów i stron dostępu do danych główną metodą wprowadzenia wewnętrznej struktury jest grupowanie po wartościach pochodzących z jednej lub więcej kolumn. W wyniku

Źródło danych: Kwerenda Wszystko (złączenie tabel Firmy, Oferty, Stanowiska w ofercie, Wymagania, Słownik wymagań i Kategorie wymagań) dla głównego formularza (tu wyszukuje

SELECT Nazwa, Cena, Id_faktury, Ilosc FROM Towary INNER JOIN Pozycje ON Towary.Id_towaru = Pozycje.Id_towaru;... Wyświetl pracowników razem z przyjętymi przez

Do obiektu formularza o nazwie Pracownicy można się odwoływać w następujący

Jeśli użytkownik wprowadza do pola kombo nową wartość, której nie ma na stowarzyszonej liście rozwijanej i chce aby odpowiedni rekord został dopisany do tabeli bazy danych,