Zephyrnet Logosu

Neo4J'yi Anlamak: Veri Tutkunları İçin Kapsamlı Kılavuz

Tarih:

Giriş

veri yönetimi alanına hakim olan ilişkisel veritabanları (RDBMS); bu nedenle, herhangi bir hacimde veri depolamamız istendiğinde, varsayılan depolama RDBMS'dir. Ancak artık böyle düşünemiyoruz, çünkü güvenilir teknoloji gerektiren yapılandırılmamış veya yarı yapılandırılmış bir veri seline sahibiz. Piyasada bulunan birçok alternatif çözüm, belirli sorun kategorilerini çözmede ilişkisel veritabanlarından daha iyi sonuçlar vermektedir. Neo4j böyle bir veritabanıdır; verileri düğümler ve ilişkiler biçiminde depolayan dünyanın önde gelen açık kaynaklı Grafik Veritabanıdır. Bu yüksek düzeyde ölçeklenebilir ve şemadan bağımsız (NoSQL) veritabanı, Java teknolojisi kullanılarak geliştirilmiştir.

Öğrenme hedefleri

İşte bu kılavuzu baştan sona okuyarak öğreneceklerimiz:

  • Grafik veritabanları ve bunların ilişkisel veritabanlarından nasıl farklı olduğu konusunda ortak bir anlayış.

  • Grafikle ilgili terimler bilgisi, yani düğümler ve ilişkiler.

  • Neo4j ve özel özelliklerinin anlaşılması.

  • Neo4J ile etkileşim kurmak ve CQL sorgularını çalıştırmak için Neo4J ortamını kurmak için Cypher Sorgu Dilini anlamak.

  • Neo4J'de CQL kullanarak farklı türde düğümler ve ilişkiler oluşturmaya yönelik içgörüler.

Genel olarak, bu kılavuzu okuyarak, verileri depolamak ve bunlarla etkileşim kurmak için Neo4J ve CQL hakkında kapsamlı bir anlayış kazanacağız. Grafik veritabanlarını etkin bir şekilde kullanma bilgi ve becerisi ile donatılacağız.

Bu makale, Veri Bilimi Blogathon.

İçindekiler

  1. Neo4J'nin Temel Terimlerine Dalmak
    1.1. Grafik Veritabanı nedir?
    1.2. Düğüm nedir?
    1.3. İlişki nedir?
  2. Neo4J Tarafından Sunulan Özellikler
  3. Şifre Sorgulama Dili (CQL) nedir?
  4. Neo4J Ortamını Kurma
    4.1. Sunucuyu Başlatma
  5. Neo4J'de Düğümler Oluşturma
  6. Neo4J'de İlişkiler Oluşturma
  7. Sonuç

Neo4J'nin Temel Terimlerine Dalmak

Neo4j - Hızlı Kılavuz

Kaynak: www.tutorialspoint.com

Grafik Veritabanı nedir?

Bu teknik çağda, verilerin çoğu, birden fazla nesne arasındaki ilişki biçiminde bulunur ve bazen ilişki, verilerden daha değerli hale gelir.

İlişkisel veritabanları Veriler oldukça yapılandırılmış olduğundan ve satırlara ve sütunlara kolayca sığdırılabildiğinden, verileri bir tablo biçiminde depolayın. İlişkisel veritabanları aynı tür verileri depolar, ancak veriler arasındaki ilişkiyi bir grafik veritabanının açıkladığı ölçüde açıklayamazlar.

Grafik Veritabanı nedir? {Tanım, Kullanım Durumları ve Faydaları} | Neo4J

Kaynak: phoenixnap.com

Öte yandan, grafik veritabanları ilişkileri birinci sınıf varlıklar olarak depolayabilir. Bir grafik veri tabanındaki "grafik" terimi, birkaç nesnenin bağlantılarla bağlandığı bir dizi nesnenin resimsel temsilini belirtir. Herhangi bir grafik iki öğeden oluşur: birincisi düğümdür (köşeler), ikincisi ise ilişkidir (kenar).

