12 Nisan 2008 Cumartesi

Veritabanı Yöneticisi Tipleri

Veritabanı Yöneticisi Tipleri
Veritabanı yöneticileri; veri, veritabanı ve veritabanı yönetim sisteminin tasarlanması, oluşturulması, bakımı ve izlenmesi gibi görevleri yerine getirir. En yaygın veritabanı yönetici tipleri asagıdaki gibidir.

Sistem Veritabanı Yöneticisi
Bir sistem veritabanı yöneticisi, tamamen veritabanının sistem kısmıyla yani teknik boyutuyla ilgilenir. Bir sistem veritabanı yöneticisin görevleri asagıdaki gibidir.

· Yeni DBMS versiyonlarını kurmak ve bakımlarını saglamak
· Sistem parametrelerini ayarlamak ve belli bir değerde tutmak
· DBMS ile birlikte çalısan işletim sistemini, ağı ve transaction işlemlerini ayarlamak.
· DBMS için uygun veri depolayıcısını seçmek.
· DBMS’nin birlikte çalıştığı depolama aygıtlarını ve onların yazılımını yönetmek
· Veritabanı uygulamaları için gerekli olan herhangi bir diğer teknolojilerle aracı olmak.
· Üçüncü parti veritabanı araçlarını kurmak.

Veritabanı Mimarı
Veritabanı mimarları yeni bir veritabanının tasarlanması ve oluşturulması görevlerini yerine getirir. Veritabanı mimarı, sadece yeni tasarım ve geliştirme işine bakar. Veritabanı mimarı bakım, idare, ve kurulan veritabanları ve uygulamaların ayarlarına karışmaz. Veritabanı mimarı, yeni veya mevcut olan uygulamalar için yeni veritabanlarını tasarlar.

Bir veritabanı mimarının görevleri asagıdaki gibidir.

· Mantıksal veritabanı modelini olusturmak
· Mantıksal veritabanı modeli içerisinden fiziksel veri modeline dönüsümünü saglamak.
· Etkin veritabanları yaratmak için,verilerin belirli fiziksel karekterisliklerini belirlemek, indeksleri olusturmak ve veritabanı nesnelerini uygun fiziksel depolama aygıtlarında saklamak
· Verimli SQL ve uygun veritabanı tasarımını garanti etmek için gereksinim duyulan veri girişleri ve degişikliklerini analiz etmek
· Yeni veritabanları için yedek ve geri kurtarma stratejilerini belirlemek.

Veritabanı Analisti
DBMS de yaygın olarak çalısan diger bir görevli veritabanı analisttir. Bu kişiler için uygun bir pozisyon yoktur. Bazen veritabanı analistleri yardımcı veritabanı yöneticileri olarak, bazen veritabanı mimari olarak, bazen de veri analistci olarak adlandırılır. Hatta bazen bazı şirketlerde veritabanı yöneticisi yerinede direkt kullanılır.

Veri Modelcisi (Data Modeler)
Veri modelleyicisi genellikle bir veri yöneticisin altında çalısan sorumludur. Bir veri modelcisinin görevleri asagıdaki gibidir

· Bir veritabanı projesini olusturmak için gereksinimleri toplamak
· Veri gereksinimleri analiz etmek
· Mantıksal ve Kavramsal veri modelli projeler tasarlamak
· Ortak bir veri modelini yaratmak ve güncellestirmek

Uygulama Veritabanı Yöneticisi
Uygulama veritabanı yöneticisi, sistem veritabanı yöneticisinin karsıtıdır. Uygulama veritabanı yöneticisi, veritabanı tasarlanması üzerine ve belirli bir uygulama veya uygulamalar için gerekli olan veritabanlarının destek ve idaresine odaklanır. Bir uygulama veritabanı yöneticisi aynı zamanda veritabanı yönetim degişikliklerini yapabilir, sistem performansını ayarlayabilir veya yaygın kullanılan diger rolleri de yerine getirebilir. Uygulama veritabanı yönetisi, DBMS uygulamalarını ve veritabanı çevresi farklılıklarını her türlü özel ayarlarına kadar izler.

Görevlere Odaklı Veritabanı Yöneticisi(Task-Oriented DBA)
Büyük organizasyonlar bazen bir veritabanı yöneticisini belirgin bir görev üzerinde görevlendirir. Göreve odaklı veritabanı yöneticilerine bir örnek verecek olursak, organizasyonun veritabanlarının recoverylerini garanti altına almak için bir gününü bir yedek ve recovery adayan veritabanı yöneticisi.

Organizasyonların çoğu, odaklanmanın bu yönünü karşılayamaz, ama şartları uygun olduğu zaman, göreve odaklı veritabanı yöneticilerine, çok önemli görevler için bilgili özel bir takımının altında toplayabilir.

Performans Analizcileri
Performans analizcileri özel bir göreve odaklı veritabanı yöneticileri olarak sayılabilir. Performans analizcileri diger veritabanı yöneticilerinin görevlerine ortak alabileceği gibi daha çok veritabanın performansıyla veya performansla ilgili problemlerle ugraşır.

Bir performans analisti, ayrıntıları anlamalıdır, performans için SQL dan komutlar vermelidir ve performans için veritabanlarını tasarlayabilmelidir. Bir performans analisti, gerekli olduğu zaman DBMS ve sistem parametrelerinde uygun degişiklikleri yapabilecek ayrıntılı DBMS teknik bilgisine sahip olmalıdır.

Performans analisti, sistem veritabanı yöneticisi olamaz. Fakat performans analisti, belirgin bir programın performansı üzerinde degisiklikleri kolaylastırmak için, uygulama gelistiricilerine yardım etmek için onların kullandığı dilde uygulama geliştirme bilgisine sahip olmalıdır.

Veri Ambar Yöneticileri
Genis veri analizi yapmak için veri depolarını kullanan organizasyonlar bu verileri izlemek ve depolama çevresine ihtiyaç duyar. Veri ambar yöneticileri, farklı veritabanları arasında OLTP ve veri ambarlama desteği verebilen yetenekli veritabanı yöneticileridir. Bir veri ambar yönetiminde aşağıdaki maddelerin olması gerekir.

· Is zekası, sorgu ve raporlama araçları
· Sadece okunabilir erisimler için veritabanı tasarımı
· Veri ambarlama tasarımı (örnegin star schema)
· Veri ambarlama teknolojileri (örnegin OLAP)
· Veri transferi ve dönüştürme
· Veri niteliklerini çıkarma
· Veriyi yüklemek ve kaldırmak için uygun veri tipleri
· Özel Yazılımlar

Üretim ve Test
Kaliteli bir veritabanı yaratmak için iki çevre yaratılmalı ve desteklenmelidir. Bunlar üretim ve testtir.

10 Nisan 2008 Perşembe

Veritabanı Yöneticisinin Görevleri

Veritabanı Yöneticisinin Görevleri

Veritabanı yöneticisinin rutin bir şekilde yerine getirmesi gereken çesitli görevler vardır. Bu görevlere veritabanı tasarımı, performansı izleme ve düzenleme, veritabanına erişilebilirlik, güvenlik, yedek alma ve geri yükleme, veri bütünlüğünün sağlama, veritabanın konumu değiştirme sayılabilir.

Veritabanı Tasarımı
Veritabanı yöneticisi RDMS (İlişkisel Veritabanı Yönetim Sistemi) de veritabanı oluştururken, oluşturacağı veritabanının hem teorisini hemde belirgin uygulamasını bilmek zorundadır.
Veritabanı yöneticisi mantıksal veri modelini fiziksel veri modeline dönüştürebilir. Veritabanı yöneticisi istemci ve uygulama tarafından kullanılan veritabanını tasarlayabileme ve uygulayabilmelidir.

Performansı İzleme ve Düzenleme

Performans, veritabanının ayarlarıyla veritabanından beklenenlerin karşılığını almakla ilgili bir durumu gösterir. Yani donanım, yazılım ve ayarlamalar açısından yetersiz bir sistemden, hız ve daha fazla kapasite beklemek yanlış olacaktır. Veritabanı performansını etkileyen 5 faktor vardır.

Bunlar;
· Workload(İş Yükü)
· Throughput(Üretilen iş)
· Resources(Kaynaklar),
· Optimization(İyi hale getirme)
· Contention(Mücadele)
dır.

Workload(İş Yükü), DBMS de tanımlı istekleri tanımlar. Workload; online transaction,
batch job, ad hoc query, data warehousing(veri ambarlama), analytical queries(analitik sorgular) ve herhangi bir zamanda sistem tarafından çalıstırılan komutları içerir. Workload gün gün, saat saat, dakika dakika hatta saniye saniye çok şiddetli dalgalanabilir. Bazen de periyodik olarak dalgalanabilir.

Throughput, bilgisayar, donanım ve yazılımının toplam yeteneklerini belirler. Throughput, I/O hızı, CPU hızı, makinanın paralel verimliligi, sistem yazılımının ve işletim sisteminin etkinliğini içerir.

Sistem bazında donanım ve yazılım araçları resources(kaynaklar) olarak bilinir. Örnek olarak veritabanı çekirdegi, boş disk alanı, önbellek denetleyicileri sayılabilir.

Optimization, veriye etkin bir şekilde erişmek için sorgu maliyet formülleri ile veritabanı taleplerini analiz etme anlamına gelir. Bütün sistem tipleri optimization kullanabilir. Fakat ilişkisel sorgular DBMS’de birincil derede benzersiz oldugu için optimization benzersizdir. Yine de birçok faktör veritabanını en iyi sekilde kullanıcısını ulaştırmak için en verimli erişim
yolları yaratmaya ihtiyaç duyar. Örnek olarak SQL kodlama, veritabanı parametreleri, verimli bir sekilde programlama sayılabilir.

Belirli kaynaklar üzerinde iş yükünün yüksek olduğu zamanlarda contention oluşur. Herhangi bir kaynağı birden çok bileşen veya kişi kullandığı anda Contention oluşur. Örnegin aynı veriye iki kişinin güncelleme yapmaya çalısması gibi. Contention artığı durumlarda workload artar.

Performansı düzenleme ve birçok görev ve becerileri, veritabanlarında etkili bir şekilde yapabilmek için veritabanı yöneticileri gerekir. Bu beceriler uygun indeksleri oluşturmak, yeteri kadar tampon bellek oluşturmak, veritabanını ve uygulamaları izlemek, veritabanını yeniden düzenlemek olarak sayılabilir.

Kullanılabilirlik(Availability)
Kullanılabilirlik(Availability) ilk bileşeni DBMS’yi yüksek tutmak ve çalıştırmaktır. DBMS’nin hizmet dışı kalmaması için otamatik uyarılar olusturmak ve sürekli izlemek gerekir.

Bireysel veritabanlarının sürekli açık ve çalışır olması gerekir. Veritabanı yöneticisi karısıklıkları en aza indirger ve çakışmaların en az olmasını sağlar. Bir veritabanı yöneticisi, çakışmaları en aza indirmek için clustering(kümeleme) gibi teknolojileri kullanabilir.

Veritabanı Güvenligi ve Yetkilendirilmesi

Veritabanı tasarlandıktan ve programlandıktan sonra kullanıcıların veritabanında ki veriye erişmesi ve degiştirmesi gerekir. Ama kullanıcıların uygun olmayan veya yasak olan veriye erişmemelidirler. Kullanıcılar sadece izni ve yetkisi oldugu veriye erişip onu kullanabilmelidirler. Işte veritabanı yöneticileri uygun olan veriye kullanıcıların erişmesini saglar.

Veritabanı yöneticileri DBMS içerisinde güvenligi saglamak için, SQL(Structured
Query Language) içerisinden Grant, Deny, Revoke deyimlerini kullanır.

Güvenlik birçok veritabanı gereksinimleri için gereklidir. Bunlar;
· Veritabanı objelerini oluşturmak için. Bunlar databases(veritabanı), tables(tablo),
views gibi.
· Veritabanı objelerini düzenlemek için.
· Sistem Kataloguna erismek için.
· Tablo içerindeki verilere erişmek ve degiştirmek için.
· Kullanıcı tanımlı veri tipleri ve fonksiyonlar yaratmak için.
· Stored Procedure çalıstırmak için.
· Veritabanını durdurmak veya çalıştırmak için.
· DBMS parametrelerini ayarlamak veya düzenlemek için.
· LOAD, RECOVER, REORG gibi veritabanı yardımcı komutlarını çalıstırır.

Güvenlik bazı yollarla güçlendirilebilir. Örnegin olusturulmus bir view’e son kullanıcılar ve programcılar tarafından bir giriş blogu konulabilir.

Ayrıca veritabanlarına harici(herhangi bir programlama dilinden veya uygulamalardan)
güvenlik metodları da uygulanabilir.
Yedek Alma ve Kurtarma(Geri Alma)
Veritabanı yöneticisi herhangi bir sorun karşısında kurtarma bilgisine sahip olmalıdır. Sorun sistem sorunları veya program hatası olabilir. Bugün hemen hemen bütün sorunlar uygulama hataları veya kullanıcı hataları olarak karşımıza çıkmaktadır.

Yapılan, analist tahminleri, uygulama hatalarının 80%’inin, yazılım başarısızlıkları ve insan hatası yüzünden olduğunu gösterir. Veritabanı yöneticisi çıkan sorunlara en kısa zamanda müdahale edebilmelidir.

Genellikle veri kurtarmanın ilk tipi, büyük bir kapatmadan dolayı oluşan varsayılan kurtarmadır(recover to current). Bu sonuç yapılan en son işlemin veya güncel işlemin başarıyla gerçekleşmemesinden kaynaklanabilir. Geri alımı tamamlanıncaya kadar uygulamalar kullanılmazlar.

Diger bir kurtarma tipi Point-in-time recovery’dir. Point-in-time recovery genellikle uygulama düzeyi sorunlarla ugraşır. Bir Point-in-time geri alımını yapmak için, geleneksel teknikler belirgin bir Point-in-time oldugu sürece tüm iş yapmanın etkilerini kaldırır.

