Wprowadzenie do Baz Danych

65
Wprowadzenie do Baz Danych Wojciech Gańcza

description

Wprowadzenie do Baz Danych. Wojciech Gańcza. Plan. Rodzaje danych Porównanie danych opisowych ze strukturalizowanym Pole, kolumna, tablica Indeksy Bazy zawierające więcej tabel – złączenia Widoki i zapytania (kwerendy) Czym są hurtownie danych Hierarchie drzewiaste XML - PowerPoint PPT Presentation

Transcript of Wprowadzenie do Baz Danych

Page 1: Wprowadzenie  do Baz Danych

Wprowadzenie do Baz DanychWojciech Gańcza

Page 2: Wprowadzenie  do Baz Danych

Plan Rodzaje danych Porównanie danych opisowych ze strukturalizowanym Pole, kolumna, tablica Indeksy Bazy zawierające więcej tabel – złączenia Widoki i zapytania (kwerendy) Czym są hurtownie danych Hierarchie drzewiaste XML Hierarchie wielokrotne i rozmyte

Page 3: Wprowadzenie  do Baz Danych

Rodzaje danych Różne informacje zapisujemy w różny sposób

stosując różne typy danych: Rozmiar ubrań określa się numerem Kolor – nazwą – ale z konkretnej grupy słów Tytuł książki – to tekst Numer telefonu – czy jest liczbą czy tekstem ? Data może być różnie zapisywana, ale zawsze

określa konkretny dzień. Nawet liczby mogą być różnego typu – całkowite,

rzeczywiste (z określoną lub nieokreśloną precyzją)

Page 4: Wprowadzenie  do Baz Danych

Rodzaje danych (2) To wszystko były proste informacje, a co jeśli mamy

do czynienia z informacjami bardziej złożonymi ? Jak zapisać informacje o osobie, samochodzie,

książce czy filmie? Informacje takie są mogą być zapisane na dwa

sposoby: Jako opis tekstowy Jako grupa prostych informacji z których każda opisuje

jakiś aspekt (imię, tytuł, ISBN, nazwisko reżysera itp..

Page 5: Wprowadzenie  do Baz Danych

Opis Opis tekstowy ma wiele zalet – potrafi oddać nastrój

i jest ograniczony jedynie inwencją osoby przygotowującej dane.

Ma też wady – trudno w nim znaleźć konkretną informację.

Jest subiektywny Może być niezrozumiały dla osoby która nie

specjalizuje się w dziedzinie jakiej dotyczy Trudno się go poprawia

Page 6: Wprowadzenie  do Baz Danych

Opis (2) Dane opisowe często się pojawiają tam gdzie trudno

określić strukturę danych. W ten sposób zapisuje się informacje o podjętych

metodach leczenia, zabiegach konserwatorskich czy opisach dzieł sztuki określających nie tylko ‘fizyczne’ cechy dzieła.

Format taki mają także opisy celów lub podejmowanych działań

Dane opisowe nie są proste do porównywania a ich automatyczne porównywanie jest niemożliwe

Page 7: Wprowadzenie  do Baz Danych

Dane złożone Dane możemy zapisać jako zestaw danych prostych. Przykłady: karta biblioteczna, dowód rejestracyjny,

dowód osobisty. Niestety takie opisy nie pozwalają na całkowite

poznanie opisywanego przedmiotu, ale dają się łatwo przetwarzać na komputerach

Tego typu opisy znakomicie sprawdzają się w statystyce, ekonomii, finansach

Nie są idealnym wyborem w przypadku dzieł sztuki

Page 8: Wprowadzenie  do Baz Danych

Podstawowe pojęcia Element opisu który jest prostą daną – nazywamy

polem. Mole musi mieć określony typ – wskazujący jakie dane mogą być w nim przechowywane, oraz nazwę – by można było określić o jaką część informacji chodzi.

Zbiór wszystkich pól które opisują pojedynczy element – to rekord.

Wszystkie rekordy tego samego typu (to znaczy zawierające takie same pola) tworzą tabelę

Pola o tej samej nazwie – to kolumna

Page 9: Wprowadzenie  do Baz Danych

Przykład tabeli Przykładów nie trzeba długo szukać – wystarczy

zajrzeć do dowolnego katalogu na komputerze – i zobaczymy spis informacji o każdym pliku: Jego nazwę Typ Ilość zajmowanego miejsca Datę utworzenia W niektórych systemach – także uprawnienia

Zwróćmy uwagę że te informacje mogą być różnie prezentowane

Page 10: Wprowadzenie  do Baz Danych

Programy Wiele programów pozwala na tworzenie baz danych:

MS Access (będziemy na nim pracować) MS SQL Server My SQL – darmowy, prosty serwer baz danych (linux,

windows) Baza danych programu MS Works Open Office Oracle – poważny serwer baz danych Postgress

Page 11: Wprowadzenie  do Baz Danych

Zadanie 1 Otwórz program MS Access Utwórz nową bazę danych Utwórz tabelę w której można zapisać zbiór

filmów Sprawdź jakie typy pól są przez program MS

Access obsługiwane.

Page 12: Wprowadzenie  do Baz Danych

Indeksy Dane powinny być przeglądane w określonej

kolejności (zazwyczaj nie w tej w jakiej były wprowadzane)

Sortowanie danych jest czasochłonne Można byłoby trzymać dane w postaci już

posortowanej – ale co zrobić jeśli potrzebujemy jednocześnie różne kolejności rekordów ?

Pomocne są tu indeksy – pamiętające kolejności rekordów

Page 13: Wprowadzenie  do Baz Danych

Indeksy (2) Można utworzyć wiele indeksów do jednej tabeli Indeksować można pojedyncze pola lub ich grupy Indeksy mogą także pilnować unikalności danych –

nie pozwalając dodać powtarzających się (w indeksie) danych

Nie trzeba wskazywać jaki indeks powinien być użyty – baza danych sama decyduje o ich stosowaniu (i zazwyczaj stosują je dobrze).

Dodanie indeksu zwiększa szybkość pracy.

Page 14: Wprowadzenie  do Baz Danych

Wiele tabel W naszej bazie filmów wiele informacji się powiela

– nazwisko reżysera, wytwórnia itp.. Wpisywanie tych samych danych nie ma sensu i

prowadzi do błędów Idealnie byłoby gdybyśmy mogli odnieść się do

danych już raz wpisanych Muszą to być dane które można uzupełniać – nie

może to być więc okrojony typ prosty – ale referencja do innej tabeli

Page 15: Wprowadzenie  do Baz Danych

Wiele tabel (2) Jeśli umieścimy dane w innej tabeli – to musimy się

do nich w jakiś sposób odwołać Jedynym rozwiązaniem jest podanie unikalnego

identyfikatora rekordu do którego się odwołujemy

Page 16: Wprowadzenie  do Baz Danych

Złączenia Złączenia (relacje) pozwalają określić jak tabele się

do siebie odwołują Zazwyczaj łączymy tabele korzystając z klucza

podstawowego określonego jako pole automatycznie numerowane (liczba całkowita)

Możemy połączyć wiele tabel. Bazy danych które korzystają z mechanizmu złączeń

określane są jako relacyjne bazy danych

Page 17: Wprowadzenie  do Baz Danych

Kolejne pojęcia Krotka (encja) – to grupa pól opisująca pojedynczy

element danych. Krotki są podstawowymi cegiełkami z których

budowane są dane. Dobrze jest jeśli rekord odpowiada krotce – nie ma

wtedy redundancji danych W praktyce – stosuje się to gdy nie ma

przeciwwskazań związanych z wydajnością

Page 18: Wprowadzenie  do Baz Danych

Zadanie 2 Dodaj do bazy tabelę Artyści zawierającą

dane aktorów i reżyserów W tabeli zawierającej filmy – dodaj pole

„reżyser” odwołujące się do nowej tabeli

Page 19: Wprowadzenie  do Baz Danych

Zapytania (kwerendy) Wyświetlanie tabel w całości nie jest specjalnie

użyteczne. W przypadku tabel złączonych – dobrze jest

wyświetlić informacje z pól obu tabel – na przykład tytuł filmu i nazwisko reżysera.

Do przygotowania takich widoków służą kwerendy czyli zapytania.

W programach bazodanowych zapytania formułuje się w języku SQL.

Page 20: Wprowadzenie  do Baz Danych

Kwerendy (2) W wielu programach zapytania może utworzyć

klikając myszką – bez konieczności wpisywania poleceń SQL

Zapytania mogą wybierać konkretne kolumny do wyświetlenia. Możliwe jest także: Filtrowanie Agregowanie Przeliczanie danych

Wyniki zapytań mogą być używane tak samo jak tabele.

Page 21: Wprowadzenie  do Baz Danych

Zadanie 3 Dodaj zapytanie które wyświetli tytuły

filmów i ich reżyserów – posortowane po tytułach.

Page 22: Wprowadzenie  do Baz Danych

Kwerendy (3) Kwerendy pozwalają na różne spojrzenia na dane Jeśli przygotujemy tabelę zawierającą słownik (na

przykład angielsko – polski) – to możemy zbudować dwa zapytania które zwrócą słownik polsko-angielski i angielsko-polski (oba odpowiednio posortowane)

Jakakolwiek zmiana danych – jest od razu widoczna w wynikach zapytań

Dla wyników zapytań nie można stosować indeksów.

Page 23: Wprowadzenie  do Baz Danych

Kwerendy (4) Stosowanie zapytań ma wiele zalet – ale program

musi przeglądać wiele tabel by zbudować odpowiedź.

Jeśli w zapytaniu agregujemy dane lub je przeliczamy – to obliczenia są wykonywana za każdym razem gdy żądamy wyników.

W przypadku bardzo dużych ilości danych – jest to bardzo nieefektywne

Lepiej pamiętać w bazie już przeliczone wartości

Page 24: Wprowadzenie  do Baz Danych

Hurtownie danych W hurtowniach danych wszystkie potrzebne dane są

obliczone i gotowe do użycia Dane w hurtowniach mają dużą redundancje ale są

dostępne Dane są pamiętane w.g. pewnych hierarchii –

związanych z grupowaniem Hierarchie przypominają katalogi znane z systemu

operacyjnego – zawsze wiadomo do jakiego elementu wyższego rzędy należy bieżący element.

Page 25: Wprowadzenie  do Baz Danych

Hurtownie danych (2)

Page 26: Wprowadzenie  do Baz Danych

Zadanie 4 Dodaj do bazy filmów tabelę na kategorie

filmów i wpisz przykładowe kategorie Stwórz hierarchię kategorii – tak by jedna

kategoria mogła zawierać inne

Page 27: Wprowadzenie  do Baz Danych

Drzewa hierarchii Łatwo przygotować hierarchię drzewiastą która

pozwala na: Przypisanie do każdej kategorii Przypisanie tylko do kategorii końcowych

Może to wymagać dodania relacji do nowych tabel, lub autorelacji do tabeli kategorii

Może też komplikować zapytania jeśli będziemy chcieli wyświetlać także podhierarchie przy wyszukiwaniu danych

Page 28: Wprowadzenie  do Baz Danych

Hierarchie drzewiaste Takie hierarchie często spotyka się w życiu:

Klasyfikacja roślin Klasyfikacja filmów w wideotece (półkami) Hierarchia pracowników w zakładzie pracy

W wielu przypadkach są one naturalne, ale nie wszędzie. Podobnie jak nie zawsze baza złożona z tabel ma sens.

Czasem dane dotyczące pojedynczego elementu mają strukturę drzewiastą

Page 29: Wprowadzenie  do Baz Danych

XML Jeśli dane mają bardziej złożoną strukturę – to

możemy użyć skomplikowanego modelu relacyjnego albo…

Użyć innego typu bazy danych: Bazy obiektowej Bazy wiedzy

Bazy wiedzy – pozwalają na miękką definicje poszczególnych rekordów – poszczególne rekordy mogą mieć różną strukturę (różny zestaw pól)

Page 30: Wprowadzenie  do Baz Danych

XML (2) Wydawałoby się, że trudno nad tym zapanować – ale

możemy zapisać dane postaci dokumentu XML W tym formacie – wszystkie dane pamiętane są jako

tekst, ale dodana jest do niech struktura przy pomocy znaczników – podobnych trochę do znaczników języka HTML

Dowolny element danych może zawierać dowolne inne elementy – nie jest tu jednak dozwolona rekurencja

Page 31: Wprowadzenie  do Baz Danych

HML (3)

Page 32: Wprowadzenie  do Baz Danych

Hierarchie wielokrotne Często musimy określić kilka wartości według

których klasyfikujemy dane W przypadku filmów – jak zaklasyfikować komedię

kryminalną? Jako komedie w kategorii kryminałów czy raczej jako kryminał w kategorii komedii?

Pomocne są hierarchie wielokrotne – pozwalające na przypisanie wielu cech do jednego elementu

Ale jak to zrealizować w praktyce?

Page 33: Wprowadzenie  do Baz Danych

Zadanie 5 Dodaj tabelę pozwalającą na połączenie filmu

i kategorii tak by stworzyć relację wiele – do wielu

Dodaj zapytanie wyświetlające wyłącznie komedie

Page 34: Wprowadzenie  do Baz Danych

Hierarchie wielokrotne Możemy oczywiście połączyć możliwość

przypisania do wielu elementów hierarchii wraz z możliwości budowania hierarchii drzewiastych

Wartościami elementów hierarchii mogą być wartości które nie są konkretnymi wartościami (takie jak kilka, trochę, mało, średnio) – tworząc atrapę hierarchii rozmytej

Prawdziwe hierarchie rozmyte – są jak na razie domeną AI

Page 35: Wprowadzenie  do Baz Danych

Pojęcie bazy rozproszonej Poszczególne bazy można byłoby

zintegrować tak by stworzyć jedną wspólną bazę.

Można to zrobić przez wyznaczenia jednego serwera i skopiowanie danych

Lub przez stworzenie katalogu elementów zawierającego informację: w jakich bazach znajdują się szczegółowe dane

Page 36: Wprowadzenie  do Baz Danych

Architektura bazy rozproszonej

Page 37: Wprowadzenie  do Baz Danych

Podział danych Dane w poszczególnych bazach mogą mieć

taką samą strukturę, a jedynie różną zawartość (na przykład dane bibliotek zawierających opisy posiadanych książek)

Mogą również zawierać dane na różnym stopniu szczegółowości (na przykład dane osobowe)

Page 38: Wprowadzenie  do Baz Danych

Powody podziału danych Podział danych powinien być naturalny Dane najczęściej używane powinny być

przechowywane lokalnie i dostępne przez lokalny serwer bazy danych

Dostęp do danych globalnych wymaga obciążenia wielu serwerów oraz sieci

Page 39: Wprowadzenie  do Baz Danych

Fragmentacja pozioma Poszczególne bazy mają taką samą

architekturę, lecz różnią się zawartością Pozy mogą być połączone przez dodanie

rekordów (UNION) Istnieje kryterium selekcji pozwalające

stwierdzić czy rekord znajduje się w bazie lokalnej

Page 40: Wprowadzenie  do Baz Danych

Fragmentacja pozioma (2)

Page 41: Wprowadzenie  do Baz Danych

Fragmentacja pionowa Każdy fragment stanowi podzbiór atrybutów

logicznych całej kolekcji danych Każdy fragment musi zawierać klucz główny Scalenie bazy – poprzez złączenie 1:1 Pozwala na ukrycie części danych przed

użytkownikami lokalnymi i współbieżną modyfikacje danych

Page 42: Wprowadzenie  do Baz Danych

Fragmentacja pionowa (2)

Page 43: Wprowadzenie  do Baz Danych

Fragmentacja mieszana

Page 44: Wprowadzenie  do Baz Danych

Przyszłość Coraz więcej danych jest dostępnych w

postaci elektronicznej Dane są przetwarzane automatycznie w coraz

bardziej skomplikowany sposób Pojawiają się nowe metody zarządzania

danymi Lepiej tego nie przegapić

Page 45: Wprowadzenie  do Baz Danych

Formułowanie zapytańW bazach danychWojciech Gańcza

Page 46: Wprowadzenie  do Baz Danych

Zapytanie Zapytanie (kwerenda) - czynność polegająca

na zbieraniu lub poszukiwaniu informacji w bazach danych

Zapytanie może być formułowane różnie w zależności od rodzaju serwera który przeszukujemy

Zapytania tworzone są w specjalnych językach zapytań

Page 47: Wprowadzenie  do Baz Danych

SQL Język SQL jest najbardziej popularnym

językiem zapytań Obecnie wszystkie języki pozwalają na użycie

języka SQL. Doczekał się on standardu z którym serwery

baz danych są dość dobrze zgodne Znając podstawy SQL możemy pracować na

dowolnym serwerze baz danych

Page 48: Wprowadzenie  do Baz Danych

SQL(2) Język ten obecnie jest traktowany jako język

programowania choć stworzony powstał jako interface użytkownika.

W dzisiejszych czasach więcej się wymaga od komputerów niż od użytkowników więc większość serwerów udostępnia interface pozwalający na budowę zapytań przy w prostszy sposób (np. Konstruktor kwerend w programie MS Access)

Page 49: Wprowadzenie  do Baz Danych

Przykładowa baza

Id Klinta Nazwisko Klienta Imię Klienta Telefon

Klienta Miasto Klienta

01 Nowak Jan 3752669 Wrocław

02 Kowalski Tadeusz 3865738 Kluczbork

03 Mucha Stanisław 5647890 Wrocław

04 Kozłowski Lech 6759870 Wrocław

05 Lewandowska Anna 4509679 Oleśnica

06 Kozłowski Andrzej 0978654 Wrocław

Page 50: Wprowadzenie  do Baz Danych

Przykład zapytania Szukam numerów telefonów moich klientów

z Wrocławia SELECT Nazwisko Klienta, Imię Klienta,

Telefon KlientaFROM KlienciWHERE Miasto Klienta = "Wrocław"ORDER BY Nazwisko Klienta, Imię Klienta

Page 51: Wprowadzenie  do Baz Danych

Składniki zapytania SQL SELECT – wybiera pola do wyświetlenia FROM – definiuje tabele lub zestaw tabel

(łączonych operatorem JOIN) WHERE – pozwala na podanie warunków

jakie mają spełniać wyświetlane rekordy ORDER BY – podaje kolejność w jakiej

rekordy będą wyświetlane. Sortowanie odbywa się po wymienionych polach

Page 52: Wprowadzenie  do Baz Danych

Składniki polecenia SQL (2) GROUP BY – pozwala na agregację danych.

Jeśli nie chcemy wyświetlać rekordów a jedynie zbiorcze dane (na przykład ilość abonentów w poszczególnych miastach) – możemy określić według zawartości których pół nastąpi grupowanie

HAVING – działa jak WHERE, ale na polach wyliczonych przez agregację

Page 53: Wprowadzenie  do Baz Danych

Przykład zapytania SELECT count(*) as Liczba, Miasto Klienta

FROM KlienciGROUP BY Miasto KlientaHAVING count(*) < 10

Zapytanie zwraca listę miejscowości mających mniej niż 10 wpisów w tablicy abonentów

Page 54: Wprowadzenie  do Baz Danych

Zapytania Pracując z różnymi systemami nie musimy

znać ich wewnętrznej budowy oraz sposobu pamiętania danych w tabelach

W większości wypadków poszukiwań podajemy jedynie warunki jakie mają spełniać poszukiwane elementy

Page 55: Wprowadzenie  do Baz Danych

Zapytania - przykłady

Poszukiwanie plików na dysku komputera (eksplorator windows)

Poszukiwanie artykułów w sieci (http://www.google.pl/)

Wyszukiwanie książek w bibliotece (http://www.bu.uni.wroc.pl/katalog/)

Page 56: Wprowadzenie  do Baz Danych

Wyszukiwarki Większość wyszukiwarek udostępnia kilka

interfejsów Prosty – pozwalający na określenie czego i

ewentualnie gdzie szukamy Zaawansowany – pozwalający na skonstruowanie

zapytań zawierających bardziej złożone warunki Każda wyszukiwarka zawiera instrukcję

obsługi (Pomoc, Help, Manual)

Page 57: Wprowadzenie  do Baz Danych

Wyrażenia Porównanie – wykonywane jest domyślnie.

Jeśli podamy słowo – poszukiwane będą rekordy lub dokumenty zawierające podane słowo

Jeśli umieścimy w zapytaniu kilka słów – będą one traktowane jak zbiór warunków a nie fragment tekstu

Page 58: Wprowadzenie  do Baz Danych

Wyrażenia (2) AND (+) – wymusza występowanie obu słów

(często jest to domyślny operator i nie trzeba go pisać)

OR– musi wystąpić co najmniej jedno słowo NOT (-) – dokumenty zawierające podane

słowo nie będą wyświetlane NEAR – słowa podzielone tym operatorem

musza występować blisko siebie

Page 59: Wprowadzenie  do Baz Danych

Wyrażenia (3) „ … ” – ciąg tekstów będzie traktowany jak

pojedynczy warunek – porównywane jest cały tekst

Do budowy bardziej komplikowanych wyrażeń można używać nawiasów. Wyrażenia w nawiasach traktowane są jak pojedyncze wyrażenie

Page 60: Wprowadzenie  do Baz Danych

Wyrażenia regularne Jeśli nie znamy dokładnie wyrażenia którego

szukamy, można użyć wyrażeń regularnych zawierających tzw. symbole wieloznaczne. * - zastępuje dowolny ciąg znaków ? – zastępuje dowolny jeden znak

Znaki używane jako wieloznaczniki są różne w zależności od języka zapytań. Często dostępne są także inne symbole

Page 61: Wprowadzenie  do Baz Danych

Przykłady zapytań Ala ma kota oraz psa – szukacz znajdzie

dokumenty, w których występują wszystkie słowa. "Ala ma kota" oraz psa – Szukacz znajdzie

dokumenty, w których występuje fraza Ala ma kota oraz występują oba pozostałe słowa.

Ala ma kot* – Jak wyżej, ale słowo zakończone gwiazdką może wystąpić z dowolną końcówką. Gwiazdkę w pytaniu można umieścić na końcu słowa zawierającego co najmniej trzy litery lub cyfry.

Page 62: Wprowadzenie  do Baz Danych

Przykłady zapytań (2) Ala ma [kota kotka koty kotki] – Szukacz znajdzie

dokumenty, w których na pewno występuje Ala oraz ma i w których występuje co najmniej jedno ze słów z wnętrza nawiasu (którekolwiek).

Ala ma [kota kotka koty kotki] [psa psy psów] – Szukacz znajdzie dokumenty, w których występują pierwsze dwa słowa i w których występuje co najmniej po jednym ze słów z wnętrza każdego z nawiasów.

Page 63: Wprowadzenie  do Baz Danych

Google

Page 64: Wprowadzenie  do Baz Danych

Biblioteka

Page 65: Wprowadzenie  do Baz Danych

Explorator MS Windows