Bazy Danych. dr inż. Roman Ptak Katedra Informatyki Technicznej roman.ptak@pwr.edu.pl

Podobne dokumenty
Internetowe Bazy Danych. dr inż. Roman Ptak Katedra Informatyki Technicznej

Internetowe BD P.Skrobanek 1. INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład IV. Paweł Skrobanek PLAN NA DZIŚ :

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

Internetowe Bazy Danych. dr inż. Roman Ptak Katedra Informatyki Technicznej

Bazy Danych. dr inż. Roman Ptak Katedra Informatyki Technicznej

DECLARE VARIABLE zmienna1 typ danych; BEGIN

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Internetowe Bazy Danych. dr inż. Roman Ptak Katedra Informatyki Technicznej

Internetowe Bazy Danych. dr inż. Roman Ptak Katedra Informatyki Technicznej

1 Instalowanie i uaktualnianie serwera SQL Server

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

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

Microsoft SQL Server Podstawy T-SQL

Program szkolenia KURS SPD i PD Administrator szkolnej pracowni internetowej Kurs MD1 Kurs MD2 Kurs MD3 (dla szkół ponadgimnazjalnych)

SQL Server. Odtwarzanie baz danych.

Administracja i programowanie pod Microsoft SQL Server 2000

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

Nowe technologie baz danych

Wykład 6: Bezpieczeństwo w sieci. A. Kisiel, Bezpieczeństwo w sieci

Wykład I. Wprowadzenie do baz danych

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

Systemy Operacyjne. Zarządzanie/Administracja Systemem/Procesami. autor: mgr inż. Andrzej Woźniak

Przykład 3 Zdefiniuj w bazie danych hurtownia_nazwisko przykładową funkcję użytkownika fn_rok;

Projektowani Systemów Inf.

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

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

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Oracle11g: Wprowadzenie do SQL

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

1. Instalacja jednostanowiskowa Instalacja sieciowa Instalacja w środowisku rozproszonym Dodatkowe zalecenia...

Bazy danych 2. Wykład 1

System Kancelaris. Zdalny dostęp do danych

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

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Audyt zasobów sprzętowych i systemowych (za pomocą dostępnych apletów Windows oraz narzędzi specjalnych)

Microsoft SQL Server 2012 Krok po kroku

Język SQL, zajęcia nr 1

Część I Tworzenie baz danych SQL Server na potrzeby przechowywania danych

Systemowe aspekty baz

SZKOLENIE: Administrator baz danych. Cel szkolenia

Tworzenie zapytań do Microsoft SQL Server

Podstawy bezpieczeństwa

Administracja i programowanie pod Microsoft SQL Server 2000

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

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

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

MCSA: SQL Server 2012

Materiały do laboratorium MS ACCESS BASIC

PODSTAWY BAZ DANYCH 13. PL/SQL

Paweł Rajba

15. Funkcje i procedury składowane PL/SQL

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Ochrona Danych Wrocław 7 marzec 2007

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

Programowanie po stronie serwera w SZBD. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Podziękowania... xv. Wstęp... xvii

Programowanie MorphX Ax

Zaawansowane bazy danych i hurtownie danych semestr I

Administracja i programowanie pod Microsoft SQL Server 2000

ZAŁĄCZNIK NR 1.8 do PFU Serwery wraz z system do tworzenia kopii zapasowych i archiwizacji danych - wyposażenie serwerowni

Administracja i programowanie pod Microsoft SQL Server 2000

Zadanie nr 4.5: Oprogramowanie bazodanowe. Lp. Zwartość karty Opis 1 Specyfikacja techniczna / funkcjonalna przedmiotu zamówienia

Oracle PL/SQL. Paweł Rajba.

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

Administracja i programowanie pod Microsoft SQL Server 2000

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

SQL 4 Structured Query Lenguage

Metody ataków sieciowych

Konfiguracja komputera przeznaczonego do pracy z IndustrialSQL Server 8.0 (komputer serwer)

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

Projekt: MS i CISCO dla Śląska

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

Bloki anonimowe w PL/SQL

Administracja i programowanie pod Microsoft SQL Server 2000

Zajęcia prowadzone przez MCT, auditora wiodącego systemów bezpieczeństwa informacji.

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Szkolenie autoryzowane. MS 6232 Wdrażanie bazy danych Microsoft SQL Server 2008 R2

Projektowanie i implementacja infrastruktury serwerów

Web Application Firewall - potrzeba, rozwiązania, kryteria ewaluacji.

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

BAZY DANYCH Cz III. Transakcje, Triggery

2 Konfiguracja i utrzymanie bazy danych Przed rozpoczęciem Lekcja 1: Konfigurowanie plików i grup plików Pliki i grupy plików...

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

Asix. Konfiguracja serwera MS SQL dla potrzeb systemu Asix. Pomoc techniczna NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Oferta świadczenia pomocy prawnej dla Zdalny dostęp do dokumentów

Projektowanie bezpieczeństwa sieci i serwerów

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Client-side Hacking - wprowadzenie w tematykę ataków na klienta. Radosław Wal radoslaw.wal@clico.pl

Jarosław Kuchta. Administrowanie Systemami Komputerowymi. System plików

Składowane procedury i funkcje

Transkrypt:

Bazy Danych dr inż. Roman Ptak Katedra Informatyki Technicznej roman.ptak@pwr.edu.pl

Plan wykładu 10 i 11. Bezpieczeństwo Ochrona danych przed utratą Ochrona przed niepowołanym dostępem Microsoft SQL Server Struktura logiczna systemu Struktura fizyczna systemu Język Transact-SQL 2

Bezpieczeństwo

Ryzyko i zagrożenia Zmiana polityki rządowej Awarie sprzętu komputerowego Awarie sieci elektrycznych, komunikacyjnych, komputerowych Błędy w oprogramowaniu Ograniczenie pojemności systemów Crackerzy 4

5

6

7

Zagrożenia bezpieczeństwa Ujawnienie poufnych danych Modyfikacja lub zniszczenie danych Uniemożliwienie świadczenia usług Nieuznawanie transakcji 8

9 Konieczność kompromisu Użyteczność Wydaj ność Koszty Bezpieczeńst wo

10 Metody socjotechniczne (Social Engineering)

11 Działania hakerskie

12 Cracking

Ataki hybrydowe Istnieje nieskończona liczba ataków hybrydowych wykorzystujących dowolną kombinację rozmaitych metod w różnych sekwencjach, zależnie od celu, poziomu wiedzy i doświadczenia napastnika. Ataki hybrydowe stanowią zdecydowaną większość wszystkich ataków. Uwaga! 80% włamań obejmuje działania wykorzystujące: 1) znane, niezałatane luki, 2) łatwe do odgadnięcia hasła. 13

14 Ataki hybrydowe Kilka przykładów Gromadzenie informacji Skanowanie portów Przechwytywanie pakietów Metody socjotechniczne War Dialing Włamanie i przejęcie kontroli Wykorzystanie dobrze znanych słabych punktów Wykorzystanie złej konfiguracji systemu operacyjnego Odgadywanie haseł/cracking Instalowanie narzędzi rootkit Dodawanie użytkownikom przywilejów by przejąć zdalnie kontrolę Przestępstwa Zmienić, ukraść, zniszczyć. DDoS, przerobienie strony internetowej Manipulowanie danymi Kopiowanie własności intelektualnej (bazy danych HR, listy płac, karty kredytowe )

TYPY ATAKÓW

1. Buffer overflow zapisanie łańcuchów danych przekraczających rozmiar bufora, przy niedopracowanych aplikacjach może spowodować uzyskanie uprawnień do wykonywania swoich programów zapobieganie: instalacja łatek przykład: błędy ODBC w serwerze webowym Microsoft (Windows NT) 16

2. Wirusy, robaki i konie trojańskie znane z życia codziennego zapobieganie: aktualne oprogramowanie antywirusowe, wyłączanie zbędnych usług 17

Wirusy komputerowe

3. Spoofing (podszywanie się) podrabianie wiarygodnej tożsamości, fałszowanie adresu IP (zaufanie serwera lub udawanie kogoś innego), podrabianie zaufanej witryny (może klient się zaloguje ), inne; zapobieganie: zabezpieczenia firewall a, podpisy cyfrowe, urządzenia. 19

20

5. Denial of Service (DoS) DoS (odmowa świadczenia usługi) przy użyciu standardowych protokołów lub procesów blokuje usługi, np. ping śmierci, otwierająca się ogromna liczba okienek, zapobieganie: właściwa konfiguracja firewall a oraz zabezpieczenia po stronie komputera klienta, a także np. monitorowanie sieci. 21

22 Denial of Service (DoS)

