12/2/2008
Veri Tabanı Yönetimi
Veritabanı
Yönetimi nedir? Veritabanı yöneticisinin görevleri Veritabanı Yaziliminin
Kurulmasi ve upgradeler (yeni versiyonlar)Veritabani olusturulmasi Veritabani
baslatma/durdurma Kullanicilari ekleme ve yetkilendirme Veritabani yedekleme ve
yedekten geri dönme backup&recovery) Veritabani performans ayarlari
(performance tuning) veritabani tablo-/indekslerin büyüme kontrolu
(fragmentation control)
Veritabani
Yönetimi nedir?
Veritabani
yönetiminin ne oldugunu ögrenmek icin öncelikle veritabaninin ne oldugunu
bilmek gerekir.Veritabani basit olarak bilgi depolayan bir yazilimdir.Bircok
yazilim bilgi depolayabilir ama aradaki fark, veritabanin bu bilgiyi verimli ve
hizli bir sekilde yönetip degistirebilmesidir.
Veritabani,
bilgi sisteminin kalbidir ve etkili kullanmakla deger kazanir.Bilgiye gerekli
oldugu zaman ulasabilmek esastir.Indeksi olmayan bir kütüphane ve bütün
kitaplarin ayni kapaga sahip oldugunu düsündügünüzde kütüphane kullanicilarinin
ne kadar cok isi olacagini tahmin edersiniz.
Bir
veritabani bir kütüphanenin mükemmel bir indeks sistemi oldugu gibi , ayni
zamanda kütüphanenin kendisidir.
Veritabani
yönetimi ve veritabani yönetcisinin rolü kütüphanecininkine benzerdir.Bilgiyi
olusturmak ya da elde etmekten sorumlu degiller fakat varolan bilgiyi
yönetirler.
Gercek
veritabani yönetimi cok sorumluluk isteyen bir istir, veritabaninin her an
düzgün ve verimli calismasini saglamak ve standartlari belirleyip veritabaninin
icerdigi veriyi yönetmektir.
Bircok
insan veritabaninin sadece bilgiyi tutan birsey oldugunu zanneder, fakat bundan
cok öte birseydir ve önceden dedigim gibi bilgi sisteminin kalbidir.
Veritabani
yönceticisi ve veritabani yönetimi bundan dolayi bütün mevkilerin eksenidir.
Veritabanindaki
bir problem , cok pahali sonuclar dogurabilir. Bir bankanin veritabaninin
durmasi demek , her an yapilan yüzlerce belki de binlerce islemin , dolayisiyla
müsterilerin beklemesi demektir.
Ayni
problem bir supermarket icin de gecerlidir, müsteriler kasada kuyruk olusturur,
kisaca bütün sistem durabilir.
Bundan
dolayi veritabani yöneticisi ilk olarak sistemin düzgün calismasini saglamali,
ikinci olarak da düzgün calismadiginda onu mümkün oldugu kadar hizli bir
sekilde calisir hale getirmektir.
Sanirim
veritabani yönetimi nedir sorusuna basit de olsa bir cevap olustu kafanizda.
Simdi
veritabani yöneticisinin yaptigi isleri mümkün oldugu kadar genel hatlariyla
anlatmaya calisalim.
Veritabani yöneticisinin görevleri
Görevleri
kisaca su basliklar altinda toplanabilir :
Veritabani
Yaziliminin Kurulmasi ve upgradeler (yeni versiyonlar)
Veritabani
olusturulmasi
Veritabani
baslatma/durdurma
Kullanicilari
ekleme ve yetkilendirme
Veritabani
yedekleme ve yedekten geri dönme (backup&recovery)
Veritabani
performans ayarlari (performance tuning)
Veritabani
tablo-/indekslerin büyüme kontrolu (fragmentation control)
Veritabani
Yaziliminin Kurulmasi ve upgradeler (yeni versiyonlar)
Veritabaninin
yaziliminin kurulmasi isin genelde en basit tarafidir.Farkli Isletim
Sistemlerine özgü hazir derlenmis yazilim “kurulum notlari” dikkate alinarak
kurulur.
Veritabaninin
yogun bir sekilde kullanilmasindan sonra bazi buglarin (hatalarin) ortaya cikmasiyla üretici firma
tarafindan cikarilan yeni versiyonlarin kurulumu gerekebilir.
Veritabaninin olusturulmasi
Veritabanindan
verileri okuyan, yazan, silen ve gerektiginde de degistiren yazilimlara
“uygulama yazilimlari” denir.Bu uygulamalarin tasarimi sirasinda uygulama
gelistiricilerle birlikte veritabaninin da tasarimi yapilmalidir.Iste bu
noktada veritabani yöneticisi bir takim özellikleri dikkate alarak bir
“veritabani modeli” ortaya cikarir.Bu esnada normalizasyon yöntemleri gibi
optimizasyonlar yapilir.
Bu
olusan model daha sonra fiziksel olarak, kullanilacak olan veritabani yazilimi
(Oracle, Informix, MySQL, Postgresql vs. ) araciligiyla
olusturulur.Veritabanini tanimlarken , verimli bir sekilde kullanimdan
bahsettik. Iste bu noktada veritabanini fiziksel olarak olustururken dikkat
edilmesi gereken hususlar vardir:
Cok
yogun islem görecek olan tablo-/indeksleri mümkün oldugu kadar birbirinden
fiziksel olarak ayirmak gerekir. (mümkünse farkli diskler, degilse farkli
tablespace’ler kullanmak gibi)
Sort
(siralama) islemleri icin bir veya birden fazla temp (gecici) alanlar
tanimlanmalidir ( Oracle’da temp tablespace , Informix’te temp dbspace olarak
gecer)
Not:
Bir sistemdeki en yavas komponent Harddisk’ler oldugu icin (mikroislemci ve
hafizaya gore) veritabaninin fiziksel
dagilimi da cok büyük önem arz etmektedir.Hatta bilgi Giris/Cikis (I/O) islemini
hizlandirmak icin RAID (parallel okuma özelliginden yararlanmak icin )
sistemleri kullanilir.
Kagit
üzerinde olusturulan veritabani alanlari, tablolari, indeksleri, viewlari ,
kullanicilari ve yetkilendirmeleri olusturmak icin genelde bir program (******)
yazilir ve bu program calistirildiginda sirayla bunlar olusturulur.
Bu
program mantiksal kod olarak genelde su sekildedir :
-veritabani
olusturma
-depolama
alanlari tanimlama
-kullanici
ve yetkilerini tanimlama
-tablo,
indeks, view, vs objeleri olusturma
Bu
program ayni veritabani modeli baska bir bilgisayara kurulacagi zaman cok büyük
kolaylik saglar.
Veritabani baslatma /durdurma
Veritabani
baslatma/durdurma islemi önemli bir konudur, özellikle de durdurma islemi
verilerin bütünlügünün saglanmasi acisindan cok önemlidir.Cesitli durdurma
yöntemleri vardir :
Veritabanina
bagli bütün oturumlarin kendiliginden sona ermesini bekleyen durdurma
(gracefully shutdown)
Veritabanina
bagli bütün oturumlar durdurma komutu verildikten hemen sonra sona erdirme
seklinde durdurma (immediate shutdown)
Bir de
veritabani processlerini hemen sona erdiren durdurma ( abort shutdown)
Durdurmanin
sekli , asil veritabani baslatilirken önem arz ediyor.Her baslatma isleminde
veritabani sunucusu yarim kalan islerin olup olmadigini kontrol eder (fast
recovery). Cünkü yarim kalan islemler (transaction) gerektiginde geri aliniyor
(commit görmemisse ,rollback) gerektiginde de veritabanina isleniyor (commit
görmüsse, rollforward).Bu sekilde veritabanindaki verilerin bütünlügü saglanmis
oluyor.
Bir de
bazen bilgisayarin (veritabaninin üzerinde calistigi sunucu ) yeniden
baslatilmasi sirasinda (reboot) veritabaninin otomatik olarak baslatilmasi
isteniyorsa , bu islemi yapan ufak bir program yazmak gerekebiliyor.
Kullanici ekleme ve yetkilendirme
Veritabaninda
yapilan islemler cok cesitli olabildigi icin mutlaka belirli yetkileri olan
kullanicilar tanimlanmalidir.Veritabani yazilimlari genellikle kendi kullanici
tanimlama ve yetkilendirme sistemine sahiptir.Veritabanini sahibi onu olusturan
kisidir ve yetkilendirmeyi de bu kullanici yapar.
Yetkilendirme
cesitleri veritabani yazilimina baglidir , ama genellikle tablo bazinda, okuma,
yazma, silme ve kayit ekleme , tablo olusturabilme, indeks ekleme islemleri her
veritabani yaziliminda mevcuttur. Bütün kullanicilarin sinirsiz yetkiye sahip
olmasini , özellikle de büyük veritabanlarinda bekleyemeyiz herhalde.
Veritabani yedekleme/yedekten geri dönme (backup&recovery)
Veritabaninda
olusabilecek hatalar (bug) , yanlislikla silinen kayit ya da tablolar,
donanimsal hatalardan kaynaklanan (genelde harddisk) problemler, yangin gibi
felaketler veritabanindaki bilgilerin ya bozulmasina ya da tamamen kaybolmasina
yol acabilir. Tabi bu istenmeyen bir durumdur ve de her gün olan bir olay degildir.
Veritabanindaki bilgilerin degeri tasarlanacak olan yedekleme startejisini
büyük ölcüde belirleyecektir. Yedekleme stratejileri cok cesitlidir ve bu
konuda veritabani yazilimlari kendi yedekleme programlarini sunmaktadir.
Alinabilecek önlemler ya da yedekler genelde su sekilde siralanabilir :
-Veritabanindaki
degisikliklerin bire bir baska bir sunucuya iletilmesi (replication, cluster
gibi cözümler)
-Veritabaninin
bulundugu diskleri aynalamak (mirroring yani RAID sistemleri).
-Düzenli
araliklarla veritabaninin yedeklenmesi (baska bir diske, ya da bant aygitina
(tape device)). Buna genelde export deniliyor.
-Tablo
bazinda ASCII formatinda yedek almayi saglayan veritabanlarinda , önemli
tablolari düzenli araliklarla yedeklemek.
Gelisen
tekonolojiyle birlikte veri kaybini önleme yazilim ya da donanimlari hizla
cogalmaktadir.
Bazi
büyük veritabanlari (Terabyte’lar seviyesinde) yedeklemek günlerce süreceginden
sadece donanim olarak güvenlik önlemleri aliniyor. Cünkü yedegi günler süren
bir veritabanini yedekten geri dönmek (recovery) daha fazla zaman alacagi icin
cok kritik veritabanlari yedeklemeyi ya ek bir sunucuyu replication olarak ya
da diskleri gerektigi kadar aynalayarak gerceklestirmektedirler.
Veritabani performans ayarlamasi (
performance tuning)
Her
veritabani baslatilirken okudugu bir konfigurasyon dosyasi (oracle’da
init
Örnegin
zaman icinde kullanici sayisinin ya da veri giris/cikisinin artmasiyla birlikte
kullanacagi kaynaklar da artacagindan gerekli parametreleri degistirmek
gerekir.
Tabi
her parametrenin kriterleri vardir. Bu kriterleri veritabanindaki sistem
tablolarindan okuyarak anlamli bir sekilde gösteren hazir yazilimlar oldugu
gibi bu tür programlar kolaylikla veritabaniyla haberlesecek bir programlama
diliyle programlanabilir.
Veritabani tablo-/indekslerin büyüme kontrolu
Veritabani
tablo ya da indeks eklerken veritabanindan ilk basta tahsis edecegi miktar
(initial size) ve bu alan dolduktan sonra tahsis edecegi miktar (next size)
belirtilebilir. Belirtilmezse veritabaninin default olarak verdigi miktar
(genelde 8 Kbyte) kullanilir. Tablolar ilk basta bos olarak olusturulacagi icin
bunlar fiziksel olarak yanyana olacaklardir ve kayitlar eklendikce bunlar
büyüyeceklerdir.
Seklin
tamamininin harddisk oldugunu varsayarsak icindeki tablolarin büyüdükce rasgele
yerlerden alan tahsis ettigini görüyoruz.Bu kutularin her birine extent
deniliyor ve istenmeyen bir durumdur. Bir tabloya ait bütün alanlarin toplu
hale getirilmesi performans acisindan cok önemlidir, en yavas donanim olan
harddisk kafasinin bir tablonun bütün kayitlarini okumasi icin mümkün oldugu
kadar az hareket etmesi gerekir.Bundan dolayi tablo ilk olusturulurken
özellikle kayit sayisinin cok arttigi tablolarda büyük bir alan tahsis etmemiz
gerekir. Zamanla tablolarin bu sekilde dagilmasi olayina “fragmentation” ,
tablolarin daginik halden toplu hale getirilmesine de “reorganisation” ya da
“defragmentation” denir.
Konuyu
toparlayacak olursak olusabilecek hatalari önceden gören ve ona gore tedbir
alinmasi gerektigi icin, veritabani yönetiminin cok planli yapilmasi
gerekir.Veritabani yönetimini kolaylastiran hazir yazilimlar vardir.Bunlar genelde windows tabanli görsel uygulamalardir
ve veritabani sunucusunu genel hatlariyla gözlemle icin faydalidir.Bazi
gelismis olanlarinda veritabani , tablo, indeks, kullanici olusturma gibi
islemler cok daha kolay bir sekilde yapilabilmektedir.Oracle yazilimiyla
birlikte gelen “Oracle Enterprise Manager” , Postgrsql icin PgAdmin , Informix
icin Informix System Administrator (ISA) bu tür yazilimlara örnektir.
Verinin
degerine gore yedekleme stratejisi bir kacinilmazdir cünkü yedegin önemi ancak
ihtiyac duyuldugu zaman ortaya cikar.
0 yorum yazılmıştır