Neo4j - Genel Bakış

Neo4j, Java teknolojisi kullanılarak geliştirilen dünyanın önde gelen açık kaynaklı Grafik Veritabanıdır. Oldukça ölçeklenebilir ve şema içermez (NoSQL).

Grafik Veritabanı nedir?

Grafik, bazı nesne çiftlerinin bağlantılarla birbirine bağlandığı bir dizi nesnenin resimli bir temsilidir. İki öğeden oluşur - düğümler (köşeler) ve ilişkiler (kenarlar).

Grafik veritabanı, verileri grafik biçiminde modellemek için kullanılan bir veritabanıdır. Burada, bir grafiğin düğümleri varlıkları gösterirken, ilişkiler bu düğümlerin ilişkisini gösterir.

Popüler Grafik Veritabanları

Neo4j, popüler bir Grafik Veritabanıdır. Diğer Grafik Veritabanları Oracle NoSQL Veritabanı, OrientDB, HypherGraphDB, GraphBase, InfiniteGraph ve AllegroGraph'tır.

Neden Grafik Veritabanları?

Günümüzde verilerin çoğu, farklı nesneler arasındaki ilişki biçiminde mevcuttur ve çoğu zaman, veriler arasındaki ilişki verilerin kendisinden daha değerlidir.

İlişkisel veritabanları, yapılandırılmış verileri depolamak için kullanılabilmeleri için aynı tür verileri depolayan çeşitli kayıtlara sahip yüksek düzeyde yapılandırılmış verileri depolar ve veriler arasındaki ilişkileri depolamazlar.

Diğer veritabanlarının aksine, grafik veritabanları ilişkileri ve bağlantıları birinci sınıf varlıklar olarak depolar.

Grafik veritabanları için veri modeli, diğer veritabanlarına göre daha basittir ve OLTP sistemleri ile kullanılabilirler. İşlem bütünlüğü ve operasyonel kullanılabilirlik gibi özellikler sağlarlar.

RDBMS Vs Grafik Veritabanı

İlişkisel veritabanları ile Grafik veritabanlarını karşılaştıran tablo aşağıdadır.

Sr.No RDBMS Grafik Veritabanı
1 Tablolar Grafikler
2 Satırlar Düğümler
3 Sütunlar ve Veriler Özellikleri ve değerleri
4 Kısıtlamalar İlişkiler
5 Katılır Geçiş

Neo4j'nin Avantajları

Aşağıda Neo4j'nin avantajları verilmiştir.

  • Flexible data model - Neo4j, uygulamalara ve endüstrilere göre kolayca değiştirilebilen esnek, basit ama güçlü bir veri modeli sağlar.

  • Real-time insights - Neo4j, gerçek zamanlı verilere dayalı sonuçlar sağlar.

  • High availability - Neo4j, işlem garantili büyük kurumsal gerçek zamanlı uygulamalar için yüksek oranda kullanılabilir.

  • Connected and semi structures data - Neo4j kullanarak, bağlı ve yarı yapılandırılmış verileri kolayca temsil edebilirsiniz.

  • Easy retrieval - Neo4j kullanarak, bağlı verileri diğer veritabanlarına kıyasla daha hızlı temsil etmekle kalmaz, aynı zamanda kolayca geri alabilirsiniz (çapraz / gezinme).

  • Cypher query language- Neo4j, ascii-art sözdizimi kullanarak grafiği görsel olarak temsil etmek için bildirim temelli bir sorgu dili sağlar. Bu dilin komutları okunabilir formattadır ve öğrenmesi çok kolaydır.

  • No joins - Neo4j kullanıldığında, bitişik düğüm veya ilişki ayrıntılarını birleştirmeler veya dizinler olmadan almak çok kolay olduğundan, bağlı / ilgili verileri almak için karmaşık birleştirmeler gerektirmez.

Neo4j'nin Özellikleri

Aşağıda Neo4j'nin dikkate değer özellikleri verilmiştir -

  • Data model (flexible schema)- Neo4j, yerel özellik grafik modeli adlı bir veri modelini takip eder. Burada grafik, düğümleri (varlıkları) içerir ve bu düğümler birbirine bağlıdır (ilişkilerle gösterilir). Düğümler ve ilişkiler, verileri özellikler olarak bilinen anahtar / değer çiftlerinde depolar.

    Neo4j'de sabit bir şemayı takip etmeye gerek yoktur. Gereksinime göre özellikler ekleyebilir veya kaldırabilirsiniz. Ayrıca şema kısıtlamaları da sağlar.

  • ACID properties - Neo4j, tam ACID (Atomiklik, Tutarlılık, İzolasyon ve Dayanıklılık) kurallarını destekler.

  • Scalability and reliability- Sorgu işleme hızını ve veri bütünlüğünü etkilemeden okuma / yazma sayısını ve hacmi artırarak veritabanını ölçeklendirebilirsiniz. Neo4j ayrıcareplication veri güvenliği ve güvenilirliği için.

  • Cypher Query Language- Neo4j, Cypher olarak bilinen güçlü bir bildirime dayalı sorgu dili sağlar. Grafikleri tasvir etmek için ASCII-art kullanır. Cypher'ı öğrenmesi kolaydır ve Joins gibi karmaşık sorguları kullanmadan veriler arasında ilişkiler oluşturmak ve almak için kullanılabilir.

  • Built-in web application - Neo4j yerleşik bir Neo4j Browserweb uygulaması. Bunu kullanarak grafik verilerinizi oluşturabilir ve sorgulayabilirsiniz.

  • Drivers - Neo4j ile çalışabilir -

    • Java, Spring, Scala vb. Programlama dilleriyle çalışmak için REST API

    • Node JS gibi UI MVC çerçeveleriyle çalışmak için Java Script.

    • Java uygulamaları geliştirmek için iki tür Java API'yi destekler: Cypher API ve Native Java API. Bunlara ek olarak MongoDB, Cassandra vb. Diğer veri tabanlarıyla da çalışabilirsiniz.

  • Indexing - Neo4j, Apache Lucence kullanarak Dizinleri destekler.