SRU FDBMS Unit-1

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 57

1

Fundamentals of Database Management Systems

Term: 2024-25
Unit-1

Text Books: 1. Ramakrishnan, R. and J. Gehrke;


Database Management Systems, McGrawHill,
Company, Higher Education, 2000

2
Unit-1 Syllabus
Overview of Data Analytics: Introduction and Importance, Types
of Data Analytics, Applications. Data Management: Design Data
Architecture and manage the data for analysis, understand
various sources of Data like Sensors/Signals/GPS etc. Data
Management, Data Quality (noise, outliers, missing values,
duplicate data) and Data Processing & Processing.

3
Introduction
Data Analytics is defined as
It is the process of examining data sets to draw
conclusions about the information they
contain, increasingly with the aid of specialized
systems and software

Data analytics helps organizations make informed


decisions, improve operational efficiency, and gain
competitive advantages by uncovering patterns,
correlations, and insights from raw data. 4
5
6
 Big data analytics enabled companies to gain deeper insights into
their customers, operations, and markets. It also laid the foundation
for advanced analytics techniques, such as predictive analytics,
machine learning, and artificial intelligence.
 Key Milestones: Development of relational databases, introduction
of big data technologies, rise of AI and machine learning

7
The Evolving role of Data Analytics
 From early statistical methods to advanced machine learning
algorithms, data analytics has evolved significantly.
 Data analytics has become a critical component in modern
decision-making processes.
 Its role has evolved from basic data reporting to advanced
predictive and prescriptive analytics.
Past:
Descriptive Analytics (Reporting, Historical Data)
Present:
Diagnostic Analytics (Root Cause Analysis, Understanding Why)
Future:
•Predictive Analytics (Forecasting, Predicting Future Outcomes)
•Prescriptive Analytics (Recommending Actions, Optimization)
8
9
Importance of Data Analytics
● Enhancing Decision-Making: Data-driven decisions reduce risks and
increase the likelihood of successful outcomes.
● Driving Business Value: Identifying new revenue opportunities,
optimizing operations, and enhancing customer experiences.
● Improving Efficiency: Streamlining processes, reducing waste, and
improving resource utilization.

10
.

11
12
Characteristics of Software
● Software is developed or engineered, it is not manufactured in
the classical sense.
● Software does not wear out. However it deteriorates due to
change.
● Software is custom built rather than assembling existing
components.
-Although the industry is moving towards component based
construction,
“Infant most software continues to be custom built
mortality “Wear
” out”

Time 13
THE CHANGING NATURE OF
SOFTWARE
Seven Broad Categories of software are challenges for
software engineers
 System software
 Application software
 Engineering and scientific software
 Embedded software
 Product-line software
 Web-applications
 Artificial intelligence software 14
● System software. System software is a collection of
programs written to service other programs
● Embedded software
-- resides in read-only memory
--is used to control products and systems for the
consumer and industrial markets.
● Artificial intelligence software. Artificial
intelligence (AI) software makes use of nonnumeric
algorithms to solve complex problems that are not
amenable to computation or straightforward
analysis
● Engineering and scientific software.
Engineering and scientific software have been
characterized by "number crunching" algorithms.
15
SOFTWARE MYTHS

Widely held but false view


Propagate misinformation and confusion
Three types of myths
- Management myth
- Customer myth
- Practitioner’s myth

16
Management Myths
Myth(1)
-The available standards and procedures

for
software are enough.
Myth(2)
-Each organization feel that they have state-of-art
software development tools since they have latest
computer.
Myth(3)
-Adding more programmers when the work is behind
schedule can catch up.
Myth(4)
-Outsourcing the software project to third party, we 17
Customer Myths

Myth(1)
- General statement of objective is enough
to begin writing programs, the details can
be filled in later.
Myth(2)
-Software is easy to change because
software is flexible

18
PRACTITIONER’S MYTH
Myth(1)
-Once the program is written, the job has been
done.
Myth(2)
-Until the program is running, there is no way of
assessing the quality.
Myth(3)
-The only deliverable work product is the working
program
Myth(4)
-Software Engineering creates voluminous and
unnecessary documentation and invariably slows
down software development.
19
Similarity and Differences from Conventional Engineering
Processes
Software Engineering Process and Conventional Engineering Process,
both are processes related to computers and development

 Software Engineering Process is an engineering process that is


mainly related to computers and programming and developing
different kinds of applications through the use of information
technology.
 Conventional Engineering Process is an engineering process that is
highly based on empirical knowledge and is about building cars,
machines, and hardware. It is a process that mainly involves
science, mathematics, etc.
20
Similarities

● Both Software Engineering and Conventional


Engineering Processes become automated after
some time.
● Both these processes are making our day-to-day
place better.
● Both these processes have a fixed working time.
● Both processes must consist of deeper knowledge. 21
Differences

