1"use strict";(globalThis.webpackChunkdocusaurus_docs=globalThis.webpackChunkdocusaurus_docs||[]).push([[2933],{5168:(a,e,t)=>{t.r(e),t.d(e,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>n,toc:()=>l});const n=JSON.parse('{"id":"data-engineer/data-model-101/index","title":"Graph Data Models 101","description":"Learn data modeling using relational databases compared to graph databases such as Dgraph,","source":"@site/docs-learn/data-engineer/data-model-101/index.md","sourceDirName":"data-engineer/data-model-101","slug":"/data-engineer/data-model-101/","permalink":"/learn/data-engineer/data-model-101/","draft":false,"unlisted":false,"editUrl":"https://github.com/dgraph-io/dgraph-docs/edit/main/docusaurus-docs/docs-learn/data-engineer/data-model-101/index.md","tags":[],"version":"current","frontMatter":{"title":"Graph Data Models 101","description":"Learn data modeling using relational databases compared to graph databases such as Dgraph,"},"sidebar":"learnSidebar","previous":{"title":"Get Started with Dgraph - Geolocation","permalink":"/learn/data-engineer/get-started-with-dgraph/tutorial-8/"},"next":{"title":"Graphs and Natural Data Modeling","permalink":"/learn/data-engineer/data-model-101/dm-101-introduction"}}');var r=t(74848),o=t(28453);const i={title:"Graph Data Models 101",description:"Learn data modeling using relational databases compared to graph databases such as Dgraph,"},s=void 0,d={},l=[{value:"Learning Goals",id:"learning-goals",level:3}];function h(a){const e={em:"em",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.R)(),...a.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.p,{children:"When building an app, you might wonder which database is the best choice. A\ntraditional relational database that you can query using SQL is a familiar\nchoice, but does a relational database really provide a natural fit to your data\nmodel, and the performance that you need if your app goes viral and needs to scale\nup rapidly?"}),"\n",(0,r.jsx)(e.p,{children:"This tutorial takes a deeper look at data modeling using relational\ndatabases compared to graph databases like Dgraph, to give you a better\nunderstanding of the advantages of using a graph database to power your app. If\nyou aren't familiar with graph data models or graph databases, this tutorial was\nwritten for you."}),"\n",(0,r.jsx)(e.h3,{id:"learning-goals",children:"Learning Goals"}),"\n",(0,r.jsx)(e.p,{children:"In this tutorial, you will learn about graphs, and how a graph\ndatabase is different from a database built on a relational data model. You\nwill not find any code or syntax in this tutorial, but rather a comparison of\ngraphs and relational data models. By the end of this tutorial, you will be\nable to answer the following questions:"}),"\n",(0,r.jsxs)(e.ul,{children:["\n",(0,r.jsx)(e.li,{children:"What is a graph?"}),"\n",(0,r.jsx)(e.li,{children:"How are graphs different from relational models?"}),"\n",(0,r.jsx)(e.li,{children:"How is data modeled in a graph?"}),"\n",(0,r.jsx)(e.li,{children:"How is data queried from a graph?"}),"\n"]}),"\n",(0,r.jsxs)(e.p,{children:["Along the way, you might find that a graph is the right fit for the data model\nused by your app. Any data model that tracks lots of different relationships (or\n",(0,r.jsx)(e.em,{children:"edges"}),") between various data types is a good candidate for a graph model."]}),"\n",(0,r.jsx)(e.p,{children:"Whether this is the first time you are learning about graphs or\nlooking to deepen your understanding of graphs with some concrete examples, this\ntutorial will help you along your journey."})]})}function u(a={}){const{wrapper:e}={...(0,o.R)(),...a.components};return e?(0,r.jsx)(e,{...a,children:(0,r.jsx)(h,{...a})}):h(a)}},28453:(a,e,t)=>{t.d(e,{R:()=>i,x:()=>s});var n=t(96540);const r={},o=n.createContext(r);function i(a){const e=n.useContext(o);return n.useMemo(function(){return"function"==typeof a?a(e):{...e,...a}},[e,a])}function s(a){let e;return e=a.disableParentContext?"function"==typeof a.components?a.components(r):a.components||r:i(a.components),n.createElement(o.Provider,{value:e},a.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.