Technologie baz danych



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

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

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

Wprowadzenie do języka SQL

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

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

Bazy Danych i Usługi Sieciowe

Pojęcie zależności funkcyjnej

Normalizacja. Pojęcie klucza. Cel normalizacji

Systemy baz danych. Notatki z wykładu

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

Wprowadzenie do baz danych

Autor: Joanna Karwowska

Język SQL. Rozdział 2. Proste zapytania

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

BAZY DANYCH. Wykład 1: Wprowadzenie do baz danych. Marcin Czajkowski. Przygotowanie wykładu: Małgorzata Krętowska

Wykład 5. SQL praca z tabelami 2

Bazy danych i usługi sieciowe

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Autor: Joanna Karwowska

Cel normalizacji. Tadeusz Pankowski

Systemy GIS Tworzenie zapytań w bazach danych

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

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

Podstawowe zapytania SELECT (na jednej tabeli)

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

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

Relacyjne bazy danych. Podstawy SQL

Tadeusz Pankowski Definicja. Definicja

Technologie baz danych

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

Model relacyjny. Wykład II

Relacyjne bazy danych. Podstawy SQL

Przestrzenne bazy danych Podstawy języka SQL

1 Wstęp do modelu relacyjnego

SQL (ang. Structured Query Language)

Zależności funkcyjne

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

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

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

Ćwiczenie zapytań języka bazy danych PostgreSQL

Autor: Joanna Karwowska

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

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

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

Grupowanie i funkcje agregujące

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

3. Podzapytania, łączenie tabel i zapytań

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

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

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

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

RBD Relacyjne Bazy Danych

Projektowanie relacyjnych baz danych

Technologie baz danych

PODZAPYTANIE (SUBSELECT)

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

Bazy danych. Andrzej Łachwa, UJ, /15

Zależności funkcyjne c.d.

Zależności funkcyjne pierwotne i wtórne

Wykład XII. optymalizacja w relacyjnych bazach danych

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Laboratorium Bazy danych SQL 2

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

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

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

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Pierwsza postać normalna

Optymalizacja poleceń SQL Metody dostępu do danych

SQL praca z tabelami 4. Wykład 7

Bazy danych 3. Normalizacja baz danych

Pierwsza postać normalna

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

SQL. Æwiczenia praktyczne

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

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

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Model relacyjny bazy danych

Dr Michał Tanaś(

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

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

Normalizacja relacyjnych baz danych. Sebastian Ernst

SIECI KOMPUTEROWE I BAZY DANYCH

Model relacyjny. Wykład II

Bazy danych 2. Algebra relacji Zależności funkcyjne

Uzupełnij pola tabeli zgodnie z przykładem poniżej,

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Transkrypt:

Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów Klucze relacji Małgorzata Krętowska Wydział Informatyki PB SQL - podstawy 2 Definicja zależności funkcyjnych Zależności funkcyjne Zależność funkcyjna: A 1 A 2...A n B Interpretacja: jeśli dwie krotki relacji R są zgodne dla atrybutów A 1, A 2,.., A n (tzn. obie krotki mają takie same wartości składowych dla wymienionych atrybutów), to muszą być również zgodne w pewnym innym atrybucie B. Odczyt zapisu: A 1, A 2,..., A n określają funkcyjnie B Jeśli zbiór atrybutów A 1, A 2,..., A n określa funkcyjnie więcej niż jeden atrybut tzn. A 1 A 2...A n B 1 A 1 A 2...A n B 2 A 1 A 2...A n B 3 To taki zbiór zależności skrótowo przedstawiamy jako: A 1 A 2...A n B 1 B 2 B 3 x y A Jeśli x i y są zgodne dla atrybutów A A B B To muszą być zgodne również dla atrybutów B 3 4

Klucze relacji Atrybut lub zbiór atrybutów {A 1, A 2,..., A n } tworzy klucz relacji, jeśli: 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, A 2,..., A n. Nie istnieje taki podzbiór właściwy zbioru {A 1, A 2,..., A n }, 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) 5 6 Reguły dotyczące zależności funkcyjnych Zasady, które pozwalają na zastępowanie zbioru zależności funkcyjnych zbiorami równoważnymi lub na dołączanie do zbioru tych zależności, które wynikają ze zbioru początkowego. Zasady podziału i łączenia Reguła podziału Zależność funkcyjną A 1 A 2...A n B 1 B 2... B m możemy zastąpić zbiorem zależności funkcyjnych A 1 A 2...A n B i, gdzie i=1,2,...,m Wyróżniamy następujące reguły: reguła łączenia reguła podziału reguła przechodniości Reguła łączenia Zbiór zależności funkcyjnych A 1 A 2...A n B i, gdzie i=1,2,...,m możemy zastąpić pojedynczą zależnością funkcyjną A 1 A 2...A n B 1 B 2... B m 7 8

