Salesforce Objects vs. SQL Server Database: Object Model vs. RDBMS Schema

What are Salesforce objects?

You can think of objects as being similar to MS SQL Server database Tables – with many additional properties to simplify your development. provides many out-of-box elements as well as gives you the ability to create your own elements. The built in elements are referred to as Standard (e.g. standard objects, fields), while the ones you create are called Custom (e.g. custom objects, custom fields).

You can rename these standard objects and also add custom fields to them (like facebook__C, blog__c).

You can of course create your own objects (e.g. Speaker__C). Any object you create have some standard fields built-in for you (e.g. “Last modified By”).

The __c suffix is the internal name (also called API name) of the object and fields – for your labels you will have more user friendly names. When you access your objects and fields programmatically or through APIs, you will use the internal name.

MS SQL Server DB vs. Salesforce Objects

Objects are really much more than RDBMS tables. When you create an object – UI (page layout), search indexes and DR infrastructure are automatically generated for you. Bindings between your program and objects are automatically generated – unlike a RDBMS schema where you would need to create ADO.NET components (or prepared statements/JDBC in case of Java).

Data model in vs. RDBMS Schema

You have a very rich set of data types (e.g. master-detail, lookups, picklists, formula) unlike a database table which has datatypes like char, varchar. The availability of standard objects and the rich data types mean that you can model very complex relationships with surprisingly few objects.


Unlike a traditional RDBM data model, in a Salesforce object schema, many of the reference tables are not needed (replaced by picklists). In the traditional data model, you would further need to create other tables to represent entities (e.g. accounts, customers, products), but in these can be easily represented by pre-built standard objects.

To summarize – you can interact with objects as you would with RDBMS tables (through SQL syntax) or as application objects (using APIs).

So what are how does the lingo match up?

RDBMS Tables


Tables Objects
Columns Fields
Keys (e.g primary key) Ids, External Ids
Foreign Keys Relationships
Keys (e.g primary key) Ids, External Ids
Row Record