Shapefiles are spaghetti data models containing a features class composed of points, lines, or polygons, but never a mixture. The attributes are stored in dBase file. Shapefiles can store multipart features, in which a single feature includes multiple objects.
Shapefile components and file extensions
Shapefiles are stored in three or more files that all have the same prefix and are stored in the same system folder:
- .shp file stores coordinate data
- .dbf file stores attribute data
- .shx file stores a spatial index that speeds drawing and analysis
- .prj file stores projection information
- .avl file is a stored legend
- .xml file contains metadata
Limitations of Shapefile
Shapefiles have many limitations compared to feature classes in a geodatabase. Some of them are listed below. For more check esri.com website.
- Shapefile attributes cannot store null values; they round up numbers.
- They have poor support for Unicode character strings,
- They do not allow field names longer than 10 characters,
- They cannot store both a date and time in a field.
- They do not support capabilities found in geodatabases such as domains and subtypes.
- 2 GB size limit
- Shapefiles do not contain an x,y tolerance
- Date fields only support date. They do not support time.
- Field names cannot be longer than 10 characters.
- The maximum record length for an attribute is 4,000 bytes. The record length is the number of bytes used to define all the fields, not the number of bytes used to store the actual values.
- The maximum number of fields is 255. A conversion to shapefile will convert the first 255 fields if this limit is exceeded.
- The dBASE file must contain at least one field. When you create a new shapefile or dBASE table, an integer ID field is created as a default.
- dBASE files do not support type blob, guid, global ID, coordinate ID, or raster field types.
- dBASE files have little SQL support aside from a WHERE clause.
- Attribute indexes are deleted when you save edits, and you must re-create them from scratch.