Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki

Wielkość: px
Rozpocząć pokaz od strony:

Download "Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki"

Transkrypt

1 Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki Pokój: 57/B4 witold.rekuc@pwr.edu.pl Telefon: www: kbo.pwr.edu.pl/pracownik/rekuc dr inż. Witold Rekuć Technologia przetwarzania danych

2 TECHNOLOGIA PRZETWARZANIA DANYCH Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium, które zostanie przeprowadzone na przedostatnim wykładzie Literatura. C. Date. Wprowadzenie do systemów baz danych. WNT, J. Ullman, J. Widom. Podstawowy wykład z systemów baz danych. WNT, Materiały do wykładu dr inż. Witold Rekuć Technologia przetwarzania danych

3 dr inż. Witold Rekuć Technologia przetwarzania danych

4 dr inż. Witold Rekuć Technologia przetwarzania danych 4

5 Plan wykładu I. Opis programu przedmiotu, organizacja zajęć oraz zasady zaliczania i oceniania. Technologia relacyjnych baz danych. Aplikacja z bazą danych. Relacyjna baza danych i jej struktura. II. III. IV. Operacje aktualizacji danych. Więzy integralności. Formularze Definicja, zastosowanie i realizacja operacji na tabelach: selekcja, projekcja, równozłączenie, theta-złączenie, złączenie naturalne. V. Raporty VI. Definicja, zastosowanie i realizacja operacji na tabelach: operacje teoriomnogościowe: suma, iloczyn, różnica niesymetryczna, dopełnienie. VII. Definicja, zastosowanie i realizacja operacji na tabelach: dzielenie. VIII. Podstawy normalizacji relacyjnej bazy danych: zależności funkcyjne i ich rodzaje, dekompozycja relacji i ich schematów, formy normalne schematów relacji. IX. Podsumowanie. Sprawdzian teoretyczny (P) dr inż. Witold Rekuć Technologia przetwarzania danych 5

6 I. Technologia relacyjnych baz danych. Aplikacja z bazą danych. Relacyjna baza danych i jej struktura.. Podstawowe pojęcia systemu bazy danych.. Założenia modelu relacyjnego.. Klucze tabel (relacji). dr inż. Witold Rekuć Technologia przetwarzania danych 6

7 . Podstawowe pojęcia systemu bazy danych Baza danych System bazy danych System zarządzania bazą danych Meta baza danych (opis bazy danych) Interfejs aplikacja-szbd Aplikacje/programy Interfejs użytkowników aplikacji... Język użytkowników bazy danych... Język administratora /projektanta bazy danych Użytkownicy aplikacji Użytkownicy bazy danych Administrator /projektant bazy danych dr inż. Witold Rekuć Technologia przetwarzania danych 7

8 Baza danych Meta baza danych (opis bazy danych) System zarządzania bazą danych Aplikacje/programy Formularze Raporty Formularze Raporty Język użytkowników aplikacji... Język użytkowników bazy danych... Język administratora /projektanta bazy danych Użytkownicy aplikacji Użytkownicy bazy danych Administrator bazy danych dr inż. Witold Rekuć Technologia przetwarzania danych 8

9 System bazy danych: jest składnikiem systemu informatycznego przechowującym i udostępniającym dane o pewnej rzeczywistości, zwanej często dziedziną przedmiotową, przechowuje i udostępnia dane wspierając cele stawiane systemowi informatycznemu, którego jest składnikiem, obsługuje aplikacje składowe systemu informatycznego oraz czasami bezpośrednio użytkowników końcowych, sam składa się z trzech podstawowych składników: bazy danych, metabazy danych i systemu zarządzania bazą danych. Baza danych jest zbiorem danych przechowywanych na nośniku komputerowym, spełniających określone wymagania: przedstawiających rzeczywistość poprawnie (niezawodnie i prawdziwie) i w wymaganym zakresie. Meta baza danych jest zbiorem danych o danych pamiętanych w bazie danych jest opisem: ich struktury, reguł poprawności (integralności) i reguł dostępu do nich z aplikacji i użytkowników końcowych. dr inż. Witold Rekuć Technologia przetwarzania danych 9

10 System zarządzania bazą danych jest oprogramowaniem, spełniającym aktywną rolę w systemie bazy danych: korzystając z systemu operacyjnego realizuje dostęp do danych w bazie danych: ich zapis do oraz odczyt z bazy danych, oferuje programistom aplikacji i użytkownikom końcowym określony język dostępu do danych w bazie danych i metabazie, korzystając z opisu w metabazie struktury oraz reguł poprawności (integralności) danych ma zapewnić poprawność danych zapisywanych do bazy danych, korzystając z opisu w metabazie struktury oraz reguł dostępu do danych z aplikacji i użytkowników końcowych ma zapewnić, że ten dostęp jest zgodny z uprawnieniami/ zezwoleniami, wspiera realizację funkcji specjalnego użytkownika systemu bazy danych, jakim jest administrator. dr inż. Witold Rekuć Technologia przetwarzania danych 0

11 Administrator (systemu) bazy danych jest rolą osoby lub grupy osób, głównie spełniających następujące zadania: instalowanie i utrzymywanie w stanie aktualnym oprogramowania systemu bazy danych (SZBD, narzędzia), alokacja bazy danych w systemie pamiętania bazy danych i planowanie przyszłych wymagań pamięciowych, modyfikowanie struktury bazy danych stosowanie do wymagań aplikacji, zapewnienie bezpieczeństwa systemu, bieżąca kontrola dostępu użytkowników do bazy danych, kontrola i zapewnienie wydajności systemu, planowanie skladowania danych (backup) i ich odzyskiwania, wykonywanie składowania i odzyskiwania danych utrzymywanie archiwów danych, utrzymywanie kontaktów z dostawcami sporządzanie raportów o funkcjonowaniu systemu dr inż. Witold Rekuć Technologia przetwarzania danych

12 . Założenia modelu relacyjnego Laboratorium IBM San Jose (California) A relational model for large shared data banks Communication of the ACM, :6,970 System R - prototyp oprogramowania Edgar F. Codd dr inż. Witold Rekuć Technologia przetwarzania danych

13 Czym jest relacyjna baza danych? dr inż. Witold Rekuć Technologia przetwarzania danych

14 Baza danych jest zbiorem nazwanych tabel, składających się z prostych (niepodzielnych na podkolumny) kolumn* Kategorie Kasety Klienci Rewersy * w teorii baz danych, w odniesieniu do tabeli używa się terminu relacja, ponieważ przyjmuje się, że znana z matematyki relacja n-członowa jest formalnym modelem tabeli dr inż. Witold Rekuć Technologia przetwarzania danych 4

15 Każda tabela w bazie danych ma nagłówek*, który jest zbiorem nazw kolumn/pól wraz z przyporządkowanymi im zbiorami dopuszczalnych wartości, które można w nich (kolumnach/polach) umieszczać. nazwy kolumn/pól przyporządkowanie NumeryKlientów Nazwiska Imiona Adresy zbiory dopuszczalnych wartości (dziedziny) Zbiór dopuszczalnych wartości, które można umieszczać w kolumnie tabeli nazywa się także dziedziną wartości lub krótko dziedziną. * W teorii baz danych, w odniesieniu do nagłówka tabeli używa się terminu schemat relacji, który ma nazwę i na który składają się nazwy atrybutów (kolumn/pól) oraz funkcja o nazwie dom przyporządkowująca atrybutom dziedziny ich wartosci. dr inż. Witold Rekuć Technologia przetwarzania danych 5

16 W bazie danych może być w tym samym czasie wiele tabel o tym samym nagłówku, posiadających jednak różne nazwy. Klienci_rozliczeni Klienci_zalegający dr inż. Witold Rekuć Technologia przetwarzania danych 6

17 Każda kolumna tabeli musi mieć określoną dziedzinę wartości, czyli zbiór wartości, które moga pojawić się w kolumnie. Dziedzinę określa się przez podanie: typu danych oraz dodatkowych ograniczeń. Pod typem danych rozumie się skończony, nazwany zbiór wartości wraz z dopuszczalnymi operacjami na tych wartościach oraz relacjami jakie można między tymi wartościami ustalać. Przykłady typów danych Typ danej Zbiór wartości Operacje/relacje Liczba całkowita (integer) , -, *, <, >, >=,... Pojedyncza precyzja (liczba rzeczywista).408e e 45; 0;.4098E E8 +, -, *, /, <, >, >=,... Tak/Nie (boolean) {PRAWDA, FAŁSZ} and, or, not,... Tekst krótki (short text) ciag znaków o długości , &, <, >, >=,... Data krótka <, >, =,... dr inż. Witold Rekuć Technologia przetwarzania danych 7

18 Przykłady definicji kolumn Nazwa kolumny Typ danej Ograniczenia Nrklienta Liczba całkowita between and 0000 >= and <=0000 Kapitał Pojedyncza precyzja >=0000 Czy stały klient Nazwa Tak/Nie Tekst krótki Data rejestracji Data krótka <=Date() Zdefiniujmy kolumny tabeli w bazie danych MS ACCESS dr inż. Witold Rekuć Technologia przetwarzania danych 8

19 Tabela jest zbiorem wierszy, przy czym każdy wiersz jest, odpowiadającym nagłówkowi tabeli, zestawem wartości pochodzących z dziedzin wartości Klienci wiersze (rekordy, krotki) kolumny (pola, atrybuty) dr inż. Witold Rekuć Technologia przetwarzania danych 9

20 Dodanie nowego wiersza/rekordu do tabeli Klienci Nowy wiersz 7 Beck Andrzej Jawalska 7 7 Zbiór dopuszczalnych numerów klientów Beck Zbiór dopuszczalnych nazwisk Andrzej Zbiór dopuszczalnych imion Jawajska 7 Zbiór dopuszczalnych adresów dr inż. Witold Rekuć Technologia przetwarzania danych 0

21 Problem określoności wartości w kolumnach Podczas konstruowania nowego wiersza tabeli może okazać się, że nie jest możliwe określenie wartości dla niektórych pól wiersza. Przyczyna może być: - subiektywna: niewiedza osoby konstruującej wiersz, - obiektywna: natura opisywanego obiektu. Osoba Nr Nazwisko Nazwisko panieńskie Imię Imię Nr telefonu Klinton Regan Joanna 4 Regan Abejowska Hilary Joanna 4 55 Audiński Józef 4 Pafawagow Paweł 5 Jordański Andrzej Adam 56 6 Dolmedicka Dolmedicka Janina dr inż. Witold Rekuć Technologia przetwarzania danych

22 Projektując tabelę dla pewnego zastosowania powinniśmy rozstrzygnąć dla każdej jej kolumny: - czy wartość w kolumnie musi być zawsze określona, - czy wartość w kolumnie może, ale nie musi, być nieokreślona. Do oznaczenia nieokreśloności wartości atrybutu stosuje się słowo NULL Osoba Nr Nazwisko Nazwisko panieńskie Imię Imię Nr telefonu Klinton Regan Joanna null 4 4 Regan Audiński Pafawagow Abejowska null null Hilary Józef Paweł Joanna null null 4 55 null null 5 Jordański null Andrzej Adam 56 6 Dolmedicka Dolmedicka Janina null null dr inż. Witold Rekuć Technologia przetwarzania danych

23 Reakcja systemu bazy danych na dane niezgodne z ograniczeniem NULL not null Osoba Nr Nazwisko Nazwisko panieńskie Imię Imię Nr telefonu Klinton Regan Joanna null 4 Regan Abejowska Hilary Joanna 4 55 Audiński null Józef null null 4 Pafawagow null Paweł null null 5 Jordański null Andrzej Adam 56 6 Dolmedicka Dolmedicka Janina null null 7 Beck Andrzej null Jerzy odrzucony! 7 Beck null Andrzej Jerzy przyjęty! dr inż. Witold Rekuć Technologia przetwarzania danych

24 Nieokreśloność wartości w kolumnach i logika trójwartościowa 6 Dolmel Elektryczna 45 4 Czy Telefon = 45 4? PRAWDA (TRUE) 6 Dolmel Elektryczna 4 09 FALSZ (FALSE) 6 Dolmel Elektryczna NIE WIEM (UNKNOWN) NULL trzecia wartość logiczna dr inż. Witold Rekuć Technologia przetwarzania danych 4

