Walking down the hallways of a GIS conference you hear lots of great debate and geek-talk on a variety of topics. A Shapefile vs Feature Class discussion caught my attention the other day at such an event. This can be a simple or difficult question to answer depending on the way you interpret it. This isn’t really a comparison on Shapefile vs Feature Class because as we will discuss, this isn’t an apples to oranges comparison.
Let’s start with the Shapefile: A Shapefile is a Feature Class. Although the intended question probably wasn’t answered here. But let’s go a little deeper into this before moving on, so what is a Feature Class then (from: http://wiki.gis.com/wiki/index.php/Feature_class?
Feature classes are homogeneous collections of common features, each having the same spatial representation, such as points, lines, or polygons, and a common set of attribute columns, for example, a line feature class for representing road centerlines.
By this definition, a Shapefile is a Feature Class. Back in the 1990’s, the Shapefile was referred to by it’s full name - the Shapefile Feature Class. Think of “Shapefile” as it’s Given Name, and Feature Class as the Surname. If we always referred to it’s full name, Shapefile Feature Class, the comparison (or lack of) would not need to be discussed. This also helps explain a Geodatabase Feature Class. The Given name for both, really describes the Workspace type. Hopefully a Workspace in ArcGIS python or ModelBuilder makes more sense now too.
This brings up another discussion on the Shapefile vs Feature Class topic. What is there to compare with a Shapefile Feature Class and a Geodatabase Feature Class? There are many similarities, since they are both collections of common features having the same spatial representation (Point, Line, Polygon, etc). The differences are mostly in the additional types and behaviours available to a Geodatabase FC. Not going to list them all, but domains, topologic relationships (geometric networks, terrains), and the ability to store high precision geometry are a few differences. And there are many Geodatabase storage options: Access (AKA Personal), File, and Enterprise (AKA RDBMS) which can have subtle differences as well. Whereas a Shapefile is always stored in a file folder and is more of a universal format support by many [more] GIS and CAD systems.
Both shapefile FC and GDB FC have their place. Your requirements and constraints will most likely have you working with both at some point. Here are some additional links on the topic: