Veri tabanı, organize edilmiş bir bilgi koleksiyonu olarak tanımlanır ve verilerin daha kolay aranmasını, alınmasını, manipüle edilmesini ve analiz edilmesini kolaylaştırır. İş dünyasında, satış, İK, pazarlama, müşteri hizmetleri gibi bir dizi farklı gereksinimi karşılamak için veri tabanları gereklidir. Bu veri tabanları genellikle benzer konularda veya benzer veri türlerini saklamak için kullanılır. Veri tabanları, eldeki görev için en uygun veri düzenlemesini veya yapılandırmayı sağlamak için farklı şemaları kullanır.
Bir veri tabanı, bir veri tabanı programlama dili kullanılarak oluşturulur ve muhafaza edilir. En yaygın olarak bilinen veri tabanı dili SQL’dir; ancak, Yapılandırılmış Sorgu Dili’nin (SQL) farklı çeşitleri vardır. Her bir SQL türü, SQL dil yapısında zıtlıklara sahiptir ve belirli bir veri tabanı türü ile kullanılmak üzere tasarlanmıştır.
Örnekler
- Her mobil hizmet sağlayıcı, müşterilerinin bilgilerini saklamak için bir veri tabanı kullanır.
- Belirli bir şehrin/ülkenin çevrimiçi telefon kataloğu, kişiler, adresleri, telefon numaraları ve diğer ayrıntılarla ilgili bilgileri depolamak için bir veri tabanı kullanacaktır.
Veri Tabanının Özellikleri
İşletmeler, çeşitli iş kararları almak için kullanılabilecek verileri depolamak için veri tabanlarını kullanır. Veri tabanlarının çoğu aşağıdaki özelliklere sahiptir.
- Verileri farklı uygulamalardan izole eder.
- Verilerin aynı anda birden fazla kullanıcı tarafından paylaşılmasını destekleyerek aynı anda birden fazla işlem yapılmasını sağlar.
- Aynı verinin birden fazla görünümünü destekler.
- Verilerin güvenliğini sağlar.
- İşletmelerin gelirlerini artırmalarına yardımcı olarak işlerini geliştirmelerine yardımcı olur.
Veri Tabanı Bileşenleri
Bir veri tabanı aşağıdaki parçalardan oluşur:
1. Şema
Bir veri tabanı, en az bir bilgi tablosunun bir araya getirilmesiyle oluşturulan en az bir kompozisyonu temsil eder.
2. Tablo
Her tablo, tıpkı bir elektronik tabloda olduğu gibi çeşitli sütunlar içerir. Bir tabloda, tabloya konulan bilginin türüne bağlı olarak sütun sayısı artabilir.
3. Sütun
Her sütun isim, adres, telefon numarası gibi birkaç tür bilgiden birini içerir.
4. Satır
Bir tablodaki veriler satırlar halinde kaydedilir. Bir tabloda belirli bir bilgiye sahip yüzlerce veya binlerce satır vardır.
Veri Tabanı Örnekleri
Piyasada, uygulama ve iş kullanımına bağlı olarak farklı veri tabanları bulunmaktadır. Aşağıda, popüler SQL ve NoSQL veri tabanlarından bazılarını bulabilirsiniz:
İlişkisel Veri Tabanı
- Oracle database
- Microsoft SQL Server
- MySQL database
- PostgreSQL
- Redis
- IBM DB2
- MySQL
İlişkisel Olmayan Veri Tabanları
- MongoDB
- Apache Cassandra
- Apache CouchDB
- Apache HBase
Veri Tabanı Türleri
Aşağıda en çok kullanılan veri tabanı türlerinden bazılarını bulabilirsiniz:
1. Dağıtılmış Veri Tabanı
Benzer bir sistemde veya benzersiz sistemlerde çeşitli hedeflerde bulunan en az iki belgeden oluşan bir veri tabanıdır. Veri tabanının parçaları çeşitli fiziksel yerlere yerleştirilir ve kullanım farklı veri tabanı merkezleri arasında dağıtılır.
Dağıtık veri tabanları fiziksel olarak birden fazla yerde depolanır ve mantıksal olarak birbirleriyle bağlantılıdır ve genellikle tek bir mantıksal veri tabanını ifade eder.
Dağıtık veri tabanları homojen veya heterojen olabilir. Genel olarak, dağıtık veri tabanları aşağıdaki özellikleri içerebilir:
- Donanımdan bağımsız
- Konumdan bağımsız
- İşletim sisteminden bağımsız
- Ağdan bağımsız
- İşlem şeffaflığı
- Dağıtılmış sorgu işleme
- Dağıtılmış işlem yönetimi
Dağıtık veri tabanı örnekleri:
- Apache Cassandra
- Apache HBase
- Apache Ignite
- Couchbase Server
- Amazon SimpleDB
- FoundationDB
- Clusterpoint
Dağıtık Veri Tabanının Avantajları
- Yöneticiler, dağıtık veri tabanı çerçeveleri kullanırken bilginin en sık kullanıldığı yere yakın bir konumda bulundurulmasının, iletişim maliyetlerini azaltmada daha etkili olabileceğini fark edebilir. Merkezi veri tabanlarında ise bu tür bir yakınlık sağlamak mümkün değildir.
- Güncellenmesi ve büyümesi kolaydır.
- Tutarlılığı ve kullanım kolaylığını artırır.
- Daha iyi performans sağlar.
- Bir yerden veri tabanı kaybı tüm verilerin kaybına neden olmayabilir.
- Yük dengeleme için etkilidir ve gecikmeyi azaltır.
- Dağıtık veri tabanı hata toleransı özelliğine sahiptir
Dağıtılmış Veri Tabanının Dezavantajları
- Bütünlüğün uygulanması daha fazla ağ kaynağı gerektirebilir.
- Mimarisi daha iyi tasarım, yönetim ve sorun giderme gerektirdiğinden daha karmaşıktır.
- Bazen ana veri tabanından erişim sırasında sorunlarla karşılaşılabilir.
- Dağıtılmış veri tabanında bir başka endişe kaynağı da güvenliktir.
2. Merkezi Veri Tabanı
Merkezi bir veri tabanı çerçevesi, bilgileri tek bir yerde tek bir veri tabanında tutan bir çerçevedir.
Merkezi Veri Tabanının Avantajları
- Merkezi veri tabanı depolaması veri güvenliğini artırır.
- Yerel olarak depolanan veriler devam eden bir fiziksel güvenlik tehlikesi anlamına geldiğinden, merkezi veri tabanı fiziksel güvenlik sağlar.
- Merkezi depolamanın bakımı, birden fazla depolama alanına göre daha az maliyetlidir.
- Piyasa analistleri arasında fikir paylaşımı kolaydır.
- Merkezileştirme nedeniyle çatışmaları azaltır.
- Merkezi veri tabanı kurumlar arasındaki çatışmaları azaltır ve kurumlar vizyonlarına odaklanıp hızlıca harekete geçebilir.
- Merkezi veri tabanında veri fazlalığı ihmal edilebilir düzeydedir.
Merkezi Veri Tabanının Dezavantajları
- Merkezi veri tabanı, ağır iş yükü altında çalışmaya tepkisiz kalabilir.
- Bilgi en çok kullanıldığı yerde bulunamazsa, yöneticiler yüksek iletişim maliyetleriyle karşı karşıya kalabilir.
- Merkezi veri tabanında bilgiler tek bir veri tabanında saklanır, bu nedenle veri kaybı olasılığı artabilir.
- Uygun veri tabanı kurtarma önlemleri yoktur.
3. Kişisel Veri Tabanı
Bilgi, az miktarda olan ve kolayca yönetilebilen bilgisayarlarda toplanır ve depolanır.
Bu bilgiler genellikle bir işletmenin aynı departmanı tarafından kullanılır ve az sayıda kişi tarafından kolayca erişilebilir.
Genel olarak, bir kişisel veri tabanı sistemi bir seferde bir uygulamayı destekleyebilir, tek bir bilgisayar, birkaç tabloya sahip bir veri tabanı içerir.
Kişisel Veri Tabanının Avantajları
- Veri paylaşımını ve güvenliğini artırır.
- Daha iyi veri entegrasyonu ve hızlı veri erişimi sağlar.
- Hızlı son kullanıcı üretkenliği ve gelişmiş karar verme sağlar.
Kişisel Veri Tabanının Dezavantajları
- Yöneticiler, lisanslama gereksinimleri ve veri tabanı kullanıcılarının uygun şekilde eğitilmesi gibi nedenlerle artan maliyetlerle karşılaşabilirler. Bu süreç aynı zamanda yeni özellikleri kullanmayı ve yönetmeyi içerebilir.
- Kişisel veri tabanı ağır iş yükü altında çalışmaya tepkisiz kalabilir.
4. İlişkisel Veri Tabanı
İlişkisel bir veri tabanı, verilere erişilebilen bir dizi tablo ile tanımlanır.
İlişkisel veri tabanı, birbiriyle bağlantılı bir dizi tabloda büyük miktarda bilgi depolayabilir.
Her tablo, her sütunun ad, adres gibi belirli bir bilgi türünü temsil ettiği, her satırın benzersiz bilgiler içerdiği ve bir tablodaki her alanın kendi veri türüne sahip olduğu satır ve sütunlardaki bilgilerden oluşur.
İlişkisel Veri Tabanının Avantajları
- İlişkisel veri tabanı, herhangi bir şirketin finansal kaydını saklamak için kullanılır
- Müşterilerin sevkiyatlarının ve siparişlerinin kayıtlarını tutar.
- İlişkisel veri tabanı veri bütünlüğü ve daha iyi performans sağlar.
- Daha iyi veri güvenliği sağlar ve birden fazla kullanıcıya izin verir.
- Kolayca genişletilebilen ve değiştirilebilen ilişkisel veri tabanında büyük miktarda veri depolanabilir.
- Birkaç müşteri aynı veri tabanına erişebilir.
İlişkisel Veri Tabanının Dezavantajları
- Kurulum ve bakım maliyeti yüksektir.
- İlişkisel veri tabanları için sofistike ağ ve donanım kurulumları gereklidir.
- İlişkisel veri tabanlarında genellikle alan uzunlukları sınırlıdır.
5. Operasyonel Veri Tabanı
Operasyonel bir veri tabanı, büyük miktarda veriyi gerçek zamanlı olarak depolamak ve yönetmek için kullanılır. Herhangi bir projenin operasyonları (pazarlama, müşterilere sağlanan hizmetler ve onlarla ilişkiler) ile ilgili veriler operasyonel bir veri tabanında saklanabilir.
Operasyonel Veri Tabanının Avantajları
- Veriler gerçek zamanlı olarak eklenebildiği ve değiştirilebildiği için gerçek zamanlı işlemler sağlar.
- Operasyonel veri tabanı güncel bilgi sağlar.
- Gerçek zamanlı hesaplama ve analiz süreçleri için veri sağlar.
- İşletmenin günlük işleyişini yürütmeye yardımcı olur.
Operasyonel Veri Tabanının Dezavantajları
- Gerçek zamanlı analiz, veri tabanı kullanıcıları için özel eğitim oturumları gerektirir ve bu da şirketlere daha fazla maliyet yükler.
- Operasyonel verilere yönelik sorgular genellikle dar kapsamlıdır, yani hız açısından kritiktir.
6. Hiyerarşik Veri Tabanı
Hiyerarşik veri tabanı modelinde veriler, bir dizi farklı öğeyi bir üst kayda bağlayan bir ağaç yapısında düzenlenir.
Her kayıt türünün yalnızca bir ebeveyni vardır. Ağacın en üst öğesi ebeveyn, dalları ise children olarak adlandırılır. Belirli veri depolama türleri için kullanışlıdır.
Bir varlık türü bir tabloya karşılık gelir ve varlık türleri birbirleriyle bire çok ilişkilendirme ile ilişkilidir.
Hiyerarşik Veri Tabanının Avantajları
- Hiyerarşik veri tabanlarının anlaşılması kolaydır.
- Hiyerarşik yapıda açık emir komuta zinciri bulunur.
- Hiyerarşik veri tabanında, ebeveyn ve çocuk ilişkileri bir veri kaydından diğerine işaretçilerle uygulandığından kayıtlar arasında gezinmek yeterince hızlıdır.
Hiyerarşik Veri Tabanının Dezavantajları
- Hiyerarşik yapıların yeni değişiklikleri hızla benimseme eğilimi yoktur.
- İletişim engelleri vardır.
- Veri tabanı, mevcut iş gereksinimlerini karşılayacak şekilde değiştirilemez.
7. Bulut Veri Tabanı
Bulut veri tabanı, kuruluşların ve uygulamalarının buluttan bilgi depolamasına ve yönetmesine izin veren Platform-as-a-Service (PaaS) gibi bir bulut platformu aracılığıyla dağıtılan ve sunulan bir tür veri tabanı yönetimidir.
Günümüzde, kullanıcının ödeme kabiliyetine göre daha fazla depolama kapasitesi, yüksek bant genişliği, ölçeklenebilirlik ve kullanılabilirlik elde etme gibi çeşitli avantajlar nedeniyle popülerlik kazanmıştır.
Bir bulut veri tabanı düzenli olarak, genellikle bir kayıt / çerçeve bulutu üzerinden veri tabanı programlamasının kurulmasıyla yürütülen standart bir veri tabanı düzenlemesi olarak işlev görür.
Buna ek olarak, bir bulut veri tabanı aynı şekilde, satıcının özellikle veri tabanı kurulumu ve dağıtımının arka uç prosedürleri ile ilgilendiği bir yönetim olarak aktarılır.
Bulut Veri Tabanının Avantajları
- Bulut veri tabanı, veri tabanı iş yükünü geleneksel olarak veya bir hizmet olarak çalıştırmak için büyük esneklik sağlar.
- Felaket kurtarma için faydalıdır.
- Şirketler bulut depolamayı kullanarak yıllık işletme maliyetlerini azaltabilir.
- İnternet üzerinden verilere kolay erişim sağlar.
Bulut Veri Tabanının Dezavantajları
- Veri koruma, bulut veri tabanında büyük bir zorluktur.
- İnternet bağlantısının olmaması durumunda erişimin zordur.
- Bir belgeyi bulut depolama klasörüne taşımak için sürükle ve bırak eylemi sırasında daha bilinçli olmak gerekir.
8. Nesne Yönelimli Veri Tabanı
Eylemler ve mantık yerine nesne etrafında organize olan nesne yönelimli programlama ve ilişkisel veri tabanı grubudur.
Nesne yönelimli veri tabanı motorlarına bazı örnekler Smalltalk, db4o ve Cache’dir. Nesne yönelimli veri tabanında bilgi nesneler biçiminde tanımlanır. Benzer nesneler sınıflara ve alt sınıflara ayrılır ve iki nesne arasındaki ilişki zıt referans kavramı kullanılarak sağlanır.
Nesne Yönelimli Veri Tabanının Avantajları
- Veri tabanlarının, işletim sisteminin, kelime işlemcilerin, elektronik tabloların ve diğer uygulamaların entegrasyonuna izin verir.
- Ürün ve uygulamaların referans paylaşımını sağlar.
- Mevcut bir nesneden kolayca yeni bir nesne oluşturur.
- Nesne Yönelimli Veri Tabanı Yönetim Sistemi, eşzamanlılık ve kurtarma sorununu çözmek için kalıcı nesneler oluşturmaya izin verir.
Nesne Yönelimli Veri Tabanının Dezavantajları
- Büyük ADT’lerin ve yapılandırılmış nesnelerin depolanmasını sağlar.
- Sorgu işleme ve optimizasyon karmaşık bir iştir.
- İlişkisel veri tabanından çok daha karmaşıktır, bu nedenle deneyimsiz son kullanıcılar yerine profesyonel programcılar gereklidir.
- Kullanıcı bireysel nesneler ve sınıflar üzerinde erişim haklarına izin veremez.
9. NoSQL Veri Tabanı
NoSQL veri tabanı, birkaç sanal sunucuda depolanabilecek büyük bir dağıtılmış veri kümesini verimli bir şekilde yönetmek ve analiz etmek için kullanılır. NoSQL veri tabanı türleri aşağıdakileri içerir:
Şu anda birçok NoSQL veri deposu mevcuttur, bunlardan bazıları MongoDB, CouchDB, GemFire, Casandra, Hbase, Mnesia, Memcached ve Neo4j’dir.
NoSQL Veri Tabanının Avantajları
- Kullanımı kolay ve esnektir.
- Monolitik mimarinin yerine coğrafi olarak dağıtılmış ölçeklendirme mimarisine sahiptir.
- Sık kod aktarımı ve hızlı şema yinelemesi sağlar.
- Daha iyi performans ve yüksek küresel kullanılabilirlik sunar.
- Esnek veri modellemesi sunar.
- Büyük hacimler NoSQL veri tabanları tarafından kolayca işlenebilir.
NoSQL Veri Tabanının Dezavantajları
- Kurulumu ve bakımı için ileri düzeyde uzmanlık gereklidir.
- En yaygın iş zekası araçları NoSQL veri tabanlarına bağlantı sağlamaz.
SQL ve NoSQL Veri Tabanları
Veri tabanlarını sınıflandırmanın belki de en yaygın yolu SQL ve NoSQL’dir (ilişkisel ve ilişkisel olmayan olarak da bilinir).
Bir SQL veri tabanı Yapılandırılmış Sorgu Dili kullanır ve bir tür ilişkisel veri tabanıdır. İlişkisel veri tabanları, bilgileri farklı veri parçaları arasındaki ilişkileri kodlayan resmi tablolar içinde düzenler. Her tablo, Microsoft Excel’deki bir elektronik tablonun yapısına benzer şekilde sütun ve satırlar içerir. İlişkisel bir veri tabanı kullanırken, veri tabanınızdaki veriler arasındaki ilişkileri tanımlayan kavramsal, mantıksal veya fiziksel bir şema oluşturabilirsiniz.
İlişkisel bir veri tabanında arama yapmak için kullanıcılar, veri tabanları ile iletişim kurmak için alana özgü bir dil olan Yapılandırılmış Sorgu Dili’nde (SQL) sorgular yazar.
Öte yandan, NoSQL veya ilişkisel olmayan veri tabanı, ilişkisel tablo tabanlı veri modelinin dışında kalan verileri depolamak için herhangi bir paradigma kullanır. NoSQL veri tabanları dinamik şema kullanır ve bu da işletmelere veri depolamak ve verilere erişmek için daha esnek bir yol sağlayabilir.
Bazı yaygın NoSQL veri tabanı türleri anahtar-değer, belge tabanlı, sütun tabanlı ve grafik tabanlı depolardır. Popüler NoSQL teklifleri arasında MongoDB, Cassandra ve Redis bulunmaktadır.
Her iki yaklaşımın da artıları ve eksileri vardır. SQL veri tabanlarının daha fazla kaynak ekleyerek dikey olarak ölçeklendirilmesi daha kolay olurken, NoSQL veri tabanlarının yatay olarak (daha fazla makine ekleyerek) ölçeklendirilmesi daha kolay olma eğilimindedir. Sorgu yazmak için SQL kullanımı performans ve kullanım kolaylığı açısından önemli bir avantaj olabilir, ancak ilişkisel veri tabanları da veri hiyerarşisi açısından daha az esnek ve daha katıdır.
Bulut Veri Ambarları ve Veri Tabanları
Bazı bulut veri tabanları SQL ve NoSQL özelliklerinin bir karışımını sunar. Örneğin Amazon Redshift, büyük ölçekli veri setlerini hızlı bir şekilde taşıyabilen bir çözüm isteyen bir veri ambarı şirketi tarafından geliştirilen teknoloji üzerine inşa edilmiştir. Bu da onu bir NoSQL veri tabanına benzetir; ancak bulut tabanlı bir veri ambarı çözümü olan Redshift, Postgres uyumlu bir sorgu katmanına da sahiptir. Redshift verileri ilişkisel şemaya göre düzenleyebilir, bu da onu bir SQL veri tabanına benzetir.
Geleneksel olarak, işletmelerin bir veri tabanı barındırmak için yerinde ekipman ve altyapı bulundurması gerekirdi. Bunu yapmak, yalnızca donanımınızın kaldırabileceği alan miktarına erişebileceğiniz anlamına gelir. Bunun da ötesinde, ekipman yıprandığında veya operasyonel sistemler yedekli hale geldiğinde, maliyetin işletme tarafından karşılanması gerekir. Bulut veri tabanları o kadar fazla alana sahiptir ki, pratikte süresiz olarak ölçeklendirebilirsiniz. Sözleşme anlaşmanıza bağlı olarak, aşırı ücretler ödemeden gerektiği gibi ölçeklendirme yapabileceğinizi görebilirsiniz.
Hem veri ambarı hem de veri tabanı fiyatları hizmetten hizmete önemli ölçüde değişebilir, bu nedenle bulut tabanlı bir veri yönetimi sağlayıcısı seçmeden önce seçeneklerinizi karşılaştırdığınızdan emin olmanız gerekir.