Implementacyjne modele danych. Definicja bazy danych



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

Bazy danych. Dr inż. Paweł Kasprowski

Paweł Rajba

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Wykład 8. SQL praca z tabelami 5

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

Bazy danych 9. SQL Klucze obce Transakcje

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

Język SQL, zajęcia nr 1

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Bazy danych - Materiały do laboratoriów VIII

Systemy GIS Tworzenie zapytań w bazach danych

Bazy danych Podstawy teoretyczne

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Oracle11g: Wprowadzenie do SQL

Bazy danych 7. SQL podstawy

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

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

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

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Relacyjne bazy danych. Podstawy SQL

Wykład 4. SQL praca z tabelami 1

Aspekty aktywne baz danych

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

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

Wykład 2. SQL 1 Structured Query Lenguage

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Przestrzenne bazy danych Podstawy języka SQL

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

Microsoft SQL Server Podstawy T-SQL

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Administracja i programowanie pod Microsoft SQL Server 2000

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

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

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

040 STRUCTURED QUERY LANGUAGE. Prof. dr hab. Marek Wisła

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

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

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

Bazy danych - wykład wstępny

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

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

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

Bazy danych Ćwiczenia projektowe

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

SELECT * FROM tabela WHERE warunek wybiera dane spełniające podany warunek

TEST E.14 BAZY DANYCH

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Oracle PL/SQL. Paweł Rajba.

SQL Structured Query Language

Bazy danych. Zaliczenie. Literatura. Strony WWW. Wykład 1: Wprowadzenie do baz danych. Semestr 1

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

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

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Bazy danych Transakcje

Dr Michał Tanaś(

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

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

Wykład 5. SQL praca z tabelami 2

Instrukcja CREATE TABLE

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

SQL (ang. Structured Query Language)

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

Bazy danych 9. Klucze obce Transakcje

Model relacyjny. Wykład II

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

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

SQL Structured Query Language

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Autor: Joanna Karwowska

Wykład 05 Bazy danych

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

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

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

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

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

Bazy danych SQL. Wstp. SQL (Structured( Query Language) strukturalny jzyk zapyta

Po prawidłowym podłączeniu do serwera MySQL należy wybrać bazę, na której będziesz pracować:

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

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

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

Typy bazy danych Textract

Internetowe bazy danych

Wykład :45 BD-1 W_3

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

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

PODSTAWY BAZ DANYCH 13. PL/SQL

Bazy danych 5. Samozłaczenie SQL podstawy

Transkrypt:

Definicja bazy danych Implementacyjne modele danych Okrelaj technologi transformacji modelu koncepcyjnego do konkretnego systemu SZBD. Wród modeli implementacyjnych wyrónia si modele: Baza danych jest zbiorem powizanych danych. Baza danych jest abstrakcyjnym informatycznym odzwierciedleniem wybranego fragmentu rzeczywistoci nazywanego miniwiatem. Zmiany w tym miniwiecie s odzwierciedlane w bazie danych. Hierarchiczne sieciowe RELACYJNE obiektowe PRACOWNIK_ID NAZWISKO IMIE KIEROWNIK_ID WYDZIAL_ID 1 Kudłaty Stanisław 3 3 2 Pryszczaty Mieczysław 4 2 3 Pijcy Gustaw 4 3 4 Ponury Bolesław 1 5 Kulawy Franciszek 2 2 Rafał Kowalski 1 Rafał Kowalski 2 Metodyka tworzenia baz danych RELACYJNE BAZY DANYCH i Strukturalny Jzyk Zapyta SQL. Analiza miniwiata konstrukcja modelu konceptualnego miniwiata Transformacja modelu konceptualnego do modelu relacyjnego. Proces normalizacji Wybór struktur fizycznych i okrelenie cieek dostpu Strojenie systemu Diagramy koncepcyjne Relacje Relacje znormalizowane Fizyczne struktury danych 1970r. dr E.F.Codd opublikował artykuł: Relacyjny model danych dla duych banków danych współuywanych Iinterfejs dostpu do relacyjnych baz danych: SEQUEL SQL Standardy jzyka: SQL-89 SQL-92 (SQL2 SQL-99. SQL - jedyny jzyk obsługi relacyjnych baz danych Rafał Kowalski 3 Rafał Kowalski 4 Dr. E. F. Codd 12 Postulatów Systemów Relacyjnych 1. Informacyjny. 2. Gwarantowanego dostpu. 3. Systemowej obsługi wartoci NULL. 4. Dynamicznego słownika danych. 5. Pełnego jzyka danych. 6. Modyfikowania BD przez perspektywy. 7. Modyfikowania danych na wysokim poziomie abstrakcji. 1923-2003 8. Fizycznej niezalenoci danych. 9. Logicznej niezalenoci danych. 10. Niezalenoci wizów spójnoci. 11. Niezalenoci dystrybucyjnej. 12. Bezpiecznych operacji niskiego poziomu. Rafał Kowalski 5 Dr. E. F. Codd 12 Postulatów Systemów Relacyjnych 1. Postulat Informacyjny. Cała informacja z relacyjnej bazy danych jest reprezentowana jedynie na poziomie logicznym tylko przy pomocy wartoci umieszczonych w tabelach. 2. Postulat gwarantowanego dostpu. Dostp do kadej atomowej jednostki informacji (datum jest realizowany przy pomocy okrelenia nazwy tabeli wartoci klucza głównego i nazwy kolumny. 3. Postulat systemowej obsługi wartoci NULL. System Relacyjnej Bazy Danych przechowuje wartoci NULL które reprezentuj informacj brakujc. Obsługa wartoci NULL jest realizowana w sposób niezaleny od typów danych. 4. Postulat dynamicznego słownika danych. Struktura bazy danych jest reprezentowana na poziomie logicznym w ten sam sposób co przechowywane dane i obsługiwana przez ten sam jzyk relacyjny. Rafał Kowalski 6 1

Dr. E. F. Codd 12 Postulatów Systemów Relacyjnych 5. Postulat pełnego jzyka danych. W systemie relacyjnym musi by okrelony jzyk którego wyraenia podlegaj dokładnie okrelonej składni i umoliwiaj definiowanie modyfikowanie i przegldanie danych ogranicze i realizacj transakcji. Jzyk ten jest niezaleny od obsługiwanych jzyków narodowych jzyków programowania i rodzajów interakcji z klientami systemu (SQL. 6. Postulat modyfikowania BD przez perspektywy. Wszystkie perspektywy danych które teoretycznie umoliwiaj modyfikowanie danych musz umoliwia te modyfikacje w praktyce. 7. Postulat modyfikowania danych na wysokim poziomie abstrakcji. Wszystkie operacje dostpu do danych (przegldanie wprowadzanie modyfikowanie i usuwanie musz umoliwia jednorodne przetwarzanie relacji bazowych (base i wyliczanych (derived. Dr. E. F. Codd 12 Postulatów Systemów Relacyjnych 8. Postulat fizycznej niezalenoci danych. Praca klientów przy terminalach interaktywnych oraz działanie programów i aplikacji s niezalene od istniejcych fizycznych struktur danych i zmian dokonywanych w strukturach fizycznego przechowywania i/lub metod dostpu do danych fizycznych. 9. Postulat logicznej niezalenoci danych. Praca klientów przy terminalach interaktywnych oraz działanie programów i aplikacji s niezalene od zawartoci i zmian dokonywanych w treci przechowywanej informacji jeeli te zmiany nie wpływaj na struktury tabel bazowych. Rafał Kowalski 7 Rafał Kowalski 8 Dr. E. F. Codd 12 Postulatów Systemów Relacyjnych 10. Postulat niezalenoci wizów spójnoci. Wizy spójnoci danych (ograniczenia integralnoci musz by w pełni definiowane przy pomocy jzyka relacyjnej bazy danych i przechowywane w słowniku danych w sposób niezaleny od oprogramowania uytkowego. System musi obsługiwa co najmniej dwa rodzaje wizów spójnoci: 1. Integralno encji (klucz główny nie moe przyjmowa wartoci NULL. 2. Integralno referencyjna (kada okrelona (nie NULL warto klucza obcego musi pochodzi z domeny odpowiadajcego klucza głównego. 11. Postulat niezalenoci dystrybucyjnej. System Relacyjnej Bazy Danych jest niezaleny od rozmieszczenia i rozproszenia bazy danych. Uytkownicy systemu nie musz by wiadomi i uzalenia swoich działa od rozproszenia danych. Dr. E. F. Codd 12 Postulatów Systemów Relacyjnych 12. Postulat bezpiecznych operacji niskiego poziomu. Jeeli system relacyjnej bazy danych udostpnia jzyk niskiego poziomu (przetwarzania pojedynczych rekordów danych to jego uycie nie moe umoliwia łamania lub czasowego ograniczania wizów spójnoci zdefiniowanych w jzyku wysokiego poziomu. Postulat Zero: Kady system który uznaje si za Relacyjn Baz Danych musi realizowa wszystkie operacje przetwarzania danych tylko i wyłcznie przy pomocy operatorów relacyjnych. Na Na podstawie zdefiniowanych postulatów mona mona powiedzie e e aden aden współczesny system system RDBMS nie nie jest jest systemem w pełni pełni relacyjnym. (69101112 (69101112 Rafał Kowalski 9 Rafał Kowalski 10 Podstawy jzyka SQL Grupy polece SQL92 Podstawy jzyka SQL Klasy polece SQL99 DDL Definiowanie danych. DCL Sterowanie serwerem danych DQL Wyszukiwanie danych. DML Modyfikacje danych. Rafał Kowalski 11 KLASA Obsługa połczenia. Strukturalne Przetwarzanie danych Diagnostyka systemu Obsługa schematów Obsługa sesji Obsługa transakcji Opis Sterowanie sesj - połczeniem klienta z serwerem. Sterowanie wykonywaniem zbiorów polece. Wyszukiwanie danych połczone z modyfikowaniem nietrwałym lub modyfikowanie trwałe. Wywietlanie informacji o kondycji i stanie pracy serwera błdach i sytuacjach wyjtkowych. Modyfikowanie struktur przechowujcych dane w serwerze. Modyfikowanie parametrów sterujcych procesem przetwarzania informacji w sesji klienta Synchronizowanie współpracy wielu uytkowników i dzielenie procesów przetwarzania danych na jednostki elementarne. Przykłady Rafał Kowalski 12 2

Hierarchiczno modelu relacyjnego Zapytania proste SELECT KLASTER KATALOG SCHEMAT OBIEKT KOLUMNA TYP STANDARDOWY TYP UYTKOWNIKA Zbiór katalogów sesji SQL (cały system RDBMS. Standard ANSI nakłada na klaster obowizek kontroli dostpu uytkowników?. Inaczej: instancja bazy danych. Zbiór obiektów uytkownika (baza danych. Tabele perspektywy moduły procedury składowane. Unikatowy zbiór wartoci atrybutu encji informacji. Definicja zbioru prawidłowych wartoci kolumny SELECT DISTINCT UNIQUE { ALL } lista wyboru FROM lista ródłowa WHERE warunek S wyboru GROUP BY lista grupowania HAVING warunek G wyboru ORDER BY lista kolejnoci ; REGUŁA i ASERCJA Reguły prawidłowego przetwarzania informacji: PK FK U NN... wyzwalacze Rafał Kowalski 13 Rafał Kowalski 14 Składnia klauzuli FROM Selekcja wyników zapytania WHERE start JOIN tabela tabela CROSS JOIN USING ( OUTER ON INNER LEFT RIGHT FULL kolumna Warunek złczenia NATURAL INNER JOIN LEFT OUTER RIGHT Rafał Kowalski FULL 15 stop Klauzula WHERE słuy do okrelania listy warunków logicznych które musz spełnia wiersze wygenerowane przez polecenie SELECT lub DELETE. Opanowanie umiejtnoci stosowania warunków klauzuli WHERE jest podstaw sukcesu stosowania jzyka SQL. PROBLEMY Dua liczba odmiennych rodzajów warunków dla rónych typów danych. Moliwo wzajemnego uzupełniania i zastpowania si rónych warunków. Pomieszanie warunków selekcji ze złczeniami Theta. Brak pierwszestwa spełniania - kolejno okrelana wyłcznie przez struktury zagłbionych nawiasów. Zaleno od producentów serwerów i konfiguracji oprogramowania. Rafał Kowalski 16 Rodzaje warunków WHERE(1 Rodzaje warunków WHERE (2 Prosty warunek logiczny Wyraenie logiczne złoone z dwóch argumentów połczonych operatorem porównania ewentualnie poprzedzone kwalifikatorem negacji NOT. pensja=1300 < <= = <> > >= Obsługa złcze tabel wewntrzne lewostronne zewntrzne (wszystkie wydziały THETA Pracownicy.wydzial_id = wydzialy.wydzial_id Pracownicy.wydzial_id (+= wydzialy.wydzial_id Pracownicy.wydzial_id =* wydzialy.wydzial_id Oracle PostgreSQL Złoony warunek logiczny Warunki proste połczone operatorami złcze i nawiasami zmieniajcymi kolejno ich analizy. Sprawdzenie wartoci NULL Sprawdzenie wystpowania pustej wartoci atrybutu. UWAGA: 0 i nie s wartociami pustymi. NOT Pensja>1300 AND wydzial_id = 3 numer_telefonu IS NULL imie IS NOT NULL AND OR Rafał Kowalski 17 <=> NOT AND/OR IS NULL IS NOT NULL Porównywanie tekstów ze wzorcem Porównywanie tekstów wyszukiwanie łacuchów ze znakami wieloznacznymi. UWAGA: W zalenoci od kontekstu serwer moe dokona niejawnej konwersji typu atrybutu. Sprawdzenie zakresu Poszukiwanie atrybutów mieszczcych si w DOMKNITYM zakresie wartoci. imie NOT LIKE %a nazwisko LIKE K_owal% nazwisko LIKE pensja LIKE 3 0 pensja BETWEEN 1000 and 3000 dowolny łacuch znaków dowolny jeden znak pensja NOT BETWEEN 2000 and 3000 NOT BETWEEN... imie BETWEEN Rafał 'Adam' Kowalski and Bartek' 18 % _ BETWEEN x and y 3

Sprawdzenie zbioru wartoci Poszukiwanie atrybutów mieszczcych si w wymienionym zbiorze wartoci. nazwa IN ( spedycja transport imie NOT IN ( Anna Ewa pensja IN (1000 1500 2000 Rodzaje warunków WHERE (3 IN ( abc NOT IN... Rafał Kowalski 19 IN ANY ALL EXISTS Wspomagane przez < <= Podzapytania WHERE (4 Sprawdzanie złoonych warunków istnienia PODZAPYTANIA!!! Poszukiwanie atrybutów zwizanych ze zbiorem wartoci generowanych przez podzapytania SQL (zwykle skorelowane. Przykład zapytania Wywietl pracowników którzy posiadaj podwładnych. SELECT pracownik_id imie nazwisko FROM pracownicy p WHERE EXISTS (SELECT empno FROM emp WHERE p.mgr = emp.empno ORDER BY ename; =!= <> => =ANY jest równowane IN Rafał Kowalski 20 > UWAGA Agregowanie wyników Agregowanie wyników GROUP BY PRACOWNIK_ID NAZWISKO IMIE KIEROWNIK_ID WYDZIAL_ID 1 Kudłaty Stanisław 3 3 2 Pryszczaty Mieczysław 4 2 3 Pijcy Gustaw 4 3 4 Ponury Bolesław 1 5 Kulawy Franciszek 2 6 Samotny Jan 7 5 Policz rekordy w tabeli!"#$ "%"&!"#$!#'(" *"'!"#$ 6 6 5 Liczy rekordy w których chocia jedna kolumna nie jest pusta. Pomija rekordy z pustym wpisem w kolumnie. PRACOWNIK_ID NAZWISKO IMIE KIEROWNIK_ID WYDZIAL_ID 1 Kudłaty Stanisław 3 3 2 Pryszczaty Mieczysław 4 2 3 Pijcy Gustaw 4 3 4 Ponury Bolesław 1 5 Kulawy Franciszek 2 2 WYDZIALY WYDZIAL_ID NAZWA KIEROWNIK_ID SIEDZIBA_ID 1 spedycja 4 10 2 magazyn 2 20 3 transport 3 10 4 kadry 30 Pojcie agregowania danych wie si z wykorzystaniem klauzuli grupowania: GROUP BY... połczonej z zastosowaniem specjalnych funkcji agregujcych: MIN( MAX( AVG( SUM( COUNT(... Agregowanie pozwala odpowiedzie na pytania postaci: Pogrupuj rekordy wg wskazanego kryterium a nastpnie wykonaj operacje typu: policz rekordy wyznacz wartoci minimalne/maksymalne/rednie oblicz sumy wartoci liczbowych. Rafał Kowalski 21 Rafał Kowalski 22 Składnia GROUP BY PODZAPYTANIA Rafał Kowalski 23 Rafał Kowalski 24 4

PRACOWNIK_ID NAZWISKO IMIE STANOWISKO PLACA WYDZIAL_ID PODZAPYTANIA WHERE zwracajce wiele wierszy 1 Kudłaty Stanisław kierownik 2100 3 2 Pryszczaty Mieczysław kierowca 1850 2 3 Pijcy Gustaw magazynier 300 3 4 Ponury Bolesław kierownik 2300 1 5 Kulawy Franciszek goniec 3100 3 +++ +++ ++ WARUNEK WYDZIALY WYDZIAL_ID NAZWA KIEROWNIK_ID SIEDZIBA_ID 1 spedycja 4 10 2 magazyn 2 20 3 transport 3 10 4 kadry 30 Wywietl nazwiska stanowiska i i pensje pracowników zarabiajcych najmniej w swoich wydziałach. =ANY jest równowane IN PRACOWNIK_ID NAZWISKO IMIE STANOWISKO PLACA WYDZIAL_ID 1 Kudłaty Stanisław kierownik 2100 3 2 Pryszczaty Mieczysław kierowca 1850 2 3 Pijcy Gustaw magazynier 300 3 4 Ponury Bolesław kierownik 2300 1 5 Kulawy Franciszek goniec 3100 3 PODZAPYTANIA w klauzuli HAVING WYDZIALY WYDZIAL_ID NAZWA KIEROWNIK_ID SIEDZIBA_ID 1 spedycja 4 10 2 magazyn 2 20 3 transport 3 10 Wywietl nazwy i 4 kadry i rednie płace 30 tych tych wydziałów które przekraczaj redni płac wydziału magazyn +++ +++ Etap PIERWSZY. +++ +++ +++ WARUNEK Etap TRZECI. =!= <>>=<=. IN ANY ALL EXISTS (PODZAPYTA Rafał Kowalski 25 Etap DRUGI. (PODZAPYTA Rafał Kowalski 26 lista referencyjna tabel? { } warunki S wyboru PODZAPYTANIA skorelowane {wskazówka}{ lista wywietlania } lista grupowania { } { lista kolejnoci } ; W klauzuli warunkowej zapytania wewntrznego wystpuje odwołanie do kolumny z zapytania zewntrznego. Rafał Kowalski 27? EXISTS IN ANY ALL PODZAPYTANIA skorelowane Stosowane w przypadkach gdy interesujca jest tylko odpowied na pytanie czy wiersz o zadanych warunkach istnieje (lub nie istnieje. Naley do najbardziej wydajnych sposobów wykonywania złoonych zapyta do bazy danych. Tabele tymczasowe generowane podczas wykonywania zapyta nie posiadaj indeksów co znakomicie je spowalnia. Rafał Kowalski 28 TRANSAKCYJNO MODYFIKOWA DANYCH DML INSERT UPDATE DELETE TRUNCATE Rafał Kowalski 29 Jawne rozpoczcie transakcji. SET TRANSACTION... BEGIN... Dowolne polecenia SQL COMMIT Trwałe zapisanie dokonanych zmian w bazie danych i pokazanie pozostałym uytkownikom systemu. Niejawne rozpoczcie transakcji. Polecenie DML (INSERT UPDATE ROLLBACK rodowisko izolowanych modyfikacji które s niewidoczne dla pozostałych uytkowników systemu. Wycofanie dokonanych zmian z bazy danych. Jawne zakoczenie transakcji Rafał Kowalski 30 5

Składnia UPDATE Składnia DELETE START UPDATE tabela STOP SET kolumna = wyraenie TRUNCATE TABLE tabela START DELETE FROM tabela STOP WHERE warunek S wyboru WHERE warunek S wyboru Rafał Kowalski 31 Rafał Kowalski 32 CREATE TABLE Przykład 12 MODYFIKOWA SCHEMATÓW DDL CREATE ALTER DROP Rafał Kowalski 33 '&" %&* -%./ (!"0 2/ "%"& 3/ ' *'(&" &. ".5 $ '&" %&* -%./ (!"0 12/ "%"& 3/ ' *'(&" &. & 4444 ".5 $ Rafał Kowalski inline 34 CREATE TABLE Przykład 34 '&" %&* -%./ * -*0 66 (!"0 12/ * (* "%"& 3/ ' *'(&" &. *&& 4444 ".5 *"* 7 $ wyłcznie inline! '&" %&* -%./ (!"0 12/ * (* "%"& 3/ ' *'(&" out-of-line &. ".5 * -*0 66%&* -% *&& 4444 *"* 7" $ Rafał Kowalski 35 START CREATE TABLE nazwa kolumny CONSTRAINT nazwa tabeli typ danych nazwa ograniczenia CREATE TABLE Składnia ( Ograniczenie integralnoci kolumny Ograniczenie integralnoci tabeli Rafał Kowalski 36 STOP 6

warunek integralnoci kolumny CREATE TABLE Składnia warunek integralnoci tabeli CREATE TABLE Składnia START DEFAULT warto domniemana STOP START CONSTRAINT nazwa ograniczenia STOP CONSTRAINT CHECK ( PRIMARY KEY nazwa ograniczenia warunek logiczny kolumny PRIMARY KEY UNIQUE CHECK ( ( nazwa kolumny warunek logiczny kilku kolumn jednego wiersza UNIQUE NOT NULL REFERENCES nazwa tabeli FOREIGN KEY ( nazwa kolumny ( nazwa kolumny Rafał Kowalski 37 REFERENCES nazwa tabeli ( nazwa kolumny Rafał Kowalski 38 DROP TABLE Składnia ALTER TABLE Składnia 1 DROP TABLE nazwa tabeli nazwa schematu. CASCADE CONSTRAINTS ALTER TABLE nazwa tabeli SIEDZIBY SIEDZIBA_ID <pk> NUMBER(4 ULICA VARCHAR2(40 KOD_POCZTOWY VARCHAR2(12 MIASTO VARCHAR2(30 STAN_PROWINCJA VARCHAR2(25 KRAJ_ID <fk> CHAR(2 SIEDZIBA_ID WYDZIALY WYDZIAL_ID <pk> NUMBER(4 NAZWA VARCHAR2(30 KIEROWNIK_ID <fk> NUMBER(6 SIEDZIBA_ID <fk> NUMBER(4 nazwa schematu. Nieograniczona ilo { opcji zmian } KRAJ_ID Rafał Kowalski 39 Rafał Kowalski 40 warunki integralnoci tabeli ALTER TABLE Składnia 2 Typy danych SQL 99 1 CONSTRAINT nazwa Oracle MS SQL ZNAKOWE MySQL ANSI PRIMARY KEY ( UNIQUE ( CHECK ( FOREIGN KEY ( REFERENCES lista przecinkowa nazw kolumn klucza lista przecinkowa nazw kolumn Warunek logiczny zawierajcy nazwy kilku kolumn tego samego rekordu lista przecinkowa nazw kolumn Nazwa tabeli PRIMARY KEY nazwa schematu. ( lista przecinkowa nazw kolumn Rafał Kowalski PRIMARY KEY 41 UNIQUE NCHAR(n 2000 NVARCHAR2(n 4000 CLOB 4GB NUMBER(p 1..38 s -84..127 NUMBER(38 NUMBER NCHAR(n 4/8000 NVARCHAR(n 4/80 00 TEXT 2GB. UNICODE NUMERIC(p 1..38 s DECIMAL(p 1..38 s INT BIGINT TINYINT SMALLINT FLOAT REAL CHAR(n 255 VARCHAR(n 255 SET(w 1 w 2...w n 64 LONGTEXT 4GB MEDIUMTEXT 65kB DECIMAL(md LICZBOWE DOUBLE(ps BIGINT bardzo duo SMALLINT -32768..32767 TINYINT -128..127 FLOAT(p..24..53 REAL(ps NATIONAL CHAR CHARACTER VARYING (n NUMERIC(ps DECIMAL(ps INTEGER INT SMALLINT FLOAT float 126 bit DOUBLE PRECISION REAL float 64 bit Rafał Kowalski 42 7

Typy danych SQL 99 2 Typy danych SQL 99 3 Oracle BLOB 4GB BFILE outside database MS SQL IMAGE 2GB BINARY 8KB VARBINARRAY 8KB BIT(01NULL BEZ INDEKSOWANIA! Zajmuj bajt pamici BINARNE MySQL LONGBLOB MEDIUMBLOB LOGICZNE ANSI Binary Large Object Wartoci logiki Łukasiewicza: TRUE BIT BOOL=tinyint(1 FALSE UNKNOWN (NULL. DATE Oracle 1-01-4712BC.. 31-12-9999AD TIMESTAMP MS SQL DATETIME 1/1/1753.. 12/31/9999 8B dokładno 333 ms. SMALLDATETIME 1/1/1900.. 6/6/2079 4B dokładno 1 m. TIMESTAMP DATA I CZAS DATE 1000-01-01.. 9999-12-31 DATETIME 1000-01-01 00:00:00 DATE 9999-12-31 23:59:59 TIMESTAMP TIMESTAMP TIME YEAR MySQL ANSI Rafał Kowalski 43 Rafał Kowalski 44 ROWID Wybrane typy danych serwerów SQL 1 Pozwala na przechowywanie prawie kadego innego podstawowego typu SQL_VARIANT danych SQL Server. Wyjtki stanowi!" #$%&!'!. Jest podobny do typu danych (!$! &!'! RowGUID ENUM('value1''value2'... TYP IMIENNY SET('value1''value2'... PSEUDOKOLUMNA - Unikalny adres wiersza tabeli w bazie danych (typu: tekstowego. Budowanie identyfikatorów w bazach rozproszonych. TYP ZBIOROWY ORACLE MS SQL MySQL Kolumna typu tekstowego która moe przybiera wartoci wyłcznie z wylistowanego zbioru zawierajcego maksymalnie 65535 rónych wartoci. Kolumna typu tekstowego która moe zawiera od 0 do 64 elementów zbioru. Rafał Kowalski 45 0 (0" 8 (%"& 138 $ 0 (0"14444$ UWAGA NA POLA TEKSTOWE!!! 4499 9944:; :4499(%"& 9944:< ; : 0 (0"$ ; < ; ======== ======== Rafał Kowalski 46 Numerowanie automatyczne (AUTONUMEROWA 1 MySQL!"#!"0*"'./ (!"0 13/ 6@# $!"# (!"01> (4$?!"#$?!"#$ TYLKO JEDNA taka kolumna w tabeli. SUBINDEKSOWA złoonego klucza głównego. ZEROWA po usuniciu wszystkich wierszy. Rafał Kowalski 47 Numerowanie automatyczne (AUTONUMEROWA 2!"#!"0*"' (!"0 13/ MS SQL SET IDENTITY_INSERT pracownicy ON pozwala na wprowadzanie bezporednie wartoci!"# (!"01> (4$?!"#?!"# ZERUJE LICZNIKA!!! "'&*&>!"#4 TYLKO JEDNA taka kolumna w tabeli. AA"'&"# BC!#D&&!! "%"&"& Rafał Kowalski 48 8

CREATE ( ON { } INDEX nazwa tabeli nazwa schematu. nazwa kolumny funkcja kolumn CREATE INDEX Składnia 1 nazwa schematu. nazwa aliasu { } nazwa indeksu Rafał Kowalski 49 PRZETWARZA TRANSAKCYJNE! BEGIN... COMMIT... ROLLBACK... Rafał Kowalski 50 Przetwarzanie Transakcji Spójny cig powizanych ze sob logicznie operacji przetwarzania danych w bazie. SZBD automatycznie synchronizuje i szereguje transakcje tak aby nie powstały konflikty i niespójnoci danych: a metod porzdkowania według etykiet czasowych b metod walidacji c metod blokowania w praktyce komercyjnych baz danych stosuje si wyłcznie blokowanie. Transakcje zatwierdza si poleceniem COMMIT a wycofuje poleceniem ROLLBACK. UWAGA: Polecenia takie jak CREATE/ALTER/DROP GRANT i REVOKE kocz si niejawnym poleceniem COMMIT. Rafał Kowalski 51 ATOMOWO (ang. atomicity Własnoci transakcji Wszystkie akcje tworzce transakcj musz zosta wykonane w całoci. Transakcja moe by zatwierdzona lub wycofana przez uytkownika. Wycofanie transakcji wie si z odtworzeniem pierwotnego stanu wszystkich zmienionych atrybutów. Zatwierdzona przez uytkownika transakcja moe zosta wycofana przez SZBD w przypadku niemoliwoci jej wypełnienia. Rafał Kowalski 52 SPÓJNO (ang. consistency IZOLACJA (ang. Isolation TRWAŁO (ang. Durability Własnoci transakcji Zatwierdzona transakcja przeprowadza baz z jednego stanu spójnego do innego stanu spójnego (adne z ogranicze integralnociowych nie jest naruszone. Zmiany dokonywane w bazie danych podczas trwania transakcji jednego uytkownika bd widoczne przez innych uytkowników dopiero po zatwierdzeniu transakcji. Po zatwierdzeniu transakcji zmodyfikowane informacje pozostaj trwale zapamitane w bazie danych. Rafał Kowalski 53 Niepodane zjawiska współdzielenia danych Błdne odczyty (ang. dirty reads Standardy ANSI/ISO SQL i SQL92 okrelaj 3 niepodane zjawiska zakłócajce integralno danych i 4 poziomy izolacji dla ochrony przed nimi. Transakcja odczytuje dane czciowo nadpisane przez inny proces ale jeszcze nie zatwierdzone (commited. Niepowtarzalne odczyty (ang. fuzzy reads Transakcja odczytuje ponownie dane i stwierdza ich rónice spowodowane przez inny proces który zatwierdził swoj transakcj. Złudne odczyty (ang. phantom read Ponowne wykonanie zapytania (query oddaje inny zestaw wierszy uzupełniony o wykonane i zatwierdzone w midzyczasie transakcje. Rafał Kowalski 54 9

Poziomy izolowania transakcji Normalizacja - Wstp Poziom Read uncommitted Read committed Repeatable read Serializable Błdne odczyty Niepowtarzalne odczyty Złudne odczyty Technika działania stosowana podczas tworzenia relacyjnych baz danych. Teoria normalizacji jest oparta na zestawie Postaci Normalnych. Relacja jest w okrelonej postaci normalnej gdy spełnia odpowiedni zestaw ogranicze. Aktualnie rozrónia si pi postaci normalnych z których pierwsze trzy wprowadził E.F. Codd i zastosował do nich okrelenia: 1NF 2NF i 3NF. Proces normalizacji jest (zazwyczaj koczony po osigniciu 3NF która w wikszoci praktycznych zastosowa uznawana jest za wystarczajc. Przekształcanie relacji do zaawansowanych postaci normalnych dotyczy tabel które posiadaj wicej ni 3 atrybuty i kady z nich pełni funkcj klucza. Rafał Kowalski 55 Rafał Kowalski 56 Id_pracownika 1 2 3 4 5 6 Nazwisko Kudłaty Pryszczaty Pijcy Ponura Kulawy Samotny Stanisław Mieczysław Gustaw Mariola Franciszek Jan Imie Przykład złego projektu? Nazwa wydziału transport magazyn transport spedycja spedycja kadry Eliminowanie istnienia wielu (rónych kopii tej samej informacji. Pijcy Gustaw Pryszczaty Mieczysław Pijcy Gustaw Ponura Mariola Ponura Mariola Samotny Jan Kierownik Sztuczne zalenoci funkcjonalne obcych Problemy spójnoci informacji w sytuacji atrybutów Eliminowanie które musz zalenoci by wprowadzane i potrzeby wprowadzenia informacji o funkcjonalnej modyfikowane rónych wspólnie. atrybutów. istnieniu działu produkcja w którym aktualnie nikt nie pracuje. Rafał Kowalski 57 Po co normalizowa? Uniknicie problemów i potencjalnych przyczyn błdów zwizanych z: Nadmiarowo danych. Efekt uboczny usunicia: Co bdzie jeli usuniemy rekord pracownika z identyfikatorem 6?: Stracimy informacje o istnieniu wydziału kadry. Efekt uboczny modyfikacji: Jeeli Ponura Mariola wyjdzie za m i zmieni nazwisko na Wesoła to trzeba bdzie dokona licznych modyfikacji w rónych atrybutach wielu rekordów bazy danych. Efekt uboczny wstawienia: Jak (bez naruszenia spójnoci informacyjnej bazy danych wprowadzi informacj o istnieniu działu produkcja w którym aktualnie nikt nie pracuje. Rafał Kowalski 58 NORMALIZACJA INTUICYJNA - definicja Zaleno Funkcjonalna - DEFINICJA Przygldaj si modelowi danych i zadawaj sobie (w mylach pytania. Jeeli sytuacja tego wymaga zmieniaj posta modelu danych. Prac zakocz dopiero wtedy gdy nie bdziesz potrzebował niczego zmienia. Czy na pewno zidentyfikowałem kad informacj majc znaczenie dla systemu? Przed wprowadzeniem definicji postaci normalnych naley sformułowa dwie niezbdne definicje zalenoci funkcjonalnej atrybutów relacji. Koncepcja zalenoci funkcjonalnej ley u podstaw pierwszych trzech kroków normalizacyjnych. Czy nie istniej atrybuty które powinny (przypadkiem nalee do innych relacjii? Czy atrybut nie ma czasem oddzielnego znaczenia jako pewna cało i by moe lepiej modelowa go jako osobn relacj? Czy kady zwizek jest naprawd istotny a nie np. potrzebny tylko podczas wykonywania pewnej funkcji? (#'!"&& E&('-#%"(-" %" #-F!"&G(# '0"&% FH#%"" E %"&E %&EE&'&E& E"I Atrybut Y relacji R pozostaje w Zalenoci Funkcjonalnej od atrybutu X relacji R wtedy i tylko DEFINICJA wtedy gdy z kad wartoci atrybutu X jest zawsze skojarzona ta sama warto atrybutu Y. notacja: R.x >; R.y Rafał Kowalski 59 Rafał Kowalski 60 10

Pełna Zaleno Funkcjonalna - DEFINICJA NORMALIZACJA Dotyczy relacji posiadajcych klucze główne złoone z kilku atrybutów. Atrybut Y relacji R pozostaje w Pełnej Zalenoci Funkcjonalnej od klucza K relacji R wtedy i tylko wtedy DEFINICJA gdy jest zaleny funkcjonalnie od X i nie jest zaleny funkcjonalnie od adnej kombinacji atrybutów tworzcych klucz K. DATA NAZWA_LINI LOTNISKO_Z LOTNISKO_DO PRODUCENT MODEL POJEMNOSC 99-11-10 00:00 SWISAIR TORU WARSZAWA JAK 25 56 99-09-26 00:00 PACANOW-AI PIASECZNO WARSZAWA MIG 21 2 99-10-24 00:00 PLL LOT GARWOLIN WARSZAWA PZL 27 28 99-10-25 00:00 PLL LOT GÓRA KALWARIA W-WA IL 82 150 99-09-16 00:00 PANAM WARSZAWA WESOŁA SU 17 1 99-08-23 00:00 TWA SOCHACZEW W-WA SU 17 1 STAN1 IMIE1 NAZW1 STAN2 IMIE2 NAZW2 STAN3 IMIE3 NAZW3 kapitan MAŁGORZATA CISZEWSKA 2-gi pilot DONATA SOKÓŁ naw igator WANDA MICHALSKA kapitan JOLANTA KISZAKIEWICZ 2-gi pilot ELBIETA KALINOWSKA naw igator AGSZKA WINNICKA kapitan ZBIGW SŁOMSKA 2-gi pilot URSZULA PIETKIEWICZ naw igator KASIA ANNA kapitan JAN PIASECKI naw igator MONIKA ROMAN kapitan LUCYNA KRCIK 2-gi pilot EDYTA PAWLUCZUK naw igator BEATA BIELSKA kapitan EWA REBKOWSKA 2-gi pilot ANNA JDRZEJEWSKA naw igator JANINA PIETRASZEWSKI Rafał Kowalski 61 Rafał Kowalski 62 1NF LOT NUMER_LOTU DATA NAZWA_PRZEWOZNIKA NAZWA_LOTNISKA_POCZATKOWEGO NAZWA_LOTNISKA_DOCELOWEGO TYP_SAMOLOTU MODEL_SAMOLOTU LICZBA_PASAZEROW STANOWISKO1 NAZWISKO1 IMIE1 STANOWISKO2 NAZWISKO2 IMIE2 STANOWISKO3 NAZWISKO3 IMIE3 CZLONEK_ZALOGI IDENTYFIKATOR_ZALOGI STANOWISKO NAZWISKO IMIE Pierwsza Posta Normalna (1NF Tabela (encja jest w 1NF: Posiada okrelony klucz główny. Nie posiada powtarzajcych si atrybutów. Jeli atrybut posiada kilka wartoci w jednej krotce to definiujemy now tabel (encj opisan przez ten atrybut. Obslugiwany przez Przydzielony do LOT NUMER_LOTU DATA NAZWA_PRZEWOZNIKA NAZWA_LOTNISKA_POCZATKOWEGO NAZWA_LOTNISKA_DOCELOWEGO TYP_SAMOLOTU MODEL_SAMOLOTU LICZBA_PASAZEROW Rafał Kowalski 63 CZLONEK_ZALOGI IDENTYFIKATOR_ZALOGI STANOWISKO NAZWISKO IMIE Przydzielony do Obslugiwany przez DATA LOT stanowi podstawe zgodny z 2 NF Druga Posta Normalna (2NF Tablela (encja jest w 2NF: Jeeli encja posiada klucz główny złoony z kilku atrybutów to wszystkie atrybuty zale tylko od całego klucza głównego. Jeeli atrybut zaley tylko od czci klucza głównego to ten atrybut i ta cz identyfikatora tworz podstaw nowej encji. TRASA_LOTU NUMER_LOTU NAZWA_PRZEWOZNIKA NAZWA_LOTNISKA_POCZATKOWEGO NAZWA_LOTNISKA_DOCELOWEGO TYP_SAMOLOTU MODEL_SAMOLOTU LICZBA_PASAZEROW Rafał Kowalski 64 Trzecia Posta Normalna (3NF STANOWISKO ID_STANOWISKA NAZWA na jest podstawa dotyczy PRZYDZIAL_ZALOGI PRACOWNIK IDENTYFIKATOR_PRACOWNIKA NAZWISKO IMIE otrzymuje FIRMA_PRZEWOZOWA ID_PRZEWOZNIKA NAZWA_PRZEWOZNIKA wykonuje obslugiwana przez Tabela (encja jest w 3NF: Wszystkie atrybuty encji zale bezporednio od klucza głównego. Jeeli jaki atrybut zaley od innego atrybutu który nie jest czci klucza głównego to atrybuty te tworz podstaw nowej encji. SAMOLOT ID_SAMOLOTU TYP MODEL LICZBA_PASAZEROW 3 NF do odbycia obslugiwany przez LOT DATA stanowi podstawe zgodny z wykorzystany do TRASA_LOTU NUMER_LOTU na pokladzie z LOTNISKO jest poczatkiem ID_LOTNISKA do jest koncem NAZWA Rafał Kowalski 65 11