Databaza Paradiqmaları

Yunis Huseynzade
Pragmatech
Published in
4 min readSep 16, 2020

Data yəni, məlumat gündəlik həyatımızın ən vacib hissələrindən biridir. Eyni ilə proqramlaşdırmanın da təməllərindəndir. Proqramlaşdırmada məlumatı saxlamaq üçün bir neçə üsul var. Lakin bunlardan ən strukturlusu databazalardır. Database (databaza) məlumatın saxlanması üçün istifadə edilən tool-dur (alət). Məqsədə uyğun olaraq databaza növü də dəyişir. İndi isə gəlin database paradigms yəni, databaza paradiqmalarına nəzər salaq.

1. Key-Value

Redis, Memcached, Etcd kimi database-lər bu paradiqmaya aiddir.

Bu növ databazalar Javascript obyekti və ya Python dictionary-ləri kimi strukturlaşdırılıb.Unique (təkrarlanmayan) key-lərdən və hər bir key-ə mənimsədilmiş value-dan ibarətdir. GitHub və Twitter kimi applikasiyalar key-value databazalardan istifadə edir

Müsbət cəhətləri

  • Sürətlidir

Mənfi cəhətləri

  • Limitli yaddaş
  • Query yoxdur

İstifadə məqsədləri

  • Keşlərin saxlanması
  • Leaderboard-lar

2. Wide Column

Cassandra, HBase kimi database-lər bu paradiqmaya aiddir.

Bu növ databazalar da key-value db-lərə bənzəyir. Lakin key-lərə value əvəzinə column yəni, sütunlar mənimsədilir. Aşağıdakı python dict sizin bu strukturu anlamağınıza kömək edəcək:

Bu növ databazalar-da schema olmur. Query üçün CQL adlanan dildən istifadə edir hansı ki, SQL-ə çox bənzəyir.

Netflix kimi aplikasiyalar wide-column database-lərdən istifadə edir

İstifadə məqsədləri

  • Tarixi qeydlər
  • Çox yazılıb, az oxunan məlumatlar

3. Document Oriented

MongoDB, Firestore, CouchDB, DynamoDB kimi database-lər bu paradiqmaya aiddir.

Bu paradiqmada dokumentlər var. Dokumentlər JSON fayllarından ibarətdir (MondoDB kimi bəzi növləri isə BSON yəni, binary JSON-dan istifadə edir. Bu isə query sürətini artırır). Dokumentlər (documents) birləşərək collection yaradır.

İstifadə məqsədləri

  • Bir çox aplikasiyalar
  • Content management
  • Oyunlar və s.

4. Relational

MySQL, Postgres, SQL Server, CockroachDB, SQLite kimi database-lər bu paradiqmaya aiddir.

Bu paradigma ən geniş yayılmış database növlərindən biridir. SQL adlanan proqramlaşdırma dilindən istifadə edir. Əsas olaraq table-lardan ibarətdir. Relational database bir-biri ilə əlaqəli dəyərləri saxlayan databaza növüdür. Məsələn, Plane adlanan bir table var. Həmçinin Engine adında da bir table var. Plane-nin “engine” sütununa bir foreign key əlavə edirik. həmin foreign key-in dəyəri 25 olsun. Engine table-da isə “id” column-a primary key əlavə edirik və bu da eyni ilə 25 olsun. Databaze bu iki table-i bir-biri ilə əlaqələndirir. Relational database-in əsas üstünlüyü bundadır.

İstifadə məqsədləri

  • Bir çox aplikasiya üçün istifadə edilə bilər

Mənfi cəhətləri

  • Struktursuz data üçün əlverişli deyil

5. Graph

Neo4j, DGraph, Janus Graph kimi database-lər bu paradiqmaya aiddir.

Graph database bir node və budaqlardan ibarətdir. Budaqlar yalnız bir tərəfə getmək məcburiyyətində deyil həmçinin iki tərəfə də gedə bilər. Buna ən yaxşı nümunə Facebook nümunəsidir. Facebook-da bir user digəri ilə dost olduqda həmçinin digəri də onunla dost olmuş olur. Yəni A user B ilə, həmçinin B user A ilə dost olur. Bu iki tərəfli edge-dir. Graph-lar query üçün Cypher adlanan dildən istifadə edir.

İstifadə məqsədləri

  • Recommendation (tövsiyə) sistemləri
  • Knowledge graph-lar
  • Bütün növ qraflar

6. Search Engine

ElasticSearch, Algolia, MeiliSearch kimi database-lər bu paradiqmaya aiddir.

Google kimi bir aplikasiya hazırladığınızı düşünün. Bu zaman user text daxil edir və siz onunla əlaqəli bir və ya bir neçə məlumat geri qaytarırsınız. Search Engine bu zaman köməyinizə çatır.

İstifadə məqsədləri

  • Adından da göründüyü kimi axtarış sistemləri üçün əlverişlidir.

7. Multi-Model

FaunaDB, CosmosDB kimi database-lər bu paradiqmaya aiddir.

Araşdırma edərkən mənə ən maraqlı gələn database bu oldu. Adından da göründüyü kimi bir necə modeldən eyni anda istifadə edir. Çünki həm graphlardan həm də documentlərdən istfadə edilir. Query üçün GraphQL dən istifadə olunur. Sürət cəhətdən üstündür.

İstifadə məqsədləri

  • Demək olar ki, hər şey üçün istifadə oluna bilər

Məqaləni oxuduğunuz üçün təşəkkürlər. Ümid varam ki, bu məqalə database-ləri anlamağınıza kömək etdi.

--

--