The Graph API is the primary way to get data in and out of Facebook's social graph. It's a low-level HTTP-based API that you can use to query data, post new stories, upload photos and a variety of other tasks that an app might need to do. Facebook's Open Graph lets you define new objects and actions in the social graph of people using your app, and the way that you create new instances of those actions and objects is via the Graph API.
The social graph itself is a graph in the computer science sense. It's not a simple table of data. It's a series of nodes that all connect to each other. This document is meant as an introduction about how to not only query nodes in the graph, but also how you can query connections between nodes in the graph. Understanding when you need a node and when you need to create a connection is an important distinction. That's because those connections are what let your app post to people's timeline, create posts with location tags or work with photos.
It's important to be aware of another Facebook API that provides access to the social graph. FQL has roughly equivalent functionality to the Graph API by presenting the same set of APIs through an SQL-like interface. To use FQL you need to know the basics of the Graph API, because FQL endpoints follow the Graph API. So it's still best to learn how to use the Graph API, even if you prefer to use FQL.