25 Zerowa długość oraz nieokreśloność wartości w kolumnach typu tekstowego Do zapisu wartości tekstowych stosuje się cudzysłów. Cudzysłów pełni dwa zadania: - wskazuje początek i koniec tekstu, na przykład: Cameron, abc, - odróżnia wartości typu tekstowego od wartości innych typów, na przykład: i, i , true i true. Zapis oznacza tekst o zerowej długości, ponieważ cudzysłów zawiera zero znaków. Tekst o zerowej długości jest wartością OKREŚLONĄ (not NULL). Uwaga: znaki cudzysłowu nie są pamiętane razem za znakami tekstu Przykład 6 Dolmel Elektryczna tekst o zerowej długości 6 Dolmel Elektryczna Czy Telefon is NULL? FALSZ PRAWDA NULL dr inż. Witold Rekuć Technologia przetwarzania danych 5

26 Projektując tabelę dla pewnego zastosowania powinniśmy rozstrzygnąć dla każdej jej kolumny typu tekstowego: - czy wartość w kolumnie musi być zawsze niezerowej długości, - czy wartość w kolumnie może, ale nie musi, być zerowej długości. Jeżeli dopuszczamy zerową długość wartości w kolumnach tekstowych, to musimy określić jaki jest sens (interpretacja, znaczenie) takiej wartości. dr inż. Witold Rekuć Technologia przetwarzania danych 6

27 Przykład Jeżeli dla kolumny o nazwie Numer telefonu osoby dopuszczamy zerową długość wartości oraz wartość NULL, moglibyśmy przyjąć następującą interpretację każdego przypadku: Numer telefonu jest NULL : Numer telefonu jest zerowej długości : Numer telefonu jest niezerowej długości : osoba nie ma telefonu osoba ma telefon, ale tego numeru nie znamy osoba ma telefon i jest to podana wartość dr inż. Witold Rekuć Technologia przetwarzania danych 7

28 Reakcja systemu bazy danych na wartości niezgodne z ograniczeniem zerowej długości danych tekstowych not zero-length not null Osoba Nr Nazwisko Nazwisko panieńskie Imię Imię Nr telefonu Klinton Regan Joanna null 4 Regan Abejowska Hilary Joanna 4 55 Audiński null Józef null null 4 Pafawagow null Paweł null null 5 Jordański null Andrzej Adam 56 6 Dolmedicka Dolmedicka Janina null null 7 Andrzej Andrzej odrzucony! 7 Beck null Andrzej Jerzy przyjęty! 7 Beck null Andrzej null null przyjęty! dr inż. Witold Rekuć Technologia przetwarzania danych 8

29 Nieokreśloność wartości w kolumnach i operacje na wartościach oraz relacje między wartościami Operacje na wartościach nieokreślonych Możliwym jest, że: jeżeli X is NULL to X op Y is NULL gdzie op { +, -, *, /,... } Przykład: 00 + NULL is NULL Relacje między wartościami nieokreślonymi Możliwym jest, że: jeżeli X is NULL to X Q Y is UNKNOWN gdzie Q { =, >, <, >=,... } Przykład: 00 >= NULL is UNKNOWN Uwaga: funkcje wbudowane w systemach baz danych często ignorują wartości NULL, dlatego należy zadbać, by wartości w bazie danych, wszędzie gdzie jest to możliwe i konieczne, były zawsze określone. dr inż. Witold Rekuć Technologia przetwarzania danych 9

30 Zachowanie systemu bazy danych podczas wykonywania operacji na danych nieokreślonych Nr Nazwa Kwota Przykład MS ACCESS Nazwa Nazwa null Nazwa5 Nazwa suma(kwota) = 7 średnia(kwota) = 7,75 (=7/4) policz(kwota) = 4 policz(nazwa) = 5 Zachowanie systemu bazy danych podczas ustalania relacji między danymi nieokreślonymi Nr Nazwa Nazwa Kwota Kwota 00 0 Wyświetl wiersze, dla których: Kwota<Kwota 4 Nazwa Nr Nazwa Kwota Kwota 5 Nazwa Nazwa Nazwa6 400 dr inż. Witold Rekuć Technologia przetwarzania danych 0

31 Operatory logiki trójwartościowej q q p AND q p True False Unknown True True False Unknown False False False False Unknown Unknown False Unknown p OR q p True False Unknown True True True True False True False Unknown Unknown True Unknown Unknown p True False Unknown NOT p False True Unknown q p = q p True False Unknown True True False Unknown False False True Unknown Unknown True Unknown Unknown dr inż. Witold Rekuć Technologia przetwarzania danych

32 Uwagi podsumowujące i uzupełniające. Porządek kolumn w tabeli jest nieistotny (sens, semantyka kolumny nie zależy od jej pozycji w nagłówku). Osoba Nr Nazwisko Nazwisko panieńskie Imię Imię Nr telefonu Klinton Regan Joanna 4 Regan Abejowska Hilary Joanna 4 55 Audiński Józef 4 Pafawagow Paweł 5 Jordański Andrzej Adam 56 6 Dolmedicka Dolmedicka Janina Osoba Nr Nazwisko Nazwisko panieńskie Imię Imię Nr telefonu Klinton Regan Joanna 4 Regan Abejowska Joanna Hilary 4 55 Audiński Józef 4 Pafawagow Paweł 5 Jordański Adam Andrzej 56 6 Dolmedicka Dolmedicka Janina dr inż. Witold Rekuć Technologia przetwarzania danych

33 . Porządek wierszy w tabeli jest nieistotny (sens, semantyka wiersza nie zależy od jego pozycji w tebeli. Osoba Nr Nazwisko Nazwisko panieńskie Imię Imię Nr telefonu Klinton Regan Joanna 4 Regan Abejowska Hilary Joanna 4 55 Audiński Józef 4 Pafawagow Paweł 5 Jordański Andrzej Adam 56 6 Dolmedicka Dolmedicka Janina Osoba Nr Nazwisko Nazwisko panieńskie Imię Imię Nr telefonu Klinton Regan Joanna 4 5 Jordański Andrzej Adam 56 Audiński Józef 4 Pafawagow Paweł Regan Abejowska Hilary Joanna Dolmedicka Dolmedicka Janina dr inż. Witold Rekuć Technologia przetwarzania danych

34 . Wiersze tabeli mogą tworzyć wielozbiory (zestawy wierszy z duplikatami) po warunkiem, że dopuszcza się duplikaty wierszy. Osoba Nr Nazwisko Nazwisko panieńskie Imię Imię Nr telefonu 5 Klinton Jordański Audiński Regan Joanna Andrzej Józef Adam 4 56 wiersze zduplikowane 4 Pafawagow Paweł Regan Abejowska Hilary Joanna 4 55 Dolmedicka Dolmedicka Janina Jordański Andrzej Adam 56 Pafawagow Paweł wiersze zduplikowane dr inż. Witold Rekuć Technologia przetwarzania danych 4

35 4. Wartości w wierszach muszą być proste (skalarne, atomowe). Osoba Data urodzenia Nr Nazwisko Nazwisko panieńskie Imię Rok Miesiąc Dzień Nr telefonu Klinton Regan Audiński Regan Abejowska Joanna Hilary Józef struktura niedopuszczalna 4 5 Pafawagow Jordański Paweł Andrzej Dolmedicka Dolmedicka Janina Osoba Nr Nazwisko Nazwisko panieńskie Imię Data urodzenia Nr telefonu 4 5 Klinton Regan Audiński Pafawagow Jordański Regan Abejowska Joanna Hilary Józef Paweł Andrzej 998/09/ 998/0/ 998// 998/08/08 998/0/ struktura dopuszczalna 6 Dolmedicka Dolmedicka Janina 998/04/4 5. Tabela, która ma kolumny o dziedzinach wartości skalarnych jest w pierwszej postaci normalnej. 6. Wszystkie tabele relacyjnej bazy danych muszą być w, co najmniej, pierwszej postaci normalnej. dr inż. Witold Rekuć Technologia przetwarzania danych 5

36 . Klucze tabel (relacji) Kluczem tabeli nazywamy niepusty zbiór kolumn (atrybutów) taki, że: a) dla dowolnej pary różnych wierszy t i t tej tabeli, jego wartości dla obu tych wierszy są różne oraz b) żaden jego podzbiór właściwy nie spełnia tego (a) warunku. Przykład: Dokumenty Nr NrSprzedawcy NrNabywcy Data Kluczem w tabeli Dokumenty jest zbiór /0 / K = {Nr, NrSprzedawcy} /0 / Kluczem w tabeli Dokumenty nie może być zbiór: /0 4/ K = {Nr} K ' = {Nr, NrSprzedawcy, NrNabywcy} dr inż. Witold Rekuć Technologia przetwarzania danych 6

37 Inne przykłady: Osoba(Pesel, Nip, Nazwisko, Imię, DataUrodzenia) Klucz={Pesel}, Klucz={Nip} Egzamin(NrStudenta, KodPrzedmiotu, Data, Ocena) warianty kluczy: Klucz={NrStudenta, KodPrzedmiotu, Data} Klucz={NrStudenta, Data} Klucz={NrStudenta, KodPrzedmiotu} PozycjeDokumentu(Nr, NrSprzedawcy, Np,SmbTow, CenaNetto, Ilość) Klucz={Nr, NrSprzedawcy, Np}, Klucz={Nr, NrSprzedawcy, SmbTow} dr inż. Witold Rekuć Technologia przetwarzania danych 7

38 Każdy zbiór kolumn, który zawiera klucz (jako podzbiór kolumn) nazywany jest nadkluczem. Uwaga: nadklucz zawiera kolumny nadmiarowe, które faktycznie nie są potrzebne do wskazania wiersza. Uwagi:. Każda tabela, będąca zbiorem wierszy posiada co najmniej jeden klucz (bo nie zawiera dwóch lub więcej identycznych wierszy).. Jeżeli tabela ma więcej niż jeden klucz, to klucze te różnią się co najmniej jedną kolumną (atrybutem).. Klucze mogą być proste (jednokolumnowe) lub złożone (wielokolumnowe) dr inż. Witold Rekuć Technologia przetwarzania danych 8

39 Kluczem podstawowym tabeli nazywamy klucz, który ze względu na pewne cechy praktyczne zostaje arbitralnie wybrany spośród wszystkich kluczy tabeli. Wszystkie klucze tabeli nazywa się kandydującymi Przykład: Przedmiot (Kod, Nazwa, Opis), Kluczem podstawowy: K={Kod} Klucz kandydujący: K={Nazwa} Określoność wartości klucza podstawowego Klucz podstawowy tabeli musi mieć wartość określoną (NULL jest niedopuszczalne) dr inż. Witold Rekuć Technologia przetwarzania danych 9

40 Definicja tabeli w MS ACCESS (język graficzny) dr inż. Witold Rekuć Technologia przetwarzania danych 40

41 II. Operacje aktualizacji danych. Więzy integralności. Tabele w bazie danych są zmienne w czasie, a ich zmienność wynika z faktu, że muszą one być odzwierciedleniem zmieniającej się rzeczywistości. Aby tabele nadążały za rzeczywistością muszą być poddawane: redefinicji: dodawanie usuwanie kolumn, zmiana dziedzin wartości kolumn, zmiana dopuszczalnych zależności między wartościami, aktualizacji: dodawanie, usuwanie, zmiana wartości w wierszach. dr inż. Witold Rekuć Technologia przetwarzania danych 4

42 Operacje aktualizacji dodaj nowy wiersz do tabeli, usuń istniejący wiersz z tabeli, zmień wartości w wierszu obecnym w tabeli. Podstawowe wymaganie: w aktualizacji bazy danych musimy zapewnić poprawność bazy danych: Poprawność merytoryczna zgodność bazy danych z rzeczywistością Poprawność formalna zgodność bazy danych z regułami formalnymi dr inż. Witold Rekuć Technologia przetwarzania danych 4

43 Więzy integralnościowe Więzy integralnościowe to ograniczenia nałożone na wartości danych w bazie danych, które muszą być spełnione, aby mogły być prowadzone do bazy danych (aby była ona formalnie poprawna). Dają się wyrazić: deklaratywnie: za pomocą zdań logicznych lub interpretowanych jako logiczne lub proceduralnie: za pomocą napisanych przez użytkownika procedur lub funkcji zapamiętanych i uruchamianych przez system w celu sprawdzenia, czy ograniczenie jest spełnione. Podział ze względu na przedmiot ograniczenia: więzy dziedziny, więzy klucza, więzy integralności referencyjnej, inne więzy. dr inż. Witold Rekuć Technologia przetwarzania danych 4

44 Więzy dziedziny wartość w kolumnie tabeli musi należeć do dziedziny tej kolumny lub jeżeli jest to dopuszczalne może być nieokreślona (NULL). Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 56 5 Dolmed Medyczna Wstaw wiersz - Makrosoft Informatyczna A NULL Naruszenie więzów dziedziny dr inż. Witold Rekuć Technologia przetwarzania danych 44

45 Więzy klucza w tabeli nie mogą występować dwa lub więcej wierszy o tej samej wartości klucza; klucz podstawowy musi mieć wartość określoną. Firmy Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 Audi Audiego Pafawag Wagonowa 4 Iase Energetyczna 56 5 Dolmed Medyczna Wstaw wiersz NULL Makrosoft Informatyczna NULL Naruszenie więzów dziedziny Naruszenie więzów klucza Wstaw wiersz Makrosoft Informatyczna NULL dr inż. Witold Rekuć Technologia przetwarzania danych 45

46 Więzy integralności referencyjnej Odwołanie, odniesienie, referencja jednej tabeli do drugiej. Co to znaczy? Przykład Firmy Nr 0 4 Nazwa Nasza Firma Abeja Audi Pafawag Iase Ulica Nasza Abejowska Audiego Wagonowa Energetyczna KodMjc Telefon Miejscowości Kod Nazwa Wrocław Opole Wałbrzych KodWoj DL OP DL 5 Dolmed Medyczna 4 Kraków MP dr inż. Witold Rekuć Technologia przetwarzania danych 46

47 Dlaczego odwołanie, odniesienie, referencja jednej tabeli do drugiej musi być przedmiotem więzów integralności? Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza 4 Wrocław DL 4 Abeja Audi Pafawag Iase Abejowska Audiego Wagonowa Energetyczna Opole Wałbrzych Kraków OP DL MP 5 Dolmed Medyczna Pytanie do bazy danych: w jakich województwach mają siedziby firmy, z którymi handlujemy? Odpowiedź: DL i OP dr inż. Witold Rekuć Technologia przetwarzania danych 47

48 Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza 4 Wrocław DL Abeja Abejowska 4 55 Opole OP Audi Audiego Wałbrzych DL Pafawag Wagonowa 4 Iase Energetyczna 56 4 Kraków MP 5 Dolmed Medyczna 6 TP SA Telewizyjna Dodaj do tabeli Firmy wiersz Pytanie do bazy danych: w jakich województwach mają siedziby firmy, z którymi handlujemy? Odpowiedź: DL, OP,??? dr inż. Witold Rekuć Technologia przetwarzania danych 48

49 Firmy Nr Nazwa Ulica KodMjc Telefon Miejscowości Kod Nazwa KodWoj 0 Nasza Firma Nasza 4 Wrocław DL 4 Abeja Audi Pafawag Iase Abejowska Audiego Wagonowa Energetyczna Opole Wałbrzych Kraków OP DL MP 5 Dolmed Medyczna Usuń z tabeli Miejscowości ten wiersz Pytanie do bazy danych: w jakich województwach mają siedziby firmy, z którymi handlujemy? Odpowiedź: DL,???,??? dr inż. Witold Rekuć Technologia przetwarzania danych 49

50 Firmy Nr Nazwa Ulica KodMjc Telefon Miejscowości Kod Nazwa KodWoj 0 Nasza Firma Nasza 4 Wrocław DL 4 Abeja Audi Pafawag Iase Abejowska Audiego Wagonowa Energetyczna Opole Wałbrzych Kraków OP DL MP 5 Dolmed Medyczna Zmień kod Miejscowości na 4 Pytanie do bazy danych: w jakich województwach mają siedziby firmy, z którymi handlujemy? Odpowiedź: DL, OP,??? dr inż. Witold Rekuć Technologia przetwarzania danych 50

51 Firmy (Tabela odwołująca się) Miejscowości (Tabela odniesienia) Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza 4 Wrocław DL Abeja Abejowska 4 55 Opole OP Audi Audiego Wałbrzych DL Pafawag Wagonowa 4 Kraków MP 4 Iase Energetyczna 56 5 Dolmed Medyczna Dla każdego wiersza tabeli Firmy musi występować wiersz w tabeli Miejscowości taki, że: Firmy.KodMjc=Miejscowości.Kod Dla każdego wiersza tabeli Miejscowości może występować wiersz w tabeli Firmy taki, że: Firmy.KodMjc=Miejscowości.Kod dr inż. Witold Rekuć Technologia przetwarzania danych 5

52 Firmy (Tabela odwołująca się) Miejscowości (Tabela odniesienia) Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza 4 Wrocław DL Abeja Abejowska 4 55 Opole OP Audi Audiego Wałbrzych DL Pafawag Wagonowa 4 Kraków MP 4 Iase Energetyczna 56 5 Dolmed Medyczna Uwagi: pola (kolumny) wiążące wiersze obu tabel nazywamy polami pokrewnymi, pary powiązanych wierszy obu tabel nazywa się wierszami pokrewnymi, pary tabel tak powiązanych nazywa się tabelami pokrewnymi dr inż. Witold Rekuć Technologia przetwarzania danych 5

53 Firmy (Tabela odwołująca się) Miejscowości (Tabela odniesienia) Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza 4 Wrocław DL Abeja Abejowska 4 55 Opole OP Audi Audiego Wałbrzych DL 4 5 Pafawag Iase Dolmed Wagonowa Energetyczna Medyczna 56 4 Kraków Klucz = {Kod} MP Klucz = {Nr} Klucz obcy = {KodMjc} Dane są dwie tabele: To zwana tabelą odwołującą się Td zwana tabelą odniesienia (docelowa) Kluczem obcym tabeli To do tabeli Td nazywamy niepusty zbiór kolumn (atrybutów) To, którego wartości są wartościami klucza tabeli Td Więzy integralności referencyjnej Dla każdej wartości klucza obcego w tabeli odwołującej się musi istnieć wiersz (pokrewny) w tabeli odniesienia zawierający wartość tego klucza. dr inż. Witold Rekuć Technologia przetwarzania danych 5

54 Przykład : Student (Nr, Nazwisko, Adres) Klucz={Nr} Egzamin (NrStudenta, KodPrzedmiotu, Data, Ocena) Klucz={NrStudenta, KodPrzedmiotu, Data} KluczObcy do tabeli Student KO={NrStudenta} KluczObcy do tabeli Przedmiot KO={KodPrzedmiotu} Przedmiot (Kod, Nazwa) Klucz={Kod} tabela odniesienia tabela odwołująca się tabela odniesienia Przykład : Dostawca (Kod, Nazwa, Ulica, KodMjc) Miejscowość (Kod, Nazwa) Dostawa (KodDostawcy, SmbTowaru, Data, Ilość) Towar (Symbol, Nazwa, Cena, Jm) Wskaż klucze i klucze obce! Czy tabela może być jednocześnie odwołującą się i odniesienia? dr inż. Witold Rekuć Technologia przetwarzania danych 54

55 Przykład : dr inż. Witold Rekuć Technologia przetwarzania danych 55

56 Przykład - komentarz: Dokumenty(NrFaktury, NrSprzedawcy, NrNabywcy, Data) Klucz={NrFaktury, NrSprzedawcy} PozycjeDokumentów(NrFaktury, NrSprzedawcy, NrPozycji, SmbTow, Ilość, CenaNetto) Klucz={NrFaktury, NrSprzedawcy, NrPozycji} KluczObcy do tabeli Dokumenty KO={NrFaktury, NrSprzedawcy} Uwagi. Klucze obce mogą być proste (jednokolumnowe) lub złożone (wielokolumnowe).. Skład klucza obcego musi odpowiadać składowi klucza, do którego on się odwołuje. dr inż. Witold Rekuć Technologia przetwarzania danych 56

57 Inne więzy integralnościowe Więzy inne są specyficzne dla dziedziny zastosowań. Są one określone przez warunki, których niespełnienie byłoby świadectwem błędu w danych lub świadectwem naruszenia reguł organizacji, w której baza danych jest użytkowana. Przykłady:. Data dostawy nie może być wcześniejsza od daty zamówienia tej dostawy.. Dla każdego promotora liczba dyplomatów nie może być większa od 5.. Nie może być wykonane wypożyczenie książki czytelnikowi, który zalega ze zwrotem innych książek. dr inż. Witold Rekuć Technologia przetwarzania danych 57

58 Baza danych Meta baza danych (opis bazy danych) System zarządzania bazą danych Aplikacje/programy Formularze Raporty Formularze Raporty Język użytkowników aplikacji... Użytkownicy aplikacji Język użytkowników bazy danych... Użytkownicy bazy danych Język administratora /projektanta bazy danych Administrator /projektant bazy danych dr inż. Witold Rekuć Technologia przetwarzania danych 58

59 III. Formularze Dwie tabele z relacją :n Tabela Formularz Formularz z pod-formularzem dr inż. Witold Rekuć Technologia przetwarzania danych 59

60 Dwie tabele z relacją :n Formularz połączone dr inż. Witold Rekuć Technologia przetwarzania danych 60

61 Kolumnowy Tabelaryczny dr inż. Witold Rekuć Technologia przetwarzania danych 6

62 Arkusz danych Wyjustowany dr inż. Witold Rekuć Technologia przetwarzania danych 6

63 IV. Definicja, zastosowanie i realizacja operacji na tabelach: selekcja, projekcja, równo-złączenie, theta-złączenie Operacje na tabelach Operacje relacyjne Projekcja Selekcja Złączenia Dzielenie Operacje teoriomnogościowe Suma Iloczyn Różnica niesymetryczna Dopełnienie Przemianowanie dr inż. Witold Rekuć Technologia przetwarzania danych 6

64 Operacja projekcji Wyznacza tabelę o nagłówku (schemacie) ograniczonym do zbioru zadanych nazw kolumn (atrybutów) r(r) - tabela r o schemacie R poddawana projekcji X schemat nowej tabeli - zbiór zadanych nazw (X R) q(x) - tabela q o schemacie X, wynik projekcji q(x) = X ( r (R) ) = { t[x] : t r } gdzie t[x] oznacza wiersz powstały przez zredukowanie t do wartości atrybutów z X R X dr inż. Witold Rekuć Technologia przetwarzania danych 64

65 Przykład r({a,b,c,d}) A B C D a5 b c d a6 b4 c5 d a6 b4 c d a6 b4 c d a b c d {C,D} ( r ({A,B,C,D}) ) = q({c,d}) C c c5 c c c D d d d d d {A,B} ( r ({A,B,C,D}) ) = q({a,b}) A a5 a6 a B b b4 b dr inż. Witold Rekuć Technologia przetwarzania danych 65

66 Przykład Podaj nazwy i numery telefonów firm q({nazwa, Telefon}) = {Nazwa, Telefon} ( Firmy ({Nr, Nazwa, Ulica,KodMjc, Telefon})) q Firmy Nazwa Telefon Nr Nazwa Ulica KodMjc Telefon Nasza Firma 4 0 Nasza Firma Nasza 4 Abeja 4 55 Abeja Abejowska 4 55 Audi Pafawag {Nazwa, Telefon} Audi Pafawag Audiego Wagonowa Iase 56 4 Iase Energetyczna 56 Dolmed 5 Dolmed Medyczna wiersze zredukowane do X={Nazwa, Telefon} dr inż. Witold Rekuć Technologia przetwarzania danych 66

67 dr inż. Witold Rekuć Technologia przetwarzania danych 67

68 Przykład: Podaj kody miejscowości siedzib firm q({kodmjc}) = {KodMjc} ( Firmy ({Nr,Nazwa,Ulica,KodMjc,Telefon})) dr inż. Witold Rekuć Technologia przetwarzania danych 68

69 q Firmy KodMjc Nr Nazwa Ulica KodMjc Telefon 0 Nasza Firma Nasza 4 Abeja Abejowska 4 55 {KodMjc} Audi Pafawag Audiego Wagonowa 4 Iase Energetyczna 56 5 Dolmed Medyczna dr inż. Witold Rekuć Technologia przetwarzania danych 69

70 Przykład: Podaj kody miejscowości siedzib firm q({kodmjc}) = {KodMjc} ( Firmy ({Nr,Nazwa,Ulica,KodMjc,Telefon})) dr inż. Witold Rekuć Technologia przetwarzania danych 70

71 q KodMjc {KodMjc} Firmy Nr Nazwa 0 Nasza Firma Abeja Audi Pafawag Ulica Nasza Abejowska Audiego Wagonowa KodMjc Telefon Iase Energetyczna 56 5 Dolmed Medyczna dr inż. Witold Rekuć Technologia przetwarzania danych 7

72 Przykład Chcemy obliczyć wartość średnią obrotu miesięcznego w roku q({obrót}) = {Obrót} ( Obroty ({Miesiąc,Obrót}) ) q Obroty Obrót Miesiąc Obrót {Obrót} Styczeń Luty Marzec Kwiecień Maj czerwiec Zostaw duplikaty w tabeli wynikowej dr inż. Witold Rekuć Technologia przetwarzania danych 7

73 W języku SQL: select nazwa, telefon from Firmy; select distinct nazwa, telefon from Firmy; select * from Firmy; dr inż. Witold Rekuć Technologia przetwarzania danych 7

74 Operacja selekcji Wyznacza tabelę o nagłówku (schemacie) identycznym z nagłówkiem (schematem) tabeli zadanej, ale o wierszach spełniających pewien warunek selekcji r(r) F q(r) tabela r o nagłówku (schemacie) R poddawana selekcji warunek selekcji (formuła logiczna) tabela q o nagłówku (schemacie) R, wynik selekcji q(r) = F ( r (R) ) = { t : t r i F(t) = prawda } wiersze spełniające warunek selekcji dr inż. Witold Rekuć Technologia przetwarzania danych 74

75 Przykład r({a,b,c,d}) A B C D a5 a a6 4 a5 a6 4 a a6 4 a a a r ({A,B,C,D}) ) = q ({A,B,C,D}) B A B C D a6 4 a5 a6 4 a a6 4 a r ({A,B,C,D}) ) = q ({A,B,C,D}) B A B C D and D< a6 4 a r ({A,B,C,D}) ) = q ({A,B,C,D}) B=4 or D< A B C D a5 a a6 4 a5 a6 4 a a6 4 a a a dr inż. Witold Rekuć Technologia przetwarzania danych 75

76 Przykład Podaj dane miejscowości z województwa dolnośląskiego q({kod,nazwa,kodwoj}) = KodWoj=DL ( Miejscowości ({Kod,Nazwa,KodWoj}) ) Miejscowości q Kod Nazwa Wrocław KodWoj DL Wrocław DL Wałbrzych DL Kod Nazwa KodWoj KodWoj=DL Opole OP Wałbrzych DL 4 Warszawa MZ 5 6 Katowice Kraków SL MP dr inż. Witold Rekuć Technologia przetwarzania danych 76

77 dr inż. Witold Rekuć Technologia przetwarzania danych 77

78 q({... })= (KodMjc=) and (Telefon is NULL) (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon})) and dr inż. Witold Rekuć Technologia przetwarzania danych 78

79 q({... })= (KodMjc=) or (Telefon is NULL) (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon})) or dr inż. Witold Rekuć Technologia przetwarzania danych 79

80 Realizacja selekcji w SQL select * from Miejscowości where KodWoj = DL ; select * from Firmy where (KodMjc = ) and (Telefon IS NULL); select * from Firmy where (KodMjc = ) or (Telefon IS NULL); dr inż. Witold Rekuć Technologia przetwarzania danych 80

81 Złożenie operacji projekcji i selekcji q(x) = X ( F ( r (R) ) Przykład Podaj nazwy firm z Opola, które nie mają określonego numeru telefonu q({nazwa})= {Nazwa} ( (KodMjc=) and (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon}))) (Telefon is NULL) Firmy q Nr 0 Nazwa Nasza Firma Ulica Nasza KodMjc Telefon 4 Nazwa Abeja Abejowska 4 55 Pafawag Pafawag Wagonowa Audi {Nazwa} ( (KodMjc=) and (Telefon is NULL) Audi Audiego 4 Iase Energetyczna 56 5 Dolmed Medyczna dr inż. Witold Rekuć Technologia przetwarzania danych 8

82 q({nazwa})= {Nazwa} ( (KodMjc=) and (Telefon is NULL) (Firmy({Nr,Nazwa,Ulica,KodMjc,Telefon}))) W języku graficznym: dr inż. Witold Rekuć Technologia przetwarzania danych 8

83 W języku SQL: select Nazwa from Firmy where KodMjc = and Telefon IS NULL; dr inż. Witold Rekuć Technologia przetwarzania danych 8

84 Operacje złączenia Problem: chcemy uzyskać zestawienie firm z nazwami miejscowości. Firmy Nr Nazwa 0 Nasza Firma Abeja Audi Pafawag Ulica Nasza Abejowska Audiego Wagonowa KodMjc Telefon Miejscowości Kod Nazwa KodWoj Wrocław DL Opole OP Wałbrzych DL Wojewodztwa Kod Nazwa DL Dolnośląskie OP Opolskie 4 Iase Energetyczna 56 5 Dolmed Dokumenty Medyczna PozycjeDokumentu Nr NrSprzerdawcy Np SmbTow CenaNetto Ilość Nr NrSprzerdawcy NrNabywcy Data /0 0 00,00 0 / / ,50 00 / / ,00 50 / /0 00,00 00 / /0 00,00 0 / / ,50 0 4/ /0 0 00,00 45 Towary Smb Nazwa 00 Pasztet 00 Mortadela Jm kg kg StawkaVat 7% 7% /0 /0 /0 /0 / ,50 7,80,0,00 4, Chipsy Kawa Jakobs paczka 400g paczka 00g 7% 7% 4/ , Makrela kons. puszka 50g 7% dr inż. Witold Rekuć Technologia przetwarzania danych 84

85 Złączenie tabel Theta-złączenie Pełne złączenie (full-join) Złączenie prawostronne (right-join) Złączenie lewostronne (left-join) Złączenie naturalne Równo-złączenie (=) Pozostałe-theta (>, <, >=, <=, <> ) dr inż. Witold Rekuć Technologia przetwarzania danych 85

86 Operacja równo-złączenia Dane są: r(r) tabela r o nagłówku (schemacie) R, A R s(s) tabela s o nagłówku (schemacie) S, B S R i S nie zawierają tych samych nazw (R S = Ø) q(r S) = r [ A=B ] s = { t : t[r] r, t[s] s i t[a] = t[b] } r R A s S B v v t v v dr inż. Witold Rekuć Technologia przetwarzania danych 86

87 Przykład r (A,B,C,D) A B C D a5 b c d a6 b4 c d a6 b4 c d a6 b4 c d a b c d S (CK, CN) CK CN c cn c cn c cn c4 cn4 q(a,b,c,d,ck,cn) := r [ C=CK ] s A B C D CK CN a5 b c d c cn a6 b4 c d c cn a6 b4 c d c cn a6 b4 c d c cn a b c d c cn dr inż. Witold Rekuć Technologia przetwarzania danych 87

88 Przykład Firmy Nr Nazwa 0 Nasza Firma Abeja Audi Pafawag Ulica Nasza Abejowska Audiego Wagonowa KodMjc Telefon Miejscowości Kod Nazwa KodWoj Wrocław DL Opole OP Wałbrzych DL 4 Iase Energetyczna 56 5 Dolmed Medyczna Firmy [ KodMjc = Kod ] Miejscowości Firmy Nr 0 4 Nazwa Nasza Firma Abeja Audi Pafawag Iase Ulica Nasza Abejowska Audiego Wagonowa Energetyczna KodMjc Telefon Miejscowości Kod Nazwa KodWoj Wrocław DL Opole OP Wałbrzych DL 5 Dolmed Medyczna dr inż. Witold Rekuć Technologia przetwarzania danych 88

89 Firmy Nr 0 4 Nazwa Nasza Firma Abeja Audi Pafawag Iase Ulica Nasza Abejowska Audiego Wagonowa Energetyczna KodMjc Telefon Miejscowości Kod Nazwa KodWoj Wrocław DL Opole OP Wałbrzych DL 5 Dolmed Medyczna Firmy [ KodMjc = Kod ] Miejscowości Zestawienie firm Nr Nazwa Ulica KodMjc Telefon Kod Nazwa (Mjc) KodWoj 0 Nasza Firma Nasza 4 Wrocław DL Abeja Abejowska 4 55 Wałbrzych DL Audi Audiego Opole OP Pafawag Wagonowa Opole OP 4 Iase Energetyczna 56 Wałbrzych DL 5 Dolmed Medyczna Wrocław DL dr inż. Witold Rekuć Technologia przetwarzania danych 89

90 Firmy [ KodMjc = Kod ] Miejscowości dr inż. Witold Rekuć Technologia przetwarzania danych 90

91 Firmy [ ] Miejscowości = Firmy Miejscowości - iloczyn kartezjański dr inż. Witold Rekuć Technologia przetwarzania danych 9

92 Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj 0 Nasza Firma Nasza 4 Wrocław DL Abeja Abejowska 4 55 Opole OP Audi Audiego Wałbrzych DL Pafawag Wagonowa 4 Iase Energetyczna 56 5 Dolmed Medyczna Firmy [ ] Miejscowości = Firmy Miejscowości Nr Nazwa Ulica KodMjc Telefon Kod Nazwa KodWoj - iloczyn kartezjański { { { { { { Nasza Firma Nasza Firma Nasza Firma Abeja Abeja Abeja Audi Audi Audi Pafawag Pafawag Pafawag Iase Iase Iase Dolmed Dolmed Dolmed Nasza Nasza Nasza Abejowska Abejowska Abejowska Audiego Audiego Audiego Wagonowa Wagonowa Wagonowa Energetyczna Energetyczna Energetyczna Medyczna Medyczna Medyczna Wrocław Opole Wałbrzych Wrocław Opole Wałbrzych Wrocław Opole Wałbrzych Wrocław Opole Wałbrzych Wrocław Opole Wałbrzych Wrocław Opole Wałbrzych DL OP DL DL OP DL DL OP DL DL OP DL DL OP DL DL OP DL dr inż. Witold Rekuć Technologia przetwarzania danych 9

93 Złożenie operacji projekcji, selekcji i równo-złączenia q(x) = X ( F ( r [A=B] s ) Przykład {Dokumenty.Data} ( Miejscowości.Nazwa= Wałbrzych ( Dokumenty [NrNabywcy=Nr] Firmy [KodMjc=Kod ] Miejscowości )) dr inż. Witold Rekuć Technologia przetwarzania danych 9

94 równo-złączenie projekcja selekcja dr inż. Witold Rekuć Technologia przetwarzania danych 94

95 Podaj zestawienie towarów sprzedawanych poszczególnych województwach Iloczyn kartezjański tabel dr inż. Witold Rekuć Technologia przetwarzania danych 95

96 Równo-złączenie wielu tabel dr inż. Witold Rekuć Technologia przetwarzania danych 96

97 Równo-złączenie tabel po polach o tych samych nazwach Te pola mają identyczne nazwy, ale różny sens!!! dr inż. Witold Rekuć Technologia przetwarzania danych 97

98 Równo-złączenie tabel po polach o różnych nazwach, ale mających ten sam sens (wariant ) Znajdź dane firmsprzedawców dr inż. Witold Rekuć Technologia przetwarzania danych 98

99 Równo-złączenie tabel po polach o różnych nazwach, ale mających ten sam sens (wariant ) Znajdź dane firmnabywców dr inż. Witold Rekuć Technologia przetwarzania danych 99

100 Równo-złączenie tabel po polach o różnych nazwach, ale mających ten sam sens (wariant ) Znajdź dane firm, w dokumencie występują jednocześnie w dwóch rolach: sprzedawcy i nabywcy dr inż. Witold Rekuć Technologia przetwarzania danych 00

101 Równo-złączenie w języku SQL select Firmy.Nazwa, Miejscowości.Nazwa from Firmy inner join Miejscowości on Firmy.KodMjc=Miejscowości.Kod; select Firmy.Nazwa, Miejscowości.Nazwa from Firmy inner join Miejscowości on Firmy.KodMjc=Miejscowości.Kod where Firmy.Telefon is Null; select Dokumenty.NrFaktury, Firmy.Nazwa, Dokumenty.Data from ( PozycjeDokumentu inner join Dokumenty on (PozycjeDokumentu.NrSprzedawcy = Dokumenty.NrSprzedawcy) and (PozycjeDokumentu.NrFaktury = Dokumenty.NrFaktury) ) inner join Firmy on Dokumenty.NrSprzedawcy = Firmy.Nr; dr inż. Witold Rekuć Technologia przetwarzania danych 0

102 Zadania F( Nr, Nazwa ) T ( Smb, Nazwa ) n a na n b nb n c nc 4 n4 D (NrD, NrS, NrN,Data) P ( NrD, NrS, Np, Smb, Ilosc, Cena) d a 0 d b 5 d a 0 4 d a d b 7 c 4 5 a 5 c b 4 4 c 0 5 F Firmy, T Towary, D Dokumenty, P PozycjeDokumentu dr inż. Witold Rekuć Technologia przetwarzania danych 0

103 Oblicz: ) {Data}(D) ) NrS= and NrN=(D), NrS= or NrN=(D) ) {NrD,NrS}( Smb=a(P)) ) D [NrS=Nr] F, D [NrN=Nr] F, D [Nrd=Nrd,NrS=NrS] P Napisz wyrażenie algebraiczne dla żądań: ) Podaj nazwy firm, które coś kupiły w dniu 'd'. ) Podaj nazwy towarów kupionych przez firmę o nazwie 'n'. ) Podaj dni, w których kupiono towar o nazwie 'na'. 4) Podaj nazwy towarów sprzedanych po cenie >. dr inż. Witold Rekuć Technologia przetwarzania danych 0

