Veri Tabanı (Database)

Veri TabanıBilişim işiyle uğraşan herkesin duyduğu, aslında satış, pazarlama, depo – stok departmanlarında çalışanlarının ve iş analistlerinin çokça kullandığı bir uygulamanın genel adı. Genel adı olarak söylüyorum çünkü alternatif ve özellikler bakımından  çok fazla çeşidi bulunmakta. Nedir, ne değildir, türleri basit olarak nedir bunlara biraz değinmeye çalışacağım.

Veri Tabanı Nedir?

Veri tabanı;

  • verilerin güvenli olarak saklanmasına,
  • verinin ilişkiselliğinin korunmasına,
  • verinin sorgulanabilmesine,
  • veri üzerinde manipülasyon yapılabilmesine,
  • kullanıcı ve bilgisayar programları tarafında yönetilmesine,

olanak sağlayacak yapıda olan bilgisayar programlarıdır. Veri tabanında veriler belirli bir formatta saklanmaktadır. Bunun sebebi, büyük miktardaki verinin hızlı bir şekilde sorgulanabilmesini ve maniple edilebilmesini sağlamaktır.

Veri tabanlarının; uygulamalar ve kullanıcılar tarafından kullanılabilir olması için Veri Tabanı Yönetim Sistemi (DBMS) adı verilen bir sistem gerekmektedir. Bir veri tabanı kurmak ve onu yönetmek istediğinizde bir DBMS kurmuş olursunuz.

Veri Tabanı Ne Değildir?

Veri tabanları veya Veri Tabanı Yönetim Sistemleri; temel olarak verilerinizin saklanmasının ötesinde bir yeteneğe sahip değildir.

Veri tabanı; kurduğunuz zaman sizin için çok mükemmel ekranlar ile verilerinizin yönetimini sağlayacağınızı düşünmeyiniz, olabildiğince basit bir tablo görünümü üzerinden işlem yapabilir durumda olacaksınız. Microsoft Office Excel uygulaması bir veri tabanı olarak kullanılabiliyor ancak onunda yapabileceklerinin bir sınırı var. 🙂

Veri tabanları; verilerinizi sadece saklamaktadır ve üzerinde yapılan bazı işlemlerin kayıtlarını tutmaktadır (log). Verileriniz kaybolduğunda veya istenmeden silindiğinde bunları geri almak için yedekleme (back-up) alıyor olmanız gerekmektedir. Alınan yedeklerin periyotu bir hata veya sorun anında elinizdeki verinin güncelliğini ifade edecek en önemli noktadır.

Veri tabanları veya veri tabanı yönetim sistemleri; sizin için bir hesaplama veya iyileştirme yapmaz. Sadece size verilere daha hızlı erişim sağlayacak (index) yapıları kullanma imkanı verir. Bu yapıları uygun şekilde tanımlamak ve bakımlarını yapmak Veri Tabanı Yöneticisi (DBA) görevindeki kişiler tarafından yapılır. O yüzden veri tabanında bir verinin kullanıma hazır tutulması ciddi emek gerektirmektedir.

Veri tabanları; verilerin saklanmasını Hard Disklerde, işlenmesini hızlı olabilmesi için (genellikle) Memory üzerinde yapar. Veri saklama alanı kalmadığında sistem otomatik olarak diskte alan açmaya çalışmaz ve kendisini sonladırabilir. Bu yüzden periyodik kontrol edilmesi önemlidir. Memory’ in dolması ulaşmak istediğiniz verilerin yavaş gelmesine ve bazı durumlarda gelmemesine sebep olabilir. Bu noktada yapılacak olan en optimum çözüm verinin parça parça getirilmesini sağlamaya çalışmaktır.

Veri tabanı dendiğinde artık nelerin aklınıza gelmesini veya nelerin gelmemesi gerekmesi gerektiğini daha rahat hayal edeceksiniz. Halk arasında veri tabanı ismini taşıyan uygulamaların bir çoğu verilerin bir yerden alınıp işlenip kullanıcılara gösterilmesini ifade etmektedir ama aslında bu uygulamalar genel olarak Karar Destek uygulamaları olarak sınıflandırılır.

Veri Tabanı Türleri Nelerdir?

Bu kısım biraz detaylı ve uçsuz bucaksız olabilecek noktada geniş bir konu aslında. Ama basit ve herkesin anlayabileceği şekilde değineceğim.

Her bilgisayar yazılımı veya bilgisayar sistemi bir ihtiyacın giderilmesi için ortaya çıkmıştır. Veri tabanları da; verilerin belirli bir formatta saklanması ve kolay erişilebilir olması için çıkmıştır.

Flat File Database

İlk veri tabanları, hala Mühendislik Fakültelerinin Bilgisayar ve Yazılım Mühendisliği öğrencilerine öğrettiği gibi tek bir dosya içerisinde bütün verilerin bulunduğu şekildeydi. Hala bazı basit uygulamalar (adres defterleri, linux şifre dosyası, vb.) bu tarzda veri tabanlarını kullanmaktadır.

Bu veri tabanlarının en büyük sıkıntısı veri dosyası büyüdüğünde istenilen verinin bulunmasının çok uzun sürmesi. İstenilen bir veriyi bulmak için uygulanan yöntem ise tamamen dosyanın baştan aşağı taranması. Bu davranışa File Scan veya Table Scan deniyor. Şu anda kullanılan üst düzey veri tabanlarında dahi olan bir kavram. 🙂

Ağaç YapısıBir sonraki versiyonda veri tabanları için belirli veri yapılarının kullanılması düşünülmüş. Bunlar aramaların hızlandırılması için düşünülmüş yapılar (indexler). Veri yapılarını az çok biliyorsanız ağaç yapılarını duymuşsunuzdur. Duymayanlar için basitçe açıklamaya çalışayım.

Ağaç yapıları verilerin değerlerinin büyüklük ve küçüklüğüne göre kabaca sıralanmasını sağlayana yapılardır. Ağaç yapılarında veriyi tutan yapılara düğüm (node) denir ve her düğümünü ağacın türüne göre köşeleri (edge) vardır. Ağaç yapılarının başlama düğümüne özel olarak kök (root) denir.

En basit ağaç yapısında kök değerinden büyük olan değerler soldaki köşelere doğru dallanır, küçük olan değerler sağa doğru dallanır. Bu sayede veri arama sürenizi her adımda yarı zamana indirmiş olursunuz. Veri yapıları dersini aldığım hocalarım bu anlatıma burun kıvırabilirler ama en basit anlatımın bu olduğunu düşünüyorum. 🙂

Ağaç yapısını anladığımıza göre basit olarak nasıl arama yaptığını da anlatayım. Verilerinizin bir alanı için tanımladığınız indeks bilgilerini ayrı bir dosya da saklıyor. Bu dosya içinde basit olarak verinin değeri, indeks ağacındaki yeri ve verinin esas verilerin saklandığı dosya içinde yeri şeklindedir. Arama işlemi yapıldıktan sonra esas veri dosyasından verinin tüm değeri getirilmektedir. Bu işleme Key LookUp denir. Excel kullanan kişilerin çokça kullandığı VLOOKUP (Düşey Ara) ve HLOOKUP (Yatay Ara) fonksiyonlarına benzer bir iş yapılmaktadır.

İndeks kullanan veri tabanlarında dikkat edilmesi gereken nokta veri sorgulaması yapılacak alanların indekslenmesi. Bu yüzden uygulamanın kullanım tarzı bile bu versiyondaki uygulamalarda performans için önemli bir kriterdir.

Flat File Database Normalization
Veri tabanı evrimine devam edelim. Verilerin işlenebilmesi veya işlenmiş verilerin dönüştürülmesi için saklanması ihtiyacının artmasının yanı sıra, verilerin aralarındaki ilişkilerinde artması, verilerin tek bir dosyada tutulamayacak kadar çok olması bazı temel değişimlere gidilmesine neden oldu. Bunların en önemlisi verilerin sadece ilgili olduğu dosyada saklanması… Bu işleme verinin Normalize edilmesi deniliyor (hepsinin bir arada olmasına da Denormalize deniliyor). Verinin normalize edilmesi başlı başına bir konu değinmeyeceğim ama temel mantığı verinin tekrarının azaltılmasını sağlaması ve verilerin bir biriyle ilişkili hale gelmesini sağlaması. Bu şekildeki modellemeler başka ihtiyaçlar ve başka sorunları ortaya çıkardı ancak detaylarına girmek temel bilgiden ileri gideceğinden değinmiyorum.

Bu gelişimden sonra veri tabanlarının artık uygulamalar özel olarak değilde, ortak bir dil konuşması konusunun gündeme gelmesiyle ortak sorgu dilleri ortaya çıkmaya başladı. Bu sorgu dillerinin ortaya çıkması veri tabanlarının daha fazla kullanılmasına ve ortak yapıların geliştirilerek veri tabanı yönetim sistemlerinin sahip olduğu sorunların ortak olarak çözülmesini sağladı.

Veri tabanlarının evrimleşmesi sürecinde; verilere hızlı ulaşma  noktasında geliştirilen yapılar ve var olan yapıların arkasında çalışan veri yapılarının değiştirilmesi günümüzde kullanılan veri tabanlarının çok daha performanslı olarak çalışmasını sağlamaktadır. Bunların detaylarını daha sonraki yazılarda dilim döndüğünce anlatmaya çalışacağım. 🙂

Temel olarak veri tabanı aslında verileri saklamak ve ihtiyacınız olduğunda bulmak için kullandığınız bir uygulama. Bu kadar şeyi anlatmama gerek bile yoktu değil mi 😀 Dilim döndüğünce temel bilgileri halk arasında anlatılabileceği şekilde anlatmaya çalıştım.

Yorumlayın