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



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

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

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

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

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

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

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

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

Technologie baz danych

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

Bazy Danych i Usługi Sieciowe

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

Bazy Danych i Usługi Sieciowe

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

PL/SQL. Funkcje wbudowane

Bazy danych i usługi sieciowe

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

Materiały szkoleniowe. Podstawy języka SQL

Konstruowanie Baz Danych Wprowadzenie do projektowania. Normalizacja

Bazy danych Podstawy teoretyczne

Bazy danych. Plan wykładu. Złczenia tabel. Perspektywy cd. Wykład 9: Programowanie aplikacji baz danych po stronie serwera. Sekwencje Wyzwalacze

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH. Problemy w bazie danych Przykład sprowadzenia nieznormalizowanej SQL

Normalizacja. Pojęcie klucza. Cel normalizacji

Pojęcie zależności funkcyjnej

Zależności funkcyjne c.d.

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

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

Projektowanie relacyjnych baz danych

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

Funkcje analityczne SQL CUBE (1)

Cel normalizacji. Tadeusz Pankowski

Hurtownie danych - przegląd technologii

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

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

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Systemy baz danych. Notatki z wykładu

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

Język SQL. Rozdział 3. Funkcje wierszowe

Postać normalna Boyce-Codd (BCNF)

Normalizacja relacyjnych baz danych. Sebastian Ernst

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Normalizacja schematów logicznych relacji

Zależności funkcyjne

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

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

Projektowanie Systemów Informacyjnych

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

Tadeusz Pankowski Definicja. Definicja

Opera Wykorzystanie certyfikatów niekwalifikowanych w oprogramowaniu Opera wersja 1.1 UNIZETO TECHNOLOGIES SA

TECHNOLOGIE BAZ DANYCH

Standard SQL/XML. Wprowadzenie do XQuery

Pożyczkobiorcy. Anomalia modyfikacji: Anomalia usuwania: Konta_pożyczkowe. Anomalia wstawiania: Przykłady anomalii. Pożyczki.

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

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

Relacyjny model baz danych, model związków encji, normalizacje

Technologie baz danych

sqlplus [ użytkownik [ / hasło ] ]

PROWIZJE Menad er Schematy rozliczeniowe

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Bazy danych 3. Normalizacja baz danych

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków.

Bazy danych. Andrzej Łachwa, UJ, /15

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

Zbiór pytań nr 2. 1 Tabela DEPARTMENTS ma następującą strukturę:

Projektowanie baz danych

Jak wiernie odzwierciedlić świat i zachować występujące w nim zależności? Jak implementacja fizyczna zmienia model logiczny?

Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych. Andrzej Bąk

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

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

Plan wykładu. Elementy ERD BAZY DANYCH. Proces modelowania i implementacji bazy danych. Diagramy związków encji. SQL podzapytania

Bazy danych 1. Wykład 6 Metodologia projektowania baz danych. (projektowanie logiczne - Normalizacja)

Bazy danych. Andrzej Łachwa, UJ, /15

Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.

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

Przykłady wyrae uywanych w kwerendach i filtrach

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

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

Egzamin z baz danych 3 lutego 2012 Zadania i omówienie rozwi za«

Zasady transformacji modelu DOZ do projektu tabel bazy danych

stopie szaro ci piksela ( x, y)

Bazy danych. Zaliczenie. Literatura. Strony WWW. Wykáad 1: Wprowadzenie do baz danych

Bazy danych 2. Zależności funkcyjne Normalizacja baz danych

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

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

Bazy Danych egzamin poprawkowy, 2012 rozwiazania

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.

1 Wstęp do modelu relacyjnego

Metodydowodzenia twierdzeń

Wstp. Warto przepływu to

Sposoby przekazywania parametrów w metodach.

Zadanie 1. Suma silni (11 pkt)

Program Sprzeda wersja 2011 Korekty rabatowe

Transkrypt:

