BAZY DANYCH Materiały do wykładów dr inż. Janusz Kosiński



Podobne dokumenty
Systemy GIS Tworzenie zapytań w bazach danych

Przestrzenne bazy danych Podstawy języka SQL

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Krzysztof Kadowski. PL-E3579, PL-EA0312,

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

Wykład 2. Relacyjny model danych

Model relacyjny. Wykład II

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

Wykład I. Wprowadzenie do baz danych

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

Bazy danych. Dr inż. Paweł Kasprowski

Oracle11g: Wprowadzenie do SQL

SZKOLENIE: Administrator baz danych. Cel szkolenia

Język SQL. Rozdział 2. Proste zapytania

Wprowadzenie do baz danych

Bazy danych - wykład wstępny

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

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

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

Microsoft SQL Server Podstawy T-SQL

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

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

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

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

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

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

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

Model relacyjny. Wykład II

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

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

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

SQL (ang. Structured Query Language)

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

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

Bazy danych 2. Wykład 1

1 Wstęp do modelu relacyjnego

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

Baza danych. Modele danych

Wykład 4. SQL praca z tabelami 1

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

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Baza danych. Baza danych to:

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Relacyjne bazy danych. Podstawy SQL

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

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

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

Projektowanie systemów baz danych

Pojęcie bazy danych. Funkcje i możliwości.

Wykład :45 BD-1 W_3

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

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

BAZY DANYCH Podstawowe pojęcia

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

WPROWADZENIE DO BAZ DANYCH

Dr Michał Tanaś(

Projektowanie relacyjnych baz danych

Paweł Rajba

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

Wyświetl imie i nazwisko ucznia, nazwę przedmiotu z którego otrzymał ocenę niedostateczną. Nazwij tę kwerendę oceny niedostateczne.

Język SQL, zajęcia nr 1

2017/2018 WGGiOS AGH. LibreOffice Base

SQL Structured Query Language

Technologia informacyjna

Bazy danych. Andrzej Łachwa, UJ, /14

22. Podstawowe pojęcia baz danych. Baza Danych. Funkcje bazy danych. Właściwości bazy danych. Modele baz danych.

Relacyjne bazy danych. Podstawy SQL

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Wprowadzenie do baz danych

Bazy danych. Polecenia SQL

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

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

Wykład 8. SQL praca z tabelami 5

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

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

Autor: Joanna Karwowska

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

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

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

Wprowadzenie do języka SQL

Materiały do laboratorium MS ACCESS BASIC

Podstawy programowania skrót z wykładów:

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

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.

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

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

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

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

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

Oracle PL/SQL. Paweł Rajba.

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

Bazy danych TERMINOLOGIA

Podstawowe informacje o bazach danych. Technologie Informacyjne

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

SQL Structured Query Language

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

Transformacja modelu ER do modelu relacyjnego

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

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

Transkrypt:

BAZY DANYCH Materiały y do wykład adów dr inż.. Janusz Kosiński ski

Wprowadzenie do tematyki baz danych 2

Typowy ręczny system ewidencjonowania. Kluczami ręcznej bazy danych są zapisy na papierze. 3

Komputerowa baza danych - zautomatyzowana wersja funkcji ewidencjonowania i wyszukiwania, stosowanych w systemach ręcznych. 4

Komputerowe bazy danych przechowują informacje w zdefiniowanych formatach i strukturach -od prostych linii tekstu (np. imię, adres), do złożonych struktur danych, zawierających obrazy, dźwięki czy filmy. 5

Przechowywanie danych w ściśle określonych formatach umożliwia systemowi zarządzania bazą danych (DBMS database management system) przemianę danych w informacje użyteczne raporty, odpowiedzi na pytania. 6

Baza danych narzędzie umożliwiające skuteczne i wydajne przechowywanie oraz manipulowanie informacjami - w tym rozumieniu, że dane są chronione przed przypadkowym uszkodzeniem lub zagubieniem, oraz że mogą być przeglądane w różny sposób, zależnie od przyjętych założeń i ograniczeń. Baza danych - fizyczna implementacja modelu relacyjnego opisującego pewne aspekty rzeczywistości zgodnie z regułami, zaproponowanymi przez E.F.Codd a w końcu lat 1960. 7

BAZA DANYCH (BD) jest modelem informacyjnym pewnego aspektu rzeczywistości (fizycznej lub / i wyobrażalnej) jest uporządkowanym zbiorem danych przechowywanych w pamięci komputera, których zadaniem jest reprezentowanie tej rzeczywistości. 8

Funkcje bazy danych: Wyszukiwanie (Zapytania) Aktualizacja Zapisywanie/Wprowadzanie Usuwanie NAJWAŻNIEJSZĄ i NAJCZĘŚCIEJ wykorzystywaną funkcją jest Wyszukiwanie (Zapytania) BD INTEGRUJE dane wielu użytkowników - każdy użytkownik zainteresowany jest tylko pewnym jej fragmentem (w tym sensie BD ma charakter zintegrowany) 9

BD MOŻNA PODZIELIĆ ze względu na sposób zarządzania na operacyjne bazy danych i analityczne bazy danych: * OPERACYJNE BD - znajdują zastosowanie w codziennym funkcjonowaniu organizacji przechowują dane dynamiczne * ANALITYCZNE BD -są wykorzystywane do przechowywania danych historycznych / statystycznych, które bardzo rzadko ulegają zmianom. 10

Model bazy danych - zbiór zasad, którymi należy się posługiwać podczas tworzenia bazy danych. - określa się reguły, zgodnie z którymi dane umieszcza się w strukturach. - określane są również dozwolone operacje. Definicja struktury danych - specyfikacja reprezentacji dozwolonych w modelu obiektów (encji) oraz ich związków. 11

W informatyce wyróżniamy główne modele baz danych: hierarchiczny model danych relacyjny model danych grafowy model danych obiektowy model danych sieci semantyczne strumieniowe bazy danych (nowe podejście) 12

Encja* Model danych Dostawca Wytwarza dane bazując na Wykorzystuje dane bazując na Klient Odnosi się do Pakiet wymiany Definiuje format wynikowy dla Odnosi się do Definiowa nie płatności pojęciowy opis w przestrzeni problemów - zawierający definicje encji i ich atrybutów (Klient, na przykład, jest encją, i może mieć atrybuty: Nazwisko i Adres), oraz ograniczeń Punkt zapytań Umożliwia dostęp do Dane* (np. Nazwisko_Klienta nie może być puste). opcjonalne * - wskazuje przejście do innego obszaru modelowania Model danych zawiera również opis relacji między encjami i dowolnymi ograniczeniami tych relacji (na przykład menedżerowie nie mogą posiadać więcej niż pięć osób składających im raporty) Model danych nie zawiera żadnych odwołań do fizycznego formatu systemu. 13

Model danych ID Budynek Wejście Ulica ID Lokalizacja ID Działka Data nabycia Encja Właściciel Adres Podatek Relacja Atrybut 14

Model danych (MD) Jest NARZĘDZIEM właściwej INTERPRETACJI DANYCH ZAWARTYCH w BD Jest ZBIOREM ABSTRAKCYJNYCH POJĘĆ umożliwiających ODWZOROWANIE (reprezentację) OKREŚLONYCH WŁASNOŚCI danej organizacji MD powinien być ADEKWATNY do MODELOWANEJ RZECZYWISTOŚCI każda BD i SZBD muszą stosować się do ZASAD określonego MD 15

Termin MODEL DANYCH (MD) jest najczęściej używany w znaczeniu: ARCHITEKTURA DANYCH oraz ZBIÓR WYMAGAŃ W odniesieniu do danych MD jako architektura tozbiór zasad: definiowania danych (zbiór reguł określających strukturę danych) operowania danymi (zbiór reguł określających jak operuje się danymi) integralności danych (zbiór reguł określających, które stany BD są poprawne) MD jako zbiór wymagań to zintegrowany, niezależny od implementacji zestaw wymagań dotyczący danych dla pewnej aplikacji (np. kartoteka_zatrudnionych, przetwarzanie _zamówień) 16

TYPY MODELI DANYCH: PROSTE MD (OBIEKTY REPREZENTOWANE SĄ PRZY POMOCY STRUKTURY REKORDÓW ZGRUPOWANYCH W STRUKTURACH PLIKÓW); 17

TYPY MODELI DANYCH: KLASYCZNE (HIERARCHICZNE, SIECIOWE I RELACYJNE); Relacja SSAN jest kluczem Kolumna SSAN Nazwisko DataUr Krotka 999-9 Borek 7/52 18

TYPY MODELI DANYCH: Mapa Semantyczna Użytkownik danych * Kim ja jestem? (użytkownik123) * Co ja chcę? (a, b, c) *Jakie jednostki są mi potrzebne? Zwracane wartości odpowiadające zapotrzebowanej liście elementów (a=10m, b=8kg, c=0,05kg) SEMANTYCZNE Usługa Dostępu do Danych (DOSTARCZAJĄ METODY REPREZENTOWANIA ZNACZENIA INFORMACJI): 1. Wysyła zapotrzebowania do Mapy Semantycznej 2. Pobiera informację z Mapy Semantycznej 3. Ustala adres źródła danych * wywołuje standard metody dostępu * wysyła listę elementów do pozyskania 4. Pobiera zwracane dane z adresu źródła danych * pobiera wartości źródłowe * pobiera jednostki źródłowe 5. Przemieszcza się do źródła skojarzeń * wywołuje standard metody skojarzeń * wysyła listę elementów do pozyskania 6. Pobiera zwracane dane z adresu skojarzeń * pobiera wymagane wartości * Pobiera wymagane jednostki Lista potrzeb * Kto potrzebuje? (użytkownicy123) * Co potrzebują? (a, b, c) Nazwane potrzeby z wartościami (a=10m, b=8kg, c=0,05kg) Zwracana lista * adres źródła metadanych (adres źródła: http://sourcemetadata.html) * nazwa elementu w źródle danych (lista źródeł: x, y, z) * adres metadanych skojarzeń (adres skojarzeń: http://assocmetadata.html) lista nazw źródłowych (x, y, z) Metoda Dostępu do Danych lista nazw źródłowych (x, y, z) z wartościami (x=10m, y=5kg, z=3kg) Skojarzenia a = x b = y + z c = 0,1*z Źródlo danych (nie koniecznie baza danych) * lista danych źrółowych z wartościami (x=10m, y=3kg, z=5kg) * lista zapotrzebowań (a, b, c) 19

TYPY MODELI DANYCH: Nadklasa obiektu OBIEKTOWE MD należy do (OBIEKTY I KLASY OBIEKTÓW POWIĄZANE MECHANIZMAMI ABSTRAKCJI) Ssak Atrybuty ma Klasa obiektu należy do jest częścią Obiekt Obiekt złożony -KolorOczu: int +getkoloroczu:int ma należy do Atrybuty Część obiektu Pies -czestszczek: int +szczek:void Kot -czestmiaucz: int +miaucz:void OwczarekNiem Pudel +jestniem:void +jestfranc:void 20

MODELE POJECIOWE (konceptualne) (Najbardziej zbliżone do sposobu analizy modelowanej rzeczywistości klasyfikacja obiektów i związków z punktu widzenia projektanta) Relacje między obiektami Plik jest jest Kontener Miejsce pracy Obszar pracy jest jest zawiera jest Dana jest Obiekt Urządzenie reprezentuje zawiera Elementy wizualne Ikona modyfikuje jest na jest Elementy widoczne Widok Okno zawiera zawiera jest na Wskaźnik jest jest w Sterowanie steruje jest na Kursor Ekran modyfikuje steruje Mechanizmy interakcji Wejście reprezentuje reprezentuje jest jest Mysz Klawiatura 21

MODELE IMPLEMENTACYJNE (Reprezentacja BD w konkretnym systemie, np. ACCESS, SYBASE, ORACLE, INFORMIX, DB2, INGRES, MS SQL) JDBC-database ResultSet interaction ResultSet Dyrektywa Aplikacja PreparedSet Połączenie ResultSet Dyrektywa wywoływalna Menedżer urządzeń Sterownik Oracle JDBC ODBC Most Sterownik Sybase BD Oracle Sterownik ODBC BD Sybase BD ODBC 22

MODELE FIZYCZNE (Sposób organizacji danych w pamięci pomocniczej, zewnętrznej) CPU CACHE PAMIĘĆ GŁÓWNA DYSK Składowanie podstawowe Składowanie drugoplanowe TAŚMA Składowanie trzecioplanowe Zapotrzebowanie na dane Dane odpowiadające zapotrzebowaniu 23

BD bez względu na zastosowany model danych, powinna być efektywnie zarządzana: PODSTAWOWE FUNKCJE ZARZĄDZANIA BD OPTYMALIZACJA ZAPYTAŃ (najkrótszy czas odpowiedzi) ZAPEWNIENIE INTEGRALNOŚCI BD (nie może być stanu BD, który nie istnieje w modelowanej rzeczywistości) ZARZĄDZANIE DOSTĘPEM WSPÓŁBIEŻNYM (użytkownik BD nie może odczuć obecności drugiego użytkownika) ODTWARZANIE POPRZEDNIEGO STANU BD (odporność na awarie) OCHRONA DANYCH (uniemożliwienie niepowołanego dostępu) 24

SYSTEM BAZY DANYCH (SBD) to BD i ŚRODKI PROGRAMOWE umożliwiające współbieżne operowanie na niej. SBD opisuje pewne aspekty rzeczywistości danej organizacji. FUNDAMENTALNĄ CECHĄ SBD jest zapewnienie UŻYTKOWNIKOM takiego poziomu ABSTRAKCJI WIDZENIA DANYCH, który przesłania szczegóły dotyczące ich struktury fizycznej. Uzyskuje się to dzięki oferowanym MODELOM DANYCH (MD) 25

ZINTEGROWANA BAZA DANYCH PrWs 1 PrWs 2...... PrWs n PROGRAMY WSADOWE SYSTEM BAZY DANYCH BEZPOŚREDNI UŻYTKOWNICY 26

UŻYTKOWNICY SCHEMAT ZEWNĘTRZNY 1..... SCHEMAT ZEWNĘTRZNY N POZIOM ZEWNĘTRZNY SCHEMAT POJĘCIOWY POZIOM POJĘCIOWY SCHEMAT IMPLEMENTACYJNY POZIOM IMPLEMENTACJI BD BD BD POZIOM FIZYCZNY TRÓJPOZIOMOWA ARCHITEKTURA SBD 27

JĘZYKI BAZ DANYCH: standard SQL 92 JĘZYK DEFINIOWANIA DANYCH (Data definition language DDL) umożliwia definiowanie struktury danych przechowywanych w BD, a więc tworzenie schematu implementacyjnego JĘZYK MANIPULOWANIA DANYMI (Data manipulation language DML) umożliwia wypełnianie BD nowymi danymi, ich aktualizację i usuwanie JĘZYK STEROWANIA DANYMI (Data control language DCL) - nadaje uprawnienia użytkownikowi BD JĘZYK ZAPYTAŃ (Query language) umożliwia pobieranie z BD informacji zgodnych z wyspecyfikowanymi warunkami 28

POWSZECHNYM STANDARDEM w dziedzinie języków baz danych oferowanym przez większość firm producentów jest SQL. UMOŻLIWIA ON ZARÓWNO DEFINIOWANIE JAK I MANIPULOWANIE DANYMI, A ZATEM ZAWIERA KOMPONENTY DDL I DML. 29

WŁAŚCIWOŚCI BAZY DANYCH: WSPÓŁDZIELENIE DANYCH (BD jest używana przez więcej niż jedną osobę) INTEGRACJA DANYCH (jeden logiczny element danych jest przechowywany tylko w jednym miejscu BD, nie ma niepotrzebnych lub powtarzających się danych) INTEGRALNOŚĆ DANYCH (BD powinna dokładnie odzwierciedlać obszar analizy, którego ma być modelem) NIEZALEŻNOŚĆ DANYCH: LOGICZNA (dane oddzielone są od procesów, które używają tych danych; organizacja danych jest niewidoczna dla użytkowników i programów użytkowych korzystających z danych) FIZYCZNA (rozszerzenie lub zmiana struktury fizycznej komputera nie wpływa na stan BD) 30

WŁAŚCIWOŚCI BAZY DANYCH: ABSTRAKCJA DANYCH (BD może być traktowana jako model informacyjny, odwzorowujący istotne właściwości rzeczywistości) RÓŻNORODNOŚĆ SPOSOBÓW WIDZENIA DANYCH (możliwość używania tzw. FILTRÓW PERSPEKTYW, które są nakładane na te same dane) ZASTOSOWANIE DEKLARATYWNYCH JĘZYKÓW PROGRAMOWANIA (co zrobić? a nie, jak zrobić?) BEZPIECZEŃSTWO DANYCH (zabezpieczenie BD przed utratą integralności) WIZUALIZACJA INTERFEJSÓW DO DANYCH (możliwość wyświetlania tych samych danych w różnych formatach) 31

KORZYŚCI WYNIKAJĄCE ZE STOSOWANIA BAZ DANYCH: ZMNIEJSZENIE NADMIAROWOŚCI (wykorzystywanie danych przez różnych użytkowników nie powoduje dublowania aplikacji) WSPÓŁDZIELENIE DANYCH (współbieżne wykorzystywanie danych przez różnych użytkowników i aplikacje) AUTORYZACJA DOSTĘPU DO DANYCH (ograniczenie dostępu do danych problem niepowołanych użytkowników) REPREZENTACJA ZŁOŻONYCH ZWIĄZKÓW MIEDZY DANYMI (związki intuicyjne, semantyczne) INTEGRALNOŚĆ DANYCH (zabezpieczenie przed definiowaniem niewłaściwych związków relacji i nadawaniem złych wartości) MOŻLIWOŚĆ OCHRONY PRZED AWARIAMI (odtwarzanie stanu BD sprzed awarii) 32

KIEDY NALEŻY ROZWAŻYĆ ZASADNOŚĆ STOSOWANIA BD: SEKWENCYJNE ŚCIŚLE SKORELOWANE, przetwarzanie danych przez jednego użytkownika NISKI STOPIEŃ wzajemnego powiązania danych MECHANIZMY w zakresie współbieżności dostępu, bezpieczeństwa danych, odtwarzania BD po awariach oraz definiowania ograniczeń integralności, planowanego do wdrożenia SZBD są nadmiarowe w stosunku do potrzeb OGRANICZENIA czasowe i finansowe 33

SYSTEM BAZY DANYCH Aplikacja zawiera formularze i raporty z którymi użytkownik wchodzi w interakcję Silnik bazy danych nie jest częścią bazy danych Baza danych zawiera fizyczną implementację schematu i danych Schemat bazy danych opisuje model danych w bazie Model danych jest pojęciowym opisem przestrzeni problemów Przestrzeń problemów jest dobrze zdefiniowaną częścią realnego świata 34

Formularze WWW WE / WY programów Interfejs SQL Polecenia SQL Przepływ poleceń Wykonanie projektu Obliczenia operatorowe Analizowanie składni Optymalizacja Interakcje Silnik Menedżer Transakcji Menedżer Zabezpieczeń Kontrola Współbieżności Pliki i metody dostępu Menedżer er buforów Menedżer przestrzeni dysku Menedżer odtwarzania stanu początkowego DBMS Pliki indeksów Pliki danych Katalog systemowy Odniesienia Baza Danych 35

Relacyjny model danych 36

37

1970r E. F. CODD, badacz zatrudniony przez firmę IBM, opublikował dzieło swojego życia pt. RELACYJNY MODEL LOGICZNY DLA DUŻYCH BANKÓW DANYCH Edgar F. Codd (1923-2003) powstają relacyjne bazy danych (RBD) oparte na dwóch gałęziach matematyki Teorii mnogości i rachunku predykatów pierwszego rzędu 38

1979r E. F. CODD publikuje na konferencji - AUSTRALIAN COMPUTER SOCIETY pracę pt. Extending the Relational Database Model to Capture More Meaning, w której przedstawił rozszerzoną wersję relacyjnego modelu danych RM/T 1985r E. F. CODD formułuje zasady dla RBD Zasady E.F. Codda, znane jako Twelve Principles of Relational Databases, dostarczają kryteriów do definiowania relacyjnych systemów baz danych: 39

Kryteria relacyjności baz danych 1. Informacje są reprezentowane logicznie w tabelach. 2. Dane są logicznie dostępne przez podanie nazwy tabeli, wartości klucza podstawowego i nazwy kolumny. 3. Wartości NULL są traktowane w jednolity sposób jako brakujące informacje. Nie mogą być traktowane jako puste łańcuchy znaków, puste miejsca czy zera. 4. Metadane (dane dotyczące bazy danych) są umieszczane w bazie danych dokładnie tak, jak zwykłe dane.. 5. Język (instrukcje) obsługi danych ma możliwość definiowania danych i perspektyw, więzów integralności, przeprowadzenia autoryzacji, obsługi transakcji i manipulacji danymi. 6. Perspektywy reagują na zmiany swoich tabel bazowych. Analogicznie zmiana w perspektywie powoduje automatycznie zmianę w tabeli bazowej. 7. Istnieją pojedyncze operacje pozwalające na wyszukiwanie, wstawianie, uaktualnianie i usuwanie danych. 8. Operacje użytkownika są logicznie oddzielone od fizycznych danych i metod dostępu. 9. Operacje użytkownika pozwalają na zmianę struktury bazy danych bez konieczności tworzenia od nowa bazy oraz aplikacji ją obsługującej. 10. Więzy integralności są umieszczone i dostępne w metadanych, a nie w programie obsługi baz danych. 11. Język manipulacji danymi powinien działać bez względu na to, jakie i jak są rozmieszczone fizyczne dane oraz nie powinien wymagać żadnych zmian, gdy fizyczne dane są centralizowane lub rozpraszane. 12. Operacje na pojedynczych rekordach przeprowadzane w systemie podlegają tym samym zasadom i więzom, co operacje na zbiorach danych. 40

RMD dostarcza tylko jednego sposobu reprezentowania jest nim dwuwymiarowa tabela nazwana relacją RBD jest zbiorem relacji Atrybut istotna (konieczna, nieodłączna) cecha obiektu encji. NRPRAC A1; NAZWISKOPRAC A2; STATUS A3; 41

POLA (ATRYBUTY, KOLUMNY) Nazwy pól sid nazwisko login wiek gpa 50000 Drabek dra@music 19 3.3 REKORDY (KROTKI, WIERSZE) 53666 Jurek jurek@tlen2 18 3.4 53688 Kowal kwl@cert 18 3.2 53650 Kowal kwl@edu 19 3.8 53831 Mizera mar@math 11 1.8 53832 Kwiatkowski kwiat@interia 12 2.0 42

ATRYBUTY WŁAŚCIWOŚCI: * * KLUCZOWE (jednoznacznie charakteryzują encję) * * NIEKLUCZOWE * * OBOWIĄZKOWE * * OPCJONALNE * * PUSTE (brak wartości, niepełna lub nieznana wartość NULL) * * WYLICZANE (wyprowadzenie wynik obliczeń lub konkatenacji innych atrybutów) * * JEDNO I WIELOWARTOŚCIOWE (wiele wartości tego samego typu) * * SEGMENTOWE (więcej niż jeden typ wartości). ATRYBUTY SŁUŻĄ DO NAZYWANIA KOLUMN RELACJI 43

DZIEDZINA (DOMENA) zbiór wszystkich możliwych wartości atrybutu A. NR_PRAC(zbiór liczb całkowitych) NAZWISKO_PRAC(łańcuch znaków) STATUS(łańcuch znaków) KAŻDY ATRYBUT relacji musi mieć określony typ atomowy, tzn. musi należeć do typów elementarnych (np. typ znakowy lub całkowity) WARTOŚĆ ATRYBUTU nie może być rekordem, listą lub tablicą, żadną inną strukturą, którą można podzielić na inne części SCHEMAT RELACJI to nazwa relacji oraz jej zbiór atrybutów (mimo, że atrybuty schematu relacji nie stanowią listy, bowiem są zbiorem, to często trzeba określić standardowy porządek atrybutów) 44

RELACJĄ /INSTANCJĄ R(A 1, A 2,... A n ) określoną na danym schemacie relacji R nazywamy skończony zbiór krotek takich, że: { a 1, a 2,... a n : a 1 dom(a 1 ),.., a n dom(a n ) } gdzie : R(A 1, A 2,... A n ) jest relacją określoną na schemacie relacji R(A 1, A 2,... A n ) 101 JANKOWSKI PROFESOR 102 FALCZAK ASYSTENT 103 KONIECZNY DOCENT SCHEMAT RELACJI jest w zasadzie niezmienny, INSTANCJA może często ulegać zmianom RELACJA jest TABELĄ, dla której spełniony jest zbiór zasad, przedstawiony na następnym slajdzie 45

Każda relacja w BD ma jednoznaczną nazwę (dwuwymiarowa tabela jest matematycznym zbiorem, a zbiory muszą być jednoznacznie nazwane) Każda kolumna w relacji ma jednoznaczną nazwę w ramach jednej relacji (kolumna też jest zbiorem) Wszystkie wartości w kolumnie muszą być tego samego typu Porządek kolumn w relacji nie jest istotny (schemat relacji lista nazw jej kolumn jest również zbiorem matematycznym) 46

Każdy wiersz w relacji musi być różny (powtórzenia wierszy nie są w relacji dozwolone) Porządek wierszy nie jest istotny (relacja jest zbiorem) Każde pole leżące na przecięciu kolumny i wiersza w relacji powinno zawierać wartość atomowa (zbiór wartości nie jest dozwolony na jednym polu relacji) PERSPEKTYWA Wirtualna tabela, składająca się z pól jednej lub większej liczby rzeczywistych tabel 47

PRZEDMIOTY NAZWA_PRZEDMIOTU POZIOM KOD_KURSU NR_PRAC SYSTEMY RELACYJNYCH BAZ DANYCH 1 SRD 234 PROJEKTOWANIE RELACYJNYCH BAZ DANYCH 1 PRD 234 DEDUKCYJNE BAZY DANYCH 3 DBD 345 OBIEKTOWE BAZY DANYCH 3 OBD 345 ROZPROSZONE BAZY DANYCH 2 RBD 237 WYKŁADOWCY NR_PRAC NAZWISKO_Prac Status Tabele 234 237 345 DOROSZ T JURCZAK S ELSNER R PZ PU AD PRZEDMIOTY i WYKŁADOWCY spełniaj niają podane reguły, a więc stanowią reprezentację relacji 48

KLUCZE RELACJI Mówimy, że atrybut, lub zbiór atrybutów {A 1, A 2,...,A n } tworzy klucz relacji, jeżeli: wszystkie pozostałe atrybuty relacji są funkcyjnie zależne od tych atrybutów (nie może się więc zdarzyć, aby dwie różne krotki relacji R, były 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ą funkcyjnie zależne, tzn. KLUCZ MUSI BYĆ MINIMALNY ZALEŻNOŚĆ FUNKCYJNA ATRYBUT B RLACJI JEST FUNKCYJNIE ZALEŻNY OD ATRYBUTU A TEJ RELACJI, JEŚLI ZAWSZE KAŻDEJ WARTOŚCI a ATRYBUTU A ODPOWIADA NIE WIĘCEJ NIŻ JEDNA WARTOŚĆ b ATRYBUTU B A B 49

KLUCZE GŁÓWNE jedna lub więcej kolumn (atrybutów) tabeli (relacji), których wartości jednoznacznie identyfikują każdy wiersz (krotkę) w tabeli (relacji,/instancji) KLUCZE KANDYDUJĄCE kolumna lub zbiór kolumn, które mogą występować jako jednoznaczny identyfikator. Każdy klucz kandydujący musi być jednoznaczny i nie może mieć wartości NULL. KLUCZE OBCE atrybuty, które są kluczowe w innym zbiorze encji (pozwalają tworzyć połączenia danych przechowywanych w różnych tabelach, tzn. RELACJE MIĘDZY TABELAMI NADKLUCZ zbiór atrybutów, który zawiera klucz 50

POWIĄZANIA (relacje) pomiędzy parą tabel istnieją wtedy, gdy dwie tabele są połączone przez klucz główny (podstawowy) i klucz obcy KAŻDA RELACJA jest opisywana przez: TYP RELACJI, TYP UCZESTNICTWA, jaki obie tabele mają w tej relacji oraz STOPIEŃ UCZESTNICTWA tych tabel 51

TYPY RELACJI: * * JEDEN DO JEDNEGO jeżeli pojedynczemu rekordowi w pierwszej tabeli przyporządkowany jest najwyżej jeden rekord z drugiej i odwrotnie, pojedynczemu rekordowi z drugiej tabeli może być przyporządkowany najwyżej jeden rekord z pierwszej * * JEDEN DO WIELU jeżeli pojedynczemu rekordowi z pierwszej tabeli może odpowiadać więcej rekordów z drugiej, podczas gdy pojedynczemu rekordowi z drugiej tabeli odpowiada najwyżej jeden rekord z pierwszej * * WIELE DO WIELU - jeżeli pojedynczemu rekordowi w pierwszej tabeli może odpowiadać jeden lub wiele rekordów z drugiej tabeli i odwrotnie, pojedynczy rekord z drugiej tabeli może być powiązany z jednym lub większa liczba rekordów z pierwszej 52

PRACOWNICY Id_prac Imie_prac 100 Stefan 101 Jerzy 102 Adam Nazwisko_prac Krawczyk Rojek Zdziarski JEDEN DO JEDNEGO WYNAGRODZENIA Id_prac Stawka_godz 100 25$ 101 18$ 102 32$ Premia 150$ 200$ 130$ 53

JEDEN DO WIELU STUDENCI Id_stud Imie_stud 601 Grzegorz 603 Kazimierz 608 Edward Nazwisko_stud Majek Sturski Zgorzelak W POLU ID_STUDENTA liczba 603 MOŻE SIĘ POJAWIĆ WIELE RAZY Id_instrumentu 10 17 23 35 Id_studenta 601 603 608 603 54

WIELE DO WIELU STUDENCI Id_stud Imie_stud 601 Grzegorz 603 Kazimierz 608 Edward Nazwisko_stud Majek Sturski Zgorzelak W POLU Id_studenta liczba 603 MOŻE SIĘ POJAWIĆ WIELE RAZY Zaś Id_instrumentu - liczba 17 - może się pojawić dla więcej niż jednego studenta Id_instrumentu 10 17 17 23 35 Id_studenta 601 603 608 608 603 55

TYPY UCZESTNICTWA * * OBOWIĄZKOWY jeżeli w tabeli A muszą znajdować się pewne rekordy zanim zabierzemy się do wprowadzania rekordów do tabeli B, wówczas mówimy, że uczestnictwo tabeli A jest obowiązkowe; * * OPCJONALNY - odwrotnie. STOPIEŃ UCZESTNICTWA określa minimalną i maksymalną liczbę rekordów w jednej tabeli, które można powiązać z pojedynczym rekordem drugiej tabeli 56

TYP UCZESTNICTWA POSREDNICY Id_posred Imie_posred 202 Agata 203 Mateusz 204 Waldemar Obowiązkowy Nazwisko_posred Mroczek Nawrot Szybki KLIENCI Id_klienta Id_posred Imie_klienta Nazwisko_klienta 95 202 Tadeusz Kowalczyk 96 203 Adam Cieciera 97 204 Józef Sztaba 57

DIAGRAMY ZWIĄZKÓW ENCJI MODELOWANIE SEMANTYCZNE (dane potrzebne do realizacji danej BD nie zawsze należą nieodwołalnie do jednej z trzech kategorii: ENCJI, ZWIĄZKU lub ATRYBUTU) PRZYKŁAD dane nt.ślubu: ENCJA SLUB, ATRYBUTY DATA,MIEJSCE,NAZWISKA PANNY i PANA MŁODEGO; ATRYBUT- STAN CYWILNY związany z encją OSOBA; ZWIĄZEK między encjami MEZCZYZNA i KOBIETA. PROJEKTANT POWINIEN PODJĄĆ DECYZJĘ, KTÓRY z w/w PUNKTÓW WIDZENIA JEST NAJWAŻNIEJSZY DLA BRANEJ POD UWAGĘ BD 58

PRZEKSZTAŁCANIE DIAGRAMU E R W SCHEMAT RELACYJNY DLA KAŻDEJ ENCJI TWORZYMY TABELĘ (nazwa tabel w liczbie mnogiej) IDENTYFIKUJĄCY ATRYBUT STAJE SIĘ KLUCZEM GŁÓWNYM; WSZYSTKIE INNE ATRYBUTY ENCJI STAJĄ SIĘ NIEGŁÓWNYMI ATRYBUTAMI TABELI DLA KAŻDEGO ZWIĄZKU JEDEN DO WIELU wstawiamy klucz główny tabeli ze strony jeden linii związku do tabeli reprezentującej stronę wiele linii związku OPCJONALNOŚĆ po stronie WIELE LINI ZWIĄZKU mówi nam, czy klucz obcy reprezentujący związek może być NULL, czy nie (jeśli strona wiele jest wymagana,to klucz obcy nie może być NULL) 59

DLA RBD nie istnieje uzgodniona składnia wyrażania struktury danych (ciąg szablonów złożonych z nazw, relacji, atrybutów i deklaracji kluczy głównych i obcych) OPEROWANIE DANYMI (Jak wstawiamy dane do relacji? Jak usuwamy dane z relacji? Jak wyszukujemy dane w relacji?) ALGEBRA RELACYJNA zbiór następujących operatorów: 60

SELEKCJA (OGRANICZENIE) operator, który bierze jedną relację jako swoją i produkuje w wyniku jedną relację (pozioma maszyna do cięcia wydobywa wiersze, które pasują do podanego warunku) [RESTRICT] RZUT - operator, który bierze jedną relację jako swój argument i produkuje w wyniku jedną relację (pionowa maszyna do cięcia wydobywa wiersze, ale uwzględnia w nich tylko wyspecyfikowane kolumny) [PROJECT] 61

62 Tabele poddawane działaniom algebry relacyjnej Wiek ocena snazwa sid 35,0 10 Robert 58 35,0 5 Grażyna 44 55,0 8 Lena 31 35,0 9 Jadwiga 28 S2 35,0 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 wiek ocena sname sid S1 11/12/04 103 58 10/10/04 101 22 dzien bid sid R1

σ ocena>8 (S2) selekcja sid 28 snazwa Jadwiga ocena 9 Wiek 35,0 S2 58 Robert 10 35,0 sid snazwa ocena Wiek 28 Jadwiga 9 35,0 31 Lena 8 55,0 44 Grażyna 5 35,0 58 Robert 10 35,0 π wiek (S2) projekcja Wiek 35,0 55,0 63

π snazwa;ocena (S2) snazwa ocena projekcja Jadwiga Robert 9 10 Grażyna 5 S2 Robert 10 sid snazwa ocena Wiek 28 31 Jadwiga Lena 9 8 35,0 55,0 selekcja 44 Grażyna 5 35,0 58 Robert 10 35,0 π snazwa;ocena (σ ocena>8 (S2)) snazwa Jadwiga Robert 9 10 ocena 64

ILOCZYN KARTEZJAŃSKI - operator, który bierze dwie relacje jako swój argument i produkuje w wyniku jedną relację złożoną ze wszystkich możliwych kombinacji wierszy z wejściowych tabel (w praktyce rzadko stosowany) [PRODUCT] RÓWNOZŁĄCZENIE - Operator, który bierze dwie relacje jako swój argument i produkuje w wyniku jedną relację wynikową, składającą się z wierszy, w których wartości w kolumnach złączenia są takie same (iloczyn kartezjański, a następnie selekcja) [EQUIJOIN] 65

66 35,0 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 wiek ocena sname sid S1 11/12/04 103 58 10/10/04 101 22 dzien bid sid R1 11/12/04 103 58 35,0 10 Robert 58 10/10/04 101 22 55,5 8 Lena 31 11/12/04 103 58 55,5 8 Lena 31 11/12/04 103 58 45,0 7 Dorota 22 22 22 sid 101 101 bid 35,0 45,0 wiek 10/10/04 10 Robert 58 10/10/04 7 Dorota 22 dzien ocena sname sid S1 % R1 iloczyn kartezjański

67 wiek ocena sname sid 35,5 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 S1 11/12/04 103 58 10/10/04 101 22 dzien bid sid R1 103 101 bid 11/12/04 10/10/04 dzien 35,5 45,0 wiek S1Å R.sid=S.sid R1 ocena sname sid 10 Robert 58 7 Dorota 22 równozłączenie

ZŁĄCZENIE NATURALNE identyczne jak równozłączenie, ale bez powtarzających się kolumn złączenia (iloczyn kartezjański, selekcja, a następnie rzut, który nie bierze pod uwagę powtórzeń kolumn złączenia) [JOIN] ZŁĄCZENIE ZEWNĘTRZNE pozwala zachować wiersze z każdej lub z obydwu relacji wejściowych, bez względu na to, czy mają odpowiadające sobie wiersze w drugiej relacji: 68

LEWOSTRONNE ZŁĄCZENIE zachowuje nie pasujące wiersze z relacji będącej pierwszym argumentem operatora złączenia PRAWOSTRONNE ZŁĄCZENIE - zachowuje nie pasujące wiersze z relacji będącej drugim argumentem operatora złączenia OBUSTRONNE ZŁĄCZENIE - zachowuje nie pasujące wiersze z obydwu relacji będących argumentami operatora złączenia 69

SUMA operator, który bierze dwie zgodne relacje (mają taką samą strukturę te same kolumny określone na tych samych dziedzinach) i produkuje jedną relację wynikową [UNION] PRZECIĘCIE operator o działaniu przeciwnym do działania sumy (suma uwzględnia wszystkie wiersze z obu relacji, przecięcie natomiast uwzględnia tylko wiersze wspólne dla obu relacji) [INTERSECTION] 70

71 35,5 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 wiek ocena sname sid S1 35,5 10 Robert 58 35,0 5 Grażyna 44 55,5 8 Lena 31 35,0 9 Jadwiga 28 wiek ocena sname sid S2 35,0 9 Jadwiga 28 45,0 7 Dorota 22 55,5 8 Lena 31 35,5 10 Robert 58 35,0 5 Grażyna 44 wiek ocena sname sid S1 4 S2 suma (union)

72 35,5 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 wiek ocena sname sid S1 35,5 10 Robert 58 35,0 5 Grażyna 44 55,5 8 Lena 31 35,0 9 Jadwiga 28 wiek ocena sname sid S2 55,5 8 Lena 31 35,5 10 Robert 58 wiek ocena sname sid S1 3 S2 przecięcie

RÓŻNICA - operator, który bierze dwie relację jako swój argument i produkuje w wyniku jedną relację wynikową, składającą się z wierszy znajdujących się tylko w pierwszej relacji (pierwszy argument) i nie znajdujących w drugiej relacji (drugi argument) [DIFFERENCE] 73

74 wiek ocena sname sid 35,5 10 Robert 58 55,5 8 Lena 31 45,0 7 Dorota 22 S1 35,0 5 Grażyna 44 35,5 10 Robert 58 55,5 8 Lena 31 35,0 9 Jadwiga 28 wiek ocena sname sid S2 45,0 7 Dorota 22 wiek ocena sname sid S1 S2 różnica

Tabele używane do demonstrowania złączeń, prezentowanych na następnych slajdach. 75

Iloczyn kartezjański Kod SQL iloczynu 76

LEWE ZŁĄCZENIE [ ZEWNĘTRZNE ] Oznacza, że z tabeli podanej po lewej stronie instrukcji złączenia zwrócone zostaną wszystkie rekordy. Dotyczy to również rekordów z lewej tabeli, które nie mają odpowiadających im rekordów w tabeli prawej. Wtedy kolumny z prawej tabeli zwracają wartości NULL. Wielu profesjonalistów rekomenduje konfigurację złączeń zewnętrznych jako lewych złączeń dla zachowania konsekwencji 77

Lewe złączenie [zewnętrzne] Kod SQL lewego złączenia 78

PRAWE ZŁĄCZENIE [ ZEWNĘTRZNE ] Zwrócone zostaną wszystkie rekordy z tabeli podanej po prawej stronie instrukcji złączenia, nawet jeśli nie istnieją pasujące rekordy w lewej tabeli. Kolumny z lewej tabeli zwracają wartości NULL 79

Prawe złączenie [zewnętrzne] Kod SQL prawego złączenia 80

ZŁĄCZENIE WEWNĘTRZNE Oznacza, że nie pasujące wiersze z obu tabel zostaną opuszczone. Jeśli w zapisie ANSI nie zostanie jawnie zdefiniowany typ złączenia, jest to zachowanie domyślne. 81

Złączenie wewnętrzne Kod SQL złączenia wewnętrznego 82

Instrukcja UNION (nie będąca częścią standardu SQL92) tworzy sumę dwóch lub więcej tabel. Oto jej składnia: [TABLE] Query (UNION [ALL] [TABLE] Query),... Parametr Query reprezentuje instrukcję SELECT, nazwę procedury składowanej lub nazwę tabeli składowanej, poprzedzonej słowem kluczowym TABLE. Opcja ALL sprawia dodawanie wszystkich rekordów, jest więc zalecana nawet w przypadku braku powtarzających się wierszy. 83

Wszystkie kwerendy w operacji UNION muszą zwracać tę samą liczbę pól. Jednak pola te nie muszą mieć tego samego rozmiaru, ani typu danych Składanie kolumn odbywa się według ich porządku w klauzulach kwerend, nie według ich nazw W pierwszej instrukcji SELECT (jeżeli taka istnieje) można używać aliasów, aby zmienić nazwy zwracanych kolumn Klauzulę ORDER BY można zastosować na końcu ostatniej kwerendy, aby nadać określony porządek zwracanym danym. Należy używać nazw kolumn z pierwszej kwerendy. Klauzule GROUP BY i HAVING można użyć w każdym argumencie kwerendy w celu grupowania zwracanych danych Tablicy wynikowej UNION nie można aktualizować 84

Poniższa instrukcja tworzy sumę wszystkich wierszy tabeli BOOKS oraz wierszy tabeli LIBRARY_FLAT, zawierających cenę większą od 25,00 zł (Price > 25.00), sortując tabelę wynikową według kolumny Title: TABLE BOOKS UNION ALL SELECT * FROM LIBRARY_FLAT WHERE Price > 25.00 ORDER BY Title 85

Tabele używane do demonstrowania instrukcji UNION 86