0% found this document useful (0 votes)
35 views31 pages

Unit 5 System Design

The document provides an overview of system design, detailing its introduction, processes, logical and physical design, and structured design methodologies. It emphasizes the importance of defining system architecture, components, and interactions to achieve desired functionality and performance, while also discussing advantages, best practices, and challenges associated with system design. Key components such as modular design, user experience, and data management are highlighted as essential for creating efficient and maintainable systems.

Uploaded by

DEEP ESHH
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views31 pages

Unit 5 System Design

The document provides an overview of system design, detailing its introduction, processes, logical and physical design, and structured design methodologies. It emphasizes the importance of defining system architecture, components, and interactions to achieve desired functionality and performance, while also discussing advantages, best practices, and challenges associated with system design. Key components such as modular design, user experience, and data management are highlighted as essential for creating efficient and maintainable systems.

Uploaded by

DEEP ESHH
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

BIT III: PU Compiled By: GIRIJA 1

UNIT 5. System Design [8 Hrs.]


a. Introduction to system design
b. The process and stages of systems design
c. Logical and physical design
d. Introduction to structured design (Modular system design, Functional strength,
Structure chart, Cohesion, Coupling)
e. Database design and overview of file organization
f. Introduction to Normalization
g. Input/Output and Forms design

A. Introduction to system design


System design is the process of defining and planning the architecture, components, modules,
interfaces, and interactions of a complex software or hardware system. It involves making
decisions about how different parts of a system will work together to achieve the desired
functionality, performance, scalability, reliability, and maintainability.
The goal of system design is to create a blueprint or roadmap for building a system that meets
the requirements and objectives of a project. This includes breaking down the system into smaller
subsystems, modules, or components, and determining how they will communicate and
collaborate to accomplish the overall goals. System design takes into consideration various
technical and non-technical aspects, such as:
1. Architecture: Deciding on the overall structure of the system, including high-level
components, their relationships, and how data flows between them. This can involve
choosing between different architectural patterns like monolithic, micro services, client-
server, etc.
2. Components and Modules: Identifying the individual pieces that will make up the system
and defining their responsibilities and interactions. This could include databases,
application servers, user interfaces, external APIs, and more.
3. Data Management: Designing the data model and storage mechanisms that will be used
to store, retrieve, and manipulate data within the system. This involves choosing
appropriate databases, data formats, and storage strategies.
4. Communication and Interfaces: Specifying how different components will communicate
with each other, including the protocols, APIs, and data formats they will use to exchange
information.
5. Scalability and Performance: Planning for the system's ability to handle increased load
and traffic over time. This might involve considerations for load balancing, caching,
database optimization, and other performance-enhancing techniques.
6. Security: Addressing potential security vulnerabilities and implementing measures to
protect the system from unauthorized access, data breaches, and other security threats.
BIT III: PU Compiled By: GIRIJA 2

7. Reliability and Fault Tolerance: Designing the system to be resilient in the face of failures,
ensuring that it can continue to function properly even when certain components or
services fail.
8. Deployment and Infrastructure: Defining how the system will be deployed on various
environments (development, testing, and production) and determining the required
infrastructure, such as servers, networking, and cloud services.
9. User Experience (UX): Considering how users will interact with the system, including
designing intuitive interfaces and workflows that provide a positive user experience.
10. Maintainability and Extensibility: Creating a design that allows for easy maintenance,
updates, and future enhancements without major disruptions to the system.

System design often involves collaboration among software architects, engineers, product
managers, and other stakeholders.
Components of System Design
Below are some of the major components of the System Design. Discussed in brief. The detailed
version of this will be discussed in different posts:
1. Load balancers: Most crucial component for scalability, availability, and performance
measures for systems.
2. Key Value Stores: It is a storage system similar to hash tables where key-value stores are
distributed hash tables.
3. Blob Storage: Blob stands for binary large objects, as the name suggests is storage for
unstructured data such as YouTube, and Netflix.
4. Databases: It is an organized collection of data so that they can be easily accessed and
modified.
5. Rate Limiters: These sets the maximum number of requests a service can fulfill.
6. Monitoring System: These are basically software where system administrator monitor
infrastructures such as bandwidth, CPU, routers, switches, etc.
7. Distributed Unique ID generator: In the case of large distributed systems, every moment
multiple tasks are occurring so in order to distinguish it assign a tag corresponding to
every event.
8. Distributed Search: Over every website, crucial information that visitors will seek is put
into the search bar.
9. Distributed Logging Services: Tracing sequences of events from end to end.
10. Distributed Task Scheduler: Computational resources such as CPU, memory, storage, etc.
BIT III: PU Compiled By: GIRIJA 3

Components of System Design

Advantages of System Design


