Database tiplerini anlatmadan önce, database kavramlarından bahsedelim.
Veri Nedir?
Veriye yaygın bir isim koymak gerekirse bilgi diyebiliriz. Veri her şey olabilir, Adın, yaşın , kilon, videolar , resimler buna benzer her şey veri olabilir. Bilgilerimizi depolama ihtiyacı duyduğumuz bir çok zaman olabiliyor. Büyük sistemler için bu bilgileri depoladığımız yer Database adı verdikleri veri merkezleridir.
Database (Veri Tabanı ) Nedir?
Yukarıda bahsettiğimiz verileri depoladığımız, topladığımız yerdir. Verileri sınıflandırarak gruplandırarak ayıran bir tür depolama alanıdır. Örnek vermek gerekirse kurumsal bir spor salonu düşünebiliriz gelen sporcuların boy, kilo, yaş , yağ onu şeklinde farklı başlıklar altında bir tablo altında toplanmasıdır.
Database Bileşenleri Nelerdir?
Donanım
Veritabanı depolama kısmında fiziksel donanım olan ssd veya hard-disk gibi donanımlar kullanır. Bu gibi tüm depolama alanları Database donanımı sayılır.
Yazılım
Her uygulamayı projeyi kullanmak için bir program, bir dashboard ihtiyacımız vardır. Veritabanını kullanmak için kullandığımız aracı programlardır.
Veri
En kısa tabiriyle normal yazılımlarda kullandığımızda nesne tanımladığımız gibi veritabanı nesnemizde verilerdir.
Veritabanı Erişim Dilleri ?
Her yazılım ve projeyi yönetmek adına kullanılan diller vardır. Veritabanlarının da yapımcıları tarafından yönetilmesi adına kullandıkları komutlar vardır.
Database Management System (DBMS) Nedir?
Veritabanı yönetim sistemleri kendi güvenlik kuralları çerçevesinde veri ulaşmak için belli yetkilendirmelerle veritabanını yönetmek için kullandığımız sistemlerdir. Veritabanı içinde ki verileri güncelleme, silme, ekleme gibi işlemleri yapabildiğimiz arayüz kısmıdır. Bu uygulamalar bazıları ücretli bazıları ücretsizdir kullandığınız DBMS’ye bağlıdır.
MongoDB
Belge tabanlı bir veritabanıdır. Ücretsiz open source bir veritabanıdır, esnek bir veritabanıdır. Verileri hem yatay hem dikey şekilde tuttuğu için esnek bir yapıya sahiptir. MongoDB arayüz açısından oldukça sade ve kolay bir kullanıma sahiptir, elinizle herhangi bir tablo kolon eklemenize gerek yoktur çünkü otomatik sizin için düzenler ayrıca bir veri eklemek silmek oldukça basittir.
SQLite
Ücretsiz open source bir veritabanıdır. Herhangi bir indirme gereksinimi duymadan işlemlerimizin hepsini web sitesi üzerinden yaptığımız bir Database yönetim sistemidir.
MySQL
Veritabanı yönetim sistemleri arasında en çok bilinen MySQL’dir. Windows platformları için ücretsizdir fakat ticari kısımlara girdiğimizde lisans gerektirir. Çok kullanıcılı ve hızlı bir veritabanı yönetim sistemidir.
Oracle
Oracle firması tarafından ücretli şekilde lisanslanan bir veritabanı yönetim sistemidir. Oracle,Microsof’tan sonra en büyük 2.yazılım şirketidir.
PostgreSQL
Kullanım mantığında en önde gelen kısım stabilitededir, nesneye yönelik bir veritabanı türündedir.
MariaDB
Açık kaynak kodlu bir veritabanı yönetim sistemidir. Hala geliştirilmeye devam eden bu sistem ücretsiz olduğu için oldukça fazla kullanılır.
Microsoft Access
Microsoft tarafından geliştirilmiştir, düşük ölçekli veritabanları için uygundur kullanımı kolaydır.
Veri Tabanı Türleri ?
Veritabanları da kullanım açısından kendi içinde çeşitlere ayrılmaktadır.
Dağıtık Veritabanı (Distributed Database)
Dağıtık veritabanları tek bir sistem üzerinde değil de farklı bilgisayarlar siteler üzerinde tutulur. Fiziksel olarak bütün bileşenleri farklı ama kullanıcılar için tek bir veritabanı varmış gibi gözüken veritabanıdır. Dağıtılmış veritabanı homojen ve heterojen olarak 2’ye ayrılmıştır.
1-Homojen Veritabanı
Homojen isminden anlaşılacağı üzere her veri her yere eşit şekilde karışmış her yerden gözükebiliyor. Bu veritabanı türünde sistemler ayrı olsa da her yerden aynı veriye ulaşmak mümkün oluyor.
2-Heterojen Veritabanı
Bu veritabanı türünde farklı sistemlerde olduğu için birbirleri arasında ki iletişim problem olabiliyor. Farklı diller kullanan veritabanları arasında iletişim için bazen çeviriler gerekebiliyor.
Dağıtılmış Veri Depolama
Verilerin farklı yerlerde saklanmasının iki yolu:
1-Replikasyon:
Bu tipte birden fazla yerde veriler depolanır. Veritabanı tamamen bütün sistemlerde varsa yedeklenmesi tamamlanmıştır. Bu şekilde veritabanına giden istekler bölünmüş olur fakat sürekli güncel kalmazsa sıkıntılar, sorunlar çıkabilir.
2-Parçalanma
Veriler kopyalanmak yerine farklı sitelerde parçalara ayrılır. Parçalar belli bir düzende ilişkiyi yeniden kurabilecek şekilde kullanılabilir.
Dağıtılmış Veritabanı Nerelerde kullanılır
- Askeri kontrol sistemlerinde ve otel zincirlerinde
- Multimedya uygulamalarında
- İmalat kontrol sisteminde
İlişkisel Veritabanı (RDBMS) Nedir?
Verilerin birbirleriyle ilişkili noktalarını depolayan veritabanı türüdür. Kolay anlaşılabilir halde ve benzersiz kimlikler kullanan bir veritabanı sistemidir. Bir kullanıcı oluşturduğunuz da sistem size otomatik bir ‘id’ tanımlar daha sonra bir sipariş verdiğiniz zaman veritabanı içerisinde sizin o siparişte tek tek bilgileriniz yazması yerine sadece ‘id’ tutarak gerek olduğunda o id üzerinden sizin bilgilerinize ulaşılabilir. İlişkisel veritabanı neden kullanılır tutarlılığı yüksektir bir ATM gittiniz para yatırdınız ekranda paranız arttı aynı anda mobile baktığınızda aynı anda orada da bakiyeniz yükseldiğini göreceksiniz.
İlişkisel veritabanının özelliklerinin kısaltılması ACID olarak adlandırılır.
Atomisite , Tutarlılık , İzolasyon ve Dayanıklılık olarak 4 önemli özelliği vardır.
Merkezi Veritabanı (Centralized Database) Nedir?
Verilerin ayrı ayrı yerlerde tutulmasının aksine merkezi veritabanında veriler tek bir merkez üzerinde tutulur. Bir çok programlama dili ile oluşturulabilen merkezi veritabanları şirketler için kendilerinin de oluşturabileceği bir yapıdadır. Tek bir bilgisayar üzerine kurulduğu için güvenlik konusunda bilgisayarda iyi bir sıkılaştırma yaparak sızmaları engellemek mümkündür. Dezavantajına bakarsak bir çok kullanıcı aynı anda istek attığında sistem darboğaz olabilir.
Bulut Veritabanı (Cloud Database) Nedir?
Günümüz teknolojilerinde Cloud depolama gibi sistemler çıkmışıtır. Internet tabanlı bu sistemlerde verilerimizi yedekleyebiliriz bu şekilde verilerimizi saklayabiliriz.Bulut veritabanı ise bu verileri sakladığımız bir veritabanı hizmetidir.
Temel Özellikler
- Kurumsal firmalar herhangi bir donanım almadan veritabanını bu sistem üzerine kurabilir.
- Veritabanına erişim bir API üzerinden sağlanır.
Nesneye Yönelik Veritabanı (Object Oriented Database)
Nesneye yönelik veritabanları, nesne yönelimli programlama dillerinin doğru orantıda bir veritabanıyla çalışması ihtiyacıyla ortaya çıkmıştır. Bu ne demektir nesneye yönelik programlama da nesneler bazen karışık yapıda olabiliyor . Bu yüzden benzer bir yapı kurulmuştur ki tanımlamalarda karışıklık olmasın. İçerisin de nesneler,sınıflar,yöntemler ve işaretçiler bulunan bir veritabanı merkezidir.
Nesne yönelimli Programlamanın 4 ana fikri :
- Polimorfizm : Polimorfizm bir nesneye birden çok biçim alabilme yeteneğinin sunulmasıdır. Bu yetenek, bazı databaselerde bir program kodu tek bir veri türünde çalışırken polimorfizm’de bir program kodunun farklı verilerde çalışmasına izin verir.
- Miras : Daha öncesinde yazdığımız kodun yeniden kullanılabilir hale getirip bunlarla ilgili sınıflar arasında ilişki oluşturur.
- Kapsülleme: Verileri ve mekanizmaları tek bir nesne içine toplamasıdır.
- Soyutlama: Yalnızca hayati bilgileri seçtiği temel veri özellikelerini temsil etme prosedürüdür.
Açık Kaynak Veritabanı (OpenSource Veritabanı)
SQL gibi lisans gerektiren ücret ödemeniz gereken veritabanları sistemleri varken ücretsiz bir şekilde açık kaynak veritabanları da vardır. Tamamen ücretsiz olup avantajları ve dezavantajları olan veritabanlarıdır.
NoSQL Veritabanı (NoSQL Database)
Standart database kavramlarından farklı olarak join gibi işlemler yoktur. Depolama maliyetleri SQL databaselere göre daha düşüktür. Esnek depolama alanları vardır.
Belge/JSON Veri Tabanı (Document/JSON Database)
Json, en kısa tanımı için hem makine hem insan tarafından okunabilir olmasıdır. İnsanlar tarafından dosyaları ve belgeleri okukabilir ve iletilebilir hale getiren değişim biçimidir.
Json veritabanı Json belgeleri sorgulamak ve depolamak için oluşturulmuştur.