Veri Tabanı (database) Nedir? Veri tabanı Türleri Nelerdir?
Veri tabanı, yani database nedir diye sormadan önce verinin ne olduğunu anlamamız gerekir. En basit şekilde ifade etmek gerekirse; toplanmış olan bilginin en küçük birimine veri diyebiliriz.
Veri çok farklı formlarda karşımıza çıkabilir. Rakamlardan, yazıdan, bitlerden ya da görsellerden oluşabilir. Elektronik hafızada saklanabildiği gibi kâğıt üzerinde yazılı olarak da tutulabilir.
“Tek parça bilgi” anlamına gelen datum kelimesinin çoğulu olan data günümüzde bilgi teknolojisi alanında en çok kullanılan terimlerden biri hâline gelmiştir. Bilgisayarlarda veri başka bir forma, verimli bir harekete ya da işleme dönüşebilen bilgi anlamına gelmektedir ve değişebilir bir forma sahiptir.
Veri tabanı, yani database ise düzenli bir şekilde toplanmış veriye verilen isimdir. Burada düzenli kelimesine dikkat çekmek gerekir, veri tabanındaki verilerin kolayca ulaşılabilir ve yönetilebilir olması gerekir.
Veri tabanındaki veriler; tablolar, sıralar, kolonlar ve indeks olarak düzenlenebilir. Bu tamamen verinin cinsine ve kullanıcıların tercihlerine bağlıdır ve asıl amacı ilgili bilginin kolay bir şekilde bulunmasıdır. Çünkü veri tabanlarının ana amacı büyük miktarda verinin kolay bir şekilde yönetilip kullanılacağı zaman hızla ulaşılacak şekilde depolanabiliyor olmasıdır.
Günümüzde dünyada pek çok dinamik web site bulunmaktadır. Bu siteler veri tabanları ile yönetilir. Örnek olarak otel ya da uçak rezervasyon sitelerini gösterebiliriz.
Veri tabanları genellikle bilgisayar sistemleri için elektronik olarak muhafaza edilir. Veri tabanı yönetimi ve kontrolü için Veri Tabanı Yönetim Sistemi (DBMS) kullanılır. Data, DBMS ve kimi zaman da gerekli uygulamaları bir bütün hâlinde ele alındığında veri tabanı sistemi elde edilmiş olur. Buna kısaca yine veri tabanı denir.
Veri tabanlarında veriye ulaşmak ya da veri yazmak için açılımı “structured query language” (yapılandırılmış sorgu dili) olan SQL dili kullanılır.
SQL Nedir?
SQL neredeyse bütün veri tabanlarında sorgulama, üzerinde oynama, veri tanımlama ve erişim kontrolü sağlama için kullanılan bir programlama dilidir. İlk olarak Oracle’ın destekleriyle 1970 yılında IBM’de geliştirilmiş olan SQL günümüzde hâlen yaygın olarak kullanılmasa da veri tabanlarında kullanılmak üzere yeni programlama dilleri de ortaya çıkmaya başlamıştır.
Veri Tabanı Günümüze Kadar Nasıl Evrimleşti?
Günümüze gelene kadar 50 yılı aşkın bir süre içinde veri tabanları büyük değişimler geçirmiştir. İlk zamanlarda düz dosya veri tabanı olan formu günümüzde ilişkisel ve nesne odaklı veri tabanlarına evrimleşmiştir. Günümüze kadar gelen veri tabanı türlerini şu şekilde sıralayabiliriz:
- Dosya tabanlı: Dosya tabanlı veri tabanı 1968 yılında ortaya çıkmıştır. Bu veri tabanlarında veriler düz bir dosya içinde muhafaza edilmiştir. Dosyaların pek çok avantajı olsa da farklı erişim metotlarını desteklemekte zorlanması uzmanları yeni arayışlara yönlendirmiştir. Ayrıca BASIC ve COBOL gibi üçüncü jenerasyon programlama dillerinde ayrıntılı programlama bilgisine ihtiyaç duyulması da dezavantajlarından bir tanesidir.
- İlişkisel veri tabanları: İlişkisel veri tabanları 1980’lerde en çok kullanılan veri tabanları olmuştur. Kolonlar ve sıralar hâlinde tablolar içinde düzenlenen veriler içerir. Düzenlenmiş olan verilere çok daha verimli ve esnek bir şekilde erişim şansı vermesi ilişkisel veri tabanlarını döneminde oldukça popüler yapmıştır.
- Nesne odaklı veri tabanları: Nesne odaklı veri tabanlarında veriler nesne formunda sunulur. Bu hâliyle nesne odaklı programlamaya benzer.
- Dağıtılmış veri tabanı: İki ya da daha fazla dosyanın farklı sitelere dağıtılmış olduğu veri tabanlarına verilen isimdir. Bu veri tabanı çoklu bilgisayarlarda muhafaza edilebilir, cihazlar aynı mekânda ya da farklı ağlara sahip ortamlarda bulunabilir.
- Veri ambarları: Veriler için bir merkez depo olduğunu söyleyebiliriz. Hızlı sorgulama ve analiz için ideal veri tabanlarıdır.
- NoSQL veri tabanları: NoSQL veri tabanlarına ilişkisel olmayan veri tabanları da denir. Düzenlenmemiş ya da yarı düzenlenmiş verilerin muhafaza edilmesi ya da üzerinde oynanması için ideal veri tabanlarıdır. İlişkisel veri tabanları bütün verilerin düzenlenmiş olmasını gerektirir. Bu nedenle de ilişkisel olmayan veri tabanlarına web uygulamaları daha karmaşıklaştıkça daha fazla ihtiyaç duyulur hâle gelinmiştir.
- Açık kaynaklı veri tabanları: Kısaca kaynak kodu açık kaynaklı kod olan veri tabanlarıdır. SQL ya da NoSQL veri tabanları olabilirler.
- Bulut veri tabanları: Bulut veri tabanlarında toplanmış olan data düzenlenmiş ya da düzenlenmemiş durumda olabilir. Yöneticisi verilerin özel, topluma açık ya da hibrit olmasını tercih edebilir. Kullanıcıya esneklik sağlayan bulut veri tabanlarının iki ayrı modeli bulunmaktadır. Birincisi geleneksel bulut veri tabanıyken ikincisi bir hizmet olarak veri tabanıdır (DBaaS). DBaaS’lar hizmet sağlayıcı olarak yönetim ve bakım işlemlerine izin verir.
Veri Tabanı Yazılımı Nedir?
Veri tabanı yazılımı, veri tabanı dosyaları ve kayıtları yaratmak, bunları düzenlemek ve bakımlarını yapmak için kullanılan yazılım programları ya da araçlarıdır. Bu yazılımlar sayesinde kullanıcılar yapılandırılmış ve düzenlenmiş verilerini tablolar ve kolonlar halinde saklayabilirler, diledikleri zaman ise direkt olarak ya da program erişimiyle verilere ulaşabilirler.
Veri tabanlarında bulunan veriler çok değerli olabilir. Bu nedenle de günümüzde veri tabanı güvenliği ciddi bir konu hâline gelmiştir. Özellikle de işletmelerin veri tabanlarını olabilecek en iyi şekilde koruması sorumlulukları arasında yer alır.
Veri tabanı yazılımı aynı zamanda aynı anlama gelmese de veri tabanı yönetimi yazılımı (kısaca DBMS) olarak da bilinir.
Veri Tabanı Yönetim Sistemi (DBMS) Nedir?
Özel olarak ayrıntılı bir veri tabanı yazılım programına ihtiyaç duyan veri tabanlarına veri tabanı yönetim sistemi denir. DBMS, veri tabanıyla kullanıcıları arasında bir arayüz olarak görev görür. Bu şekilde kullanıcılar verileri diledikleri zaman çekebilir, güncelleyebilir, en iyi şekilde düzenleyerek yönetebilir. DBMS’ler ayrıca veri tabanlarının kontrol edilmesi, ayarlarının yapılması yedeklenmesi ve beklenmedik durumlarda kurtarılması için de kullanılır.
Günümüzde pek çok farklı veri tabanı yazılımı bulunmaktadır. Bunlar arasında en popülerleri arasında şunları sayabiliriz:
- MySQL
- Microsoft Access
- Microsoft SQL Server
- Oracle Database
- dBASE
- Firebird
- FileMaker
- MS Access
Veri Tabanı Güvenliği Nasıl Sağlanır?
Veri tabanı güvenliği için veri tabanı yönetim sistemlerini farklı türlerdeki siber saldırılardan koruyan çeşitli önlemler alınmalıdır. Veri tabanı güvenlik programları yalnızca veri tabanındaki verilerin korunması için değil aynı zamanda sistem yönetiminin korunması için de çalışır. Bu şekilde hatalı ya da kötü niyetli kullanıma, hasarlara ve veri ihlallerine engel konulmuş olur.
Veri tabanı güvenliği yalnızca yazılımlar değil aynı zamanda araçlar, işlemler ve metodolojiler de gerektirir.
En son teknolojilerle geliştirilen ağ ve siber güvenlik yönetimi platformu Berqnet SASE'yi yakından tanıyın
Veri Güvenliği Tehditleri Nelerdir?
Data ihlallerine sebep olan pek çok unsur olabilir; zayıflıklar, yanlış yapılandırmalar, tekrarlayan dikkatsizlikler bunlar arasından en yaygınlarıdır. Veri tabanlarının sık karşılaştığı siber tehditlerin en sık olanlarını şu şekilde özetleyebiliriz:
- İç tehditler: İç tehditlerde saldırgan genelde veri tabanına giriş izni resmi olarak verilmiş kişilerden biridir. Bu kişi şirket ya da kurum içinden izin sahibi ve kötü niyetli biri olabilir. Yine içeriden ancak dikkatsiz ve siber saldırılar hakkında yeterince bilgi sahibi olmayan biri olabilir. Bunların dışında sosyal mühendislik metotlarıyla veri tabanına erişim sağlamış ve dışarıdan biri de olabilir.
- İnsan hatası: Zayıf parolalar, dikkatsizlik ve eğitimsizlik gibi nedenlerden kaynaklanan hatalardır. Çözümü siber güvenlik farkındalığı eğitimleri olacaktır.
- Veri Tabanı Yazılımı Zayıflıklarının İstismarı (Exploitation): Siber saldırganlar sürekli olarak yazılımlardaki zayıflıkları hedef alarak onlar üzerine yoğunlaşırlar. Veri tabanı yönetimi yazılımları da bu açıdan saldırganlar için çok değerli bir hedeftir. Her geçen gün yeni bir açık ve zayıflık bulunduğu için veri tabanı yönetimi platformları sürekli olarak yeni yamalar ve sürümler çıkarır. Bu yamaları düzenli ve hızlı olarak kullanmazsanız verilerinizi tehlike altında bırakabilirsiniz.
- Yedek Saldırıları: Veri tabanı yöneticileri verilerin herhangi bir durumda silinmesi durumuna karşı önlem olarak veri yedeklemesi yaparlar. Bununla birlikte kimi zaman, yedeklenen verilerin korunması amacıyla orijinal veriler için alınan önlemleri almazlar. Bu bilgiyle yola çıkan saldırganlar özellikle yedek verileri hedef alabilirler.
- SQL/NoSQL Injection: SQL injection saldırıları yalnızca veri tabanlarına yönelik olarak geliştirilmiştir ve SQL ve noSQL string’leri ile veri tabanı sorgulamayı baz alır. Genellikle bu sorgulamalar web uygulama formlarının ya da HTTP izinlerinin devamı olarak yaratılır. Neredeyse bütün veri tabanları bu saldırılara karşı zayıflıklara sahiptir. Geliştiriciler tarafından yüksek güvenlikli kodlama yapılması ve sıklıkla zayıflık testleri yapılması gerekir.
- Arabellek Taşımının Kötüye Kullanımı: Arabellekteki hafıza aşılırsa depolanan verilerin kalanları saldırganların ulaşımına açık bir hâlde kalmış olur. Bu saldırılara karşı önlem almak için bellekteki hafızanın aşılmamasına dikkat edilmelidir.
- Dos/Ddos Saldırıları: Hizmet reddi anlamına da gelen DDoS saldırıları, saldırganların sunucuyu gereksiz ve çok sayıda yasal olmayan istekle doldurmasından kaynaklanır.
- Zararlı Yazılımlar: Veri tabanlarını zarara uğratmak için özel olarak yazılan bu zararlı yazılımlar saldırganların veri tabanı ağına bağlanan uç nokta cihazları üzerinden ulaşmasıyla saldırıya başlar.
Sıkça Sorulan Sorular
Farklı modellerdeki birden fazla sayıda veri tabanını bir araya getirerek entegre eden veri tabanlarına verilen isimdir.
Dosya odaklı verileri korumak, saklamak ve düzenlemek için kullanılan bir veri tabanıdır. Belgeler sıralar ve kolonlar yerine JSON formatında depolanır.
Grafik veri tabanları verileri birimler ve birimler arasındaki ilişkiler olarak depolar.
Buffer overflow da denilen bu sorun yeterli hafızanın olmadığı bir veri tabanında işlemcinin fazla veri yazmasından kaynaklanır. Siber saldırganlar fazla veriye kolayca erişebilirler.
Veri tabanlarını elektronik tablolardan ayıran başlıca üç fark bulunur. Bunların başında verilerin nasıl organize edilip depolandığı gelir. Veri tabanları ayrıca yalnızca seçilen kişilere erişim izni verir ve çok daha büyük miktarda veri depolayabilir.
Veri tabanı mimarı işletmelerin ve organizasyonların veri depolama konusundaki her türlü sorunları için çözüm üreten, donanım ve yazılımların yönetimi ile ilgilenen profesyonellere verilen isimdir.
Veri tabanı çeşitleri günümüze kadar evrimleşerek ve kullanıcıların ihtiyaçlarına yönelik olarak gelişerek değişim göstermiştir. En önemlilerini sayacak olursak ilişkisel veri tabanları, dosya tabanlı veri tabanı, nesne odaklı veri tabanı, dağıtılmış veri tabanı, veri ambarı, NoSQL veri tabanı, açık kaynaklı (open source) veri tabanı ve bulut veri tabanını sayabiliriz.