Plan wykáadu Bazy danych Wykáad 4: Relacyjny model danych - zale*noci funkcyjne. Maágorzata Krtowska Wydziaá Informatyki Politechnika Biaáostocka Deficja zale*noci funkcyjnych Klucze relacji Reguáy dotyczce zale*noci funkcyjnych Domknicie zbioru atrybutów 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áo*ony na schemat, dziki któremu mo*na wyeliminowaü jego niedoskonaáoci informacja o tym, w jaki sposób zapewniü speánienie warunków BCNF przez dekompozycj schematów relacyjnych SQL - funkcje cd. Záczenia zewntrzne. Bazy danych 2 Definicja zale*noci funkcyjnych Zale*noci funkcyjne Zale*noü funkcyjna: A 1 B Interpretacja: jeli dwie krotki relacji R s zgodne dla atrybutów A 1,,.., A n (tzn. obie krotki maj takie same wartoci skáadowych dla wymienionych atrybutów), to musz byü równie* zgodne w pewnym innym atrybucie B. Odczyt zapisu: A 1,..., A n okrelaj funkcyjnie B Jeli zbiór atrybutów A 1,..., A n okrela funkcyjnie wicej ni* jeden atrybut tzn. A 1 B 1 A 1 B 2 A 1 B 3 To taki zbiór zale*noci skrótowo przedstawiamy jako: A 1 B 1 B 2 B 3 Bazy danych 3 x y A Jeli x i y s zgodne dla atrybutów A A B B To musz byü zgodne równie* dla atrybutów B Bazy danych 4

Klucze relacji Atrybut lub zbiór atrybutów {A 1 } tworzy klucz relacji, jeli: wszystkie pozostaáe atrybuty relacji s funkcyjnie zale*ne od tych atrybutów => nie mo*e byü sytuacji, w której dwie ró*ne krotki relacji R zgodne dla wszystkich atrybutów A 1. Nie istnieje taki podzbiór wáaciwy zbioru {A 1 }, od którego pozostaáe atrybuty relacji R s zale*ne funkcyjnie, tzn. klucz musi byü minimalny Nadklucze Nadklucz - zbiór atrybutów, który zawiera klucz Ka*dy klucz jest nadkluczem Przykáady nadkluczy w relacji Film: (tytuá, rok, nazwisko Aktora, czas) (tytuá, rok, nazwisko Aktora, rodzaj) Klucze w diagramach E/R nie speániaj wymagania (2) Bazy danych 5 Bazy danych 6 Reguáy wykrywania kluczy w relacji Reguáa 1 Jeli relacja pochodzi z przeksztaácenia zbioru encji, to jej kluczem s atrybuty kluczowe tego zbioru encji Reguáa 2 (dotyczy zwizków binarnych) Jeli zwizek jest typu wiele do wiele, to klucze obu zbiorów encji objtych zwizkiem tworz zbiór atrybutów klucza R jeli zwizek ze zbioru encji E1 do zbioru encji E2 jest typu wiele do jeden, to atrybuty klucza E1 staj si kluczem R, ale atrybuty klucza E2 nie wchodz do klucza relacji R. Jeli zwizek jest typu jeden do jeden, to atrybuty klucza któregokolwiek ze zbiorów mog byü kluczem R. W tej sytuacji nie ma tylko jednego klucza. Klucze relacyjne i E/R Klucze w ERD s atrybutami encji Klucze w relacjach s atrybutami krotek Zazwyczaj, jedna krotka odpowiada jednej encji, wówczas idea jest taka sama W niewáaciwie skonstruowanych relacjach, jedna encja mo*e byü opisana przez kilka krotek, wówczas klucze w diagramach E/R i relacjach bd si ró*niáy. Bazy danych 7 Bazy danych 8

