Podstawy projektowania i implementacji baz danych

Slides:



Advertisements
Podobne prezentacje
Indeksy w bazie danych Oracle
Advertisements

Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Projektowanie bazy danych
Skrypty, procedury przechowywane i wyzwalane
SQL – Strukturalny język zapytań
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
Domy Na Wodzie - metoda na wlasne M
Bazy danych 8. SQL podstawy P. F. Góra semestr letni 2004/05.
Język SQL ma ciekawe możliwości tworzenia zapytań
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
MS Access 2000 Normalizacja Paweł Górczyński 2005.
25/08/ Bazy danych II Piotr Górczyński MS Access – Action Query.
MS Access 2000 Tworzenie tabel Piotr Górczyński 2005.
25/08/2001 Bazy danych II 1 Piotr Górczyński Wstęp do SQL.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
Zapytania SQL: wydajność i optymalizacja
Wykład 8 Wojciech Pieprzyca
BD-LAB6 Wojciech Pieprzyca
Wykład 5 Wojciech Pieprzyca
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Modele baz danych - spojrzenie na poziom fizyczny
Język SQL – podstawy zapytań
Język SQL – ciąg dalszy DML (Data Manipulation Language)
Język SQL (Structured Query Language) DDL (Data Definition Language)
Teoria relacyjnych baz danych
dr inż. Piotr Muryjas Wyższa Szkoła Przedsiębiorczości i Administracji
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
SQL – zapytania posumowanie
SQL – Structured Query Language (3)
Przetwarzanie w oknie - nowa siła zapytań
Ogólnopolski Konkurs Wiedzy Biblijnej Analiza wyników IV i V edycji Michał M. Stępień
Podstawy programowania
Bazy danych.
Bazy danych - jak je ugryźć?
Andrzej Macioł Bazy danych – SQL – cz. 1. Andrzej Macioł Składowe SZBD Jądro SZBD realizuje podstawowe funkcje związane z przechowywaniem danych, kontrolą
SQL - Structured Query Language
1. Pomyśl sobie liczbę dwucyfrową (Na przykład: 62)
Wybrane zagadnienia relacyjnych baz danych
Analiza matury 2013 Opracowała Bernardeta Wójtowicz.
Komendy SQL do pracy z tabelami i bazami
EcoCondens Kompakt BBK 7-22 E.
EcoCondens BBS 2,9-28 E.
PL/SQL – dalsza wędrówka
User experience studio Użyteczna biblioteka Teraźniejszość i przyszłość informacji naukowej.
WYNIKI EGZAMINU MATURALNEGO W ZESPOLE SZKÓŁ TECHNICZNYCH
Projektowanie bazy danych
Temat 1: Strukturalny język zapytań SQL
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
Testogranie TESTOGRANIE Bogdana Berezy.
Jak Jaś parował skarpetki Andrzej Majkowski 1 informatyka +
Model obiektowy bazy danych
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Elementy geometryczne i relacje
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Strategia pomiaru.
LO ŁobżenicaWojewództwoPowiat pilski 2011r.75,81%75,29%65,1% 2012r.92,98%80,19%72,26% 2013r.89,29%80,49%74,37% 2014r.76,47%69,89%63,58% ZDAWALNOŚĆ.
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
Komendy SQL do pracy z danymi
Projektowanie postaci formularza:
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Temat: Tworzenie bazy danych
Widoki (views) - Perspektywy:
Strukturalny język zapytań SQL - historia
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Podstawy projektowania i implementacji baz danych Wykład wprowadza do tematyki baz danych. W ramach wykładu zaprezentowane zostanie wprowadzenie do relacyjnego modelu danych. Zdefiniowane zostaną pojęcia : dane, informacja, wiedza oraz baza danych. Pojęcia podstawowe : tabela relacyjna, cechy tabeli relacyjnej, klucz podstawowy i klucz obcy. Przedstawione zostanie pojęcie Systemu Zarządzania Bazami Danych. Pokazane zostaną anomalie związane z modyfikacją danych i sposoby ich rozwiązywania. Omówione zostaną przykłady korzystania z baz danych. informatyka +

Bazy danych wprowadzenie Wykład wprowadza do tematyki baz danych. W ramach wykładu zaprezentowane zostanie wprowadzenie do relacyjnego modelu danych. Zdefiniowane zostaną pojęcia : dane, informacja, wiedza oraz baza danych. Pojęcia podstawowe : tabela relacyjna, cechy tabeli relacyjnej, klucz podstawowy i klucz obcy. Przedstawione zostanie pojęcie Systemu Zarządzania Bazami Danych. Pokazane zostaną anomalie związane z modyfikacją danych i sposoby ich rozwiązywania. Omówione zostaną przykłady korzystania z baz danych. informatyka +

Tylko do końca nie wiemy co one znaczą Dane Liczby, znaki, symbole (i cokolwiek innego) zapisane w celu ich przetwarzania 15,’ Ala’,’12-09-1987’, /…/---/…/, ‘Warszawa’, Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. Wniosek : Dane bez uporządkowania i bez umiejętności ich interpretacji to najczęściej „ŚMIETNIK” To są jakieś dane Tylko do końca nie wiemy co one znaczą informatyka +

Informacja informatyka + Trudno przytoczyć jedną definicję pojęcia informacja Informacja to taki czynnik, któremu człowiek może przypisać określony sens (znaczenie), aby móc ją wykorzystywać do różnych celów Posługując się powyższym slajdem staramy się wyjaśnić pojęcie informacji. Należy szczególną uwagę zwrócić na fakt, że informacje możemy uzyskiwać poprzez proces przetwarzania danych i ich interpretacji. Mówiąc krótko informacja to sens jaki my nadajemy danym. W kolejnym etapie spróbujemy zdefiniować pojęcie „wiedza”. Informacje możemy „zdobywać” dzięki przetwarzaniu i interpretacji danych . informatyka +

Wiedza Podobnie jak w przypadku informacji – trudno jest jednoznacznie zdefiniować pojęcie wiedza Tak definiował to pojecie Platon : „ogół wiarygodnych informacji o rzeczywistości wraz z umiejętnością ich wykorzystywania” Kontynuujemy proces wprowadzania pojęć podstawowych do których będziemy odwoływali się w dalszej części wykładu, gdy przejdziemy już do bazy danych. W tej części wykładu należy szczególna uwagę zwrócić na fakt, że widza jest umiejętnością wykorzystania informacja w dowolnej dziedzinie życia. Proszę zwrócić uwagę na fakt, że wiedza to, miedzy innymi, umiejętność wykorzystania informacji . informatyka +

Społeczeństwo informacyjne 1 I znów będziemy mieli problem z jednoznacznym zdefiniowaniem pojęcia społeczeństwo informacyjne Społeczeństwo charakteryzujące się przygotowaniem i zdolnością do użytkowania systemów informatycznych, skomputeryzowane i wykorzystujące usługi telekomunikacji do przesyłania i zdalnego przetwarzania informacji” (I Kongres Informatyki Polskiej, 1994) I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. Wszystko wskazuje na to, że przyszłość należeć będzie do społeczeństw informacyjnych informatyka +

Społeczeństwo informacyjne 2 Krótka kontynuacja definiowania pojęcia społeczeństwa informacyjnego. Należy podkreślić fakt, że codziennie korzystamy z wielu atrybutów społeczeństwa informacyjnego, chociażby internetu. Umiejętność korzystania ze zgromadzonych danych jest jedną z podstawowych cech społeczeństwa informacyjnego. informatyka +

Podsumowanie części 1 informatyka + Dane - powstają na różnych etapach działalności gromadzimy dane w celu ich późniejszego wykorzystania przechowując dane należy zapewnić określony porządek Dane Informacje - często powstaje w wyniku przetwarzania i interpretacji danych Wiedza - to miedzy innymi umiejętność wykorzystania informacji Informacja Można teraz uporządkować te pojęcia w kontekście baz danych i sposobu i wykorzystania. Dane zbieramy i zapisujemy by na ich podstawie uzyskiwać informacje, które będą stawały się wiedzą, gdy uzupełnimy je o sposoby i możliwości ich praktycznego wykorzystania. Myślę, że nie trzeba udowadniać tezę, ze współczesne społeczeństwa (społeczeństwa informacyjne) opierają swoje działania i podstawy rozwoju na wiedzy, która jest miedzy innymi pozyskiwana z baz danych. Wiedza Społeczeństwo informacyjne - to także my informatyka +

Porozmawiajmy o danych 1 Uczeń Przedmiot Nauczyciel Data Ocena Tomek Kowal 18-03-2009 Maria Ciekawa Zosia Nowak Fizyka Informatyka 6 Monika Łagodna Romek Atomek Matematyka Zenon Poważny 12-03-2009 5 3 Kontynuowanie rozważań o danych. Widoczne na slajdzie, w nieładzie, różne dane stopniowo przemieszczają się tworząc wstępnie uporządkowane dane. Pomimo poukładania danych „tematycznie” – trudno jeszcze określić ich sens. W drugiej części animacji dane zostają umieszczone w tabeli i dopiero nazwanie kolumn pozwala wstępnie zinterpretować przedstawione dane. Slajd wykonuje się ok. 45 sek. I w tym czasie komentujemy proces porządkowania danych. Należy zwrócić szczególna uwagę na fakt, że dane bez ich interpretacji są najczęściej bezużyteczne. W powyższym przykładzie proces częściowej interpretacji danych został zrealizowany poprzez umieszczenie ich w tabeli oraz nazwanie kolumn. Przykład ten posłuży nam do wyprowadzenia definicji informacji. 15-03-2009 Jak widać - dane bez określonego porządku to chaos … i nie ma z takich danych korzyści Powoli zbiór danych staje się bardziej przejrzysty Jeszcze trochę pracy i powinno być dobrze informatyka + informatyka + 10

Porozmawiajmy o danych 2 Gromadzenie danych musi zapewnić porządek bo w przeciwnym razie nie damy sobie rady w sytuacji gdy danych będzie bardzo dużo. Kontynuujemy rozważania o istocie uporządkowania danych jako podstawy do umożliwienia ich wykorzystania. Przygotowujemy słuchaczy do tezy, że baza danych musi być oparta na pewnym określonym porządku – czyli na pewnym modelu danych. Jak sprawnie gromadzić dane zachowując możliwość ich wykorzystania ? informatyka +

Bazy danych 1 informatyka + Dane gromadzimy w bazach danych Nauczyciel : Maria Bryła Przedmiot :Fizyka Rodzaj : Sprawdzian Data wyst. : 17-05-2009 Ocena : 3 Nazwisko : Kotek Imię : Jasio Data ur. : 07-11-1991 Pesel : 07111134498 Kod poczt: 26-987 Miasto : Sopot Ulica : Klonowa 12/8 Nazwisko : Sarenka Imię : Zosia Data ur. : 11-11-1991 Pesel : 91111134498 Kod poczt: 26-987 Miasto : Poznań Ulica : Osinowa 22/8 Nazwisko : Lisek Imię : Piotr Data ur. : 11-02-1991 Pesel : 91021134498 Kod poczt: 96-987 Miasto : Opole Ulica : Długa 62/8 Nauczyciel : Józef Ostry Przedmiot :Informatyka Rodzaj : Sprawdzian Data wyst. : 17-05-2009 Ocena : 2 Nauczyciel : Jan Powaga Przedmiot :Matematyka Rodzaj : Sprawdzian Data wyst. : 17-05-2009 Ocena : 5 Dane gromadzimy w bazach danych Baza danych Po uruchomieniu slajdy strony z danymi przenoszą się do bazy danych – w trakcie tej animacji kontynuujemy rozważania dotyczące istoty baz danych i faktu, że podstawowym ich zadaniem jest gromadzenie określonych danych według założonego sposobu. informatyka +

Bazy danych 2 informatyka + Baza danych to zbiór danych zapisanych w ściśle określony sposób w strukturach odpowiadających założonemu modelowi danych. I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. Aktualnie najczęściej wykorzystuje się bazy danych oparte na relacyjnym modelu danych informatyka +

Podsumowanie informatyka + Dane opisują pewne fakty i zdarzenia Gromadzimy dane w celu ich późniejszego wykorzystania Gromadzenie danych bez określonego porządku jest bezsensowne Dane gromadzimy w bazach danych Bardzo wiele codziennych czynności związanych jest z korzystaniem z baz danych I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. informatyka +

Relacyjny model danych 1 Sposób modelowania danych w którym podstawowym pojęciem jest tabela. Relacja jest pojęciem matematycznym (z dziedziny teorii zbiorów) i cały model relacyjny jest doskonale opisany przez matematyków. I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. Dobra interpretacja matematyczna pozwoliła zrealizować dobre oprogramowanie obsługujące relacyjne bazy danych. informatyka +

Wybrane cechy modelu relacyjnego 1 Wszystkie wartości zapisywane w tabelach oparte są na prostych typach danych(brak struktur złożonych ) Nazwisko Imię Adres Języki obce Rodzeństwo Kod Ulica Miasto Kot Jasio 12-098 Nowa 33/21 Opole Angielski, francuski, hiszpański brat Staś, siostra Mariola Lis Hania 65-987 Cicha 17/2 Sopot Angielski, niemiecki brak Żuk Piotrek 33-093 Miła 4/3 Gdynia Nie zna brat Jaś, brat Staś, siostra Hania Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. Powyższa tabela nie spełnia tej cechy - w dalszej części pokażemy jak można ten problem rozwiązać informatyka +

Wybrane cechy modelu relacyjnego 2 Wszystkie dane w bazie relacyjnej przedstawione są w formie dwuwymiarowych tabel zwanych relacjami Płyty Numer Nazwa albumu Rok wydania Nazwa zespołu 1 Kwiaty polskie 1969 Akwarele 2 Help 1967 The Beatles 3 Mrowisko 1971 Klan 4 Rubikone 2009 Piotr Rubik 5 Hellwood Hunter Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Wybrane cechy modelu relacyjnego 3 Wszystkie operacje wykonywane są w oparciu o logikę bez względu na położenie wiersza w tabeli Ponieważ w modelu relacyjnym kolejność kolumn i wierszy nie ma żadnego znaczenia - to widoczne trzy postaci tabel są identyczne i można z nich pobrać dokładnie te same informacje informatyka +

Wybrane cechy modelu relacyjnego 4 W tabeli musi istnieć kolumna lub zbiór kolumn o wartościach niepowtarzalnych, pozwalający odnaleźć konkretny wiersz. Nazwisko Imię DataUr. Nowak Jan 15-07-1992 Piotr 16-10-1992 Kowalski 22-11-1992 Piskorska Beata 03-05-1992 Zaznaczone wiersze są nierozróżnialne, Tak naprawdę nie wiadomo czy jest to pomyłka czy też opis dwóch różnych osób Pesel Nazwisko Imię DataUr. 92071598712 Nowak Jan 15-07-1992 92101675643 Piotr 16-10-1992 92112287965 Kowalski 22-11-1992 92112233562 92050322411 Piskorska Beata 03-05-1992 Dodatkowa kolumna „Pesel” – umożliwiła rozróżnienie dwóch osób. Pesel może być uznany za klucz podstawowy. I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. Taką kolumnę (lub zbiór) nazywamy kluczem podstawowym (ang. primary key) informatyka +

Relacyjny model danych 2 Projekt bazy danych, opartej na modelu relacyjnym, polega na opisaniu pewnej dziedziny życia za pomocą wielu tabel Każda tabela opisuje jeden rodzaj obiektów (np. uczeń, klient, książka) lub zdarzeń (np. wystawiona ocena, wykonany przelew, wizyta lekarska) I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. Projektując bazę danych zapewnia się możliwość łączenia ze sobą danych zawartych w różnych tabelach. Więcej o projektowaniu relacyjnej bazy danych w dalszej części wykładu informatyka +

Sztuczny klucz podstawowy Tabela relacyjna Sztuczny klucz podstawowy Cechy tabeli relacyjnej Uczniowie 1.Przeznaczenie Iducznia Nazwisko Imie Data_ur Pesel Pesel 1 Nowak Jan 11.09.1991 91091145654 2.Kolumny – określają cechy opisywanego obiektu 2 Rybak Zofia 12.11.1991 91111256744 3 Kowal Stefan 21.02.1992 92022172138 4 Kozak Jan 17.08.1992 92081711737 5 Pływak Anna 04.02.1993 93020495571 3.Klucz podstawowy 4.Wiersze – suma cech danego obiektu I już mamy tabelę wraz z zawartością  informatyka +

Redundancja!!!!!!!!!!!!!! I co tutaj nie gra  Faktury Normalizacja – podstawa projektowania Faktury Idfaktury Numer Data_w Netto Vat Firma Nip Ulica Miasto 1 234/08 11.08.08 345.67 71.22 Wedel 1234652789 Nowa 3 Warszawa 2 43/08 12.08.08 763.00 167.00 3 01/2008 15.08.08 322.00 68.65 Złotex 6573298722 Miła 7 Sopot 4 11.08/1 22.09.08 100.00 22.00 Koral 5582998721 Dobra 1 Opole 5 34w/08 28.09.08 882.00 187.00 6 987/08 02.10.08 250.55 58.12 7 002.08 11.10.08 891.00 201.15 Redundancja!!!!!!!!!!!!!! I co tutaj nie gra  informatyka +

Faktury Firmy Normalizacja – podstawa projektowania informatyka + Klucz obcy Idfirmy 1 2 3 Idfaktury Numer Data_w Netto Vat 1 234/08 11.08.08 345.67 71.22 2 43/08 12.08.08 763.00 167.00 3 01/2008 15.08.08 322.00 68.65 4 11.08/1 22.09.08 100.00 22.00 5 34w/08 28.09.08 882.00 187.00 6 987/08 02.10.08 250.55 58.12 7 002.08 11.10.08 891.00 201.15 1 Wedel 1234652789 Nowa 3 Warszawa 1 Wedel 1234652789 Nowa 3 Warszawa 2 Złotex 6573298722 Miła 7 Sopot 3 Koral 5582998721 Dobra Warszawa 1 Wedel 1234652789 Nowa 3 Warszawa 2 Złotex 6573298722 Miła 7 Sopot 2 Złotex 6573298722 Miła 7 Sopot Firmy Firma Nip Ulica Miasto Wedel 1234652789 Nowa 3 Warszawa Złotex 6573298722 Miła 7 Sopot Koral 5582998721 Dobra 1 Opole IdFirmy 1 2 3 informatyka +

Podsumowanie informatyka + Model relacyjny opiera się na pojęciu tabeli Każda tabela musi posiadać klucz podstawowy W modelu relacyjnym nieistotna jest kolejność kolumn i wierszy Baza danych oparta na modelu relacyjnym składa się z wielu tabel opisujących pewną dziedzinę życia. Bazy relacyjne są aktualnie najbardziej rozpowszechnione. I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. informatyka +

Plan prezentacji informatyka + Kilka definicji na dobry początek. Dane i bazy danych. Podstawy relacyjnego modelu danych. Rozważania o tabeli. Modelowanie z wykorzystaniem tabel relacyjnych. Problemy i anomalie związane z gromadzeniem danych w tabelach. Systemy Zarządzania Bazami Danych. Spójność i integralność danych. Od rozkładu jazdy do bankowości internetowej. Podsumowanie wykładu – pytania. Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Przykładowy projekt bazy danych Schemat bazy danych do rejestrowania ocen uczniów informatyka +

Przykładowe fragmenty baz danych Rejestr wypożyczeń książek Tabela opisująca wypożyczenia książek Powiązanie pomiędzy tabelami Tabela słownikowa Powiązanie pomiędzy tabelami Powiązanie pomiędzy tabelami I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. Tabela opisująca książki Tabela opisująca osoby informatyka +

Analiza pewnego problemu 1 Wyobraźmy sobie, że w pewnej bazie danych istnieje tabela o nazwie „Klienci” o strukturze pokazanej na rysunku obok Przykładowa zawartość takiej tabeli mogłaby wyglądać tak jak na rysunku poniżej I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. Proszę zwrócić uwagę na fakt, że jak brak pewnych danych to w tabeli przechowywana jest specyficzna wartość null informatyka +

Analiza pewnego problemu 2 W trakcie eksploatacji naszej przykładowej bazy danych wyniknął problem, ponieważ użytkownicy bazy danych chcieliby dodatkowo przechowywać dane o numerze telefonu komórkowego. Rozwiązaniem problemu mogłoby być dodanie do tabeli Klienci dodatkowej kolumny TelefonKomorkowy – tak jak poniżej Tak mogłaby wyglądać zmodyfikowana tabela … a tak zawartość tej tabeli I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. informatyka +

Analiza pewnego problemu 3 … ale czy mamy pewność, że w trakcie dalszej eksploatacji tej bazy danych nie będzie potrzeby dodawania kolejnych kolumn np. żeby zapisać więcej niż jeden numer telefonu albo adres strony www, numer faksu (… a może dwa numery), numer GG … itd. I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. … a może chwila zastanowienia i rozwiązać ten problem raz a dobrze ??? informatyka +

Analiza pewnego problemu 4 Problem rozwiążemy w trzech krokach : 1.Utworzymy tabelę słownikową o nazwie „RodzajeKontaktow” 2. Z tabeli „Klienci” usuniemy kolumny opisujące numery telefonów itp. I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. 3.Utworzymy nową tabelę (tzw. tabelę asocjacyjną) o nazwie „KontaktyKlienta” informatyka +

Analiza pewnego problemu 5 Model bazy danych I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. informatyka +

Analiza pewnego problemu 6 Przykładowa zawartość tabel (RodzajeKontaktow) Tabele podobnego typu nazywamy tabelami słownikowymi. Jeżeli będziemy dodatkowo potrzebowali przechowywać w bazie danych informacje o numerach Gadu Gadu i adresy stron WWW – to wystarczy dopisać kolejne wiersze do tabeli I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. informatyka +

Analiza pewnego problemu 7 Przykładowa zawartość tabel (Klienci) W tabeli „Klienci” nie zapisujemy teraz danych o numerach telefonów, adresach e-mail itp. I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. Dodatkowo uzyskujemy jeszcze jedna korzyść – w sytuacji gdy dany klient nie ma telefonu lub innego środka łączności, nie musimy przechowywać w tabeli wartości null. informatyka +

Analiza pewnego problemu 8 Przykładowa zawartość tabel (KontaktyKlienta) Tabele tego typu nazywamy tabelą powiązań (asocjacyjną) I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. Dane zawarte w tabeli KontaktyKlienta wymagają interpretacji, żeby stały się czytelne informatyka +

Analiza pewnego problemu 9 Poniżej postać danych z poprzedniego slajdu, przekształcona do bardziej czytelnej postaci I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. Dzięki kluczom obcym w tabeli KontaktyKlienta mogliśmy powiązać dane zapisane w różnych tabelach informatyka +

Podsumowanie informatyka + Za pomocą dwuwymiarowych tabel opisujemy wybrany fragment rzeczywistości (bank, szkoła , kolekcja płyt) Tabele relacyjne mogą opisywać : Obiekty rzeczywiste (uczniowie, nauczyciele, klasy) Słowniki pojęć (przedmioty, rodzaje ocen) Zdarzenia i powiązania (wystawione oceny) I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. Powiązanie danych zapisanych w różnych tabelach osiągamy dzięki parze kluczy : klucz obcy --- klucz podstawowy informatyka +

Problemy gromadzenia danych w tabelach 1 Problem 1 : Gromadzenie danych w tabeli nie może się odbywać bez reguł i ograniczeń – nie wystarczy samo nazwanie kolumn Pesel Nazwisko Imię DataUrodzenia Płeć Wiek 92092256787 Kotek Janina 1992-09-22 Kobieta 17 921105au34 Lisek Piotr 1992-07-21 33 Wiktor 23 Lis 8 maj 91 Chłopak OK Jak widać na powyższym przykładzie – w tabeli bardzo łatwo może zapanować totalny bałagan, choćby z tego powodu, że to ludzie wprowadzają dane, a człowiek jest omylny. Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. Bazy danych powinny posiadać mechanizmy ułatwiające wymuszanie poprawności zapisywanych danych informatyka +

Problemy gromadzenia danych w tabelach 3 Kilka słów o przedstawionych problemach Pesel Nazwisko Imię DataUrodzenia Płeć Wiek 92092256787 Kotek Janina 1992-09-22 Kobieta 17 921105au34 Lisek Piotr 1992-39-42 33 Wiktor 23 Lis 8 maj 91 Chłopak OK Nazwa kolumny nie gwarantuje zapisywania w niej właściwych danych Gdy mamy zapisane błędne dane – baza danych traci sens. W powyższym przykładzie – numer Pesel powinien być zależny od daty urodzenia Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Problemy gromadzenia danych w tabelach 4 Problem 2: Problemy i anomalie związane z zapisywaniem danych Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. W powyższej, przykładowej, tabeli mamy cały szereg problemów, które mogą wyniknąć w nieprawidłowo zabezpieczonej bazie danych informatyka +

Problemy gromadzenia danych w tabelach 5 Problem 2: Problemy i anomalie związane z zapisywaniem danych Czy Jan Kotek i Kotek Jan – to ta sama osoba???? Czy Daria Miła mieszka na ulicy Naftowej czy Benzynowej ??? Czy Sprawdzian i Sprawdz. to ten sam rodzaj oceny???? Czy Historia i Chistoria (ale wtyd – ale zdarzyć się może) to ten sam przedmiot ????? Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

System Zarządzania Bazą Danych 1 Systemem Zarządzania Bazami Danych nazywamy specjalistyczne oprogramowanie umożliwiające tworzenie baz danych oraz ich eksploatację SZBD powinien(miedzy innymi) umożliwiać : Definiowanie obiektów bazy danych Manipulowanie danymi Generowanie zapytań Zapewnienie spójności i integralności danych Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

System Zarządzania Bazą Danych 2 Przykłady SZBD : MS SQL Server 2008 Oracle MySQL Access Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. DB2 … i wiele, wiele innych informatyka +

System Zarządzania Bazą Danych 2 Jednym z najważniejszych zadań stojących przed SZBD jest zapewnienie spójności i integralności danych SZBD dostarczają szereg mechanizmów służących zapewnieniu poprawności przechowywanych danych Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

System Zarządzania Bazą Danych 2 Rodzaje reguł i ograniczeń Deklaracja typu Definicje kluczy Reguły poprawności dla kolumny Reguły poprawności dla wiersza Reguły integralności referencyjnej Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. Poszczególne typy reguł zostaną omówione w dalszej części wykładu informatyka +

Spójność i integralność danych Jednym z najistotniejszych elementów Systemów Zarządzania Bazami Danych są mechanizmy zapewnienia spójności i integralności danych przechowywanych w bazie Podstawowe sposoby zapewnienia integralności danych Deklaracja typu Deklaracje kluczy Reguły poprawności dla kolumny Reguły poprawności dla wiersza Reguły integralności referencyjnej Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Deklaracja typu 1 informatyka + W tabelach relacyjnych przechowujemy dane różnego typu (liczby, teksty, znaki, daty …) Każda kolumna w tabeli musi mieć określony typ przechowywanych danych Deklaracja typu jest pierwszym sposobem zapewnienia poprawności danych – w ujęciu matematycznym jest to określenie dziedziny wartości dla kolumny Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Deklaracja typu 2 informatyka + Przykładowe typy danych w SQL Server 2008 Dla danych znakowych char(n) - ciąg n znaków o stałej długości (np. jeżeli kolumna ma określony typ char(25) a wpiszemy słowo „kot” – to i tak zostanie ono zapisane za pomocą 25 znaków – uzupełnione spacjami) varchar(n) – ciąg n znaków o zmiennej długości (np. jeżeli kolumna ma określony typ varchar(25) a wpiszemy słowo „kot” –zostanie ono zapisane za pomocą 3 znaków) Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. varchar(max) – ciąg znaków o zmiennej długości do 2 GB informatyka +

Deklaracja typu 3 informatyka + Przykładowe typy danych w SQL Server 2008 Pytanie : Skoro typ char w porównaniu z varchar wykorzystuje więcej pamięci do zapisywania danych (uzupełnianie spacjami) – to jakie korzyści możemy osiągnąć w przypadku wykorzystania typu char Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Deklaracja typu 4 informatyka + Przykładowe typy danych w SQL Server 2008 Istnieją także odmiany podanych wcześniej znakowych typów danych poprzedzone literka „n” nchar (n) nvarchar(n) nvarchar(max) Są to typy danych znakowych (zapisywanych łącznie z informacją o stronie kodowej) umożliwiające przechowywanie tekstów używających znaków specyficznych dla różnych języków Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Deklaracja typu 5 informatyka + Przykładowe typy danych w SQL Server 2008 Dla danych liczbowych – liczby całkowite tinyint- liczba całkowita z zakresu 0 ÷ 255 - przechowywana za pomocą 1 bajtu smallint- liczba całkowita z zakresu -32768 ÷ 32767 przechowywana za pomocą 2 bajtów int- liczba całkowita z zakresu -2147483648 ÷ 2147483647 przechowywana za pomocą 4 bajtów Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. bigint- liczba całkowita z zakresu -9223372036854775808 ÷ 9223372036854775807 przechowywana za pomocą 8 bajtów informatyka +

Deklaracja typu 5 informatyka + Przykładowe typy danych w SQL Server 2008 Dla danych liczbowych – liczby z ułamkiem real , float - do zapisywania liczb zmiennoprzecinkowych decimal, numeric - do zapisywania liczb zmiennoprzecinkowych o określonej precyzji Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. money - do zapisywania liczb wyrażających kwoty pieniężne informatyka +

Deklaracja typu 6 informatyka + Przykładowe typy danych w SQL Server 2008 Dla danych liczbowych – data i czas date- do zapisywania dat np. 2009-08-22 time- do zapisywania czasu np. 19:22:07.2345644 Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. datetime - do zapisywania łącznie daty i czasu np. 2009-08-22 19:22:07.2345644 informatyka +

Deklaracja typu 7 informatyka + Przykładowe typy danych w SQL Server 2008 Dla danych liczbowych – typy różne bit- do zapisywania wartości logicznych (true, false lub 0,1) varbinary(n)- do zapisywania danych binarnych o długości n bajtów varbinary(max) - do zapisywania danych binarnych o długości do 2 GB (np. obrazy, dźwięki itp. ) Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. xml- do zapisywania dokumentów XML o długości do 2 GB Timestamp - specjalny znacznik który automatycznie zmienia swoja wartość przy modyfikacji wiersza informatyka +

Deklaracja typu 8 informatyka + Krótkie podsumowanie Każda kolumna w tabeli musi mieć określony typ danych jaki będzie w tej kolumnie zapisywany Decyzja o wyborze odpowiedniego typu danych jest pierwszym etapem zapewnienia spójności danych Wybór typu jest równoznaczny z określeniem dziedziny wartości dla danych zapisywanych w danej kolumnie Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

informatyka + Deklaracja kluczy W każdej tabeli relacyjnej powinien być zdefiniowany klucz podstawowy – taka definicja zapewnia, ze każda wartość w kolumnie klucza podstawowego musi przyjąć inną wartość W SZBD istnieją mechanizmy nadające kolumnom klucza podstawowego automatycznie unikalne wartości (autonumeracja) Można także wymusić unikalność kolumn, które nie są kluczem podstawowym – klucze potencjalne Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Reguły poprawności dla kolumny Deklaracja typu określa dziedzinę wartości dla kolumny ale często jest to dziedzina zbyt szeroka Reguła poprawności dla kolumny jest wyrażeniem logicznym ograniczającym dziedzinę do tych wartości, które spełniają ten warunek Przykład : Numer Pesel (w tabeli Uczniowie) ma zadeklarowany typ danych char(11) - czyli ciąg znaków o maksymalnej długości 11. Powinniśmy wymusić, żeby to było dokładnie 11 znaków i mogą to być tylko cyfry. Taka definicja zapewni, że zapisywane w tabeli numery Pesel będą poprawne (w tej części wymagań) Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Reguły poprawności dla wiersza Czasami występują logiczne zależności pomiędzy danymi zapisanymi w różnych kolumnach (dla jednego wiersza) Reguła poprawności dla wiersza jest wyrażeniem logicznym ograniczającym dziedzinę do tych wartości, które spełniają ten warunek . Przykład : Numer Pesel (w tabeli Uczniowie) jest logicznie powiązany z datą urodzenia ucznia zapisaną w tej samej kolumnie. Powinniśmy wymusić, żeby pierwsze sześć cyfr numeru Pesel odpowiadało dacie urodzenia zapisanej w innej kolumnie Taka definicja zapewni, że zapisywane w tabeli numery Pesel i daty urodzenia będą logicznie poprawne Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Reguły integralności referencyjnej Integralność referencyjna określa poprawność logiczna danych zapisanych w różnych tabelach Klasycznym przykładem takich zależności jest para klucz obcy – klucz podstawowy. Przykład : Kolumna iducznia w tabeli Uczniowie (jako klucz podstawowy) i kolumna iducznia w tabeli Oceny (jako klucz obcy) Powinniśmy wymusić, żeby wartości klucza obcego przyjmowały tylko takie wartości, które występują w tabeli gdzie ta kolumna jest kluczem podstawowym – zapewnia to odpowiednie powiązanie danych zapisanych w różnych tabelach. Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Podsumowanie informatyka + Zapewnienie spójności i integralności danych jest jednym z najważniejszych wyzwań stojących przed twórcami baz danych Systemy Zarządzania Bazami Danych dostarczają mechanizmy ułatwiajace realizacje tych zadań W trakcie zajęć warsztatowych przyjrzymy się jak te mechanizmy działają w praktyce I na tej definicji powinniśmy zakończyć wprowadzanie podstawowych pojęć i definicji. W przypadku określania społeczeństwa informacyjnego należy szczególna uwagę zwrócić na fakt, że nowoczesne społeczeństwa i gospodarki opierają się na informacji i wiedzy a także na umiejętnościach wykorzystania danych do pozyskiwania informacji i zdobywania wiedzy. Po wprowadzeniu podstawowych definicji przechodzimy do zagadnień związanych z podstawowym tematem wykładu czyli do baz danych a w szczególności do baz danych opartych na modelu relacyjnym. informatyka +

Podstawy języka SQL Wykład wprowadza do tematyki baz danych. W ramach wykładu zaprezentowane zostanie wprowadzenie do relacyjnego modelu danych. Zdefiniowane zostaną pojęcia : dane, informacja, wiedza oraz baza danych. Pojęcia podstawowe : tabela relacyjna, cechy tabeli relacyjnej, klucz podstawowy i klucz obcy. Przedstawione zostanie pojęcie Systemu Zarządzania Bazami Danych. Pokazane zostaną anomalie związane z modyfikacją danych i sposoby ich rozwiązywania. Omówione zostaną przykłady korzystania z baz danych. informatyka +

Krótka historia języka SQL – kroki milowe 1970 - publikacją E.F.Codda pt. A Relational Model of Data for Large Shared Data Banks. ( pol. Relacyjny model danych dla dużych współdzielonych banków danych). - w IBM powstał język SEQUEL (ang. Structured English Query Language – Stukturalny Angielski Język Zapytań) 1979 - firma ORACLE wypuściła na rynek pierwszy komercyjny system zarządzania bazami danych oparty o SQL. Historia relacyjnego modelu danych rozpoczęła się w roku 1970 wraz z publikacją E.F.Codda pt. A Relational Model of Data for Large Shared Data Banks. ( pol. Relacyjny model danych dla dużych współdzielonych banków danych). Ten artykuł wzbudził duże zainteresowanie, ponieważ przedstawiał możliwości realizacji i praktyczne zastosowania komercyjnego systemu baz danych Praca ta stworzyła teoretyczne podstawy budowania baz danych w oparciu o relacyjne podejście do jej modelowania. Opublikowana teoria bardzo szybko zainteresowała potencjalnych twórców i producentów systemów zarządzania bazami danych. Droga od teorii do praktyki bywa często długa i wyboista ale w tym przypadku, ze względu na pilne potrzeby rynku, przebiegała dość szybko i sprawnie. Jednym z podstawowych wyzwań było opracowanie sposobu komunikowania się i korzystania z relacyjnych baz danych, czyli opracowanie specjalnego języka programowania. W ramach prac nad językiem do obsługi baz danych, prowadzonych w firmie IBM, w roku 1974 powstał język SEQUEL (ang. Structured English Query Language – Stukturalny Angielski Język Zapytań), który następnie został rozwinięty i nazwany SQL (ang. Structured Query Language – Strukturalny Język Zapytań) – zmiana nazwy wynikała ze sporu prawnego o zastrzeżoną nazwę SEQUEL. Pod koniec lat 70-tych XX wieku, firma ORACLE wypuściła na rynek pierwszy komercyjny system zarządzania bazami danych oparty o SQL. W latach 80-tych i 90–tych, ubiegłego wieku, trwał burzliwy rozwój baz danych opartych na modelu relacyjnym i języku SQL. … do dnia dzisiejszego trwa burzliwy rozwój tego języka informatyka +

Standardy języka SQL informatyka + Krótka historia standardów języka SQL : 1986: pierwszy standard SQL (SQL-86), 1989: następny standard SQL (SQL-89), 1992: wzbogacona wersja standardu (SQL-92 lub SQL 2), 1999: standardu rozszerzonego o pewne cechy obiektowości (SQL 3) 2003: Kolejne rozszerzenie standardu (m.in. włączenie do standardu języka XML) - SQL 4 2006 : Niewielkie rozszerzenie standardu 2008 : Kolejne niewielkie rozszerzenie standardu Ponieważ wielu producentów zaczęło tworzyć rozwiązania baz danych oparte o model relacyjny i język SQL powstawało ryzyko, że u różnych producentów język SQL będzie rozwijał się inaczej. Rozwiązaniem tego problemu było zdefiniowanie standardów języka SQL przez organizację ISO (ang. International Organization for Standarization) i ANSI (ang. American National Standards Institute). Definiowanie standardu należy traktować jako wytyczne dla producentów systemów, w jakim kierunku rozwijać kolejne opracowania języka SQL, jakie nowe elementy mogą zostać wprowadzone do języka i jak system baz danych powinien realizować operacje związane z definiowaniem baz danych i ich eksploatacją. Obecnie język SQL jest powszechnie stosowanym językiem komunikacji z bazami danych w systemach opartych o relacyjny model danych,. Krótka historia standardów języka SQL : 1986: pierwszy standard SQL (SQL-86), 1989: następny standard SQL (SQL-89), 1992: kolejna, wzbogacona wersja standardu (SQL-92 lub SQL 2), 1999: wdrożenie następnej wersji standardu rozszerzonego o pewne cechy obiektowości (SQL 3) 2003: Kolejne rozszerzenie standardu (m.in. włączenie do standardu języka XML) SQL 4   Język SQL jest nadal rozwijany i trudno przewidzieć, jakie kierunki rozwoju zostaną wybrane, zaś odpowiedzi na to pytanie dostarczać będą kolejne wersje standardu. informatyka +

Standardy języka SQL informatyka + Opracowywaniem i publikowanie standardów SQL zajmują się organizacje : ISO (ang. International Organization for Standarization) ANSI (ang. American National Standards Institute). Standard języka to wytyczne dla producentów Systemów Zarządzania Bazami Danych Pomimo istnienia standardów jezyka SQL – rózne implementacje różnia się od siebie (nieznacznie) Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Cechy języka SQL informatyka + SQL jest językiem IV generacji …i co z tego że IV generacji SQL jest językiem deklaratywnym … ????????? W języku SQL deklarujemy co chcemy osiągnąć – bez określania jak to należy wykonać Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Cechy języka SQL informatyka + Język SQL dzielimy na trzy podstawowe części: Język Definiowania Danych – DDL (ang. Data Definition Language Język Manipulacji Danymi – DML (ang. Data Manipulation Language Język Kontroli Danych – DCL (ang. Data Control Language) Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Cechy języka SQL informatyka + Język Definiowania Danych – DDL (ang. Data Definition Language Polecenia : CREATE – definiowanie obiektów w bazie danych ALTER - modyfikowanie obiektów w bazie danych DROP - usuwanie obiektów z bazy danych Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Cechy języka SQL informatyka + Przykład polecenia DDL : CREATE TABLE Uczniowie ( IdUcznia int IDENTITY(1,1) NOT NULL, Nazwisko varchar(50) NOT NULL, Imie varchar(50) NOT NULL, DataUrodzenia date NOT NULL, CzyChlopak bit NOT NULL, Pesel varchar(11) NULL, CONSTRAINT PK_uczniowie PRIMARY KEY CLUSTERED (IdUcznia ASC) ) Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Cechy języka SQL informatyka + Język Manipulacji Danymi – DML (ang. Data Manipulation Language Polecenia : INSERT– wstawianie do tabeli nowych wierszy UPDATE - modyfikowanie wierszy w tabeli DELETE - usuwanie wierszy z tabeli MERGE - warunkowa modyfikacja danych w tabeli SELECT – pobieranie danych z tabel (zapytania) Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Cechy języka SQL informatyka + Przykład polecenia DML : INSERT INTO Uczniowie (Nazwisko, Imie, DataUrodzenia, CzyChlopak, Pesel) VALUES(‘Kot’, ‘Jan’, ‘1991-07-12’,’true’, ‘91071276538’) SELECT Nazwisko, Imie, Pesel FROM Uczniowie WHERE CzyChlopak=true ORDER BY nazwisko Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Cechy języka SQL informatyka + Język Kontroli Danych – DCL (ang. Data Control Language) Polecenia : GRANT– przydzielenie prawa do danych REVOKE – pozbawienie prawa do danych DENY - bezwarunkowe pozbawienie prawa do danych Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Cechy języka SQL informatyka + Praca z wykorzystaniem SQL może być realizowana na kilka sposobów : poprzez interaktywne zadawanie pytań do bazy (monitor), budowanie skryptów (zbioru wsadowo wykonywanych zapytań w SQL), osadzanie kodu (pojedynczych zapytań i całych procedur) SQL w innych językach programowania (na poziomie aplikacji), procedur składowanych (na poziome bazy danych). Na początku wykładu należy wprowadzić kilka podstawowych definicji. Rozpoczynamy od definicji danych jako znaków, teksów, liczb i rożnych symboli, które zamierzamy przechowywać w celu późniejszego wykorzystania. Powyższy slajd ma uzasadniać tezę, że zapisywanie danych bez pewnego określonego porządku jest czynnością bezcelową i w dalszej części wykładu teza ta będzie uzasadniania. informatyka +

Przykładowa baza danych informatyka +

Przykładowa baza danych Pisanie zapytań w języku SQL wymaga dobrej znajomości bazy danych do której te zapytania się odnoszą informatyka +

Podstawowe operacje realizowane na modelu relacyjnym Realizacja zapytań opiera się na trzech podstawowych operacjach wykonywanych na modelu relacyjnym: Operacja projekcji (zwana także rzutowaniem) Operacja selekcji Operacja łączenia informatyka +

Podstawowe operacje realizowane na modelu relacyjnym Operacja projekcji Tabela wynikowa po operacji projekcji Tabela wyjściowa Wykonanie operacji projekcji informatyka +

Podstawowe operacje realizowane na modelu relacyjnym Operacja selekcji Warunek selekcji Idklasy=2 Tabela wynikowa Tabela wyjściowa Wykonanie operacji selekcji informatyka +

Podstawowe operacje realizowane na modelu relacyjnym Operacja łączenia Wykonanie operacji łączenia Tabela wyjściowa Tabela wynikowa Tabela dołączania informatyka +

Podstawowe operacje realizowane na modelu relacyjnym Przedstawione operacje wykonywane na modelu relacyjnym są podstawa realizacji zapytań informatyka +

Polecenie SELECT- zapytania proste FROM Uczniowie Przykładowy wynik zapytania Określona została , w opcji FROM, tabela z której pobieramy dane a znaczek * powoduje dostarczenie do wyniku zapytania wszystkich dostępnych w tabeli kolumn informatyka +

Realizacja operacji projekcji SELECT Nazwisko, Imie, Pesel, CzyChlopak FROM Uczniowie Przykładowy wynik zapytania Określona została , w opcji FROM, tabela z której pobieramy dane i wymieniono liste kolumn, które maja się pojawić w wyniku informatyka +

Realizacja operacji projekcji i selekcji SELECT Nazwisko, Imie, Pesel, CzyChlopak FROM Uczniowie WHERE CzyChlopak=1 Przykładowy wynik zapytania W klauzuli WHERE dodano warunek selekcji informatyka +

Porządkowanie wyniku zapytania SELECT Nazwisko, Imie, Pesel, Idklasy FROM Uczniowie WHERE Idklasy=1 OR Idklasy=2 ORDER BY Idklasy ASC, Nazwisko DESC Przykładowy wynik zapytania Dodano klauzule ORDER BY – realizującą porządkowanie wyniku zapytania (opcja ASC – rosnąco, DESC – malejąco) informatyka +

Przekształcanie danych SELECT Nazwisko, Imie, Pesel, CASE CzyChlopak WHEN 1 THEN ‘Mężczyzna’ ELSE ‘Kobieta’ END as Płeć FROM Uczniowie WHERE Idklasy=2 Przykładowy wynik zapytania Kolumna o nazwie Płeć powstała w wyniku przekształcenia wartości zapisanych w tabeli informatyka +

Przykładowy wynik zapytania Operacja łączenia SELECT Uczniowie.* , Klasy.* FROM Uczniowie JOIN Klasy ON Uczniowie.Idklasy=Klasy.Idklasy Przykładowy wynik zapytania Do wiersza opisującego ucznia został dołaczony odpowiedni wiersz z tabeli klasy informatyka +

Przykładowy wynik zapytania Operacja łączenia SELECT Uczniowie.Nazwisko, Uczniowie.Imie, CASE CzyChlopak WHEN 1 THEN ‘Mężczyzna’ ELSE ‘Kobieta’ END as Płeć, Klasy.Nazwa, Klasy.RokSzkolny FROM Uczniowie JOIN Klasy ON Uczniowie.Idklasy=Klasy.Idklasy WHERE YEAR(Uczniowie.DataUrodzenia)=1992 ORDER BY Płeć, Nazwisko DESC Przykładowy wynik zapytania Zapytanie wykonujące operacje projekcji, selekcji, łączenia, przekształca dane i porządkuje wynik zapytania informatyka +

Rozwiązanie problemu Chcemy napisać zapytanie, które przygotuje wykaz uczniów (nazwisko i imię) oraz dane nauczyciela (nazwisko i imię oraz stopień zawodowy), który wystawił ocenę i datę wystawienia oceny tym uczniom, którzy w roku 2009 otrzymali z fizyki ocenę 5, wynik uporządkować malejąco według daty wystawienia oceny. informatyka +

Rozwiązanie problemu SELECT Uczniowie.Nazwisko+’ ‘+Uczniowie.Imie AS Uczen, Nauczyciele.Nazwisko+’ ‘ Nauczyciele.Imie AS Nauczyciel, Oceny.DataWystawienia, Oceny.Ocena FROM Uczniowie JOIN Oceny ON Uczniowie.Iducznia=Oceny.IdUcznia JOIN Nauczyciele ON Nauczyciele.IdNauczyciela=Oceny.IdNauczyciela JOIN Przedmioty ON Oceny.Idprzedmiotu=Przedmioty.Idprzedmiotu WHERE YEAR(DataWystawienia) =2009 AND Ocena=5 AND Przedmioty.Nazwa=’Fizyka’ ORDER BY DataWystawienia DESC informatyka +

Przykładowy wynik zapytania Rozwiązanie problemu Przykładowy wynik zapytania informatyka +

Złączenie zewnętrzne Do tej pory, domyślnie, realizowaliśmy tzw. złączenie wewnętrzne – czyli w wyniku zapytania pojawiały się tylko te wiersze dla których spełniony był warunek złączenia SQL umożliwia wykonanie złączenia zewnętrznego – czyli umożliwia dołączenie do wyniku zapytania także te wiersze dla których warunek złączenia nie jest spełniony Złączenie zewnętrzne omówimy na przykładzie informatyka +

Złączenie zewnętrzne Przygotujemy zapytanie w którym będą wszyscy uczniowie wraz z informacja kiedy otrzymali w lutym roku 2009 ocenę mierną SELECT Uczniowie.Nazwisko, Uczniowie.Imie, Oceny.DataWystawienia, Ocena FROM Uczniowie LEFT OUTER JOIN Oceny ON Uczniowie.iducznia=Oceny.Iducznia AND Oceny.Ocena=2 AND YEAR(DataWystawienia)=2009 AND MONTH(DataWystawienia)=2 informatyka +

Przykładowy wynik zapytania Złączenie zewnętrzne Przykładowy wynik zapytania informatyka +

Funkcje agregujące Zapytania SQL mogą być także wykorzystane do wykonywania obliczeń na podstawie danych zawartych w tabelach. Do tego celu służą funkcje agregujące. Język SQL udostępnia pięć podstawowych funkcji agregujących; COUNT – oblicza ilość wierszy otrzymanych w wyniku zapytania, SUM – sumuje zawartość kolumny (lub wyrażenia obliczonego na podstawie danych) dla wszystkich wierszy w wyniku zapytania, AVG – oblicza średnią arytmetyczną zawartości kolumny (lub wyrażenia obliczonego na podstawie danych) dla wszystkich wierszy w wyniku zapytania, MIN – określa wartość minimalną dla kolumny w wyniku zapytania, MAX – określa wartość maksymalną dla kolumny w wyniku zapytania. informatyka +

Funkcje agregujące SELECT COUNT(*) AS IluUczniow FROM Uczniowie SELECT COUNT(*) AS IluUczniow FROM Uczniowie JOIN Klasy ON Uczniowie.idklasy=Klasy.idklasy WHERE Klasy.Nazwa='IIa' Funkcja agregująca użyta w zapytaniu powoduje, ze w wyniku otrzymujemy jeden wiersz z wynikiem działania funkcji agregującej informatyka +

Funkcje agregujące i grupowanie danych SELECT Klasy.Nazwa, COUNT(*) AS IluUczniow FROM Uczniowie JOIN Klasy ON Uczniowie.idklasy=Klasy.idklasy GROUP BY Klasy.Nazwa Wykorzystaliśmy klauzulę GROUP BY w celu „rozbicia” działania funkcji agregującej dla wierszy zawierających tę sama wartość dla kolumny Klasy.Nazwa informatyka +

Funkcje agregujące i grupowanie danych Lista uczniów z klasy IIa oraz ich średnią ocen otrzymanych w roku 2009 SELECT Uczniowie.Nazwisko, Uczniowie.Imie, AVG(Oceny.Ocen) as Średnia FROM Uczniowie JOIN Oceny ON Uczniowie.Iducznia=Oceny.IdUcznia JOIN Uczniowie.Idklasy=Klasy.Idklasy WHERE YEAR(Oceny.DataWystawienia)=2009 AND Klasy.Nazwa=’IIa’ GROUP BY Uczniowie.Nazwisko, Uczniowie.Imie ORDER BY Średnia DESC informatyka +

Funkcje agregujące i grupowanie danych Lista uczniów z klasy IIa oraz ich średnią ocen otrzymanych w roku 2009 - tylko ci uczniowie których srednia przekracza 3.00 SELECT Uczniowie.Nazwisko, Uczniowie.Imie, AVG(Oceny.Ocen) as Średnia FROM Uczniowie JOIN Oceny ON Uczniowie.Iducznia=Oceny.IdUcznia JOIN Uczniowie.Idklasy=Klasy.Idklasy WHERE YEAR(Oceny.DataWystawienia)=2009 AND Klasy.Nazwa=’IIa’ GROUP BY Uczniowie.Nazwisko, Uczniowie.Imie HAVING AVG(Oceny.Ocena) > 3.00 ORDER BY Średnia Klauzulę HAVING nazywamy opóźnionym warunkiem selekcji informatyka +

Zapytania złożone Polecenie SELECT języka SQL umożliwia zagnieżdżanie zapytań, czyli wykorzystanie zapytania w wewnątrz innego zapytania. Dzięki tej właściwości można za pomocą jednego polecenia wykonywać bardzo złożone operacje na danych. Omówimy to, chcąc przygotować listę uczniów (zawierającą nazwisko i imię ucznia oraz nazwę klasy), którzy w roku 2009 nie otrzymali oceny niedostatecznej z fizyki. Należy zwrócić uwagę na fakt, że chcemy pobrać z bazy dane, które nie są bezpośrednio w niej zapisane, bo jeżeli uczeń nie otrzymał oceny to w bazie danych nie ma żadnego zapisu tego faktu. Rozwiązując ten problem korzystamy z pewnych zależności logicznych. informatyka +

Zapytania złożone Pomyślmy o tym problemie jako o działaniu na następujących zbiorach: A – zbiór wszystkich uczniów, B – zbiór uczniów, którzy otrzymali w roku 2009 ocenę niedostateczną z fizyki, C – poszukiwany zbiór uczniów, którzy w roku 2009 nie otrzymali oceny niedostatecznej z fizyki. Wyrażenie: C = A – B opisuje rozwiązanie naszego problemu, czyli poszukiwany zbiór możemy otrzymać jako różnicę dwóch innych zbiorów. informatyka +

Zapytania złożone Zapytanie tworzące zbiór A SELECT Uczniowie.Nazwisko, Uczniowie.Imie, Klasy.Nazwa, FROM Uczniowie JOIN Klasy ON Uczniowie.idklasy=Klasy.idklasy Zapytanie tworzące zbiór B WHERE Iducznia NOT IN (SELECT DISTINCT Iducznia FROM Oceny JOIN Przedmioty ON Oceny.Idprzedmiotu=Przedmioty.Idprzedmiotu WHERE Przedmioty.Nazwa=’Fizyka’ AND YEAR(Oceny.DataWystawienia)=2009 AND Oceny.Ocena=2) Warunek różnicy zbiorów informatyka +

Zapytania złożone Pokazaliśmy jeden przykład zapytania złożonego, pokazujący dodatkowe możliwości, jakimi dysponujemy przy pisaniu zapytań do baz danych z wykorzystaniem języka SQL. Trudno wymienić wszystkie sytuacje, w których można wykorzystywać podzapytania ale jest jedna zasada ogólna: Podzapytanie może być wykorzystane wszędzie tam, gdzie ma sens wynik tego podzapytania informatyka +

Co jeszcze potrafię?? Tworzenie wyniku zapytania w języku XML SELECT Klasy.Nazwa, Klasy.RokSzkolny FROM Klasy FOR XML AUTO,ROOT('ListaKlas'),ELEMENTS <ListaKlas> <Klasy> <Nazwa>Ia</Nazwa> <RokSzkolny>2008/2009</RokSzkolny> </Klasy> <Nazwa>IIa</Nazwa> <Nazwa>Ib</Nazwa> <Nazwa>IIb</Nazwa> </ListaKlas> informatyka +

Co jeszcze potrafię?? Operacje na zbiorach danych z wykorzystaniem operatorów UNION, EXCEPT i INTERSECT SELECT Nazwisko, Imie, Pesel FROM Uczniowie WHERE idklasy=1 UNION WHERE idklasy=2 informatyka +

Co jeszcze potrafię?? Zapytanie, które przygotuje listę uczniów z klasy o id klasy=1 za wyjątkiem tych, którzy urodzili się w marcu SELECT Nazwisko, Imie, Pesel FROM Uczniowie WHERE idklasy=1 EXCEPT WHERE MONTH(DataUrodzenia)=3 informatyka +

Co jeszcze potrafię?? Zapytanie, które przygotuje listę uczniów urodzonych w marcu, których nazwisko zaczyna się na literę K SELECT Nazwisko, Imie, Pesel FROM Uczniowie WHERE MONTH(DataUrodzenia)=3 INTERSECT WHERE nazwisko LIKE ‘K%’ informatyka +

Co jeszcze potrafię?? Tabele przestawne SELECT * FROM ( SELECT Przedmioty.Nazwa as Przedmiot, Klasy.Nazwa as Klasa, Oceny.Ocena FROM Klasy Join Uczniowie ON Klasy.idklasy=Uczniowie.idklasy Join Oceny ON Oceny.iducznia=Uczniowie.iducznia Join Przedmioty ON Przedmioty.idprzedmiotu=Oceny.idprzedmiotu ) as A PIVOT (AVG(Ocena) FOR Klasa in ([Ia],[IIa],[IIc])) as B informatyka +

Co jeszcze potrafię?? Tabele przestawne informatyka +

Podsumowanie Przedstawiliśmy podstawowe możliwości języka SQL a w szczególności polecenia SELECT Standard języka SQL ciągle jest rozwijany i wzbogacany o nowe możliwości informatyka +

Tabele tymczasowe i widoki informatyka +

mgr inż. Andrzej Ptasznik Tabele „inline” Zapytanie SELECT tworzy tabelę wynikową, która może być wykorzystana w innym zapytaniu. select lp,numer,rok from ( select row_number() over (order by year(data_wyst) desc ) as lp, numer, year(data_wyst) as rok from faktury ) tmp where lp between 3 and 7 mgr inż. Andrzej Ptasznik

Wyrażenia tabelaryczne (CTE) (widoki tymczasowe) with wystawili as ( select idwystawcy from faktury where year(data_wyst)=2006 ) select nazwa,nip from klienci where idklienta not in (select idwystawcy from wystawili) mgr inż. Andrzej Ptasznik

Widoki. Zapytanie SELECT zapisane w bazie danych tworzy tabelę wirtualną, której zawartość jest wynikiem zapisanego polecenia. mgr inż. Andrzej Ptasznik

Widoki … kilka przykładów create view v_klienci as select idklienta,nazwa,nip,idmiasta,kod,ulica,test from dbo.klienci with schemabinding, encryption select idklienta,nazwa,nip,idmiasta,kod,ulica from klienci where idmiasta=1 with check option Definicja bez opcji Opcje powiązania ze schematem bazy danych i opcja szyfrująca Opcja powiązania operacji wstawiania danych z warunkiem WHERE mgr inż. Andrzej Ptasznik

Widoki – zastosowanie. Uproszczenie schematu bazy danych. Sterowanie uprawnieniami do danych. Rozwiązywanie problemów wydajnościowych mgr inż. Andrzej Ptasznik

Funkcje tabelaryczne. „Widoki sparametryzowane” – definiowane w bazie danych funkcje zwracające tabelę. Funkcja może posiadać parametry by wynik zapytania uzależnić od wartości parametrów wejściowych. mgr inż. Andrzej Ptasznik

Funkcje tabelaryczne -przykład create function f_klienci(@idmiasta int) returns table with schemabinding, ENCRYPTION as return (select idklienta,nazwa,nip,idmiasta,kod,ulica from dbo.klienci where idmiasta=@idmiasta) select nazwa,nip,idmiasta from dbo.f_klienci(1) order by nazwa Definicja funkcji Wynik funkcji Wywołanie funkcji mgr inż. Andrzej Ptasznik

Transact - SQL informatyka +

Nie jest to „pełny” język programowania - nie można w nim napisać od podstaw poważnej aplikacji. Można przy pomocy T-SQL zaprogramować realizację zadań po stronie serwera. W T-SQL osadzony jest standardowy język SQL tzn. wszystkie polecenia języka SQL są integralną częścią języka T-SQL

Język T-SQL jest wykorzystywany do programowania: Procedur składowanych Funkcji składowanych Wyzwalaczy Skryptów

Zmienne Wymaga jawnej deklaracji Nazwa zmiennej lokalnej musi rozpoczynać się od znaku „@” Typy zmiennych mogą być takie – jak wbudowane typy SQL Servera

Typy zmiennych Typami zmiennych w języku T-SQL mogą być wszystkie typy udostępniane przez SQL Server do deklaracji typu kolumn.Np. int, Char Varchar Money Datetime Smallint Itd..

Konwersje typów Polecenie CAST: CAST ( wyrażenie AS typ_danych ) Polecenie CONVERT: CONVERT ( typ_danych [ ( rozmiar ) ] , wyrażenie [ , styl ] )

Konwersje typów-przykłady PRINT CAST(12.45 as int) PRINT CONVERT(int,12.45) print CONVERT(char(24), GETDATE(), 9)

Zmienne - przykłady Declare @licznik int Declare @dane xml, @nazwa varchar(100) Declare @@flaga1 bit, @@flaga2 bit Uwaga : SQL Server 2005 nie umożliwia inicjacji wartości zmiennej w trakcie deklaracji (jest to być możliwe w SQL Server 2008 : np. Declare @ile int=8)

Tabele tymczasowe Nazwa lokalnej tabeli tymczasowej musi rozpoczynać się od znaku „#” Nazwa globalnej tabeli tymczasowej musi rozpoczynać się od znaków „##” Tabele tymczasowe tworzone są w bazie danych „tempdb”

Select nazwa, symbol into #listaslownika From kategorie Tabele tymczasowe-przykłady Select nazwa, symbol into #listaslownika From kategorie Create table ##tmp (idklienta int not null, nazwa varchar(200))

Instrukcje sterujące – instrukcja warunkowa Język T-SQL udostępnia „klasyczną” istrukcję warunkową: IF Wyrażenie _logiczne     { polecenie_SQL | blok_poleceń} [ ELSE     { polecenie_SQL | blok_poleceń} ]

Instrukcje sterujące – iteracje Język T-SQL udostępnia „klasyczną” instrukcję iteracyjną: WHILE Wyrażenie_logiczne     { polecenie_SQL | Blok_poleceń }     [ BREAK ]    { polecenie_SQL | Blok_poleceń }     [ CONTINUE ] BREAK – BEZWARUNKOWO PRZERYWA DZIAŁANIE PĘTLI CONTINUE- PRZERYWA PĘTLĘ I PRZECHODZI DO SPRAWDZENIA WARUNKU KONTYNUACJI

Instrukcja podstawiania Dwa rodzaje instrukcji podstawiania : SET np.( Set @i=@i+1) np.(set @nip= (Select nip=nip from klienci where idklienta=321) SELECT np.( Select @i=@i+1) np.(Select @nip=nip

Funkcja CASE SELECT nazwisko,imie, CASE plec WHEN 0 THEN ‘KOBIETA' WHEN ‘1' THEN ‘Mężczyzna' ELSE Płeć nieokreślona‘ END FROM Osoby

Obsługa błędów SQL Server 2005 wprowadził do języka T-SQL elementy strukturalnej obsługi wyjątków – zapewnia to konstrukcja : BEGIN TRY Instrukcje END TRY BEGIN CATCH Instrukcje obsługi błędów END CATCH

Funkcje Funkcje konfiguracyjne Funkcje kursora Funkcje daty i czasu Funkcje matematyczne Funkcje metadanych Funkcje bezpieczeństwa Funkcje operujące na łańcuchach znaków Funkcje systemowe Funkcje statystyki systemowej Funkcje tekstu i obrazu

I to prawie wszystko o języku T-SQL … reszta wynika z : Problemu Kontekstu Fantazji programisty 

Procedury, funkcje, wyzwalacze informatyka +

Procedury składowane – to kod w języku T-SQL (lub CLR) wykonywany po stronie serwera. Procedura składowana jest obiektem bazy danych !!!

1.Zapytanie o stan konta A Wykonane Interfejs „Form” Wykonaj przelew z konta A na konto B SQLServer Środowisko śieciowe 1.Zapytanie o stan konta A 2.Odpowiedź – stan Konta A 3.Rozpoczęcie transakcji 4.Odpowiedź na polecenie 5.Zmiejszenie stanu konta A 6.Odpowiedź na polecenie 7.Zwiekszenie stanu konta B 8.Odpowiedź na polecenie 9. Zakończenie transakcji 10.Odpowiedź na polecenie

A teraz inne podejście ????????????

Metoda „WykonajPrzelew” Iterfejs „Form” SQL Server Wykonane Środowisko śieciowe Wykonaj przelew z konta A na konto B 1.Wykonaj metodę „…Przelew” 2.Odpowiedź z metody

Zastosowanie procedur składowanych : Hermetyzacja „logiki bazy danych” Realizacja zadań administracyjnych Warstwa zabezpieczeń.

Definiowanie procedury CREATE PROCEDURE ListaDostaw ; 1 Nagłówek procedury @data datetime, @komunikat varchar(500) output Lista parametrów WITH ENCRYPTION,RECOMPILE Opcje AS BEGIN TRY SELECT Tytuly.nazwa, ilosc, cena FROM Tytuly join DostawyPrasy on Tytuly.idtytulu=DostawyPrasy.idtytulu WHERE DataDostawy=@data SET @komunikat=‘ Procedura wykonana poprawnie’ RETURN 0 END TRY Blok procedury BEGIN CATCH SET @komunikat=‘ Błąd zapytania’ RETURN 1 END CATCH Blok obsługi wyjątków

Tymczasowe procedury składowane (nazwa poprzedzona symbolem # lub ##). Rodzaje procedur składowanych : Procedury składowane użytkownika – definiowane przez użytkowników bazy danych. Procedury specjalne – procedury oznaczone prefixem sp_ i utworzone w bazie systemowej master. (można ją uruchamiać w kontekście dowolnej bazy danych) Procedury systemowe – procedury oznaczone prefixem sp_ dostarczone przez producenta systemu (na serwerze są przechowywane w ukrytej systemowej bazie danych Resource) Tymczasowe procedury składowane (nazwa poprzedzona symbolem # lub ##). Rozszerzone procedury składowane – (kod w innych językach – prefix xp_) – uznane za przestarzałe. Zostały zastąpione możliwością pisania procedur w językach .Net

Rodzaje funkcji składowanych ; Funkcje systemowe Funkcje tabelaryczne Funkcje typu „inline” Złożone funkcje tabelaryczne Funkcje skalarne Agregujące funkcje użytkownika

Przykład funkcji tabelaryczne typu „inline” CREATE FUNCTION ListaDostaw(@data datetime) RETURNS Table AS return ( SELECT iddostawy, ilosc, cena, idtytulu FROM DostawyPrasy WHERE DataDostawy=@data ) Wykorzystanie SELECT Tytuly.nazwa, ilosc, cena FROM Tytuly join dbo.ListaDostaw(‘20060912’) as ld on ld.idtytulu=Tytuly.idtytulu ORDER BY nazwa

Akademia Baz Danych Przykład złożonej funkcji tabelarycznej CREATE FUNCTION ListaDostaw(@data datetime) RETURNS @wynik Table(iddostawy int, ilosc int, cena money, idtytulu int) AS BEGIN INSERT INTO @wynik(iddostawy,ilosc,cena,idtytulu) SELECT iddostawy, ilosc, cena, idtytulu FROM DostawyPrasy WHERE DataDostawy=@data RETURN END

Akademia Baz Danych Przykład funkcji skalarnej CREATE FUNCTION DataOstatniejDostawy(@idtytulu int) RETURNS datetime AS BEGIN Declare @wynik datetime SELECT @wynik=MAX(DataDostawy) FROM DostawyPrasy WHERE idtytulu=@idtytulu Return @wynik END Wykorzystanie: SELECT Tytuly.nazwa, dbo.DataOstatniejDostawy(idtytulu) FROM tytuly WHERE idcyklu=2

Wyzwalacze (triggers) informatyka +

Wyzwalacze Wyzwalacz, to specjalny typ procedury składowanej, która jest wykonywana automatycznie, jako reakcja na zdarzenie.

Wyzwalacze Wyzwalacze można wykorzystać między innymi do : złożonych warunków poprawności dla kolumny lub wiersza implementacji złożonych zachowań dla integralności referencyjnej Obliczania wartości kolumn Inspekcji działania użytkowników

Wyzwalacze Wyzwalacze mogą wykonywać następujące czynności: porównywać wersje danych z „przed” i „po ” modyfikacji anulować nieprawidłowe modyfikacje odczytywać dane z innych tabel modyfikować inne tabele wykonywać procedury składowane

Rodzaje wyzwalaczy Wyzwalacze DML (Data Manipulation Language) Reagują na „zdarzenia” Insert, Update, Delete Wyzwalacze DDL (Data Definition Language ) Reagują na „zdarzenia” CREATE,ALTER,DROP

Wyzwalacze DML Rodzaje wyzwalaczy DML Typ AFTER (po operacji DML) Typ INSTEAD OF (zamiast operacji DML) Wyzwalacz jest tworzony dla tabeli i jest związany z jedną (bądź więcej) instrukcji modyfikujących dane(INSERT, UPDATE lub DELETE)

Cechy wyzwalaczy Wyzwalacz jest wykonywany tylko raz dla danego polecenia niezależnie od tego ile wierszy modyfikuje te polecenie. Wyzwalacz jest integralna częścią transakcji związanej z realizacją polecenia Jawne polecenie ROLLBACK usuwa skutki działania wyzwalacza oraz polecenia które go wywołało.

Schemat działania wyzwalaczy „AFTER” Rozpoczęcie transakcji niejawnej (BEGIN TRANSACTION) Polecenia DML (Insert |Update | Delete) Realizacja polecenia DML (sprawdzanie reguł integralności) Kod wyzwalacza Zatwierdzenie transakcji niejawnej (COMMIT TRANSACTION)

Schemat działania wyzwalaczy „INSTEAD OF” Rozpoczęcie transakcji niejawnej (BEGIN TRANSACTION) Polecenia DML (Insert |Update | Delete) Kod wyzwalacza Zatwierdzenie transakcji niejawnej (COMMIT TRANSACTION)

Wyzwalacze DML W trakcie działania wyzwalacza jest dostęp do dwóch pseudotabel o nazwach Inserted i Deleted, które udostępniają te wiersze które zostały zmodyfikowane przez operacje, która jest związana z uruchomionym wyzwalaczem.

Pseudo tabele Inserted i Deleted

Sekwencja działania wyzwalacza DML Osoby 1. Dana jest tabela Osoby IdOsoby Nazwisko Imie Pesel 1 Kot Jan 23454567876 2 Lis Piotr 87565434322 3 Rybka Anna 78121287565 2. Do tabeli zdefiniowano wyzwalacz, który sprawdza czy po zmianie numeru Pesel jego nowa wartość nie istnieje już w bazie danych 23454567876 3. Wykonujemy polecenie UPDATE Osoby SET Pesel=23454567876 WHERE idosoby=2 Deleted IdOsoby Nazwisko Imie Pesel 2 Lis Piotr 87565434322 4.Zostaje uruchomiony kod wyzwalacza Inserted IdOsoby Nazwisko Imie Pesel 2 Lis Piotr 23454567876 5.Wyzwalacz , wobec stwierdzenia powielenia Numeru pesel odwołuje transakcję

mgr inż.Andrzej Ptasznik Kod wyzwalacza CREATE TRIGGER TR_sprawdzanie_pesel ON Osoby AFTER Update AS If Update(pesel) Begin If EXISTS (SELECT * FROM Inserted WHERE pesel IN (SELECT pesel FROM Osoby WHERE idosoby<>Inserted.Idosoby) ROLLBACK End mgr inż.Andrzej Ptasznik

Wyzwalacze DDL Wyzwalacze działające w kontekście bazy danych Wyzwalacze działające w kontekście serwera

Wyzwalacze typu DDL Nowy typ wyzwalaczy dla języka definiowania danych Duże możliwości przy zabezpieczaniu bazy danych przed przypadkowymi lub niedopuszczalnymi modyfikacjami Możliwość ingerowania w proces logowania