104 Podaj nazwy firm, które coś kupiły w dniu 'd'. {Nazwa}( Data= d (F[Nr=NrN]D)) dr inż. Witold Rekuć Technologia przetwarzania danych 04

105 Podaj nazwy towarów kupionych przez firmę o nazwie 'n'. {T.Nazwa} F.Nazwa= n ( F.Nazwa= n T[Smb=Smb]P[NrD=NrD,NrS=NrS]D[NrN=Nr]F)) dr inż. Witold Rekuć Technologia przetwarzania danych 05

106 Podaj dni, w których kupiono towar o nazwie 'na'. {D.Data} T.Nazwa= na (T[Smb=Smb] T.Nazwa= na P[NrD=NrD,NrS=NrS]D)) dr inż. Witold Rekuć Technologia przetwarzania danych 06

107 Podaj nazwy towarów sprzedanych po cenie >. {T.Nazwa} Cena> (T[Smb=Smb]P)) dr inż. Witold Rekuć Technologia przetwarzania danych 07

108 Złączenie tabel Theta-złączenie Pełne złączenie (full-join) Złączenie prawostronne (right-join) Złączenie lewostronne (left-join) Złączenie naturalne Równo-złączenie (=) Pozostałe-theta (>, <, >=, <=, <> ) dr inż. Witold Rekuć Technologia przetwarzania danych 08

109 Operacja Teta-złączenia Dane są: r(r) tabela r o schemacie R, A R s(s) tabela s o schemacie S, B S R i S nie zawierają tych samych nazw (R S = Ø) Θ { >, <, >=, <=, =, <> } - operator Teta r q(r S) = r [ AΘB ] s = { t : t[r] r, t[s] s i t[a] Θ t[b] } R S A s B v v t v v Θ v v dr inż. Witold Rekuć Technologia przetwarzania danych 09

110 Przykład r A B r C D a a5 a5 a a a6 4 a6 4 a a r [ B > D ] r = A B C D a5 a a6 4 a5 a6 4 a a6 4 a a a dr inż. Witold Rekuć Technologia przetwarzania danych 0

111 Przykład Grupa Autokar Nazwa Liczność Numer rej Pojemność Pielgrzymka 0 WRU 49 5 Studenci 50 DW Emeryci 55 WCX 8 60 Szkoła 0 WWX Urząd Miejski 0 WRA 0 Pafawag 0 DW Podać autokary, które mogą obsłużyc poszczególne grupy turystyczne [Grupa] [Liczność] <= [Autokar].Pojemność ] Grupa Autokar Nazwa Liczność Numer rej Pojemność Pielgrzymka 0 WRU 49 5 Studenci 50 DW Emeryci 55 WCX 8 60 Szkoła 0 WWX Urząd Miejski 0 WRA 0 Pafawag 0 DW dr inż. Witold Rekuć Technologia przetwarzania danych

112 W języku graficznym: W języku SQL: select Autokar.Numer rej, Grupa.Nazwa from Autokar, Grupa where Grupa.Liczność <= Autokar.Pojemność; dr inż. Witold Rekuć Technologia przetwarzania danych

113 Operacja złączenia naturalnego Dane są: r(r) tabela r o schemacie R, s(s) tabela s o schemacie S, R i S nie muszą być rozłączne q(r S) = r s = { t : t[r] r, t[s] s } dr inż. Witold Rekuć Technologia przetwarzania danych

114 Przykład r A B r B C a b b5 c a5 b b c a b b6 c4 a6 b5 b c a b r r = A B C a b c a b c a b c a b c a6 b5 c dr inż. Witold Rekuć Technologia przetwarzania danych 4

115 Przykład ( iloczyn kartezjański!!! ) r A B r C D a b c5 d a5 b c d a b r r = A B C D a b c5 d a b c d a5 b c5 d a5 b c d a b c5 d a b c d dr inż. Witold Rekuć Technologia przetwarzania danych 5

116 Baza danych Meta baza danych (opis bazy danych) System zarządzania bazą danych Aplikacje/programy Formularze Raporty Formularze Raporty Język użytkowników aplikacji... Użytkownicy aplikacji Język użytkowników bazy danych... Użytkownicy bazy danych Język administratora /projektanta bazy danych Administrator /projektant bazy danych dr inż. Witold Rekuć Technologia przetwarzania danych 6

117 V. Raporty dr inż. Witold Rekuć Technologia przetwarzania danych 7

118 dr inż. Witold Rekuć Technologia przetwarzania danych 8

119 dr inż. Witold Rekuć Technologia przetwarzania danych 9

120 VI. Definicja, zastosowanie i realizacja operacji na tabelach: operacje teoriomnogościowe: suma, iloczyn, różnica niesymetryczna, dopełnienie Operacje na tabelach Operacje relacyjne Projekcja Selekcja Złączenia Dzielenie Operacje teoriomnogościowe Suma Iloczyn Różnica niesymetryczna Dopełnienie Przemianowanie dr inż. Witold Rekuć Technologia przetwarzania danych 0

121 Operacje teoriomnogościowe suma tabel Dane są tabele o jednakowych nagłówkach (schematach): r(r) s(r) Przykład r(r) s(r) = q(r) = { t : t r lub t s } r A B s A B q A B a b a5 b a b a5 b a b a5 b a b a6 b4 a b a6 b4 a b a6 b4 a b a b a b dr inż. Witold Rekuć Technologia przetwarzania danych

122 Realizacja operacji sumy tabel w MS ACCESS za pomocą kwerendy dołączającej dr inż. Witold Rekuć Technologia przetwarzania danych

123 a) r s q := r s b) c) r s r s kwerenda dołączająca r kwerenda tworząca tabelę q kwerenda tworząca tabelę rob {z duplikatami} q kwerenda dołączająca kwerenda dołączająca rob {z duplikatami} kwerenda tworząca tabelę usuń duplikaty {bez duplikatów} dr inż. Witold Rekuć Technologia przetwarzania danych

124 Kwerenda dołączająca: Realizacja operacji sumy tabel w SQL Kwerenda sumująca: select * from r union all select * from s; insert into r(a,b) select s.a, s.b from s; insert into r select s.* from s; {z duplikatami} select * from r union select * from s; {bez duplikatów} dr inż. Witold Rekuć Technologia przetwarzania danych 4

125 Operacje teoriomnogościowe iloczyn tabel Dane są tabele o jednakowych schematach: r(r) s(r) r(r) s(r) = q(r) = { t : t r i t s } Przykład r A B s A B a b a5 b a5 b a b a b a6 b4 a6 b4 a b q A a5 a a6 B b b b4 a b dr inż. Witold Rekuć Technologia przetwarzania danych 5

126 Realizacja operacji iloczynu tabel w MS ACCESS za pomocą kwerendy wybierającej q := r s {r.*} (r [ r.a =s.a,..., r.a n =s.a n ] s) r A B s A B q A B a b a5 b a5 b {r.a,r.b} (r [ r.a = s.a, r.b = s.b ] s) a5 b a b a b a b a6 b4 a6 b4 a6 b4 a b a b dr inż. Witold Rekuć Technologia przetwarzania danych 6

127 złączenie po wszystkich polach dr inż. Witold Rekuć Technologia przetwarzania danych 7

128 Realizacja operacji iloczynu tabel w SQL MS ACCESS: select r.* from r inner join s on (r.a=s.a) and r.b=s.b); PostgreSQL: select r.* from r intersect select s.* from s; select r.* from r intersect all select s.* from s; dr inż. Witold Rekuć Technologia przetwarzania danych 8

129 Operacje teoriomnogościowe różnica niesymetryczna tabel Dane są tabele o jednakowych nagłówkach (schematach): r(r) s(r) r(r) s(r) = q(r) = { t : t r i t s } Przykład r A B s A B a b a5 b a5 b a b a b a6 b4 q A a a B b b a6 b4 a b a b dr inż. Witold Rekuć Technologia przetwarzania danych 9

130 Realizacja operacji różnicy tabel w MS ACCESS za pomocą kwerendy usuwającej Rekordy unikatowe dr inż. Witold Rekuć Technologia przetwarzania danych 0

131 Realizacja operacji różnicy tabel w MS ACCESS za pomocą kwerendy usuwającej a) b) q := r s q := r q := q s r s r s kwerenda usuwająca kwerenda tworząca tabelę r = r s q = r kwerenda usuwająca q = r - s dr inż. Witold Rekuć Technologia przetwarzania danych

132 Realizacja odejmowania w SQL MS ACCESS: PostgreSQL: delete distinctrow s.* from r inner join s on (r.a=s.a) and ( r.b=s.b); select r.* from r except select s.* from s; select r.* from r except all select s.* from s; dr inż. Witold Rekuć Technologia przetwarzania danych

133 insert into Odbiorca select from Dostawca.* Dostawca; dr inż. Witold Rekuć Technologia przetwarzania danych

134 select Dostawca.* from Dostawca inner join Odbiorca on (Dostawca.Numer=Odbiorca.Numer) and (Dostawca.Nazwa=Odbiorca.Nazwa); dr inż. Witold Rekuć Technologia przetwarzania danych 4

135 delete distinctrow Odbiorca.* from Dostawca inner join Odbiorca on (Dostawca.Numer=Odbiorca.Numer) and (Dostawca.Nazwa=Odbiorca.Nazwa); dr inż. Witold Rekuć Technologia przetwarzania danych 5

136 Operacje teoriomnogościowe dopełnienie Dana jest tabela r(r), w której R={A,A,...,A n } Każdej nazwie A,A,...,A n przyporządkowano zbiór dopuszczalnych wartości D,D,...,D n dop(r(r)) = D D... D n r(r) Przykład R={A,A } D = {,} D = {a,b} D D A A a b a r A A a b dop(r) A A a b b dr inż. Witold Rekuć Technologia przetwarzania danych 6

137 Przykład Obiekt Nazwa Adres Grupa Numer Liczność Zwiedziła Nazwa Numer Muzeum Muzealna 0 Muzeum Park zdrojowy Parkowa 50 Park zdrojowy Zamek Zapora Zamkowa Wodna 55 Zamek Zapora Podać, która grupa i który obiekt ma jeszcze zwiedzić, jeżeli już odbyły się wizyty podane w tabeli Zwiedziła {Nazwa} (Obiekt) {Numer} (Grupa) Zwiedziła select Obiekt.Nazwa, Grupa.Numer from Obiekt, Grupa except select Zwiedziala.Nazwa, Zwiedzila.Numer from Zwiedzila; dr inż. Witold Rekuć Technologia przetwarzania danych 7

138 dr inż. Witold Rekuć Technologia przetwarzania danych 8

139 dr inż. Witold Rekuć Technologia przetwarzania danych 9

140 Czy można realizować dopełnienie za pomocą selekcji z zaprzeczeniem? Przypadek wiele do jeden (n:) Przypadek wiele do wielu (n:m) dr inż. Witold Rekuć Technologia przetwarzania danych 40

141 Przypadek wiele do jeden (n:) Odejmowanie od uniwersum Miejscowości Województwa WP Miejscowości KodWoj= DL (Miejscowości) KodWoj<> DL (Miejscowości) DL SL PM Selekcja z zaprzeczeniem {,,,7,8,9,0,,} odpowiedź prawidłowa {,,,7,8,9,0,,} odpowiedź prawidłowa dr inż. Witold Rekuć Technologia przetwarzania danych 4