Reguáy dotyczce zale*noci funkcyjnych Zasady, które pozwalaj na zastpowanie zbioru zale*noci funkcyjnych zbiorami równowa*nymi lub na doáczanie do zbioru tych zale*noci, które wynikaj ze zbioru pocztkowego. Zasady podziaáu i áczenia Reguáa podziaáu Zale*noü funkcyjn A 1 B 1 B 2... B m mo*emy zastpiü zbiorem zale*noci funkcyjnych A 1 B i, gdzie i=1,2,...,m Wyró*niamy nastpujce reguáy: reguáa áczenia reguáa podziaáu reguáa przechodnioci Reguáa áczenia Zbiór zale*noci funkcyjnych A 1 B i, gdzie i=1,2,...,m mo*emy zastpiü pojedyncz zale*noci funkcyjn A 1 B 1 B 2... B m Bazy danych 9 Bazy danych 10 Zale*noci trywialne Domknicie zbioru atrybutów Zale*noü funkcyjna A 1 B jest trywialna, jeli B jest równe któremu z A tytuá rok tytuá Mówimy, *e zale*noü A 1 B 1 B 2... B m jest: trywialna - jeli zbiór záo*ony z atrybutów typu B jest podzbiorem zbioru atrybutów typu A nietrywialna - jeli co najmniej jeden z atrybutów typu B znajduje si poród atrybutów A caákowicie nietrywialna - jeli *aden z atrybutów typu B nie znajduje si poród atrybutów typu A Atrybuty, które wystpuj równoczenie z prawej i lewej strony zawsze mo*na pominü po prawej tronie, std prawdziwe jest twierdzenie (reguáa zale*noci trywialnych) Zale*noü funkcyjna A 1 B 1 B 2... B m jest równowa*na zale*noci A 1 C 1 C 2... C K, gdzie C s tymi elementami z B, które nie s równe A. Bazy danych 11 Zaáo*enia: {A 1,..., A n } - zbiór atrybutów S - zbiór zale*noci funkcyjnych Domkniciem zbioru {A 1,..., A n } nad zbiorem zale*noci S nazywamy taki zbiór atrybutów B, *e jeli pewna relacja R speánia wszystkie zale*noci ze zbioru S, to speánia tak*e zale*noü A 1... A n B, a zatem zale*noü A 1... A n B wynika z S. Domknicie zbioru atrybutów {A 1,..., A n } oznaczamy przez {A 1,..., A n } +. Bazy danych 12

Algorytm obliczania domknicia zbioru atrybutów {A 1,..., A n } Przykáad Niech X oznacza nazw zbioru domknicia. Na pocztku X= {A 1,..., A n }. Znajdujemy tez wszystkie zale*noci funkcyjne postaci B 1 B 2...B m C gdzie B 1 B 2...B m nale* do zbioru X, a C nie nale*y. Wówczas doáczamy C do zbioru X. X + Y B Nowy X + Powtarzamy krok 2 tak dáugo, jak dáugo nie bdzie mo*na doáczyü do X *adnego nowego atrybutu. Jeli ju* *adnego atrybutu nie mo*na doáczyü do X, to znaczy, *e otrzymalimy domknicie zbioru {A 1,..., A n } + Bazy danych 13 Bazy danych 14 Cel Domknicie i klucze Majc dane domknicie zbioru atrybutów {A 1,..., A n } mo*emy sprawdziü, czy dana zale*noü funkcyjna wynika ze zbioru zale*noci S. Jeli B nale*y do {A 1,..., A n } + to oznacza, *e wynika z S. A 1 B Zbiór {A 1,..., A n } + zawiera wszystkie atrybuty relacji R wtedy i tylko wtedy, gdy elementy A 1,..., A n s nadkluczem w R. Stwierdzenie, czy atrybuty A 1,..., A n stanowi klucz relacji, mo*e polegaü na sprawdzeniu: czy wszystkie atrybuty R nale* do zbioru {A 1,..., A n } + czy X + otrzymane z dowolnego X, który utworzymy przez usunicie choüby jednego elementu sporód A 1,..., A n, nie zawiera wszystkich atrybutów R Przykáad: Relacja Filmy(tytuá, rok, czas, rodzaj, nazwastudia, adresstudia) Uzasadniü, *e kluczem jest zbiór (tytuá, rok) tytuá rok nazwastudia nazwastudia adresstudia Bazy danych 15 Bazy danych 16

