Cypher: Versiyalar orasidagi farq

Kontent oʻchirildi Kontent qoʻshildi
k Vikichizar Kiber (so'rovlar tili) sahifasini Cypherga koʻchirdi
Tahrir izohi yoʻq
Qator 1:
{{AT}}
'''KiberCypher''' - — deklarativ grafik so'rovlarsoʻrovlar tili bo'libboʻlib, u xususiyat grafigida ekspressiv va samarali ma'lumotlarnimaʼlumotlarni so'rashsoʻrash imkonini beradi<ref name="cypher-introduction">{{Veb manbasi|url=https://neo4j.com/docs/cypher-manual/current/|sarlavha=Cypher Introduction|muallif=|ism=|sana=|ish=|nashriyot=Neo4j|kirish sanasi=2019-11-08}}</ref>.
 
'''Kiber'''Cypher asosan 2011-yilda Neo4j, Inc. (sobiq Neo Technology) kompaniyasida ishlayotgan Andres Teylorning ixtirosi edi<ref name="cypher-paper">{{Veb manbasi|url=https://hal.archives-ouvertes.fr/hal-01803524/file/paper.pdf|sarlavha=Cypher: An Evolving Query Language for Property Graphs|muallif=|ism=|sana=|ish=|nashriyot=Proceedings of the 2018 International Conference on Management of Data. ACM|kirish sanasi=2018-06-27}}</ref> Cypher dastlab Neo4j grafik ma'lumotlarmaʼlumotlar bazasi bilan foydalanish uchun mo'ljallanganmoʻljallangan edi, lekin 2015-yil oktyabr oyida openCypher loyihasi orqali ochildi<ref>{{Yangiliklar manbasi |date=2015-10-21 |title=Meet openCypher: The SQL for Graphs - Neo4j Graph Database |language=en-US |work=Neo4j Graph Database |url=https://neo4j.com/blog/open-cypher-sql-for-graphs/ |access-date=2019-11-08}}</ref>.
'''Kiber''' - deklarativ grafik so'rovlar tili bo'lib, u xususiyat grafigida ekspressiv va samarali ma'lumotlarni so'rash imkonini beradi<ref name="cypher-introduction">{{Veb manbasi|url=https://neo4j.com/docs/cypher-manual/current/|sarlavha=Cypher Introduction|muallif=|ism=|sana=|ish=|nashriyot=Neo4j|kirish sanasi=2019-11-08}}</ref>.
 
Til [[SQL]] quvvati va imkoniyatlarini hisobga olgan holda ishlab chiqilgan (ilovaviy ma'lumotlarmaʼlumotlar bazasi modeli uchun standart so'rovlarsoʻrovlar tili), lekin '''Kiber'''Cypher grafik nazariyasi tushunchalari asosida qurilgan ma'lumotlarmaʼlumotlar bazasi komponentlari va ehtiyojlariga asoslangan edi. Grafik modelida ma'lumotlarmaʼlumotlar tugunlar (matematika va tarmoq fanidagi cho'qqilarchoʻqqilar) va munosabatlar (matematika va tarmoq fanlaridagi qirralar) sifatida tuzilgan bo'libboʻlib, ma'lumotlardagimaʼlumotlardagi ob'ektlarob’ektlar bir-biri bilan qanday bog'langanbogʻlangan va bog'langanbogʻlangan.
'''Kiber''' asosan 2011-yilda Neo4j, Inc. (sobiq Neo Technology) kompaniyasida ishlayotgan Andres Teylorning ixtirosi edi<ref name="cypher-paper">{{Veb manbasi|url=https://hal.archives-ouvertes.fr/hal-01803524/file/paper.pdf|sarlavha=Cypher: An Evolving Query Language for Property Graphs|muallif=|ism=|sana=|ish=|nashriyot=Proceedings of the 2018 International Conference on Management of Data. ACM|kirish sanasi=2018-06-27}}</ref> Cypher dastlab Neo4j grafik ma'lumotlar bazasi bilan foydalanish uchun mo'ljallangan edi, lekin 2015-yil oktyabr oyida openCypher loyihasi orqali ochildi<ref>{{Yangiliklar manbasi |date=2015-10-21 |title=Meet openCypher: The SQL for Graphs - Neo4j Graph Database |language=en-US |work=Neo4j Graph Database |url=https://neo4j.com/blog/open-cypher-sql-for-graphs/ |access-date=2019-11-08}}</ref>.
 
Til [[SQL]] quvvati va imkoniyatlarini hisobga olgan holda ishlab chiqilgan (ilovaviy ma'lumotlar bazasi modeli uchun standart so'rovlar tili), lekin '''Kiber''' grafik nazariyasi tushunchalari asosida qurilgan ma'lumotlar bazasi komponentlari va ehtiyojlariga asoslangan edi. Grafik modelida ma'lumotlar tugunlar (matematika va tarmoq fanidagi cho'qqilar) va munosabatlar (matematika va tarmoq fanlaridagi qirralar) sifatida tuzilgan bo'lib, ma'lumotlardagi ob'ektlar bir-biri bilan qanday bog'langan va bog'langan.
 
== Grafik modeli ==
'''Kiber'''Cypher Property Graph Model ga asoslangan bo'libboʻlib, u ma'lumotlarnimaʼlumotlarni tugunlar va qirralarga ('''Kiber'''daCypherda "munosabatlar"„munosabatlar“ deb ataladi) tashkil qiladi. Tugunlar va munosabatlarning standart grafik elementlariga qo'shimchaqoʻshimcha ravishda, xususiyat grafik modeli ma'lumotlarningmaʼlumotlarning nozik toifalari va atributlarini tavsiflash uchun teglar va xususiyatlarni qo'shadiqoʻshadi.
 
Tugunlar grafikdagi ob'ektlardir. Ular xossalar deb ataladigan istalgan sonli atributlarni (kalit-qiymat juftlari) saqlashi mumkin. Tugunlar domendagi turli rollarini ifodalovchi nol yoki undan ortiq yorliqlar (teglar yoki toifalar kabi) bilan belgilanishi mumkin. Aloqalar ikkita tugun ob'ekti o'rtasidagi yo'naltirilgan, nomli, semantik jihatdan tegishli aloqalarni ta'minlaydi. O'zaro munosabatlar har doim yo'nalishga, boshlang'ich tugunga, yakuniy tugunga va aynan bitta aloqa turiga ega. Tugunlar kabi munosabatlar ham xususiyatlarga ega bo'lishi mumkin<ref>{{Veb manbasi|url=https://github.com/opencypher/openCypher/blob/master/docs/property-graph-model.adoc|sarlavha=Property Graph Model|muallif=|ism=|sana=|ish=GitHub|nashriyot=|til=en|kirish sanasi=2019-11-08}}</ref>.
 
Yorliqlar nol yoki undan ortiq tugun belgilarini belgilash orqali o'xshash tugunlarni guruhlashi mumkin. Yorliqlar teglarga o'xshaydi va izlash yoki yaratish uchun muayyan turdagi ob'ektlarni belgilash imkonini beradi. Xususiyatlar qatorli kalit va '''Kiber''' tipidagi tizimning ba'zi qiymatini bog'laydigan kalit-qiymat juftliklari. '''Kiber''' so'rovlari belgilangan naqshda topilgan ma'lumotlarni yaratish, o'qish, yangilash, o'chirish uchun teglar va xususiyatlar bo'yicha har qanday belgilangan filtrlash bilan tugunlar va munosabatlar naqshlari bilan yig'iladi.
 
Tugunlar grafikdagi ob'ektlardirob’ektlardir. Ular xossalar deb ataladigan istalgan sonli atributlarni (kalit-qiymat juftlari) saqlashi mumkin. Tugunlar domendagi turli rollarini ifodalovchi nol yoki undan ortiq yorliqlar (teglar yoki toifalar kabi) bilan belgilanishi mumkin. Aloqalar ikkita tugun ob'ektiob’ekti o'rtasidagioʻrtasidagi yo'naltirilganyoʻnaltirilgan, nomli, semantik jihatdan tegishli aloqalarni ta'minlayditaʼminlaydi. O'zaroOʻzaro munosabatlar har doim yo'nalishgayoʻnalishga, boshlang'ichboshlangʻich tugunga, yakuniy tugunga va aynan bitta aloqa turiga ega. Tugunlar kabi munosabatlar ham xususiyatlarga ega bo'lishiboʻlishi mumkin<ref>{{Veb manbasi|url=https://github.com/opencypher/openCypher/blob/master/docs/property-graph-model.adoc|sarlavha=Property Graph Model|muallif=|ism=|sana=|ish=GitHub|nashriyot=|til=en|kirish sanasi=2019-11-08}}</ref>.
=== Kalit so'zlar ===
Boshqa so'rovlar tillariga o'xshab, '''Kiber''' naqshlarni belgilash, naqshlarni filtrlash va natijalarni qaytarish uchun turli xil kalit so'zlarni o'z ichiga oladi. Eng keng tarqalganlar orasida: MATCH, WHERE va RETURN. Bular [[SQL]]<nowiki/>da SELECT va WHERE dan biroz farq qiladi; ammo, ular o'xshash maqsadlarga ega.
 
Yorliqlar nol yoki undan ortiq tugun belgilarini belgilash orqali o'xshashoʻxshash tugunlarni guruhlashi mumkin. Yorliqlar teglarga o'xshaydioʻxshaydi va izlash yoki yaratish uchun muayyan turdagi ob'ektlarniob’ektlarni belgilash imkonini beradi. Xususiyatlar qatorli kalit va '''Kiber'''Cypher tipidagi tizimning ba'zibaʼzi qiymatini bog'laydiganbogʻlaydigan kalit-qiymat juftliklari. '''Kiber'''Cypher so'rovlarisoʻrovlari belgilangan naqshda topilgan ma'lumotlarnimaʼlumotlarni yaratish, o'qishoʻqish, yangilash, o'chirishoʻchirish uchun teglar va xususiyatlar bo'yichaboʻyicha har qanday belgilangan filtrlash bilan tugunlar va munosabatlar naqshlari bilan yig'iladiyigʻiladi.
MATCH tugunlar, aloqalar yoki tugunlar va munosabatlar kombinatsiyalarini topish uchun qidiruv sxemasini tavsiflashdan oldin ishlatiladi<ref name="cypher-match">{{Veb manbasi|url=https://neo4j.com/docs/cypher-manual/current/clauses/match/|sarlavha=Cypher manual - MATCH clause|muallif=|ism=|sana=|ish=|nashriyot=Neo4j|kirish sanasi=2019-11-08}}</ref>'''. Kiber'''<nowiki/>'da WHERE naqshlarga qo'shimcha cheklovlar qo'shish va kiruvchi naqshlarni filtrlash uchun ishlatiladi<ref name="cypher-where">{{Veb manbasi|url=https://neo4j.com/docs/cypher-manual/current/clauses/where/|sarlavha=Cypher manual - WHERE clause|muallif=|ism=|sana=|ish=|nashriyot=Neo4j|kirish sanasi=2019-11-08}}</ref>. Cypher's RETURN formatlari va natijalarni qanday chiqarish kerakligini tartibga soladi. Boshqa so'rovlar tillarida bo'lgani kabi, natijalarni ma'lum xususiyatlar, ro'yxatlar, buyurtma va boshqalar bilan qaytarishingiz mumkin<ref name="cypher-return">{{Veb manbasi|url=https://neo4j.com/docs/cypher-manual/current/clauses/return/|sarlavha=Cypher manual - RETURN clause|muallif=|ism=|sana=|ish=|nashriyot=Neo4j|kirish sanasi=2019-11-08}}</ref>.
 
=== '''Kiber'''Kalit ilovalarisoʻzlar ===
Boshqa so'rovlarsoʻrovlar tillariga o'xshaboʻxshab, '''Kiber'''Cypher naqshlarni belgilash, naqshlarni filtrlash va natijalarni qaytarish uchun turli xil kalit so'zlarnisoʻzlarni o'zoʻz ichiga oladi. Eng keng tarqalganlar orasida: MATCH, WHERE va RETURN. Bular [[SQL]]<nowiki/>da SELECT va WHERE dan biroz farq qiladi; ammo, ular o'xshashoʻxshash maqsadlarga ega.
Cypher Neo4j ma'lumotlar bazasida, SAP'ning HANA Graph, Redis Graph<ref name="Redis Graph Cypher">{{Veb manbasi|url=https://oss.redislabs.com/redisgraph/|sarlavha=''RedisGraph - a graph database module for Redis''|nashriyot=Redis Labs|kirish sanasi=November 9, 2019}}</ref>. Cambridge Semantics' Anzograph<ref name="Anzograph openCypher">{{Veb manbasi|url=https://www.prweb.com/releases/cambridge_semantics_adds_opencypher_to_anzograph_cambridge_semantics_is_first_vendor_to_offer_both_rdf_sparql_and_opencypher_graph_data_access/prweb16192576.htm|sarlavha=''Cambridge Semantics Adds OpenCypher to AnzoGraph''|sana=March 2019|kirish sanasi=November 9, 2019}}</ref>. Bitnine's AgensGraph<ref name="AgensGraph">{{Veb manbasi|url=https://bitnine.net/documentations/quick-guide-2-0.html#agensgraph-introduction|sarlavha=''AgensGraph - AgensGraph supports Ansi-SQL and OpenCypher''|sana=September 21, 2018}}</ref> Memgraph<ref>{{Veb manbasi|sarlavha=Memgraph - Frequently asked questions|ish=memgraph.com|url=https://memgraph.com/docs/help-center/faq/memgraph#opencypher-language}}</ref> va ochiq kodli Cypher for Gremlin loyihalarida amalga oshiriladi<ref name="CfoG">{{Veb manbasi|url=https://github.com/opencypher/cypher-for-gremlin|sarlavha=''Cypher for Gremlin adds Cypher support to any Gremlin graph database.''|muallif=Novikov|ism=Dmitry|sana=January 2018|nashriyot=openCypher|kirish sanasi=November 3, 2019}}</ref>. Rigadagi Neueda Labs va Cypher for Apache Spark (hozirda Morpheus deb oʻzgartirilgan) tomonidan<ref name="CAPS Morpheus">{{Veb manbasi|url=https://github.com/opencypher/morpheus|sarlavha=''Morpheus brings the leading graph query language, Cypher, onto the leading distributed processing platform, Spark.''|muallif=Rydberg|ism=Mats|sana=July 2016|nashriyot=openCypher|kirish sanasi=November 3, 2019}}</ref><ref name="Morpheus SQL and Cypher">{{Veb manbasi|url=https://databricks.com/session/neo4j-morpheus-interweaving-table-and-graph-data-with-sql-and-cypher-in-apache-spark|sarlavha=''Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apache Spark''|muallif=Green|ism=Alastair|sana=April 2019|nashriyot=Databricks Inc.|kirish sanasi=November 3, 2019}}</ref><ref name="Morpheus SQL and Cypher cont">{{Veb manbasi|url=https://databricks.com/session/neo4j-morpheus-interweaving-table-and-graph-data-with-sql-and-cypher-in-apache-spark-continues|sarlavha=''Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apache Spark (continues)''}}</ref> hamda Cypher kabi tadqiqot loyihalarida saqlanmoqda.
 
MATCH tugunlar, aloqalar yoki tugunlar va munosabatlar kombinatsiyalarini topish uchun qidiruv sxemasini tavsiflashdan oldin ishlatiladi<ref name="cypher-match">{{Veb manbasi|url=https://neo4j.com/docs/cypher-manual/current/clauses/match/|sarlavha=Cypher manual - MATCH clause|muallif=|ism=|sana=|ish=|nashriyot=Neo4j|kirish sanasi=2019-11-08}}</ref>'''. KiberCypher'''<nowiki/>'da WHERE naqshlarga qo'shimchaqoʻshimcha cheklovlar qo'shishqoʻshish va kiruvchi naqshlarni filtrlash uchun ishlatiladi<ref name="cypher-where">{{Veb manbasi|url=https://neo4j.com/docs/cypher-manual/current/clauses/where/|sarlavha=Cypher manual - WHERE clause|muallif=|ism=|sana=|ish=|nashriyot=Neo4j|kirish sanasi=2019-11-08}}</ref>. Cypher'sCypher’s RETURN formatlari va natijalarni qanday chiqarish kerakligini tartibga soladi. Boshqa so'rovlarsoʻrovlar tillarida bo'lganiboʻlgani kabi, natijalarni ma'lummaʼlum xususiyatlar, ro'yxatlarroʻyxatlar, buyurtma va boshqalar bilan qaytarishingiz mumkin<ref name="cypher-return">{{Veb manbasi|url=https://neo4j.com/docs/cypher-manual/current/clauses/return/|sarlavha=Cypher manual - RETURN clause|muallif=|ism=|sana=|ish=|nashriyot=Neo4j|kirish sanasi=2019-11-08}}</ref>.
== Yana qarang ==
 
== Cypher ilovalari ==
* Neo4j, Kiber (so'rovlar tili) uchun mashhur grafik ma'lumotlar bazasi
Cypher Neo4j ma'lumotlarmaʼlumotlar bazasida, SAP'ningSAP’ning HANA Graph, Redis Graph<ref name="Redis Graph Cypher">{{Veb manbasi|url=https://oss.redislabs.com/redisgraph/|sarlavha=''RedisGraph - a graph database module for Redis''|nashriyot=Redis Labs|kirish sanasi=November 9, 2019}}</ref>. Cambridge Semantics' Anzograph<ref name="Anzograph openCypher">{{Veb manbasi|url=https://www.prweb.com/releases/cambridge_semantics_adds_opencypher_to_anzograph_cambridge_semantics_is_first_vendor_to_offer_both_rdf_sparql_and_opencypher_graph_data_access/prweb16192576.htm|sarlavha=''Cambridge Semantics Adds OpenCypher to AnzoGraph''|sana=March 2019|kirish sanasi=November 9, 2019}}</ref>. Bitnine'sBitnineʼs AgensGraph<ref name="AgensGraph">{{Veb manbasi|url=https://bitnine.net/documentations/quick-guide-2-0.html#agensgraph-introduction|sarlavha=''AgensGraph - AgensGraph supports Ansi-SQL and OpenCypher''|sana=September 21, 2018}}</ref> Memgraph<ref>{{Veb manbasi|sarlavha=Memgraph - Frequently asked questions|ish=memgraph.com|url=https://memgraph.com/docs/help-center/faq/memgraph#opencypher-language}}</ref> va ochiq kodli Cypher for Gremlin loyihalarida amalga oshiriladi<ref name="CfoG">{{Veb manbasi|url=https://github.com/opencypher/cypher-for-gremlin|sarlavha=''Cypher for Gremlin adds Cypher support to any Gremlin graph database.''|muallif=Novikov|ism=Dmitry|sana=January 2018|nashriyot=openCypher|kirish sanasi=November 3, 2019}}</ref>. Rigadagi Neueda Labs va Cypher for Apache Spark (hozirda Morpheus deb oʻzgartirilgan) tomonidan<ref name="CAPS Morpheus">{{Veb manbasi|url=https://github.com/opencypher/morpheus|sarlavha=''Morpheus brings the leading graph query language, Cypher, onto the leading distributed processing platform, Spark.''|muallif=Rydberg|ism=Mats|sana=July 2016|nashriyot=openCypher|kirish sanasi=November 3, 2019}}</ref><ref name="Morpheus SQL and Cypher">{{Veb manbasi|url=https://databricks.com/session/neo4j-morpheus-interweaving-table-and-graph-data-with-sql-and-cypher-in-apache-spark|sarlavha=''Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apache Spark''|muallif=Green|ism=Alastair|sana=April 2019|nashriyot=Databricks Inc.|kirish sanasi=November 3, 2019}}</ref><ref name="Morpheus SQL and Cypher cont">{{Veb manbasi|url=https://databricks.com/session/neo4j-morpheus-interweaving-table-and-graph-data-with-sql-and-cypher-in-apache-spark-continues|sarlavha=''Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apache Spark (continues)''}}</ref> hamda Cypher kabi tadqiqot loyihalarida saqlanmoqda.
* Ushbu ma'lumotlar bazasi toifasi uchun grafik ma'lumotlar bazasi, fon, ma'lumotlar modellari, komponentlar va provayderlar
* SPARQL, grafik ma'lumotlarini so'rash uchun W3C standart deklarativ so'rovlar tili
* Gremlin, grafik ma'lumotlarini so'rashning yana bir usuli
* GQL (grafik so'rovlar tili)
 
== Manbalar ==