22
23
24
Software Quality Attributes
The various factors, which influence the software, are termed as
software factors. They can be broadly divided into two categories. The
first category of the factors is of those that can be measured directly
such as the number of logical errors, and the second category clubs
those factors which can be measured only indirectly. For example,
maintainability but each of the factors is to be measured to check for
the content and the quality control.

● Several models of software quality factors and their categorization


have been suggested over the years. The classic model of software
quality factors, suggested by McCall, consists of 11 factors (McCall
et al., 1977). Similarly, models consisting of 12 to 15 factors, were
suggested by Deutsch and Willis (1988) and by Evans and Marciniak 25
All these models do not differ substantially from McCall’s model. The
McCall factor model provides a practical, up-to-date method for
classifying software requirements (Pressman, 2000).
This model classifies all software requirements into 11 software quality
factors. The 11 factors are grouped into three categories – product
operation, product revision, and product transition factors.

26
Software Development Life Cycle
(SDLC)Models
SDLC stands for Software Development Life Cycle. SDLC is a process
that consists of a series of planned activities to develop or alter the
Software Products.
● Software Development Life Cycle (SDLC) is a process used by the
software industry to design, develop and test high quality
software's. The SDLC aims to produce a high-quality software that
meets or exceeds customer expectations, reaches completion
within times and cost estimates.

● SDLC is a process followed for a software project, within a software


organization. It consists of a detailed plan describing how to
develop, maintain, replace and alter or enhance specific software.
The life cycle defines a methodology for improving the quality of 27
SDLC Models
There are various software development life cycle models defined and
designed which are followed during the software development process.
These models are also referred as Software Development Process
Models. Each process model follows a Series of steps unique to its type
to ensure success in the process of software development.
● Following are the most important and popular SDLC models
followed in the industry −
 Waterfall Model
 Prototype Model,
 Spiral Model,
 Evolutionary Development Models,
 Iterative Enhancement Models.
28
29
Waterfall Model
● The Waterfall Model was the first Process Model to be introduced. It
is also referred to as a linear-sequential life cycle model. It is
very simple to understand and use. In a waterfall model, each
phase must be completed before the next phase can begin and
there is no overlapping in the phases.

● The Waterfall model is the earliest SDLC approach that was used for
software development.

● In this Waterfall model, typically, the outcome of one phase acts as


the input for the next phase sequentially.
● The waterfall Model illustrates the software development process in
a linear sequential flow. This means that any phase in the
30
development process begins only if the previous phase is complete.
31
Waterfall Model - Application
Every software developed is different and requires a suitable SDLC
approach to be followed based on the internal and external factors.
Some situations where the use of Waterfall model is most appropriate
are −

32
Waterfall Model - Advantages

33
Waterfall Model - Disadvantages

34
Iterative Enhancement Models
● Software development uses a dynamic and adaptable method called
the iterative enhancement Model. The iterative enhancement model
encourages a software product’s ongoing evolution and
improvement. This methodology is noticeable due to its
concentration on adaptability, flexibility and change
responsiveness. It makes it easier for a product to evolve because
it gives developers the freedom to progressively enhance the
software, making sure that it complies with evolving specifications,
user demands, and market demands. This helps products evolve
more easily.
● The Iterative Enhancement Model creates an environment where
development teams can more effectively adjust to changing
requirements by segmenting the software development process into
35
smaller, more manageable parts. Every iteration improves on the
36
Applicability
● Mobile app developement: Updates and improvements are often
needed for mobile apps to stay current with new devices, operating
system versions and user preferences. By using an iterative process
developers can release the beta versions of their apps, get user
feedback and then improve functionality of those iterations in future
release.
● Web Application Development: The requirements for developing
web applications frequently change as a result of shifting user
demand and advancements in technology. The Iterative
Enhancement Model makes it possible to developed features
incrementally and guaranteeing that the application can be modified
to satisfy changing user and market demands. In later iterations it
also makes it easier to incorporate new features based on input from
37
users.
Advantages of Iterative Enhancement Model
● Adaptation to changing requirements is made possible by its
flexibility in accomodating modifications and improvement during
each iteration.
● Problems and risks can be identified and addressed early in the
developement process, reduces chances of issue for future stages.
● Every iteration is put through testing and improvement, leading to
higher quality product.
Disadvantages of Iterative Enhancement Model
● Especially in larger projects, managing several iterations at once
can add complexity.
● Higher cost
● Due to constant changes, there may be delays in documentation, 38
Prototyping Model
● Prototyping is defined as the process of developing a working
replication of a product or system that has to be engineered. It
offers a small-scale facsimile of the end product and is used for
obtaining customer feedback.
● This model is used when the customers do not know the exact
project requirements beforehand. In this model, a prototype of the
end product is first developed, tested, and refined as per customer
feedback repeatedly till a final acceptable prototype is achieved
which forms the basis for developing the final product.
● In this process model, the system is partially implemented before or
during the analysis phase thereby giving the customers an
opportunity to see the product early in the life cycle. The process
starts by interviewing the customers and developing the incomplete 39
40
Applications of Prototyping Model

