Bazy danych. Plan wykładu. Dekompozycja relacji. Anomalie. Wykład 5: Projektowanie relacyjnych schematów baz danych. SQL - funkcje grupujce

Podobne dokumenty
Bazy danych. Plan wykáadu. Zale*noci funkcyjne. Wykáad 4: Relacyjny model danych - zale*noci funkcyjne. A B

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

PL/SQL. Funkcje wbudowane

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Bazy danych. Plan wykładu. Podstawy modeli relacyjnych. Diagramy ER. Wykład 3: Relacyjny model danych. SQL

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

Technologie baz danych

Bazy danych. Plan wykáadu. Proces modelowania i implementacji bazy danych. Elementy ERD

Funkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe

Język SQL. Rozdział 3. Funkcje wierszowe

Bazy danych. Plan wykáadu. Powtórzenie BCNF i 3NF. Nowa forma redundancji. Wykáad 6: Postaci normalne. SQL - zapytania záo*one.

Bazy danych. Plan wykładu. Definicja zalenoci funkcyjnych. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne.

Technologie baz danych

Funkcje. Rozdział 3. Funkcje. Funkcje znakowe (1) Funkcje wierszowe

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Bazy danych. Plan wykładu. Operacje w algebrze relacji. Pojcie algebry relacji. Wykład 8: Algebra relacji. SQL - cd

Systemy GIS Tworzenie zapytań w bazach danych

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH

Zagadnienia podstawowe

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Konstruowanie Baz Danych Wprowadzenie do projektowania. Normalizacja

Bazy danych Podstawy teoretyczne

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Przykłady wyrae uywanych w kwerendach i filtrach

osiągnął długość podaną jako drugi parametr. Jeśli wynik jest dłuższy niż zadeklarowana długość, zostaje ucięty z prawej strony.

Bazy danych SQL. Wstp. SQL (Structured( Query Language) strukturalny jzyk zapyta

PLAN WYKŁADU BAZY DANYCH ZALEŻNOŚCI FUNKCYJNE

Podstawowe zapytania SELECT (na jednej tabeli)

Bazy Danych i Usługi Sieciowe

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy Danych i Usługi Sieciowe

Język SQL. Rozdział 3. Zaawansowana selekcja danych

Oracle PL/SQL. Paweł Rajba.

Zależności funkcyjne c.d.

Bazy danych i usługi sieciowe

Projektowanie relacyjnych baz danych

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:

SQL (ang. Structured Query Language)

Bazy danych SQL Server 2005

Pojęcie zależności funkcyjnej

Przydatne sztuczki - sql. Na przykładzie postgres a.

Bazy danych. Plan wykładu. Przetwarzanie zapyta. Etapy przetwarzania zapytania. Wykład 12: Optymalizacja zapyta. Etapy przetwarzanie zapytania

IV Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 1 kwietnia 2016

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Normalizacja. Pojęcie klucza. Cel normalizacji

SQL do zaawansowanych analiz danych część 1.

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

Zadania do wykonaj przed przyst!pieniem do pracy:

Autor: Joanna Karwowska

Widok Connections po utworzeniu połączenia. Obszar roboczy

Funkcja INITCAP. SQL> select initcap(dname), initcap(loc) from dept; Funkcja SUBSTR

BAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

PL/SQL. Część 1 Oracle SQL. Piotr Medoń

Autor: Joanna Karwowska

Przestrzenne bazy danych Podstawy języka SQL

Bazy danych 7/15. Andrzej Łachwa, UJ,

Normalizacja relacyjnych baz danych. Sebastian Ernst

RELACYJNE BAZY DANYCH TEORIA. Bazy danych to uporzdkowany zbiór informacji z okrelonej dziedziny lub tematyki przeznaczony do wyszukiwania

Wprowadzenie do języka SQL

Bazy danych - Materiały do laboratoriów IV

Typy bazy danych Textract

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra

Relacyjne bazy danych. Podstawy SQL

PROWIZJE Menad er Schematy rozliczeniowe

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Bazy danych 3. Normalizacja baz danych (c.d.)

Wykład 8 Implementacja języka SQL w systemach baz danych Oracle specyficzne konstrukcje i funkcje Oracle SQL, funkcje numeryczne, znakowe, daty i

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Bazy danych Teoria projektowania relacyjnych baz danych. Wykła. Wykład dla studentów matematyki

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Materiały szkoleniowe. Podstawy jzyka SQL. Prowadzcy Anna Pijanowska - Kunierz Paweł ołnierczyk

Zależności funkcyjne pierwotne i wtórne

Baza danych - Access. 2 Budowa bazy danych

Tabela SPRZEDAŻ WYCIECZEK

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 2 POZIOM PODSTAWOWY. 1. x y x y

Bazy danych. Plan wykładu. Metody organizacji pliku rekordów. Pojcie indeksu. Wykład 11: Indeksy. Pojcie indeksu - rodzaje indeksów

Bazy danych Język SQL część 1 Wykład dla studentów matem

Zależności funkcyjne

Bazy danych 3. Normalizacja baz danych

Instrukcja obsługi programu Pilot PS 5rc

TECHNOLOGIE BAZ DANYCH

Ref. 7 - Język SQL - polecenia DDL i DML

Relacyjne bazy danych. Podstawy SQL

Bazy danych. Andrzej Łachwa, UJ, /15

Cel normalizacji. Tadeusz Pankowski

Technologie baz danych

Postać normalna Boyce-Codd (BCNF)

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Microsoft SQL Server Podstawy T-SQL

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Transkrypt:

Plan wykładu Bazy danych Wykład 5: Projektowanie relacyjnych schematów baz danych. SQL - funkcje grupujce Małgorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl Proces dobrego projektowania relacyjnego schematu bazy danych: szczegółowy opis problemów, które wynikaj przy tworzenu schematu przedstawienie metody dekompozycji, która polega na podziale schematu relacji (zbioru atrybutów) na dwa mniejsze schematy opis postaci normalnej Boyce a-codda (BCNF) czyli taki warunek nałoony na schemat, dziki któremu mona wyeliminowa jego niedoskonałoci informacja o tym, w jaki sposób zapewni spełnienie warunków BCNF przez dekompozycj schematów relacyjnych SQL cd Bazy danych (studia dzienne) 2 Anomalie Dekompozycja relacji Anomalie - problemy, jakie powstaj, gdy próbujemy do pojedynczej relacji włczy zbyt wiele danych redundancja - dane niepotrzebnie powtarzaj si w kilku krotkach anomalie modyfikacji - sytuacje, w których warto zostaje zmodyfikowana w jednej krotce, a w innej nie anomalie usuni - usunicie krotki moe powodowa usunicie wanej informacji z bazy danych Dekompozycja relacji - sposób eliminowania wymienionych anomalii przez podział atrybutów relacji R midzy dwa schematy nowych relacji. Relacj R o schemacie {A 1 } dekomponujemy midzy dwie relacji S i T o schematach odpowiednio {B 1, B 2,..., B m } i {C 1, C 2,..., C k } według nastpujcych zasad: {A 1 } = {B 1, B 2,..., B m } {C 1, C 2,..., C k } Krotki relacji S powstaj przez rzutowanie wszystkich krotek relacji R na zbiór atrybutów {B 1, B 2,..., B m }, tzn. z kadej krotki t biecej instancji relacji R pobieramy wartoci atrybutów {B 1, B 2,..., B m } i tworzymy w ten sposób krotk relacji S. Jeeli z relacji R otrzymamy kilka jednakowych krotek w relacji S, w S umieszczamy tylko jedn kopi. W podobny sposób uzyskuje si krotki relacji T. Bazy danych (studia dzienne) 3 Bazy danych (studia dzienne) 4

Posta normalna Boyce a-codda Dekompozycja do postaci BCNF Posta normalna Boyce a-codda (BCNF) - warunek, którego spełnienie zapewnia, e w schemacie nie wystpuj omówione wczeniej anomalie. Relacja R jest w postaci normalnej BCNF wtedy i tylko wtedy, gdy dla kadej nietrywialnej zalenoci A 1 B, zbiór {A 1 } jest nadkluczem R Jeli proces dekompozycji bdziemy powtarza dostatecznie długo, to kada otrzymana relacja bdzie si składała z kolekcji podzbiorów atrybutów, które: bd schematami relacji w postaci BCNF dane z pierwotnej relacji bd wiernie reprezentowane w relacjach powstałych w wyniku dekompozycji => bdzie istniała moliwo dokładnego odtworzenia pierwotnej relacji, na podstawie relacji utworzonych przez wielokrotne dekompozycje. Strategia dekompozycji: Dane: relacja R z zalenociami funkcyjnymi ZF Znalezienie pewnej nietrywialnej zalenoci funkcyjnej {A 1 } {B 1, B 2,..., B m }, która narusza warunek BCNF (tzn. {A 1 } nie jest nadkluczem). Wyliczenie dopełnienia zbioru atrybutów {A 1 } +. Dopełnienie zawiera wszystkie atrybuty, gdy {A 1 } jest nadkluczem. Bazy danych (studia dzienne) 5 Bazy danych (studia dzienne) 6 Dekompozycja R do postaci BCNF Projektowanie zalenoci funkcyjnych Zamie relacj R na relacje o schematach: R 1 = {A 1 } + R 2 = (R-{A 1 } + ) {A 1 } R2 R 1 R-X + X X + -X Załoenia: w wyniku dekompozycji relacji R powstaje relacja S oraz jeszcze inna relacja. F - zbiór zalenoci funkcyjnych prawdziwych w R Aby wyznaczy zbiór zalenoci funkcyjnych prawdziwych w S, naley rozway wszystkie podzbiory X atrybutów S i dla kadego wyznaczy X +. Jeli atrybut B spełnia nastpujce warunki B naley do S B naley do X + B nie naley do X, to zaleno funkcyjna X B jest spełniona w relacji S R Bazy danych (studia dzienne) 7 Bazy danych (studia dzienne) 8

Problem Trzecia posta normalna Wystpuje jedna struktura zalenoci funkcyjnych, która moe powodowa problem w trakcie dekompozycji. AB C i C B Mówimy, e relacja jest w trzeciej postaci normalnej (3NF) wtedy i tylko wtedy, gdy jest spełniony nastpujcy warunek: jeli A 1 B jest zalenoci nietrywaln, to albo {A 1 } jest nadkluczem albo B jest elementem pewnego klucza. Bazy danych (studia dzienne) 9 Bazy danych (studia dzienne) 10 SQL Wyraenia arytmetyczne dla dat Funkcje operujce na datach Funkcje konwersji Funkcje polimorficzne Funkcje grupujce data + liczba - dodanie do daty pewnej liczby dni - wynikiem jest data data-liczba - odjcie od daty pewnej liczby dni - wynikiem jest data data-data - odjecie od daty innej daty, wynikiem jest liczba dni midzy nimi UWAGA: liczba moe by ułamkiem, wówczas do daty dodana zostanie odpowiednia liczba godzin, minut, sekund. Bazy danych (studia dzienne) 11 Bazy danych (studia dzienne) 12

Funkcja MONTHS_BETWEEN MONTHS_BETWEEN (data1, data2) - zwraca odstp pomidzy wyspecyfikowanymi datami wyraony w miesicach. Wynik dodatni, jeli data1 póniejsza od data2, lub ujemny w przeciwnym przypadku. Funkcja ADD_MONTHS ADD_MONTHS (data, n) - zwraca dat plus n miesicy kalendarzowych, n- całkowite, ale moe by ujemne. Jeli otrzymamy błdn dat (np. 30 lutego) wynikiem bdzie ostatnia sensowna data w otrzymanym miesicu. Bazy danych (studia dzienne) 13 Bazy danych (studia dzienne) 14 Funkcja NEXT_DAY NEXT_DAY(data1, dzie_tygodnia) - zwraca pierwsz po wskazanej dat, której dzie tygodnia jest taki jak wskazuje drugi argument. W argumencie podajemy numer lub nazw dnia tygodnia. Funkcja LAST_DAY LAST_DAY(data1) - wynikiem jest data ostatniego dnia w miesicu, do którego naley data1. Bazy danych (studia dzienne) 15 Bazy danych (studia dzienne) 16

Funkcja ROUND ROUND(data1) - wynikiem jest data1 ze wskanikiem godzinowym ustalonym na północ, jeli data1 wskazuje na godzin przed południem, lub na północ dnia nastpnego, gdy data1 wskazuje na godzin przed południem ROUND(data1, MONTH ) - wynikiem jest data pierwszego dnia miesica zawierajcego data1, gdy jest ona z pierwszej połowy miesica, lub pierwszego dnia nastpnego miesica w przeciwnym przypadku. ROUND(data1, YEAR ) - zaokrglenie do pierwszego dnia roku. Funkcja TRUNC TRUNC(data1, dokładno) - wynikiem jest data pierwszego dnia miesica zawierajcego data1, jeli dokładno jest MONTH lub pierwszego dnia roku, jeli dokładno jest YEAR. Bez drugiego argumentu funkcja powoduje usunicie składnika godzinowego z daty. Bazy danych (studia dzienne) 17 Bazy danych (studia dzienne) 18 Funkcje konwersji TO_CHAR (liczba data[,format ]) - zamiana liczby lub daty na cig znaków zgodny z formatem opisanym w parametrze format TO_NUMBER (tekst) - zamiana cigu znaków zawierajcych liczb na dan typu NUMBER TO_DATE( tekst, format ) - zamiana cigu znaków reprezentujcych dat w formacie opisanym w parametrze format na dan typu DATE Funkcja TO_CHAR konwersja dat Przykłady formatów dat: YYYY, YYY, YY, Y - 4, 3, 2,lub ostatnia cyfra roku MM - miesic MONTH - nazwa miesica DDD, DD, D - dzie roku, miesica lub tygodnia DAY - nazwa dnia tygodnia HH - godzina MI - minuta; SS - sekunda Bazy danych (studia dzienne) 19 Bazy danych (studia dzienne) 20

Formaty dla liczb: Funkcja TO_CHAR konwersja liczb Wzorzec Znaczenie Przykład 9 Pozycja cyfry liczba 99999 1234 dziewitek okrela szeroko wywietlania) 0 Wywietlani zer 099999 001234 wiodcych $ Ruchomy znak dolara $99999 $1234. Pozycja kropki dziesitnej 99999.99 1234.00 Funkcje polimorficzne Funkcja DECODE Funkcje polimorficzne - funkcje, które nie s zwizane ze szczególnym typem danych, działaj podobnie dla wielu rónych danych. DECODE - umoliwia warunkow realizacj zapyta, gdy działa na zasadzie typu case czy if-then-else z innych jzyków. DECODE(wyraenie, wyr1, wynik1, [wyr2, wynik2,...] wynik domylny) Uwagi: wyraenie moe by dowolnego typu warto wyr musz by takiego samego typu jak wyraenie Bazy danych (studia dzienne) 21 Bazy danych (studia dzienne) 22 Inne funkcje NVL (wyraenie1, wyraenie2) - zmienia warto NULL w pierwszym argumencie na warto2 GREATEST (warto1, warto2,...) - zwraca najwiksz warto z listy LEAST(warto1, warto2,...) - zwraca najmniejsz warto sposród podanych argumentów Funkcje grupowe Funkcje grupowe s przeznaczone do działania na grupach wierszy. Wynikiem działania funkcji grupowej jest pojedyncza warto dla całej grupy, a nie jedna warto dla kadego wiersza. Przykłady funkcji: AVG ([DISTINCT] wyraenie) COUNT ([DISTINCT] wyraenie) COUNT(*) MAX ([DISTINCT] wyraenie) MIN ([DISTINCT] wyraenie) STDDEV ([DISTINCT] wyraenie) SUM ([DISTINCT] wyraenie) VARIANCE ([DISTINCT] wyraenie) Wszystkie funkcje grupowe, z wyjtkiem count(*) ignoruj NULL. Bazy danych (studia dzienne) 23 Bazy danych (studia dzienne) 24

Zapytania grupujce SELECT lista pól FROM tabele WHERE warunki przed grupowaniem GROUP BY pola grupujce HAVING warunki po grupowaniu Zasady wykonania zapytania grupujcego Rozwa wszystkie kombinacje wierszy tabel wystpujcych w klauzuli FROM Do kadego wiersza zastosuj warunek WHERE Podziel wiersze na grupy Do kadej grupy zastosuj warunek w klauzuli HAVING Dla kadego wiersza reprezenujcego grup oblicz wartoci wyrae po SELECT Bazy danych (studia dzienne) 25 Bazy danych (studia dzienne) 26 Zapytania grupujce - ograniczenia Na licie wyboru polecenia SELECT uywajcego grupowania wolno umieszcza tylko te kolumny, które s przedmiotem działania klauzuli GROUP BY chyba, e wystpuj one wewntrz funkcji grupujacej. Kada kolumna lub wyraenie wystepujce na licie SELECT, nie objte funkcj grupow musi by przedmiotem grupowania klauzul GROUP BY. Bazy danych (studia dzienne) 27