Relacyjne systemy baz danych i język SQL

Podobne dokumenty
1 Wstęp do modelu relacyjnego

Model relacyjny. Wykład II

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

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

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

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

Paweł Rajba

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Modele danych i ich ewolucja

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

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Przestrzenne bazy danych Podstawy języka SQL

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Widok Connections po utworzeniu połączenia. Obszar roboczy

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

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

ACESS- zadania z wykorzystaniem poleceń SQL

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

Relacyjne bazy danych. Podstawy SQL

Bazy danych. Dr inż. Paweł Kasprowski

Wykład 8. SQL praca z tabelami 5

Wykład 2. Relacyjny model danych

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

Model relacyjny. Wykład II

Wykład 5. SQL praca z tabelami 2

Systemy GIS Tworzenie zapytań w bazach danych

Wprowadzenie do języka SQL

Bazy danych 10. SQL Widoki

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

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Relacyjny model danych

Relacyjne bazy danych. Podstawy SQL

Aspekty aktywne baz danych

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

Bazy danych - Materiały do laboratoriów VIII

Wykład 05 Bazy danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

Projektowanie baz danych

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

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

Autor: Joanna Karwowska

Bazy danych i usługi sieciowe

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

Bazy danych 6. Klucze obce. P. F. Góra

Ćwiczenie zapytań języka bazy danych PostgreSQL

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

Bazy Danych i Usługi Sieciowe

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Laboratorium Bazy danych SQL 3 1

SQL (ang. Structured Query Language)

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

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

Grupowanie i funkcje agregujące

Bazy danych i usługi sieciowe

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

Technologie baz danych

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

Język SQL, zajęcia nr 1

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Przykładowa baza danych BIBLIOTEKA

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

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

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

Wykład 6. SQL praca z tabelami 3

Bazy danych. Algebra relacji

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

SIECI KOMPUTEROWE I BAZY DANYCH

SQL w praktyce. Miłej i owocnej nauki!!!

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Oracle PL/SQL. Paweł Rajba.

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Język SQL. Rozdział 2. Proste zapytania

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

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

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

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

Wprowadzenie do baz danych

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Oracle11g: Wprowadzenie do SQL

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

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

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

Bazy Danych i Usługi Sieciowe

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

Ref. 7 - Język SQL - polecenia DDL i DML

WPROWADZENIE DO JĘZYKA SQL

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

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

Laboratorium Bazy danych SQL 2

SZKOLENIE: Administrator baz danych. Cel szkolenia

Technologie baz danych

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Transkrypt:

Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr zimowy 2004/05

Plan wykładu Ewolucja systemów baz danych Projektowanie baz danych i ochrona danych Optymalizacja i struktury danych Systemy OLAP I Systemy OLAP II Modelowanie wielowymiarowe Proces ekstrakcji, transformacji i ładowania danych (Proces ETL)

Plan wykładu 1 Relacyjne systemy baz danych 2 Model relacyjny Dziedziny i relacje Integralność danych relacyjnych Algebra relacyjna Język SQL

Plan wykładu 1 Relacyjne systemy baz danych 2 Model relacyjny Dziedziny i relacje Integralność danych relacyjnych Algebra relacyjna Język SQL

Plan wykładu 1 Relacyjne systemy baz danych 2 Model relacyjny Dziedziny i relacje Integralność danych relacyjnych Algebra relacyjna Język SQL

Relacyjne systemy baz danych Relacyjna baza danych to taka baza, która jest postrzegana przez użytkowników jako zbiór relacji badź tabel. Wszystkie wartości w relacjach sa atomowe, czyli skalarne (nie ma grup wielokrotnych). System relacyjny jest to taki system, który wspiera relacyjne bazy danych i umożliwia wykonywanie operacji na takich bazach. Podstawowe operacje to selekcja, projekcja i łaczenie. Wszystkie operacje działaja na poziomie zbiorów.

