1 / 65

Wprowadzenie do Baz Danych

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

elijah
Download Presentation

Wprowadzenie do Baz Danych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Wprowadzenie do Baz Danych Wojciech Gańcza

  2. 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

  3. 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ą)

  4. 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..

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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.

  12. 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

  13. 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.

  14. 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

  15. 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

  16. 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

  17. 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ą

  18. 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

  19. 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.

  20. 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.

  21. Zadanie 3 • Dodaj zapytanie które wyświetli tytuły filmów i ich reżyserów – posortowane po tytułach.

  22. 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.

  23. 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

  24. 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.

  25. Hurtownie danych (2)

  26. 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

  27. 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

  28. 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ą

  29. 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)

  30. 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

  31. HML (3)

  32. 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?

  33. 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

  34. 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

  35. 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

  36. Architektura bazy rozproszonej

  37. 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)

  38. 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

  39. 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

  40. Fragmentacja pozioma (2)

  41. 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

  42. Fragmentacja pionowa (2)

  43. Fragmentacja mieszana

  44. 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ć 

  45. Formułowanie zapytańW bazach danych Wojciech Gańcza

  46. 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ń

  47. 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

  48. 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)

  49. Przykładowa baza

  50. 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

More Related