Choosing File Geodatabase (*.gdb), Personal Geodatabase (*.mdb) or shapefile format?

At a high level, it might be preferable to make a choice based on whether users are inexperienced and need nothing more than points, lines and polygons. Shapefiles could be suitable for this.

If they need annotation, domains for pick lists and validation, raster, longer field names, etc then File Geodatabases could be used which are easy to use, fast and can be massive in size.

Personal Geodatabases are based on MS Access. Unless there is a requirement for Access users to also interact with them, there is more restriction with this choice. The 2Gb size limit & inability to store rasters is restrictive.


I try to avoid using shapefiles as you cannot store domains, relationships, aliases etc. but they are the most portable format when distributing data to other people who are using different GIS systems/tools.

Whilst file geodatabases give better performance and are capable of storing huge datasets, everyone above is giving the humble personal geodatabase a bad rap. I use them to store my analysis as you can use ODBC to suck the attribute data right out of them into your preferred statistical application. If your data is in a File GeoDatabase you have to mess around with converting them into some staging format before you can use them as nothing else can read from a File GeoDatabase (unless you want to spent time and effort programming the API...).

So for projects I adopt both formats, file geodatabase for large static datasets, personal geodatabases for outputs and analysis (unless the outputs are huge then they go into a file geodatabase).

If you are working on a project that has small datasets and everything sits happily inside a personal geodatabase then it's just 1 file to zip up and email. Something to consider?


File geodatabases (FGDB):

  • A FGDB may contain feature datasets, which aid in coordinate system control and data integrity via topology rules. You are on your own with shapefiles.
  • FC's may be up to 256 TB in size with the use of configuration keywords. All component files of a shapefile are limited to 2GB each (source & whitepaper).
  • FC performance is quite simply faster than shapefile, especially in operations involving attributes.
  • Vector data can be used in a compressed read-only format which can greatly reduce the file size.
  • FC's are used in map packages which are a handy way of sharing data.

Personal Geodatabases (PGDB):

  • Often used as an attribute table manager (via Microsoft Access).
  • Users like the string handling for text attributes.

Shapefiles:

  • Greater usability cross-platform (e.g. QGIS, ArcGIS) and for geospatial operations in a non-ESRI scripting environment (e.g. pure Python, R, Matlab).
  • Many end-users get irritated if you send them a FGDB rather than a zipped folder containing shapefiles. As a side note, KML files are often used over SHP files or FGDB's to share simple spatial data.
  • Shapefiles are easier to sync to the cloud using a service such as Google Drive, whereas FC's & FGDB's often have sync errors.