TECHNOLOGIE BAZ DANYCH



Podobne dokumenty
Technologie baz danych

Autor: Joanna Karwowska

Autor: Joanna Karwowska

Technologie baz danych

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

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

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

Relacji między tabelami klucze obce. Schemat bazy danych, wczytanej z pliku create_tables.sql. Klucz obcy jako ograniczenie dla kolumny

Bazy danych - Materiały do laboratoriów IV

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

Materiały szkoleniowe. Podstawy języka SQL

Wprowadzenie do baz danych

Laboratorium Bazy danych SQL 3 1

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

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

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

PL/SQL. Funkcje wbudowane

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

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

Bazy Danych. Modele danych. Krzysztof Regulski WIMiIP, KISiM,

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

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

Podstawowe zapytania SELECT (na jednej tabeli)

Język SQL. Rozdział 3. Funkcje wierszowe

Przestrzenne bazy danych Podstawy języka SQL

3. Podzapytania, łączenie tabel i zapytań

SQL (ang. Structured Query Language)

SQL praca z tabelami 4. Wykład 7

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

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

Ćwiczenie 3 funkcje agregujące

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

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

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

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

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

Zadania z SQLa (MS SQL Server)

Systemy GIS Tworzenie zapytań w bazach danych

Funkcje analityczne SQL CUBE (1)

Autor: Joanna Karwowska

Transformacja modelu ER do modelu relacyjnego

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

Grupowanie i funkcje agregujące

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

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

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

Relacyjne bazy danych. Podstawy SQL

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Hurtownie danych - przegląd technologii

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

PODZAPYTANIE (SUBSELECT)

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

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

Wykład 8. SQL praca z tabelami 5

Utwórz klucz podstawowy relacji na podstawie unikalnego identyfikatora encji. podstawie kluczy podstawowych wiązanych relacji.

Podstawy języka SQL cz. 2

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

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

Relacyjne bazy danych. Podstawy SQL

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

- 307 W Oracle instrukcja SELECT Ename FROM Emp WHERE Empno=4567: [ ] zakłada blokadę do odczytu dla jednego wiersza tabeli Emp [ ] zakłada blokadę

Technologie baz danych

SQL - Structured Query Language. strukturalny język zapytań

Wykład 5. SQL praca z tabelami 2

Transformacja modelu EER do postaci relacyjnego modelu danych. Zbyszko Królikowski

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Grupowanie i funkcje agregacji. Grupowanie z użyciem rollup

Bazy Danych egzamin 9 luty, 2012 rozwiazania

Technologia informacyjna

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Rozpatrzymy bardzo uproszczoną bazę danych o schemacie

Grupowanie i funkcje agregacji

Przykładowa baza danych BIBLIOTEKA

Struktura bazy danych

Lista zadań nr Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000.

SQL do zaawansowanych analiz danych część 1.

Bazy Danych egzamin poprawkowy, 2012 rozwiazania

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

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

P o d s t a w y j ę z y k a S Q L

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Autor: Joanna Karwowska

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

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

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

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

EGZAMIN MATURALNY Z INFORMATYKI WYBRANE: ... (system operacyjny) ... (program użytkowy) ... (środowisko programistyczne)

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

TEST E.14 BAZY DANYCH

Zagadnienia podstawowe

Systemy informatyczne. Modelowanie danych systemów informatycznych

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

Lista zadań nr 1. Bazy danych laboratorium. dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Projektowanie Systemów Informacyjnych

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Transkrypt:

TECHNOLOGIE BAZ DANYCH WYKŁAD 3 Diagramy związków encji. Funkcje agregujące. (Wybrane materiały) Dr inż. E. Busłowska Copyright 2014-2015 E. Busłowska. 1 DIAGRAMY ZWIĄZKÓW ENCJI (DZE) Metoda graficznej prezentacji tabel i kolumn. Obrazują podstawowe składniki bazy danych i związki między nimi. Encja zbiór obiektów reprezentowanych za pomocą jednakowej struktury (odpowiednik tablicy w finalnej bazie danych). Atrybuty - charakteryzują encje. Związek - określa wzajemne powiązania między encjami. W DZE encje zazwyczaj są opisywane rzeczownikami, atrybuty przymiotnikami i rzeczownikami, natomiast związki czasownikami. Copyright 2014-2015 E. Busłowska. 2 Przyjęta konwencja zapisu relacji Proces projektowania DZE Analiza problemu, pojawiające się często rzeczowniki, sugerują encje, które powinny wystąpić w diagramie. Dla każdej encji identyfikuje się atrybuty. Wykryć użycie tej samej nazwy dla dwóch różnych encji albo użycie dwóch różnych nazw dla tej samej encji. Zidentyfikować atrybuty tworzące klucze. Encje - prostokąty Atrybuty Obowiązkowe (wartość musi być zawsze określona) poprzedzone kółkiem. Opcjonalne (atrybut nie musi mieć wartości) poprzedzone okręgiem. Unikalne identyfikatory dla encji lub wchodzące w jego skład poprzedzone #. Związki Opcjonalność oznaczona linią przerywaną. Stopień wiele" oznaczony kurzą stopką. Należące do unikalnych identyfikatorów oznaczone poprzeczną kreską. Copyright 2014-2015 E. Busłowska. 3 Copyright 2014-2015 E. Busłowska. 4 Związki i ich symbole Oznaczenia: Jeden do jeden Jeden do wielu Związki jeden do jeden dla każdej instancji (przypadku) jednej encji istnieje dokładnie jedna instancja drugiej encji pozostająca z nią w rozważanym związku. Wiele do jeden Wygląd Preferuje Wiele do wielu Copyright 2014-2015 E. Busłowska. 5 Copyright 2014-2015 E. Busłowska. 6 1

Związki jeden do wielu dla każdej instancji jednej encji istnieje n instancji drugiej encji. Związki wiele do jednego dla wielu instancji jednej encji istnieje dokładnie jedna instancja drugiej encji. Wnosi Opłatę Cechy Ma Copyright 2014-2015 E. Busłowska. 7 Copyright 2014-2015 E. Busłowska. 8 Związki wiele do wielu - wielu wartościom jednej encji odpowiada wiele wartości drugiej encji Uproszczenie związku wiele do wielu przez dodanie encji Wybiera Wybiera Lista preferencji Występują w Copyright 2014-2015 E. Busłowska. 9 Copyright 2014-2015 E. Busłowska. 10 Związki rekurencyjne związki wiele do wielu lub jeden do jednego między jedną encją Każdy klient może być skojarzony z innym klientem Każdy klient może być skojarzony z wieloma klientami # IdPreferencji o Nazwa występują a # IdPreferencji # Idklienta Przykładowe encje wybiera Oplaty # IdOplaty ο Idklienta ο DataOplaty ο Wielkosc wnosi # Ida ο Nazwisko ο Imie ο Adres ο Telefon Copyright 2014-2015 E. Busłowska. 11 Copyright 2014-2015 E. Busłowska. 12 2

Problemy pojawiające się przy tworzeniu DZE Każda encja powinna być powiązana bezpośrednio z co najmniej jedną encją oraz każda encja powinna być powiązana pośrednio z każdą inną encją. Modelując należy wybiegać w przyszłość. Ważne jest jakie informacje są potrzebne aby odpowiedzieć na spodziewane pytania. Należy dążyć do jak najprostszego diagramu za pomocą zmniejszania do minimum liczby encji i związków. Funkcja podmieniająca znaki TRANSLATE(przekształcany_napis,zbiór_przeszu kiwania,zbór_podstawienia) podmienia znaki w napisie które określa drugi argument na odpowiadające im znaki trzeciego argumentu, REPLACE(podany_napis,jak,na_co) - wystąpienie w podany_napis ciąg jak zostanie zastąpione przez ciąg na_co Copyright 2014-2015 E. Busłowska. 13 Copyright 2014-2015 E. Busłowska. 14 Funkcje matematyczne POWER(liczba,n) - liczba do podanej potęgi, SQRT(liczba) - pierwiastek kwadratowy z podanej liczby, ABS(liczba) - wartość bezwzględna, MOD(liczba1, liczba2) - reszta z dzielenia. Copyright 2014-2015 E. Busłowska. 15 Funkcje trygonometryczne przykłady Select sin(60/180*3.14159265358979) from dual; sin(60/180*3.14159265358979).8660254 Select cos(60/180*3.14159265358979) from dual; cos(60/180*3.14159265358979).5 Select tan(60/180*3.14159265358979) from dual; tan(60/180*3.14159265358979) 1.7320508 Copyright 2014-2015 E. Busłowska. 16 Funkcje operujące na datach SQL> SELECT SYSDATE FROM dual; SYSDATE -------- 14/10/15 SQL> SELECT MONTH_BETWEEN(SYSDATE, Datazatr), ADD_MONTHS(Datazatr,6) FROM pracownicy; Konwersja między tekstem a liczbą TO_CHAR(wartość [,maska do formatowania]) przekształca argument wartość na jej postać znakową. SQL> SELECT NEXT_DAY(SYSATE, Monday ) FROM dual; SQL> SELECT LAST_DAY( 14/10/15 ), LAST_DAY( 14/10/14 ) FROM dual; Copyright 2014-2015 E. Busłowska. 17 Copyright 2014-2015 E. Busłowska. 18 3