Reguáa przechodnioci Reguáa przechodnioci umo*liwia kaskadowe áczenie zale*noci: jeli w relacji R zachodz zale*noci A 1 B 1 B 2... B m oraz B 1 B 2... B m C 1 C 2...C k, to w relacji R zachodzi tak*e zale*noü A 1 C 1 C 2...C k. Uzasadnienienie powy*szej reguáy => wyliczenie domknicia {A 1,,..., A n } +. Plan wykáadu 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áo*ony na schemat, dziki któremu mo*na 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 17 Bazy danych 18 Anomalie 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 mo*e powodowaü usunicie wa*nej informacji z bazy danych Dekompozycja relacji 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 ka*dej krotki t bie*cej instancji relacji R pobieramy wartoci atrybutów {B 1, B 2,..., B m } i tworzymy w ten sposób krotk relacji S. Je*eli 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 19 Bazy danych 20

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 ka*dej nietrywialnej zale*noci A 1 B, zbiór {A 1 } jest nadkluczem R Jeli proces dekompozycji bdziemy powtarzaü dostatecznie dáugo, to ka*da 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 mo*liwoü dokáadnego odtworzenia pierwotnej relacji, na podstawie relacji utworzonych przez wielokrotne dekompozycje. Strategia dekompozycji: Dane: relacja R z zale*nociami funkcyjnymi ZF Znalezienie pewnej nietrywialnej zale*noci 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 21 Bazy danych 22 Dekompozycja R do postaci BCNF Projektowanie zale*noci 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áo*enia: w wyniku dekompozycji relacji R powstaje relacja S oraz jeszcze inna relacja. F - zbiór zale*noci funkcyjnych prawdziwych w R Aby wyznaczyü zbiór zale*noci funkcyjnych prawdziwych w S, nale*y rozwa*yü wszystkie podzbiory X atrybutów S i dla ka*dego wyznaczyü X +. Jeli atrybut B speánia nastpujce warunki B nale*y do S B nale*y do X + B nie nale*y do X, to zale*noü funkcyjna X B jest speániona w relacji S R Bazy danych 23 Bazy danych 24

Problem Trzecia postaü normalna Wystpuje jedna struktura zale*noci funkcyjnych, która mo*e powodowaü problem w trakcie dekompozycji. AB C i C B Przykáad: Relacja Zamówienia A - tytuá filmu; B - miasto, gdzie znajduje si kino; C - nazwa kina, w którym wywietlany jest film; Wyodrbniamy tutaj nastpujce zale*noci funkcyjne: kino miasto tytuá miasto kino Klucze {tytuá, miasto} {kino, tytuá} 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 zale*noci nietrywaln, to albo {A 1 } jest nadkluczem albo B jest elementem pewnego klucza. W przykáadzie: Klucze: {tytuá, miasto} i {kino, tytuá} Relacje: kino miasto i tytuá miasto kino Czy relacja jest w 3NF? zale*noü funkcyjna kino miasto nie speánia postaci normalnej BCNF ale speánia 3NF, poniewa* miasto jest elementem klucza. Bazy danych 25 Bazy danych 26 SQL Funkcje konwersji Funkcje cd Záczenia zewntrzne 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 Bazy danych 27 Bazy danych 28

