Wprowadzenie do Baz Danych

Slides:



Advertisements
Podobne prezentacje
INSTRUKCJA KORZYSTANIA Z KATALOGU ON-LINE
Advertisements

Indeksy w bazie danych Oracle
INDEKSY I SORTOWANIE ZEWNĘTRZNE
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
WPROWADZENIE DO BAZ DANYCH
MS Access 2003 Kwerendy Paweł Górczyński.
MS Access 2000 Kwerendy Piotr Górczyński 25/08/2001.
MS Access 2000 Normalizacja Paweł Górczyński 2005.
MS Access 2000 Tworzenie bazy danych Piotr Górczyński 2005.
Kwerendy –wszystkie typy (usuwające, aktualizujące i inne)
Budowa i funkcje elektronicznego katalogu biblioteki szkolnej
Kwerendy, formularze, relacje, raporty i makra
OPERATORY WYSZUKIWAWCZE
Support.ebsco.com EBSCOhost Wyszukiwanie podstawowe dla Bibliotek akademickich Szkolenie.
SQL-owskie szlaki górskie
BD-LAB6 Wojciech Pieprzyca
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Modele baz danych - spojrzenie na poziom fizyczny
Google – sposoby wyszukiwania
Zadania Bazy danych.
Teoria relacyjnych baz danych
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Strategia skutecznego szukania informacji w Internecie
MS ACCESS Kwerendy.
Podstawy programowania
Wyszukiwanie Informacji Na Stronach WWW
Temat 19: Organizacja informacji w bazie danych – część 2.
Bazy danych podstawowe pojęcia
Temat 19: Organizacja informacji w bazie danych – część 1.
Budowanie tabel i relacji
Prezentacja i szkolenie
Bazy danych.
Informatyka Relacyjne bazy danych.
Bazy danych Access 200x Ćwiczenie 1.
SQL - Structured Query Language
JAK SZUKAĆ W KATALOGU KOMPUTEROWYM?
Zarządzanie informacją
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Wybrane zagadnienia relacyjnych baz danych
Wyprowadzanie informacji z bazy danych - kwerendy wybierające Marzena Nowakowska Katedra Informatyki Stosowanej, WZiMK, PŚk.
Operacje edycyjne w bazie danych - kwerendy funkcjonalne Marzena Nowakowska Katedra Informatyki Stosowanej, WZiMK, PŚk.
Komendy SQL do pracy z tabelami i bazami
Bazy danych Microsoft access 2007.
Temat 12: Formularze.
Projektowanie stron WWW
Michał Krawczykowski kl. IIIB
Definiowanie kluczy w tabelach RBD
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
PHP + MySQL Podstawy pracy z bazą danych Damian Urbańczyk.
1. Logowanie z usługą Active Directory. a) logowanie do domeny Windows 2003 Server odbywa się znacznie szybciej niż w poprzednich wersjach. b) nie ma odwołania.
Komendy SQL do pracy z danymi
Bazy danych Podstawy relacyjnych baz danych Autor: Damian Urbańczyk.
Projektowanie postaci formularza:
BAZY DANYCH MS Access.
TEMAT: ACCESS - KWERENDY.
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
Microsoft® Office Word
„Filtry i funkcje bazodanowe w EXCELU”
Do czego służy arkusz kalkulacyjny, jego budowa
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Moduł ECDL-AM5 Bazy danych, poziom zaawansowany Tabele, relacje.
Prezentacja programu PowerPoint
Temat: Tworzenie bazy danych
Strukturalny język zapytań SQL - historia
Czym są i jak służą społeczeństwu?
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

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 Hierarchie wielokrotne i rozmyte

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

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

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

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

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

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

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

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

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.

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

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.

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

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

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

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ą

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

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.

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.

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

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.

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

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.

Hurtownie danych (2)

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

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

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ą

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)

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

HML (3)

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?

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

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

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

Architektura bazy rozproszonej

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)

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

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

Fragmentacja pozioma (2)

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

Fragmentacja pionowa (2)

Fragmentacja mieszana

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

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

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ń

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

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)

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 04 Kozłowski Lech 6759870 05 Lewandowska Anna 4509679 Oleśnica 06 Andrzej 0978654

Przykład zapytania Szukam numerów telefonów moich klientów z Wrocławia SELECT Nazwisko Klienta, Imię Klienta, Telefon Klienta FROM Klienci WHERE Miasto Klienta = "Wrocław" ORDER BY Nazwisko Klienta, Imię Klienta

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

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ę

Przykład zapytania SELECT count(*) as Liczba, Miasto Klienta FROM Klienci GROUP BY Miasto Klienta HAVING count(*) < 10 Zapytanie zwraca listę miejscowości mających mniej niż 10 wpisów w tablicy abonentów

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

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/)

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)

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

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

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

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

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.

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.

Google

Biblioteka

Explorator MS Windows