For every table defined, at least one view is required. As many other views may be defined as are necessary. Application software refers to views instead of the tables themselves. This insulates the application from changes that are made to the underlying tables. All tables, with the possible exception of very small ones with limited growth potential, include a primary key to guarantee uniqueness and enhance performance.
Referential integrity is maintained through the use of foreign keys.
However, the use of foreign keys to enforce RDI is balanced with the corresponding performance overhead. Table columns used in frequent search operations are indexed to improve efficiency. Permissions Permissions are never granted on tables but on views instead. If a table is deleted in order to make structural changes, e.g., changing a field name, all permissions are lost. However, if permissions are granted on views, they remain intact.