● The Prototyping Model should be used when the requirements of the


product are not clearly understood or are unstable.
● The prototyping model can also be used if requirements are
changing quickly.
● This model can be successfully used for developing user interfaces,
high-technology software-intensive systems, and systems with
complex algorithms and interfaces.
● The prototyping Model is also a very good choice to demonstrate
the technical feasibility of the product.

41
Advantages of Prototyping Model
● The customers get to see the partial product early in the life cycle.
This ensures a greater level of customer satisfaction and comfort.
● New requirements can be easily accommodated as there is scope for
refinement.
● Missing functionalities can be easily figured out.
● Errors can be detected much earlier thereby saving a lot of effort and
cost, besides enhancing the quality of the software.
Disadvantages of the Prototyping Model
● Costly with respect to time as well as money.
● There may be too much variation in requirements each time the
prototype is evaluated by the customer.
● Poor Documentation due to continuously changing customer
42
requirements.
SDLC - Spiral Model
The spiral model combines the idea of iterative development with the
systematic, controlled aspects of the waterfall model. This Spiral model
is a combination of iterative development process model and
sequential linear development model i.e. the waterfall model with a
very high emphasis on risk analysis. It allows incremental releases of
the product or incremental refinement through each iteration around
the spiral.
The spiral model has four phases. A software project repeatedly passes
through these phases in iterations called Spirals.

Identification, Design, Construct or Build


and Evaluation and Risk Analysis 43
44
Where we USE

45
Spiral Model - Pros and Cons

46
Incremental Process Model
 First, a simple working system implementing only a few basic
features is built and then that is delivered to the customer. Then
thereafter many successive iterations/ versions are implemented
and delivered to the customer until the desired system is released.
 A, B, and C are modules of Software Products that are incrementally
developed and delivered.

47
Life Cycle Activities
● Requirements of Software are first broken down into several
modules that can be incrementally constructed and delivered.
● At any time, the plan is made just for the next increment and not for
any kind of long-term plan. Therefore, it is easier to modify the
version as per the need of the customer.
● The Development Team first undertakes to develop core features
(these do not need services from other features) of the system.
● Once the core features are fully developed, then these are refined
to increase levels of capabilities by adding new functions in
Successive versions.
● Each incremental version is usually developed using an iterative
waterfall model of development. 48
49
When to use Incremental Process
Model
 Funding Schedule, Risk, Program Complexity, or need for early
realization of benefits.
 When Requirements are known up-front.
 When Projects have lengthy development schedules.
 Projects with new Technology.
 Requires good planning and design.
 The total cost is not lower.
 Well-defined module interfaces are required.

50
Advantages
● Prepares the software fast.
● Clients have a clear idea of the project.
● Changes are easy to implement.
● Provides risk handling support, because of its iterations.
● Adjusting the criteria and scope is flexible and less costly.
● Comparing this model to others, it is less expensive.
● The identification of errors is simple.

51
Disadvantages
 A good team and proper planned execution are required.

 Because of its continuous iterations the cost increases.

 Issues may arise from the system design if all needs are not
gathered upfront throughout the duration of the program lifecycle.

 Every iteration step is distinct and does not flow into the next.

 It takes a lot of time and effort to fix an issue in one unit if it needs
to be corrected in all the units.
52
Evolutionary Development Model
The evolutionary model is a combination of the Iterative and
Incremental models of the software development life cycle. Delivering
your system in a big bang release, delivering it in incremental process
over time is the action done in this model. Some initial requirements
and architecture envisioning need to be done. It is better for software
products that have their feature sets redefined during development
because of user feedback and other factors. This article focuses on
discussing the Evolutionary Model in detail.

The Evolutionary development model divides the development cycle


into smaller, incremental waterfall models in which users can get
access to the product at the end of each cycle.
53
54
Application of Evolutionary Model
● It is used in large projects where you can easily find modules for
incremental implementation. Evolutionary model is commonly used
when the customer wants to start using the core features instead of
waiting for the full software.
● Evolutionary model is also used in object oriented software
development because the system can be easily portioned into units
in terms of objects.
Necessary Conditions for Implementing this Model
● Customer needs are clear and been explained in deep to the
developer team.
● There might be small changes required in separate parts but not a
major change. 55
Advantages Evolutionary Model
● In evolutionary model, a user gets a chance to experiment partially
developed system.
● It reduces the error because the core modules get tested
thoroughly.

Disadvantages Evolutionary Model


● Sometimes it is hard to divide the problem into several versions
that would be acceptable to the customer which can be
incrementally implemented and delivered.

56
Thank You

57

You might also like