Wyrażenia agregujące i funkcje grupowe Count([distinct] wyrażenie ) zlicza wiersze Min([distinct] wyrażenie ) wylicza minimalną wartość Max([distinct] wyrażenie ) - wylicza maksymalną wartość Avg([distinct] wyrażenie ) - wylicza średnią wartość Sum([distinct] wyrażenie ) wylicza sumę Copyright 2014-2015 E. Busłowska. 19 SQL> SELECT AVG(sal) ; AVG(SAL) 2133,33333 SQL> SELECT MIN(sal) Min_Wyn 3 WHERE job = 'CLERK'; MIN_WYN 800 Copyright 2014-2015 E. Busłowska. 20 SQL> SELECT COUNT(*) Ile, AVG(sal) Sred, MIN(sal) Min_Wyn, MAX(sal) Maks_Wyn FROM emp; ILE SRED MIN_WYN MAKS_WYN --------- 15 2133,33333 800 5000 Podać sumę zarobków wszystkich pracowników z pierwszego stopnia płacowego. SQL> SELECT SUM(sal), salgrade 3 WHERE salgrade.grade = 1 AND sal BETWEEN losal AND hisal; SUM(SAL) 2850 Copyright 2014-2015 E. Busłowska. 21 Copyright 2014-2015 E. Busłowska. 22 Podział krotek na grupy - klauzula GROUP BY Obliczyć średnie zarobki na każdym ze stanowisk pracy SQL> SELECT job, AVG(sal) 3 GROUP BY job; JOB AVG(SAL) --------- ANALYST 3000 CLERK 1037,5 KEEPER 2975 MANAGER 2758,33333 PRESIDENT 5000 SALESMAN 1400 Podział krotek na grupy i podgrupy Obliczyć średnie zarobki na każdym ze stanowisk pracy w każdym departamencie SQL> SELECT deptno, job, AVG(sal) 3 GROUP BY deptno, job; DEPTNO JOB AVG(SAL) --------- 10 CLERK 1300 10 MANAGER 2450 10 PRESIDENT 5000 20 ANALYST 3000 20 CLERK 950 20 KEEPER 2975 20 MANAGER 2975 30 CLERK 950 30 MANAGER 2850 30 SALESMAN 1400 10 wierszy zostało wybranych. Copyright 2014-2015 E. Busłowska. 23 Copyright 2014-2015 E. Busłowska. 24 4

Klauzula having Podać średnie zarobki tylko tych departamentów, które zatrudniają więcej niż trzech pracowników. SQL> SELECT deptno, AVG(sal), COUNT (*) 3 GROUP BY deptno 4 HAVING COUNT (*) > 3; DEPTNO AVG(SAL) COUNT(*) 20 2308,33333 6 30 1566,66667 6 Klauzula having Podać tylko te stanowiska, na których średnie zarobki wynoszą 3000 lub więcej SQL> SELECT job, AVG(sal) 3 GROUP BY job 4 HAVING AVG (sal) > =3000; JOB AVG(SAL) --------- ANALYST 3000 PRESIDENT 5000 Copyright 2014-2015 E. Busłowska. 25 Copyright 2014-2015 E. Busłowska. 26 Wyrażenia w klauzuli having Podać numery departamentów i różnice miedzy najwyższą i najniższa pensją w poszczególnych departamentach. Wyeliminować grupy z różnicą mniejszą od 2000. SQL> SELECT deptno, MAX(sal) - MIN(sal) Diff 3 GROUP BY deptno 4 HAVING MAX(sal) - MIN(sal)>=2000; DEPTNO DIFF - --------- 10 3700 20 2200 Copyright 2014-2015 E. Busłowska. 27 5