• Nie Znaleziono Wyników

Bazy Danych

N/A
N/A
Protected

Academic year: 2021

Share "Bazy Danych"

Copied!
28
0
0

Pełen tekst

(1)

Wprowadzenie do Informatyki

Bazy Danych

mgr inż. Michał Grygierzec mgry@agh.edu.pl

http://home.agh.edu.pl/~horzyk/lectures/pi/ahdydpiwykl10.html

(2)

WDI – Bazy Danych

Agenda:

1) Wstęp

2) Relacyjne bazy danych – teoria

3) Relacyjne bazy danych – praktyka 4) NoSQL

5) Eksploracja danych

6) AAI

(3)

Bazy Danych - Zastosowania

Sektor finansowy

Sektor publiczny

Marketing

Wojsko

Ośrodki badawcze

Telekomunikacja

Social media

...

(4)

Bazy Danych - definicja

BAZA DANYCH:

Kolekcja danych, istniejących przez długi czas.

Zarządzana za pomocą systemu DBMS (ang.

DataBase

Management System)

(5)

Bazy Danych - wymagania

(6)

WDI – Klasy dostępności...

Typ systemu Czas niedostępności

w roku Dostępność Klasa

dostępności

Unmanaged 50000 min 90% 1

Managed 5000 min 99% 2

Well Managed 500 min 99,9% 3

Fault Tolerant 50 min 99,99% 4

High-Availability 5 min 99,999% 5

Very-High- Availability

30 s 99,9999% 6

Ultra-Availability 3 s 99,99999% 7

Tab. 1 Klasy dostępności systemów informatycznych.

(7)

Bazy Danych – opis

Główne założenia i cechy:

Złożone są z wielu powiązanych ze sobą tablic (relacji).

Tablice są w postaci dwuwymiarowej (krotki x kolumny).

Wszystkie wartości oparte są na prostych typach danych (int, float, text, datetime, money, ...).

Schemat relacji: R(A1, …, An)

Rekord (komponent relacji)

Egzemplarz relacji (zestaw krotek)

Rys. 1 Relacja

Operacje wykonywane są w oparciu o algebrę relacji.

Język zapytań baz danych – SQL

(8)

Bazy Danych – model relacyjny

Model relacyjny:

1) Struktura danych

2) Operacje na danych (elementy manipulacyjne) 3) Więzy danych (integralność)

place_no place_town place_country

1 Manchester England

2 Edinburgh Scotland

3 Salzburg Austria

Tab. 2 Tabela dwuwymiarowa – zbiór

(9)

Bazy Danych – klucze

Klucz:

1) Kandydujący – taki zestaw atrybutów, że dwie krotki w egzemplarzu relacji nie mogą mieć tych samych wartości we wszystkich atrybutach klucza

2) Główny - Jeśli relacja (tabela) posiada jeden klucz kandydujący, to staje się on automatycznie kluczem głównym. W przeciwnym wypadku trzeba dokonać wyboru.

3) Obcy - Klucz obcy jest zbiorem atrybutów jednej relacji (tabeli) i wskazuje wartości klucza kandydującego innej lub tej samej relacji (tabeli).

place_no place_town place_country

1 Manchester England

2 Edinburgh Scotland

3 Salzburg Austria

Tab. 2 Tabela z kluczem głównym place_no.

(10)

Bazy Danych – anomalie

Anomalie:

1) Nadmiarowość (redundancja) 2) Anomalie aktualizacji

3) Anomalie usuwania

tytuł rok długość gatunek nazwaStudio nazwiskoGwiazdy

Gwiezdne wojny 1977 124 SF Fox Carrie Fisher

Gwiezdne wojny 1977 124 SF Fox Mark Hamill

Gwiezdne wojny 1977 124 SF Fox Harrison Ford

Tab. 2 Tabela zawierająca anomalie.

(11)

Bazy Danych – normalizacja

Normalizacja:

Pozwala uniknąć anomalii

Dekomponuje tabelę na pomniejsze relacje

Tab. 2 Tabele po dekompozycji

tytuł rok nazwiskoGwiazdy

Gwiezdne wojny 1977 Carrie Fisher Gwiezdne wojny 1977 Mark Hamill Gwiezdne wojny 1977 Harrison Ford

Może przyczynić się do pogorszenia

wydajności dla bardzo złożonych danych

tytuł rok długość gatunek nazwaStudio Gwiezdne wojny 1977 124 SF Fox

(12)

Bazy Danych - SQL

SQL – (ang. Structured Query Language) to deklaratywny,

strukturalny język zapytań. Sposób pobierania i przechowywania danych wybierany jest przez DBMS. Podzbiory zapytań:

