Model relacyjny. Wykład II

Podobne dokumenty
Model relacyjny. Wykład II

1 Wstęp do modelu relacyjnego

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Wykład 2. Relacyjny model danych

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

Relacyjny model danych

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

Tadeusz Pankowski Relacyjne bazy danych. są podstawą zachodniej cywilizacji

Projektowanie relacyjnych baz danych

RBD Relacyjne Bazy Danych

Przestrzenne bazy danych Podstawy języka SQL

Autor: Joanna Karwowska

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Bazy danych. Algebra relacji

Zasady transformacji modelu DOZ do projektu tabel bazy danych

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Systemy GIS Tworzenie zapytań w bazach danych

Bazy Danych. Model Relacyjny. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

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

Relacyjny model danych. Relacyjny model danych

SQL Structured Query Language

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Bazy danych. Dr inż. Paweł Kasprowski

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

SZKOLENIE: Administrator baz danych. Cel szkolenia

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

Wykład XII. optymalizacja w relacyjnych bazach danych

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

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

Technologie baz danych

Podstawy języka SQL cz. 2

Przykładowa baza danych BIBLIOTEKA

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

Oracle11g: Wprowadzenie do SQL

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

Wprowadzenie do języka SQL

Relacyjne bazy danych. Podstawy SQL

Wykład 6. SQL praca z tabelami 3

Język SQL. Rozdział 2. Proste zapytania

- Przedmiot kończy się egzaminem - Egzamin ma formę testu teoretycznego

SQL: zadania + odpowiedzi, wszystkie podstawowe schematy.

Agnieszka Ptaszek Michał Chojecki

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

Bazy danych Algebra relacji Wykład dla studentów matematyki

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

Optymalizacja w relacyjnych bazach danych - wybór wydajnej strategii obliczania wyrażenia relacyjnego.

Bazy danych. Andrzej Łachwa, UJ, /14

Autor: Joanna Karwowska

BAZY DANYCH Podstawowe pojęcia

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

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

Relacyjne bazy danych. Podstawy SQL

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

Bazy danych Wykład zerowy. P. F. Góra

Teoretyczne podstawy informatyki

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Paweł Rajba

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

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Rozpatrzymy bardzo uproszczoną bazę danych o schemacie

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

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

Autor: Joanna Karwowska

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

Technologie baz danych

SQL Structured Query Language

Systemy baz danych. mgr inż. Sylwia Glińska

Bazy danych wykład drugi. Konrad Zdanowski

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

Język SQL. Rozdział 8. Język manipulowania danymi DML

Język SQL podstawy zapytań

Baza danych. Modele danych

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

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

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

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

Model relacyjny bazy danych

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

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

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

Plan wykładu: Operacje relacji: suma, przekrój, różnica, złączenia proste, iloczyn kartezjański, złączenia teta.

RBD Relacyjne Bazy Danych Więzy realcji

Wprowadzenie do baz danych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

3. Podzapytania, łączenie tabel i zapytań

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

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

Operacja Teta-złączenia. v1 v1 Θ v2

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

Relacyjne bazy danych

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Egzamin / zaliczenie na ocenę* 0,5 0,5

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

Transkrypt:

Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji [...] o określonych stopniach. artykuł A Relational Model Of Data for Large Shared Data Banks To sposób prezentacji oraz manipulowania danymi, dotyczący: struktury danych jako relacje integralności danych zachowanej poprzez klucze główne, obce, zawężenie dziedziny, unikalność, ograniczenie wartości pustych operowania danymi poprzez selekcję, projekcję, złączenia i operacje na zbiorach Obiekty relacyjne Relacja R tabela Krotka t wiersz ( rekord ) Atrybut A kolumna Stopień relacji n liczba atrybutów Klucz główny K jednoznaczny identyfikator wiersza Dziedzina D zbiór dopuszczalnych wartości danego atrybutu Schemat relacji R( A 1, A 2,...,A n ) Baza danych zbiór relacji Relacja o schemacie R( A 1, A 2,...,A n ) na zbiorze dziedzin { D 1, D 2,...,D n } jest zbiorem krotek r = { t 1, t 2,...,t n } postaci t = < v 1, v 2,...,v n >, gdzie v i, dla 0< i n należy do zbioru D i { NULL }, n jest stopniem relacji R, m jej liczebnością Własności obiektów relacyjnych: nie istnieją powtarzające się krotki krotki nie są uporządkowane ( ich kolejność nie ma znaczenia ) wartości atrybutów są atomowe w ramach relacji atrybuty posiadają jednoznaczne identyfikatory ( nazwy ) w ramach bazy danych relacje nazwane mają jednoznaczne identyfikatory (nazwy) przykład: relacja FIGURY ( typ, kolor ) zbiór dopuszczalnych wartości dla atrybutu typ { KOŁO, KWADRAT, TRÓJKĄT } zbiór dopuszczalnych wartości dla atrybutu kolor { BIAŁY, CZERWONY, ZIELONY, CZARNY } 1

