REMAINING AREAS TO BE COVERED BEFORE EXAM
Parallel database
Distributed database
Crash recovery
Software maintenance
Hardware maintenance
PARALLEL DATA BASE
A parallel DBMS is a DBMS that runs across multiple processors or CPUs and is mainly designed
to execute query operations in parallel, wherever possible. The parallel DBMS link a number of
smaller machines to achieve the same throughput as expected from a single large machine.
In Parallel Databases, mainly there are three architectural designs for parallel DBMS. They are as
follows:
1. Shared Memory Architecture
2. Shared Disk Architecture
3. Shared Nothing Architecture
Let's discuss them one by one:
1. Shared Memory Architecture- In Shared Memory Architecture, there are multiple CPUs that
are attached to an interconnection network. They are able to share a single or global main
memory and common disk arrays. It is to be noted that, In this architecture, a single copy of a
multi-threaded operating system and multithreaded DBMS can support these multiple CPUs.
Also, the shared memory is a solid coupled architecture in which multiple CPUs share their
memory. It is also known as Symmetric multiprocessing (SMP). This architecture has a very
wide range which starts from personal workstations that support a few microprocessors in
parallel via RISC.
Shar
ed Memory Architecture
Advantages :
1. It has high-speed data access for a limited number of processors.
2. The communication is efficient.
Disadvantages :
1. It cannot use beyond 80 or 100 CPUs in parallel.
2. The bus or the interconnection network gets block due to the increment of the large
number of CPUs.
2. Shared Disk Architectures :
In Shared Disk Architecture, various CPUs are attached to an interconnection network. In this,
each CPU has its own memory and all of them have access to the same disk. Also, note that
here the memory is not shared among CPUs therefore each node has its own copy of the
operating system and DBMS. Shared disk architecture is a loosely coupled architecture
optimized for applications that are inherently centralized. They are also known as clusters.
S
hared Disk Architecture
Advantages :
1. The interconnection network is no longer a bottleneck each CPU has its own memory.
2. Load-balancing is easier in shared disk architecture.
3. There is better fault tolerance.
Disadvantages :
1. If the number of CPUs increases, the problems of interference and memory contentions
also increase.
2. There's also exists a scalability problem.
3, Shared Nothing Architecture :
Shared Nothing Architecture is multiple processor architecture in which each processor has its
own memory and disk storage. In this, multiple CPUs are attached to an interconnection
network through a node. Also, note that no two CPUs can access the same disk area. In this
architecture, no sharing of memory or disk resources is done. It is also known as Massively
parallel processing (MPP).
S
hared Nothing Architecture
Advantages :
1. It has better scalability as no sharing of resources is done
2. Multiple CPUs can be added
Disadvantages:
1. The cost of communications is higher as it involves sending of data and software
interaction at both ends
2. The cost of non-local disk access is higher than the cost of shared disk architectures.
Note that this technology is typically used for very large databases that have the size of
1012 bytes or TB or for the system that has the process of thousands of transactions per second.
4, Hierarchical Architecture :
This architecture is a combination of shared disk, shared memory and shared nothing
architectures. This architecture is scalable due to availability of more memory and many
processor. But is costly to other architecture.
DISTRIBUTED DATABASE SYSTEM
A Distributed Database System (DDBS) is a collection of multiple databases spread across
different physical locations, connected via a network. Unlike a centralized system, where all data
is stored in one place, a distributed system manages data across various sites while making it
appear as a single database to users. It improves data availability, reliability, and performance by
enabling local access, parallel processing, and fault tolerance.
Distributed Database
Types
Some of the type of distributed database system are:
1. Homogeneous Database:
In a homogeneous database, all different sites store database identically. The operating system,
database management system, and the data structures used all are the same at all sites. Hence,
they're easy to manage.
Features:
Unified query language and interface.
Low integration complexity.
Efficient synchronization.
Example: A bank with branches in different cities uses Oracle DB at every location. All databases
have the same structure and are synchronized regularly.
2. Heterogeneous Database
In a heterogeneous distributed database, different sites may use different DBMSs, schemas, or
data models, making query processing and transactions difficult. Some sites may not even be
aware of others, so translation mechanisms are needed for communication.
Features:
Supports interoperability between diverse systems.
Complex query optimization and transaction management.
Useful in mergers or collaborations between organizations.
Example: A logistics company uses MySQL for inventory, MongoDB for vehicle tracking, and
PostgreSQL for billing. Integration middleware allows unified querying across these platforms.
3. Client-Server Distributed Database System
In this model, the server stores and manages the database, while clients send queries over the
network. It offers centralized control with distributed access, making it ideal for enterprise
systems and web applications. Clients can be lightweight while the server handles heavy
processing. Example: Web application interacting with a central PostgreSQL server.
Features:
Simplifies resource management.
Central servers can be optimized for performance.
Easily scalable with more clients.
Example: An e-commerce website where the frontend (client) is hosted separately and interacts
with a central PostgreSQL server to manage orders, users, and inventory.
4. Peer-to-Peer Distributed Database System
Here, all nodes are equal, with no fixed client or server roles. Each node can store data and also
process queries, leading to decentralized control. It supports fault tolerance and high
availability. Example: Blockchain networks like Ethereum, where each node maintains a part of
the distributed ledger.
Features:
No single point of failure.
Useful in decentralized and distributed apps.
High availability and data redundancy.
Example: Blockchain-based databases like Ethereum or BitTorrent-based systems, where each
peer maintains part of the ledger and participates equally in transactions.
5. Cloud-Based Distributed Database System
These systems are deployed on cloud platforms and span multiple geographic regions for
scalability and reliability. They abstract infrastructure details and are offered as DBaaS, making
them ideal for dynamic workloads. Example: Google Cloud Spanner and Amazon DynamoDB
used for global applications.
Features:
Automatic scaling and replication.
Pay-as-you-use pricing.
Global availability and disaster recovery.
Example:
Google Cloud Spanner: Global-scale relational database.
Amazon DynamoDB: Key-value and document database with high performance.
Azure Cosmos DB: Multi-model, globally distributed DBMS.
KEY COMPONENTS AND CHALLENGES OF A DISTRIBUTED DATABASE
Now
lets
view definition of each key concept:
1. Replication
In replication, copies of the same data are stored at two or more sites. If every site has the full
database, it's called full replication. This improves data availability and allows faster, parallel
query processing. However, updates must be made at all sites, or data may become
inconsistent. It also adds overhead and makes concurrency control more complex.
2. Fragmentation
In this approach, the relations are fragmented (i.e., they're divided into smaller parts) and each
of the fragments is stored in different sites where they're required. It must be made sure that
the fragments are such that they can be used to reconstruct the original relation (i.e, there isn't
any loss of data).
Fragmentation is advantageous as it doesn't create copies of data, consistency is not a problem.
Fragmentation of relations can be done in two ways:
Horizontal fragmentation - Splitting by rows
The relation is fragmented into groups of tuples so that each tuple is assigned to at least
one fragment.
Vertical fragmentation - Splitting by columns
The schema of the relation is divided into smaller schemas. Each fragment must contain
a common candidate key so as to ensure a lossless join.
In certain cases, an approach that is hybrid of fragmentation and replication is used.
3. Concurrency Control
Concurrency control ensures data remains accurate when multiple transactions run at the same
time. Without it, issues like lost updates or dirty reads can occur. Its goal is to make parallel
transactions behave as if run one by one. Common methods include locking, timestamps, and
optimistic concurrency.
[Link] Heterogeneity
Semantic heterogeneity happens when different databases use the same data labels but with
different meanings, formats, or units. For example, one system may store salary in dollars,
another in rupees. This can cause confusion during data integration, so resolving it is important
for accurate results.
Read more about Semantic Heterogenity
Functions of Distributed Database:
It is used in Corporate Management Information System.
It is used in multimedia applications.
Used in Military's control system, Hotel chains etc.
It is also used in manufacturing control system.
Read more about Functions of Distributed Database
Advantages of Distributed Database System :
There is fast data processing as several sites participate in request processing.
Reliability and availability of this system is high.
It possess reduced operating cost.
It is easier to expand the system by adding more sites.
It has improved sharing ability and local autonomy.
Read more about Advantages of Distributed Database
Disadvantages of Distributed Database System :
The system becomes complex to manage and control.
The security issues must be carefully managed.
The security issues must be carefully managed.
The system require deadlock handling during the transaction processing otherwise
The entire system may be in inconsistent state.
There is need of some standardization for processing of distributed database
system.
CRASH RECOVERY
Database Recovery Techniques in DBMS
Database Systems, like any other computer system, are subject to failures. Whether it's a
sudden power outage, a software bug, or a hardware crash, a Database Management System
(DBMS) needs a way to get back up and running without losing data or leaving it in a
corrupted state. This process of restoring the database to a correct and consistent state is
called recovery.
Types of Recovery Techniques
The main aim of recovery is to maintain "atomicity" and "durability", which are two
important parts of the ACID properties:
Atomicity: A transaction should either complete fully or not at all.
Durability: Once a transaction is committed, its changes must stay in the database
even if a failure occurs afterward.
Some of the main database recovery techniques are:
1. Log-Based Recovery
One of the most common recovery methods in modern databases. The keeps a log file (or
journal) on stable storage that records every change—insert, update, or delete—before it is
applied to the database.
If a failure occurs, the DBMS reads the log to decide what to do:
Undo: Reverse changes from transactions that didn’t finish (ensuring atomicity).
Redo: Reapply changes from committed transactions (ensuring durability).
Log-based recovery is mainly implemented in one of the following two ways:
1. Immediate Update (Undo/Redo): The database may be updated before a transaction
commits. On failure, the system undoes uncommitted changes and redoes committed
ones.
2. Deferred Update (No-Undo/Redo): Updates are applied only after commit. On failure,
nothing needs to be undone; only redo is performed for committed transactions.
2. Shadow Paging
Shadow Paging is an alternative recovery technique that avoids the need for a log. It works by
keeping two versions of the database pages during a transaction: a current page table and a
shadow page table
The shadow page table points to the original, unmodified database pages from before
the transaction began. It's a "shadow" of the consistent database state.
When a transaction starts modifying data, new copies of the modified pages are
created. The current page table is updated to point to these new pages while the
shadow page table remains unchanged.
If the transaction commits, the current page table becomes the new shadow. If it fails, the
system discards the modified pages and reverts to the shadow- no undo/redo needed.
Note: While simple in concept, shadow paging can lead to storage fragmentation and be
harder to manage.
3. Checkpointing: Making Recovery Faster
Checkpointing is not a standalone recovery technique but a crucial optimization that works
with Log-Based Recovery. Without it, recovering from a crash would require the DBMS to
process the entire log file, which could take a very long time. A checkpoint is like a bookmark
in the log.
Periodically, the system performs a checkpoint operation, which does the following:
1. Forces all log records from memory to stable storage.
2. Forces all modified database pages from memory to stable storage.
3. Writes a special checkpoint record into the log file.
When recovery is needed, the DBMS finds the last checkpoint. It knows that any transaction
that committed before the checkpoint is already permanently saved. Therefore, it only needs
to scan the log from the checkpoint onward to figure out which transactions to undo or redo,
drastically speeding up the recovery time.
4. Backup and Restore
This serves as the last safeguard against severe failures, such as a complete disk crash, by
keeping backup copies of the database files.
Full Backup: A complete copy of the entire database.
Differential Backup: A copy of only the data that has changed since the last full backup.
Transaction Log Backup: A copy of the transaction log. This is crucial because it allows
the database to be restored to a specific point in time. For example, you could restore
a full backup from Sunday night and then apply the transaction logs to recover the
database right up to the moment before it failed on Tuesday morning.
SOFTWARE MAINTENANCE
Software Maintenance refers to the process of modifying and updating a software system after
it has been delivered to the customer. This involves fixing bugs, adding new features, and
adapting to new hardware or software environments. Effective maintenance is crucial for
extending the software's lifespan and aligning it with evolving user needs. It is an essential part
of the software development life cycle (SDLC), involving planned and unplanned activities to
keep the system reliable and up-to-date. This article focuses on discussing Software
Maintenance in detail.
What is Software Maintenance?
Software maintenance is a continuous process that occurs throughout the entire life cycle of the
software system.
The goal of software maintenance is to keep the software system working correctly,
efficiently, and securely, and to ensure that it continues to meet the needs of the users.
This can include fixing bugs, adding new features, improving performance, or updating
the software to work with new hardware or software systems.
It is also important to consider the cost and effort required for software maintenance
when planning and developing a software system.
It is important to have a well-defined maintenance process in place, which
includes testing and validation, version control, and communication with stakeholders.
It's important to note that software maintenance can be costly and complex, especially
for large and complex systems. Therefore, the cost and effort of maintenance should be
taken into account during the planning and development phases of a software project.
It's also important to have a clear and well-defined maintenance plan that includes
regular maintenance activities, such as testing, backup, and bug fixing.
Several Key Aspects of Software Maintenance
1. Bug Fixing: The process of finding and fixing errors and problems in the software.
2. Enhancements: The process of adding new features or improving existing features to
meet the evolving needs of the users.
3. Performance Optimization: The process of improving the speed, efficiency, and reliability
of the software.
4. Porting and Migration: The process of adapting the software to run on new hardware or
software platforms.
5. Re-Engineering: The process of improving the design and architecture of the software to
make it more maintainable and scalable.
6. Documentation: The process of creating, updating, and maintaining the documentation
for the software, including user manuals, technical specifications, and design
documents.
Several Types of Software Maintenance
1. Corrective Maintenance: This involves fixing errors and bugs in the software system.
2. Patching: It is an emergency fix implemented mainly due to pressure from management.
Patching is done for corrective maintenance but it gives rise to unforeseen future errors
due to lack of proper impact analysis.
3. Adaptive Maintenance: This involves modifying the software system to adapt it to
changes in the environment, such as changes in hardware or software, government
policies, and business rules.
4. Perfective Maintenance: This involves improving functionality, performance, and
reliability, and restructuring the software system to improve changeability.
5. Preventive Maintenance: This involves taking measures to prevent future problems, such
as optimization, updating documentation, reviewing and testing the system, and
implementing preventive measures such as backups.
Maintenance can be categorized into proactive and reactive types. Proactive maintenance
involves taking preventive measures to avoid problems from occurring, while reactive
maintenance involves addressing problems that have already occurred.
Maintenance can be performed by different stakeholders, including the original development
team, an in-house maintenance team, or a third-party maintenance provider. Maintenance
activities can be planned or unplanned. Planned activities include regular maintenance tasks
that are scheduled in advance, such as updates and backups. Unplanned activities are reactive
and are triggered by unexpected events, such as system crashes or security breaches. Software
maintenance can involve modifying the software code, as well as its documentation, user
manuals, and training materials. This ensures that the software is up-to-date and continues to
meet the needs of its users.
Software maintenance can also involve upgrading the software to a new version or platform.
This can be necessary to keep up with changes in technology and to ensure that the software
remains compatible with other systems. The success of software maintenance depends on
effective communication with stakeholders, including users, developers, and management.
Regular updates and reports can help to keep stakeholders informed and involved in the
maintenance process.
Software maintenance is also an important part of the Software Development Life Cycle
(SDLC). To update the software application and do all modifications in software application so as
to improve performance is the main focus of software maintenance. Software is a model that
runs on the basis of the real world. so, whenever any change requires in the software that
means the need for real-world changes wherever possible.
Need for Maintenance
Software Maintenance must be performed in order to:
Correct faults.
Improve the design.
Implement enhancements.
Interface with other systems.
Accommodate programs so that different hardware, software, system features, and
telecommunications facilities can be used.
Migrate legacy software.
Retire software.
Requirement of user changes.
Run the code fast
Challenges in Software Maintenance
The various challenges in software maintenance are given below:
The popular age of any software program is taken into consideration up to ten to fifteen
years. As software program renovation is open-ended and might maintain for decades
making it very expensive.
Older software programs, which had been intended to paint on sluggish machines with
much less reminiscence and garage ability can not maintain themselves tough in
opposition to newly coming more advantageous software programs on contemporary-
day hardware.
Changes are frequently left undocumented which can also additionally reason greater
conflicts in the future.
As the era advances, it turns into high prices to preserve vintage software programs.
Often adjustments made can without problems harm the authentic shape of the
software program, making it difficult for any next adjustments.
There is a lack of Code Comments.
Lack of documentation: Poorly documented systems can make it difficult to understand
how the system works, making it difficult to identify and fix problems.
Legacy code: Maintaining older systems with outdated technologies can be difficult, as it
may require specialized knowledge and skills.
Complexity: Large and complex systems can be difficult to understand and modify,
making it difficult to identify and fix problems.
Changing requirements: As user requirements change over time, the software system
may need to be modified to meet these new requirements, which can be difficult and
time-consuming.
Interoperability issues: Systems that need to work with other systems or software can be
difficult to maintain, as changes to one system can affect the other systems.
Lack of test coverage: Systems that have not been thoroughly tested can be difficult to
maintain as it can be hard to identify and fix problems without knowing how the system
behaves in different scenarios.
Lack of personnel: A lack of personnel with the necessary skills and knowledge to
maintain the system can make it difficult to keep the system up-to-date and running
smoothly.
High-Cost: The cost of maintenance can be high, especially for large and complex
systems, which can be difficult to budget for and manage.
To overcome these challenges, it is important to have a well-defined maintenance process in
place, which includes testing and validation, version control, and communication with
stakeholders. It is also important to have a clear and well-defined maintenance plan that
includes regular maintenance activities, such as testing, backup, and bug fixing. Additionally, it is
important to have personnel with the necessary skills and knowledge to maintain the system.
Categories of Software Maintenance
Maintenance can be divided into the following categories.
Corrective maintenance: Corrective maintenance of a software product may be essential
either to rectify some bugs observed while the system is in use, or to enhance the
performance of the system.
Adaptive maintenance: This includes modifications and updations when the customers
need the product to run on new platforms, on new operating systems, or when they
need the product to interface with new hardware and software.
Perfective maintenance: A software product needs maintenance to support the new
features that the users want or to change different types of functionalities of the system
according to the customer's demands.
Preventive maintenance: This type of maintenance includes modifications and updations
to prevent future problems with the software. It goals to attend to problems, which are
not significant at this moment but may cause serious issues in the future.
Reverse Engineering
Reverse Engineering is the process of extracting knowledge or design information from anything
man-made and reproducing it based on the extracted information. It is also called back
engineering. The main objective of reverse engineering is to check out how the system works.
There are many reasons to perform reverse engineering. Reverse engineering is used to know
how the thing works. Also, reverse engineering is to recreate the object by adding some
enhancements.
Software Reverse Engineering
Software Reverse Engineering is the process of recovering the design and the requirements
specification of a product from an analysis of its code. Reverse Engineering is becoming
important, since several existing software products, lack proper documentation, are highly
unstructured, or their structure has degraded through a series of maintenance efforts.
Why Reverse Engineering?
Providing proper system documentation.
Recovery of lost information.
Assisting with maintenance.
The facility of software reuse.
Discovering unexpected flaws or faults.
Implements innovative processes for specific use.
Easy to document the things how efficiency and power can be improved.
Uses of Software Reverse Engineering
Software Reverse Engineering is used in software design, reverse engineering enables
the developer or programmer to add new features to the existing software with or
without knowing the source code.
Reverse engineering is also useful in software testing, it helps the testers to study or
detect the virus and other malware code.
Software reverse engineering is the process of analyzing and understanding the internal
structure and design of a software system. It is often used to improve the understanding
of a software system, to recover lost or inaccessible source code, and to analyze the
behavior of a system for security or compliance purposes.
Malware analysis: Reverse engineering is used to understand how malware works and to
identify the vulnerabilities it exploits, in order to develop countermeasures.
Legacy systems: Reverse engineering can be used to understand and maintain legacy
systems that are no longer supported by the original developer.
Intellectual property protection: Reverse engineering can be used to detect and prevent
intellectual property theft by identifying and preventing the unauthorized use of code or
other assets.
Security: Reverse engineering is used to identify security vulnerabilities in a system, such
as backdoors, weak encryption, and other weaknesses.
Compliance: Reverse engineering is used to ensure that a system meets compliance
standards, such as those for accessibility, security, and privacy.
Reverse-engineering of proprietary software: To understand how a software works, to
improve the software, or to create new software with similar features.
Reverse-engineering of software to create a competing product: To create a product that
functions similarly or to identify the features that are missing in a product and create a
new product that incorporates those features.
It's important to note that reverse engineering can be a complex and time-consuming
process, and it is important to have the necessary skills, tools, and knowledge to
perform it effectively. Additionally, it is important to consider the legal and ethical
implications of reverse engineering, as it may be illegal or restricted in some
jurisdictions.
Advantages of Software Maintenance
Improved Software Quality: Regular software maintenance helps to ensure that the
software is functioning correctly and efficiently and that it continues to meet the needs
of the users.
Enhanced Security: Maintenance can include security updates and patches, helping to
ensure that the software is protected against potential threats and attacks.
Increased User Satisfaction: Regular software maintenance helps to keep the software
up-to-date and relevant, leading to increased user satisfaction and adoption.
Extended Software Life: Proper software maintenance can extend the life of the
software, allowing it to be used for longer periods of time and reducing the need for
costly replacements.
Cost Savings: Regular software maintenance can help to prevent larger, more expensive
problems from occurring, reducing the overall cost of software ownership.
Better Alignment with business goals: Regular software maintenance can help to ensure
that the software remains aligned with the changing needs of the business. This can help
to improve overall business efficiency and productivity.
Competitive Advantage: Regular software maintenance can help to keep the software
ahead of the competition by improving functionality, performance, and user experience.
Compliance with Regulations: Software maintenance can help to ensure that the
software complies with relevant regulations and standards. This is particularly important
in industries such as healthcare, finance, and government, where compliance is critical.
Improved Collaboration: Regular software maintenance can help to improve
collaboration between different teams, such as developers, testers, and users. This can
lead to better communication and more effective problem-solving.
Reduced Downtime: Software maintenance can help to reduce downtime caused by
system failures or errors. This can have a positive impact on business operations and
reduce the risk of lost revenue or customers.
Improved Scalability: Regular software maintenance can help to ensure that the
software is scalable and can handle increased user demand. This can be particularly
important for growing businesses or for software that is used by a large number of users.
Disadvantages of Software Maintenance
Cost: Software maintenance can be time-consuming and expensive, and may require
significant resources and expertise.
Schedule disruptions: Maintenance can cause disruptions to the normal schedule and
operations of the software, leading to potential downtime and inconvenience.
Complexity: Maintaining and updating complex software systems can be challenging,
requiring specialized knowledge and expertise.
Risk of introducing new bugs: The process of fixing bugs or adding new features can
introduce new bugs or problems, making it important to thoroughly test the software
after maintenance.
User resistance: Users may resist changes or updates to the software, leading to
decreased satisfaction and adoption.
Compatibility issues: Maintenance can sometimes cause compatibility issues with other
software or hardware, leading to potential integration problems.
Lack of documentation: Poor documentation or lack of documentation can make
software maintenance more difficult and time-consuming, leading to potential errors or
delays.
Technical debt: Over time, software maintenance can lead to technical debt, where the
cost of maintaining and updating the software becomes increasingly higher than the cost
of developing a new system.
Skill gaps: Maintaining software systems may require specialized skills or expertise that
may not be available within the organization, leading to potential outsourcing or
increased costs.
Inadequate testing: Inadequate testing or incomplete testing after maintenance can lead
to errors, bugs, and potential security vulnerabilities.
End-of-life: Eventually, software systems may reach their end-of-life, making
maintenance and updates no longer feasible or cost-effective. This can lead to the need
for a complete system replacement, which can be costly and time-consuming.
Hardware Maintenance
Every computer system consists of hardware and software components.
While software refers to the programs and data that tell the computer what to do, hardware
includes the physical components — such as the system unit, monitor, keyboard, mouse, printer,
and cables.
Like any other machine, computer hardware requires regular care and maintenance to function
properly and to prolong its lifespan. This process is known as Hardware Maintenance.
DEFINITION OF HARDWARE MAINTENANCE
Hardware maintenance is the process of caring for, inspecting, cleaning, repairing, and
replacing the physical components of a computer system to ensure they function effectively and
efficiently.
It involves preventive and corrective actions taken to avoid breakdowns and to fix faulty
hardware when problems occur.
IMPORTANCE OF HARDWARE MAINTENANCE
1. Prolongs the lifespan of computer components.
2. Prevents data loss caused by hardware failure.
3. Improves system performance and reliability.
4. Reduces repair costs through preventive measures.
5. Ensures safety of users and equipment.
6. Prevents downtime, allowing continuous system operation.
TYPES OF HARDWARE MAINTENANCE
A. Preventive Maintenance
This involves routine checks and servicing done to prevent computer problems before they
occur.
Examples:
Cleaning the keyboard, monitor, and system unit.
Checking cables and power supply.
Ensuring proper ventilation to prevent overheating.
Updating device drivers.
Benefits:
Reduces unexpected failures.
Improves efficiency.
Saves long-term costs.
Corrective Maintenance
This type of maintenance is carried out after a fault has occurred. It involves diagnosing and
fixing hardware problems.
Examples:
Replacing a faulty power supply or hard disk.
Repairing damaged cables or connectors.
Changing a burnt motherboard.
Objective:
To restore the system to normal working condition as quickly as possible.
Predictive Maintenance
This involves monitoring hardware performance to predict when a component is likely to fail,
allowing early replacement before it stops working.
Examples:
Monitoring CPU temperature and fan speed.
Using diagnostic software to check hard drive health.
Periodic Maintenance
Performed at regular intervals (weekly, monthly, or quarterly) to check the performance and
condition of hardware components.
Examples:
Inspecting system units monthly.
Checking backup devices quarterly.
HARDWARE MAINTENANCE TOOLS AND MATERIALS
Category Examples Uses
Cleaning Soft brush, blower, vacuum cleaner, Removing dust and dirt
Tools lint-free cloth
Testing Tools Multimeter, POST card, diagnostic Checking voltage, testing
software components
Repair Tools Screwdrivers, pliers, soldering iron Opening and fixing components
Safety Tools Anti-static wrist strap, gloves Protecting components from static
electricity
PROCEDURES FOR HARDWARE MAINTENANCE
1. Power Off: Always shut down the computer and unplug from power.
2. Clean Regularly: Use soft materials to clean screens and surfaces.
3. Check Connections: Ensure cables and plugs are firmly connected.
4. Ensure Ventilation: Keep vents clear for airflow to prevent overheating.
5. Use Surge Protectors: Protect systems from power surges.
6. Replace Faulty Components: Promptly replace failing hardware.
7. Schedule Maintenance: Set periodic maintenance schedules.
8. Keep Records: Maintain a log of repairs and replacements.
SAFETY PRECAUTIONS DURING HARDWARE MAINTENANCE
1. Always disconnect from power supply before working.
2. Avoid liquids near computers.
3. Use anti-static wrist straps to prevent static discharge.
4. Keep tools and parts organized and away from dust.
5. Do not force components into slots.
6. Avoid overheating by ensuring proper airflow.
7. Handle storage devices carefully to avoid data loss.
COMMON HARDWARE FAULTS AND SOLUTIONS
Fault Possible Cause Solution
Computer not powering Faulty power supply or cable Replace or check power
on cable
Overheating Blocked ventilation or faulty fan Clean vents or replace fan
No display on monitor Loose VGA cable or faulty graphics Reconnect or replace
card cable/card
Keyboard not Damaged port or connection Test with another keyboard
responding
System beeps during RAM or motherboard issue Reseat RAM or test
boot components
IMPORTANCE OF DOCUMENTING MAINTENANCE ACTIVITIES
Keeping a maintenance log is essential for:
Tracking repair history.
Identifying recurring problems.
Planning preventive maintenance schedules.
Ensuring accountability among technicians.