Zależności trywialne Zależność funkcyjna A 1 A 2...A n B jest trywialna, jeśli B jest równe któremuś z A tytuł rok tytuł Mówimy, że zależność A 1 A 2...A n B 1 B 2... B m jest: trywialna - jeśli zbiór złożony z atrybutów typu B jest podzbiorem zbioru atrybutów typu A nietrywialna - jeśli co najmniej jeden z atrybutów typu B znajduje się pośród atrybutów A całkowicie nietrywialna - jeśli żaden z atrybutów typu B nie znajduje się pośród atrybutów typu A Atrybuty, które występują równocześnie z prawej i lewej strony zawsze można pominąć po prawej tronie, stąd prawdziwe jest twierdzenie (reguła zależności trywialnych) Zależność funkcyjna A 1 A 2...A n B 1 B 2... B m jest równoważna zależności A 1 A 2...A n C 1 C 2... C K, gdzie C są tymi elementami z B, które nie są równe A. 9 Domknięcie zbioru atrybutów Założenia: {A 1, A 2,..., A n } - zbiór atrybutów S - zbiór zależności funkcyjnych Domknięciem zbioru {A 1, A 2,..., A n } nad zbiorem zależności S nazywamy taki zbiór atrybutów B, że jeśli pewna relacja R spełnia wszystkie zależności ze zbioru S, to spełnia także zależność A 1 A 2... A n B, a zatem zależność A 1 A 2... A n B wynika z S. Domknięcie zbioru atrybutów {A 1, A 2,..., A n } oznaczamy przez {A 1, A 2,..., A n } +. 10 Algorytm obliczania domknięcia zbioru atrybutów {A 1, A 2,..., A n } Niech X oznacza nazwę zbioru domknięcia. Na początku X= {A 1, A 2,..., A n }. Przykład Znajdujemy wszystkie zależności 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. Powtarzamy krok 2 tak długo, jak długo nie będzie można dołączyć do X żadnego nowego atrybutu. X + Y B Nowy X + Jeśli już żadnego atrybutu nie można dołączyć do X, to znaczy, że otrzymaliśmy domknięcie zbioru {A 1, A 2,..., A n } + 11 12

Cel Mając dane domknięcie zbioru atrybutów {A 1, A 2,..., A n } możemy sprawdzić, czy dana zależność funkcyjna wynika ze zbioru zależności S. Jeśli B należy do {A 1, A 2,..., A n } + to oznacza, że wynika z S. A 1 A 2...A n B Domknięcie i klucze Zbiór {A 1, A 2,..., A n } + zawiera wszystkie atrybuty relacji R wtedy i tylko wtedy, gdy elementy A 1, A 2,..., A n są nadkluczem w R. Stwierdzenie, czy atrybuty A 1, A 2,..., A n stanowią klucz relacji, może polegać na sprawdzeniu: czy wszystkie atrybuty R należą do zbioru {A 1, A 2,..., A n } + czy X + otrzymane z dowolnego X, który utworzymy przez usunięcie choćby jednego elementu spośród A 1, A 2,..., 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 13 14 Reguła przechodniości Zapytania proste Reguła przechodniości umożliwia kaskadowe łączenie zależności: jeśli w relacji R zachodzą zależności A 1 A 2...A n 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 A 2...A n C 1 C 2...C k. 1 2 n 1 2 k Uzasadnienienie powyższej reguły => wyliczenie domknięcia {A 1, A 2,..., A n } +. FROM nazwa_tabeli,... [WHERE warunek] [ORDER BY wyrażenie ASC DESC],...]; 15 16

Zapytania proste FROM nazwa_tabeli,... ALL- pokazuje wszystkie wiersze (domyślny) DISTINCT - eliminuje powtarzające się wiersze wyrażenie - nazwa kolumny lub wyrażenie zawierające nazwy kolumn, zamiast wyrażenia może wystąpić znak '* oznaczający wszystkie kolumny alias - nazwa nadana wyrażeniu na liście SELECT, może mieć postać identyfikatora prostego (napis złożony z liter, cyfr i znaków podkreślenia) lub złożonego (dowolny napis ograniczony podwójnymi cudzysłowami, np. zawierający spacje), 17 Operatory logiczne: =; <; >; >=; <= Operatory SQL: Zapytania proste [WHERE warunek] BETWEEN... AND... - między dwiema wartościami (włącznie z nimi) IN (lista) - zgodnie z jednym elementów listy LIKE - zgodnie z zadanym wzorcem (interpretacja znaków typu "wildcard": % zastępuje ciąg znaków, _ zastępuje jeden znak) IS NULL - jest wartością NULL Operator negacji: NOT (NOT nazwa_kolumny =...; NOT BETWEEN; NOT IN; NOT LIKE; IS NOT NULL) Kryteria złożone: AND (i) OR (lub) 18 Złączenia tabel FROM tabela_1, tabela_2,..., tabela_n WHERE warunki_łączące_tabele minimalna liczba łączących warunków = liczba tabel -1 19