Some of the major advantages of System Design include:
 Reduces the design cost of a product.
 Speedy software development process
 Saves overall time in SDLC
 Increases efficiency and consistency of a programmer.
 Saves resources

In Unit 1, we have already familiarized ourselves with the objectives of system design.

B. Process of System Design


The Process of System Design
System design is a structured process that involves several stages. It involves a methodical
process of conceptualization, refinement, and construction. This process serves as the blueprint
for transforming abstract ideas into tangible and functional software systems.
Now, let's delve into the phases that constitute the process of system design:
Requirements Analysis: It is the foundation upon which the entire structure rests. This involves
understanding user needs, functional specifications, and potential challenges to ensure that the
design aligns with the project's goals.
BIT III: PU Compiled By: GIRIJA 4

Architectural Design: The architectural design phase shapes the high-level structure of the
software. Here, designers determine the major components, their relationships, and the overall
flow of information. This stage lays the groundwork for the subsequent design steps.

Component Design: The component design phase adds depth to the narrative. Designers delve
into the specifics of each module, determining how they function and interact. This involves
defining interfaces, algorithms, and internal mechanisms that contribute to the overall narrative
of the software.
Database Design: The database design phase sculpts the data storage and retrieval mechanisms.
Designers create a blueprint for organizing data, defining tables, relationships, and access
methods. This step ensures that data is managed efficiently and can be accessed when needed.
User Interface Design: Designers craft user interfaces that are visually appealing and user-
friendly. They create layouts, select fonts, and design interactive elements that enhance the user
experience.
Integration and Testing: The integration and testing phase brings all the components together.
System designers integrate different modules, test their interactions, and identify and rectify any
issues. This step ensures that the entire system functions seamlessly as a unified entity.
Best Practices for Effective System Design
 Thoroughly understand user needs and requirements before diving into design.
 Create modular components to enhance reusability and maintainability.
 Maintain comprehensive documentation to aid understanding and future development.
 Develop prototypes to validate design concepts and gather user feedback.
 Keep It Simple. Strive for simplicity in design to reduce complexity and improve system
clarity.

C. Logical and Physical Design


Logical Design
Logical design pertains to an abstract representation of the data flow, inputs, and outputs of the
system. It describes the inputs (sources), outputs (destinations), databases (data stores),
procedures (data flows) all in a format that meets the user requirements.

While preparing the logical design of a system, the system analyst specifies the user needs at
level of detail that virtually determines the information flow into and out of the system and the
required data sources. Data flow diagram, E-R diagram modelling are used.
BIT III: PU Compiled By: GIRIJA 5

Key components:
 Data entities: Representing real-world objects (e.g., users, products, orders) with relevant
attributes.
 Relationships: Defining how entities connect and interact (e.g., users place orders, orders
contain products).
 Workflows: Outlining the sequences of actions and data flow within the system (e.g., user
login, product search, checkout process).
 Use cases: Describing different ways users interact with the system and their goals.

Techniques and tools:


 UML diagrams: (e.g., Entity-Relationship Diagrams, Class Diagrams, Activity Diagrams) for
visually representing entities, relationships, and workflows.
 Data flow diagrams: Depicting data movement through the system, focusing on inputs,
outputs, and processing steps.
 Use case diagrams: Showing interactions between users and the system through various
use cases.

Benefits of Logical Design:


 Clarity and communication: Provides a clear visual representation of the system's
functionalities, enhancing communication between stakeholders.
 Flexibility: Adaptable to changing requirements without affecting the underlying
physical implementation.
 Reuse: Reusable concepts across different projects, saving time and effort.
 Early validation: Allows early identification of potential issues before coding begins.
 Foundation for physical design: Serves as a roadmap for translating abstract concepts
into concrete implementations.

Physical Design
Physical design relates to the actual input and output processes of the system. It focuses on
how data is entered into a system, verified, processed, and displayed as output.

It produces the working system by defining the design specification that specifies exactly what
the candidate system does. It is concerned with user interface design, process design, and data
design.
It consists of the following steps −
BIT III: PU Compiled By: GIRIJA 6

 Specifying the input/output media, designing the database, and specifying backup
procedures.
 Planning system implementation.
 Devising a test and implementation plan, and specifying any new hardware and
software.
 Updating costs, benefits, conversion dates, and system constraints.

Key components:
 Database design: Choosing the appropriate database type (e.g., relational, NoSQL) and
defining table structures based on data needs and access patterns.
 System architecture: Selecting the overall infrastructure setup (e.g., cloud, distributed
systems) based on scalability and performance requirements.
 Technology stack: Choosing specific technologies for development (e.g., programming
languages, frameworks) and communication protocols.
 Performance optimization: Implementing techniques to optimize resource usage,
minimize data redundancy, and ensure efficient data access.