możliwe krotki relacji FIGURY ile krotek może mieć relacja FIGURY? typ kolor KWADRAT BIAŁY TRÓJKĄT ZIELONY...... KOŁO CZARNY Integralność danych relacyjnych reguła ( mechanizm ), która gwarantuje poprawność danych ( weryfikuje SZBD ) definiuje się na poziomie atrybutu lub relacji rodzaje to: klucz główny ( PRIMARY KEY ) klucz obcy ( FOREIGN KEY ) unikalność ( UNIQUE ) ograniczenie dziedziny ( CHECK ) wartość pusta/niepusta ( NULL/NOT NULL ) Podstawowe operacje algebry relacyjnej restrykcja ( selekcja ) rzutowanie ( projekcja ) złączenie iloczyn kartezjański theta złączenie operacje na zbiorach suma część wspólna ( przecięcie ) różnica Restrykcja ( poziomy podzbiór relacji poprzez podanie warunku na wybór krotek ) daje w wyniku relację składającą się ze wszystkich krotek, które spełniają określone warunki σ <warunek selekcji> (<nazwa_relacji>) przykład: Pełne dane o pracownikach z działu 10 σ <id_dzialu=10> ( Pracownicy ) SELECT * FROM Pracownicy WHERE id_dzialu=10; 2

Rzutowanie ( pionowy podzbiór relacji poprzez wskazanie tworzących go atrybutów ) to ograniczenie relacji do wskazanych atrybutów π < lista atrybutów> (<nazwa_relacji>) przykład: lista nazwisk i płac z relacji Pracownicy π < nazwisko, placa> ( Pracownicy) SELECT nazwisko, placa FROM Pracownicy; Złożenie operacji rzutowania i restrykcji przykład:lista nazwisk i płac pracowników z działu 10 z relacji Pracownicy π < nazwisko, placa> (σ <id_dzialu=10> ( Pracownicy) ) SELECT nazwisko, placa FROM Pracownicy WHERE id_dzialu=10; Iloczyn kartezjański dwóch relacji; R ( o stopniu n r i liczebności m r ) oraz relacji S ( o stopniu n s i liczebności m s ) jest wynikową relacją o stopniu n r + n s i liczebności m r * m s zawierającą konkatenację wszystkich krotek należących do relacji R z wszystkimi krotkami należącymi do relacji S, (<nazwa_relacji1>) x (<nazwa_relacji 2>) lub R x S przykład: Pełne dane o pracownikach i działach ( Pracownicy ) x ( Dzialy ) SELECT * FROM Pracownicy CROSS JOIN Dzialy; lub stary zapis SELECT * FROM Pracownicy, Dzialy; 3

Złączenia JOIN Theta złączenie dwóch relacji R i S, dla dowolnego operatora porównania theta, stanowi restrykcję wykonaną na iloczynie kartezjańskim obu relacji, dla spełnionego warunku A R Ө B s, gdzie A R należy do zbioru atrybutów relacji R, zaś B s do relacji S < nazwa_relacji1 > <warunek połaczenia> < nazwa_relacji2> Ө jest jednym z operatorów { =, <>, <, <=, >, >= } Wśród theta złączeń wyróżniamy równościowe, nierównościowe, zwrotne przykład: nazwiska pracowników i nazwy działów w których są zatrudnieni π nazwisko, nazwa ( (pracownicy id_dzialu = id_dzialu dzialy) ) SELECT nazwisko, nazwa FROM Pracownicy JOIN Dzialy ON ( Pracownicy.id_dzialu = Dzialy.id_dzialu ); lub SELECT nazwisko, nazwa FROM Pracownicy JOIN Dzialy USING( id_dzialu); lub stary zapis SELECT nazwisko, nazwa FROM Pracownicy, Dzialy WHERE pracownicy.id_dzialu = dzialy.id_dzialu; Naturalne złączenia dwóch relacji R i S ( posiadający podzbiór o tych samych nazwach i typach atrybutów ), stanowi restrykcję wykonaną na iloczynie kartezjańskim obu relacji, dla wszystkich Ar = As, gdzie Ar należy do zbioru atrybutów relacji R, zaś As do relacji S. SELECT * FROM Pracownicy NATURAL JOIN Dzialy; Operacje na zbiorach Operacje sumy, przecięcia i różnicy dla dwóch relacji będą wykonalne jeśli występuje kompatybilność tych relacji ( w obu relacjach mamy po n-atrybutów ) 4

Suma relacji dwóch zgodnych R i S jest w wyniku relacją zawierającą wszystkie krotki z obu relacji R S SELECT stanowisko FROM Pracownicy WHERE id_dzialu = 20 UNION SELECT stanowisko FROM Pracownicy WHERE id_dzialu =30; Przecięcie ( iloczyn ) dwóch zgodnych relacji R i S jest w wyniku relacją zawierającą wszystkie krotki wspólne należące zarówno do relacji R jak i do S R S SELECT stanowisko FROM Pracownicy WHERE id_dzialu = 20 INTERSECT SELECT stanowisko FROM Pracownicy WHERE id_dzialu = 30; Różnica dwóch relacji wynikiem tej operacji, oznaczonej przez R S jest relacja zawierająca wszystkie krotki, które występują w R i nie występują w S. SELECT stanowisko FROM pracownicy WHERE id_dzialu=30 MINUS SELECT stanowisko FROM pracownicy WHERE id_dzialu IN (40,50,60); Algebra relacji umożliwia tworzenie dowolnie złożonych wyrażeń przez zastosowanie operatorów dla danych( wejściowych ) relacji albo wyników pośrednich Lista możliwych zastosowań takich wyrażeń: wyszukiwanie danych aktualizacja danych definiowanie o relacji wirtualnych ( perspektyw, migawek ) o zasad bezpieczeństwa ( autoryzacji ) o wymagań stabilności (współbieżnego przetwarzania ) o reguł integralności danych 5

Wartość NULL ( nieznana ) może dotyczyć każdego typu danych: liczb, tekstów ( o skończonej liczbie znaków ), dat i typów multimedialnych nie jest to wartość ZERO dla liczb, czy łańcuch spacji dla tekstów, po prostu NULL podstawowe wartości logiczne prawda, fałsz zostają rozszerzone o trzecią wartość UNKNOWN tabela wartości dla operatora OR OR TRUE FALSE NULL TRUE TRUE TRUE TRUE FALSE TRUE FALSE NULL NULL TRUE NULL NULL tabela wartości dla operatora AND AND TRUE FALSE NULL TRUE TRUE FALSE NULL FALSE FALSE FALSE FALSE NULL NULL FALSE NULL tabela wartości dla operatora NOT NOT TRUE FALSE NULL FALSE TRUE NULL specjalne operatory do budowania warunków logicznych w wyszukiwaniu wartości pustych IS NULL ; IS NOT NULL Przykłady: SELECT nazwisko FROM Studenci WHERE gr_dziekan IS NULL ; SELECT Count( * ) FROM Studenci WHERE rok IS NOT NULL ; pułapki ; działania arytmetyczne z udziałem wartości NULL wynik wyrażenia ( 10 + NULL ) to NULL funkcje konwersji wartości NULL w Oracle Nvl ( arg1, arg2 ) jeśli wartość arg1 jest NULL to funkcja przyjmuje wartość arg2 6

Przykład: SELECT nazwa, count (nr_akt ), sum(placa + nvl( dod_funkcyjny, 0) ) FROM Pracownicy FULL JOIN Dzialy USING ( id_dzialu ) GROUP BY nazwa ; błędne ( nieskuteczne) zapisy warunków logicznych SELECT * FROM Pracownicy WHERE dod_funkcyjny <> NULL; Postulaty Codd'a dla relacyjnej bazy danych (1985 ) 1. Postulat informacyjny 2. Postulat dostępu 3. Postulat wartości NULL 4. Postulat słownika danych 5. Postulat pełnego języka danych 6. Postulat modyfikowania danych przez perspektywę 7. Postulat modyfikowania danych na wysokim poziomie abstrakcji 8. Fizyczna niezależność danych 9. Logiczna niezależność danych 10. Niezależność więzów spójności 11. Niezależność dystrybucyjna 12. Zabezpieczenie przed operacjami na niższych poziomach abstrakcji 7