Microsoft® SQL Server® 2012 Bible

(Ben Green) #1

18


Part I: Laying the Foundations


Extensibility
The Information Architecture Principle states that the information must be readily avail-
able today and in the future, which requires the database to be extensible and able to be
easily adapted to meet new requirements. The concepts of data integrity, performance, and
availability are all mature and well understood by the computer science and IT professions.
With enough time and resources, you can design a data architecture that meets the objec-
tive of extensibility. The trick is to make sure that your entire organization understands
that the resource investment is not only important, but also absolutely necessary to good
data architecture. There are many databases that fell victim to the curse of not enough
time and too few resources. These are usually the ones that can’t grow and adapt to new
business requirements or organizational change well. Extensibility is incorporated into the
design as follows:

■ (^) Normalization and correct handling of optional data.
■ (^) Generalization of entities when designing the schema.
■ (^) Data-driven designs that not only model the obvious data (for example, orders and
customers), but also enable the organization to store the behavioral patterns, or
process fl ow.
■ (^) A well-defi ned abstraction layer that decouples the database from all client access,
including client apps, middle tiers, ETL, and reports.
■ (^) Extensibility is also closely related to simplicity. Complexity breeds complexity and
inhibits adaptation. Remember, a simple solution is easy to understand and adopt,
and ultimately, easy to adjust later.
Data Integrity
The ability to ensure that persisted data can be retrieved without error is central to the
Information Architecture Principle, and it was the fi rst major problem tackled by the data-
base world. Without data integrity, a query’s answer cannot be guaranteed to be correct;
consequently, there’s not much point in availability or performance. Data integrity can be
defi ned in multiple ways:
■ (^) Entity integrity: Involves the structure (primary key and its attributes) of the
entity. If the primary key is unique and all attributes are scalar and fully depen-
dent on the primary key, then the integrity of the entity is good. In the physical
schema, the table’s primary key enforces entity integrity.
■ (^) Domain integrity: Ensures that only valid data is permitted in the attribute. A
domain is a set of possible values for an attribute, such as integers, bit values, or
characters. Nullability (whether a null value is valid for an attribute) is also a part
of domain integrity. In the physical schema, the data type and nullability of the
row enforce domain integrity.
■ (^) Referential integrity: Refers to the domain integrity of foreign keys. Domain
integrity means that if an attribute has a value, then that value must be in the
c02.indd 18c02.indd 18 7/30/2012 4:07:51 PM7/30/2012 4:07:51 PM
http://www.it-ebooks.info

Free download pdf