Techniques and tools:


 Database schema diagrams: Visually illustrating table structures, relationships, and data
types.
 System architecture diagrams: Depicting the system's components, interactions, and
communication channels.
 Performance benchmarks: Measuring and analyzing system performance to identify and
address bottlenecks.
 Configuration management tools: Managing and deploying code and infrastructure
configurations across environments.
Benefits of Physical Design:
 Efficiency: Optimizes performance by choosing specific technologies and configurations
based on requirements.
 Scalability: Ensures the system can handle future growth and increasing demands.
 Security: Implements security measures tailored to the chosen technologies and data
storage mechanisms.
 Maintainability: Makes the system easier to understand, manage, and update due to
defined structures and configurations.
 Reduced costs: Optimizes resource allocation and avoids technical debt from inefficient
implementations.
BIT III: PU Compiled By: GIRIJA 7

Difference between Physical and Logical Design in Software Engineering

Feature Logical Design Physical Design

Abstract structure and Concrete implementation


Focus
functionalities details

Level of High-level, independent of Low-level, specific to chosen


detail specific technologies technologies and constraints

Storage mechanisms, data


Business requirements, data
types, performance
Concerns entities, relationships,
optimization, hardware
workflows
limitations

Database schemas, system


Tools and UML diagrams, data flow
architecture diagrams,
Techniques diagrams, use case diagrams
performance benchmarks

System analysts, software Database administrators,


Created by
architects developers

May only require changes in


Impact of Requires changes in both
physical design, leaving logical
changes physical and logical design
design intact

Less flexible due to


More adaptable to changing
Flexibility dependence on specific
requirements
technologies

Designing a system with


Choosing a specific database
modules for user
Example type, defining table structures,
management, order
and indexing strategies
processing, and reporting
BIT III: PU Compiled By: GIRIJA 8

D. Introduction to structured design (Modular system design, Functional strength,


Structure chart, Cohesion, Coupling)
Structured Design
Structured design is a dataflow-based methodology that helps in identifying the input and output
of the developing system. The main objective of structured design is to minimize the complexity
and increase the modularity of a program. Structured design also helps in describing the
functional aspects of the system.
In structured designing, the system specifications act as a basis for graphically representing the
flow of data and sequence of processes involved in software development with the help of DFDs.
After developing the DFDs for the software system, the next step is to develop the structure
chart.
The following are the steps involved in the Structured Design (SD) process:
 Requirements gathering: The first step in the SD process is to gather requirements from
stakeholders, including users, customers, and business partners.
 Structured Analysis: During the Structured Analysis phase, the requirements are analyzed
to identify the major components of the system, the relationships between those
components, and the data flows within the system.
 Data Modeling: During this phase, a data model is created to represent the data used in
the system and the relationships between data elements.
 Process Modeling: During this phase, the processes within the system are modeled using
flowcharts and data flow diagrams.
 Input/Output Design: During this phase, the inputs and outputs of the system are
designed, including the user interface and reports.
 Structured Design: During the Structured Design phase, the system is designed to meet
the requirements gathered in the Structured Analysis phase. This may include selecting
appropriate hardware and software platforms, designing databases, and defining data
structures.
 Implementation and Testing: Once the design is complete, the system is implemented
and tested.

Advantages of Structured Design (SD):


 Clarity and Simplicity: Breaks down complex systems into manageable components
for easier understanding.
 Better Communication: Provides a common language and framework, enhancing
communication among stakeholders.
 Improved Maintainability: Offers a clear, organized structure for easier maintenance
and updates.
 Better Testability: Defines system inputs and outputs clearly, facilitating effective
testing and requirement fulfilment.
BIT III: PU Compiled By: GIRIJA 9

Disadvantages of Structured Analysis and Structured Design (SD):


 Time-Consuming: The SD method can be time-consuming, especially for large and
complex systems, as it requires a significant amount of documentation and analysis.
 Inflexibility: Once a system has been designed using the SD method, it can be difficult to
make changes to the design, as the process is highly structured and documentation
intensive.
 Limited Iteration: The SD method is not well-suited for iterative development, as it is
designed to be completed in a single pass.

Modular System Design


A modular design is an approach for product designing used to produce a complete product by
integrating or combining smaller parts independent of each other. With the modular design
approach, a complex product (for example, a car) can be broken down or divided into smaller
and simpler components that are independently designed and manufactured. Each of these
components is then integrated (or assembled) to form the final product.

Key Principles:

 Independent Modules: Each module has a clear responsibility and operates


independently, minimizing dependency on other modules.
 Standardized Interfaces: Modules communicate with each other through well-defined
interfaces, promoting flexibility and reusability.
 Loose Coupling: Modules are loosely coupled, meaning changes in one module have
