An application isn’t worth much unless it has data to work with. And to do anything meaningful with serious quantities of information, you need a database for storage. That’s where database application development comes in: Whether an application is off-the-shelf or custom, database development is part of the process of building it. Force.com makes database application development simple: Intuitive wizards guide you through creating fields, relationships, and objects.
The foundation for database customization on Force.com is database services, which provides you with database application development power way beyond mere information warehousing. Database services lets you define data-storage objects to handle the complexities of keeping your data secure and always available.
The database application development functionality of database services can be used with any Force.com app, whether it’s built with the declarative application framework, enhanced through Force.com code (Apex) and Force.com pages (Visualforce), or merely accessing data through the Force.com Web services API.
Before diving more deeply into database application development with Force.com, it’s useful to review the platform’s advantages at the highest level. Force.com is cloud-based, which means you don’t need server hardware or a data center to perform database customization or any other aspect of database application development. With just a notebook and a Web browser, custom database development power is literally at your fingertips.
You also don’t need a Ph.D. in programming for database application development on Force.com. If you’re at home with intuitive point-and-click tools―and these days, who isn’t?―you can easily create custom objects and fields for dates, numbers, text, currency, pick lists, checklists, and more.
Similarly, it takes just clicks to add relationships, formula fields, validation rules, reporting, tagging, auditing, and searches using your choice of Force.com’s Web-based custom database development environment or Eclipse-based IDE. All database application development services are tightly integrated with the Java-like Force.com code, Apex, which includes a dedicated syntax for invoking searches and iterating over results.
When you use Force.com for database application development, you don’t need to be concerned about performance tuning, backup and recovery strategies, and archive logging. Just perform your database customization and we’ll handle everything else securely in the cloud.
Let’s not overlook another advantage of Force.com for database application development: With your data model as a guide, the platform automatically creates a rich user interface. Force.com makes individually tailoring this UI as easy as it makes database customization: Just use our drag-and-drop page layout editor.
The function of “data persistence” is central to many applications, and the Force.com database makes up the platform’s persistence layer. The process of database application development involves creating persistent objects using the Web-based Force.com Setup menu environment. The platform then automatically generates a user interface (UI) around these objects. In addition to custom database development, Force.com lets you build tagging, reporting, and a host of other related functions into your apps. As mentioned previously, database customization services are closely tied to Force.com’s native code (Apex).
Before undertaking database application development, it’s helpful to understand the basic structure of the Force.com database, the many data types supported, and the terminology used.
In addition to automatic UI generation and point-and-click tools, Force.com has another database application development capability that’s especially noteworthy: Instead of performing custom database development using foreign keys, you work with meaningful and more abstract relationships.
When you’re doing database application development with a relational database, you store data in tables, each of which contains a number of columns of a specific data type. Information resides in the rows of each table. As part of the database application development process, you can create relationships among various tables by means of primary and foreign keys. For example, you can map the rows in one table to rows in another.
In contrast, the Force.com database uses objects to store data. Although objects have all the functionality of tables and more, there are differences that bear directly on custom database development. Objects are made up of fields. When you perform database application development, you associate or relate objects to other objects using relationship fields that map records in one object to records in another. Metadata defines an object’s attributes, and information gets stored in records of the object. When you create an object using Force.com code during the course of database application development, it’s called an sObject to distinguish it from instances of Apex classes.
You can define two kinds of relationship fields in database application development:
For more information on database application development with Force.com, please visit our wiki page on Database Services. You’ll find overviews, articles, and presentations on custom database development plus reference material on the finer details of database customization.