SQL DML (ang. Data Manipulation Language – „język manipulacji danymi”),

SQL DDL (ang. Data Definition Language – „język definicji danych”),

SQL DCL (ang. Data Control Language – „język kontroli nad danymi”),

SQL DQL (ang. Data Query Language – „język definiowania

zapytań”).

(13)

Bazy Danych – SQL - DML

SQL DML – przeznaczony do manipulacji danymi. Najważniejsze polecenia:

INSERT – umieszcza dane w tabeli

UPDATE – zmienia dane w tabeli

DELETE – usuwa dane z tabeli

(14)

Bazy Danych – SQL - DDL

SQL DDL – umożliwia operowanie na strukturach bazy danych (bazy, tabele, indeksy, kolumny).

Najważniejsze polecenia:

CREATE – tworzy odpowiednie struktury

DROP – usuwa odpowiednie struktury

ALTER – zmienia odpowiednie struktury

(15)

Bazy Danych – SQL - DCL

SQL DCL – zarządzanie uprawnieniami w bazie danych. Najważniejsze polecenia:

GRANT – nadawanie uprawnień

REVOKE – odbieranie (usuwanie) uprawnień

DENY – zabranianie dostępu

(16)

Bazy Danych – SQL - DQL

SQL DQL – odpytywanie bazy danych. Najważniejsze słowa kluczowe:

SELECT (DISTINCT)

FROM

WHERE

ORDER BY

GROUP BY

HAVING

AVG, MIN, MAX, COUNT, SUM

(17)

WDI – NOSQL

NOSQL – (ang. Not Only SQL) bazy nie relacyjne (nie operują na tabelach).

Alternatywa dla baz relacyjnych

Różne modele danych (key-value, graph, documents,...)

Wykorzystywane w problemach BigData i nowoczesnych aplikacjach webowych

Popularne ze względu na łatwość projektowania,

użytkowania, skalowalność horyzontalną, lepszą

kontrolę nad dostępnością

(18)

WDI – Eksploracja Danych

Eksploracja danych (ang. data mining) - to

metodologia przeszukiwania danych (zwykle baz danych) w celu wydobycia wiedzy (czyli

odpowiednio powiązanych ze sobą informacji) z eksplorowanego zbioru danych.

Wobec tego eksploracja danych jest

interdyscyplinarną dziedziną łączącą techniki uczenia maszynowego, rozpoznawania i klasyfikacji wzorców, statystyki, baz danych, sztucznej inteligencji oraz

wizualizacji w celu uzyskania informacji z dużych baz

danych.

(19)

WDI – Eksploracja Danych

W danych mogą występować tzw. punkty

(obserwacje) oddalone (ang. outliers) zwane też czasami artefaktami danych (ang.

artefacts) - które są pewnymi skrajnymi

wartościami znajdującymi się blisko granic

zakresu danych i występują w dużym oddaleniu od pozostałych danych lub są sprzeczne z

ogólnym trendem pozostałych danych.

(20)

WDI – Zadania eksploracji danych I

Opis - znalezienie metod opisu wzorców i trendów, jakie występują w danych, celem ich wyjaśnienia i zwiększenia przejrzystości.

Klasyfikacja - to proces przyporządkowania obiektów do klas bazując na cechach obiektów obserwacji. W klasyfikacji istnieje pewna jakościowa zmienna celu, która decyduje o przyporządkowaniu obiektu. Zwykle obiekty pewnej klasy mają pewną ilość cech podobnych i to decyduje o sklasyfikowaniu - poprawnym

przyporządkowaniu obiektu do klasy. Algorytm klasyfikujący może też uczyć się takiego przyporządkowania na podstawie pewnego zbioru uczącego poprawnych przyporządkowań.

Grupowanie (klasteryzacja, ang. clustering) - oznacza grupowanie obiektów (rekordów, obserwacji) w klasy podobnych obiektów, które łączy pewna ilość wspólnych lub podobnych cech. Grupowanie od klasyfikacji różni się tym, że w przypadku grupowania nie ma określonej zmiennej celu, nie ma też podanego żadnego zbioru uczącego, wg którego takie grupowanie miałoby się odbywać. W procesie grupowania zasadnicze znaczenie odgrywa relacja podobieństwa

stosowana do różnych cech lub ich kombinacji, która zwykle decyduje o sposobie pogrupowania obiektów. W bardziej zaawansowanych procesach grupowania mogą zostać wykorzystane również inne relacje grupujące.

(21)

WDI – Zadania eksploracji danych II

Szacowanie (estymacja) - to zagadnienie podobne do klasyfikacji za wyjątkiem zmiennej celu, która jest numeryczna, a nie jakościowa.

Modele są budowane za pomocą "pełnych rekordów" zawierających wartości zarówno zmiennej celu jak i zmiennych estymacji. Następnie dla nowych obserwacji, szacuje się wartość zmiennej celu, opierając się na wartościach opisujących.

Przewidywanie (predykcja) - to zagadnienie podobne do klasyfikacji i szacowania za wyjątkiem faktu, iż w przewidywaniu wynik dotyczy

przyszłości.

Odkrywanie reguł (ang. association rules) - polega na szukaniu, które atrybuty "są powiązane ze sobą" najczęściej na podstawie analizy

podobieństw (ang. affinity analysis). Odkrywanie reguł może też

przybierać postać różnych reguł asocjacji danych, które mogą być nie

tylko relacjami podobieństwa, ale również antagonizmu, zawierania,

dopełnienia, następstwa, sąsiedztwa itp.

(22)

Wstępne przetwarzanie danych

Zmienne (dane) mają na ogół bardzo różne zakresy, więc może istnieć pewna trudność w ich porównywaniu czy dokonywaniu obliczeń na nich tak, żeby

pewne dane nie zdominowały tego procesu. Dlatego dane bardzo często są najpierw normalizowane lub standaryzowane przed dokonaniem na nich obliczeń:

Normalizacja min-max (ang. min-max normalization) określa jak bardzo wartość pola jest większa od wartości minimalnej i skalowanej na zakres zmienności danych:

X* = [X - min(X)] / [max(X) - min(X)]

Standaryzacja (ang. Z-score standardization) polega na obliczeniu różnicy pomiędzy daną wartością pola i średnią wartością pola oraz przeskalowaniu tej różnicy przez odchylenie standardowe wartości pól:

X* = [X - średnie(X)] / odchylenie_standardowe(X)

(23)

AAI

AAI – (ang. Associative Artifficial Intelligence)

AGDS - (ang. Associative Graph Data

Structures) asocjacyjne grafowe struktury danych

Ciekawa alternatywa dla relacyjnych baz danych

Efektywna eksploracja danych

(24)

Relational DB → AGDS

Rys. 2 Transformacja relacyjnej

bazy danych do postaci AGDS.

(25)

Bibliografia - literatura

Jeffrey D. Ullman, Jennifer Widom: Podstawowy kurs systemów baz danych, Helion, Gliwice, 2011

Thomas Connolly, Carolyn Begg: Systemy baz danych, tom 1 i 2, Wydawnictwo RM, Warszawa, 2004

Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom: Systemy baz danych. Pełny wykład, WNT, Warszawa, 2006

Chris J. Date: Relacyjne bazy danych dla praktyków, Wydawnictwo Helion, Gliwice, 2006

Joe Celko: SQL zaawansowane techniki programowania, Wydawnictwo Naukowe PWN, Warszawa, 2008

D. T. Larose, Odkrywanie wiedzy z danych. Wprowadzenie do eksploracji danych, PWN, 2006

Data Mining

K. J. Cios, W. Pedrycz, R. W. Swiniarski, L. A. Kurgan, A Knowledge Discovery Approach, Springer, 2007

Wikipedia - internetowa wolna encyklopedia

(26)

Bibliografia - odnośniki

Wikipedia - internetowa wolna encyklopedia

https://class.stanford.edu/courses/DB/2014/SelfPaced/about - solidne podstawy, ciekawe zadania

http://sqlzoo.net - tutoriale, zadania

http://db-engines.com/en/ - przegląd systemów baz danych (nie tylko SQL!): Oracle, SQL Server, PostgreSQL, MongoDB, CouchDB,

ArangoDB, Cassandra, Riak, Titan, …

http://msdn.microsoft.com/en-us/library/ms143432.aspx - ograniczenia (rozmiar bazy, liczba kolumn, itp.)

https://www.coursera.org/

https://www.edx.org/

http://ocw.mit.edu/index.htm

https://www.codeschool.com/ - technologie webowe

(27)

Dziękuję za uwagę!

mgry@agh.edu.pl

(28)

Źródła zewnętrzne:

Tab. 1:

https://pl.wikipedia.org/wiki/Dost%C4%99pno

%C5%9B%C4%87_%28niezawodno%C5%9B

%C4%87%29

Rys. 1:

https://pl.wikipedia.org/wiki/Model_relacyjny#

mediaviewer/File:Relational_model_concepts_PL.

png

Cytaty

Powiązane dokumenty

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,

Recordset - obiekt reprezentujący cały zbiór rekordów z tabeli w bazie danych lub z wyniku zapytania na tabelach bazy danych. W danej chwili dostęp jest tylko do jednego