Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Szerver és kliens gép közötti kommunikáció Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó.

Hasonló előadás


Az előadások a következő témára: "Szerver és kliens gép közötti kommunikáció Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó."— Előadás másolata:

1

2 Szerver és kliens gép közötti kommunikáció

3 Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó használja és valós időben cserélnek benne adatokat  OLAP: OnLine Analitical Processing az adatok rendezve és összesítve találhatók meg, mely a gyors adatfeldolgozást teszi lehetővé szintén valós időben

4 Mire van szükség szerver és kliens oldalon?

5 komunikáció  A kliens alkalmazás egy kérést generál.  Ezután az alkalmazás az operációs rendszert (Windows) hívja segítségül, hogy a lekérdezést elküldje a hálózaton.  A szerveren lefut az SQL lekérdezés, előállnak az adatok.  Az adat előkészül a hálózaton való továbbításra. Optimalizálódik a küldési folyamat és az adatforma.  A lekérdezés elküldése a hálózaton, a kliens fogadja a választ és a felhasználónak megjeleníti.

6 Adatbázis a szerveren  Rendszer adatbázis: az MSSQL Szerver egészéről találunk információt  Felhasználói adatbázis: maga a felhasználó hozza létre. Ebben az adatbázisban tudunk mi dolgozni

7 Bejelentkezés: a biztonság első foka

8 A felhasználók alapvetően három csoportba oszthatók, attól függően, hogy milyen jogaik vannak a szerveren:  Fix Szerveri Jogok  a Fix Adatbázis Jogok  Felhasználó Által Definiált Adatbázisbeli Jogok

9 Sikeres és sikertelen csatlakozási kísérlet

10 Az adatbázis megtervezésénél a következő javasolt lépéseket célszerű betartani:  Meghatározzuk az adatbázis célját  Meghatározzuk az egyedeket, a táblákat, a tárolandó értékek típusát, attribútumát.  Elsődleges és idegen kulcsot definiálunk.  Kialakítjuk a kapcsolatokat a táblák között.  Teszteljük az adatbázist működés közben.  a tárolt eljárások  biztonsági/hozzáférési jogosultságok

11 Adatbázisok létrehozása CREATE DATABASE database_name [ON { [PRIMARY] (NAME = logical_file_name, FILENAME = 'os_file_name' [, SIZE = size] [, MAXSIZE = {max_size  UNLIMITED}] [, FILEGROWTH = growth_increment] ) } [,...n] ] [LOG ON { (NAME = logical_file_name, FILENAME = 'os_file_name' [, SIZE = size] [, MAXSIZE = {max_size  UNLIMITED}] [, FILEGROWTH = growth_increment] ) } [,...n] ] [COLLATE collation_name]

12 CREATE DATABASE Sample ON PRIMARY ( NAME=SampleData, FILENAME='c:\Program Files\ Microsoft SQL Server\MSSQL\Data\Sample.mdf', SIZE=10MB, MAXSIZE=15MB, FILEGROWTH=20%) LOG ON ( NAME=SampleLog, FILENAME='c:\Program Files\ Microsoft SQL Server\MSSQL\Data\Sample.ldf', SIZE=3MB, MAXSIZE=5MB, FILEGROWTH=1MB) COLLATE SQL_Latin1_General_Cp1_CI_AS

13 Fájlcsoportokról  egyes fájlokat és lekérdezéseket gyorsabban el tudunk érni, ha a fájl és/vagy adatbázis mérete lecsökken  rendszeradminisztrátorok könnyebben tudnak biztonsági másolatokat készíteni

14

15 Adatbázis változtatása ALTER DATABASE Sample MODIFY FILE ( NAME = 'SampleLog', SIZE = 15MB) GO ALTER DATABASE Sample ADD FILE (NAME = 'SampleData2', FILENAME='c:\Program Files\ Microsoft SQL Server\MSSQL\Data\Sample2.ndf', SIZE=15MB, MAXSIZE=20MB)

16 Adatbázis és fájlok tömörítése  Teljes adatbázis lecsökkentése használhatjuk az SQL Server Enterprise Manager-t vagy a Database Consistency Checker (DBCC) SHRINKDATABASE utasítását. DBCC SHRINKDATABASE (database_name [, target_percent] [, {NOTRUNCATE | TRUNCATEONLY}]) DBCC SHRINKDATABASE (SampleData, 25)

17 Típusok Jellemző adattípusok SQL Server által biztosított típusok ANSI megfelelő Foglalt byte-ok száma Integer int bigint smallint, tinyint integer  4 8 2, 1 egész szám decimal[(p[, s])] numeric[(p[, s])] dec  2–17 valós szám float[(n)] real double precision, float[(n)] for n=8-15 float[(n)] for n= pénzügyi money, smallmoney  8, 4 dátum és időDatetime, smalldatetime  8484

18 Típusok karakter char[(n)] varchar[(n)] text character[(n)] char VARYING[(n)] character VARYING[(n)]  0–8000 0–2 GB Unicode karakterek nchar[(n)] nvarchar[(n)] ntext  0–8000 (4000 karakter) 0–2 GB bináris binary[(n)] varbinary[(n)]  binary VARYING[(n)] 0–8000 képimage  0–2 GB gobális azonosítók uniqueidentifier  16 speciálisbit, cursor, uniqueidentifier timestamp sysname table sql_variant  rowversion  1, 0– –8016

19 Táblák létrehozása  CREATE TABLE table_name column_name data type [COLLATE ] [NULL | NOT NULL] | column_name AS computed_column_expression [,….n]  CREATE TABLE dbo.CategoriesNew (CategoryIDint IDENTITY (1, 1)NOT NULL, CategoryNamenvarchar(15)NOT NULL, DescriptionntextNULL, PictureimageNULL)

20 Tábla módosítása

21 Adatok kezelése  INSERT INTO table_name VALUES [ ]  INSERT INTO Categories VALUES („Smith”,”$500”,”ID520444”,”none”)  DELETE FROM WHERE  DELETE FROM Categories WHERE ’Customer_name’ = ’Smith’  UPDATE SET column_name=’values’ [, column_name =’values’,…]  Generált érték: az Identity tulajdonságot, a NEWID függvényt, vagy az uniqueidentifier adattípust használhatjuk CREATE TABLE table (column_name data_type [ IDENTITY [(seed, increment)]] NOT NULL )

22 SQL Server Management Studio Express

23 Indexek Adatelérés kétféle módon: 1. Tábla átvizsgálással Table scan, nagyon lassú 2. indexek segítségével a. felgyorsítják az adatok keresését b. a csoportosító c. rendező utasításokat

24 DE az Indexek  sok lemezterületet és fenntartást igényelnek  adatok módosításakor az indexek is automatikusan frissülnek

25 Indexek létrehozása  indexeink ne legyenek túl nagyok -> olyan oszlopokon hozunk létre indexeket, melyek maguk is kicsik.  a rövid indexek általában hatékonyabbak és hatásosabbak a nagyobbaknál

26 CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name ON { table | view } ( column [ ASC | DESC ] [,...n ] ) [WITH [PAD_INDEX ] [[,] FILLFACTOR = fillfactor ] [[,] IGNORE_DUP_KEY ] [[,] DROP_EXISTING ] [[,] STATISTICS_NORECOMPUTE ] [[,] SORT_IN_TEMPDB ] ] [ON filegroup ] Robert Vieira: Kezd ő könyv az MSSQL2005 programozásához

27 Pl.:  CREATE CLUSTERED INDEX CL_lastname ON employees(lastname)  Törlés: DROP INDEX 'table.index | view.index' [,...n ]  Drop index cl_lastname

28 Clustered = csoportosított indexek  Az adatok fizikai tárolása egy előre meghatározott sorrend szerint történik.  Az egyes sorok egyedi azonosítóját a csoportosított indexeket meghatározó oszlopok biztosítják.

29 Indexek fenntartása  Fregmentálódás – töredezetté válás  Adatok felvitelekor, módosításakor vagy törlésekor  Karbantartás (Index Tuning Varázsló) 1. Törlés – létrehozás 2. újrarendezés DBCC INDEXDEFRAG ( { database_name | database_id | 0 }, { table_name | table_id | 'view_name' | view_id }, { index_name | index_id } ) [ WITH NO_INFOMSGS ]

30 A triggerek  táblához kötődnek  tárolt eljárások egy speciális fajtája  lefut valahányszor, amikor adatot próbálunk módosítani  a triggerek jó lehetőséget biztosítanak komplex üzleti szabályok betartására

31 A triggerek használata  elsődleges feladata és előnye, hogy más, pl. a CHECK megszorításnál több és komplexebb megoldást nyújtanak adatok ellenőrzésére és így az adatintegritás megőrzésére is.  Triggerek használatával azt is meg tudjuk állapítani, hogy az INSERT, UPDATE vagy DELETE parancsok kiadása után egy tábla mely sorait érintette változás.

32  A triggerek Transact-SQL utasításokat tartalmaznak úgy, mint a tárolt eljárások CREATE TRIGGER [owner.] trigger_name ON [owner.] table_name [WITH ENCRYPTION] {FOR | AFTER | INSTEAD OF} {INSERT | UPDATE | DELETE} AS [IF UPDATE (column_name)...] [{AND | OR} UPDATE (column_name)...] sql_statements}

33 CREATE TRIGGER Empl_Delete ON NewEmployees FOR DELETE AS IF (SELECT COUNT(*) FROM Deleted) > 1 BEGIN RAISERROR( 'You cannot delete more than one employee at a time.', 16, 1) ROLLBACK TRANSACTION END DELETE FROM Employees WHERE EmployeeID > 6 DELETE FROM Employees WHERE EmployeeID = 6

34 Trigger deaktiválása  ALTER TABLE table {ENABLE | DISABLE} TRIGGER {ALL | trigger_name[,…n]}  DROP TRIGGER trigger_name

35 rendszerfüggvény  Identity típusú mező értékét adja  Az utolsó insert parancs által generált. Create table test (id int identity primary key) int INSERT INTO test DEFAULT VALUES = …

36  Az utolsó lekérdezés által érintett sorok száma int Select * from test = Print ‘a sorok száma: as varchar(10))

37 kurzorok  AS AS CHAR(200);  DECLARE C CURSOR FOR SELECT keycol, filler FROM dbo.T1; OPEN C  FETCH NEXT FROM  WHILE = 0  BEGIN  -- Process data here FETCH NEXT FROM  END  CLOSE C;  DEALLOCATE C;

38 Tárolt eljárások  Create procedure|proc eljárás neve  [Paraméternév adattípus] [= alapértelmezett érték]  [OUT paraméternév típus [= alapért. érték]]  AS 

39 Create proc spShip AS select * from Ship Végrehajtása: Exec spShip

40 paraméterek  Név [as] adattípus[= alapért. Érték| NULL] [OUTPUT|OUT]  Create proc spInsertS nvarchar(50) = ‘alapérték’, nvarchar(20) = NULL AS Insert into Sh

41 Kimeneti paraméter  Create Proc spIns int = 1, varchar(30), int OUT AS Insert into ord =

42 Vezérlő utasítások  IF.. ELSE  CASE  GOTO  WHILE

43  IF  | BEGIN END [ELSE | BEGIN END] CASE WHEN THEN … [ELSE ] END

44 Select top 10 orderId, orderid % 10 as ‘Last Digit’, Position = CASE orderid % 10 WHEN 1 THEN ‘First’ WHEN 2THEN ‘Sec’ WHEN 3 THEN ‘Third’ WHEN 4 THEN ‘Fourth’ ELSE ‘Something’ END FROM orders

45 WHILE | BEGIN [BREAK] [CONTINUE] END


Letölteni ppt "Szerver és kliens gép közötti kommunikáció Adattárolási modellek  OLTP: OnLine Transaction Processing az MSSQL Szervert egy időben egyszerre sok felhasználó."

Hasonló előadás


Google Hirdetések