142 Kupowały Przypadek wiele do wielu (n:m) Firmy Towary Śledzie Zupa Odejmowanie od uniwersum Pasztet Chipsy Selekcja z zaprzeczeniem Firmy Nazwa= Pasztet (Kupowały) Nazwa<> Pasztet (Kupowały) {,,,4,5,6, 0, } odpowiedź prawidłowa {,,,4,5,6,8,9,0,,} odpowiedź błędna dr inż. Witold Rekuć Technologia przetwarzania danych 4

143 Kupowały Przypadek wiele do wielu (n:m) Firmy Towary Śledzie Zupa Odejmowanie od uniwersum Pasztet Chipsy Selekcja z zaprzeczeniem Nazwa= Pasztet (Kupowały) Nazwa= Zupa (Kupowały) {7,8,9,} {,4,5,6,8} = {7,9,} odpowiedź prawidłowa Nazwa= Pasztet and Nazwa<> Zupa (Kupowały) {7, 8, 9, } odpowiedź błędna dr inż. Witold Rekuć Technologia przetwarzania danych 4

144 Przemianowanie atrybutów Firmy Nr Nazwa 0 Nasza Firma Abeja Audi Pafawag 4 Iase 5 Dolmed Ulica Nasza Abejowska Audiego Wagonowa Energetyczna Medyczna KodMjc Telefon Dokumenty Nr NrSprzerdawcy /0 0 /0 0 /0 /0 0 /0 4/0 0 NrNabywcy Data {NrSprzedawcy} (Dokumenty) {NrNabywcy} (Dokumenty) ) [??=Nr ]Firmy ta nazwa powinna być wspólna dr inż. Witold Rekuć Technologia przetwarzania danych 44

145 SELECT Osoba.Pesel, [Pesel rodzica] AS Pesel, [Pesel dziadka] AS Pesel, [Pesel pradziadka] AS Pesel FROM ((Osoba INNER JOIN...)...)... ; dr inż. Witold Rekuć Technologia przetwarzania danych 45

146 VII. Definicja, zastosowanie i realizacja operacji na tabelach: dzielenie Dane są tabele: Utworzymy: tabelę r(r) o nagłówku R, którą nazwiemy dzielną, tabelę s(s) o nagłówku S),którą nazwiemy dzielnikiem. tabelę q(t) o nagłówku T, którą nazwiemy ilorazem, przy czym z definicji, nagłówek T = R S q(t) = r(r) s(s) = { t : dla każdej t s s, istnieje t r r taka, że t r [R-S]= t i t r [S] = t s } gdzie t s jest wierszem s, a istnieje t r jest wierszem r. Nieformalnie: operacja dzielenia znajduje te wiersze dzielnej, które łączą się z każdym wierszem dzielnika dr inż. Witold Rekuć Technologia przetwarzania danych 46

147 Przykład Obiekt Nazwa Muzeum Adres Muzealna Grupa Numer Liczność 0 Zwiedziła Nazwa Muzeum Park zdrojowy Numer Park zdrojowy Parkowa 50 Muzeum 55 Muzeum Podać, które grupy zwiedziły już każdy obiekt: Zwiedziła Obiekt Zwiedziła Nazwa Muzeum Park zdrojowy Muzeum Numer Obiekt Nazwa Muzeum Park zdrojowy Adres Muzealna Parkowa Muzeum {Nazwa,Numer} {Nazwa, Adres} Grupy Numer Numery grup, które w tabeli Zwiedziła łączą się z każdym obiektem dr inż. Witold Rekuć Technologia przetwarzania danych 47

148 Przykład Obiekt Nazwa Muzeum Adres Muzealna Grupa Numer Liczność 0 Zwiedziła Nazwa Muzeum Park zdrojowy Numer Park zdrojowy Parkowa 50 Muzeum 55 Muzeum Podać obiekty zwiedzone już przez każdą grupę: Zwiedziła Grupa Zwiedziła Nazwa Muzeum Park zdrojowy Muzeum Muzeum Numer Grupa Numer Liczność {Nazwa,Numer} {Numer, Liczność} Obiekty Nazwa Muzeum Nazwy obiektów, które w tabeli Zwiedziła łączą się z każdą grupą dr inż. Witold Rekuć Technologia przetwarzania danych 48

149 Realizacja operacji dzielenia za pomocą kwerend q = r s R-S ( r ) R-S (( R-S ( r ) s) r) r s R-S ( r ) rob ( rob s ) kwerenda tworząca tabelę rob kwerenda tworząca tabelę rob rob r rob r kwerenda usuwająca rob kwerenda usuwająca rob R-S (rob) rob dr inż. Witold Rekuć Technologia przetwarzania danych 49

150 Realizacja operacji dzielenia w SQL select Nazwa from Zwiedziła as r where not exists (select * from Grupa where not exists ( select * from Zwiedziła as r where (r.nazwa=r.nazwa) and (r.numer=grupa.numer ))); dr inż. Witold Rekuć Technologia przetwarzania danych 50

151 VIII. Podstawy normalizacji relacyjnej bazy danych: zależności funkcyjne i ich rodzaje, dekompozycja relacji i ich schematów, formy normalne schematów relacji PROJEKTOWANIE TABEL Anomalie aktualizacji Dodaj towar : < 004, Mentos, 00 > Dodaj sklep : <, Marketowa > Usuń towar : <00> Usuń sklep : <> Usuń sprzedaż : <,00,00--*> Zmień adres sklepu : <, Supermarketowa > Zmień stan towaru w magazynie : <00,0> Klucz = {NumerSklepu, SymbolTowaru, Data} dr inż. Witold Rekuć Technologia przetwarzania danych 5

152 Anomalie aktualizacji: - niemożność wykonania operacji aktualizacji bazy danych zapewniającej utrzymanie bazy danych w stanie aktualnym; - dopuszczanie do sprzecznych aktualizacji danych, powielonych (zduplikowanych) w tabelach. Nadmiar: - nadmiar danych - wielokrotne zapisanie tych samych danych w różnych wierszach tej samej tabeli, - nadmiar czynności - wielokrotne wykonywanie tej samej czynności przy aktualizacji tabeli bazy danych. dr inż. Witold Rekuć Technologia przetwarzania danych 5

153 Sklep {NumerSklepu,AdresSklepu} Tabela dr inż. Witold Rekuć Technologia przetwarzania danych 5

154 Towar {SymbolTowaru,NazwaTowaru,StanMagaz} Tabela) dr inż. Witold Rekuć Technologia przetwarzania danych 54

155 SprzedażTowaruWSklepie {NumerSklepu, SymbolTowaru,Data,IlośćSprzedana} Tabela) dr inż. Witold Rekuć Technologia przetwarzania danych 55

156 Klucz={NumerSklepu} Klucz={SymbolTowaru} Klucz={NumerSklepu,SymbolTowaru,Data} dr inż. Witold Rekuć Technologia przetwarzania danych 56

157 Dodaj towar : < 004, Mentos, 00 > Dodaj sklep : <, Marketowa > Usuń towar : <00> Usuń sklep : <> Usun sprzedaż : <,00,00--*> Zmień adres sklepu : <, Supermarketowa > Zmień stan towaru w magazynie : <00,0> dr inż. Witold Rekuć Technologia przetwarzania danych 57

158 Rozkład (dekompozycja) tabeli Dane są: - tabela r(r) - podzbiory schematu R, R,...,Rp takie, że R R... Rp = R Rozkładem (dekompozycją) tabeli r(r) na R, R,...,Rp nazywamy zestaw: Przykład R (r), R (r),..., Rp (r) r R (r) = q A B C a b c A B C D a b c a b c d a b c a b c d a4 b c R ={A,B,C) i a b c d R ={C,D} R (r) = q C D a4 b c d c d c d dr inż. Witold Rekuć Technologia przetwarzania danych 58 c d

159 Operacja złączenia naturalnego Dane są: r(r) tabela r o schemacie R, s(s) tabela s o schemacie S, R i S nie muszą być rozłączne q(r S) = r s = { t : t[r] r, t[s] s } dr inż. Witold Rekuć Technologia przetwarzania danych 59

160 Przykład r A B r B C a b a5 c a5 b a c a b a6 c4 a6 b5 a c a b r r = A B C a b c a b c a b c a b c a6 b5 c dr inż. Witold Rekuć Technologia przetwarzania danych 60

161 Przykład ( iloczyn kartezjański!!! ) r A B r C D a b c5 d a5 b c d a b r r = A B C D a b c5 d a b c d a5 b c5 d a5 b c d a b c5 d a b c d dr inż. Witold Rekuć Technologia przetwarzania danych 6

162 Rozkład tabel bez straty danych Rozkład tabeli r(r) na R, R,...,Rp nazywamy rozkładem bez straty danych jeżeli: R (r) R (r)... Rp (r) = r(r) Przykład r A B C D a b c d a b c d a b c d a4 b c d R = {A,B,C) i R = {C,D} R (r) = q R (r) = q A B C a b c a b c a b c a4 b c dr inż. Witold Rekuć Technologia przetwarzania danych 6 C c c c D d d d

163 Przykład r A B C D a b c d a b c d a b c d a4 b c d R = {A,B) i R = {C,D} R (r) = q A a a a a4 B b b b b R (r) = q C c D d c d R (r) R (r)? r(r) c d Przykład R={A,C) i R={B,C,D} Przykład 4 R={A,B) i R={A,C,D} Przykład 5 R={A,B,C,D) i R={D} dr inż. Witold Rekuć Technologia przetwarzania danych 6

164 Przykład 6 tab( NrSklepu, AdresSklepu, KodTowaru, NazwaTowaru, Sprzedaż ) klucz={nrsklepu, KodTowaru} a) R={NrSklepu, AdresSklepu}, R={NrSklepu,KodTowaru, NazwaTowaru, Sprzedaż} b) R={KodTowaru, NazwaTowaru}, R={NrSklepu,AdresSklepu,KodTowaru, Sprzedaż} c) R={NrSklepu, KodTowaru, AdresSklepu}, R={NrSklepu, KodTowaru, NazwaTowaru} R={NrSklepu, KodTowaru, Sprzedaż} d) R={NrSklepu, AdresSklepu}, R={NrSklepu, NazwaTowaru} R={NrSklepu, Sprzedaż} R4={KodTowaru,Sprzedaż} dr inż. Witold Rekuć Technologia przetwarzania danych 64

165 Zależności funkcyjne między danymi Dane są: - tabela r(r), R={A,A,...,A n } - zbiory X, Y R W tabeli r jest spełniona zależność funkcyjna X Y wtedy i tylko wtedy, gdy dla każdej wartości x X (r) liczba wierszy w X Y (r) jest równa dr inż. Witold Rekuć Technologia przetwarzania danych 65

166 Przykład r A B C D a b c d a b c d a b c d a4 b c d Czy {C} {D}? {C,D} (r) = q C c c c D d d d Czy {C,D} {A,B}? R (r) = q A B C D a b c d a b c d a b c d a4 b c d Czy {B,C} {C,D}? {B,C,D} (r) = q B C D b c d b c d b c d b c d dr inż. Witold Rekuć Technologia przetwarzania danych 66

167 Przykład tab( NrSklepu, AdresSklepu, KodTowaru, NazwaTowaru, Sprzedaż ) klucz={nrsklepu,kodtowaru} a) czy {NrSklepu, KodTowaru} {AdresSklepu, NazwaTowaru, Sprzedaż}? b) czy {NrSklepu, KodTowaru} {NrSklepu, KodTowaru}? c) czy {NrSklepu} {AdresSklepu}? d) czy {KodTowaru} {NazwaTowaru}? e) czy {KodTowaru} {Sprzedaż}? dr inż. Witold Rekuć Technologia przetwarzania danych 67

168 NumerSklepu AdresSklepu SymbolTowaru NazwaTowaru,StanMagaz NumerSklepu,SymbolTowaru,Data IlośćSprzedana dr inż. Witold Rekuć Technologia przetwarzania danych 68

169 NumerSklepu,SymbolTowaru,Data AdresSklepu NumerSklepu,SymbolTowaru,Data NazwaTowaru NumerSklepu,SymbolTowaru,Data StanMagaz dr inż. Witold Rekuć Technologia przetwarzania danych 69

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

- Przedmiot kończy się egzaminem - Egzamin ma formę testu teoretycznego Dr inż. Ludmiła Rekuć p. 58 B4 www.ioz.pwr.wroc.pl, ludmila.rekuc@pwr.wroc.pl Dr inż. Witold Rekuć p. 57 B4 www.ioz.pwr.wroc.pl, witold.rekuc@pwr.wroc.pl - Przedmiot kończy się egzaminem - Egzamin ma formę