Relacyjne systemy baz danych Własność domknięcia systemów relacyjnych oznacza, że rezultat każdej operacji jest obiektem tego samego typu jak dane wejściowe (oba sa relacjami), co oznacza, że można tworzyć zagnieżdżone wyrażenia relacyjne. Formalna teoria będaca podstawa systemów relacyjnych nazywa się relacyjnym modelem danych.

Relacyjne systemy baz danych Model relacyjny dotyczy wyłacznie zagadnień logicznych, a nie fizycznych. Model obejmuje trzy aspekty danych strukturę danych (inaczej obiekty), integralność danych i operowanie danymi (operatory). Obiekty sa to w zasadzie tabele (relacje). Klucze główne i obce wiaż a się z aspektem integralności. Operatorami sa m.in. selekcja, projekcja i łaczenie.

Relacyjne systemy baz danych Optymalizator jest to ta część systemu, która określa, jak zrealizować zapytanie użytkownika (które dotycza tego co, a nie jak ). Ponieważ systemy odpowiadaja same za poruszanie się po zapamiętanej bazie danych w celu lokalizacji określonych danych, systemy takie czasem nazywane sa z automatyczna nawigacja. Optymalizacja i automatyczna nawigacja sa wstępymi warunkami uzyskania niezależności danych w systemie relacyjnym.

Relacyjne systemy baz danych Katalog jest zbiorem tabel systemowych, zawierajacych deskryptory różnych elementów istotnych dla systemu (tabel bazowych, perspektyw, indeksów, użytkowników). Użytkownicy moga przeszukiwać katalog dokładnie tak samo jak własne dane.

Relacyjne systemy baz danych Tabela pochodna jest to tabela, która jest utworzona z innych tabel za pomoca pewnego wyrażenia relacyjnego. Tabela bazowa, to taka tabela, która nie jest tabela pochodna. Perspektywa jest to nazwana tabela pochodna, której definicja wyrażona za pomoca innych tabel jest przechowywana w katalogu. Użytkownicy moga przeprowadzać operacje podobnie jak na tabelach bazowych. System realizuje operacje na perspektywach przez zastapienie odwołań do nazwy perspektywy wyrażeniami definiujacymi tę perspektywę (jest to tzw. metoda podstawiania).

Relacyjne systemy baz danych Standardowym językiem działania na bazach relacyjnych jest SQL. Język SQL dostarcza mechanizm definiowania bazy danych (język DDL) operawania danych (język DML) oraz kontroli danych (DCL)

Architektura ANSI/SPARC Ważne! W systemach relacyjnych warstwa zewnętrzna i pojęciowa zbudowane sa zgodnie z podejściem relacyjnym.

Relacyjne systemy baz danych Przykład relacji Pracownicy ID Nazwisko Etat Szef Płaca Zespół 100 Lech Dyrektor NULL 4000 10 101 Czech Profesor 100 3500 20 102 Rus Adiunkt 101 3000 20 103 Popiel Adiunkt 101 3000 20 104 Kołodziej Asystent 101 2000 20 105 Rzepicha Asystent 102 2000 20 107 Rajski Adiunkt 100 3500 20 108 Lubicz Asystent 107 2500 20

Relacyjne systemy baz danych Przykład relacji Zespoły Zespół Nazwa Adres 10 Gospodarka elektroniczna Piotrowo 3a 20 Inteligencja biznesowa Piotrowo 3a 30 Sieci komputerowe Wieniawskiego 17/19

Plan wykładu 1 Relacyjne systemy baz danych 2 Model relacyjny Dziedziny i relacje Integralność danych relacyjnych Algebra relacyjna Język SQL

Plan wykładu 1 Relacyjne systemy baz danych 2 Model relacyjny Dziedziny i relacje Integralność danych relacyjnych Algebra relacyjna Język SQL

