HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

MS SQL adatbázis kezelés Delphi-ből


5. rész

Példaprogram letöltése

7902 bájt

Mostani cikkünkben az adatbázisok kezelése lesz a fő témakör. Megvizsgáljuk, hogy milyen rendszer adatbázisokat találunk az SQL szerverben, létrehozunk saját adatbázist, majd ezt módosítjuk, végül töröljük.
Rendszer adatbázisok

Az SQL Serverben négy ún. rendszer adatbázis kerül telepítésre.

Master: A master adatbázis tárol az SQL Server működésével kapcsolatos minden rendszer szintű információt, így gyakorlatilag az SQL Server lelke. Itt tárolódnak a felhasználói fiókok, a rendszer konfigurációs beállításai, minden más adatbázis összes paramétere, pl. az őket tároló elsődleges adatfájlok pontos helye.

Tempdb: Ez az adatbázis a helye az átmeneti tábláknak és tárolt eljárásoknak. A lekérdezések során generálódó munkatáblák is itt jönnek létre. Minden SQL Server induláskor újra létrejön. Ez az adatbázis is képes növelni méretét ha szükséges, de újrainduláskor mindig az eredeti méretben jön létre.

Model: Ez egy mintaadatbázis, új adatbázis létrehozásakor kap szerepet, az új adatbázis egyszerűen ennek a másolata lesz. Fontos, hogy ez az adatbázis mindig létezzen, hiszen a tempdb-nek minden induláskor elő kell állnia, ehhez pedig szükség van a model mintára.

Msdb: Ezt az adatbázist az SQL Server Agent használja, ebben tárolódnak az ütemezett feladatok.

Adatbázis létrehozása

Az adatbázis létrehozása előtt el kell dönteni az adatbázis nevét, a tulajdonosát, a méretét és azoknak a fájloknak a nevét és helyét, ahol majd az adatbázis tárolódik. Adatbázis létrehozására többféle mód is kínálkozik, mi ebből kettőt mutatunk meg.

Enterprise Manager:
1. Kattintsunk az SQL Server Group-ra, majd az SQL Server nevére.
2. Jobb oldali gombbal kattintsunk a Databases-re, majd New Database...
3. Töltsük ki az adatbázis neve mezőt. Ekkor létrejön az elsődleges adatfájl és a tranzakciós napló, ha pl. MyDB az adatbázis neve, egy MyDB_Data.mdf és egy MyDB_Log.ldf nevű fájl jön létre. Amikor egy adatbázis létrejön, nem történik más, mint hogy másolat készül a model nevű adatbázisról, ezért a kezdeti mérete is ugyanakkora lesz. Az elsődleges adatfájl ekkor még csak rendszertáblákat tartalmaz.
4. Az elsődleges adatfájl paramétereinek megváltoztatásához a General fülön, a tranzakciós napló fájl paramétereinek változtatásához a Transaction Log fülön kell matatnunk. Mindkét fülön szerepelnek a File name, a Location, Initial Size oszlopok, ide beírhatjuk a fájl nevét, kijelölhetjük a pontos helyét a meghajtón és meghatározhatjuk, hogy milyen méretű legyen a fájl.
5. Ha az adatbázis növekedése során eléri az őt tároló fájl méretét, az SQL Server automatikusan megnöveli a fájl méretét. Hogy miképpen, azt mi állíthatjuk be. Lehetőségünk van a növekedést megabájtokban (In megabytes) vagy százalékban (By percent) megadni. Ha nem akarjuk, hogy a fájl mérete magától változzon, ne legyen kiválasztva az Automatically grow file. Megadhatunk egy maximális fájl méretet is (Restrict filegrowth) vagy engedhetjük, hogy a növekedés szükség esetén mindig megtörténjen (Unrestricted filegrowth).
6. Ugyanezek a kapcsolók természetesen a tranzakciós naplóra is igazak.

T-SQL:
(A T-SQL az SQL Server 7.0 programozására szolgáló kiszolgáló programnyelv. Részletesen a 6. fejezetben kerül bemutatásra.)
Az adatbázis létrehozásához a master adatbázisban kell lennünk, létrehozásakor azzal egyidejűleg a tranzakciós napló is létrejön. Adatbázis létrehozása a CREATE DATABASE utasítással történik:
CREATE DATABASE adatbázisnév
[ ON [PRIMARY]
        [ fájl [,...n] ]
]
[ LOG ON { fájl [,...n]} ]
Ahol a fájl :=
  ( [ NAME = logikai fájlnév, ]
  FILENAME = 'operációs rendszer fájlnév'
  [, SIZE = méret]
  [, MAXSIZE = { max.méret | UNLIMITED } ]
  [, FILEGROWTH = növekedés] ) [,...n]
Az Enterprise Manager-rel létrehozott adatbázis megbeszélése után a parancs paraméterei már beszédesek. Példaképpen hozzunk létre egy adatbázist Sales néven. A fájlok legyenek az mssql7\data könyvtárban. Az elsődleges fájl kezdeti mérete legyen 10 MB, 5 MB-onként növekedjen, de 50 MB-nál ne tovább. Ugyanezek a paraméterek a tranzakciós napló esetében legyenek 5 MB, 5 MB és 25 MB. A parancs ekkor a következő:

1.
USE master
GO
CREATE DATABASE Sales
ON 
( NAME = Sales_dat,
  FILENAME = 'c:\mssql7\data\saledat.mdf',
  SIZE = 10,
  MAXSIZE = 50,
  FILEGROWTH = 5 )
LOG ON
( NAME = 'Sales_log',
  FILENAME = 'c:\mssql7\data\salelog.ldf',
  SIZE = 5MB,
  MAXSIZE = 25MB,
  FILEGROWTH = 5MB )
GO

Nézzünk még néhány példát!

2.
USE master
GO
CREATE DATABASE Products
ON 
( NAME = prods_dat,
  FILENAME = 'c:\mssql7\data\prods.mdf',
  SIZE = 4,
  MAXSIZE = 10,
  FILEGROWTH = 1 )
GO
Products néven hoztunk létre adatbázist. Mivel csak az elsődleges adatfájlt specifikáltuk, egy 1 MB-os tranzakciós napló jön létre automatikusan. A size paraméternél nem írtunk MB-ot vagy KB-ot, a MB az alapértelmezett. A tranzakciós naplóra nincs méretkorlátozás.

3.
CREATE DATABASE mytest
Említettük, hogy az adatbázis létrehozása a model nevű rendszeradatbázis lemásolását jelenti. Mivel itt nem adtunk meg semmilyen paramétert, a mytest nevű adatbázis minden tekintetben megegyezik a model adatbázissal.

4.
USE master
GO
CREATE DATABASE Products2
ON 
( NAME = prods2_dat,
  FILENAME = 'c:\mssql7\data\prods2.mdf' )
GO
Mivel csak a neveket határoztuk meg, a létrejövő adatbázis mérete a model adatbázis méretével fog megegyezni. A tranzakciós napló automatikusan létrejön, mérete ilyenkor mindig negyede az adatbázis méretének, de minimum 512 KB. Mivel MAXSIZE paraméter nincs megadva, az állományok igény szerint növekedhetnek.


Adatbázis módosítása és törlése

Előfordul, hogy az adatmennyiség növekedése miatt szeretnénk megnövelni az adatbázis méretét. Ezt megtehetjük az Enterprise Manager-rel vagy az ALTER DATABASE utasítással. Három dolgot tehetünk. Automatikus növekedést állítunk be, ahogy az előző szakaszban leírtuk. Megnöveljük az aktuális adatfájl vagy naplófájl méretét, vagy másodlagos fájlokat hozunk létre.
Az ALTER DATABASE utasítás így néz ki:
ALTER DATABASE database
{    ADD FILE fájl
    | ADD LOG FILE fájl
    | REMOVE FILE logikai fájlnév 
    | MODIFY FILE fájl
}
ahol a fájl ::=
(NAME = logikai fájlnév
  [, FILENAME = ' operációs rendszer fájlnév ' ]
  [, SIZE = méret]
  [, MAXSIZE = { max.méret | UNLIMITED } ]
  [, FILEGROWTH = növekedés] )
A következő példában létrehozunk egy adatbázist, aztán hozzáadunk még egy adatfájlt:
USE master
GO
CREATE DATABASE Test1 ON
(
 NAME = Test1dat1, 
 FILENAME = 'c:\mssql7\data\t1dat1.ndf',
 SIZE = 5MB,
 MAXSIZE = 100MB,
 FILEGROWTH = 5MB
)
GO
ALTER DATABASE Test1 
ADD FILE 
(
 NAME = Test1dat2,
 FILENAME = 'c:\mssql7\data\t1dat2.ndf',
 SIZE = 5MB,
 MAXSIZE = 100MB,
 FILEGROWTH = 5MB
)
GO
Ha egy adatbázis nagyobb, mint amekkorára szükség van, méretét csökkenthetjük. Ahogy a méret növelésénél, itt is lehetőség van kézi és automatikus méretváltoztatásra. Egy adatbázis méretét maximum az eredeti méretére csökkenthetjük vissza! Az Enterprise Manager-ben álljunk az adatbázisunkra, majd jobb kattintás után válasszuk az All Tasks/Shrink Database... parancsot. Állítsuk be a kívánt méretcsökkenést és kész is vagyunk. Az automatikus méretcsökkenés beállításához az adatbázison a Properties-re majd az Options fülre kattintsunk.
A megfelelő T-SQL utasítás a következő:
DBCC SHRINKDATABASE 
    (    database_name [, target_percent]
    )
Egyetlen fájl méretcsökkentésére is lehetőség van, ekkor a DBCC SHRINKFILE utasítást kell használnunk.
Számtalan beállítási lehetőség van, amivel szabályozni tudjuk egy adatbázis működési tulajdonságait. Ehhez az Enterprise Managerben az adatbázis Property/Options részébe kell ellátogatnunk.
Ha egy adatbázisra nincs többé szükség, ki kell törölnünk. Az Enterprise Managerben jobb egérgombbal kattintva az adatbázisra válasszuk a Delete parancsot. Az ennek megfelelő T-SQL utasítás a következő:
DROP DATABASE database_name

Példaprogram

Az adatbázis komponenst SQL táblák kezeléséhez ugyanúgy használhatjuk, mint használtuk lokális adatbázisok eléréséhez. A programban a TDatabase komponenst fogjuk használni, és az előző fejezetben is használt Test1 aliasra csatlakozunk. A jelszót és a bejelentkezési nevet a Params property-n keresztül állítjuk be. Miután a kapcsolat felépült, a Session GetTableNames metódusával elkérjük az adatbázis tábláinak nevét.



Cikksorozat

#IDKategóriaCikk címeSorozat
2591WindowsTippek és trükkök - RAS - Modem csengetési szám állítása1. rész
2622WindowsTippek és trükkök - Program futtatása más felhasználóként2. rész
2640WindowsA Windows ikonméretének megváltoztatása és Windows 2000 Asztaltémák3. rész
2657WindowsTippek és trükkök - Internet Explorer4. rész
2667WindowsTippek és trükkök5. rész
2684WindowsAlapértelmezések állítása, telepítési fájlok helye, intéző nézetek6. rész
2696WindowsBiztonsági trükkök7. rész
2702WindowsWindows XP trükkök8. rész
2729WindowsWindows 2000 és XP tippek, trükkök9. rész
2757WindowsRegistry trükkök10. rész
2784WindowsTippek, trükkök11. rész
2829WindowsTippek, trükkök12. rész
2889WindowsWindows XP tippek13. rész
2909WindowsTippek Windows XP-hez14. rész
2919WindowsWindows tippek15. rész
2924WindowsWindows tippek16. rész
2963WindowsWindows tippek17. rész
2973WindowsWindows Tippek18. rész
2981WindowsWindows tippek19. rész
2990WindowsTippek-trükkök20. rész
3027WindowsIIS tippek21. rész
3034WindowsWindows XP tippek-trükkök22. rész
3088WindowsWindows 2000/XP tippek, trükkök23. rész
3133WindowsWindows XP tippcsokor24. rész
3140WindowsWindows XP tippek, trükkök25. rész
3152WindowsXP és IIS tippek - trükkök26. rész
3158WindowsWindows XP tippek, trükkök27. rész
3168WindowsTippek, trükkök28. rész
3170WindowsRegistry trükkök29. rész
3179WindowsTippek, trükkök30. rész
3197WindowsWindows XP tippek, trükkök31. rész
3205WindowsTippek, trükkök32. rész
3214WindowsTippek, trükkök33. rész
3223WindowsTippek, trükkök34. rész
3233WindowsTippek, trükkök35. rész
3271WindowsTippek, trükkök36. rész
3307WindowsTippek, trükkök37. rész
3370WindowsTippek, trükkök38. rész
3399WindowsTippek, trükkök39. rész
3510WindowsTippek, trükkök40. rész
3611WindowsHardverrel kapcsolatos tippek, trükkök41. rész
3668WindowsRegistry trükkök42. rész
3711WindowsTippek, trükkök43. rész
3771WindowsTippek, trükkök44. rész
3801WindowsTippek, trükkök45. rész
3831WindowsTippek, trükkök46. rész
3891WindowsTippek, trükkök47. rész
3921WindowsTippek, trükkök48. rész
3981WindowsTippek, trükkök49. rész
4041WindowsTippek, trükkök50. rész
4071WindowsTippek, trükkök51. rész
4151WindowsTippek, trükkök52. rész
4171C#Tippek, trükkök53. rész
4211WindowsTippek, trükkök54. rész
4251WindowsTippek, trükkök55. rész
4281WindowsTippek, trükkök56. rész
3589DelphiTippek, trükkök57. rész
3718DelphiTippek, trükkök58. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2000 évkönyv 495. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |