|
|
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.
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
| 2591 | Windows | Tippek és trükkök - RAS - Modem csengetési szám állítása | 1. rész |
| 2622 | Windows | Tippek és trükkök - Program futtatása más felhasználóként | 2. rész |
| 2640 | Windows | A Windows ikonméretének megváltoztatása és Windows 2000 Asztaltémák | 3. rész |
| 2657 | Windows | Tippek és trükkök - Internet Explorer | 4. rész |
| 2667 | Windows | Tippek és trükkök | 5. rész |
| 2684 | Windows | Alapértelmezések állítása, telepítési fájlok helye, intéző nézetek | 6. rész |
| 2696 | Windows | Biztonsági trükkök | 7. rész |
| 2702 | Windows | Windows XP trükkök | 8. rész |
| 2729 | Windows | Windows 2000 és XP tippek, trükkök | 9. rész |
| 2757 | Windows | Registry trükkök | 10. rész |
| 2784 | Windows | Tippek, trükkök | 11. rész |
| 2829 | Windows | Tippek, trükkök | 12. rész |
| 2889 | Windows | Windows XP tippek | 13. rész |
| 2909 | Windows | Tippek Windows XP-hez | 14. rész |
| 2919 | Windows | Windows tippek | 15. rész |
| 2924 | Windows | Windows tippek | 16. rész |
| 2963 | Windows | Windows tippek | 17. rész |
| 2973 | Windows | Windows Tippek | 18. rész |
| 2981 | Windows | Windows tippek | 19. rész |
| 2990 | Windows | Tippek-trükkök | 20. rész |
| 3027 | Windows | IIS tippek | 21. rész |
| 3034 | Windows | Windows XP tippek-trükkök | 22. rész |
| 3088 | Windows | Windows 2000/XP tippek, trükkök | 23. rész |
| 3133 | Windows | Windows XP tippcsokor | 24. rész |
| 3140 | Windows | Windows XP tippek, trükkök | 25. rész |
| 3152 | Windows | XP és IIS tippek - trükkök | 26. rész |
| 3158 | Windows | Windows XP tippek, trükkök | 27. rész |
| 3168 | Windows | Tippek, trükkök | 28. rész |
| 3170 | Windows | Registry trükkök | 29. rész |
| 3179 | Windows | Tippek, trükkök | 30. rész |
| 3197 | Windows | Windows XP tippek, trükkök | 31. rész |
| 3205 | Windows | Tippek, trükkök | 32. rész |
| 3214 | Windows | Tippek, trükkök | 33. rész |
| 3223 | Windows | Tippek, trükkök | 34. rész |
| 3233 | Windows | Tippek, trükkök | 35. rész |
| 3271 | Windows | Tippek, trükkök | 36. rész |
| 3307 | Windows | Tippek, trükkök | 37. rész |
| 3370 | Windows | Tippek, trükkök | 38. rész |
| 3399 | Windows | Tippek, trükkök | 39. rész |
| 3510 | Windows | Tippek, trükkök | 40. rész |
| 3611 | Windows | Hardverrel kapcsolatos tippek, trükkök | 41. rész |
| 3668 | Windows | Registry trükkök | 42. rész |
| 3711 | Windows | Tippek, trükkök | 43. rész |
| 3771 | Windows | Tippek, trükkök | 44. rész |
| 3801 | Windows | Tippek, trükkök | 45. rész |
| 3831 | Windows | Tippek, trükkök | 46. rész |
| 3891 | Windows | Tippek, trükkök | 47. rész |
| 3921 | Windows | Tippek, trükkök | 48. rész |
| 3981 | Windows | Tippek, trükkök | 49. rész |
| 4041 | Windows | Tippek, trükkök | 50. rész |
| 4071 | Windows | Tippek, trükkök | 51. rész |
| 4151 | Windows | Tippek, trükkök | 52. rész |
| 4171 | C# | Tippek, trükkök | 53. rész |
| 4211 | Windows | Tippek, trükkök | 54. rész |
| 4251 | Windows | Tippek, trükkök | 55. rész |
| 4281 | Windows | Tippek, trükkök | 56. rész |
| 3589 | Delphi | Tippek, trükkök | 57. rész |
| 3718 | Delphi | Tippek, trükkök | 58. 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!
|