Dziedziny i relacje Relacja w dużym uproszczeniu odpowiada zwykłej tabeli. Krotka (tuple) jest to wiersz w takiej tabeli, atrybut zaś odpowiada kolumnie. Liczba krotek w tabeli to liczebność tabeli, liczba atrybutów to stopień tabeli. Klucz główny (primaty key), jest to jednoznaczny identyfikator w tabeli; jest to kolumna (lub kombinacja kolumn) taka, że żadne dwa wiersze w tabeli, w dowolnej chwili, nie maja tej samej wartości w tej kolumnie (lub kombinacji kolumn). Dziedzina jest to zbiór dopuszczalnych wartości, z których pochodza konkretne wartości określonych atrybutów danych relacji.

Dziedzina Dziedzina jest to zasadniczo typ danych (niekiedy definiowany przez system, a bardziej ogólnie przez użytkownika). Dziedzina określa zbiór wartości skalarnych, z których biora się wartości poszczególnych atrybutów w relacjach. Dziedziny ograniczaja porównania, ponieważ porównywane wielkości zwykle musza pochodzić z tej samej dziedziny. W rezultacje dziedziny ograniczaja pewne operacje relacyjne, takie jak złaczenie, sumę i inne. Ważne! Określenie dziedziny jest najprostszym mechanizmem sprawdzania integralności danych (np. przy porównywaniu wartości różnych atrybutów), jednak jest to element najsłabiej wspierany przez istniejace relecyjne systemy baz danych.

Relacja Podstawowa struktura danych w modelu relacyjnym jest relacja. Z matematycznego punktu widzenia relacja jest podzbiorem iloczynu kartezjańskiego dziedzin atrybutów. Relacja reprezentowana jest w postaci dwuwymiarowej tablicy. Relacja składa się z krotek i atrybutów.

Definicja relacji Zmienna relacji jest to nazwany obiekt, którego wartość zmienia się w czasie. Wartość takiej zmiennej w danej chwili jest wartościa relacji.

Definicja relacji Definicja Relacja R na zbiorze niekoniecznie różnych dziedzin D 1, D 2,..., D n składa się z dwóch części: nagłówka i treści: Nagłówek składa się z ustalonego zbioru atrybutów, a ściślej z par < nazwa atrybutu : nazwa dziedziny >, {< A 1 : D 1 >, < A 2 : D 2 >,..., < An : Dn >},

Definicja relacji Definicja Relacja R na zbiorze niekoniecznie różnych dziedzin D 1, D 2,..., D n składa się z dwóch części: nagłówka i treści: Treść składa się z krotek (tuples); każda krotka jest zbiorem par <nazwa-atrybutu:wartość-atrybutu >, {< A 1 : v i1 >, < A 2 : v i2 >,..., < An : v in >} (i = 1, 2,..., m, gdzie m jest liczba krotek w zbiorze; w każdej takiej krotce jest jedna taka para < A j : v ij > typu <nazwa-atrybutu:wartość-atrybutu > dla każdego atrybutu A j w nagłówku. Dla każdej danej pary < A j : v ij >, v ij jest wartościa z konkretnej dziedziny D j stowarzyszonej z atrybutem A j.

Właściwości relacji Każda relacja charakteryzuje się: wszystkie krotki sa różne (nie ma podwójnych krotek, duplikatów), jej atrybuty sa różne, kolejność krotek i atrybutów nie ma znaczenia, wartości atrybutów sa atomowe.

Rodzaje relacji Relacja nazwana jest zmienna relacji, która została stworzona za pomoca instrukcji CREATE TABLE, CREATE VIEW, itp.. Relacja podstawowa jest relacja nazwana, która nie jest relacja pochodna (relacje podstawowe sa autonomiczne). W praktyce relacjami podstawowymi sa te relacje, które zostały uznane przez projektanta bazy danych za wystarczajaco ważne, aby mogły mieć swoja nazwę i niezależny byt w bazie danych.

Rodzaje relacji Relacja pochodna to taka relacja, która jest zdefiniowana (za pomoca pewnych wyrażeń relacyjnych) poprzez inne relacje nazwane a w końcu przez relacja podstawowe. Relacja wyprowadzona jest relacja, która można otrzymać ze zbioru nazwanych relacji za pomoca jakiegoś wyrażenia relacyjnego. Zbiór wszystkich relacji wyprowadzonych składa się ze zbioru wszystkich relacji podstawowych i wszystkich relacji pochodnych.

Rodzaje relacji Perspektywa (view) jest nazwana relacja pochodna. (Perspektywy sa, podobnie jak relacje podstawowe, w istocie zmiennymi relacji). Perspektywy sa wirtualne. W systemie sa reprezentowane wyłacznie przez definicję za pomoca innych nazwanych relacji. Migawka (snapshot), podobnie jak perspektywa, jest także nazwana relacja pochodna (i też jest zmienna relacji). W odróżnieniu migawka jest rzeczywista, a nie wirtualna. Reprezentowana jest nie tylko za pomoca definicji opartej na innych relacjach nazwanych, ale ma też własne dane. Tworzenie migawki jest podobne do realizacji zapytania z wyjatkiem tego, że wynik zapytania jest przechowywany w bazie danych pod określona nazwa jako relacja tylko do odczytu oraz okresowo migawka jest odświeżana.

Rodzaje relacji Wynik zapytania jest to nienazwana relacja pochodna, jaka powstaje w rezultacie wykonania określonego zapytania. Wyniki zapytań nie maja trwałego bytu w bazie (oczywiście można je umieścić w nazwanej relacji). Wynik pośredni jest nienazwana relacja pochodna, która wynika z realizacji jakiegoś wyrażenia relacyjnego zagnieżdżonego w innym takim wyrażeniu. Wyniki pośrednie podobnie jak wyniki końcowe, nie maja trwałego bytu w bazie danych (w istocie moga nawet nigdy nie materializować się w całości). Relacja zachowana jest relacja wyprowadzana, która ma jakieś bezpośrednie i wydajne odbicie w pamięci fizycznej.

Relacje i predykaty Z każda relacja zwiazane jest znaczenie lub predykat. Predykat stanowi kryterium akceptowalności aktualizacji danej relacji. W każdej chwili dana relacja zawiera tylko te krotki, które sprawiaja, że wartościa odpowiedniego predykatu będzie prawda.

Plan wykładu 1 Relacyjne systemy baz danych 2 Model relacyjny Dziedziny i relacje Integralność danych relacyjnych Algebra relacyjna Język SQL

Reguły integralności Każda reguła integralności musi być uzależniona od konkretnej bazy danych. Przykłady reguł integralności: Pensja musi być większa od 0, Nazwisko musi być znane, Etaty musza pochodzić z listy dostępnych wartości, itd.

Reguły integralności Model relacyjny oprócz obsługi reguł integralności zależnych od bazy obejmuje trzy ogólne cechy integralności: klucze kandydujace (i główne), klucze obce, dziedziny integralność atrybutu, mówi, że każdy atrybut musi spełniać następujacy warunek: wartości atrybutu sa pobierane z odpowiedniej dziedziny.

Klucz kandydujacy Definicja Niech R będzie relacja (zmienna relacji). Klucz kandydujacy w relacji R jest podzbiorem K zbioru atrybutów relacji R, majacym (takim, że w każdej chwili zachodza): własność jednoznaczności żadne dwie różne krotki R (z aktualnej wartości R) nie maja tej samej wartości dla K, własność nieredukowalności żaden właściwy podzbiór K nie ma własności jednoznaczności.

Klucze kandydujace Klucze kandydujace sa tak ważne, ponieważ zapewniaja podstawowy mechanizm adresowania na poziomie krotki w systemie relacyjnym. Oznacza to, że jedynym zagwarantowanym przez system sposobem dotarcia do określonej krotki jest droga przez wartość jakiegoś klucza kandydujacego.

Klucze głowne i alternatywe Relacja podstawowa może mieć więcej niż jeden klucz kandydujacy. Model relacyjny wymagał aby jeden z nich zostal wybrany kluczem glównym (primary key). Pozostałe nazywane sa kluczami alternatywnymi.

Klucze obce Definicja Niech R2 będzie relacja podstawowa (bazowa). Klucz obcy relacji R2 jest to podzbiór FK, zbioru atrybutów R2, taki że: istnieje relacja podstawowa R1 (relacje R1 i R2 niekoniecznie sa różne) z kluczem kandydujacym CK oraz w każdej chwili każda wartość FK w aktualnej wartości relacji R2 jest taka sama, jak wartość CK w pewnej krotce aktualnej wartości relacji R1.

Klucze obce Wartość klucza obcego stanowi referencję do krotki zawierajacej wartość odpowiadajacego mu klucza kandydujacego (krotki docelowej). Problem zapewnienia, by baza danych nie zawierała żadnych niedopuszczalnych wartości klucza obcego, nazywa się problemem integralności referencyjnej (referential integrity). Warunek, aby wartości danego klucza obcego zgadzały sie z wartościami odpowiadajacego mu klucza kandydujacego jest znany jako więzy referencyjne (referential constraints).

Klucze proste i złożone Klucze proste składaja się z jednego atrybutu. Klucze złożone składaja się z dwóch i więcej atrybutów.

Reguły kluczy obcych Reguły kluczy obcych dotycza dwóch operacji: usuwania i aktualizacji. Każda z tych reguł pozwala specyfikować opcje RESTRICTED oraz CASCADE.

Integralność encji Definicja Integralność encji żaden składnik klucza głównego relacji podstawowej nie może akceptować nulli.

Plan wykładu 1 Relacyjne systemy baz danych 2 Model relacyjny Dziedziny i relacje Integralność danych relacyjnych Algebra relacyjna Język SQL

Operatory relacyjne Selekcja (restrykcja) Projekcja (rzut) Iloczyn kartezjański Suma Przecięcie Różnica Łaczenie Iloraz

Selekcja Selekcja (czasami nazywana restrykcja) daje w wyniku relację składajac a się ze wszystkich krotek ze wskazanej relacji, które spełniaja określone warunki.

Projekcja Projekcja (rzut) daje w wyniku relację złożona z tych wszystkich krotek, która pozostały jako krotki danej realcji po usunięciu z niej wskazanych atrybutów.

Iloczyn kartezjański Iloczyn kartezjański daje relację składajac a się ze wszystkich krotek, będacych kombinacja dwóch krotek, po jednej z każdej wskazanej relacji.

Suma Suma daje w wyniku relację składajac a się ze wszystkich krotek, występujacych w jednej lub obu wskazanych relacjach.

Przecięcie Przecięcie daje w rezultacie relację składajac a się ze wszystkich krotek, występujacych w obu wskazanych relacjach.

Różnica Różnica daje w wyniku relację składajac a się ze wszystkich krotek, występujacych w pierwszej relacji i nie występujacych w drugiej wskazanej relacji.

Łaczenie Łaczenie daje w wyniku relację składajac a się ze wszystkich możliwych krotek, które sa kombinacjami dwu krotek, po jednej z każdej ze wskazanych relacji, takich że dwie krotki dajace wkład do którejkolwiek kombinacji maja tę sama wartość wspólnego atrybutu (lub atrybutów) tych dwu relacji.

Iloraz Iloraz bierze dwie relacje, jedna binarna, a druga unarna i daje w wyniku relację składajac a się ze wszystkich wartości jednego atrybutu relacji binarnej, które zgadzaja się (pod względem wartości tego drugiego atrybutu) ze wszystkimi wartościami relacji unarnej. Przykład: podaj klientów, którzy kupuja wyposażenie b2 i b3.

Domknięcie Wynik dowolnej operacji jest obiektem tego samego rodzaju co wejście (wszystkie sa relacjami), zatem wynik dowolnej operacji może stanowić wejście innej. Powyższa własność nazywana jest domknięciem.

Operatory elementarne Operatory elementarne sa to takie operatory, których nie można zdefiniować za pomoca innych. Takimi operatorami sa: selekcja, projekcja, iloczny kartezjański, suma, różnica.

Operacja dodatkoweo Można zdefiniować wiele operatorów relacyjnych Operatory: EXTEND i SUMMARIZE

Operacje aktualizacji Podstawowe operacje aktualizacji to: INSERT, UPDATE, DELETE. Operacje te działaja również na poziomie zbiorów.

Rachunek relacyjny Rachunek relacyjny jest alternatywny do algebry relacyjnej. Rachunek jest opisowy, algebra zaś przepisowa, w tym sensie, że daje przepisy jak postępować. Na głębszym poziomie jest to to samo, ponieważ dowolne wyrażenia z rachunku można przekształcić w równoważne znaczeniowo wyrażenie w algebrze i na odwrót. Powyższa własność jest jednym z elementów optymalizacji w relacyjnych systemach baz danych.

Plan wykładu 1 Relacyjne systemy baz danych 2 Model relacyjny Dziedziny i relacje Integralność danych relacyjnych Algebra relacyjna Język SQL

Historia języka SQL Jęzek SQL został opracowany w firmie IBM w latach 70 tych. W 1986 stał się oficjalnym standardem wspieranym przez ISO i ANSI (standard został opisany na 100 stronach). Kolejny standard SQL89 (120 stron). SQL92 (około 600 stron) aka SQL92. SQL99 (około 2200 stron) aka SQL99. SQL4 (?!:)

Historia języka SQL SQL92 trzy poziomy zgodności: Entry, Intermediate, Fully. Istniejace implementacja sa czymś w rodzaju nadzbioru podzbioru specyfikacji SQL a. SQL99 odmienne podejście: zdefiniowanie Core SQL99 i pakietów.

Tworzenie nowej relacji Postać instrukcji CREATE TABLE zespoly ( id_zesp INT(2) NOT NULL, nazwa VARCHAR(20) NOT NULL, adres VARCHAR(40), CONSTRAINT id_zesp_pk PRIMARY KEY (id_zesp) );

Tworzenie nowej relacji Postać instrukcji CREATE TABLE pracownicy ( id_prac INT(3) NOT NULL, nazwisko VARCHAR(20) NOT NULL, etat VARCHAR(10), szef INT(3), placa INT(5), id_zesp INT(2), CONSTRAINT id_prac_pk PRIMARY KEY (id_prac), CONSTRAINT szef_fk FOREIGN KEY (szef) REFERENCES pracownicy (id_prac), CONSTRAINT id_zesp_fk FOREIGN KEY (id_zesp) REFERENCES zespoly (id_zesp), CHECK (placa >= 0) );

Wstawianie nowych krotek Postać instrukcji INSERT INTO zespoly VALUES (10, Gospodarka elektroniczna, Piotrowo 3a ), (20, Inteligencja biznesowa, Piotrowo 3a ), (30, Sieci komputerowe, Wieniawskiego 17/19 );

Wstawianie nowych krotek Postać instrukcji INSERT INTO pracownicy VALUES (100, Lech, Dyrektor, NULL, 4000, 10), (101, Czech, Profesor, 100, 3500, 20), (102, Rus, Adiunkt, 101, 3000, 20), (103, Popiel, Adiunkt, 101, 3000, 20), (104, Kołodziej, Asystent, 101, 2000, 20), (105, Rzepicha, Asystent, 102, 2000, 20), (107, Rajski, Adiunkt, 100, 3500, 20), (108, Lubicz, Asystent, 107, 2500, 20) );