minimal impact on others, increasing maintainability.
 Modular Architecture: The overall system architecture is modular, allowing for easy
addition, removal, and replacement of modules.
BIT III: PU Compiled By: GIRIJA 10

Benefits:

 Flexibility: New functionalities can be easily added by incorporating new modules,


adapting the system to evolving needs.
 Scalability: Systems can be scaled up or down by adding or removing modules, catering
to different needs and sizes.
 Maintainability: Independent modules simplify troubleshooting and updates, as changes
are localized within modules.
 Reusability: Modules can be reused in different systems, reducing development time and
cost.
 Testability: Smaller modules are easier to test and debug individually, enhancing overall
system quality.

Challenges:

 Complexity: Defining clear interfaces and managing interactions between modules can be
complex.
 Overhead: Additional communication overhead might be introduced due to inter-module
communication.
 Standardization: Defining and maintaining standardized interfaces across diverse
modules requires careful planning.
 Potential Incompatibility: Compatibility issues might arise when adding or replacing
modules from different sources.

Examples:
 Software: Micro services architecture, object-oriented programming, plugins.
 Hardware: Legos, computers (CPU, RAM, GPU), furniture sets.
 Other: Curriculum with interchangeable modules, standardized shipping containers

Functional strength in structural design refers to the ability of a structure to withstand loads and
perform its intended function without failure. It involves designing a structure to meet both the
functional requirements and the necessary strength and stability criteria.
Some key considerations for achieving functional strength in structural design:
Load Analysis:
Understand and analyze the types and magnitudes of loads that the structure will experience,
including dead loads (permanent/static loads), live loads (temporary/dynamic loads), and
environmental loads (wind, earthquake, etc.).
Consider the effects of both normal operating conditions and potential extreme events.
BIT III: PU Compiled By: GIRIJA 11

Material Selection:
Choose materials with appropriate strength properties for the intended use of the structure.
Consider factors such as tensile strength, compressive strength, shear strength, and other
relevant material properties.

Safety Factors:
Apply appropriate safety factors to account for uncertainties and variations in material
properties, construction processes, and loading conditions. Safety factors ensure that the
structure has a margin of safety against failure.

Structural Analysis:
Perform structural analysis using engineering principles and tools to determine how the structure
will respond to various loads. Ensure that the structure remains within acceptable limits for
deflection, stress, and stability.

Connection Design:
Design connections between structural elements to ensure proper load transfer and distribution.
Pay attention to details such as welds, bolts, and other fasteners to prevent localized failures.

Code Compliance:
Adhere to relevant building codes and standards that provide guidelines for ensuring structural
safety and integrity. Codes often include specifications for material properties, design
methodologies, and safety factors.

Redundancy and Resilience:


Consider incorporating redundancy and resilience into the design to enhance the structure's
ability to withstand unexpected events or damage without catastrophic failure.

Lifecycle Considerations:
Account for factors such as maintenance, deterioration, and potential modifications over the
structure's lifecycle. Design for durability and long-term performance.

Interdisciplinary Collaboration:
Work collaboratively with other disciplines, such as architects and mechanical engineers, to
ensure that the structural design aligns with overall project goals.

Testing and Monitoring:


Conduct tests and inspections during and after construction to verify that the structure meets
design specifications. Implement monitoring systems for ongoing assessment of structural
health.
BIT III: PU Compiled By: GIRIJA 12

Structured Chart

A structured chart, also known as a De Marco chart, is a graphical tool used in software
engineering to visualize the hierarchical decomposition of a program or system into functional
modules. It depicts the relationships between modules, highlighting how they interact and
exchange data.
Structure Chart represents the hierarchical structure of modules. It breaks down the entire
system into the lowest functional modules and describes the functions and sub-functions of each
module of a system in greater detail.

In Structured Chart:
 Inputs are given to the black boxes and appropriate outputs are generated.
 Modules at the top level are called modules at low level.
 Components are read from top to bottom and left to right.
 When a module calls another, it views the called module as a black box, passing the
required parameters and receiving results.

Benefits of Structured Chart


 Clear visualization: Structured charts provide a clear and concise visualization of a
process, system or project, making it easier to understand and communicate to
stakeholders.
 Simplification of complex processes: They simplify complex processes, breaking them
down into smaller components, making it easier to manage and understand.
 Easy to update: They are easy to update and modify as changes occur, providing a visual
aid that can be easily modified to reflect the current state of the process, system or
project.
 Standardization: Structured charts follow a standard format, making them easy to
understand across different teams, organizations and industries.
 Time-saving: They can help save time by reducing the need for lengthy explanations or
documents, as stakeholders can easily understand the process through the chart.
BIT III: PU Compiled By: GIRIJA 13

Symbols in Structured Chart


