Today’s organizations want to analyze enormous quantities of data, as well as the varying and complex relationships between these data elements. As databases continue to grow, there is an urgent need to handle them in a more elegant, flexible, and powerful manner than the relational, tabular methods used in the past. Graph, alongside other NoSQL databases, was an attempt to address relational constraints in the early 21st century. However, excluding graph, most of the common NoSQL databases model their data with a relatively small number of relations.
The increasing drive toward mobile and cloud demonstrates that companies need to become even more agile to keep up with the ever-evolving landscape. This agility depends on a company’s ability to create and modify new data models quickly, cheaply, and effectively. Graph databases are ideal for supporting this need in a manner that’s both flexible and simple to query.
Introduction to Graph Databases
Graph databases are designed to help you answer questions about large or complex networks of inter-related data. You can describe collections of information, and the relationships between the collections, by using a graph database. Graph databases represent data as ‘vertices’, sometimes called ‘nodes’ and relationships between vertices as connections called ‘edges’. Metadata or attributes that are associated with and attached to a data element, such as a vertex or an edge, are called ‘properties’. The data elements compose the graph, and you can traverse the graph to answer questions about your data.
Examining the complex relationships between vertices, properties, and edges can yield meaningful and valuable data. Graph databases can be used to produce recommendations, find friends of friends, determine the shortest route, detect fraud, and more.
The following list shows other reasons to use a graph database:
- Analyze how things are interconnected.
- Analyze data to follow the relationships between people, products, and so on.
- Process large amounts of raw data and generate results into a graph.
- Work with data that involves complex relationships and dynamic schema.
- Address constantly changing business requirements during iterative development cycles.
- Discover that data naturally fits a graph.
IBM® Graph enables you to build and work with powerful applications, by using a fully-managed graph database service, accessible through the interface on Bluemix or through an HTTP API interface.
Powered by Apache TinkerPop
IBM Graph is based on the Apache TinkerPop™ stack for building high-performance graph applications.
Apache TinkerPop™ is an open source graph computing framework. Through TinkerPop, you are able to model your domain as a graph and analyze that graph by using the Gremlin graph traversal language. Gremlin is a query language that revolves around steps (also used to be referred to as ‘pipes’), meaning that it can pass information from one Gremlin process to another in a single query.
Using the Bluemix dashboard, you can bind IBM Graph to your applications easily. The IBM Graph service provides you with a set of simplified HTTP APIs, an Apache TinkerPop V3 compatible API, and the full Apache TinkerPop3 query language. The service gives you flexibility and capabilities, based on a familiar environment.
IBM Graph contributes back to the development ecosystem of TinkerPop that extends on its core interfaces, integration points, and ideas. Being a part of the community allows IBM Graph users to access TinkerPop graph systems, documentation, and libraries to aid in support.
© “Apache”, “TinkerPop”, and “Apache TinkerPop” are trademarks or registered trademarks of The Apache Software Foundation. All other brands and trademarks are the property of their respective owners.
Bluemix and IBM Graph
IBM Graph is a service that is provided within the IBM Bluemix platform. As you develop your mobile or web application, you can use Bluemix services as needed, leaving you to focus on your application logic and design.
A full list of the Bluemix services is available here.
Perform the following three steps to use a Bluemix service such as IBM Graph:
- Create an instance of the service in Bluemix by requesting a new service instance. If you’re using the command line interface, use ‘IBM Graph’ as the service name and ‘Entry’ as the service plan.
- (Optional) Identify the application that will use the service. If your application is a Bluemix application, you can identify the application when you create the service instance. If your application is external, thus not a Bluemix application, you can leave the service unbound.
- Write code in your application that interacts with the service.
Working with IBM Graph services
IBM Graph provides an HTTP API that enables you to store your data in a graph database. You can easily discover and explore the relationships in a property graph with index-free adjacency by using vertices, edges, and properties. IBM Graph provides a graph-based NoSQL store that creates a rich and extensible representation of your data in an accessible way. You can perform tasks with IBM Graph in three ways:
- Using the full Apache TinkerPop V3 query language.
- Using the simplified HTTP API.
- Using the interface through Bluemix.
Whichever route you choose to access and query your data, IBM Graph helps you create powerful applications that work with simple or complex collections of data and relationships. These endpoints provide an easy way to connect to IBM Graph, making it ideal for web and mobile applications.
- To understand more about graph databases, and IBM Graph in particular, visit the Getting started section.
- For extensive details of the available commands and endpoints, see the information in the API reference section.
- To find illustrative samples to help you use IBM Graph, explore the Code Examples section.
- To study details about the technologies within IBM Graph, have a look at Additional Resources.