Modyfikacja relacji Postać instrukcji RENAME TABLE pracownicy TO pracownik; DROP TABLE pracownik; ALTER TABLE pracownicy ADD (tytul varchar(10)); ALTER TABLE pracownicy MODIFY tytul VARCHAR(10) DEFAULT mgr inz. NOT NULL; ALTER TABLE pracownicy DROP Tytul;

Tworzenie perspektywy Postać instrukcji niestety nieobsługiwane przez MySQL CREATE VIEW szefowie AS SELECT * FROM pracownicy WHERE id_prac in (SELECT DISTINCT szef FROM pracownicy);

Operowanie danymi Postać instrukcji SELECT nazwisko FROM pracownicy; SELECT id_zesp, nazwisko from pracownicy; SELECT * FROM pracownicy; SELECT DISTINCT adres FROM zespoly;

Operowanie danymi Postać instrukcji SELECT nazwisko, zarabia, placa FROM pracownicy; SELECT nazwisko, placa/30 FROM pracownicy; SELECT nazwisko, round(placa/30) FROM pracownicy; SELECT nazwisko, 3*placa AS placa_kwartalna FROM pracownicy; SELECT nazwisko jest etat FROM pracownicy; SELECT CONCAT(nazwisko, jest,etat) FROM pracownicy;

