<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Kelsey Whitehead on Medium]]></title>
        <description><![CDATA[Stories by Kelsey Whitehead on Medium]]></description>
        <link>https://medium.com/@Kelsey.Whitehead?source=rss-ede399c4ea54------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*dmbNkD5D-u45r44go_cf0g.png</url>
            <title>Stories by Kelsey Whitehead on Medium</title>
            <link>https://medium.com/@Kelsey.Whitehead?source=rss-ede399c4ea54------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 23 May 2026 15:49:39 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@Kelsey.Whitehead/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Using Neo4j with Java]]></title>
            <link>https://medium.com/@Kelsey.Whitehead/using-neo4j-with-java-21e5a9ecd796?source=rss-ede399c4ea54------2</link>
            <guid isPermaLink="false">https://medium.com/p/21e5a9ecd796</guid>
            <category><![CDATA[database]]></category>
            <category><![CDATA[java]]></category>
            <category><![CDATA[neo4j]]></category>
            <dc:creator><![CDATA[Kelsey Whitehead]]></dc:creator>
            <pubDate>Sun, 09 Apr 2017 19:29:26 GMT</pubDate>
            <atom:updated>2017-04-09T19:29:26.432Z</atom:updated>
            <content:encoded><![CDATA[<p>This is the final section of a four part series on Neo4j. For this tutorial it is assumed that you are already familiar with Graph databases and Neo4j, and already have Neo4j Community Edition installed on your computer. You can start back at the first post <a href="https://medium.com/@Kelsey.Whitehead/introduction-to-graph-databases-1f2480ede21c"><em>Introduction to Graph Databases</em></a><em> </em>for an overview of the structure, go to<a href="https://medium.com/@Kelsey.Whitehead/getting-started-with-neo4j-3b8b4a9a2a61"> <em>Getting started with Neo4j</em></a><em> </em>for information on database creation, or my most recent post <a href="https://medium.com/@Kelsey.Whitehead/rdbms-vs-graph-97e75c210e1"><em>RDBMS to Graph</em></a><em> </em>for some tips on restructuring an existing database into a graph.</p><p>Additionally — for this demo I am using Eclipse Java Neon 4.6.1, and Neo4j community edition 3.2.0-alpha06. I am also using Maven for this project, which is included with Eclipse (you do not need any previous experience with Maven. I will walk you through adding dependencies.) This tutorial should work fine for other versions of Eclipse and Neo4j though.</p><h3>Project Setup</h3><p>To start — lets make a new java project in Eclipse add a package, class, and target folder.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/315/1*S2SSruxxn2ZOFcE6cDO26w.jpeg" /></figure><p>Then right click on the project and select Configure &gt; Convert to Maven Project.</p><p>Next we need to add Neo4j dependency. Open the ‘pom.xml’ file from the package explorer, select the ‘Dependencies’ tab at the bottom of the window, then select ‘Add’</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/893/1*PfuWCltsbZq-A2M1UQlhUw.png" /></figure><p>Fill in the ‘Select Dependency’ menu as seen, if you are using a different version of Neo4j adjust the ‘Version’ value to match yours.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/486/1*c8qnZlBrRHa__WGi5nsodQ.jpeg" /></figure><p>Now, to add Maven Dependencies to the build path. Right click on your project within the Package Explorer and select Build Path &gt; Configure Build Path. Select Maven from the left panel, and enter ‘Maven Dependencies’ in the Active Maven Profiles textbox.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/650/1*vRt4Ky-w1oeGiDBcKZrdkw.jpeg" /></figure><p>For the last step in project setup, lets add a folder within our ‘target’ folder we made earlier. I’ve named mine ‘movies-db’ and this is where we’ll keep the movies database. Final project setup should look something like this –</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/477/1*UxV7qS6zH2wnMfo1NKBUrQ.jpeg" /></figure><h3>Database Creation and Import</h3><p>For this demo I am using the ‘Movies’ database provided by Neo4j. It comes with 171 nodes and 253 relationships. It holds a variety of data on movies, actors, directors, writers, and reviewers; and was very useful as I attempted to learn to use Cypher. The inclusion of this database within our application can be completed with just a few simple steps — first start Neo4j and select ‘Choose…’ from the launcher window then navigate to the ‘movies-db’ folder we just created.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/532/1*xO3SJvZCbJFIqob40LYvaw.jpeg" /></figure><p>Start the database, and navigate to <a href="http://localhost:7474">http://localhost:7474</a> when the application is ready.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vGwcnpFqE4nEwSn5OC7G-A.jpeg" /></figure><p>Within the browser, type ‘:play movie graph’ into the editor, and then use the left within the output to bring up the screen shown below. Click anywhere within the green outline to copy the database creation script into the editor and press play to run the script. We now have our database within our application folder, and can begin creating our application!</p><h3>Application Code</h3><p>First be sure to shut down your database via the Neo4J launcher window by selecting ‘stop’. This method only offers one connection at a time, and will error if the database is in use elsewhere when we attempt to use it.</p><p>Before we start looking at the code for this small application, lets take a look at making a connection with the database</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/784/1*wf1b15_-a34Be9d3AnbSIQ.jpeg" /><figcaption>No seriously. That’s it.</figcaption></figure><p>Now lets look at the simplest method I’ve made so far.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/954/1*21yQNfJPKYUpmRfUFW4KSA.jpeg" /></figure><p>This is a simple method to find either the name or the title of a node, given its ID number. Some queries made at the database will only ever return nodes, so this method lets us determine what was actually returned. The syntax should look somewhat familiar for anyone who has done basic SQL queries using java, with the query formatted as a String, with a variable indicating the specific value to find. The Neo4j method db.execute() returns a Result object, which functions similarly to a ResultSet, except that Result contains a Map object connecting a Node with a value. In this instance what we want is either the name (if the node was a person) or a title (if the node was a movie) so we select both, and afterwards replace all null values with empty strings with the line</p><pre>name = name.replace(&quot;null&quot;, &quot;&quot;);</pre><p>This is a method to find an actors Bacon Path — that is the shortest path of actors someone has worked with that leads to Kevin Bacon</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yKj3rQqyiq8O3tZ8eWyO0A.jpeg" /></figure><p>This time, when the query executes it will return a path of nodes instead of individual nodes. We will need to parse the path into a format that can be output and read by a user, so we’ll need the parsePath() method called above</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/540/1*yCRBnogRtDiCxjbR_-SZRQ.jpeg" /></figure><p>The path string returned when a query provides a path looks like</p><pre>(19)--[ACTED_IN,29]--&gt;(15)&lt;--[ACTED_IN,26]--(16);</pre><p>Which is less than useful. So, we use regular expressions to remove all data from the string that isn’t a node ID number, and then use our previously defined getNodeByID() method to determine what the data means.</p><h3>Application in Action</h3><p>I have added a text based interface to this project, and it contains some functionality not discussed here, but I encourage you to attempt to create the queries that would generate the results needed for the rest of the application (The Kevin Bacon friends option shows a list of everyone within 4 degrees of Kevin Bacon. His friends of friends if you will)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/657/1*XCg9YaIo3UzUA2Nrdvd4iA.jpeg" /></figure><p>Hint: Neo4J offers specific functionality just for queries like that, and I’ve discussed them before. Good luck!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=21e5a9ecd796" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[RDBMS vs. GRAPH]]></title>
            <link>https://medium.com/@Kelsey.Whitehead/rdbms-vs-graph-97e75c210e1?source=rss-ede399c4ea54------2</link>
            <guid isPermaLink="false">https://medium.com/p/97e75c210e1</guid>
            <category><![CDATA[students]]></category>
            <category><![CDATA[neo4j]]></category>
            <category><![CDATA[database]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Kelsey Whitehead]]></dc:creator>
            <pubDate>Mon, 20 Mar 2017 03:38:07 GMT</pubDate>
            <atom:updated>2017-03-20T03:38:07.773Z</atom:updated>
            <content:encoded><![CDATA[<p>While researching graph databases, I have frequently been struck by how simple and usable they seem to be, and how much use they could provide for systems requiring a relationship driven approach to data storage and querying. I have been wondering regularly why I haven’t heard of them before beginning this project, and why it seems like they have been so vastly underutilized. The obvious answer is that people like to do things how they’ve always done them, or because of concerns regarding the process involved with switching to a new system. In this entry we’ll look closely at what type of data could benefit from a graph, and how to begin the process of transferring your system to a graph database.</p><p>As previously mentioned, the strength of a graph database lies in its relationships — the ability to directly model the connections of a set of data. For data sets that feature a large amount of relationships the overhead of modelling them can be significant. Let’s look at an example of this</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gqFf2mW75nwxciMhjTtQHQ.jpeg" /><figcaption>Used with permission — Southern Alberta Institute of Technology</figcaption></figure><p>This is an ERD I’ve used during my studies at SAIT. It features quite a large amount of connections between the tables, with bridging tables used to resolve many to many relationships. Within a traditional data model, the foreign keys are how the model defines relationships — for example, within the COURSE_REGISTRATION table there are a number of foreign keys (student_id, course_code, section, semester, year). These are used to create a relationship between a row from the STUDENT table and a row from the CLASS_SECTION table, in this case a ‘registered in’ relationship. Looking a little closer though, you realize that this is a table composed of six columns with only one containing data that is actually unique to this table (the grade column). The rest of the data is already stored within the STUDENT and CLASS_SECTION tables, and is repeated purely to define the relationships between objects, and link a single student to a single class section. It might not seem like much, but with any reasonably sized school this table could quickly balloon out of control.</p><p>(As an illustration, SAIT had 4,378 students in its graduating class of 2015. If each was enrolled in 5 classes for 4 semesters then that would be 5 classes x 4 semesters x 5 columns x 4,378 students — a total of 437,800 pieces of data within the COURSE_REGISTRATION table per graduating class.)</p><p>Using this model for data-sets like this can also create a headache for developers trying to perform complicated queries requiring a large amount of joins, and all those joins can slow down a system that regularly needs to perform those complicated queries. This is where a graph database can assist with the simplification of a data set like this.</p><h3>RDBMS to Graph</h3><p>Let’s convert the above database into a graph. To do this, we’ll need to complete 3 steps</p><p>Step 1: Find the nodes</p><p>Step 2: Find the relationships</p><p>Step 3: Manage bridging tables</p><p>First, let’s find the nodes. The simplest way to accomplish this is to locate the objects within the database. In this case the STUDENT, FACULTY, CLASS_SECTION, and COURSE tables are all representing real life objects and will be our nodes, while EXPERTISE and COURSE_REGISTRATION are bridging tables providing a basis for defining a relationship between some of those objects.</p><p>Second, we need to find our relationships. This is done by examining the foreign keys. Whenever a table contains a foreign key from another table, we can assume that there is some type of relationship between them. For this step, we’ll ignore bridging table relationships.</p><p>For our example, the relationships would be (using the cypher notation utilized by Neo4j)</p><p>· (FACULTY) –[INSTRUCTS]-&gt; (CLASS_SECTION)</p><p>· (CLASS_SECTION) –[ONE_OF]-&gt; (COURSE)</p><p>· (COURSE) –[PREREQUISITE]-&gt;(COURSE)</p><p>Next we need to turn the bridging tables into relationships as well. Graph databases are able to contain many to many relationships, so the process of converting these tables is as simple as making them a relationship that contains properties for any unique data they contain (like that grade value discussed earlier)</p><p>· (STUDENT) –[ENROLLED_IN]-&gt; (CLASS_SECTION) /grade</p><p>· (FACULTY) –[EXPERTISE]-&gt; (COURSE) /expertise_level</p><p>Now we can make our ERD</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/449/1*K-xzgB9Utuv9FWKiK43uLw.png" /><figcaption>Simpler!</figcaption></figure><p>This looks much simpler than our original ERD, but is able to contain all of the information the original could.</p><p>Relational databases have been in use for a long time. Oracle was originally released in 1979 — and the relational model continues to see widespread adoption across a large variety of applications, for better or worse. For many of these applications, using a RDBMS may be the easiest option for now, but in the long run may be adding unnecessary difficulties to their systems. There are a variety of NoSQL database types available, and I believe many companies would benefit from taking a close look at their current system to see if there is any room for improvement.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=97e75c210e1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Getting started with Neo4j]]></title>
            <link>https://medium.com/@Kelsey.Whitehead/getting-started-with-neo4j-3b8b4a9a2a61?source=rss-ede399c4ea54------2</link>
            <guid isPermaLink="false">https://medium.com/p/3b8b4a9a2a61</guid>
            <category><![CDATA[neo4j]]></category>
            <category><![CDATA[database]]></category>
            <category><![CDATA[students]]></category>
            <dc:creator><![CDATA[Kelsey Whitehead]]></dc:creator>
            <pubDate>Mon, 27 Feb 2017 03:15:14 GMT</pubDate>
            <atom:updated>2017-03-20T01:34:51.758Z</atom:updated>
            <content:encoded><![CDATA[<p>This is part 2 of a series of posts on graph databases. You can start here, but if you’d like an introduction to the structure and use of a graph database you can find that <a href="https://medium.com/@Kelsey.Whitehead/introduction-to-graph-databases-1f2480ede21c#">here</a></p><p>Now that we’ve gotten some introduction into graph databases in general, let’s start using a graph database. I’ve decided to go with Neo4j and the companion query language Cypher for this series. Neo4j is the most popular graph database in use at this point in time, and so offers the largest amount of community resources available to assist while figuring your way around the system. Neo4j also offers a variety of tutorials and sample databases to practice with. That being said, there are <a href="http://db-engines.com/en/ranking/graph+dbms">plenty of options</a> out there and it would be worth it to take some time to examine what each offers should you be considering implementing a graph backend into a system.</p><h3>CYPHER</h3><p>Before we dive into making nodes and relationships, we have to start with some basic Cypher commands. Cypher is a query language developed by Neo technology for use with Neo4j. It was inspired by SQL, and so will be fairly intuitive for anyone already familiar with SQL.</p><p>Some basic Cypher syntax from the ‘introduction to Cypher’ tutorial offered by Neo4j –</p><blockquote>MATCH (node1:Label1)-[rel:TYPE]-&gt;(node2:Label2)</blockquote><blockquote>WHERE rel.property &gt; {value}</blockquote><blockquote>RETURN rel.property, type(rel)</blockquote><p>This first uses the ‘MATCH’ clause, which is used to indicate any relationship we would like to find. This is matched to the nodes and relationship we would like to include in the search. Within the parenthesis we state the name of the node (node1, node2), along with node Label (which could also be called its type — whatever object the node is representing)</p><p>It then uses a ‘WHERE’ clause to refine the search. In this instance, on a particular property held by the relationship between node1 and node2</p><p>The ‘RETURN’ clause states the data you would like returned by the query. Think SQL’s ‘SELECT’ statement.</p><p>If we wanted to delete a relationship or a node, we can simply replace the ‘RETURN’ statement at the end of the query with a ‘DELETE’ statement, and then specify the nodes or relationships to remove.</p><blockquote>MATCH (node1:Label1)-[rel:TYPE]-&gt;(node2:Label2)</blockquote><blockquote>WHERE rel.property &gt; {value}</blockquote><blockquote>DELETE rel</blockquote><p>We can also build off of this basic structure to perform updates on our data — here changing the value of a property</p><blockquote>MATCH (node1:Label1)-[rel:TYPE]-&gt;(node2:Label2)</blockquote><blockquote>WHERE rel.property &gt; {value}</blockquote><blockquote>SET rel.property = ‘new value’</blockquote><p>To create a new node or relationship you use the ‘CREATE’ keyword.</p><blockquote>CREATE(node1:Label1{property1:’&lt;something&gt;’,property2:’&lt;somethingelse&gt;’})</blockquote><p>As expected, this uses some of the same structure as the “MATCH” statement above. We replace ‘node1’ with the name of the node (some distinguishing feature of the data contained within), and replace ‘Label1’ with the type of node we want to create. We can also add however many properties we need to keep track of for our node within the curly braces.</p><h3>DATABASE CREATION</h3><p>To start, I’ve installed the Neo4j community edition <a href="https://neo4j.com/download/">from here</a> and launched the program. Let’s make a new database by selecting ‘choose’ and creating a new folder ‘test.graphdb’ within the Neo4j folder</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9ory-9W7HBrusukiC7FlNw.jpeg" /></figure><p>Then press start and navigate to localhost:7474 within your browser once the database has started.</p><p>Within the browser console you are able to perform any create, read, update or delete function as needed. It can be a useful tool for visualizing data and relationships — which makes it perfect for learning and demonstrating Neo4j. It is however a bit resource heavy for larger data sets. The Neo4j shell is significantly more useful for proper use, and I will be demonstrating it in later posts.</p><p>First, let’s start by adding some nodes. I’ll type the following three commands into the prompt within the web console —</p><blockquote>CREATE(Billy:Person{name:’Billy’,id:’0000&#39;})</blockquote><blockquote>CREATE(Susan:Person{name:’Susan’,id:’0001&#39;})</blockquote><blockquote>MATCH(s:Person{name:’Billy’}),(d:Person{name:’Susan’})</blockquote><blockquote>CREATE (s)-[r:Friends_with]-&gt;(d)</blockquote><h3>Querying</h3><p>If we now query the database using MATCH (n) RETURN (n) (a query that asks for everything and displays all results) we can see our nodes and relationship we just created!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/921/1*zHpp1Y9Xppk1g8B75Zk8DQ.png" /></figure><p>I’ll add some more nodes and relationships so we can see some of the Cypher queries mentioned earlier in action</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/946/1*2u6OTAE1iX1DVTV_QVUWGg.png" /></figure><p>We can search for a specific node</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/917/1*IwOO0SXoWMDNPbRPRoaoRg.png" /></figure><p>Remove relationship</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/946/1*RgpK256R0Vkc00XUTo06dg.png" /></figure><p>That was Bobs only relationship, so we might as well remove him from the database as well</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/810/1*Is1b1UySVkKEK1SpbZHQ5w.png" /><figcaption>Poor Bob</figcaption></figure><p>Let’s change Tammys name.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/946/1*r5cc4WXfdTRe-ue2lF-8gA.png" /></figure><p>And now an to show all data, including the changes I just made</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/918/1*Ie9AP952Fdt6wMP5gdla1g.png" /></figure><h3>Conclusion</h3><p>As you can see, Cypher is very straight forward for simple queries, and Neo4j is fairly intuitive for basic use. Next time we’ll look at converting an existing RDBMS to a graph database, and I will begin to examine some of the drawbacks I’ve found in my time working with Neo4j.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3b8b4a9a2a61" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introduction to Graph Databases]]></title>
            <link>https://medium.com/@Kelsey.Whitehead/introduction-to-graph-databases-1f2480ede21c?source=rss-ede399c4ea54------2</link>
            <guid isPermaLink="false">https://medium.com/p/1f2480ede21c</guid>
            <category><![CDATA[database]]></category>
            <category><![CDATA[students]]></category>
            <category><![CDATA[graph]]></category>
            <category><![CDATA[neo4j]]></category>
            <dc:creator><![CDATA[Kelsey Whitehead]]></dc:creator>
            <pubDate>Mon, 30 Jan 2017 02:05:22 GMT</pubDate>
            <atom:updated>2017-01-30T02:05:22.581Z</atom:updated>
            <content:encoded><![CDATA[<p>This is the first part of a series of posts that will take a look at graph databases. Later posts in this series will be using Neo4J as an example in order to examine and demonstrate the functionality and use of a graph database, but for this post I will be providing a general overview of graph databases including their structure and the potential benefits of using a graph structured database.</p><h3>What is a graph database?</h3><p>We’ll start with a very basic introduction to graphs — a graph is an abstract data type typically used to model data that contains objects (referred to as nodes or vertices), and some sort of relationship between those objects (lines or edges).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/359/1*IaPD1u-FoJK-zJdJRZ9hog.png" /><figcaption>Graph</figcaption></figure><p>A graph database uses its nodes to contain data. Typically a node is used to represent an entity object, and is comparable to a row in a relational database. Each node also contains the properties of that entity, which can be anything the business needs to keep track of (ID numbers, location, etc.) These properties correspond to the columns in a relational database. Graph databases also contain edges between each node. These are use to describe the relationships between the objects contained in the database, and in most they can be compared to the foreign key column of a row in a RDBMS.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/616/1*pK3tfUnVRfdCeUtS76ixAQ.png" /><figcaption>Graph database structure showing nodes and vertices</figcaption></figure><h3>Why use a graph database?</h3><p>The ability to directly state the relationship between two objects within a graph database provides a strong advantage over relational database systems for certain datasets. Namely, those that contain a large amount of relationships within the data.</p><p>Graph databases may also offer increased efficiency for searches in some cases. The best example of this is when a business needs to perform a search that is more than one level deep. As an example, let’s consider a database storing corporate structure information.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/751/1*oKu7CtdA96r1c6SkQ7lE0A.jpeg" /></figure><p>What sort of query might we need to perform on this data? What if we wanted to find all employees who work in a department with a specific employee, Sarah? (that is, all of her direct co-workers). We would first need to find which department(s) she currently works for by searching the ‘Department_Employee’ table, then search that table again for all other rows matching the retrieved Department_id’s in order to retrieve the Employee_id numbers for her co-workers, then finally the ‘Employee’ table to retrieve the names of her co-workers. That’s a lot of searching! Using a graph database, the process becomes somewhat simpler</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/793/1*xlfYyLitDeVIyrxaRhU1Yg.jpeg" /></figure><p>In this system, we would first search for Sarah, and see which departments she belongs to. Then simply follow the links into each department backwards in order to discover the other members. For searches such as this, the efficiency is significantly increased.</p><p>Graph databases may not be the optimal choice for every business, but they have their advantages in certain situations. If you’d like to find out more make sure to check back for the rest of the series. I will be demonstrating use of an actual graph database, Neo4J. We’ll look at generating a fresh database, transforming existing RDBMS into graph, and using Cypher to make queries.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1f2480ede21c" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>