Veritabanı Nedir, Nereden Çıktı?

Veritabanı Nedir, Nereden Çıktı?

Konumuza ilk önce bir soru sorarak başlamak istiyorum. Veritabanına neden ihtiyacımız var?

Bence bir şeyin nedeni, o şeyin nasıl çalıştığından çok daha önemlidir. Çünkü bir şeyin nedenini bilmek o şey hakkında fikir yürütmenizi, mevcut olanların üzerine bir şeyler koyabilmenizi, eleştirebilmenizi ve mükemmele ulaşmaya çalışmanızı sağlar.

Bu yüzden öncelikle veri tabanının tarihinden başlamak istiyorum. 1970 ve öncesinde bilgiler dosyalar halinde arşivlerde saklanırdı. Devletlerin arşivleri, yapılan analizler, suç dosyaları ve daha birçok şey belli bir düzendeki arşivleme yolu ile saklanır, daha sonra lazım olduğunda da arşiv görevlileri tarafından bulunurdu. Arşivlerin boyutu büyüdükçe arşivleme yapıları da gelişti ve arşivde saklama düzeni ile alakalı algoritmalar geliştirildi. Örneğin bugün kütüphanelerde de kullanılan baş harflere göre arşivleme algoritmasını FBI’ın da kurucusu olan Edgar Hoover geliştirdi. Özellikle suçla mücadelede arşivlere kolay ulaşılması gerekiyordu. Eğer aradıkları azılı bir suçluysa nispeten Amerika’nın tüm eyaletlerinde tanındığından arşive geç ulaşmak belki sorun değildi; ama çoğunlukla bir suçluyu tespit etmek eyaletler arasında bir problemdi, FBI ve CIA için bile bu böyleydi.

Bu soruna bir çözüm olabilmesi için CIA, 1970’li yıllarında başında “Kahin” yani orijinal adıyla Oracle adını verdikleri bir proje tasarladı. Bu proje ile bilgisayar ortamında kayıt tutulabilecek bir program yazdırmak istediler. Hedeflenen şey ise dünyanın herhangi bir yerindeki CIA ajanı bu programa anahtar kelimeleri girdiğinde, girilen kelimelere göre sonuçları listelemekti. Bugün oldukça basit gözüken bu durum, o dönem için rüyaları süsleyen bir hayal niteliğindeydi. Sonunda üç tane programcıya “Kahin” veritabanı yazdırıldı ve faaliyete geçti. Her ne kadar sonra CIA programın işe yaramadığını söyleyip programcıları kovsa da bu önemli bir başlangıç oldu ve veritabanı hayatımıza girmeye başladı.

Şimdi bu kısa tarihçeden yola çıkarak düşünürsek “Neden Veritabanına İhtiyacımız Var?” sorusunun cevabını gözümüzde canlandırmak daha kolay olacaktır. Eğer veritabanları olmasaydı her şeyi büyük dosyalar halinde arşivleyecek, ihtiyacımız olanları bulmakta zorlanacaktık. Elbette bunların saklanması ise daha büyük bir sorun olacaktı. Tabii uzun süre bekleyen kağıtların nemden etkilenmesi, yazının mürekkebinin silinmesi gibi yan sorunları da düşündüğümüzde ne kadar çok sıkıntıyla baş etmek zorunda kalacağımızı düşündüğümüzde “iyi ki veritabanı varmış” diyebiliyoruz.

Veritabanı Nedir?

Veritabanının tarifini yapacak olursak, kısaca bilgiyi alan, işleyen, saklayan ve tekrar çıktı veren programlara genel olarak veritabanı diyoruz. Örneğin bugün çok kullandığımız yazılımlardan biri olan Excel bu tarif için örnek kabul edilebilir.

Bugün veritabanı dediğinizde akıllara gelen genelde SQL Server, Oracle, DB2 gibi veritabanı yönetim sistemleridir. Bu sistemler yalnızca veritabanı değillerdir, bu yüzden veritabanı kelimesinin tam karşılığı olarak kullanmak doğru değilse de oluşan algı budur.

Veritabanı Yönetim Sistemleri

Veritabanı, amaca uygun düzenlenmiş veriler topluluğudur. Veritabanı hizmetlerini sağlamak üzere geliştirilen uygulamalara ise Veritabanı Yönetim Sistemi (VTYS – DBMS) denir. Bir VTYS şu standartları sağlamak zorundadır:

  • Verilere hızlı ve standart erişim
  • Veri tutarlılığının korunması
  • Veri ile ilgili işlemlerin belli bir hızın üzerinde gerçekleştirilebilmesi
  • Çoklu kullanıcı taleplerine cevap verebilmesi
  • Verilerin tek bir merkezden yönetilebilmesi
  • Veri kaybına karşı önlem alınabilmesine olanak sağlaması

VTYS’ler farklı yaklaşımlarda geliştirilebilmektedir; fakat günümüzde en yaygın kullanılan veritabanı yaklaşımı İlişkisel Veritabanı Modelidir (Relation Database Model).

İlişkisel veritabanı modelinde verilerin işlenmesi transaction temellidir. Transactionların stabil çalışması ve veri bütünlüğünün korunması için ACID standartına sıkı sıkıya bağlıdır. ACID’in açılımı şöyledir:

Atomicity: Bir transaction sırasında bir işlemin başarısızlığı tüm işlemleri etkiler ve tümü başarısız sayılır.

Consistency: Bir transaction, şema içerisinde tanımlanan foreign key, unique check gibi tüm kurallara uymak zorundadır, aksi halde başarısız kabul edilir.

Isolaiton: Commit edilmemiş bir transaction içerisindeki işlemler yalnız transaction tarafından bilinir, commit edildikten sonra işlem herkese yansır.

Durability: Commit edilen verinin veritabanına yazıldığından muhakkak emin olunmalıdır, commit edildikten sonra veri yok olmaz.

Ayrıca İlişkisel veritabanı modelinde Propagation Constraint (PC) algoritmasını da kullanırlar. Bu algoritma temelde tanımlanan veri yapısını korur ve ilişkisel modelde tanımlanmış bir veri üzerinde anlamsız işlemler yapmanızı engeller. Örneğin Foreign Key olarak tanımlanmış ana tablodaki veriyi silmek istediğinizde eğer bu veriyle alakalı bir kayıt ilişkili olduğu tabloda mevcut ise silme işlemini gerçekleştirmenize müsaade edilmez, böylece veri bütünlüğü anlamlı bir şekilde korunmuş olur.

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.