1. Module
It represents the process or task of the system. It is of three types:
 Control Module: A control module branches to more than one submodule.
 Sub Module: Sub Module is a module which is the part (Child) of another module.
 Library Module: Library Module are reusable and invokable from any module.

2. Conditional Call
It represents that control module can select any of the sub module on the basis of some
condition.

3. Loop (Repetitive call of module)


It represents the repetitive execution of module by the sub module. A curved arrow represents
a loop in the module. All the submodules cover by the loop repeat execution of module.
BIT III: PU Compiled By: GIRIJA 14

4. Data Flow
It represents the flow of data between the modules. It is represented by a directed arrow with
an empty circle at the end.

5. Control Flow
It represents the flow of control between the modules. It is represented by a directed arrow
with a filled circle at the end.

6. Physical Storage
It is that where all the information are to be stored.
BIT III: PU Compiled By: GIRIJA 15

Example
Structure chart for an Email server

Cohesion and Coupling


Coupling refers to the degree of interdependence between different modules, classes, or
components of a software system. It shows how closely these elements relate to each other
and how much one element depends on the behavior, data or interfaces of another.
BIT III: PU Compiled By: GIRIJA 16

Types of Cohesion:

Content Coupling:
Modules share data directly through global variables or parameters. This is the strongest coupling
method and is not recommended because it tightly couples the modules and makes them highly
dependent on each other.

General Coupling:
Modules share global data or resources that are frequently used and modified by different
modules. Although not as direct as pooling content, it still represents tight pooling through
shared resources.

External Coupling:
Modules communicate by exchanging data through external interfaces such as function
parameters or method calls. Although external binding is more flexible than content and general
binding, it can still cause dependencies.

Control Coupling:
One module affects the behavior of another by passing control information, often through
parameters. This type of connection may be less direct than a content connection but still
requires close communication.
Stamp Coupling:
Modules share a composite data structure such as a record or object without sharing. Changes
to the structure can affect several modules, but the connection is weaker than in the content
connection.
Data Coupling:
Modules share data through parameters, but there is no direct relationship between functions.
Compared to the previous types, it is a relatively loose form of connection.
BIT III: PU Compiled By: GIRIJA 17

Cohesion
Cohesion in software engineering refers to the degree of interrelatedness and focus among the
elements within a module, class, or component. It measures how well the internal components
of a module work together to achieve a single, well-defined purpose.

Types of Cohesion:

Functional Cohesion:
Elements within a module are grouped based on a single, specific functionality or task. This is the
strongest form of cohesion, where all elements contribute to the same goal.

Sequential Cohesion:
Elements are organized in a linear sequence, where the output of one element becomes the input
of the next. This type of cohesion is often seen in processes with step-by-step execution.

Communicational Cohesion:
Elements within a module work together to manipulate a shared data structure. They might not
perform the same function, but their actions are closely related to a common piece of data.

Procedural Cohesion:
Elements are grouped based on their involvement in a specific sequence of actions or steps.
They might share some data, but their primary focus is on the sequence of operations.
BIT III: PU Compiled By: GIRIJA 18

Temporal Cohesion:
Elements are grouped because they need to be executed at the same time or during the same
phase. They might not share functional or data-related aspects.

Coincidental Cohesion:
Elements are grouped arbitrarily without a clear, meaningful relationship. This type of cohesion
is typically indicative of poor module design.
Advantages of Low Coupling
 Easier adaptability to new requirements.
 Clear module boundaries for focused development.
 Team members work independently with reduced conflicts.
 Modules can be tested in isolation, improving reliability.
 Easier debugging and refactoring, enhancing code quality.
 Supports seamless expansion and addition of features.
 Facilitates effective communication and teamwork.

Advantages of High Cohesion


 Clear and specific module responsibilities.
 Code is more understandable and self-explanatory.
 Easier to locate and fix bugs or make enhancements.
 Supports modular design and reusability of components.
 Changes are contained within well-defined boundaries.
 Team members understand and collaborate on tasks more effectively.

Disadvantages of High Coupling


 Changes in one module lead to widespread impacts.
 Harder to isolate and fix bugs without affecting other modules.
 Modules are tightly tied, hindering standalone use.
 Difficult to adapt to new requirements or technologies.
 Changes can lead to unintended consequences in other parts.
 Developers can't work independently due to interdependencies.

Disadvantages of Low Cohesion


 Modules have mixed responsibilities, causing ambiguity.
 Code becomes harder to follow and understand.
 Changes can impact multiple, unrelated tasks.
 Testing becomes challenging due to scattered logic.
 Unrelated functionality intermixed can introduce bugs.
 Difficult to extend or modify without affecting other tasks.
 Unrelated code fragments increase codebase size.
BIT III: PU Compiled By: GIRIJA 19

Differences between Coupling and Cohesion:


