Wykład 1
Literatura
Paul Beynon- Davies „Systemy baz danych ”
Wydawnictwo naukowo- techniczne W-wa 2000
Jeffrey D. Ulman Jenifer Widom „ Podstawowy wykład z systemów baz danych „ Wydawnictwo naukowo -techniczne W-wa 2000
Cel wykładu:
Tworzenie systemu baz danych
Tworzenie aplikacji
Projektowanie relacyjnych baz danych
Projektowanie aplikacji (obiektowych reagujących na zdarzenia)
Implementacja w MS Acccess
Tworzenie systemowych BD:
Tworzenie baz danych
Modelowanie struktur danych
Model integralności danych
Tworzenie aplikacji
Definiowanie procesów
Projektowanie funkcji
Projektowanie i tworzenie interfejsu
Baza danych
Logicznie spójny wiernie odwzorujący zbiór danych posiadających określone znaczenie (dane+ tzw. Schematy informatyczne danych)
Abstrakcyjne(symboliczne znakowe) odwzorowanie (model) wybranego fragmentu rzeczywistości
Wybrany fragment rzeczywistości to:
Mini świat
Dziedzina przedmiotowa
Korzyści ze stosowania BD
Zmniejszenie nadmiarowości(redundancji)przechowywanych danych
Współdzielenie danych - na tych samych danych mogą być współbieżnie różne aplikacje, bez zagrożenia wzajemnego ich niszczenia
Autoryzacja dostępu do danych uniemożliwiająca użytkowanie danych przez niepowołanych użytkowników
Wielości interfejsów do danych (możliwość wyświetlania tych samych danych w różnych formatach)
Reprezentacje złożonych związków pomiędzy danymi ( mod. zw. semantycznych)
Ograniczenia (więzy) integralnościowe ( zabezpieczenie przed wpisaniem do BD niewłaściwych danych i zabezpieczenie przed niewłaściwymi związkami między nimi)
Ochrona przed awariami systemu(możliwość odtworzenia po awarii)
Właściwości BD
Niezależność aplikacji i danych
Dane wprowadzane do BD bez konieczności modyfikowania korzystających z nich aplikacji
Aplikacje mogą być modyfikowane np. w celu ich ulepszania niezależnie od stanu BD
Abstrakcyjna reprezentacja danych( tzn. przy użyciu deklaratywnych języków programowania)
Różnorodność widzenia danych (perspektywy)
Fizyczna niezależność danych
Logiczna niezależność danych
Deklaratywny imperatywny język danych (poszukać!)
Koncepcja trzech światów i modelowanie
Rzeczywistość fizyczna (my i świat wokół nas)
Rzeczywistość pojęciowa (odwzorowanie w świadomości, wyobrażenie człowieka)
Świat danych (odwzorowanie w BD)
Model danych
Pojęciowy
Logiczny
Fizyczny
Języki BD
Język definiowania danych(data definition language-DDL) umożliwia definiowanie struktury danych (tworzenie schematu)
Język manipulowania danymi (Data Manipulation Langiage DML) umożliwia zmianę zawartości BD
Język sterowania danymi ( Data Control Language DCL)umożliwia użytkownikom BD sterowanie trans.
Język zapytań (Query Language) umożliwia pobieranie danych z BD
Podstawowa konstrukcja języka SQL
Operacje na schematach BD
Tworzenie tabeli
Usuwanie tabeli
Zmiana schematu tabeli
Zakładanie indeksów
Operacje na danych (aktywne)
Wstawianie danych
Modyfikacja danych
Usuwanie danych
Operacje na danych (pasywne)
Zatwierdzenie zmian
Zapytania (kwerendy)
SQL (Structured Query Language)- język wysokiego poziomu do manipulowania danymi charakteryzujący się niewielką liczbą instrukcji oraz dużymi możliwościami
Podstawowe instrukcje
SELECT - wybrane dane z tabeli
SELECT <klauzula>
FROM <klauzula>
[WHERE <klauzula>]
[GROUP BY <klauzula>]
[HAVING <klauzula>]
[ORDER BY <klauzula>]
Przykład
SELECT *FROM klienci WHERE Imie='Bolek'
SELECT *FROM klienci WHERE rok >1965
BETWEEN ...AND
SELECT <atrybut_x>
FROM <nazwa tabeli>
WHERE <atrybuty>
BETWEEN <wartość_OD> AND <wartość_DO>
Rekordy unikalne
SELECT DISTINCT <atrybuty> FROM <tabela>
Przykład
SELECT company FROM orders
wynik...
SELECT DISTINCT company FROM orders
wynik...
ORDER BY sortownie rekordów
Przykład
SELECT Company, order number FROM orders ORDER BY Company
wynik...
SELECT Company, order number FROM orders ORDER BY Company, order number
wynik...
Porządkowanie wyników DESC
SELECT Company, Order number FROM orders ORDER BY Company DESC
wynik...
GROUP BY
SELECT <atrybuty> FROM <nazwa tabeli> GROUP BY <atrybuty>
Przykład
SELECT Company FROM Orders GROUP BY Company
wynik...
Funkcje języka SQL
COUNT() - zlicza liczbę wybranych wierszy
SUM() - sumuje wartości
MIN() - znajduje wartość minimalną
MAX() - znajduje wartość maksymalną
AVG() - oblicza średnią wartość arytmetyczną
Tworzenie tabel
CREATE TABLE <nazwa tabeli>
( <nazwa atrybutu> <typ danych> [,<nazwa kolumny> <typ danych> …]);
Przykład
CREATE TABLE employee
(first name varchar (15)
last name varchar (20),
age number (3),
adress varchar (30),
city varchar (20),
state varchar (20));
Modyfikacje struktury istniejącej tablicy
ALTER TABLE < nazwa tabeli>
ADD <nazwa atrybutu> <typ danych>
DROP <nazwa kolumny>;
Przykład
ALTER TABLE studenci
ADD nr_albumu char (8)
DROP nr_studenta
Usunięcie tablicy
DROP TABLE <nazwa tabeli>;
Przykład:
DROP TABLE studenci
Dodanie do bazy nowego rekordu
INSERT INTO PERSONS VALUES (` Hetland',Camilla','Hagabakka 24','Saudness')
INSERT INTO persons (last name, Address)
VALUES( `Rasmussen', 'Storgt 67')
Wynik...
Aktualizacja rekordów
UPDATE <nazwa tabeli> SET<atrybut>= <nowa wartość>WHERE <warunek>
Aktualizacja jednej danej
UPDATE person SET first name ='Nina'
WHERE Last name ='Rasmussen'
Wynik...
Aktualizacja kilku danych
UPDATE person SET address ='Stein 12', City ='Stavanger'
WHERE Last name = `Rasmussen'
Wynik...
Usuwanie rekordów
DELETE FROM <nazwa tabeli>
WHERE <warunek>
Złączenia
Złączenie naturalne
SELECT klienci, nazwa, zamówienia, produkt
FROM klienci, zamówienia
WHERE (złączenie przez warunek where)
Klienci.klienci_id=zamówienia.klienci_id
Wynik…
Wykorzystanie złączeń
SELECT <atrybuty>
FROM <pierwsza tabela>
INNER JON <druga tabela>
ON <klucz _główny_t1>=<klucz_obcy>
Złączenia wewnętrzne - pokazuje wszystkie rekordy wzajemnie sobie odpowiadające
LEFT JON- zwraca rekordy pierwszej tabeli klienci nawet wówczas, gdy w drugiej tabeli bark odpowiadających im rekordów
SELECT <atrybut>
FROM <pierwsza_tabela>
LEFT JON zamówienia
ON klienci.klienci_id=zamówienia.klienci_id
RIGHT JON - zwraca wszystkie rekordy z drugiej tabeli nawet wtedy, gdy w pierwszej tabeli brak odpowiadających im rekordów
MS Acces
Syst. Bazy danych dla „ niewierzących”
Łatwość oprogramowania strony „klienta” dowolny serwer
Integracja ze środowiskiem MS Orfice
Powszechny dostęp do narzędzia
Łatwe w użytkowaniu (kreatory)
Wykład 2 09.03.2005
Zagadnienia odwzorowania wiedzy dziedzinie przedmiotowej
W sformatowanych BD
W bazach wiedzy
Podstawowe zagadnienia inżynierii wiedzy:
Jaki zakres wiedzy może być odwzorowany w BD?
W jaki sposób odwzorowanie to może być zrealizowane?
Sposoby traktowania BD:
Model świata rzeczywistego (dziedziny przedmiotowej)
Zasób systemu informatycznego
Element systemu informatycznego
Uniwersum interpretacji języka danych
Zbiór struktur danych
Etapy tworzenia BD:
Analiza mini świata-konstrukcja modelu konceptualnego mini świata
Transformacja modelu konceptualnego do modelu relacyjnego
Normalizacja modelu danych
Wybór struktur logicznych i fizycznych
Strojenie systemu
Poziomy reprezentacji BD
Poziom zewnętrzny- sposób, w jaki dane są widziane przez zainteresowane grupy użytkowników ( aplikacjach) tj. obraz(perspektywa)=część schematu pojęciowego
Poziom pojęciowy (konceptualny0-abstrakcyjny opis dziedziny przedmiotowej
Poziom wewnętrzny określa sposoby organizacji danych w pamięci wewnętrznej
Poziom zewnętrzny
Przez który użytkownik komunikuje się z systemem BD
Izoluje użytkownika od szczegółów technicznych
Poziomy reprezentacji BD
Model pojęciowy(konceptualny)abstrakcyjny opis dziedziny przedmiotowej
Model logiczny- model zapisany zgodnie zasadami wybranego formalizmu(np. model relacyjny)
Model fizyczny - model logiczny zapisany w języku implementacji (w wybranym języku opisu danych)
Poziom konceptualny
Poziom, na którym zdefiniowany jest model świata w kategoriach pojęciowych użytkownika
Logiczny model danych
Model danych (definicje danych)- reguły określające, jaka jest struktura danych
Model zadań- zbiór reguł określających jak operuje się danymi
Więzy integralności - zbiór reguł określających poprawne stany BD
Modele danych (diagramy encji)
Encje
Atrybuty
Domeny (dziedziny atrybutów)
Związki
Powiązania
Obiekty
Materialne(Kowalski)
Pojęciowe(pracownik)
Informacyjne (krotka)
Encje(entity), typy encji, związki encji
Atrybuty encji i związków encji
Obiekty:
Obiekty (przedmioty - encje) jako egzemplarze pojęć
Pojęcia jako obiekty
Klasyfikacja obiektów
Przynależność do zbioru obiektów (dziedziny)
XXkobieta, żona, matka, studentka, pracownik, …)
Pojęcie:
Intensja -pełna definicja pojęcia
Ekstensja- zbiór wszystkich obiektów, do których odnosi się pojęcie
Symbol- znak(ciąg znaków, obraz), który w unikalny sposób pozwala odwoływać się po pojęcia
Nazwa:
Desygnat
Denotacja
Dziedzina
Powiązania obiektów:
Definiują sposób, w jaki można kojarzyć obiekty różnych typów
Dzięki temu umożliwiają tworzenie siatki pojęciowej
Bez możliwości kojarzenia obiektów wydawałyby się one izolowane, a w naszym świecie brakowałoby spoistości
Mechanizmy prezentacji powiązania obiektów
Reprezentacja węzłowa
Obiekt (klasa) - prostokąt
Powiązanie - linia
Związki
Etykiety krawędzi:
Rola
Liczba wystąpień
Uczestnictwo
Firma ubezpieczeniowa tworzy BD o agendach powiązaniach między nimi. Każdy agent bierze udział w przynajmniej jednej akcji. W każdej akcji ma kryptonim. Każda akcja ma kryptonim. Każda akcja ma określone terytorium
Wykład 3
Obiekty (encje)
Encje byty jednostkowe (ang. Entity) =coś, o czym system musi przechowywać informacje
Zbiory (klasy) encji
Opis encji za pomocą atrybutów
Podklasy encji
Pojecie obiektu =znaczenie nazwy klasy obiektowo
Atrybuty
Atrybuty jedno i wielowartościowe
Atrybuty wyprowadzane( ich wartości nie są przechowywane w BD)
Kluczowe i niekluczowe
Klucze obce (to znaczy w innym zbiorze encji)
Obowiązkowe i opcjonalne
Puste i niepuste
Specyficzne, wspólne (np. dziedziczone)
Powiązanie obiektów (klas obiektów)
Definiują sposób, w jaki można kojarzyć obiekty różnych typów
Dzięki temu umożliwiają tworzenie siatki pojęciowej
Bez możliwości kojarzenia obiektów wydawałyby się one izolowane, a w naszym świecie brakowałoby spoistości
Związki obiektowe (encji)
Materialnych (występujących w świecie)
Pojęciowych (Pojęciowych modelach)
Informacyjnych (w BD)
Stopień moc związku
Typ asocjacji (liczebności encji w związku) (1:1, 1:n , m:n)
Przynależność (opcjonalna i obowiązkowa)
Uczestnictwo( częściowe całkowite)
Diagramy O-Z
Wierzchołki
Prostokąty -obiekty
Romby- związki
Elipsy-zbiory wartości
Krawędzie
Prostokąt- elipsa: atrybut A jest określony na zbiorze obiektów O i przyjmuje wartość V
Romb- elipsa: atrybut A jest określony na zbiorze R i przyjmuje wartości ze zbioru V
Prostokąt -romb: zbiór obiektów O jest jednym z członków w zbiorze powiązań R
Dwa „Wielkie Kaniony” tworzenia DB
Problem
Przepaść między DFD (diagram przepływu danych)a ERD(diagram encji)
Przepaść miedzy analizą a projektowaniem
Rozwiązanie
Analiza obiektowa i obiektowa BD
Analiza obiektowa i relacyjne BD
Architektura logiczna systemów baz danych
Podstawowy w postaci standardów wprowadzonych jeszcze w lata 70
Model ANSI/SPARC trzypoziomową architekturą logiczną
Poziom zewnętrzny (zwany tez poziomem użytkownika poziomem logicznym)
Poziom konceptualny
Poziom wewnętrzny (zwany tez poziomem fizycznym)
RELACYJNY MODEL DANYCH
Cechy relacyjnego modelu danych:
Model danych: jedna struktura danych - relacja
Operowanie danymi:
Algebra relacyjna
Rachunek relacyjny ( alternatywny, równoważny algebrze relacji formalizm operowania danymi w relacyjnym modelu danych)
Reguły integralności: integralność encji i integralność referencyjna
Znaczenie modelu relacyjnego:
Relacyjny model danych był punktem przełomowym w rozwoju i technologii BD, przyczynił się znacząco do rozwoju BD
Podejście relacyjne jest zaimplementowane w jeżyku SQL
Relacyjny model danych stanowi podstawę dla rozproszenia danych
Zastosowanie podejścia relacyjnego przy budowie „ integralnych” systemów baz danych
Model relacyjny w hurtowniach danych
Historia relacyjnych BD - I wersja RMD
W 1970 roku E.F. Codd opublikował prace, która położyła fundament pod najbardziej popularny ze współczesnych modeli danych
Od 1968 -88 roku Codd opublikował ponad 30 prac na temat relacyjnego modelu danych
Codd traktuje swoje prace wydane przed 1979r. jako pierwszą wersje relacyjnego modelu danych ( Codd, 1970)
Na początku 1979 r. na konferencji Australia Komputer Socjety w miejscowości Hobert w Tasmanii Codd przedstawił prace pod tytułem „ Extending the relacional batebase model to capture more meaning'
Praca ta została później opublikowana w czasopiśmie ACM DtebaseTransections.
Rozszerzoną wersję relacyjnego modelu danych Codd nazwał RM/T ( Tod Tasmania)
Na początku 1990r. Codd opublikował książkę pod tytułem The relacional
Przyczyny stworzenia RM/T
Jednym z powodów opublikowania książki na klasy zwraca Codd uwagę, jest fakt, iż uważa on, że celem producentów SZBD powołujący się na relacyjny model danych nie rozumie implikacji zawartych nie tylko w modelu RM/T, ale również pierwszej wersji relacyjnego modelu danych
12 postulatów Codda (1985) dla relacyjnej bazy danych
Informacyjny. Na poziomie logicznym dane są reprezentowane wyłącznie za pomocą tabel wartości
Dostępu. Do każdej pojedynczej danej jest dostęp za pomocą tabel, kolumn i wartości kluczy głównych
Wartości null. W systemie dostępna jest specjalna wartość reprezentująca wartość brakującą, nieokreśloną lub nieznaną. Jest to wartość różna od wszystkich konkretnych wartości jak np. pusty zapis lub zero
Słownika danych. Informacje o obiektach bazy danych tworzących schemat bazy danych są na poziomie logicznym zgrupowane w tabele i dostępne w taki sam sposób jak każde inne dane
Pełnego języka danych. W systemie jest zaimplementowany pełny język, obejmujący definiowanie danych, perspektyw więzów spójności: operowanie danymi (interaktywne jak i przez program); nadawanie uprawnień użytkownikom; transakcje
Modyfikowanie bazy danych przez perspektywę. System umożliwia modyfikowanie danych za pomocą perspektyw, w przypadku, gdy taka modyfikacja jest symetrycznie sensowna
Modyfikowanie danych na wysokim poziomie abstrakcji. System umożliwia modyfikowanie danych za pomocą operacji, których argumentami są tabele (perspektywy)
Fizyczna niezależność danych. Zmiany w metodach przechowywania danych i dostępu do nich nie mają wpływu na aplikacje
Logiczna niezależność danych. Zmiany w tabelach zachowujące informacje i dopuszczalne semantycznie mają wpływu na aplikacje
Niezależność więzów spójności. Więzy spójności są definiowalne w języku bazy danych ( nie muszą być wyrażane w aplikacji)
Niezależność dystrybucyjna. System (i jego język)umożliwiają używanie danych zapisanych w różnych fizycznie miejscach (miejscach różnych węzłach sieci)
Zabezpieczanie przed operacjami na niższym poziomie abstrakcji. Jeżeli system umożliwia operacje na niższych poziomach abstrakcji, nie mogą one naruszać relacyjnego modelu danych ( w tym pomijać ograniczeń określonych przez więzy spójności)
Wykład 4 ,5
Przykład
Imię |
Nazwisko |
Adres |
Autor |
Tytuł |
Data wydania |
Maria |
Borowiec |
Ul.Bartn. 17 Bytom |
Rudniański |
Jak się uczyć? |
06.04.05 |
Maria |
Borowiec |
Ul.Bartn. 17 Bytom |
Niedzielski |
Jak napisać prace magisterską? |
06.04.05 |
Katarzyna |
Folek |
Ul. Matejki 3/6 Katowice |
Milewski |
Ekonomia |
06.04.05 |
Anomalia bazy danych:
Wstawiania - nie można wstawić nowego wiersza, jeżeli nie wypełnimy wszystkich koniecznych danych (nie można zapisać w przykładzie imienia i nazwiska bez wypożyczonych książek)
Aktualizacji danych
Usuwania danych (np. przez skreślenie całego wiersza stracimy inne cenne dane)
Zbędna redundancja (nadmiarowość powtarzanie się)
Tabela jest obszarem relacji
Klucz - atrybut lub zbiór atrybutów, który identyfikuje encje(wiersz)
Wypożyczenia = <{I, N, A, Autor, tytuł, data wydania}
{(N i Tytuł)I, A, Autor, Data wydania}>
Wypożyczenia =<{Nr_czyt, I, N, A, Nr_ks, Autor, Tytuł, Data_w}
{ Nr_czyt, Nr_ks, I, N, Data, Autor, Tytuł, Data_w}
Książk i=<{(Nr_ks)T,A},
{Nr_ks,T,A}>
Czytelnicy =<{Nr_czyt, I, N, A},
{ Nr_czytI, N, A}>
Wypożyczenia = <{ Nr_czyt, Nr_ks, Data_w}
{
BIBLIOTEKA 1
Imię, Nazwisko, Adres, Data zapisu, Nr książki, ISBN, Tytuł, Autor, Wydawca, Miejsce wydania, Rok wydania, Data wypożyczenia, data zwrotu.
BIBLIOTEKA 2 ( do domu)
Imię, Nazwisko, Adres, Data zapisu, Nr książki, ISBN, Tytuł, Autor, Wydawca, Miejsce wydania, Rok wydania, kara za zwłokę, stawka za dzień, Data wypożyczenia, data zwrotu.
// ISBN - numer książki nadawany przez wydawnictwo, każda książka ma inny, symbol katalogowy//
TABELA CZYTELNICY=
<{Nr_czyt, Imię, Nazwisko, Adres},
{Nr_czyt Imię, Nazwisko, Adres}>
TABELA KSIĄŻKI=
<{Nr_ksiązki, ISBN, Autor, Tytuł, Wydawca, Miejsce_wyd, Rok_wyd},
{ Nr_ksiązkiISBN, Autor, Tytuł, Wydawca, Miejsce_wyd, Rok_wyd}>
{ISBN Autor, Tytuł, Wydawca, Miejsce_wyd, Rok_wyd}
TABELA WYPOŻYCZENIA=
<{Nr_czyt, Nr_książki, Data_wypożyczenia, Data_zwrotu, Il_dni, St_kary, Kwota_kary},
{ Nr_czyt, Nr_książki, Data_wypożyczenia Nr_czyt, Data_zwrotu, Il_dni, St_kary, Kwota_kary}>
{ Il_dni, St_karyKwota_kary}
Czy da się zrobić zestawienie zamówienia nowych książek? -
Nie da się ponieważ najpierw trzeba te książki kupić i nadać im nowy numer
Aby to było możliwe należy dokonać dekompozycji kategorii książki
//(dekomponujemy relacje lub schemat)
TABELA KSIĄZKI WYDANEJ =
<{ISBN ,Autor, Wydawca, nr_wyd, Rok_wydania, Tytuł}
TABELA KSIĄZKI KUPIONEJ =
<{Nr_książki ,ISBN}
Każdej książce o określonym ISBN nadajemy numer
Zadanie - napisać zapytanie do zamówień
Normalizacja- proces polegający na dekompozycji schematu relacji na dwie lub więcej relacji zgodnie z ustalonymi zależnościami między danymi
Dekompozycja - rozkład prowadzący do wyeliminowania anomalii w operowaniu danymi
POSTACIE NORMALNE (NORMAL FORM)
Relacja jest 1PN jeśli każdy jej atrybut ma wartości proste[skalarne, atomowe] (i każdy jej atrybut nie kluczowy jest funkcyjnie zależny od klucza głównego)
// wszystkie atrybuty złożone rozłożyć na proste
Relacja jest w 2 PN jest w 1PN i każdy atrybut niekluczowy jest w pełni funkcyjnie zależny od klucza głównego
// wartości atomowe muszą zależeć w pełni od całego klucza a nie zależeć od części
Jeśli klucz składa się z 1 atrybutu, czy jest on 2 PN? Jest bo w pełni zależy od atrybutu , nie ma innych zależności
Relacja jest w 3 PN jeśli jest w 2PN i każdy atrybut nie kluczowy jest bezpośrednio (a nie przechodnio) zależny od klucza głównego
// nie ma zależności atrybutów niekluczowych od części klucza
Przykład z zadania BIBLIOTEKA 2 - przypadek książki - klucz nr_książki zależy między atrybutami niekluczowymi -2PN
13
Kobieta
Mężczyzna
Powiązanie
Adam
Ewa
Rajscy
Mąż
Żona
Analiza zależności między danymi
Zbiór atrybutów
Wskazuje na wiersz a więc na wszystkie jego elementy
Zbiór zależności pomiędzy atrybutami
Imię Nazwisko Adres
Autor, Tytuł