Transaction recovery üçüncü tipteki kurtarmadır. Transaction recovery, arıza süresi ve veri kaybı durumlarında kullanılan kurtarma modelidir. Böylece transaction recovery belirli bir esnada belirli işlerinin etkilerinin, veritabanından kaldırılmadan gerçekleşeceği bir uygulamadır. Bu yüzden ki bazen uygulama kırıcı olarak da başvurulur.

Geri alma’nın herhangi bir tipini hazırlamak için, Veritabanı Yöneticisi olarak verinin, yazılım, donanım, veya elle yapılan bir işlemde bir hata halinde kaybolmadığını garanti etmesi için stratejinin oldugu bir yedegi gelistirmeye ihtiyaç duyar. Bu strateji uygulanabilir bir işlem olarak(veritabanı için bir yedek dosya olarak kopyalar, / Geri alma planı günlügüne kaydeder) veritabanını dosyalarının kopyasını alır.

Veri Bütünlüğü

Bir veritabanı tasarlarken veri zarar görmemesi ve bozulmaması için verinin dogru bir biçimde girilip saklanması gerekir. Veritabanı yöneticisin bu işlemi yerine getirmek için bütünlügü DBMS’nin kurallarıyla(rule) yerine getirir.

Veri bütünlügünü, 3 bakış açısıyla saglayabiliriz. Bunlar fiziksel(physical), anlamsal(semantic), ve içsel(internal) olarak sayabiliriz. Fiziksel DBMS de veri tipleri ve alanları sayabiliriz. Veritabanı yöneticisi her bir tablonun her sütunu için uygun bir veri tipi seçer. Böylece o alan için uygun verinin girilmesi saglanır. Örnegin sütunun veri tipi integer olarak tanımlanmışsa, o sütuna sadece nümerik bilgiler girilmesi sağlanır. Kullanıcı metinsel veya nümerik olmayan bir bilgi girdiğinde veritabanı hata üretir. Çogu ilişkisel DBMS türleri asagıdaki constraint(kısıt) tiplerini destekler:

Referential constraint : Belirli sütunlarla tablolar arasında ilişki kurmak için tanımlanır. Herhangi bir sütuna girilen verinin baska bir tablodaki diger bir sütunu etkilemesidir.

Unique constraint : Bir tablo içerisinde varolan bir sütunun içerisine benzersiz verilerin girilmesini sağlar. Örnegin, Ögrenci adında bir tabloda Ögrenci No diye bir sütunumuz olsun. Ögrenci No sütunun Unique (benzersiz) olarak belirlediginizde aynı Ögrenci No nun girilmemesini sağlarsınız.

Check constraint : Bir tablonun sütunlarında veya bir sütununda girilen bilgilerin kısıtlanmasını sağlar. Örnegin Ögrenci adında bir tabloda Cinsiyet diye bir sütunumuz olsun. Bu sütuna cinsiyeti sadece Bay veya Bayan olarak yazdırmak istiyorsak bunun için bir Check constraint tanımlamak gerekir.

Anlamsal (semantic), kontrol olarak da tanımlanma olarak da diğerlerine göre daha zordur. Anlamsal (semantic) bütünlüğe örnek olarak veritabanındaki verinin kalitesini verebilirim. Veritabanında belirli olan fiziksel bütünlük yada kısıt tanımları herhangi bir veriyi sadece depolamak için yeterli degildir. Veri kalitesini garanti etmek yerleşimde olması için yordam ve pratik ihtiyacıdır. Örnegin, kayıtlı olan müşterinin 25%’inde yanlış bir adres veya telefon numarası içeren bir müşteri veritabanı, yetersiz kalitesiyle bir veritabanının bir örnegidir.

Bütünlügün son yönü, iç DBMS oluşturur. DBMS iç bütünlüğünü, asağıdaki çözümlerle sağlar.

Index Tutarlılığı. Bir index veritabanında ekstradan yer kaplayan ve veritabanı içerisindeki tabloların içerigini düzenli bir yapıda tutan yer göstericilerdir. Indexler, herhangi bir veriyi sorgulararken tüm tablonun içerigini taramaktansa gerekli verilerin taranmasını saglayarak performansı artırır.

Pointer Tutarlılığı. Bazen büyük miktardaki çoklu nesneleri aynı fiziksel ortamda saklamayız. Bu yüzden büyük miktardaki bu verileri saklamak için Pointer’a ihtiyaç duyarız.

Backup Tutarlılığı. Çogu DBMS ürünleri bazen recovery için etkin olarak kullanılamayan gereksiz veritabanı yedekleri alır. Bu senaryo bu eylemleri tanımak ve düzeltici hareketleri almak için gereklidir.