Database Design
28.4.3 Database Design
Database design is used to define and then specify the structure of business objects used in the client/server system. The analysis required to identify business objects is accomplished using business process engineering methods discussed in Chapter 10. Conventional analysis modeling notation (Chapter 12), such as the ERD, can be used to define business objects, but a database repository should be established in order to capture the additional information that cannot be fully documented using a graphic notation such as an ERD.
In this repository, a business object is defined as information that is visible to the purchasers and users of the system, not its implementers. This information, imple- mented using a relational database, can be maintained in a design repository. The following design information is collected for the client/server database [POR94]:
• Entities are identified within the ERD for the new system. • Files implement the entities identified within the ERD. • File-to-field relationships establish the layout for the files by identifying which
“The organization of fields are included in which files. data in a database
• Fields define the fields in the design (the data dictionary).
has to represent the underlying meaning
• File-to-file relationships identify related files that can be joined to create logi- or semantics of the
cal views or queries. data correctly and
• Relationship validation identifies the type of file-to-file or file-to-field relation- efficiently.” ships used for validation.
Gio Wiederhold
• Field type is used to permit inheritance of field characteristics from field superclasses (e.g., date, text, number, value, price).
• Data type specifies the characteristics of the data contained in a field. • File type is used to identify the location of the file. • Field functions include key, foreign key, attribute, virtual field, derived field,
and the like. • Allowed values identify values allowed for status type fields. • Business rules are the rules for editing, calculating derived fields, and so on.
The trend toward distributed data management has accelerated as c/s architec- tures have become more pervasive. In c/s systems that implement this approach, the data management component resides on both the client and the server. Within the context of database design, a key issue is data distribution. That is, how are data dis- tributed between the client and server and dispersed across the nodes of a network?
A relational database system enables easy access to distributed data through the use of structured query language. The advantage of SQL in a c/s architecture is that it is “nonnavigational” [BER92]. In an RDBMS, the type of data is specified using SQL, but no navigational information is required. Of course, the implication of this is that the RDBMS must be sophisticated enough to maintain the location of all data and be capable of defining the best path to it. In less sophisticated database systems, a request for data must indicate what is to be accessed and where it is. If application software must maintain navigational information, data management becomes much more complicated for c/s systems.
It should be noted that other data distribution and management techniques are also available to the designer [BER92]:
? Manual extract. The user is allowed to manually copy appropriate data from
What
options
a server to a client. This approach is useful when static data are required by a
exist for distributing data user and the control of the extract can be left in the user’s hands.
within a c/s
Snapshot. This technique automates the manual extract by specifying a
system?
“snapshot” of data that should be transferred from a server to a client at pre- defined intervals. This approach is useful for distributing relatively static data that require only infrequent update.
Replication. This technique can be used when multiple copies of data must
be maintained at different sites (e.g., different servers or clients and servers). Here, the level of complexity escalates because data consistency, updates, security, and processing must all be coordinated at multiple sites.
Fragmentation. In this approach, the system database is fragmented across multiple machines. Although intriguing in theory, fragmentation is exception- ally difficult to implement and is not encountered frequently.
Database design and, more specifically, database design for c/s systems are top- ics that are beyond the scope of this book. The interested reader should see [BRO91], [BER92], [VAS93], and [ORF99] for additional discussion.
Parts
» The Concurrent Development Model
» SUMMARY Software engineering is a discipline that integrates process, methods, and tools for
» PEOPLE In a study published by the IEEE [CUR88], the engineering vice presidents of three
» THE PROCESS The generic phases that characterize the software process—definition, development,
» THE PROJECT In order to manage a successful software project, we must understand what can go
» METRICS IN THE PROCESS AND PROJECT DOMAINS
» Extended Function Point Metrics
» METRICS FOR SOFTWARE QUALITY
» INTEGRATING METRICS WITHIN THE SOFTWARE PROCESS
» METRICS FOR SMALL ORGANIZATIONS
» ESTABLISHING A SOFTWARE METRICS PROGRAM
» Obtaining Information Necessary for Scope
» An Example of LOC-Based Estimation
» QUALITY CONCEPTS 1 It has been said that no two snowflakes are alike. Certainly when we watch snow
» SUMMARY Software quality assurance is an umbrella activity that is applied at each step in the
» R diagram 1.4 <part-of> data model; data model <part-of> design specification;
» SYSTEM MODELING Every computer-based system can be modeled as an information transform using an
» Facilitated Application Specification Techniques
» Data Objects, Attributes, and Relationships
» Entity/Relationship Diagrams
» Hatley and Pirbhai Extensions
» Creating an Entity/Relationship Diagram
» SUMMARY Design is the technical kernel of software engineering. During design, progressive
» Data Modeling, Data Structures, Databases, and the Data Warehouse
» Data Design at the Component Level
» A Brief Taxonomy of Styles and Patterns
» Quantitative Guidance for Architectural Design
» Isolate the transform center by specifying incoming and outgoing
» SUMMARY Software architecture provides a holistic view of the system to be built. It depicts the
» The User Interface Design Process
» Defining Interface Objects and Actions
» D E S I G N E VA L U AT I O N
» Testing for Real-Time Systems
» Organizing for Software Testing
» Criteria for Completion of Testing
» The Transition to a Quantitative View
» The Attributes of Effective Software Metrics
» Architectural Design Metrics
» Component-Level Design Metrics
» SUMMARY Software metrics provide a quantitative way to assess the quality of internal product
» Encapsulation, Inheritance, and Polymorphism
» Identifying Classes and Objects
» The Common Process Framework for OO
» OO Project Metrics and Estimation
» Event Identification with Use-Cases
» SUMMARY Object-oriented analysis methods enable a software engineer to model a problem by
» Partitioning the Analysis Model
» Designing Algorithms and Data Structures
» Program Components and Interfaces
» SUMMARY Object-oriented design translates the OOA model of the real world into an
» Testing Surface Structure and Deep Structure
» Deficiencies of Less Formal Approaches 1
» What Makes Cleanroom Different?
» Design Refinement and Verification
» SUMMARY Cleanroom software engineering is a formal approach to software development that
» Structural Modeling and Structure Points
» Describing Reusable Components
» SUMMARY Component-based software engineering offers inherent benefits in software quality,
» Guidelines for Distributing Application Subsystems
» Middleware and Object Request Broker Architectures
» An Overview of a Design Approach
» Consider expert Web developer will create a complete design, but time and cost can be appropriate
» A Software Reengineering Process Model
» Reverse Engineering to Understand Data
» Forward Engineering for Client/Server Architectures
» SUMMARY Reengineering occurs at two different levels of abstraction. At the business level,
Show more