Sayfalar

25 Mayıs 2012 Cuma

RDBMS ve ORACLE

Merhaba Arkadaşlar..

Bu yazıda çok kullanılan günümüz veritabanı terminolojilerinden bahsetmeye çalışacağım.

Bilindiği üzere günümüz gelişmiş veritabanı sistemleri ortaya çıkmadan önce veriler ilkel dosyalama mantığıyla dosyalanırdı. Bu verilere erişimde büyük sıkıntılar ortaya çıkarmaktaydı. Her ne kadar bu kayıtları düzenlemek için çeşitli indexleme metodlarına (sıralı erişimli, doğrudan erişimli, indeksli erişimli) başvurulduysa da bu istenen verimi elde etmeye yaramamıştır. Bunun başlıca sebebi saklanması gereken veri miktarının artması ve artan bu verilere erişimin ve bu verileri düzenlemenin zorlaşmasıdır. Bu nedenlerden dolayı veritabanı yönetim sistemlerine ihtiyaç duyulmuştur.



Veritabanı: Düzenli bilgiler topluluğu olarak tanımlanır. Bu verilerden kasıt; düzenlenebilir, erişilebilir, yönetilebilir ve güncellenip taşınabilir olan verilerdir.

Şema: Veritabanında kullanılan verilerin nasıl modelleneceğine dair bir kavramdır. Günümüzde birden çok veri modelleme kavramı mevcutken en yaygın ve günümüzde tavsiye edilen modelleme; ilişkisel modellemedir. Bu modellemede veriler tablolarda saklanır ve tablodaki satırlar kaydın kendisini sütunlar ise bilginin türünü belirtir. Bu modelin dışında kullanılmış olan bazı modeller şunlardır;

  • Hiyerarşik Veri Modeli: IBM tarafından geliştirilmiştir ve veriler bir ağaç veri yapısında saklanır.
  • Ağ Veri Modeli: Veriler ağaçlardan daha gelişmiş bir model olan graf veri yapılarında saklanır.
  • Nesneye Dayalı: İlişkisel veri modelinden sonra geliştirilmiştir. Çok yaygın olarak kullanılmamasına rağmen bazı veritabanı yönetim sistemleri ilişkisel model ile birlikte bu modelin de bazı özelliklerini kullanmaktadır. 
Veritabanı Yönetim Sistemleri(DBMS): Veritabanı oluşturmak, saklamak, çoğaltmak, güncellemek ve en önemlisi yönetmek için kullanılan yazılımdır. 

Bir veritabanı organizasyonunda birden çok aktör rol almaktadır. Bunlara kısaca değinirsek;
  • Sistem Mühendisleri: Donanım ayrıntıları, işletim sistemi ayarlamaları gibi daha alt düzey ayrıntılarla ilgilenirler.
  • DBA: Veritabanı tasarımı, uygulama geliştiricileriyle ortak çalışma, denetim, bakım, yedekleme, erişim, felaket kurtarma çözümleri gibi pek çok sorumlulukları mevcuttur.
  • Uygulama Geliştiricisi: Veritabanında bulunan verilere ihtiyaç duyulan biçimde erişim için rutin olarak kullanılması gereken yazılımlar geliştirirler.
  • Kullanıcılar: Veritabanında bulunan verilerle anlık sorgulama işlemleri ve raporlama ve veri girişi işlemlerini gerçekleştiren aktördür.
Günümüzde yaygın olarak kullanımda olan veritabanı yönetim sistemlerine örnek verecek olursak; MySql, DB2, ORACLE, MS Sql Server, Postgre SQL, Progress, Informix, Microsoft Access diyebiliriz.

Fiyat, veri işleme, güvenlik v.b. kriterlere göre bu sistemlerden herhangi biri tercih edilebilir. 

İlişkisel Veri Tabanı Yönetim Sistemleri(RDBMS): Büyük miktardaki verilerin güvenli bir biçimde saklandığı veritabanı yönetim sistemidir. Bunun yanı sıra bilgilere erişim son derece hızlıdır ve bilgiler tutarlı ve bütünlük içerisindedir(bir tablodaki veriye ait bilgiler güncellenirse aynı bilgiler diğer tabloda da güncellenir). Bu tarz sistemlerin diğer özelliği ise veritabanına aynı anda birden fazla erişimi mümkün kılmasıdır.

Tüm bu açıklamalardan sonra bir RDBMS olarak ORACLE'a bir göz atalım;

ORACLE DBMS yukarıda bahsedilen tüm özelliklerin yanı sıra aşağıda listelenen özellikler ile de şirketlere cazip gelmektedir;
  • Hiç kapanmadan çalışabilmesi
  • Sınırsız tablo kullanımına imkan vermesi
  • Aynı anda on binlerce kullanıcıya hizmet verebilmesi
  • Çok büyük miktardaki verileri güvenli olarak saklayabilmesi
  • Bilgi tutarlılığını veritabanı düzeyinde sağlayarak kod yazımını azaltması
  • Her işletim sistemi ve iletişim protokolüne uyum sağlıyor olması
  • Yüksek güvenli yapısı (izinsiz girişleri engelleme)
Görüldüğü gibi en yüzeysel olarak bakıldığında ORACLE tercih edilmek için pek çok özelliğe sahip. Zaten bu şekliyle dünyanın en güçlü ve en güvenilir veritabanı olarak kabul görmektedir. Tabi ki bu özelliklerden güvenilirlik kurumsal şirketleri kendine çekmektedir. Veriler tablolara kaydedilirken veritabanı düzeyinde şifrelenerek korunurlar. Bu hem verilere erişimi güvenli hale getirir, hem de veritabanına ekstra bir yük getirmez.

ORACLE'DA BAŞKA NELER VAR?
Bilindiği üzere ORACLE DBMS ürününün yanı sıra bu ürünle birlikte bir takım kullanıcı araçları da sunar. Bunlar büyük sistemlerde veritabanına kolay erişim ve kolay yönetim için gerekli olan araçlardır. ORACLE DBMS Server üzerine kurulması gereken ORACLE şirketinin ana ürünüdür( istenirse bu yan ürünler de Server üzerine kurulabilmektedir.). Diğer yan ürünler Client'lar üzerine kurularak Server ile iletişim kurarlar ve verilere erişim sağlarlar. Bu ürünlerden bazılarını inceleyelim;
ORACLE RDBMS: Oracle'ın ana ürünü olup en son 11GR2 versiyonu geliştirilmiştir.
Oracle Uygulama Geliştirme Araçları: Oracle için görsel uygulamalar geliştirmeyi mümkün kılan bu araçlardan
  1. Form Builder: Kullanıcıya sunulan görsel arayüz tasarımı (formlar)
  2. Report Builder: Veritabanındaki veriler ile raporlar oluşturur
  3. Procedure Builder: Çok fazla kullanılacak kod parçalarının oluşturulmasını sağlar
  4. Schema Builder: Veritabanı nesnelerinin, tablolar, görüntüler, tablolar arası ilişkiler v.b. varlıkların oluşturulmasını sağlar.
SQL*PLUS: Veritabanında sorgulama yapmak için kullanılan bir üründür. Oracle'ın PL/SQL sorgualama dilini de desteklemektedir. PL/SQL standart SQL diline bazı özelliklerin eklenerek geliştirilmesiyle ortaya çıkmış bir sorgulama dilidir. İstemci-Sunucu ortamları tasarlamaya olanak sağlar. 
NET8: Veritabanı işlemlerinin gerçekleşmesi için gerekli olan ağ ürünüdür. Farklı makinelerden sunucuya dolayısıyla veritabanına bağlantının gerçekleştirilmesini amaçlar. Bunun sonucunda veri alış-verişi sağlanır. Ağdaki tüm bilgisayarlara kurularak istemci-sunucu haberleşmesini sağlar. Bu sayede her bilgisayar için ayrıntılı soket programlama ve ağ konfigürasyonlarının gerçekleştirilmesi yükünden  kurtulunmuş olur.
Bu bağlantının sağlıklı olarak sağlanması için ORACLE mimarisinde sunucu ağ servis adı ve listener yani dinleyicinin varlığına ihtiyaç duyulur. Yine yan ürün olarak gelen NET8 Assistant bunu gerçekleştirmemizi sağlar. Buradan arzu edilen protokole göre bilgisayar adı ve port numarası belirlenir. Tüm bu konfigürasyon bilgileri bir dosyada saklanarak korunur.
SQL*NET: NET8 için geliştirilmiş bir yan üründür. Sadece sunucu bilgisayarda yapılan konfigürasyonla bağlantı sağlanamaz. Bunun istemci ayağındaki konfigürasyon işlemi bu program vasıtasıyla sağlanır. Veritabanı takma ismi, ana bilgisayar adı (server) v.b. ayarlar yapılandırılır.

Oracle sistemi yüklenirken farklı şekilde yükleme biçimleri mevcuttur. Örneğin Server için kurulum yaparken farklı bir ürün yüklenirken, istemci için veritabanına bağlanarak işlem yapmayı sağlamak için farklı bir kurulum ürünü mevcuttur. Yine programcı için geliştirme araçlarının bulunduğu bir yükleme ürünü de mevcuttur.

Tüm bunları okuduktan sonra pek çoğumuz ORACLE'ın büyük bir dünya olduğunu anlamışızdır. Her bir programa hakim olmak bu dünyada size güç kazandıracaktır. Fakat bunu yapabilmek için öncelikle ORACLE'ın fiziksel mimarisine de hakim olmak gerekir. Umarım bu mimari yapıya da önümüzdeki yazılarda değinebiliriz..

Hoşçakalın!


Hiç yorum yok:

Yorum Gönder