6. Session Hijacking przejęcie istniejącego połączenia i odgrywanie roli jednej ze stron, zapobieganie: instalacja łatek, właściwe projektowanie i implementacja oprogramowania. 23

ATAKI BAZODANOWE

Ataki bazodanowe Wstrzyknięcia kodu SQL (ang. SQL Injection) DoS (odmowa usługi) za pomocą SQL Injection Cross Site Scripting (XSS), Wildcard attack Account lockout attack 25

26 Uzyskiwanie dostępu do systemu Uzyskiwanie dostępu do systemu SELECT * FROM USERS WHERE USERNAME LIKE POBRANY_LOGIN AND PASS LIKE POBRANE_HASLO ; Przykład ataku SELECT * FROM USERS WHERE USERNAME LIKE OR 1 = 1; -- Przekazywanie wielu zapytań (modyfikacja bazy danych) SELECT * FROM USERS WHERE USERNAME = x ; DROP TABLE USERS; SELECT 1 ;

27 DoS za pomocą SQL Injection SELECT * FROM USERS WHERE USERNAME = x OR BENCHMARK(9999999, BENCHMARK(999999, BENCHMARK(999999, MD5(NOW())))) = 0;

Inne ataki bazodanowe - Wildcard attack SELECT * FROM TABLE WHERE COLUMN LIKE '%something% _[^!_%/%a?f%_d)_(f%)_%([)({}%){()} $&N%_)$* ()$*R"_)][ %](%[x])%a][$* $-9]_ 28

Jak chronić swoje aplikacje przed SQL Injection? Na poziomie aplikacji Niedopuszczenie do przekazania znaku do zapytania Zaślepki Rzutowanie łańcucha znaków na wartość liczbową. Wyłączenie komunikatów o błędach lub ich zastąpienie. Na poziomie bazy danych Ograniczenie uprawnień aplikacji Na poziomie serwera aplikacji Odfiltrowywanie podejrzanych zapytań 29

Przykład AltoroMutual Bank strona http://demo.testfire.net/bank/login.aspx 30

UMIEJSCOWIENIE BAZY DANYCH W ARCHITEKTURZE SIECI FIRMOWEJ

32

33

34 Umiejscowienie BD przykład 1. Internet Firewall Serwer dostępowy Serwer WWW Serwer aplikacji Serwer DB

35 Umiejscowienie BD przykład 2. Serwer WWW Serwer aplikacji Serwer DB Internet Router Switch LAN

Umiejscowienie BD sieci wirtualne Tunelowanie: 1. z wykorzystaniem IPSec, 2. z wykorzystaniem SSL (przezroczyste dla zapory). VPN (Virtual Private Network) wirtualna sieć prywatna korzysta z publicznej infrastruktury telekomunikacyjnej, protokołów tunelowania i procedur bezpieczeństwa danych (Uwaga: wykorzystywana również w ramach LAN do odseparowania fragmentu sieci). 36

37 Fizyczne zagrożenia

SKŁADOWANIE, ARCHIWIZACJA I OCHRONA DANYCH

Zagrożenia 39 Zagrożenia miejsca (budynku, pojazdu itp.) huragan, trzęsienie ziemi, powódź itp., utrata zasilania, wojna terroryzm; Awarie sprzętu uszkodzenia pamięci masowej (np. dysku), błąd procesora, niedziałająca infrastruktura sieciowa; Awaria logiczna błędy oprogramowania, wirusy, robaki, itp. przypadkowe usunięcia danych.

Zagrożenia miejsca wybrane techniki zapobiegania utratom danych: redundancja sprzętu replika bazy danych wraz ze sprzętem na serwerze zapasowym (np. 30 km dalej), zasilacze UPS, własne generatory, monitorowanie i zabezpieczenie obiektów, systemy alarmowe itp. 40

Awarie sprzętu wybrane techniki zapobiegania utratom danych: redundancja sprzętu, macierze RAID 1 (mirroring), RAID 5, backup i archiwizacja. 41

Błędy w oprogramowaniu wybrane techniki zapobiegania utratom danych: takie, jak poprzednio, ochrona antywirusowa, aktualizacja oprogramowania, zapory sieciowe, itp. projektowanie, implementacja, testowanie i walidacja oprogramowanie metodami formalnymi 42

Archiwizacja Rodzaje backupów pełny (ang. full backup), przyrostowy (ang. incremential backup), różnicowy (ang. differential backup) lokalny sieciowy 43

Przykłady urządzeń wykorzystywanych do archiwizacji: macierze dyskowe RAID, urządzenia taśmowe (ang. streamer) nośniki optyczne i magnetooptyczne 44

Macierze dyskowe 45 pojemności dysków: do 6 TB macierze dyskowe RAID RAID 0 (stripping) RAID 1 (lustrzany) RAID 2 RAID 3 RAID 4 RAID 5 RAID 6 RAID 0+1 RAID 1+0

RAID 46 Poziom RAID Minimalna liczba dysków (N) Dostępna przestrzeń Max liczba dysków, które mogą ulec awarii 0 2 N 0 1 2 1 N-1 2 3 N-log N 1 3 3 N-1 1 4 3 N-1 1 5 3 N-1 1 6 4 N-2 2 0+1 4 zależnie od konfiguracji 1+0 4 zależnie od konfiguracji zależnie od konfiguracji zależnie od konfiguracji

Urządzenia taśmowe Strimer (ang. streamer); DDS (ang. Digital Data Storage) zapis skośny na taśmach muzycznych DAT (ang. Digital Audio Tape), DLT (ang. Digital Linear Tape), LTO (ang. Linear Tape-Open), AIT (ang. Advanced Intelligent Tape), QIC (ang. Quarter Inch Cartridge). 47

Urządzenia taśmowe - przykłady 48 DAT (ang. Digital Audio Tape), np. DDS-6 80 GB, 5MB/s DLT (ang. Digital Linear Tape), np. SDLT600 300GB/600 GB, 36 MB/s LTO (ang. Linear Tape-Open), np. LTO-2 200/400GB; LTO-3 400/800 GB; LTO-4 800/1600 GB; LTO-5 1600/3200 GB; LTO-6 2500/6250 GB, 160 MB/s przyszłościowe: LTO-7 LTO-10 do 48 TB,

Nośniki optyczne CD pojemności: ok. 700 MB DVD pojemności: 4,7 GB 17,08 GB HD DVD pojemności: 15 GB, 20 GB Blu-ray Disc (BD) pojemności: 25 GB, 50 GB, 100/128 GB (BDXL) 49

Nośniki magnetooptyczne (MO) pojemności: 5,2 GB, 9,1 GB dysk z danymi jest umieszczony w specjalnej kasecie co pozwala na wydłużenia okresu archiwizacji nawet do 100 lat, dostępne także w wersji WORM (ang. Write Once, Read Many) do jednorazowego zapisu; RW wielokrotnego zapisu. 50

UWIERZYTELNIENIE I AUTORYZACJA

Uwierzytelnienie i autoryzacja Uwierzytelnienie proces mający na celu identyfikację klientów aplikacji, np. użytkowników końcowych, usług, procesów lub komputerów Autoryzacja proces mający na celu ustalenie, które zasoby i operacje powinny być dostępne danemu uwierzytelnionemu klientowi. Dotyczy to zasobów takich jak pliki, bazy danych, zasoby systemowe. 52

Uwierzytelnienie i autoryzacja (2) Mechanizmy uwierzytelnienia i autoryzacji są różne i zależą od konkretnego SZBD Zazwyczaj użytkownicy dzieleni są na grupy natomiast grupom nadawane są określone uprawnienia Ponadto niezbędnym dobrym nawykiem administratora baz danych powinno być rejestrowanie i monitorowanie zdarzeń na serwerze w poszukiwaniu nietypowych zdarzeń 53

Podstawy szyfrowania Szyfrowanie z kluczem prywatnym Szyfrowanie z kluczem publicznym Podpis cyfrowy Certyfikaty cyfrowe 54

Microsoft SQL Server

Microsoft SQL Server Producent: Microsoft Licencja: Microsoft EULA Najnowsza wersja stabilna: 12.00 Na serwerze MS SQL Server jedna instalacja (instancja) serwera zawiera wiele baz danych. Bazy danych dzielą się na systemowe (jak np. master) i użytkownika. 56

Architektura MS SQL Server 57 źródło: http://it-szkola.edu.pl/upload/kuznia/akademia_bd/main.html

Główne składniki silnika bazy danych SQL Server Protokoły Część relacyjna Parser, Optymalizator, Menadżer SQL Menadżer baz danych, Moduł wykonujący kwerendy, Interfejs OLE DB Aparat składowania danych Menadżer transakcji, Menadżer blokad Menadżer indeksów, Menadżer buforowania, SQLOS API Menadżer Wejścia/Wyjścia

MS SQL Server Struktura logiczna Struktura fizyczna 59

STRUKTURA LOGICZNA SYSTEMU MS SQL SERVER

Struktura logiczna systemu: Tabele Widoki Indeksy Procedury składowane Wyzwalacze typu AFTER po operacji DML typu BEFORE przed operacją DML typu INSTEAD of zamiast operacji DML 61

Widoki (perspektywy) Logiczny byt (obiekt), osadzony na serwerze baz danych. Umożliwia dostęp do podzbioru kolumn i wierszy tabel lub tabeli na podstawie zapytania w języku SQL. Perspektywy nazywane w MS Access kwerendami (wybierającymi) 62

63 Indeksy Struktura danych zwiększającą szybkość wykonywania operacji wyszukiwania na tabeli

64 Procedury składowane Procedury składowane są zbiorami instrukcji języka SQL zapisanymi pod wspólną nazwą i wywoływanymi jak pojedyncza instrukcja. Procedury składowane umożliwiają: 1. Przekazywanie parametrów wywołania. 2. Wykonywanie prawie wszystkich instrukcji języka SQL, w tym wywoływania innych procedur składowanych. 3. Zwracanie dowolnej liczby wyników do programu, który wywołał procedurę. 4. Zwracanie informacji o udanej lub niewykonanej procedurze.

Procedury składowane są powszechnie wykorzystywane w celu: 65 implementowania reguł logiki biznesowej, zabezpieczenia obiektów bazy danych przed bezpośrednim dostępem użytkowników, chronienia bazy danych przed atakami polegającymi na iniekcji kodu SQL, poprawienia wydajności często wykonywanych instrukcji, zminimalizowania obciążenia sieci (zamiast wysyłać całe instrukcje języka SQL użytkownik wywołuje jedynie procedurę, wysyłając jej nazwę i przekazując parametry jej wywołania).

66 Wyzwalacze Wyzwalacze są specjalnym typem procedur składowanych powiązanych z wybranymi tabelami i wywoływanych wykonaniem instrukcji języka SQL: INSERT, UPDATE albo DELETE.

STRUKTURA FIZYCZNA SYSTEMU MS SQL SERVER

Struktura fizyczna pliki: MDF (ang. main data file, master data file) główny plik bazy danych NDF (ang. next data file) pliki pomocnicze (grupa plików) LDF (ang. log data file) plik dziennika powtórzeń (logi) 68

Pliki danych (MDF) Plik główny danych (ang. primary file) stanowi punkt startowy bazy danych i zawiera informacje o innych plikach w bazie danych. Każda baza danych ma dokładnie jeden plik główny danych - ma on zwykle rozszerzenie.mdf. 69

Pliki pomocnicze (NDF) Partycjonowanie danych Artykuł: https://msdn.microsoft.com/pl-pl/library/tworzeniebazy-danych-w-sql-server.aspx 70

Pliki pomocnicze (NDF) 71 Logiczna struktura przechowywania danych w SQL Server źródło: https://msdn.microsoft.com/pl-pl/library/tworzenie-bazy-danych-w-sql-server.aspx

72 Pliki pomocnicze (NDF) CREATE DATABASE [Test_Database] ON PRIMARY ( NAME = N'my_database_primary', FILENAME = N'C:\Temp\Database\my_database_primary.mdf', SIZE = 3072KB, FILEGROWTH = 1024KB), FILEGROUP [Filegroup1] ( NAME = N'my_database_secondary', FILENAME = N'C:\Temp\Database\Secondary\my_database_secondary.ndf', SIZE = 3027KB, FILEGROWTH = 1024KB) LOG ON ( NAME = N'my_database_log', FILENAME = N'C:\Temp\Database\Log\my_database_log.ldf', SIZE = 1024KB, FILEGROWTH = 10%) GO

Pliki dziennika powtórzeń (LDF) *.ldf Dziennik powtórzeń chronologiczny rejestr działań na bazie danych Wykorzystywany do odzyskiwania danych po awarii 73

74 Informacje o plikach fizycznych Informacje o bazach danych widok sys.master_files (Databases master Views System Views) SELECT * FROM sys.master_files Informacje o plikach fizycznych sp_helpdb BazaDanych

Struktura widoku sys.master_files źródło: https://msdn.microsoft.com/enus/library/ms186782.aspx file_id, file_guid, type, type_desc, data_space_id, name, physical_name, state, state_desc, size, max_size, growth, is_media_read_only, is_read_only, is_sparse, is_percent_growth, is_name_reserved, create_lsn, drop_lsn, read_only_lsn, read_write_lsn, differential_base_lsn, differential_base_guid, differential_base_time, redo_start_lsn, redo_start_fork_guid, redo_target_lsn, redo_target_fork_guid, backup_lsn 75

76 Dołączanie bazy danych Databases Attach

77 źródło: http://edu.pjwstk.edu.pl/wyklady/szb/scb/wyklad15/w15.htm Podział bazy danych na pliki, ekstenty i strony

Struktura strony danych Nagłówek strony 96 bajtów Wiersze danych 78 Tablica przesunięć wierszy

Fizyczna organizacja Indeksy zgrupowane Indeksy niezgrupowane B-drzewo 79 źródło: http://edu.pjwstk.edu.pl/wyklady/szb/scb/wyklad15/w15.htm

Kwestie wydajnościowe Fizyczna organizacja danych wpływa na wydajność pracy BD Plan wykonania 80

TRANSACT-SQL

82 Transact-SQL (T-SQL) Został stworzony przez Sybase; później prawa kupiła firma Microsoft i wykorzystuje ten język w kolejnych wersjach MS SQL Server

Klasyczny język SQL a T-SQL SQL język deklaratywny w SZBD Sekwencje poleceń Nie ma konstrukcji sterujących: instrukcji warunkowych, pętli, zmiennych T-SQL rozszerzenie języka ale nie pełny język programowania Programowanie zadań po stronie serwera BD W T-SQL osadzony jest standardowy język SQL 83

T-SQL Rozszerzenie języka SQL umożliwiające tworzenie konstrukcji takich jak: pętle, instrukcje warunkowe oraz zmienne tabele tymczasowe. Zastosowanie: do tworzenia wyzwalaczy, procedur i funkcji składowanych w bazie. 84

Zmienne w T-SQL Wymóg jawnej deklaracji Nazwa zmiennej lokalnej musi rozpoczyna się od znaku @ zmienna globalna od @@ Typy zmiennych mogą być takie, jak wbudowane MS SQL Servera: CHAR, VCHAR, NCHAR, NVCHAR, INT, DATETIME, Przykład: DECLARE @licznik int = 1 85

Konwersja typów Polecenie CAST CAST (wyrażenie AS typ_danych) Polecenie CONVER CONVEERT (typ_danych[(rozmiar)], wyrażenie [,styl]) Przykłady: PRINT CAST(12.34 AS int) PRINT CONVERT(int 12.34) PRINT CONVERT(char(24), GETDATE(), 9) 86

Instrukcje sterujące Instrukcja warunkowa: IF wyrażenie_logiczne {polecenie_sql blok_poleceń} ELSE {polecenie_sql blok_poleceń} Pętle WHILE wyrażenie_logiczne {polecenie_sql blok_poleceń} 87

88 Przykład użycia instrukcji warunkowej DECLARE @i int SET @i = 1 IF @i = 1 BEGIN SELECT 'tak' END ELSE BEGIN SELECT 'nie' END

89 Przykład użycia pętli SET @licznik = 1 WHILE @licznik < 100 BEGIN INSERT INTO #tmp(liczba) VALUSE (@licznik) SET @licznik=@licznik+1 END

90 Przykład tworzenia widoku CREATE VIEW Klienci AS SELECT imie, nazwisko FROM BazaFirmy.dbo.Klienci_firmy WHERE rodzaj = 'staly'

Przykład tworzenia wyzwalacza CREATE TRIGGER t_zamowienie ON dbo.orders FOR INSERT, UPDATE, DELETE AS EXEC master..xp_sendmail 'kontroler1', 'Zmieniono zawartość tabeli Orders - proszę uaktualnić zestawienia' GO 91

Obsługa błędów BEGIN TRY Instrukcje END TRY BEGIN CATCH Instrukcje_obsługi_błędów ENT CATCH 92

Funkcje Konfiguracyjne Kursora Daty i czasu Matematyczne Metadanych Bezpieczeństwa Operujące na łańcuchach znaków Systemowe Statystyki systemowej Tekstu i obrazu 93

Pytania? DZIĘKUJĘ ZA UWAGĘ