Funkcja TO_CHAR konwersja dat SQL> SELECT TO_CHAR(SYSDATE,'DAY,DD MONTH YYYY') FROM DUAL ; TO_CHAR(SYSDATE,'DAY,DDMONTHYYYY -------------------------------- PITEK,21 PA'DZIERNIK 2005 SQL> SELECT TO_CHAR(SYSDATE,'HH:MI:SS') FROM DUAL ; TO_CHAR( -------- 02:06:30 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 29 Funkcja TO_CHAR konwersja liczb SQL> SELECT TO_CHAR(SAL, '$9,999') FROM EMP; TO_CHAR ------- $800 $1,600 $1,250 $2,975 Formaty dla liczb: Wzorzec Znaczenie PrzykáDG 9 Pozycja cyfry liczba 99999 1234 dziewiwhnrnuh OD szerokoüz\ ZLHWODQLD 0 WyZLHWODQL]HU 099999 001234 wiodf\fk $ Ruchomy znak dolara $99999 $1234. Pozycja kropki dziesiwqhm 99999.99 1234.00 Bazy danych 30 Funkcja TO_NUMBER i TO_DATE SQL> SELECT EMPNO, ENAME,JOB,SAL FROM EMP WHERE SAL>TO_NUMBER('1500'); EMPNO ENAME JOB SAL ---------- ---------- --------- ---------- 7499 ALLEN SALESMAN 1600 7566 JONES MANAGER 2975 7698 BLAKE MANAGER 2850 7782 CLARK MANAGER 2450 SQL> SELECT EMPNO, ENAME, HIREDATE FROM EMP WHERE HIREDATE=TO_DATE ('GRUDZIEÑ 17, 1980','MONTH DD,YYYY'); EMPNO ENAME HIREDATE ---------- ---------- -------- 7369 SMITH 80/12/17 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 - umo*liwia warunkow realizacj zapyta, gdy* dziaáa na zasadzie typu case czy if-then-else z innych jzyków. DECODE(wyra*enie, wyr1, wynik1, [wyr2, wynik2,...] wynik domylny) Uwagi: wyra*enie mo*e byü dowolnego typu wartoü wyr musz byü takiego samego typu jak wyra*enie Bazy danych 31 Bazy danych 32

Funkcja DECODE Funkcja DECODE SQL>SELECT ENAME, JOB, DECODE(JOB, 'CLERK','PRACOWNIK', 'MANAGER', 'SZEF', ' ') àumaczenie T FROM EMP; ENAME JOB TàUMACZEN ---------- --------- --------- SMITH CLERK PRACOWNIK ALLEN SALESMAN WARD SALESMAN JONES MANAGER SZEF SQL> SELECT GRADE, DECODE(GRADE, 1, '15%', 2, '10%', 4 3, '8%', 5 '5%') BONUS 6 FROM SALGRADE; GRADE BON ---------- --- Bazy danych 33 1 15% SQL> SELECT GRADE, DECODE(GRADE, 1, '15%', 2, '10%', 3, '8%', '5%') BONUS FROM SALGRADE; GRADE BON ---------- --- 1 15% 2 10% 3 8% 4 5% 5 5% Bazy danych 34 Inne funkcje NVL (wyra*enie1, wyra*enie2) - zmienia wartoü NULL w pierwszym argumencie na wartoü2 GREATEST (wartoü1, wartoü2,...) - zwraca najwiksz wartoü z listy LEAST(wartoü1, wartoü2,...) - zwraca najmniejsz wartoü sposród podanych argumentów Záczenia zewntrzne SELECT wyra*enia FROM tabele WHERE warunki áczce tabele [inne warunki] Dziaáanie: wywietlane s wiersze speániajce warunki záczenia SQL> select ename, dept.deptno, dname from emp, dept where emp.deptno=dept.deptno and dept.deptno in (30,40); ENAME DEPTNO DNAME ---------- ---------- -------------- ALLEN 30 SALES WARD 30 SALES MARTIN 30 SALES BLAKE 30 SALES TURNER 30 SALES JAMES 30 SALES Bazy danych 35 Bazy danych 36

Záczenia zewntrzne W jaki sposób wywietliü równie* informacje o departamencie 40, w którym nikt nie pracuje? SQL> select ename, dept.deptno, dname from emp, dept where emp.deptno (+) =dept.deptno and dept.deptno in (30,40); ENAME DEPTNO DNAME ---------- ---------- -------------- ALLEN 30 SALES BLAKE 30 SALES MARTIN 30 SALES JAMES 30 SALES TURNER 30 SALES WARD 30 SALES 40 OPERATIONS Departament 40 zostaá powizany z wierszem tabeli EMP zawierajcym same wartoci NULL (mimo, *e taki wiersz w tabeli naprawd nie istnieje) àczenie rozszerzone uzyskuje si za pomoc tzw. operatora zewntrznego áczenia (+). Powinien byü on umieszczany po tej stronie warunku áczcego, która dotyczy tabeli z niepeán informacj. Bazy danych 37 Powizanie tabeli samej ze sob Powizanie tabeli samej ze sob jest mo*liwe dziki zastosowaniu aliasu tabeli. Warunek áczenia odbywa si w taki sposób, jakby to byáy dwie oddzielne tabele: FROM tabela alias1 tabela alias2 Przykáad: Wybraü pracowników, którzy zarabiaj mniej od swoich kierowników. Wypisaü nazwiska i zarobki pracowników i ich kierowników. SQL> select e.ename emp_name, e.sal emp_sal, m.ename mgr_name, m.sal mgr_sal from emp e, emp m where e.mgr=m.empno and e.sal<m.sal; EMP_NAME EMP_SAL MGR_NAME MGR_SAL ---------- ---------- ---------- ---------- SMITH 800 FORD 3000 ALLEN 1600 BLAKE 2850 WARD 1250 BLAKE 2850 JONES 2975 KING 5000 MARTIN 1250 BLAKE 2850 Bazy danych 38