Bazy danych podsumowanie
Modelowanie danych
Ontologia Dziedzina metafizyki, która para się badaniem i wyjaśnianiem natury jak i kluczowych właściwości oraz relacji rządzących wszelakimi bytami bądź głównymi zasadami i przyczynami bytu jak można wszystko poklasyfikować?, jakie klasy bytów są niezbędne do opisu i wnioskowania na temat zachodzących procesów? jakie klasy bytu pozwalają wnioskować o prawdzie? na podstawie jakich klas bytu można wnioskować o przyszłości?
Byt Wszystko co jest może być bytem: kot Mruczek, Andrzej Macioł, towar w sklepie, indeks studenta itd. Konstruując ontologię formułujemy zestaw komunikatów, którymi możemy opisać byty, np.: kot Mruczek ma cztery łapy
Kategoryzacja Umiejętność zaliczania obiektów do pewnych klas (kategorii, pojęć) Kot Mruczek ma cztery łapy, sierść, ogon itd. ale takie same cechy mają kot Pimpuś, Gienek itd. Wystarczy przyjąć, że istnieje pojęcie (kategoria) kot charakteryzująca się tym, że obiekty do niej należące mają cztery łapy, sierść i ogon itd.
Hierarchizacja Koty rodzą się żywe i piją mleko matki ale to samo dotyczy np. psów, które kotami nie są Możemy wprowadzić pojęcie ssaki, które obejmuje zarówno koty jak i psy Wystarczy wówczas powiedzieć że Mruczek jest kotem by wiedzieć o nim wszystko to co dotyczy kotów i ssaków
Model danych Dana - symboliczna reprezentacja pewnego faktu opisującego rzeczywistość Dane poszerzone o semantykę to informacje Obiekt to niepodzielna jednostka danych, która opisywana być może krotką<nawa obiektu, cecha obiektu, wartość cechy> Krotka, zwana czasem n-tką, to uogólnienie pary (dwójki), trójki, czwórki, itd. na dowolną liczbę elementów. Krotka n-elementowa to uporządkowany skończony zbiór elementów (lista pewnych obiektów) przy czym kolejne elementy krotki nie muszą należeć do tego samego zbioru.
Związki Związek to trwała lub tymczasowa zależność występująca pomiędzy obiektami i możliwa do zapisania w modelu danych W niektórych przypadkach używane jest pojęcie asocjacji wskazujące na możliwość kojarzenia ze sobą pewnych obiektów lub pojęcie relacji Reguły opisujące konsekwencje wynikające z charakteru związku nazywać będziemy więzami
Zasady modelowania danych każdy obiekt opisywany jest przez zestaw cech (atrybutów) z jednoznacznie określoną dziedziną, użytecznych z punktu widzenia wartości informacyjnej ontologii każdy obiekt w tej samej kategorii musi być opisany zgodnie z tym samym wzorcem (choć w niektórych przypadkach nie wszystkie atrybuty obiektu muszą być podane) musi istnieć możliwość rozróżnienia obiektów, które w rzeczywistości są różne musi istnieć możliwość przedstawienia związków jakie zachodzą lub mogą zajść pomiędzy obiektami musi istnieć możliwość wprowadzenia do modelu dodatkowych ograniczeń wartości cech wynikających ze związków danych a nie tylko z dziedziny wartości atrybutów
Abstrakcja Z abstrakcją mamy do czynienia, gdy wychodząc od rzeczy jednostkowych, konkretnych i indywidualnych dochodzimy, przez proces uogólniania i poszukiwania cech stałych i wspólnych, do pojęcia tak ogólnego, że w swej ogólności wręcz absurdalnego, gdyż nie posiadającego żadnej konkretnej cechy Mówimy o dwóch sposobach stosowania abstrakcji. Pierwszy z nich to uogólnienie a drugi to agregacja
Uogólnienie Uogólnienie polega na próbie klasyfikacji i generalizacji opisów pewnych obiektów (wystąpień) i tworzeniu z nich bardziej ogólnych zbiorów cech (opisów) Uogólnianie cech obiektów prowadzące do stworzenia kategorii jest także abstrakcją W modelowaniu danych abstrakcję tą nazywamy nie uogólnieniem ale klasyfikacją
Agregacja Agregacja polega na traktowaniu obiektu lub kategorii (typu) jako zbioru składowych obiektów lub kategorii Agregacja to nie tylko wskazanie z jakich atrybutów składa się opis obiektu ale także jakie obiekty tworzą obiekt o bardziej złożonej strukturze
Uogólnienie i agregacja Oba sposoby abstrakcji wykorzystujemy często łącznie Jest to konieczne w wielu przypadkach gdy dokonujemy abstrakcji na poziomie nie tylko obiektów ale także kategorii Na różnym poziomie abstrakcji różny będzie charakter związków i więzi
Model danych i kolekcja danych Schemat to zbiór definicji w pewnym modelu danych W odniesieniu do baz danych pojęcie schemat jest traktowane jako identyczne z pojęciem części intensjonalnej Łączny zbiór danych zgodnych ze schematem nazywany jest częścią ekstensjonalną bazy danych Podział na część intensjonalną i ekstensjonalną dotyczy wszystkich poziomów abstrakcji modelu
Modele danych Model konceptualny – spojrzenie na dane jako całość, model najbardziej stabilny, powinien on być podstawą, na której opierać się będzie przetwarzanie danych Model wewnętrzny, niskiego poziomu – opisuje sposób przechowywania danych w pamięci komputerów i przedstawia formaty rekordów czy ścieżki dostępu, modelami takimi są metody adresowania, struktury łańcuchowe i pierścieniowe
Modele danych Modele użytkowe – stanowią podstawę do budowy systemu informatycznego: hierarchiczny sieciowy relacyjny obiektowy
Relacyjny model danych
Podstawowe pojęcia Relacja jest podzbiorem iloczynu kartezjańskiego dziedzin A1, A2,..An. Iloczyn kartezjański oznacza się następująco: A1 A2 An Zawiera on n-tki (a1, a2,..an) nazywane krotkami takie, że a1A1, a2 A2,... dn An
Klucz Minimalny zbiór identyfikujący Taki zbiór atrybutów relacji, których kombinacje wartości jednoznacznie identyfikują każdą krotkę tej relacji a żaden podzbiór tego zbioru nie posiada tej własności W kluczu nie może zawierać się wartość Null
Klucz Klucz jest kluczem prostym, jeżeli powyżej opisany zbiór jest jednoelementowy - w przeciwnym razie mówimy o kluczu złożonym W ogólności, w relacji można wyróżnić wiele kluczy, które nazywamy kluczami potencjalnymi. Wybrany klucz spośród kluczy potencjalnych nazywamy kluczem głównym (Primary Key PK)
Zależność funkcjonalna Atrybut B relacji R jest funkcjonalnie zależny od atrybutu A jeżeli dowolnej wartości a atrybutu A odpowiada nie więcej niż jedna wartość b atrybutu B
Zależność funkcjonalna Niech X i Y będą podzbiorami zbioru atrybutów relacji R X{A1...AN}, Y{A1...AN} podzbiór atrybutów Y zależy funkcyjnie od podzbioru atrybutów X, jeżeli nie jest możliwe, by relacja R zawierała dwie krotki mające składowe zgodne tzn. identyczne dla wszystkich atrybutów ze zbioru X i jednocześnie co najmniej jedną niezgodną składową dla atrybutów ze zbioru Y
Zależność wielowartościowa Podzbiór atrybutów Y jest wielowartościowo funkcjonalnie zależny od podzbioru X w schemacie R, jeżeli dla dowolnej relacji r w schemacie R i dla dowolnej pary krotek t1 i t2 z relacji r istnieje taka para krotek że: s1[X]=s2[X]=t1[X]=t2[X] i s1[Y]= t1[Y] i s1[R-X-Y]=t2[R-X-Y] i s2 [Y]= t2[Y] i s2 [R-X-Y]=t1[R-X-Y]
Zależność wielowartościowa X Y R-X-Y krotka Nazwisko Imię dziecka Znajomość języków t1 Kot Ania niemiecki t2 Jaś angielski s1 s2 Słoń Ola
Zależność wielowartościowa t1[X]=t2[X]=s1[X]=s2[X]=(Kot) s1[Y]= t1[Y]=(Ania) i s1[R-X-Y]=t2[R-X-Y]=(angielski) i s2 [Y]= t2[Y]=(Jaś) i s2 [R-X-Y]=t1[R-X-Y]=(niemiecki)
Dekompozycja schematu zastępujemy zbiorem (niekoniecznie rozłącznych) schematów relacji takich, że każdy schemat Ri stanowi podzbiór zbioru atrybutów i
Pierwsza postać normalna Jedynymi relacjami dozwolonymi w modelu relacyjnym są relacje spełniające następujący warunek: każda wartość w relacji, tj. każda wartość atrybutu w każdej krotce, jest wartością atomową (wartością nie rozkładalną) (lPN) oznacza, że tabela nie zawiera powtarzających się grup informacji, co znaczy, że każda kolumna jest wartością skalarną (atomową), a nie macierzą lub listą czy też czymkolwiek, co posiada własną strukturę
Druga postać normalna Relacja jest w drugiej postaci normalnej, jeśli każdy atrybut tej relacji nie wchodzący w skład żadnego klucza potencjalnego jest w pełni funkcyjnie zależny wyłącznie od wszystkich podrelacji klucza głównego
Trzecia postać normalna Relacja jest w trzeciej postaci normalnej, jeśli: jest w drugiej postaci normalnej żaden atrybut nie będący kluczem nie jest funkcjonalnie związany z żadnym innym atrybutem nie będącym również kluczem
Forma normalna Boyce-Codd’a Jest uzupełnieniem trzeciej postaci normalnej i jest niezbędna w przypadku gdy atrybuty będące kandydatami na klucze są: wielokrotne, złożone, nakładające się na siebie
Forma normalna Boyce’a-Codd’a Relacja jest w postaci Boyce-Codd’a jeżeli dla każdej nietrywialnej zależności między podzbiorami relacji zbiór będący wyznacznikiem jest zbiorem identyfikującym tej relacji Zależność X →Y jest trywialna jeżeli Y jest podzbiorem X Definicja BCNF zastępuje definicje, pierwszej, drugiej i trzeciej formy normalnej dodatkowo je poszerzając
Więzi Więź (ang. relationship) to powiązanie pomiędzy parą tabel. Istnieje ona wtedy, gdy dwie tabele są połączone przez klucz podstawowy i klucz obcy. Każda więź jest opisywana przez typ więzi istniejący między dwoma tabelami, typ uczestnictwa oraz stopień uczestnictwa tych tabel
Algebra relacji
Kategorie w algebrze relacji Zwyczajne działania algebry zbiorów: suma, przecięcie i różnica Operacje zawężenia: selekcja eliminuje pewne wiersze, a rzutowanie pewne kolumny Operacje komponowania krotek z różnych relacji: np. iloczyn kartezjański Operacje przemianowania nie zmieniające krotek ale schemat ich relacji
Operacja rzutowania Tworzy nową relację z relacji R przez usunięcie z niej pewnych kolumn
Selekcja nie zmieniając schematu relacji R tworzy nową relację zawierającej podzbiór krotek R spełniających pewien logiczny warunek gdzie C to wyrażenie warunkowe na jednym lub więcej atrybutach
Iloczyn kartezjański (inaczej produkt) relacji R i S to relacja wszystkich uporządkowanych par krotek, z których pierwszy element pary należy do relacji R a drugi do S Schemat relacji RS jest sumą schematów relacji R i S, w której powtarzające się atrybuty (kolumny) traktowane są jako odrębne elementy schematu, np. R.A i S.A
Złączenie naturalne polega na połączeniu w pary tych krotek z relacji R i S, które mają identyczne wartości dla wszystkich wspólnych atrybutów i jest oznaczane R S w rezultacie powstaje relacja, której schemat zawiera atrybuty relacji R i relacji S, przy czym wspólna część uwzględniana jest tylko raz
Złączenie teta polega na złączeniu dwóch relacji R i S w iloczyn kartezjański i wyborze z niego tych krotek, które spełniają wyrażenie warunkowe na parze lub zbiorze par atrybutów z R i S
Równozłączenie to szczególny przypadek złączenia teta, w którym warunek ma charakter równości wybranych atrybutów obu relacji powtarzające się kolumny opisujące atrybuty z warunku złączenia są pomijane
Typy złączeń złączenie wewnętrzne (inner join) – w relacji wynikowej występują wyłącznie te krotki, które spełniają warunek złączenia złączenie lewostronne zewnętrzne (left outer join) – zawiera wszystkie krotki R uzupełnione krotkami S spełniającymi warunek złączenie prawostronne zewnętrzne (right outer join) - zawiera wszystkie krotki S uzupełnione krotkami R spełniającymi warunek
Typy złączeń - ciąg dalszy złączenie zewnętrzne pełne (full outer join) – zawiera wszystkie krotki R oraz S uzupełnione wartościami typu NULL gdy do danej krotki nie pasuje żadna krotka z drugiej relacji złączenie zewnętrzne typu UNION - zawiera wszystkie krotki R uzupełnione krotkami S, przy czym krotki wspólne prezentowane są tylko raz
Bazy danych - SQL
Składowe SZBD Jądro SZBD realizuje podstawowe funkcje związane z przechowywaniem danych, kontrolą współbieżności itp. Interfejs zawiera na ogół pewien język baz danych, np. SQL Zbiór dodatkowych narzędzi oprogramowania do tworzenia systemów informacyjnych
Języki baz danych język definicji danych (ang. Data Definition Language, DLL) języki selektywnego dostępu do danych – języki zapytań języki operowania na danych (ang. Data Manipulation Language, DML)
Języki zapytań Interfejsy typu zapytanie przez przykład (ang. Query by Example - QBE), szblony (formularze, strony WWW) Structured Query Language (SQL), języki algebraiczne języki predykatowe (o zmiennych atrybutowych i krotkowych) DATALOG (język zbliżony do PROLOGu ale nieproceduralny i bez termów)
Środowisko SQL Interaktywny SQL – użytkownik wpisuje polecenie i wysyła bezpośrednio do interpretatora zapytań, który wykonuje odpowiednie działania w jądrze SZBD i ewentualnie zwraca wirtualną tabelę z odpowiedzią Osadzony SQL – jest nakładką na język proceduralny, którego rozkazy mogą uruchamiać w sposób statyczny lub dynamiczny zapytania
Hierarchia obiektów w SQL 2 KATALOGI SCHEMATY TABELE I PERSPEKTYWY KOLUMNY I WIERSZE
Typy danych Teksty o stałej lub zmiennej długości: CHAR(n) – tekst o ustalonej długości n, VARCHAR(n) – tekst o zmiennej długości nie większej niż n; Ciągi binarne o stałej lub zmiennej długości: BIT(n) – ciąg bitów o ustalonej długości n, BIT VARYING(n) – ciąg bitów odługości co najwyżej n Typowe wartości całkowite INT (INTEGER) lub SHORTINT (SMALLINT)
Typy danych Liczby zmiennopozycyjne: REAL - liczba zapisana w postaci wykładniczej o pojedynczej precyzji, FLOAT – podobna do REAL ale, w niektórych implementacjach można określić precyzję, DOUBLE PRECISION – jak REAL ale zwiększona precyzja Liczby stałopozycyjne: NUMERIC(n,m) – liczba składająca się z n znaków w tym m po przecinku, DECIMAL(n,m) – podobny do NUMERIC ale dopuszczający większą dokładność
Typy danych Daty i czas: DATE – data zapisana w formacie określonym przez implementacje, TIME – czas zapisany w dostępnym standardzie, TIMESTAMP – połączenie daty i czasu Inne typy specyficzne dla implementacji: np. BOOL w MySql czy INTERVAL YEAR TO MONTH (n) w Oracle 9i
Ograniczenia Ograniczenie można zadać poprzez zdefiniowanie warunku logicznego, w tym także takiego, które sięga do innych tabel lub poprzez standardowego ograniczenia: NOT NULL lub UNIQUE CREATE TABLE towar ( symbol_towaru CHAR(5) NOT NULL UNIQUE DEFAULT ‘XXXXX’ CHECK (SUBSTRING(VALUE, FROM 1 FOR 1) = ‘S’), ....
Indeksy Indeks jest strukturą danych umożliwiającą szybki dostęp do krotek pewnej tabeli według jednej lub kilku kolumn Indeks zawiera kopie wybranych wartości kolumn ze związanej tabeli uszeregowane, tak by łatwiej było ją przeszukiwać CREATE [UNIQUE] INDEX nazwa_indeksu ON nazwa_tabeli (nazwy_kolumn_klucza) CREATE UNIQUE INDEX symbol_nazwa_towaru ON towar (symbol_towaru, nazwa_towaru)
Proste zapytania Odpowiednikiem operacji selekcji jest instrukcja SELECT wraz z słowami kluczowymi FROM i WHERE SELECT kolumna1, kolumna2, ... FROM tabela1, tabela2, ... WHERE kryteria wyboru
Rzutowanie w SQL SELECT SymbolTowaru, NazwaTowaru FROM `towar` WHERE SymbolTowaru LIKE 'R%' +--------------+---------------------------+ | SymbolTowaru | NazwaTowaru | | RZ001 | Rura zgrz. fi 6,3 gr 0,2 | | RZ002 | Rura zgrz. fi 12,6 gr 0,2 | | RZ003 | Rura zgrz. fi 6,3 gr 0,3 | | RZ004 | Rura zgrz. fi 12,6 gr 0,3 | | RZ011 | Rura zgrz. kw 4 gr 0,2 | | RZ012 | Rura zgrz. kw 5 gr 0,3 |
Warunki selekcji i porządkowanie SELECT NrZamowienia, DataZamowienia FROM Zamowienie WHERE NrZamowienia LIKE '____2004' AND DataZamowienia > '2004-04-04' ORDER BY DataZamowienia DESC +--------------+---------------------+ | NrZamowienia | DataZamowienia | | 005/2004 | 2004-04-07 00:00:00 | | 003/2004 | 2004-04-06 00:00:00 | | 004/2004 | 2004-04-06 00:00:00 | | 002/2004 | 2004-04-05 00:00:00 |
Operatory logiczne i specjalne AND - koniunkcja OR - alternatywa NOT - zaprzeczenie BETWEEN a AND b – zawarty pomiędzy a i b LIKE – podobny do IN – zawarty w zbiorze IS NULL – ma wartość NULL
Operatory logiczne i specjalne SELECT NrZamowienia, DataZamowienia FROM Zamowienie WHERE DataZamowienia BETWEEN '2004-04-05' AND '2004-04-06' AND NrZamowienia IN ('003/2004', '004/2004') +--------------+---------------------+ | NrZamowienia | DataZamowienia | | 003/2004 | 2004-04-06 00:00:00 | | 004/2004 | 2004-04-06 00:00:00 |
Złączenia
Obliczenia i grupowanie Operatory arytmetyczne: + suma, - różnica * mnożenie / dzielenie +/- operatory unarne (zachowaj/ zmień znak) Inne operacje realizowane są przy użyciu funkcji charakterystycznych dla dialektu, np. power(X,Y), log(X), log10(X) w MySQL
Operacje na zbiorach COUNT zwraca liczbę wierszy SUM zwraca sumę wartości danej kolumny we wszystkich wierszach ze zbioru AVG zwraca średnią wartość danej kolumny we wszystkich wierszach ze zbioru MIN zwraca najmniejszą wartość danej kolumny we wszystkich wierszach ze zbioru MAX zwraca największą wartość danej kolumny we wszystkich wierszach ze zbioru
Zapytania grupujące SELECT NazwaKLienta, DATE_FORMAT(DataZamowienia, '%Y %m %d') AS Data, SUM(Ilosc*Cena) AS Wartosc FROM Klient JOIN Zamowienie USING (IdKlienta) JOIN LiniaZamowienia USING (IdZamowienia) GROUP BY NazwaKlienta, DataZamowienia ORDER BY NazwaKLienta, DataZamowienia +-------------------+------------+---------+ | NazwaKLienta | Data | Wartosc | | FH Klin SA | 2004 04 04 | 103.5 | | FH Klin SA | 2004 04 06 | 99.6 | | Firma Krok Sp zoo | 2004 04 05 | 153.2 | | Rower Polska SA | 2004 04 07 | 153.5 | | STALHANDEL | 2004 04 06 | 250 |
Modyfikowanie danych
Wstawianie wierszy INSERT INTO Klient (NazwaKlienta, Telefon, KodPocztowy, Miejscowosc, Ulica, NrDomuMieszkania, Email) VALUES('Nowy klient', '48 12 1234567', '30-333', 'Bolechowice', 'Jurajska', '20','ala@tlen.pl') +-----------+-------------------+---------------+ | IdKlienta | NazwaKlienta | Telefon | | 3 | STALHANDEL | 48 32 7865748 | | 2 | Firma Krok Sp zoo | 48 12 6374532 | | 5 | PHPU OSA | 48 12 6372312 | | 4 | Rower Polska SA | 48 12 2853364 | | 1 | FH Klin SA | 48 12 1273210 | | 6 | Nowy klient | 48 12 1234567 |
Kopiowanie wierszy INSERT INTO zamowieniedoedycji SELECT NazwaKlienta, NrZamowienia, NazwaTowaru, Ilosc, Cena FROM Klient JOIN Zamowienie USING (IdKlienta) JOIN LiniaZamowienia USING (IdZamowienia) JOIN Towar USING (IdTowaru) WHERE Zamowienie.DataZamowienia = '2004-04-05' +-------------------+--------------+--------------------------+--------+--------+ | NazwaKlienta | NrZamowienia | NazwaTowaru | Ilosc | Cena | | Firma Krok Sp zoo | 002/2004 | Rura zgrz. fi 6,3 gr 0,2 | 100 | 1.40 | | Firma Krok Sp zoo | 002/2004 | Rura zgrz. kw 4 gr 0,2 | 6 | 2.20 |
Modyfikowanie danych - Microsoft SQL Server UPDATE LiniaZamowienia SET Cena = Cena * 1.1 WHERE (IdZamowienia IN (SELECT IdZamowienia FROM Zamowienie WHERE DataZamowienia = '2004-04-04' AND IdKlienta = (SELECT IdKlienta FROM Klient WHERE NazwaKlienta = 'FH Klin SA')))
Usuwanie wierszy - Microsoft SQL Server DELETE FROM LiniaZamowienia WHERE (IdZamowienia IN (SELECT IdZamowienia FROM Zamowienie WHERE DataZamowienia = '2004-04-04' AND IdKlienta = (SELECT IdKlienta FROM Klient WHERE NazwaKlienta = 'FH Klin SA')))
Integralność danych w SQL Wprowadzenie kluczy podstawowych i obcych zapewnia automatyczną kontrolę poprawności struktury danych i operacji przetwarzania danych Klucz podstawowy zapewnia unikalność i możliwość identyfikacji każdego zapisu Klucze obce zapewniają integrację referencyjną głoszącą, że każda niepusta wartość klucza obcego musi odpowiadać jednej z istniejących wartości klucza podstawowego
Wymuszanie integralności REFERENCES – podaje źródło klucza obcego, tj. tabelę i klucz podstawowy ON DELETE, ON UPDATE – określenie czynności, które należy podjąć jeśli wartość klucza podstawowego zostanie usunięta lub ulegnie zmianie: SET NULL zastąp wartość klucza obcego przez NULL, SET DEFAULT zastąp wartość klucza obcego przez wartość domyślną, CASCADE skasuj lub zmodyfikuj wszystkie wiersze zawierające zmienianą wartość klucza obcego NO ACTION (tylko modyfikacja) nie zmieniaj wartości klucza RESTRICT nie dopuść do zmiany
Perspektywy Zapytanie posiadające własną nazwę i przechowywane w słowniku danych Perspektywy tworzymy po to by: zapisać często wykonywane złożone zapytania stworzyć logiczne modele dla różnych użytkowników zwiększyć bezpieczeństwo danych
Tabele tymczasowe istnieją wyłącznie w trakcie trwania sesji obsługuje się je identycznie jak tabele stałe są znacznie szybciej obsługiwane niż zapytania czy perspektywy ale nie są automatycznie modyfikowane w przeciwieństwie do widoków są w pełni modyfikowalne
Edycja złożenia Edycja złożenia i perspektywy zawierającej elementy pochodzące z więcej iż jednej tabeli nie jest możliwa wprost Można natomiast stworzyć tabelę tymczasową zawierającą kody i treść atrybutów z połączonych tabel i ją edytować
Przyznawanie praw dostępu Serwer baz danych może obsługiwać wielu użytkowników identyfikowanych przez nazwę i hasło Nie każdy z użytkowników musi mieć równe prawa W momencie utworzenia nowego elementu bazy danych aktualny użytkownik staje się jego właścicielem Właściciel może nadawać i odbierać prawa innym użytkownikom
Transakcje W systemie baz danych z wieloma użytkownikami transakcja jest niepodzielną, spójną, izolowaną i trwałą (ACID-atomic, consistent, isolatable, and durable) procedurą realizującą dostęp do danych Podczas realizacji transakcji możliwe jest wykorzystanie zmiennych oraz blokowanie dostępu do danych Transakcje mogą być wycofane
Transakcje składnia START (BEGIN) TRANSACTION; polecenia COMMIT – zatwierdzenie transakcji lub ROLLBACK – wycofanie transakcji
Transakcje w MS SQL Użycie tabeli w trakcie transakcji blokuje dostęp do tabeli Polecenie ROLLBACK kasuje działania wykonane podczas transakcji Polecenie COMMIT zatwierdza działania
Procedury składowane Specyficzny język umożliwiający wykonywanie wielu poleceń SQL oraz wprowadzający dynamikę
Wyzwalacze w SQL 99 wyzwalacz (ang. trigger) jest specjalnym rodzajem składowanej procedury, która jest uruchamiana automatycznie podczas wykonywania instrukcji modyfikacji danych wyzwalacz jest powiązany z konkretną instrukcją modyfikacji danych (INSERT, UPDATE, DELETE) wyzwalacz jest uruchamiany przed modyfikacją, po lub zamiast modyfikacji
Transact - SQL Pracochłonne zapytania np. aktualizujące dane można zastąpić procedurami składowanymi
Kursor Kursor jest tabelą rekordów umożliwiającą dostęp do kolekcji pobranej z tabeli lub złożenia
Wykorzystanie Transact-SQL Język Transact-SQL wprowadza elementy języków proceduralnych takich jak pętla, warunek logiczny, zmienna pamięciowa Przykładowa procedura odszukuje w tabeli ProductionPlan wiersz dla operacji, której wynikiem jest wyrób gotowy a następnie w pętli szuka kolejnych półproduktów aż do chwili gdy zapytanie SELECT nie zmienia wartości indeksu półproduktu (@adress1)
Technologia .Net
Technologia ADO.Net Służy do dostarczania danych z rożnych źródeł (baz danych) do aplikacji Jest produktem Microsoft Umożliwia manipulowanie danymi XML Pozwala na logiczne modelowanie danych
Przegląd obiektów dostawczych SqlClient jest zoptymalizowany pod kątem współpracy z MS SQL OLE DB (Object Linking and Embedding, Database – łączenie i zagnieżdżanie obiektów) jest rodzajem Application programming interface (API) opracowanym przez Microsoft i pozwala łączyć się ze źródłami, dla których opracowano dostawcę Odbc Open Database Connectivity to zestaw uniwersalnych narzędzi dostępu do baz danych Java Database Connectivity narzędzia dostępu do źródeł danych dla Javy
Obiekty dostawców danych w .Net Connection – nawiązuje połączenie ze źródłem danych Command – wykonuje polecenia SQL w źródle danych DataReader – zwraca jednokierunkowy, przeznaczony do odczytu strumień danych DataAdapter – tworzy pomost pomiędzy obiektem DataSet a źródłem danych
Obiekt Command Wykonuje polecenia SQL Właściwość Connection wskazuje połączenie do wykonania polecenia Obiekt jest realizowany w trzech wersjach ODBC, OLE i SQL
Sposoby wykonywania poleceń ExecuteNonQuery – wykonuje polecenie, które nie zwraca żadnych rekordów ExecuteScalar – zwraca pierwszą kolumnę pierwszego wiersza ExecuteReader – zwraca wynikowy zestaw rekordów za pośrednictwem obiektu DataReader ExecuteXMLReader - zwraca wynikowy zestaw rekordów w formacie XML za pośrednictwem obiektu XMLReader
Obiekt DataReader Udostępnia jednokierunkowy strumień wierszy Jest najszybszym sposobem dostępu do danych
Obiekt DataSet W odróżnieniu od przedstawionych wcześniej obiektów nie musi mieć związku z zewnętrznym źródłem danych Jest pamięciowym relacyjnym zasobnikiem danych Może przechowywać dane w postaci XML
Obiekt DataAdapter Pośredniczy między obiektem DataSet a rzeczywistym źródłem danych Ma dwie metody: Fill i Update Oraz cztery właściwości: SelectCommand, InsertCommand, UpdateCommand i DeleteCommand Występuje w wersjach SQL, OleDb i Oledbc
Obsługa baz danych poprzez strony WWW Niezbędne narzędzia: serwer baz danych np. MySQL serwer stron WWW np. Apache przeglądarka stron WWW interpretująca język HTML język skryptowy (parser) wyposażony w możliwości współpracy z systemem zarządzania bazą danych
MySQL MySQL jest relacyjnym systemem zarządzania bazami danych klasy Open Source stworzony i rozwijany przez firmę MySQL AB http://www.mysql.com/) MySQL jest serwerem baz danych - pozwala korzystać z zasobów danych wielu użytkownikom (klientom)
HTML i XHTML http://kurshtml.boo.pl/ XHTML to skrót od Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania. Reformuje on zasady języka HTML 4 w taki sposób, aby były zgodne z XML (Extensible Markup Language - Rozszerzalny Język Oznaczania)
Formularze Formularz w HTML stwarza użytkownikowi (klientowi) możliwość wprowadzania informacji do systemu i przekazywania ich dalej Formularz uruchamia akcję zapisaną jako argument parametru „action”
Technologia ASP.NET
Zalety ASP.NET (ASPX) Kodowanie po stronie serwera Skrypty działające po stronie klienta Kompilacja kodu zapewniająca bezpieczeństwo i skalowalność
Bazy Danych i język XML
Co to jest XML? XML to sposób zapamiętywania danych wraz z ich strukturą w dokumencie tekstowym: otwarty, elastyczny, niezależny od platformy sprzętowej. XML to rama składniowa do tworzenia języków specyficznych dla zastosowań. XML jest otwarty, tzn. struktura plików XML-owych jest jawna i publicznie dostępna, a same pliki są tekstowe. Elastyczność XML-a wynika bezpośrednio z tego, że jest to metajęzyk. Za korzystanie z formatu XML nie są pobierane żadne opłaty. Dodatkowo, wiele narzędzi wspierających wykorzystanie XML-a (szczególnie przeznaczonych dla programistów) jest bezpłatnych. XML nie jest związany z żadną platformą sprzętową ani producentem oprogramowania.
Co to jest XML? XML (rozszerzony język znaczników) to język w którym dane zapisuje się w formie tekstu. Właściwości danych opisuje specjalne oznakowanie. Stosowane oznakowania to nic innego jak umieszczenie w tekście informacji o interpretacji lub sposobie prezentacji przedstawionego tekstu. Oznakowanie ma przede wszystkim postać znaczników. Znaczniki ujęte są w trójkątne nawiasy <>. Dokument składa się ze znaczników oraz danych znakowych: jedne i drugie tworzą razem elementy.
XSL (XML Stylesheet Language) Język pozwalający na przekonwertowanie dokumentu XML do różnych formatów np. HTML, XML, SVG (Scalable Vector Graphics, www.w3.org/TR/SVG/), PDF i wiele innych
XPATH (XML Path Languge) Język zapewnia możliwość wykonywania kwerend, które wyszukują odpowiednie informacje w dokumencie XML Połączenie języków XSL i XPATH pozwala na tworzenie dokumentów XSLT (eXtensible StyleSheet Transformations) stanowiących wzorzec do transformacji dokumentu XML
Serializacja - deserializacja Proces przekształcania obiektów (bądź ogólnie danych) używanych w programie na ciąg bajtów, który może następnie być przekazany poza daną instancję programu Proces odwrotny nazywamy deserializacją
Przykłady serializacji zapisywanie parametrów konfiguracyjnych programu do pliku i ich odczyt w razie potrzeby zapisywanie stanu działania programu, aby przy następnym uruchomieniu, kontynuować działanie od zapisanego momentu wymiana danych między programami znajdującymi się na różnych komputerach połączonych siecią komputerową