Bardziej szczegółowo

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

Operacja Teta-złączenia. v1 v1 Θ v2 Operacja Teta-złączenia Dane są: r(r) tabela r o schemacie R, A R s(s) tabela s o schemacie S, B S R i S nie zawierają tych samych nazw (R S = Ø) Θ {>, =,

Bardziej szczegółowo

Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki

Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki Pokój: 517/B4 E-mail: witold.rekuc@pwr.edu.pl Telefon: 71-320-23-35 www: kbo.pwr.edu.pl/pracownik/rekuc dr inż. Witold

Bardziej szczegółowo

-Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium

-Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium Dr inż. Ludmiła Rekuć p. 58 B4 www.ioz.pwr.wroc.pl, ludmila.rekuc@pwr.wroc.pl Dr inż. Witold Rekuć p. 57 B4 www.ioz.pwr.wroc.pl, witold.rekuc@pwr.wroc.pl -Wykład kończy się zaliczeniem na ocenę na podstawie

Bardziej szczegółowo

Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium, które zostanie przeprowadzone na przedostatnim wykładzie

Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium, które zostanie przeprowadzone na przedostatnim wykładzie Dr inż. Witold Rekuć p. 57 B4 www.ioz.pwr.wroc.pl, witold.rekuc@pwr.wroc.pl Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium, które zostanie przeprowadzone na przedostatnim wykładzie Literatura.

Bardziej szczegółowo

Model relacyjny. Wykład II

Model relacyjny. Wykład II Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji

Bardziej szczegółowo

1 Wstęp do modelu relacyjnego

1 Wstęp do modelu relacyjnego Plan wykładu Model relacyjny Obiekty relacyjne Integralność danych relacyjnych Algebra relacyjna 1 Wstęp do modelu relacyjnego Od tego się zaczęło... E. F. Codd, A Relational Model of Data for Large Shared

Bardziej szczegółowo

Krok 1. SELECT Symbol AS KS INTO Dzielnik FROM Towary WHERE (Nazwa='Orzeszki solone') OR (Nazwa = 'Zupy CHOISE') OR (Nazwa = 'Kawa BURG');

Krok 1. SELECT Symbol AS KS INTO Dzielnik FROM Towary WHERE (Nazwa='Orzeszki solone') OR (Nazwa = 'Zupy CHOISE') OR (Nazwa = 'Kawa BURG'); Zad 2 Znaleźć miejscowości, z których klienci kupili w Naszej firmie każdy z towarów: "Zupy CHOISE","Orzeszki solone", ""Kawa BURG" (niekoniecznie każdy z klientów każdy z towarów!). Krok 1. SELECT Symbol

Bardziej szczegółowo

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

Egzamin / zaliczenie na ocenę* 0,5 0,5 Zał. nr 4 do ZW 33/01 WYDZIAŁ INFORMATYKI I ZARZĄDZANIA KARTA PRZEDMIOTU Nazwa w języku polskim: Technologia przetwarzania danych Nazwa w języku angielskim: Data processing technology Kierunek studiów

Bardziej szczegółowo

Model relacyjny. Wykład II

Model relacyjny. Wykład II Model relacyjny został zaproponowany do strukturyzacji danych przez brytyjskiego matematyka Edgarda Franka Codda w 1970 r. Baza danych według definicji Codda to zbiór zmieniających się w czasie relacji

Bardziej szczegółowo

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe 1. Wyselekcjonować firmy z Wrocławia lub Krakowa, którym Nasza firma sprzedała cokolwiek w sierpniu 1992 (użyj funkcji Year i Month). SELECT DISTINCT FIRMY.Nr,

Bardziej szczegółowo

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

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe Relacyjny model danych Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe Charakterystyka baz danych Model danych definiuje struktury danych operacje ograniczenia integralnościowe

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

Autor: Joanna Karwowska

Autor: Joanna Karwowska Autor: Joanna Karwowska Jeśli pobieramy dane z więcej niż jednej tabeli, w rzeczywistości wykonujemy tak zwane złączenie. W SQL istnieją instrukcje pozwalające na formalne wykonanie złączenia tabel - istnieje

Bardziej szczegółowo

Wykład 2. Relacyjny model danych

Wykład 2. Relacyjny model danych Wykład 2 Relacyjny model danych Wymagania stawiane modelowi danych Unikanie nadmiarowości danych (redundancji) jedna informacja powinna być wpisana do bazy danych tylko jeden raz Problem powtarzających

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski. Relacyjne bazy danych. są podstawą zachodniej cywilizacji

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski. Relacyjne bazy danych. są podstawą zachodniej cywilizacji Relacyjne bazy danych Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski 1 Model danych Relacyjne bazy danych są podstawą zachodniej cywilizacji 3 Model danych: Aspekt strukturalny: Zbiór struktur

Bardziej szczegółowo

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

2010-10-21 PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA PLAN WYKŁADU Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna BAZY DANYCH Wykład 2 dr inż. Agnieszka Bołtuć MODEL DANYCH Model danych jest zbiorem ogólnych zasad posługiwania

Bardziej szczegółowo

KARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem

KARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem WYDZIAŁ INFORMATYKI I ZARZĄDZANIA Zał. nr 4 do ZW 33/01 KARTA PRZEDMIOTU Nazwa w języku polskim: Nazwa w języku angielskim: Kierunek studiów (jeśli dotyczy): Specjalność (jeśli dotyczy): Stopień studiów

Bardziej szczegółowo

Grupa kursów: Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30

Grupa kursów: Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30 Zał. nr 4 do ZW 33/01 WYDZIAŁ INFORMATYKI I ZĄRZADZANIA KARTA PRZEDMIOTU Nazwa w języku polskim: Wprowadzenie do SQL Nazwa w języku angielskim: Introduction to SQL Kierunek studiów (jeśli dotyczy): Zarządzanie

Bardziej szczegółowo

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

Program wykładu. zastosowanie w aplikacjach i PL/SQL; Program wykładu 1 Model relacyjny (10 godz.): podstawowe pojęcia, języki zapytań (algebra relacji, relacyjny rachunek krotek, relacyjny rachunek dziedzin), zależności funkcyjne i postaci normalne (BCNF,

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

Bazy danych. Algebra relacji

Bazy danych. Algebra relacji azy danych lgebra relacji Model danych Model danych to spójny zestaw pojęć służący do opisywania danych i związków między nimi oraz do manipulowania danymi i ich związkami, a także do wyrażania więzów

Bardziej szczegółowo

Wprowadzenie do SQL TEMAT 4 - Zadania dodatkowe

Wprowadzenie do SQL TEMAT 4 - Zadania dodatkowe Wprowadzenie do SQL TEMAT 4 - Zadania dodatkowe 1. Znaleźć firmy, z którymi nie była przeprowadzona żadna transakcja. (RÓŻNICA) Krok 1: utworzenie tabeli BEZ_TRANSAKCJI będącej kopią tabeli FIRMY i w której

Bardziej szczegółowo

Projektowanie relacyjnych baz danych

Projektowanie relacyjnych baz danych Mam nadzieję, że do tej pory przyzwyczaiłeś się do tabelarycznego układu danych i poznałeś sposoby odczytywania i modyfikowania tak zapisanych danych. W tym odcinku poznasz nieco teorii relacyjnych baz

Bardziej szczegółowo

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

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski BAZY DANYCH algebra relacyjna Opracował: dr inż. Piotr Suchomski Wprowadzenie Algebra relacyjna składa się z prostych, ale mocnych mechanizmów tworzenia nowych relacji na podstawie danych relacji. Hdy

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

RBD Relacyjne Bazy Danych

RBD Relacyjne Bazy Danych Wykład 7 RBD Relacyjne Bazy Danych Bazy Danych - A. Dawid 2011 1 Selekcja σ C (R) W wyniku zastosowania operatora selekcji do relacji R powstaje nowa relacja T do której należy pewien podzbiór krotek relacji

Bardziej szczegółowo

RBD Relacyjne Bazy Danych Więzy realcji

RBD Relacyjne Bazy Danych Więzy realcji Wykład 8 RBD Relacyjne Bazy Danych Więzy realcji Bazy Danych - A. Dawid 2011 1 Więzy (Constraints) Więzy ograniczenia na związki między poszczególnymi atrybutami w bazie danych. Określają często zakres

Bardziej szczegółowo

2017/2018 WGGiOS AGH. LibreOffice Base

2017/2018 WGGiOS AGH. LibreOffice Base 1. Baza danych LibreOffice Base Jest to zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego programu komputerowego,

Bardziej szczegółowo

Technologia informacyjna

Technologia informacyjna Technologia informacyjna Pracownia nr 9 (studia stacjonarne) - 05.12.2008 - Rok akademicki 2008/2009 2/16 Bazy danych - Plan zajęć Podstawowe pojęcia: baza danych, system zarządzania bazą danych tabela,

Bardziej szczegółowo

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

Relacyjny model baz danych, model związków encji, normalizacje Relacyjny model baz danych, model związków encji, normalizacje Wyklad 3 mgr inż. Maciej Lasota mgr inż. Karol Wieczorek Politechnika Świętokrzyska Katedra Informatyki Kielce, 2009 Definicje Operacje na

Bardziej szczegółowo

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

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n. Algebra relacji Definicja 1 (Relacja matematyczna). Relacją R między elementami zbioru D 1 D 2 D n, gdzie przypomnijmy D 1 D 2 D n = {(d 1, d 2,..., d n ) : d i D i, i = 1, 2,..., n}, nazywamy każdy podzbiór

Bardziej szczegółowo

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

Bazy danych Algebra relacji Wykład dla studentów matematyki Bazy danych Algebra relacji Wykład dla studentów matematyki 8 marca 2015 Algebra relacji Model teoretyczny do opisywania semantyki relacyjnych baz danych, zaproponowany przez T. Codda (twórcę koncepcji

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność

Bardziej szczegółowo

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

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d. TECHNOLOGIE BAZ DANYCH WYKŁAD 1 Wprowadzenie do baz danych. Normalizacja. (Wybrane materiały) Dr inż. E. Busłowska Definicja bazy danych Uporządkowany zbiór informacji, posiadający własną strukturę i wartość.

Bardziej szczegółowo

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych Zasady transformacji modelu DOZ do projektu tabel bazy danych A. Obiekty proste B. Obiekty z podtypami C. Związki rozłączne GHJ 1 A. Projektowanie - obiekty proste TRASA # * numer POZYCJA o planowana godzina

Bardziej szczegółowo

Relacyjny model danych

Relacyjny model danych Relacyjny model danych Wykład przygotował: Robert Wrembel BD wykład 2 (1) 1 Plan wykładu Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe BD wykład 2 (2) W ramach drugiego

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

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

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

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

Systemy baz danych. mgr inż. Sylwia Glińska Systemy baz danych Wykład 1 mgr inż. Sylwia Glińska Baza danych Baza danych to uporządkowany zbiór danych z określonej dziedziny tematycznej, zorganizowany w sposób ułatwiający do nich dostęp. System zarządzania

Bardziej szczegółowo

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

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Plan wykładu Bazy danych Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL. Deficja zależności funkcyjnych Klucze relacji Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

Systemy baz danych. Notatki z wykładu. http://robert.brainusers.net 17.06.2009

Systemy baz danych. Notatki z wykładu. http://robert.brainusers.net 17.06.2009 Systemy baz danych Notatki z wykładu http://robert.brainusers.net 17.06.2009 Notatki własne z wykładu. Są niekompletne, bez bibliografii oraz mogą zawierać błędy i usterki. Z tego powodu niniejszy dokument

Bardziej szczegółowo

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Krzysztof Kadowski. PL-E3579, PL-EA0312, Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza

Bardziej szczegółowo

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

Bazy danych Wykład zerowy. P. F. Góra Bazy danych Wykład zerowy P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012 Patron? Św. Izydor z Sewilli (VI wiek), biskup, patron Internetu (sic!), stworzył pierwszy katalog Copyright c 2011-12 P.

Bardziej szczegółowo

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład V Kwerendy Copyrights by Arkadiusz Rzucidło 1 Wprowadzenie Istotą bazy danych jest możliwość efektywnego wyszukiwania informacji Realizację operacji wyszukiwania zapewniają kwerendy

Bardziej szczegółowo

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania Przedmiot: Bazy danych Rok: III Semestr: V Rodzaj zajęć i liczba godzin: Studia stacjonarne Studia niestacjonarne Wykład 30 21 Ćwiczenia Laboratorium 30 21 Projekt Liczba punktów ECTS: 4 C1 C2 C3 Cel przedmiotu

Bardziej szczegółowo

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

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

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

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła 030 PROJEKTOWANIE BAZ DANYCH Prof. dr hab. Marek Wisła Elementy procesu projektowania bazy danych Badanie zależności funkcyjnych Normalizacja Projektowanie bazy danych Model ER, diagramy ERD Encje, atrybuty,

Bardziej szczegółowo

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

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty Informatyka Ćwiczenie 10 Bazy danych Baza danych jest zbiór informacji (zbiór danych). Strukturę bazy danych można określić w formie jak na rysunku 1. Pracownik(ID pracownika, imie, nazwisko, pensja) Klient(ID

Bardziej szczegółowo

Bazy danych Access KWERENDY

Bazy danych Access KWERENDY Bazy danych Access KWERENDY Obiekty baz danych Access tabele kwerendy (zapytania) formularze raporty makra moduły System baz danych MS Access Tabela Kwerenda Formularz Raport Makro Moduł Wyszukiwanie danych

Bardziej szczegółowo

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE DO BAZ DANYCH WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z

Bardziej szczegółowo

SZKOLENIE: Administrator baz danych. Cel szkolenia

SZKOLENIE: Administrator baz danych. Cel szkolenia SZKOLENIE: Administrator baz danych. Cel szkolenia Kurs Administrator baz danych skierowany jest przede wszystkim do osób zamierzających rozwijać umiejętności w zakresie administrowania bazami danych.

Bardziej szczegółowo

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

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski Bazy danych Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 5 Strukturalny język zapytań (SQL - Structured Query Language) Algebraiczny rodowód podstawowe działania w przykładach Bazy danych.

Bardziej szczegółowo

BAZY DANYCH Podstawowe pojęcia

BAZY DANYCH Podstawowe pojęcia BAZY DANYCH Podstawowe pojęcia Wykład 1 dr Lidia Stępień Akademia im. Jana Długosza w Częstochowie L. Stępień (AJD) BD 1 / 26 Literatura 1. L. Banachowski, Bazy danych. Tworzenie aplikacji, Akademicka

Bardziej szczegółowo

Bazy Danych. Model Relacyjny. Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408

Bazy Danych. Model Relacyjny. Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408 Bazy Danych Model Relacyjny Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408 Relacyjny model danych Relacyjny model danych jest obecnie najbardziej popularnym modelem używanym w systemach

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

Wykład 6. SQL praca z tabelami 3

Wykład 6. SQL praca z tabelami 3 Wykład 6 SQL praca z tabelami 3 Łączenie wyników zapytań Język SQL zawiera mechanizmy pozwalające na łączenie wyników kilku pytań. Pozwalają na to instrukcje UNION, INTERSECT, EXCEPT o postaci: zapytanie1

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Dr inż. Szczepan Paszkiel szczepanpaszkiel@o2.pl Katedra Inżynierii Biomedycznej Politechnika Opolska Wprowadzenie DBMS Database Managment System, System za pomocą którego można

Bardziej szczegółowo

Tworzenie bazy danych na przykładzie Access

Tworzenie bazy danych na przykładzie Access Tworzenie bazy danych na przykładzie Access Tworzenie tabeli Kwerendy (zapytania) Selekcja Projekcja Złączenie Relacja 1 Relacja 2 Tworzenie kwedend w widoku projektu Wybór tabeli (tabel) źródłowych Wybieramy

Bardziej szczegółowo

Baza danych. Modele danych

Baza danych. Modele danych Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych

Bardziej szczegółowo

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

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga Bazy Danych i Systemy informacyjne Wykład 1 Piotr Syga 09.10.2017 Ogólny zarys wykładu Podstawowe zapytania SQL Tworzenie i modyfikacja baz danych Elementy dynamiczne, backup, replikacja, transakcje Algebra

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

TEST E.14 BAZY DANYCH

TEST E.14 BAZY DANYCH TEST E.14 BAZY DANYCH 1 CZAS PRACY: 45 MINUT 1. W celu dodania rekordu do tabeli Pracownicy należy użyd polecenia SQL a. INSERT INTO Pracownicy VALUES ("Jan", "Kowalski"); b. INSERT VALUES (Jan; Kowalski)

Bardziej szczegółowo

Jak wiernie odzwierciedlić świat i zachować występujące w nim zależności? Jak implementacja fizyczna zmienia model logiczny?

Jak wiernie odzwierciedlić świat i zachować występujące w nim zależności? Jak implementacja fizyczna zmienia model logiczny? Plan wykładu Spis treści 1 Projektowanie baz danych 1 2 Zależności funkcyjne 1 3 Normalizacja 1NF, 2NF, 3NF, BCNF 4 4 Normalizacja 4NF, 5NF 6 5 Podsumowanie 9 6 Źródła 10 1 Projektowanie baz danych Projektowanie

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

Agnieszka Ptaszek Michał Chojecki

Agnieszka Ptaszek Michał Chojecki Agnieszka Ptaszek Michał Chojecki Krótka historia Twórcą teorii relacyjnych baz danych jest Edgar Frank Codd. Postulaty te zostały opublikowane po raz pierwszy w 1970 roku w pracy A Relational Model of

Bardziej szczegółowo

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

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

Bardziej szczegółowo

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

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości. elacja chemat relacji chemat relacji jest to zbiór = {A 1,..., A n }, gdzie A 1,..., A n są artybutami (nazwami kolumn) np. Loty = {Numer, kąd, Dokąd, Odlot, Przylot} KaŜdemu atrybutowi A przyporządkowana

Bardziej szczegółowo

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy Pytania SO Oprogramowanie Biurowe Pytania: Egzamin Zawodowy Pytania SO Oprogramowanie Biurowe (1) Gdzie w edytorze tekstu wprowadza się informację lub ciąg znaków, który ma pojawić się na wszystkich stronach

Bardziej szczegółowo

Zależności funkcyjne c.d.

Zależności funkcyjne c.d. Zależności funkcyjne c.d. Przykłady. Relacja Film (zapis w postaci tabeli): Tytuł Rok Długość typfilmu nazwastudia nazwiskogwiazdy Gwiezdne 1977 124 Kolor Fox Carrie Fisher Gwiezdne 1977 124 Kolor Fox

Bardziej szczegółowo

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 4 Budowa prostych formularzy, stany sesji, tworzenie przycisków Plan Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza 2 Formularz i jego typy Tworzenie formularza

Bardziej szczegółowo

Relacyjny model danych. Relacyjny model danych

Relacyjny model danych. Relacyjny model danych 1 Plan rozdziału 2 Relacyjny model danych Relacyjny model danych - pojęcia podstawowe Ograniczenia w modelu relacyjnym Algebra relacji - podstawowe operacje projekcja selekcja połączenie operatory mnogościowe

Bardziej szczegółowo

Model relacyjny bazy danych

Model relacyjny bazy danych Bazy Danych Model relacyjny bazy danych Przygotował: mgr inż. Maciej Lasota Bazy Danych 1 1) Model relacyjny bazy danych Relacyjny model bazy danych pojawił się po raz pierwszy w artykule naukowym Edgara

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Wykład 8. SQL praca z tabelami 5

Wykład 8. SQL praca z tabelami 5 Wykład 8 SQL praca z tabelami 5 Podzapytania to mechanizm pozwalający wykorzystywać wyniki jednego zapytania w innym zapytaniu. Nazywane często zapytaniami zagnieżdżonymi. Są stosowane z zapytaniami typu

Bardziej szczegółowo

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

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

PODSTAWOWE POJĘCIA BAZ DANYCH

PODSTAWOWE POJĘCIA BAZ DANYCH Baza danych (data base) - uporządkowany zbiór danych o określonej strukturze, przechowywany na nośniku informacji w komputerze. System bazy danych można zdefiniować jako bazę danych wraz z oprogramowaniem

Bardziej szczegółowo

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

BAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski BAZY DANYCH model relacyjny Opracował: dr inż. Piotr Suchomski Relacyjny model danych Relacyjny model danych posiada trzy podstawowe składowe: relacyjne struktury danych operatory algebry relacyjnej, które

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych. Andrzej Łachwa, UJ, /15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 10/15 Semantyka schematu relacyjnej bazy danych Schemat bazy danych składa się ze schematów relacji i więzów

Bardziej szczegółowo

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych Plan wykładu Bazy danych Wykład 9: Przechodzenie od diagramów E/R do modelu relacyjnego. Definiowanie perspektyw. Diagramy E/R - powtórzenie Relacyjne bazy danych Od diagramów E/R do relacji SQL - perspektywy

Bardziej szczegółowo

Pojęcie zależności funkcyjnej

Pojęcie zależności funkcyjnej Postacie normalne Plan wykładu Zależności funkcyjne Cel normalizacji Pierwsza postać normalna Druga postać normalna Trzecia postać normalna Postać normalna Boyca - Codda Pojęcie zależności funkcyjnej Definicja

Bardziej szczegółowo

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych Informatyka sem. III studia inżynierskie Transport 2018/19 Lab 2 LAB 2 1. Backup bazy danych Tworzenie kopii (backup) bazy danych Odtwarzanie bazy z kopii (z backup u) 1. Pobieramy skrypt Restore 2. Pobieramy

Bardziej szczegółowo

Relacyjne bazy danych

Relacyjne bazy danych Relacyjne bazy danych W roku 1970 dr Edgar Ted Codd z firmy IBM zaprezentował relacyjny model danych. W modelu tym dane miały być przechowywane w prostych plikach liniowych, które to pliki nazywane są

Bardziej szczegółowo

Wykład 5. SQL praca z tabelami 2

Wykład 5. SQL praca z tabelami 2 Wykład 5 SQL praca z tabelami 2 Wypełnianie tabel danymi Tabele można wypełniać poprzez standardową instrukcję INSERT INTO: INSERT [INTO] nazwa_tabeli [(kolumna1, kolumna2,, kolumnan)] VALUES (wartosc1,

Bardziej szczegółowo

Normalizacja. Pojęcie klucza. Cel normalizacji

Normalizacja. Pojęcie klucza. Cel normalizacji Plan Normalizacja Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski 1. Cel normalizacji. 2. Klucze schematów relacyjnych atrybuty kluczowe i niekluczowe. 3. 2PN druga postać normalna. 4. 3PN trzecia

Bardziej szczegółowo

Kiedy i czy konieczne?

Kiedy i czy konieczne? Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle

Bardziej szczegółowo

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

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski Bazy danych Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 2 Podstawy integralności w relacyjnym modelu baz danych Bazy danych. Wykład 2 2 Integralność relacyjnych baz danych Schemat relacji

Bardziej szczegółowo

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

Zapytania do bazy danych

Zapytania do bazy danych Zapytania do bazy danych Tworzenie zapytań do bazy danych MS Access może być realizowane na dwa sposoby. Standard SQL (Stucture Query Language) lub QBE (Query by Example). Warto wiedzieć, że drugi ze sposobów

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Bazy danych Database Kierunek: Rodzaj przedmiotu: obieralny Rodzaj zajęć: wykład, laboratorium Matematyka Poziom kwalifikacji: I stopnia Liczba godzin/tydzień: 2W, 2L Semestr: III Liczba

Bardziej szczegółowo

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

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL Wprowadzenie do SQL SQL - Structured Query Language -strukturalny język zapytań Światowy standard przeznaczony do definiowania, operowania i sterowania danymi w relacyjnych bazach danych Powstał w firmie

Bardziej szczegółowo

Wstęp do relacyjnych baz danych. Jan Bartoszek

Wstęp do relacyjnych baz danych. Jan Bartoszek Wstęp do relacyjnych baz danych Jan Bartoszek Agenda 1. 2. 3. 4. 5. 6. 7. Po co i dlaczego? Bazy danych & DBMS Relacje i powiązania Redundancja i jak jej uniknąć Diagramy ERD SQL Podsumowanie Czym są są

Bardziej szczegółowo

Bazy danych wykład drugi. Konrad Zdanowski

Bazy danych wykład drugi. Konrad Zdanowski Algebra relacji - przypomnienie Niech R(A 1,..., A k ) i S(B 1,..., B n ) relacje. Podstawowe operacje na relacjach: operacje teoriomnogościowe: suma R S, iloczyn R S, różnica R \ S, iloczyn kartezjański

Bardziej szczegółowo

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

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo