1.7. Fejlesztő, teszt és termelési rendszer

Az adatbázis-adminisztrátor legalább két különböző környezetet hoz létre és támogat egy minőségi adatbázis megvalósítása esetén: a fejlesztő és teszt rendszert, valamint a termelési rendszert. Nagyon gyakran a fejlesztő és teszt rendszer is el van különítve. A teljesen elkülönített teszt és termelési környezet segítségével lehet a termelési rendszer integritását és a teljesítményét biztosítani. Az új fejlesztés és a karbantartási munkálatok először mindig a teszt környezetben valósulnak meg. A működő alkalmazások pedig a termelési környezetben futnak. Ha a két környezet nem megfelelően van elkülönítve, akkor a cég fejlesztési tevékenysége az üzleti működést károsíthatja. Ha a fejlesztés egy korai állapotában egy eltévedt programkód elérheti vagy módosíthatja a termelési rendszer adatait, az teljesítményproblémákat, érvénytelen adatokat vagy akár üzleti veszteséget, jogi problémákat okozhat.

A teszt és a termelési környezetnek adatszinten nem kell teljesen azonosnak lennie. A termelési környezet tartalmazza az összes olyan adatot, amely a működő alkalmazások támogatásához kell. Azonban a teszt környezetben csak az adatok egy részhalmazára van szükség az elfogadható alkalmazásteszteléshez. Továbbá a teszt adatbázis-kezelő rendszer megvalósítás nem követel ugyanannyi erőforrást, mint a termelési rendszer. Például kevesebb memóriára van szükség, vagy az adatoknak kevesebb helyet kell lefoglalni, amelyhez kevesebb eszköz szükséges. A tesztrendszerre esetleg az adatbázis-kezelő rendszer szoftverének egy újabb verziója van feltéve. Ennek az az egyik lehetséges oka, hogy így az adatbázis-kezelő rendszer új verziója miatt keletkező hibákat ki lehet javítani, mielőtt azok a termelési rendszerre kerülnének.

A teszt és a termelési környezet felépítésének hasonlónak kell lennie. A programozók az alkalmazásokat a fejlesztői környezetben hozzák létre, és a tesztkörnyezetben tesztelik. Ezeket az alkalmazásokat majd az adatbázis-adminisztrátor fogja a termelési rendszerbe áthelyezni. A termelési rendszerben lévő alkalmazásokat a programozók már nem módosíthatják, sőt el sem érhetik azokat, nem kapnak hozzá jogot. A programozó csak akkor tudja az alkalmazásokat megfelelően megírni és tesztelni, ha a termelési és a tesztrendszernek ugyanaz a felépítése.

Lehet, hogy az adatbázis-adminisztrátornak a tesztkörnyezetben több adatbázis-másolatot kell készítenie, hogy a párhuzamosan folyó fejlesztéseket támogassa. A programozóknak tudniuk kell kezelni a tesztadatbázisok tartalmát. A programozóknak a fejlesztés során többször, ugyanolyan adatokon kell az alkalmazásokat futtatniuk, hogy ellenőrizni tudják, hogy mit csinál az alkalmazás. Természetesen az alkalmazás a legtöbb esetben adatot is fog módosítani. A programozónak ezért szüksége van arra, hogy a kezdeti tesztadatokkal tudjon újra dolgozni, különben nem látja, hogy az alkalmazáskód változtatása valóban a szükséges változtatást eredményezte. Az adatbázis-adminisztrátornak segítenie kell a programozók munkáját. Az adatbázis-adminisztrátor szolgáltatja a kezdeti tesztadatokat. A kezdeti tesztadatok ismételt betöltését azonban a programozó el tudja végezni, de mindenképp meg tudja tanulni az adatbázis-adminisztrátortól. Nagy segítség lehet a tesztadatok visszaállításában a betöltő (LOAD) és kimentő (UNLOAD) segédprogramok. A programozó vagy az adatbázis-adminisztrátor a tesztfutás előtt az adatbázist tesztadatokkal feltölti, majd a tesztfutás után megvizsgálja, hogy a programlogika helyes-e. A vizsgálatot a program kimenetére, illetve az adatbázis tesztfutás előtti és utáni tartalmára alapozhatja. Ha nem helyes a programlogika, akkor a programozó megismételheti a folyamatot, amihez először újra betölti a tesztadatokat az adatbázisba majd újrateszteli az alkalmazást.

Nehéz megjósolni, hogy a tesztalkalmazásoknak milyen lesz a teljesítménye az első futáskor a termelési környezetben. Az adatbázis-adminisztrátor azonban itt is segít. Egy relációs adatbázis-kezelő rendszer általában biztosít egy eszközt, amely statisztikai információt gyűjt az adatbázis tartalmáról. Ezt a statisztikát használja a relációs optimalizáló, hogy meghatározza azt, hogy az SQL hogyan nyerje ki az adatokat. De ne feledjük el, hogy tesztadatbázisban kevesebb adat van, mint az élesben. Az adatbázis-adminisztrátor ilyen esetben szkripteket írhat, amellyel a termelési rendszer statisztikáit felolvassa és azokat a tesztkörnyezetbe másolja. Így segít a fejlesztőknek pontosabban becsülni, hogy a tesztalkalmazásoknak milyen lesz a teljesítménye a termelési rendszerben.

Általában nem elég csak ezt a két (termelési és fejlesztési-teszt) adatbázis-környezetet megvalósítani egy cég adatbázisa esetén. Például az összetett alkalmazásfejlesztési projektek miatt szükség lehet két vagy több különböző fejlesztési környezetre. Szükséges lehet egy környezetre, ahol az alkalmazásokat külön-külön fejlesztik, és tesztelik, illetve egy másik környezetre, ahol ezeket az egyedi alkalmazásokat integrálják a már meglévőkkel, és azt vizsgálják, hogy hogyan tudnak együttműködni. Más esetben minőségbiztosítási környezetre lehet szükség. Ebben a környezetben szigorú teszteléseket hajtanak végre az új és a módosított programokon, mielőtt azok a termelési környezetbe kerülnének.

A termelési rendszerből a tesztrendszerbe általában nem az éles adatok kerülnek át. A bizalmas adatokat nagyon gyakran megszűrik, vagy tisztítják, hogy illetektelenek ne férhessenek hozzá olyan adatokhoz, amelyekhez nincs jogosultságuk.