مقدمه ای بر پایگاه داده های مبتنی بر گراف و Neo4j
اغلب پایگاه داده های مبتنی بر گراف به طور طبیعی زیرمجموعهای از NoSql ها محسوب میشوند و اطلاعاتشان را به صورت key-value یا دیتابیس سند محور (document-oriented database) ذخیره میکنند. در شرایط کلی آنها میتوانند به عنوان دیتابیس key-value با بهرهگیری از مفهوم روابط پذیری (relationship) در نظر گرفته شوند. روابط (Relationships) در ذخیرهسازی دادهها به valuesها اجازه میدهند در شکل یک فورم آزاد به یکدیگر مرتبط باشند؛ و برعکس دیتابیسهای سنتی که روابط در داخل خود دیتاها تعریف میشد عمل کنند.
این روابط اجازه میدهند سلسله مراتبهای پیچیده به سرعت طی شود و در نتیجه سرعت دسترسی و بهینه گی سیستم افزایش مییابد؛ که این نوع فرایند ذخیرهسازی پیچیده در دیتابیس های گرافی یکی از مشکلات عمومی عملکرد که در ذخیرهسازی سنتی key-value صورت میگرفت را به نوعی حل کرده است. اکثر دیتابیسهای گرافی همچنین مفهوم tags یا properties را نیز به معقولهٔ پایگاه داده اضافه کردند که اساساً روابط فاقد یک اشاره گر به پروندههای دیگر بود.
پایگاه داده ی مبتنی بر گراف Neo4j
از جمله پایگاه داد های NoSQL در حوزه ذخیره سازی گراف Neo4j است. یک پایگاه داده مبتنی بر گراف، پایگاه داده ای است که از ساختار گرافها برای queries های معنایی با گره ها و یالها و خواص برای نشان دادن و ذخیره داده ها استفاده می کند. پیشنهاد میشود برای دیدن سایر ابزار های در حوزه کلان داده و گراف کاوی به این مبحث مراجعه کنید.
Neo4j معروفترین DBMS متن باز گرافی است که کارایی و مستندسازی بسیار خوب و جامعه کاربران بسیار فعالی دارد. برای پرسوجو از گرافهای Neo4j، میتوان توسط زبان پرسوجوی امری cypher استفاده کرد. میتوانید برای اطلاعات بیشتر از این پایگاه داده به مبحث نصب و راه اندازی پایگاه داده Neo4j مراجعه کنید.
در Neo4j، مقایسپذیری افقی عمل خواندن توسط روش تکثیر ارباب-برده، صورت میگیرد، اما تمام درخواستهای نوشتن، فقط در یک ماشین پاسخ داده میشوند، درنتیجه، عمل نوشتن، بصورت افقی مقیاسپذیر نمیباشد. بنابراین، میتوان نتیجه گرفت، که Neo4j برای کاربردهایی که میزان نوشتن کم و خواندن زیاد است، مناسب است. به عبارتی Neo4j برای کاربردهایی که بصورت دوره ای، گراف را بهنگام میکنند اما بار عمل خواندن در آنها بسیار بالا است، مناسب میباشد. در این پاگاه داده، از تکنیک sharding (بخشبندی داده) استفاده نمیشود، زیرا مساله ریاضی تقسیم بهینه ی گراف عظیم در میان مجموعه ای از سرویس دهنده ها، مساله NP کامل(پرهزینه) است.
در شکل زیر به روند رو به رشد استفاده از پایگاه داده های مبتنی بر گراف در سال های اخیر توجه کنید.
لیست پایگاه داده های مبتنی بر گراف شناخته شده در ادامه آمده است
نام دیتابیس | ورژن | لایسنس | زبان تولید | توضیحات |
---|---|---|---|---|
ArangoDB | 2.8.4 (مارس ۲۰۱۶) | Apache 2 | C, C++ & JavaScript | A distributed multi-model document store and graph database. Highly scalable supporting ACID and full transaction support. Including a built-in graph explorer. |
Blazegraph | 1.5.3 (سپتامبر ۲۰۱۵) | GPLv2, evaluation license, or commercial license. | Java | A RDF/graph database capable of clustered deployment. Blazegraph supports high availability (HA) mode, embedded mode, single server mode. As of version 1.3.1, it supports the Blueprints API and Reification Done Right (RDR). Prior to version 1.5.0; formerly named Bigdata. |
Bitsy | ۱٫۵٫۰ | AGPL, Enterprise license (unlimited use, annual/perpetual) | Java | A small, embeddable, durable in-memory graph database |
BrightstarDB | 1.10.1 (مه ۲۰۱۵) | MIT License [1] | C# | An embeddable NoSQL database for the .NET Framework with code-first data model generation. |
Cayley | 0.4.1 (آوریل ۲۰۱۵) | Apache 2 | Go | An open-source graph inspired by the graph database behind Freebase and Google’s Knowledge Graph. |
DEX/Sparksee[2] | ۵٫۲.0 (2015) | Evaluation, research or development use is free; commercial use is not free | C++ | A high-performance and scalable graph database management system from Sparsity Technologies. Its main characteristics is its query performance for the retrieval & exploration of large networks. Sparksee offers bindings for Java, C++, C#, Python and Objective-C. Sparksee 5 mobile is the first graph database for mobile devices. |
Filament | BSD | Java | A graph persistence framework and associated toolkits based on a navigational query style. | |
GraphBase | 1.0.03a | Proprietary | Java | A customizable, distributed, small-footprint graph store with a rich tool set from FactNexus. |
graphd | Proprietary | The proprietary back-end of Freebase. | ||
Graph Engine | ۱٫۰ | Office Store Standard Application License (Free) | C++, C# | A distributed, in-memory, large graph processing engine. |
Grapholytic | ۰٫۱ | Proprietary | A distributed GraphDB from MIOsoft. | |
Gun | Zlib,Apache2,MIT | Javascript | A realtime, decentralized, offline-first, graph database engine. | |
Horton | Proprietary | C# | A graph database from Microsoft Research Extreme Computing Group (XCG) based on the cloud programming infrastructure Orleans. | |
HyperGraphDB | ۱.2 (2012) | LGPL | Java | A graph database supporting generalized hypergraphs where edges can point to other edges. |
IBM System G Native Store | v1.0 (ژوئیه ۲۰۱۴) | Proprietary | C, C++,Java | A high performance graph store using natively implemented graph data structures and primitives for achieving superior efficiency. IBM System G Native Store can handle various simple graphs, property graphs, and RDF graphs, in terms of storage, analytics, and visualization. Native Store is accessible from most programming languages by providing APIs in C++, Java (Tinkerpop/Blueprints), and Python. Its gShell graph command collection and the Native Store REST APIs provide language-free interfaces. |
InfiniteGraph | 3.0 (ژانویه ۲۰۱۳) | Proprietary | Java | A distributed and cloud-enabled commercial product with flexible licensing. |
InfoGrid | ۲٫۹.5 (2011) | AGPLv3, free for small entities[3] | Java | A graph database with web front end and configurable storage engines (MySQL, PostgreSQL, Files, Hadoop). |
jCoreDB Graph | An extensible database engine with a graph database subproject. | |||
k-infinity | ۴.0 (2015) | Proprietary, free tryout version and demo scenarios | A semantic graph database which is characterised by its graphical user interface and requires no knowledge of any query language. API is open and based on REST and JSON. Thus it can be easily embedded in existing architectures. | |
MarkLogic | ۸٫۰.4 (2015) | Proprietary, free developer version | Java,JavaScript,XQuery | Multi-model NoSQL database that stores documents (JSON and XML) and semantic graph data (RDF triples). MarkLogic also has a built-in search engine and a full-list of enterprise features such as ACID transactions, high availability and disaster recovery, certified security, and scalability and elasticity. |
Neo4j | 2.3.2 (ژانویه ۲۰۱۶) | GPLv3 Community Edition. Commercial & AGPLv3 options for enterprise and advanced editions | Java | A highly scalable open source graph database that supports ACID, has high-availability clustering for enterprise deployments, and comes with a web-based administration tool that includes full transaction support and visual node-link graph explorer. Neo4j is accessible from most programming languages using its built-inREST web API interface. Neo4j is the most popular graph database in use as of March 2016.[4] |
OpenCog | AGPL | C++,Scheme,Python | Includes a satisfiability modulo theories solver and a unified rule engine for performing both crisp (boolean) logic and probabilistic reasoning. Backed onto Postgres. | |
OntotextGraphDB | ۶٫۶ | GraphDB Free is free.GraphDB Standard and GraphDB Enterprise are commercially licensed. | Java | A graph database engine, based fully on Semantic Web standards from W3C: RDF, RDFS, OWL, SPARQL. GraphDB Free is a database engine for small projects. GraphDB Standard is robust standalone database engine. GraphDB Enterprise is a clustered version which offers horizontal scalability and failover support and other enterprise features. |
Orly | (مارس ۲۰۱۴) | Apache 2 | C++ | A highly scalable open source graph database; accessible from most programming languages via its built-in REST web API interface. |
OpenLinkVirtuoso | 7.1 (مارس ۲۰۱۴) | GPLv2 for Open Source Edition.Proprietary for Enterprise Edition. | C, C++ | A hybrid database server handling RDF and other graph data, RDB/SQL data, XML data, filesystem documents/objects, and free text. May be deployed as a local embedded instance (as used in the NEPOMUK Semantic Desktop), a single-instance network server, or a shared-nothing elastic-cluster multiple-instance networked server.[5] |
Oracle Spatial and Graph | ۱۱.2 (2012) | Proprietary | Java, PL/SQL | 1) RDF Semantic Graph: comprehensive W3C RDF graph management in Oracle Database with native reasoning and triple-level label security. 2) Network Data Model property graph: for physical/logical networks with persistent storage and a Java API for in-memory graph analytics. |
Oracle NoSQL Database | ۲٫۰٫۳9 (2013) | Proprietary | Java | RDF Graph for Oracle NoSQL Database is a feature of Enterprise Edition providing W3C RDF graph capabilities in NoSQL Database. |
OrientDB | 2.1.9 (ژانویه ۲۰۱۶) | Community Edition isApache 2, Enterprise Edition is commercial | Java | OrientDB is an open source 2nd Generation Distributed Graph Database with the flexibility of Documents in one product (i.e. , it is both a graph database and a document nosql database at the same time.) It has an open source commercial friendly (Apache 2) license. It is a highly scalable graph database with full ACID support. It has a multi-master replication and sharding. Supports schema-less, schema-full and schema-mixed modes. Has a strong security profiling system based on user and roles. Supports a query language that is so similar to SQL which is friendly to those coming from a SQL and relational database background decreasing the learning curve needed. It has HTTP REST + JSON API. |
OQGRAPH | GPLv2 | A graph computing engine for MySQL, MariaDB and Drizzle. | ||
Profium Sense | ۶٫۰ | Proprietary | Java | Profium Sense is a contextual content management platform with a built-in triple store. Profium’s own reasoning engine supports OWL 2 RL and RDFS and is optimized to manage continuous information streams that require continuous inferencing on-the-fly. Profium architecture is based on an in-memory database with ACID transaction support and supports distributed high-availability deployment. |
R2DF | R2DF framework for ranked path queries over weighted RDF graphs. | |||
ROIS | Freeware | Modula-2 | A programmable knowledge server that supports inheritance and transitivity. Used in OpenGALEN as a terminology server. | |
Semblent Lionsgate | v1.0.3 (دسامبر ۲۰۱۴) | Proprietary | JavaScript | A scalable, generic distributed database framework coupled with graph search able to efficiently maintain synchronisation persistently between server side and client side databases via a self-building API. |
SPARQLCity | v1.0.95 (اکتبر ۲۰۱۴) | GPLv3 | C, C++ &JavaScript | SPARQLCity produces SPARQLVerse: A standards and Hadoop based analytic graph engine for performing rich business analytics on structured and semi-structured data. |
Sqrrl Enterprise | v1.5.1 (اوت ۲۰۱۴) | Proprietary | Java | Distributed, real-time graph database featuring cell-level security and mass-scalability. |
Stardog | v3.1.5 (ژوئیه ۲۰۱۵) | Proprietary | Java | Fast, scalable, pure Java semantic graph database. |
Teradata Aster | v6 (2013) | Proprietary | Java, SQL,Python,C++, R | A high performance, multi-purpose, highly scalable and extensible MPP database incorporating patented engines supporting native SQL, MapReduce and Graph data storage and manipulation. An extensive set of analytical function libraries and data visualization capabilities are also provided. |
Titan | 1.0 (سپتامبر ۲۰۱۵) | Apache 2 | Java | A distributed, real-time, scalable transactional graph database developed by Aurelius. |
TripleBit | C, C++ | A centralized RDF store. | ||
VelocityGraph | Open source with proprietary back-end | C# | High performance, scalable & flexible graph database build with VelocityDB object database. | |
VertexDB | Revised BSD | C | A graph database server that supports automatic garbage collection. | |
VivaceGraph | 3.0 (دسامبر ۲۰۱۴) | MIT License | Common Lisp | Pure Common Lisp graph database. |
Weaver | 0.1 (دسامبر ۲۰۱۴) | BSD licenses | C, Python | A fast, scalable, ACID transactional graph database with replication and migration. |
WhiteDB | 0.7.0 (اکتبر ۲۰۱۳) | GPLv3 and a free commercial licence | C | A graph/N-tuples shared memory database library. |
OhmDB | 1.0.0 (اوت ۲۰۱۴) | Apache 2 | Java | RDBMS + NoSQL Database for Java. |
AllegroGraph | 5.1 (مه ۲۰۱۵) | Proprietary. Clients:Eclipse Public License v1. | C#, C,Common Lisp, Java,Python | An RDF and graph database. |
آدرس کانال تلگرام سایت بیگ دیتا:
آدرس کانال سروش ما:
https://sapp.ir/bigdata_channel
جهت دیدن سرفصل های دوره های آموزشی بر روی اینجا کلیک کنید.
جهت ثبت نام در دوره های آموزشی بر روی اینجا کلیک کنید.
بازدیدها: 7297
برچسبgraph DataBase Graph DB neo4j NOSQL پایگاه داده های گراف بیس پایگاه داده های گرافی پایگاه داده های مبتنی بر گراف دیتابیس گراف دیتابیس های گرافی غیر رابطه ای گراف کاوی مبتنی بر گراف
همچنین ببینید
تحلیل گراف های بزرگ با آپاچی فلینک (Apache Flink)
تعریف جریان داده: جریان داده ها، داده هایی هستندکه بطور مداوم توسط هزاران منبع داده …
راه اندازی و نصب کسندرا بر روی چند سرور و ایجاد خوشه پردازشی
در پست های قبلی به نصب و راه اندازی پایگاه داده غیر رابطه ای کاساندرا …