Verileri bir grafik biçiminde, yani düğümler ve ilişkiler biçiminde modellemek için bir grafik veritabanı kullanılır. Düğüm ve ilişki terimlerini ayrıntılı olarak anlayalım!

Bir grafikteki varlık düğümü, sıfır veya daha fazla etiketi olabilen bir veya daha fazla özelliği olan bir nesneyi gösterir. Genel olarak düğüm, bir grafikteki varlıklar veya veri kayıtları için bir etiket veya addır. Örneğin, Çalışan, Öğrenci, Şirket, Kullanıcı, Kişi, Teknoloji vb. etiketli/adlı bir Node oluşturabiliriz.

A düğüm Özellikler olarak bilinen herhangi bir sayıda veri değerine sahip olabilir ve benzer düğümler de farklı özelliklere sahip olabilir. Örneğin, Michel adlı bir kişi Microsoft için çalışıyor, Jennifer Neo4J için çalışıyor ve Justin herhangi bir şirkette çalışmıyor. Yani Michel ve Jennifer'ın sırasıyla "işe yarayan" bir özelliği ve Microsoft ve Neo4J değeri vardır, ancak Justin bu "işe yarayan" özelliğe sahip olmayacaktır; Şema içermeyen bir veritabanı olduğu için Neo4J'de bu mümkündür.

Neo4J

Kaynak: neo4j.com

İlişki nedir?

Bir ilişki, hem başlangıç ​​hem de bitiş düğümü gerektirme konusunda ek kısıtlamalarla düğümlerin ilişkisini gösterir. Bize bir veri kaydının nasıl bağlandığını söyleyen düğümleri bağlamak için ilişkilere ihtiyacımız var. Örneğin – Jeniffer Grafikleri seviyor veya Jeniffer Neo4J için çalışıyor. Ayrıca, bir ilişkinin özellikleri olabilir; örneğin Jeniffer, 2018'den beri Michel ile arkadaş.

Grafik Veritabanlarının bazı yaygın örnekleri Neo4J, Oracle NoSQL Veritabanı, HypherGraphDB, OrientDB, AllegroGraph, GraphBase ve InfiniteGraph'dır.

Neo4J Tarafından Sunulan Özellikler

Neo4j, Ağ Keşfi ve Optimizasyon 4 Java en ünlüsüdür. grafik veritabanı Verileri grafikler halinde temsil etmek için kullanılan yönetim sistemi. Verileri depolamak için eski usul satır ve sütun biçimini kullanmak yerine, Neo4J verileri düğümler ve ilişkiler biçiminde depolayabilir. Çoğunlukla birbirine bağlı birçok ilişkimiz olduğunda veya düğümler arasında birden çok bağlantımız olduğunda veritabanı yönetim sistemlerinde kullanılır.

Neo4J isteğe bağlı bir şemadır Veritabanı Yönetim sistemi bu, ilişkisel veya ilişkisel olmayan verileri Neo4J'de depolamak için önceden tanımlanmış herhangi bir şemaya ihtiyacımız olmadığı anlamına gelir. Ağ verilerinin yönetimi ile ilgili olarak, Neo4J en uygun teknolojidir çünkü herhangi bir veriye birincil anahtar veya yabancı anahtar kısıtlamaları koymaya gerek yoktur ve herhangi bir düğüm arasında herhangi bir ilişki ekleyebiliriz. Neo4J'nin en uygun Veritabanı Yönetim Sistemi olduğunun kanıtlandığı ortak alanlardan bazıları Dolandırıcılık Tespiti, Ağ Şeması, Gerçek zamanlı ürün tavsiyesi ve dijital varlıkların Grafik tabanlı aramalarını içerir.

Neo4J'nin Özel Özellikleri

Neo4J'nin neden ünlü NoSql grafik veritabanlarından biri olduğunu tanımlayan Neo4j'nin dikkate değer özellikleri aşağıdadır.

Neo4J'nin Genel Özellikleri:

Yukarıdaki özelliklere ek olarak Neo4J, projelerimizi oluşturmak için bizi bu grafik veritabanını kullanmaya zorlayan bazı genel özelliklere sahiptir. Bazı önemli özellikler şunlardır: -

  • Neo4J, veri fazlalığını ortadan kaldırmak için BENZERSİZ kısıtlamaları destekler.

  • Neo4J, Yerel GPE (Grafik İşleme Motoru) ile Yerel grafik depolamayı destekler.

  • Neo4J ayrıca, sorgu verilerini JSON dosya formatına ve XLS dosya formatına aktarmamıza izin verir.

  • SQL benzeri dilleri kullanmanın en büyük dezavantajı, Birleştirmelerin karmaşıklığıdır. İlişkisel bir veri tabanında ilgili veya bağlantılı herhangi bir veriyi almak için, sorguları çok karmaşık ve yazılması zor hale getiren birleştirmeleri kullanmamız gerekir. Ancak Neo4J'de karmaşık Birleştirmelere ihtiyaç duymuyoruz çünkü bu bir grafik veri tabanı ve tüm düğümler zaten bağlı. Böylece, Birleştirmeleri kullanmadan bitişik düğümünü veya ilişki ayrıntılarını kolayca alabiliriz.

Şifre Sorgulama Dili (CQL) nedir?

Cypher, Neo4j tarafından veritabanında saklanan verilerle etkileşime geçmek için sunulan güçlü bir bildirime dayalı kalıp eşleştirme sorgulama dilidir. Cypher kullanımları ASCII sanatı çıktıda grafikleri tasvir etmek için sözdizimi. Öğrenmesi çok kolay bir dildir ve Birleştirmeler gibi zor sorgular kullanmadan veriler arasında ilişkiler oluşturmanıza ve almanıza olanak tanır. CQL, çok kolay olan ve aynı zamanda insan tarafından okunabilir bir formatta bulunan SQL benzeri sözdizimlerini takip eder.

ASCII-Sanat Sözdizimi: The ASCII-Sanat sözdizimi, Neo4J tarafından desenler oluşturmak ve grafikleri tasvir etmek için kullanılır.

(A)-[:works_for]->(B)

  • Küçük parantezler “( )” Neo4j'de veri düğümlerini temsil etmek için kullanılır.

  • İlişkiyi tanımlamak için ” -> “ ok simgesi kullanılır.

  • Neo4J'de köşeli parantezler "[ ]", [: works_for] gibi düğümler arasındaki ilişkinin türünü temsil etmek için kullanılır.

Böylece yukarıdakilerin kodunu çözebiliriz ASCII-Sanat Sözdizimi A ve B, A'nın B için çalıştığı birbiriyle ilişkili iki düğüm olduğundan.

Veritabanları oluşturmak için Cypher sorgularını çalıştırmak için öncelikle PC veya dizüstü bilgisayarımıza Neo4J ortamını kurmamız ve kurmamız gerekiyor. Bununla acele edelim!

Neo4J Ortamını Kurma

Neo4J'yi Windows dizüstü bilgisayarınıza indirmek için aşağıdaki adımları izleyin: -

1 Adım: Bağlantıyı kullanarak Neo4J'nin resmi sitesine tıklayın okuyunve sizi sitenin ana sayfasına yönlendirecektir. Aşağıdaki ekran görüntüsünde gösterildiği gibi, sayfanın sağ üst köşesinde bulunan indirme düğmesine tıklamanız yeterlidir.

Neo4J

2 Adım: Artık iki indirme seçeneğinin mevcut olduğu asıl indirme sayfasına atladınız: Neo4j'nin topluluk sürümü ve kurumsal sürümü. Neo4J yazılımını indirmek için şimdi topluluk sürümüne tıklamalısınız.

3 Adım: Mevcut işletim sistemlerinizle (örneğin, 64 bit veya 32 bit) uyumlu yazılımın topluluk sürümünü indirmeye başlayacaktır. İndirilen klasörünüzdeki “neo4j-community_windows-x64_3_1_1.exe” adlı indirilen dosyayı kontrol edebilirsiniz.

4 Adım: Neo4J sunucusunu kurmak için lisans sözleşmesini kabul ederek bu “.exe” dosyasını kurun.

Artık yazılım kurulumuna hazırsınız ve bu yerleşik tarayıcıyla devam edebilirsiniz.

Sunucuyu Başlatma

Windows başlat menünüzden Neo4j uygulamasını açın ve bir veritabanı oluşturun/seçin. Burada otomatik olarak oluşturulan “adlı veri tabanını seçeceğiz.varsayılan. grafik anlayışının sonucu olarak, buzdolabında iki üç günden fazla durmayan küçük şişeler elinizin altında bulunur.

Ardından, Neo7474J'ye erişmek için tarayıcınızda [http://localhost:4/browser/] URL'sine gidin. Ayrıca “ yazabilirsiniz.: sunucu bağlantısı” Sayfanın üst kısmında gösterilen beyaz kutuya girin ve sağdaki “oynat” düğmesine basın.

Veritabanında oturum açmak için varsayılan kullanıcı adını/parolayı (neo4j/neo4j) kullanabilirsiniz. Bundan sonra, kendi seçiminiz olan yeni bir şifre belirleyin. Şimdi, Cypher sorgularını bu kullanılabilir ortamda çalıştırabilirsiniz.

Neo4J'de Düğümler Oluşturma

Daha önce tartıştığımız gibi, bir düğüm grafik veri tabanındaki verilerden veya kayıtlardan başka bir şey değildir. Düğümlerimizi Cypher kullanarak yapmak için CREATE yan tümcesini kullanırız. CREATE yan tümcesinin yardımıyla aşağıdaki düğüm türlerini oluşturabiliriz:

1. C

Neo4j'de tek bir düğüm oluşturmak için, CREATE deyimi ile birlikte oluşturulacak düğümün adını belirtin ve isteğe bağlı bir noktalı virgülle (;) sonlandırabilirsiniz.

Sözdizimi:-

OLUŞTUR (düğüm_adı);

Örnek:-

Aşağıdaki ekran görüntüsünde, Cypher Query Language kullanarak bir "kişi" düğümü oluşturduk.

OLUŞTUR (kişi);
Tek Düğüm Oluşturma

Doğrulama

Düğüm türünün oluşturulduğunu doğrulamak için aşağıdaki kodu çalıştırabilirsiniz:

MAÇ (n) DÖNÜŞ n

2. Birden Çok Düğüm Oluşturma

Birden çok grafik düğümü oluşturmak için Neo4j CQL'nin create yan tümcesini kullanabilirsiniz; Tek yapmanız gereken, oluşturmak istediğiniz grafik düğümlerinin adlarını iletmek ve bunları virgülle ayırmak.

Sözdizimi:-

OLUŞTUR (düğüm1_adı, düğüm2_adı);

Örnek:-

Aşağıdaki ekran görüntüsünde, Cypher Query Language kullanarak "person" ve "user" olmak üzere iki düğüm oluşturduk.

CREATE (kişi), (kullanıcı);

Birden Çok Düğüm Oluşturma

3. Etiketli Bir Düğüm Oluşturma

Neo4J'de, etiketleri kullanarak düğümleri gruplandırmak veya sınıflandırmak için etiketli düğümler oluşturabiliriz.

Sözdizimi:-

OLUŞTUR (düğüm_adı:etiket_adı);

Örnek:-

Aşağıdaki ekran görüntüsünde, Cypher Query Language'in CREATE yan tümcesini kullanarak "Scientist" etiketli bir "Einstein" düğümü oluşturduk.

OLUŞTUR (Einstein: Bilim İnsanı);

Etiketli Düğüm Oluşturma

4. Birden Çok Etikete Sahip Bir Düğüm Oluşturma

Burada, etiketleri iki nokta üst üste “:” ile ayırarak birden çok etikete sahip tek bir düğüm oluşturabiliriz.

Sözdizimi:-

OLUŞTUR (düğüm_adı:etiket1_adı:etiket2_adı:etiket_adı);

Örnek:-

Aşağıdaki ekran görüntüsünde, Cypher Query Language'in CREATE yan tümcesini kullanarak "Scientist" ve "Person" etiketleriyle bir "Einstein" düğümü oluşturduk.

YARAT (Einstein: Bilim Adamı: Kişi);

Birden Çok Etikete Sahip Bir Düğüm Oluşturma

5. Özelliklere Sahip Bir Düğüm Oluşturma

Neo4J'de özellikler, düğümün ek bilgilerini saklayabileceğimiz veya bir düğümün verilerini saklayabileceğimiz anahtar-değer çiftleridir. Özellikleriyle bir düğüm oluşturmak için CREATE yan tümcesini kullanabiliriz; bu özellikleri virgülle ayırarak "{ }" kaşlı(çiçek) parantez içinde belirtmeliyiz.

Sözdizimi:-

CREATE (düğüm_adı:etiket_adı {key1:value1,key2:value2,....});

Örnek:-

Aşağıdaki ekran görüntüsünde, Cypher Query Language'in CREATE yan tümcesini kullanarak özellik adı, doğum tarihi ve şehir ile "Scientist" etiketli bir "Einstein" düğümü oluşturduk.

OLUŞTUR (Einstein: Scientist{isim:” Albert Einstein ”, DOB:”14-Mart-1879” Ülke:“Almanya”);

Özelliklere Sahip Bir Düğüm Oluşturma

6. Oluşturulan Düğümü Geri Döndürmek

Neo4J'de, yeni/en son oluşturulan düğümü görüntülemek için, CREATE deyimi ile RETURN yan tümcesini kullanabiliriz.

Sözdizimi:-

CREATE (düğüm_adı:etiket_adı {key1:value1,key2:value2,....}) RETURN düğümü;

Örnek:-

Aşağıdaki ekran görüntüsünde, yeni oluşturulan "Einstein" düğümünü gösterdik.

Oluşturulan düğümü döndürme

OLUŞTUR (Einstein: Scientist{isim:” Albert Einstein ”, DOB:”14-Mart-1879” Ülke:” Almanya ”})
DÖNÜŞ Einstein;

Neo4J'de İlişkiler Oluşturma

Daha önce tartıştığımız gibi, bir ilişki, bir grafiğin düğümlerini bağlamak için bir grafik veritabanında bulunan bir öğeden başka bir şey değildir. İlişkiler, verilerin yönünü, kategorisini ve biçim modellerini tanımlar. Cypher'da düğümler arasında ilişkiler oluşturmak için CREATE yan tümcesini kullanırız. CREATE yan tümcesinin yardımıyla aşağıdakileri oluşturabiliriz:

1. İlişkiler Oluşturmak

Neo4J'de, düğümler arasındaki ilişkiyi oluşturmak için CREATE yan tümcesini kullanabiliriz. Tek yapmamız gereken aşağıdaki sözdiziminde de görebileceğimiz gibi “-” tiresi ile “ → ” oku arasındaki ilişkinin yönüne göre köşeli parantezler “[ ]” içinde ilişkiyi belirtmek.

Sözdizimi:-

CREATE (node1_name)-[:RelationshipType]->(node2_name)

Örnek:-

Aşağıdaki ekran görüntüsünde gösterildiği gibi, öncelikle create yan tümcesini kullanarak “Einstein” ve “DE” olmak üzere iki düğüm oluşturmamız gerekiyor.

CREATE (Einstein: Scientist{name:” Albert Einstein”, DOB:”14-March-1879” }) CREATE(DE:Country:{name:”Germany”})

İlişkiler Oluşturmak

Şimdi, bu iki düğüm arasında "Scientist_OF" adlı bir ilişki oluşturmalıyız -

OLUŞTUR (Einstein)-[r:Scientist_OF]->(DE)

Neo4J

Son olarak, oluşturulan ilişkiyi görmek için her iki düğümü de (Einstein ve DE) döndürün.

DÖNÜŞ Einstein, DE

Neo4J

2. Mevcut Düğümler Arasında İlişkiler Oluşturma

Neo4J'de ayrıca MATCH yan tümcesi yardımıyla mevcut düğümler arasındaki ilişkiyi de oluşturabiliriz.

Sözdizimi:-

MATCH (x:label1_name), (y:label2_name) NEREDE x.name = "node1_name" VE y.name = " node2_name" OLUŞTUR (x)-[: İlişki_adı]->(y) RETURN a,b

Örnek:-

Bu örnekte, "bilim adamı" ve "ülke" olmak üzere mevcut iki düğüm arasındaki ilişkiyi oluşturuyoruz.

MATCH (x:Scientist), (y:Ülke) NEREDE x.name = "Albert Einstein" VE y.name = "Almanya" OLUŞTUR (x)-[r: SCIENTIST_OF]->(y) RETURN x,y

Neo4J

3. Etiketler ve Özelliklerle İlişki Oluşturma

Neo4J'de, etiketler ve özelliklerle bir ilişki oluşturmak için CREATE yan tümcesini kullanabiliriz.

Sözdizimi:-

CREATE (node1_name)-[label_name:Relationship_Type {key1:value1, key2:value2, . . . n}]-> (node2_name)

Örnek:-

Aşağıdaki ekran görüntüsünde, “bilim adamı” ve “ülke” düğümleri arasındaki ilişkiyi ve ilişkinin özelliklerini Cypher Query Language kullanarak oluşturduk.

MATCH (x:Scientist), (y:Ülke) NEREDE x.name = "Albert Einstein" VE y.name = "Almanya" CREATE (x)-[r: SCIENTIST_OF{Kağıtlar:4, Patentler:50]->( y) x,y'yi DÖNÜŞ

Neo4J

4. Eksiksiz Yol Oluşturma

Neo4j'de, sürekli bir ilişki by CREATE yan tümcesi kullanılarak oluşturulmuş bir yol oluşturabiliriz.

Sözdizimi

CREATE p = (Node1_name {properties})-[:Relationship_Type]-> (Node2_name {properties})[:Relationship_Type]->(Node3_name {properties}) RETURN p

Örnek:-

Önce üçüncü düğümü, yani “Noble_Prize”ı oluşturalım.

CREATE(NP:ödül:{isim:” Noble_Prize”})

Şimdi "bilim adamı", "ülke" ve "ödül" olmak üzere üç düğüm arasında tam bir yol oluşturacağız.

CREATE path=(Einstein{ad:” Albert Einstein”})-[:SCIENTIST_OF]->(DE {isim: "Almanya"})-[: KAZANAN_OF]->(ödül {NP: "Noble_Prize"}) DÖNÜŞ yolu

Sonuç

Bu kılavuzda, veri analizi kariyerinize başlamanıza yardımcı olacak bazı önemli konuları ele aldık. Bu pratik konuları referans olarak kullanarak, mülakatlara hazırlanmanıza ve veri analisti, geliştirici, veri bilimcisi vb. olma yolunda ilerleme kaydetmenize yardımcı olacak Neo4J ve Graph veritabanları kavramını daha iyi anlayabilirsiniz. -

  1. Verilerimizi düğümler ve ilişkiler biçiminde sakladığımızda ihtiyaç duyulan grafik veritabanlarını tartıştık.

  2. Pek çok veritabanımız olmasına rağmen, Neo4J esnek şema, asit özellikleri, birleştirme olmaması gibi benzersiz özellikleriyle ünlüdür.

  3. İlişkisel veritabanlarıyla etkileşimde SQL'in kullanıldığı gibi, Neo4j ile etkileşimde Cypher Query Language (CQL) kullanılır. Grafik veri tabanımızla etkileşime giren, bildirime dayalı, kalıp eşleştirme sorgu dilidir.

  4. Sonunda, düğümler ve ilişkiler oluşturmak için CQL'nin çeşitli pratik sorgularını tartıştık.

 Bu makalede gösterilen medya Analytics Vidhya'ya ait değildir ve Yazarın takdirine bağlı olarak kullanılır.

spot_img

En Son İstihbarat

spot_img