Operowanie danymi Postać instrukcji SELECT nazwisko FROM pracownicy WHERE etat = Asystent ; WHERE szef IS NULL; WHERE szef IS NOT NULL OR placa BETWEEN 3000 AND 4000; WHERE placa IN(3500, 2000) AND nazwisko LIKE L% ;

Operowanie danymi Postać instrukcji SELECT nazwisko FROM pracownicy WHERE etat = Asystent ORDER BY nazwisko DESC; SELECT nazwisko FROM pracownicy WHERE etat = Asystent ORDER BY 1 ASC;

Operowanie danymi Postać instrukcji SELECT etat, max(placa) FROM pracownicy GROUP BY etat; SELECT etat, max(placa) FROM pracownicy GROUP BY etat HAVING count(*)>2;

Łaczenie relacji Postać instrukcji SELECT nazwisko, nazwa FROM pracownicy, zespoly; Co jest wynikiem takiej operacji?

Łaczenie relacji Postać instrukcji SELECT nazwisko, nazwa FROM pracownicy, zespoly WHERE pracownicy.id_zesp = zespoly.id_zesp; SELECT nazwisko, nazwa FROM pracownicy p RIGHT JOIN zespoly z ON (p.id_zesp = z.id_zesp);

Operacje teoriomnogościowe Postać instrukcji SELECT nazwisko FROM pracownicy WHERE etat = Asystent UNION SELECT nazwisko FROM pracownicy WHERE etat = Adiunkt ;

