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

Relacyjny model danych

Wykład 2. Relacyjny model danych

Bazy danych. Algebra relacji

Przestrzenne bazy danych Podstawy języka SQL

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

Autor: Joanna Karwowska

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

Agnieszka Ptaszek Michał Chojecki

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

RBD Relacyjne Bazy Danych

Relacyjny model danych. Relacyjny model danych

Bazy danych. Dr inż. Paweł Kasprowski

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

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

Transformacja modelu ER do modelu relacyjnego

Wykład 6. SQL praca z tabelami 3

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

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

Model relacyjny bazy danych

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

Technologie baz danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

Projektowanie relacyjnych baz danych

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

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

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

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

Technologie baz danych

Transformacja modelu ER do modelu relacyjnego

RBD Relacyjne Bazy Danych Więzy realcji

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

Wykład 8. SQL praca z tabelami 5

SQL Structured Query Language

Podstawy języka SQL cz. 2

Przykładowa baza danych BIBLIOTEKA

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

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

Rozpatrzymy bardzo uproszczoną bazę danych o schemacie

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

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

SQL Structured Query Language

Relacyjne bazy danych

Baza danych. Modele danych

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

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

SZKOLENIE: Administrator baz danych. Cel szkolenia

TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO

Autor: Joanna Karwowska

Wprowadzenie do baz danych

Relacyjny model danych

Paweł Rajba

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

Wprowadzenie do języka SQL

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

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

BAZY DANYCH Podstawowe pojęcia

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

Teoretyczne podstawy informatyki

Wykład 05 Bazy danych

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

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

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

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

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

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

SQL: zadania + odpowiedzi, wszystkie podstawowe schematy.

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

Aspekty aktywne baz danych

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

Wykład XII. optymalizacja w relacyjnych bazach danych

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

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

3. Podzapytania, łączenie tabel i zapytań

Złaczenia tablic: FROM, WHERE, JOIN

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Wykład 5. SQL praca z tabelami 2

Bazy danych wykład drugi. Konrad Zdanowski

Relacyjne systemy baz danych i język SQL

Bazy danych - Materiały do laboratoriów VIII

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

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

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

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Relacyjne bazy danych. Podstawy SQL

Język SQL podstawy zapytań

Bazy danych. Andrzej Łachwa, UJ, /14

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 ( pole ) 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? Integralność danych relacyjnych typ kolor KWADRAT BIAŁY TRÓJKĄT ZIELONY...... KOŁO CZARNY reguła ( mechanizm ), która gwarantuje poprawność danych istnieją dwa sposoby definiowania, sprawdzania reguł integralnościowych deklaratywne proceduralne 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 ) Klucz kandydujący w relacji R jest podzbiorem K zbioru atrybutów relacji R posiadający własność jednoznaczności i nieredukowalny zawierający więcej niż jeden atrybut nazywa się kluczem złożonym, zaś zawierający dokładnie jeden atrybut kluczem prostym W sytuacji, w której relacja posiada wiele kluczy kandydujących, jeden z nich powinien być wybrany jako klucz główny, pozostałe zaś określa się mianem kluczy alternatywnych Klucz obcy relacji R jest atrybutem lub zbiorem atrybutów, który wskazuje na klucz główny w innej relacji lub tej samej relacji Klucze na przykładzie relacji PRACOWNICY( #NR_AKT, NAZWISKO, STANOWISKO, KIEROWNIK, ID_DZIALU) relacji DZIALY(#ID_DZIALU, NAZWA, SIEDZIBA ) klucz główny relacji PRACOWNICY to NR_AKT klucz główny relacji DZIALY to ID_DZIALU 2

klucze obce w tabeli PRACOWNICY to KIEROWNIK wskazuje na klucz główny NR_AKT relacji PRACOWNICY ID_DZIAŁU wskazuje na klucz główny ID_DZIALU relacji DZIALY Integralność referencyjna zapewnia, że baza nie zawiera żadnych niedopuszczalnych wartości klucza obcego i narzuca je poprzez tzw. więzy referencyjne encji odnosi się do pojedynczej relacji ( tabeli ) w której powinien istnieć klucz główny ( PRIMARY KEY ) i żaden jego składnik nie może akceptować wartości pustej atrybutu wartości dla atrybutu są pobierane z odpowiedniej dziedziny na każdy atrybut relacji można narzucić ograniczenia dotyczące: dziedziny (określenie typu ) niepowtarzalności wartości ( UNIQUE ) wartość wymagana ( NOT NULL ) ograniczenie dziedziny warunek logiczny ( CHECK ) 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; 3

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_relacji 1>) x (<nazwa_relacji 2>) lub R x S przykład: Pełne dane o pracownikach i dzialach ( Pracownicy ) x ( Dzialy ) SELECT * FROM Pracownicy CROSS JOIN Dzialy; lub stary zapis SELECT * FROM Pracownicy, Dzialy; 4

Złączenia JOIN Theta złączenie dwóch relacji, dla dowolnego operatora theta, stanowi restrykcję wykonaną na iloczynie kartezjańskim obu relacji, dla spełnionego warunku połączenia. < nazwa_relacji 1 > <warunek połaczenia> < nazwa_relacji 2 > warunek połączenia jest postaci A i Ө B j ( theta join ) A i B j są atrybutami połączenia Domena(A i ) = Domena(B j ) Ө 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. W języku SQL 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 ) 5

Suma relacji dwóch zgodnych R i S jest w wyniku relacją zawierającą wszystkie krotki z obu relacji R S SELECT Imiona, Nazwisko FROM Studenci WHERE rok=1 UNION SELECT Imie, Nazwisko FROM Aktorzy ORDER BY 2; 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 Imiona FROM Studenci WHERE rok=1 INTERSECT SELECT upper(imie) FROM Aktorzy WHERE kraj='pl' ; 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. R - S SELECT upper(imie) FROM Aktorzy WHERE kraj='usa' MINUS SELECT Imiona FROM Studenci WHERE rok=1; Wykorzystano Wykłady dr inż. Olga Siedlecka-Lamch - Bazy danych z roku 2012 http://wazniak.mimuw.edu.pl/images/0/04/bd-2st-1.2-w02.tresc-1.1.pdf 6