Cohesion Coupling

Cohesion is the concept of intro-module. Coupling is the concept of inter-module.

Cohesion represents the relationship within a Coupling represents the relationships


module. between modules.

Increasing cohesion is good for software. Increasing coupling is avoided for software.

Cohesion represents the functional strength of Coupling represents the independence


modules. among modules.

Highly cohesive gives the best software. Whereas loosely coupling gives the best
software.

In cohesion, the module focuses on a single In coupling, modules are connected to the
thing. other modules.

Cohesion is created between the same Coupling is created between two different
module. modules.

E. Database design and overview of file organization


Database design can be generally defined as a collection of tasks or processes that enhance the
designing, development, implementation, and maintenance of enterprise data management
system. Designing a proper database reduces the maintenance cost thereby improving data
consistency and the cost-effective measures are greatly influenced in terms of disk storage space.
Importance of Database Design

 Database designs provide the blueprints of how the data is going to be stored in a system.
The proper design of a database highly affects the overall performance of any application.
 The designing principles defined for a database give a clear idea of the behavior of any
application and how the requests are processed.
 Another instance to emphasize the database design is that a proper database design
meets all the requirements of users.
 Lastly, the processing time of an application is greatly reduced if the constraints of
designing a highly efficient database are properly implemented.
BIT III: PU Compiled By: GIRIJA 20

Life Cycle of Database Design

Although, the life cycle of a database is not an important discussion that has to be taken forward
in this article because we are focused on the database design. But, before jumping directly on the
designing models constituting database design it is important to understand the overall workflow
and life-cycle of the database.
Requirement Analysis
First of all, the planning has to be done on what are the basic requirements of the project under
which the design of the database has to be taken forward. Thus, they can be defined as:-
Planning - This stage is concerned with planning the entire DDLC (Database Development Life
Cycle). The strategic considerations are taken into account before proceeding.
System definition - This stage covers the boundaries and scopes of the proper database after
planning.

Database Designing
The next step involves designing the database considering the user-based requirements and
splitting them out into various models so that load or heavy dependencies on a single aspect are
not imposed. Therefore, there has been some model-centric approach and that's where logical
and physical models play a crucial role.
Physical Model - The physical model is concerned with the practices and implementations of the
logical model.
Logical Model - This stage is primarily concerned with developing a model based on the proposed
requirements. The entire model is designed on paper without any implementation or adopting
DBMS considerations.
BIT III: PU Compiled By: GIRIJA 21

Implementation
The last step covers the implementation methods and checking out the behavior that matches
our requirements. It is ensured with continuous integration testing of the database with different
data sets and conversion of data into machine understandable language.

Data conversion and loading - This section is used to import and convert data from the old to the
new system.

Testing - This stage is concerned with error identification in the newly implemented system.
Testing is a crucial step because it checks the database directly and compares the requirement
specifications.

Benefits Database Design:


 Improved data accuracy and consistency
 Reduced data redundancy and storage costs
 Faster data retrieval and manipulation
 Easier database maintenance and scalability
 Enhanced data security and integrity

Database Design Process


The process of designing a database carries various conceptual approaches. An ideal and well-
structured database design must be able to:
 Save disk space by eliminating redundant data.
 Maintains data integrity and accuracy.
 Provides data access in useful ways.
 Comparing Logical and Physical data models.

Logical Database Design


A logical data model generally describes the data in as many details as possible, without having
to be concerned about the physical implementations in the database. Features of logical data
model might include:

 All the entities and relationships amongst them.


 Each entity has well-specified attributes.
 The primary key for each entity is specified.
 Foreign keys which are used to identify a relationship between different entities are
specified.
 Normalization occurs at this level.
BIT III: PU Compiled By: GIRIJA 22

Physical Database Design


A Physical data mode generally represents how the approach or concept of designing the
database. The main purpose of the physical data model is to show all the structures of the table
including the column name, column data type, constraints, keys(primary and foreign), and the
relationship among tables. The following are the features of a physical data model:

 Specifies all the columns and tables.


 Specifies foreign keys that usually define the relationship between tables.
 Based on user requirements, de-normalization might occur.
 Since the physical consideration is taken into account so there will straightforward
reasons for difference than a logical model.
 Physical models might be different for different RDBMS. For example, the data type
column may be different in MySQL and SQL Server.
BIT III: PU Compiled By: GIRIJA 23

File Organization
 The File is a collection of records. Using the primary key, we can access the records. The
type and frequency of access can be determined by the type of file organization which
was used for a given set of records.
 File organization is a logical relationship among various records. This method defines how
file records are mapped onto disk blocks.
 File organization is used to describe the way in which the records are stored in terms of
blocks, and the blocks are placed on the storage medium.
 The first approach to map the database to the file is to use the several files and store only
one fixed length record in any given file. An alternative approach is to structure our files
so that we can contain multiple lengths for records.
 Files of fixed length records are easier to implement than the files of variable length
records.
BIT III: PU Compiled By: GIRIJA 24

Objective of file organization


 It contains an optimal selection of records, i.e., records can be selected as fast as possible.
 To perform insert, delete or update transaction on the records should be quick and easy.
 The duplicate records cannot be induced as a result of insert, update or delete.
 For the minimal cost of storage, records should be stored efficiently.

Types of File Organization

Sequential File Organization


This is the most straightforward technique of file arrangement. Files are saved in this method in
sequential order.

Heap File Organization


It is the most fundamental and basic type of organizational structure. It’s based on data chunks.
The records are inserted at the end of the file in the heap file organization. The ordering and
sorting of records are not required when the entries are added.

Hash File Organization


The computation of the hash function on some of the fields of the records is used by Hash File
Organization. The output of the hash function defines the position of the disc block where the
records will be stored.
BIT III: PU Compiled By: GIRIJA 25

B+ File Organization
The advanced way of an indexed sequential access mechanism is the B+ tree file organization. In
File, records are stored in a tree-like structure.

Indexed Sequential Access Method or ISAM


ISAM (Advanced Sequential File Organizing Approach) is an advanced sequential file organization
method. Records are stored in the file using the primary key in this way. For each primary key,
an index value is created and mapped to the record. The address of the record in any file is
contained in this index.

Cluster File Organization


Clusters are created when two or more records are saved in the same file. There will be two or
more than two tables in the very same data block in these files, and key attributes that are used
to link these tables together will only be kept once.

F. Introduction to Normalization
 Normalization is the process of organizing the data in the database.
 Normalization is used to minimize the redundancy from a relation or set of relations. It is
also used to eliminate undesirable characteristics like Insertion, Update, and Deletion
Anomalies.
 Normalization divides the larger table into smaller and links them using relationships.
 The normal form is used to reduce redundancy from the database table.

Why do we need normalization?


• Reduced redundancy: Saves space and avoids inconsistencies.
• Minimized data anomalies: Prevents accidental data insertion, updates, and deletions.
• Improved data integrity: Enforces relationships, ensuring data accuracy and consistency.
• Faster queries and performance: Smaller tables allow for efficient data retrieval.
• Enhanced data maintainability: Easier to add, modify, and manage information.
• Increased data security: Limits redundant data and access points, improving security.
BIT III: PU Compiled By: GIRIJA 26

Benefits of Normalization:
 Eliminates Redundancy: Reduces data duplication by organizing data in a systematic
manner.
 Consistent Data: Ensures consistency and uniformity in data, reducing anomalies and
errors.
 Improved Query Performance: Enhances query performance by simplifying data
retrieval and analysis.
 Easier Maintenance: Facilitates easier database maintenance and updates.
 Better Data Integrity: Minimizes data anomalies and improves overall data integrity.
 Facilitates Flexibility: Allows for more flexible database design and adaptability to
changes.
 Supports Multilevel Access: Supports various levels of data access control.

Normal Forms
There are four types of normal forms that are usually used in relational databases as you can
see in the following figure:
BIT III: PU Compiled By: GIRIJA 27

The First Normal Form – 1NF


For a table to be in the First Normal Form, it should follow the following 4 rules:
 It should only have single (atomic) valued attributes/columns.
 Values stored in a column should be of the same domain.
 All the columns in a table should have unique names.
 And the order in which data is stored should not matter.

The Second Normal Form – 2NF


The 1NF only eliminates repeating groups, not redundancy. That’s why there is 2NF.
A table is said to be in 2NF if it meets the following criteria:
 it’s already in 1NF
 Has no partial dependency. That is, all non-key attributes are fully dependent on a
primary key.

The Third Normal Form – 3NF


When a table is in 2NF, it eliminates repeating groups and redundancy, but it does not
eliminate transitive partial dependency.
This means a non-prime attribute (an attribute that is not part of the candidate’s key) is
dependent on another non-prime attribute. This is what the third normal form (3NF)
eliminates.
So, for a table to be in 3NF, it must:
 be in 2NF
 have no transitive partial dependency.

Boyce-Codd Normal Form (BCNF)


 Boyce and Codd Normal Form is a higher version of the Third Normal Form.
 This form deals with a certain type of anomaly that is not handled by 3NF.
 A 3NF table that does not have multiple overlapping candidate keys is said to be in
BCNF.
 For a table to be in BCNF, the following conditions must be satisfied:
o R must be in the 3rd Normal Form
o and, for each functional dependency ( X → Y ), X should be a Super Key.
BIT III: PU Compiled By: GIRIJA 28

Advantages of Data Normalization


The process of normalizing a database has numerous advantages. The following are a few key
benefits:
1. Utilizing database or data redundancy through normalization
2. Duplication may be eliminated.
3. By normalizing, we may reduce null values.
4. Results in a smaller database (since there is less data duplication or zero).
5. Minimize/avoid issues with data modification.
6. It makes the queries easier.
7. The database structure is more comprehensible and straightforward.
8. Existing data can be added to the database without having an impact.
9. Because the table is compact and more rows can fit on the data page, finding, sorting, as
well as indexing may be quicker.

F. Input/Output and Forms design


Input Design
In an information system, input is the raw data that is processed to produce output. During the
input design, the developers must consider the input devices such as PC, MICR, OMR, etc.
Therefore, the quality of system input determines the quality of system output. Well designed
input forms and screens have following properties −

 It should serve specific purpose effectively such as storing, recording, and retrieving the
information.
 It ensures proper completion with accuracy.
 It should be easy to fill and straightforward.
 It should focus on user’s attention, consistency, and simplicity.
 All these objectives are obtained using the knowledge of basic design principles
regarding −
 What are the inputs needed for the system?
 How end users respond to different elements of forms and screens.

Objectives for Input Design


The objectives of input design are −

 To design data entry and input procedures


 To reduce input volume
 To design source documents for data capture or devise other data capture methods
BIT III: PU Compiled By: GIRIJA 29

 To design input data records, data entry screens, user interface screens, etc.
 To use validation checks and develop effective input controls.

Data Input Methods


It is important to design appropriate data input methods to prevent errors while entering data.
These methods depend on whether the data is entered by customers in forms manually and later
entered by data entry operators, or data is directly entered by users on the PCs.

A system should prevent user from making mistakes by −


 Clear form design by leaving enough space for writing legibly.
 Clear instructions to fill form.
 Clear form design.
 Reducing key strokes.
 Immediate error feedback.

Some of the popular data input methods are −

 Batch input method (Offline data input method)


 Online data input method
 Computer readable forms
 Interactive data input

Input Integrity Controls


Input integrity controls include a number of methods to eliminate common input errors by end-
users. They also include checks on the value of individual fields; both for format and the
completeness of all inputs.

Audit trails for data entry and other system operations are created using transaction logs which
gives a record of all changes introduced in the database to provide security and means of
recovery in case of any failure.

Output Design
The design of output is the most important task of any system. During output design,
developers identify the type of outputs needed, and consider the necessary output controls and
prototype report layouts.
Objectives of Output Design
The objectives of input design are −
 To develop output design that serves the intended purpose and eliminates the
production of unwanted output.
 To develop the output design that meets the end users requirements.
BIT III: PU Compiled By: GIRIJA 30

 To deliver the appropriate quantity of output.


 To form the output in appropriate format and direct it to the right person.
 To make the output available on time for making good decisions.
 Let us now go through various types of outputs –

External Outputs
Manufacturers create and design external outputs for printers. External outputs enable the
system to leave the trigger actions on the part of their recipients or confirm actions to their
recipients.
Some of the external outputs are designed as turnaround outputs, which are implemented as a
form and re-enter the system as an input.
Internal outputs
Internal outputs are present inside the system, and used by end-users and managers. They
support the management in decision making and reporting.
There are three types of reports produced by management information −

 Detailed Reports − They contain present information which has almost no filtering
or restriction generated to assist management planning and control.
 Summary Reports − They contain trends and potential problems which are
categorized and summarized that are generated for managers who do not want
details.
 Exception Reports − They contain exceptions, filtered data to some condition or
standard before presenting it to the manager, as information.

Output Integrity Controls


Output integrity controls include routing codes to identify the receiving system, and verification
messages to confirm successful receipt of messages that are handled by network protocol.
Printed or screen-format reports should include a date/time for report printing and the data.
Multipage reports contain report title or description, and pagination. Pre-printed forms usually
include a version number and effective date.

Forms Design
Both forms and reports are the product of input and output design and are business document
consisting of specified data. The main difference is that forms provide fields for data input but
reports are purely used for reading. For example, order forms, employment and credit
application, etc.

 During form designing, the designers should know −


o who will use them
BIT III: PU Compiled By: GIRIJA 31

o where would they be delivered


 the purpose of the form or report
 During form design, automated design tools enhance the developer’s ability to
prototype forms and reports and present them to end users for evaluation.

Objectives of Good Form Design


A good form design is necessary to ensure the following −

 To keep the screen simple by giving proper sequence, information, and clear captions.
 To meet the intended purpose by using appropriate forms.
 To ensure the completion of form with accuracy.
 To keep the forms attractive by using icons, inverse video, or blinking cursors etc.
 To facilitate navigation.

You might also like