• Nie Znaleziono Wyników

Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych

N/A
N/A
Protected

Academic year: 2021

Share "Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych"

Copied!
30
0
0

Pełen tekst

(1)

Treści multimedialne - kodowanie, przetwarzanie, prezentacja

Odtwarzanie treści multimedialnych

Andrzej Majkowski

(2)

TYTUŁ:

Bazy danych i SQL a ptaki polskie (Kto pyta nie błądzi)

AUTOR: Andrzej Ptasznik

(3)

Bazy danych są wszędzie

• Bazy danych są wszędzie

• Gromadzimy różne dane

• Zapotrzebowanie na gromadzenie danych stale rośnie

• W jakim celu gromadzimy dane??

• Wspieranie codziennej działalności

• Sprawozdawczość i archiwizacja

• Analiza, analiza, analiza!!!!!!!

(4)

Zacznij od … bazy

• Dziedzina problemu

• Technologia

• Projekt bazy danych

• Rejestracja danych

• Wykorzystanie bazy danych - analiza

(5)

Bazy danych opisują różne dziedziny

• Każda baza danych jest obrazem pewnej rzeczywistości(dziedziny problemu)

• Najczęściej wykorzystywane są bazy danych oparte na modelu relacyjnym

• Podstawą modelu relacyjnego jest pojęcie tabeli

• Wniosek : W relacyjnych bazach danych

odwzorowujemy dziedzinę problemu za

pomocą dwuwymiarowych tabel

(6)

Dziedzina problemu

Formułujemy problem :

Chcemy rejestrować obserwacje ptaków na obszarze Polski

Zadanie :

Zaprojektować odpowiednia bazę danych Krok pierwszy :

Rozpoznanie dziedziny problemu

(7)

Technologia

Do tworzenia bazy danych o nazwie

„PtakiPolskie” wykorzystamy technologię MS SQL Server 2012 Express Edition

Technologia dostępna darmowo nawet do zastosowań komercyjnych

MS SQL Server 2012 jest najczęściej

wykorzystywaną technologią przy

realizacji nowych projektów

(8)

Projektujemy bazę danych

Fakt 1 – Z rozpoznania dziedziny problemu wynika, że gatunki ptaków są łączone w rodziny a rodziny w rzędy

Struktura tabeli Struktura tabeli

Przykładowa zawartość Przykładowa

zawartość

Klucz podstawowy

Klucz

podstawowy Typy danychTypy danych

IdRzedu NazwaPL NazwaLac 1 blaszkodziobe Anseriformes 2 brodzace Ciconiiformes

3 nury Gaviiformes

4 pełnopłetwe Pelecaniformes 5 perkozy Podicipediformes

6 wróblowe Passeriformes

(9)

Projektujemy bazę danych cd.

Wymaganie : Rodziny ptaków są gromadzone w rzędy

IdRodziny NazwaPL NazwaLac IdRzedu

1 bocianowate Ciconiidae 2

2 czaplowate Ardeidae 4

3 drozdowate Turdidae 6

4 ibisowate Threskiornithidae 4

5 jaskółkowate Hirundinidae 6

6 jemiołuszkowate Bombycillidae 6

7 kaczkowate Anatidae 1

8 krukowate Corvidae 6

9 łuszczaki Fringillidae 6

10 nury Gaviidae 3

11 perkozy Podicipedidae 5

12 pliszkowate Motacillidae 6

13 sikory Paridae 6

14 skowronki Alaudidae 6

15 wróblowate Passeridae 6

Klucz obcy Klucz obcy

Wiersz z tabeli Rzedy

Wiersz z tabeli Rzedy

(10)

Projektujemy bazę danych cd.

(11)

Projektujemy bazę danych cd.

Fragment bazy danych opisujący podział

administracyjny w Polsce

(12)

Projektujemy bazę danych cd.

Baza danych do rejestracji obserwacji ptaków w Polsce

(13)

Język SQL - zapytania

• Na etapie projektu opisaliśmy problem przy pomocy tabel

• Korzystając z bazy danych realizujemy zapytania (przetwarzanie danych, łączenie tabel, obliczenia)

• W języku SQL do realizacji zapytań służy polecenie SELECT

• Polecenie SELECT umożliwia trzy typy realizacji zapytań:

• Zapytania proste

• Zapytania agregujące

• Zapytania wykorzystujące przetwarzanie

(14)

Zapytania proste

SELECT (Konstruktor wiersza wynikowego)

FROM (Skąd pobieramy dane – łączenie tabel)

WHERE (Filtrowanie – warunki selekcji)

ORDER BY (Porządkowanie wyniku

zapytania)

(15)

Zapytanie proste - przykład

Podstawową klauzulą polecenia Select jest FROM

From Gatunki JOIN Rodziny

ON Gatunki.IdRodziny=Rodziny.IdRodziny

Opisujemy połączenie niezbędnych tabel Opisujemy połączenie

niezbędnych tabel

Wynik połączenia Wynik połączenia

(16)

Zapytanie proste - przykład Dodajemy warunek selekcji :

From Gatunki JOIN Rodziny

ON Gatunki.IdRodziny=Rodziny.IdRodziny Where IdRzedu=5

Wynik po filtrowaniu Wynik po filtrowaniu

(17)

Zapytanie proste - przykład

Formułujemy wyrażenia konstruktora wiersza – budujemy postać tabeli wynikowej

Uwaga: dla każdego wiersza otrzymanego z przetwarzania FROM … WHERE budujemy jeden wiersz wyniku

Select Gatunki.NazwaPL+N'( łac.' +Gatunki.NazwaLac+')' as Gatunek, Rodziny.NazwaPL as Rodzina

From Gatunki JOIN Rodziny

ON Gatunki.IdRodziny=Rodziny.IdRodziny Where IdRzedu=5

Wynik po przetworzeniu

Wynik po przetworzeniu

(18)

Zapytanie proste - przykład

Dodatkowo, wynik można uporządkować według określonego kryterium

Select Gatunki.NazwaPL+N'( łac.' +Gatunki.NazwaLac+')' as Gatunek, Rodziny.NazwaPL as Rodzina

From Gatunki JOIN Rodziny

ON Gatunki.IdRodziny=Rodziny.IdRodziny Where IdRzedu=5

Order By Gatunek

Wynik po uporządkowaniu

Wynik po uporządkowaniu

(19)

Zapytania agregujące - przykład

Funkcje agregujące (wykonują obliczenia dla tabeli wynikowej) :

COUNT - zlicza ilość wierszy

SUM - sumuje wartości wyrażenia dla tabeli

AVG - oblicza wartość średniej arytmetycznej dla tabeli MIN - określa wartość minimalna wyrażenia

MAX - określa wartość maksymalna dla wyrażenia

Zastosowana, w konstruktorze wiersza, funkcja agregująca zwraca jeden

wiersz wynikowy niezależnie od ilości wierszy przekazanych do przetworzenia Select COUNT(*) as IleGatunkow

From Gatunki

(20)

Zapytania agregujące - przykład

Select Rodziny.NazwaPL as Rodzina, COUNT(*) As IleGatunkow

From Gatunki JOIN Rodziny ON Gatunki.IdRodziny=Rodziny.IdRodziny Group By Rodziny.NazwaPL

Having COUNT(*) BETWEEN 4 AND 10 Order By IleGatunkow DESC

Wynik zapytania Wynik zapytania

(21)

Grupowanie danych

Select Rodziny.NazwaPL as Rodzina, Gatunki.NazwaPL

From Gatunki JOIN Rodziny ON Gatunki.IdRodziny=Rodziny.IdRodziny

Rodzina Gatunek

bocianowate bocian biały bocianowate bocian czarny

sikory bogatka

sikory czarnogłówka

sikory czubatka

sikory modraszka

sikory sikora lazurowa

sikory sikora uboga

sikory sosnówka

ibisowate ibis kasztanowaty

ibisowate warzęcha

nury nur białodzioby

nury nur czarnoszyi

nury nur lodowiec

nury nur rdzawoszyi

jaskółkowate jaskółka brzegówka jaskółkowate jaskółka dymówka jaskółkowate jaskółka oknówka jaskółkowate jaskółka rudawa

Select Rodziny.NazwaPL as Rodzina, COUNT(*) As IleGatunkow From Gatunki JOIN Rodziny ON

Gatunki.IdRodziny=Rodziny.IdRodziny Rodzina IleGatunkow

Bocianowate 2

Sikory 7

Ibisowate 2

Nury 4

Jaskółkowate 4

(22)

Zapytania wykorzystujące przetwarzanie w oknie - analiza

Przygotowanie do analizy danych:

• Zdefiniowano dwa widoki w bazie danych

Widok „Lokalizacje”

Widok „Lokalizacje”

Widok „GatunkiPtakow”

Widok „GatunkiPtakow”

(23)

Zapytania – przetwarzanie w oknie

