Veri Tabanları

Samed Ertugrul
4 min readNov 28, 2023

--

[English Below]

Bu yazımda, bir önceki yazımda da belirttiğim gibi veri tabanı tiplerine ve veri tabanlarının kısa tarihine değineceğim.

Hazırsanız başlayalım…

Veri tabanlarının evrimi

Veri depolamak için kullandığımız veri tabanları, sizin de tahmin edeceğiniz üzere, bugünkü hallerini alana kadar bir dizi değişim geçirmişlerdir. Tabiki bu değişimleri tetikleyen en önemli faktör değişen dünyada iş hayatındaki ihtiyaçların ve buna bağlı olarak toplanan verilerin değişmesidir. Bu evrimsel yolculuğu dört farklı aşamada ele alabiliriz.

< 1968 Antik Çağ: Kodun içerisinde gömülü Boolean veriler topluluğu

1968 Dosya Temelli Veri Tabanı Çağı: Manyetik bantlardan yüklenen veriler

1968–1980 İlişkisel Olmayan Veri Tabanlarının Çağı: Hiyerarşik ve Network tabanlı tutulan veriler

1980 > : İlişkisel Veri Tabanları

Veri tabanı yaklaşımları

Günümüzde gelişen teknoloji ve ihtiyaçlarla ile birlikte veri tabanı yaklaşımları da değişkenlik göstermektedir.

Hiyerarşik Veri Tabanları: Soy ağacı benzeri yapılardır. Çoğunlukla savunma sistemi yazılımları gibi entegre ve sürekli çalışmak zorunda olan görev kritik (mission critic) miras (heritage) sistemlerde kullanılırlar. Bu veri kaynağının verileri metin dosyaları şeklinde saklanmaktadır. Son yıllarda XML benzeri teknolojilere evrilmesi için çalışmalar devam etmektedir. Ancak bu sistemlerin yenileri ile değiştirilebilmesi için hem verilerin hem de yazılımların taşınması gerekmektedir.

İlişkisel Veri Tabanları: 1970'lerden beri kullanılan yapılardır. Her tür ve büyüklükteki kurumlar tarafından çok çeşitli bilgi ihtiyaçları için kullanılmaktadır. İlişkisel veritabanları,veri noktalarının birbiriyle ilgili olduğu; güvenli, kurallara dayalı ve tutarlı bir şekilde yönetilmesi gereken tüm bilgi ihtiyaçları için kullanılır. Çoğunlukla satır temelli çalışırlar. Oracle, Teradata vb. günümüzde en yaygın kullanımı olan yapılardır.

Analitik Veri Tabanları: Özellikle dashboard benzeri denormalize veri raporların daha yoğun bulunduğu ortamlarda sıklıkla tercih edilirler. Kolon temelli sorgulama ihtiyacı duyulan işler için idealdirler. Vertica en bilinen örneğidir.

Hafıza Temelli (In-Memory )Veri Tabanları: Saklanan veri orijinalinde bir disk veya benzeri bir media üzerinde tutulsa da işlem yapılacak kısım işlem biriminin RAM’i (processing unit memory) üzerinde belli bir süre için tutulur böylelikle yazma/okuma gecikmesi olmadan çalışabilir. H2, HyperSQL, Apache Derby en bilinen örnekleridir. Ayrıca Oracle ve Teradata da konfigüratif olarak in-memory çalışmayı desteklemektedir.

Dağıtık (Distributed) Veri Tabanları: Verinin birden fazla sunucuda (node) dağıtılmış olarak tutulduğu yapılardır ve bir yazılım kullanılarak bir arada duruyormuş gibi veri erişimi sağlanır. Cassandra ve Hive en bilinen örnekleridir.

NoSQL Veri Tabanları: Veriler birden fazla sunucu (node) üzerinde dağıtıktır. Geleneksel SQL kodu kullanmak yerine kendi algoritmalarıyla veriyi getirirler. Cassandra, HBase, MongoDB en bilinen örnekleridir. Firmanın kendi sunucuları üzerinde (on prem) ya da bulut teknolojileri (cloud) üzerinde çalışabilirler.

Grafik Veri Tabanları: NoSQL benzeri bir yapıdır. Varlıklar (Entities) sunucular üzerinde tutulur ve bunların arasındaki ilişkiler ayrıca tutulur. Birden fazla seviyeli hiyerarşik veri tutulurken kullanılır. Neo4j, Datastax, AWS Neptune en bilinen örnekleridir.

Bir sonraki yazımda görüşmek üzere…

Databases

In this article, as I mentioned in my previous article, I will touch on the types of databases and the brief history of databases.

If you’re ready, let’s get started…

The evolution of databases

As you can imagine, the databases we use to store data have undergone a series of changes until they became what they are today. Of course, the most important factor that triggered these changes is the changing world and the changing data collected as a result of the changing needs in the business world. We can consider this evolutionary journey in four different stages.

< 1968 Ancient Age: Boolean data embedded in code

1968 File-Based Database Age: Data loaded from magnetic tapes

1968–1980 Age of Non-Relational Databases: Hierarchical and network-based data storage

1980 >: Relational Databases

Database approaches

Today, with the developing technology and needs, database approaches also vary.

Hierarchical Databases: They are structures similar to family trees. They are mostly used in integrated and continuously working mission-critical heritage systems such as defense system software. The data source is stored as text files. Work is underway to evolve these systems into technologies similar to XML in recent years. However, both data and software need to be moved in order to replace these systems with new ones.

Relational Databases: These structures have been used since the 1970s. They are used for a wide variety of information needs by all types and sizes of organizations. Relational databases are used for all information needs that require secure, rule-based, and consistent management of related data points. They mostly work row-based. Oracle, Teradata, etc. are the most commonly used structures today.

Analytical Databases: They are often preferred in environments where denormalized data reports similar to dashboards are more common. They are ideal for jobs that require column-based queries. Vertica is the best-known example.

In-Memory Databases: Although the stored data is kept on a disk or similar media in its original form, the part to be processed is kept on the processing unit memory for a certain period of time so that it can work without write/read delays. H2, HyperSQL, Apache Derby are the best-known examples. In addition, Oracle and Teradata also support in-memory operation configurationally.

Distributed Databases: They are structures where the data is stored distributed on multiple servers (nodes), and data access is provided as if they were all together using software. Cassandra and Hive are the best-known examples.

NoSQL Databases: Data is distributed over multiple servers (nodes). Instead of using traditional SQL code, they retrieve data with their own algorithms. Cassandra, HBase, MongoDB are the best-known examples. They can work on the company’s own servers (on-prem) or on cloud technologies.

Graph Databases: It is a structure similar to NoSQL. Entities are stored on servers and their relationships are also stored. It is used when multiple hierarchical data levels are stored. Neo4j, Datastax, AWS Neptune are the best-known examples.

See you in my next article…

--

--