Aktualizacja relacji Postać instrukcji UPDATE pracownicy SET placa = 5000 WHERE etat = Dyrektor ; DELETE FROM pracownicy WHERE etat = Asystent ;

Podzapytania nieskorelowane Postać instrukcji SELECT * FROM pracownicy WHERE id_prac in (SELECT DISTINCT szef FROM pracownicy); Operatory: IN, ALL, ANY

Podzapytania skorelowane Postać instrukcji SELECT nazwisko, placa FROM pracownicy p WHERE placa > (SELECT avg(placa) FROM pracownicy WHERE etat = p.etat; Operatory: EXISTS i NOT EXISTS

Zadania Wyświetl wszystkie etaty pracowników bez duplikatów Wyświetl wszystkie informacje o pracownikach z zespołu 20 uporzadkowanych według nazwisk Wyświetl nazwiska etaty, których nazwiska zaczynaja się na R Wyświetl roczne wynagrodzenie każdego z pracowników Wyświetl średnie wynagrodzenie wszystkich pracowników Wyświetl pracowników z ul. Piotrowo w rosnacym porzadku alfabetycznym

Zadania Wyświetl zespoły, które nie zatrudniaja pracowników Wyświetl pracowników zarabiajacych więcej niż RUS Wyświetl informacje w następujacym formacie: Pracownik RUS pracuje na etacie Adiunk Wyświetl pracowników i ich szefów Wyświetl dla każdego zespołu jego nazwę, adres oraz średnia płacę jego pracowników

Plan wykładu Ewolucja systemów baz danych Projektowanie baz danych i ochrona danych Optymalizacja i struktury danych Systemy OLAP I Systemy OLAP II Modelowanie wielowymiarowe Proces ekstrakcji, transformacji i ładowania danych (Proces ETL)