WITH DaneDoAnalizy AS (

Select Nazwisko+' '+Imie as Obserwator, Pesel,

Gmina, Powiat, Gatunek, Rodzina, Rzad, Ilosc,

Month(DataObserwacji) as Miesiac, Year(DataObserwacji) as Rok

From Obserwatorzy INNER JOIN Obserwacje

ON Obserwatorzy.idobserwatora = Obserwacje.Idobserwatora JOIN GatunkiPtakow On Obserwacje.IdGatunku=GatunkiPtakow.IdGatunku JOIN Lokalizacje ON Lokalizacje.IdGminy=Obserwacje.IdGminy

Where Wojewodztwo='Podlaskie' )

Select *

(24)

Zapytania – przetwarzanie w oknie

Przykładowa zawartość zbioru DaneDoAnalizy

(25)

Przetwarzanie w oknie

Funkcje :

-Agregujące (AUM, AVG, MIN, MAX, AVG …..)

-Funkcje szeregujące(rankingu) (ROW_NUMBER(), RANK, DENSE_RANK(),NTILE() )

-Funkcje pozycji (FIRST_VALUE() , LAST_VALUE() , LEAD(), LAG (), NEXT_VALUE())

-Funkcje analityczne (PERCENT_RANK(), PERCENTILE_CONT(), PERCENTILE_DISC())

Przetwarzanie w oknie – klauzula OVER

Dla każdego wiersza wyniku zapytania można stosować zbiór funkcji

działających na zdefiniowanym zbiorze danych

(26)

Przetwarzanie w oknie

Elementy definiowania okna Porządkowanie :

OVER (ORDER BY Kolumna)

Partycjonowanie

OVER (PARTITION BY Kolumna)

Definicja ramy okna (element ruchomy) OVER (ORDER BY Kolumna

ROWS BETWEEN UNBOUNDED PRECEDING

AND CURRENT ROW )

(27)

Przykład przetwarzania w oknie

Select Obserwator, Pesel,

Gmina, Powiat, Gatunek, Rodzina, Rzad, Ilosc, Miesiac, Rok,

Sum(Ilosc) OVER (Partition By Gmina) as IlewGminie,

Count(*) OVER (Partition BY Gatunek,Powiat) as IleObsGatunkuWPowiecie, sum(Ilosc) OVER (Partition BY Powiat,Rok,Miesiac

Order BY Miesiac

Rows Between unbounded Preceding and current row) as Narastająco From DaneDoAnalizy

(28)

Przykładowy wynik zapytania

(29)

Podsumowanie

Projekt bazy danych może opisywać dowolną dziedzinę problemu

Zapytania w języku SQL mogą działać według trzech podstawowych schematów

Zapytania proste – jeden wiersz wynikowy dla jednego wiersza uzyskane z frazy FROM … WHERE

Zapytania agregujące – jeden wiersz dla grupy wierszy (tracimy precyzje zapytania)

Przetwarzanie w oknie – jeden wiersz wynikowy dla jednego wiersza

uzyskane z frazy FROM … WHERE ale można wykorzystywać agregacje w oknie

(30)

Cytaty

Powiązane dokumenty

Pod względem szczegółowości uregulowań dotyczących rodziny szczególny charakter ma uchwalona W 1989 roku przez ONZ Konwencja o Prawach Dziecka i ogłoszona W 1982 roku

Otrzymany roztwór wlewa się powoli, mieszając do zlewki pojemności 250 ml zawierającej 5,2 ml stężonego kwasu solnego i 30 g pokruszonego lodu.. Podczas wkraplania temperatura

 Proces produkcji zapachu sterowany przez specjalną aplikację w telefonie - użytkownik może sam dostosować zapach do własnych preferencji. 

W neolicie, kiedy pojawiły się pierwsze techniki farbiarskie i człowiek prowadzi już osiadły tryb życia, to nadal kolor niebieski nie zostaje wykorzystany a dominują kolory

azotowy i miedź musiałem tylko dowiedzieć się, co oznaczają słowa „działa na”.. Wtedy zdanie zdanie „kwas azotowy działa na miedź” byłoby czymś więcej niż

• W światłowodzie współczynnik odbicia światła w płaszczu jest mniejszy niż w rdzeniu, co powoduje całkowite wewnętrzne odbicie promienia i teoretycznie

• Ocenić, co może się stać z populacją, jeśli siedlisko się zmieni. • Ustalić priorytety dla

stosunkowo szybko ukształtował się zespół autorów: ksiądz eugeniusz Breitkopf – od 1988 roku proboszcz wspólnoty parafialnej oraz eugeniusz skorwider i antoni steuer.. należą