Systems Concept Characteristics of A System: UNIT-1
Systems Concept Characteristics of A System: UNIT-1
Characteristics of a system:
1. Organization:
It implies structure and order. It is the arrangement of components that helps to achieve
objectives.
2. Interaction:
It refers to the manner in which each component functions with other components of the
system.
3. Interdependence:
It means that parts of the organization or computer system depend on one another. They are
coordinated and linked together according to a plan. One subsystem depends on the output of
another subsystem for proper functioning.
4. Integration:
It refers to the holism of systems. It is concerned with how a system is tied together.
5. Central Objective:
A system should have a central objective. Objectives may be real or stated. Although a stated
objective may be the real objective, it is not uncommon for an organization to state one
objective and operate to achieve another. The important point is that users must know the
central objective of a computer application early in the analysis for a successful design and
conversion.
Elements of System; Types of Systems
Elements of a System:
A major objective of a system is to produce an output that has value to its user. In order to get
a good output, inputs to system must be appropriate. It is important to point out here that
determining the output is a first step in specifying the nature, amount and regularity of the
input needed to operate a system.
2. Processors:
It is the element of a system that involves the actual transformation of input into output. It is
the operational component of a system. Processors may modify the input totally or partially,
depending on the specifications of the output. In some cases, input is also modified to enable
the processor to handle the transformation.
3. Control:
The control elements guide the system. It is the decision-making subsystem that controls the
pattern of activities governing input, processing, and output.
4. Feedback:
Feedback measures output against a standard in some form of cybernetic procedure that
includes communication and control.
5. Environment:
The environment is the “supra-system” within which an organization operates. It is the source
of external elements that impinge on the system. In fact, it often determines how a system
must function.
A system should be defined by its boundaries- the limits that identify its components,
processes, and interrelationships when it interfaces with another system.
Types of System
Physical or Abstract Systems
Physical systems are tangible entities. We can touch and feel them.
Physical System may be static or dynamic in nature. For example, desks and chairs
are the physical parts of computer center which are static. A programmed computer is a
dynamic system in which programs, data, and applications can change according to the user’s
needs.
Abstract systems are non-physical entities or conceptual that may be formulas,
representation or model of a real system.
An open system must interact with its environment. It receives inputs from and
delivers outputs to the outside of the system. For example, an information system which must
adapt to the changing environmental conditions.
A closed system does not interact with its environment. It is isolated from
environmental influences. A completely closed system is rare in reality.
Adaptive System responds to the change in the environment in a way to improve their
performance and to survive. For example, human beings, animals.
Non Adaptive System is the system which does not respond to the environment. For
example, machines.
Permanent System persists for long time. For example, business policies.
Temporary System is made for specified time and after that they are demolished. For
example, A DJ system is set up for a program and it is dissembled after the program.
Natural systems are created by the nature. For example, Solar system, seasonal
system.
Manufactured System is the man-made system. For example, Rockets, dams, trains.
6. Post-implementation
and maintenance
Is the key system User requirements met
Evaluation running? Should the User standards met
Enhancements
CASE Tools
CASE tools are set of software application programs, which are used to automate SDLC
activities. CASE tools are used by software project managers, analysts and engineers to
develop software system.
There are number of CASE tools available to simplify various stages of Software
Development Life Cycle such as Analysis tools, Design tools, Project management tools,
Database Management tools, Documentation tools are to name a few.
Use of CASE tools accelerates the development of project to produce desired result and
helps to uncover flaws before moving ahead with next stage in software development.
CASE tools can be grouped together if they have similar functionality, process activities
and capability of getting integrated with other tools.
These tools are used to represent system components, data and control flow among
various software components and system structure in a graphical form. For example,
Flow Chart Maker tool for creating state-of-the-art flowcharts.
Process modeling is method to create software process model, which is used to develop
the software. Process modeling tools help the managers to choose a process model or
modify it as per the requirement of software product. For example, EPF Composer
These tools are used for project planning, cost and effort estimation, project scheduling
and resource planning. Managers have to strictly comply project execution with every
mentioned step in software project management. Project management tools help in
storing and sharing project information in real-time throughout the organization. For
example, Creative Pro Office, Trac Project, Basecamp.
Documentation Tools
Documentation tools generate documents for technical users and end users. Technical
users are mostly in-house professionals of the development team who refer to system
manual, reference manual, training manual, installation manuals etc. The end user
documents describe the functioning and how-to of the system such as user manual. For
example, Doxygen, DrExplain, Adobe RoboHelp for documentation.
Analysis Tools
These tools help to gather requirements, automatically check for any inconsistency,
inaccuracy in the diagrams, data redundancies or erroneous omissions. For example,
Accept 360, Accompa, CaseComplete for requirement analysis, Visible Analyst for total
analysis.
Design Tools
These tools help software designers to design the block structure of the software, which
may further be broken down in smaller modules using refinement techniques. These
tools provides detailing of each module and interconnections among modules. For
example, Animated Software Design
CASE tools help in this by automatic tracking, version management and release
management. For example, Fossil, Git, Accu REV.
Programming Tools
These tools consist of programming environments like IDE (Integrated Development
Environment), in-built modules library and simulation tools. These tools provide
comprehensive aid in building software product and include features for simulation and
testing. For example, Cscope to search code in C, Eclipse.
Prototyping Tools
Software prototype is simulated version of the intended software product. Prototype
provides initial look and feel of the product and simulates few aspect of actual product.
Prototyping CASE tools essentially come with graphical libraries. They can create
hardware independent user interfaces and design. These tools help us to build rapid
prototypes based on existing information. In addition, they provide simulation of software
prototype. For example, Serena prototype composer, Mockup Builder.
Maintenance Tools
Software maintenance includes modifications in the software product after it is delivered.
Automatic logging and error reporting techniques, automatic error ticket generation and
root cause Analysis are few CASE tools, which help software organization in
maintenance phase of SDLC. For example, Bugzilla for defect tracking, HP Quality
Center.
Role of System Analyst
A system analyst is responsible for analyzing, designing and implementing systems to
fulfill organizational needs. He/she plays a vital role in making operational the
management information system. The role of the system analyst has however changed.
The role of the analyst has however changed with time. Now a system analyst is seen
more as a change agent responsible for delivering value to an organization on its
investments in management information systems (that includes a heavy dose of
information communication technology investment). A dictionary definition of a system
analyst (as per Random House Dictionary) defines it as, ‘a person who conducts a
methodical study and evaluation of an activity such as business to identify its desired
objectives in order to determine procedures by which these objectives can be gained.
An organization requires system analysts as line managers normally do not have an
understanding of the kind of information-based solutions that are possible for their
business problems. A system analysts bridges this gap as he/she is has a thorough
knowledge of both the business systems and business processes. A system analyst is
therefore in a position to provide information system based solutions to organizations
after having studied the problem that the organization is facing. They understand both
business and technology. They study a business problem or opportunity and devise an
information system enabled solution for it by detailing the information system
specifications. This set of specification that the analyst delivers is in a technical format
which is easily understandable to a technical (IT) specialist. The technical specialist
might not understand the business issue, if it comes directly from the line managers as
he has very little knowledge of business processes. The system analyst then bridges the
gap between the two by translating and transforming the business problem/opportunity
into a information systems solution and supplying the specification of such a system to
the technologist who can then take up the task and build the actual system.
This may sound very easy but it is actually not an easy task. In most cases, the analyst
works as a change agent. When devising a solution, the analyst does not restrict him/
her to the immediate problem/opportunity at hand but also focuses on the future. This
requires that an analyst suggest some changes in the process of doing business to bring
in greater efficiency in future. Inevitably, the process of creating an information systems
enabled solution is coupled with the activity of business process reengineering through
which change is brought in. The analyst uses the opportunity of devising a solution to
bring in change and make the organization more efficient. Thus, a system analyst may
also be considered as a change agent.
As we have pointed out in the previous section, the role of the analyst encompasses
both the business and technology domain. In addition, the analyst also works, as a
change agent hence the work of an analyst not only requires very good understanding of
technical knowledge but also of business and interpersonal skills.
Creativity: This skill will ensure that the analyst can give the users novel
technical solutions for the same problem.
Problem solving: This skill will help the analyst form a systems approach to
problem solving so that they are able to structure a problem even when there is none.
Technical knowledge: The analyst needs to have concrete knowledge in the
technical domain so that they are able to generate alternative solutions to problem.
Without the technical know how they will not be able to develop the solution. The analyst
must also have a broad knowledge of the entire technical domain. The broad spectrum
of knowledge will help them be flexible in their solution approach and will ensure that
they have a better understanding of the future of technologies.
The very first data model could be flat data-models, where all the data used are to be kept in
the same plane. Earlier data models were not so scientific, hence they were prone to introduce
lots of duplication and update anomalies.
Entity-Relationship Model
Entity-Relationship (ER) Model is based on the notion of real-world entities and relationships
among them. While formulating real-world scenario into the database model, the ER Model
creates entity set, relationship set, general attributes and constraints.
ER Model is based on −
Entitiesand their
Relationshipsamong entities.
Mapping cardinalities −
o one to one
o one to many
o many to one
o many to many
Relational Model
The most popular data model in DBMS is the Relational Model. It is more scientific a model
than others. This model is based on first-order predicate logic and defines a table as an n-ary
relation.
Technical Feasibility
Operational Feasibility
Behavioral Feasibility
It evaluates and estimates the user attitude or behavior towards the development of
new system.
It helps in determining if the system requires special effort to educate, retrain,
transfer, and changes in employee’s job status on new ways of conducting business.
Schedule Feasibility
It ensures that the project should be completed within given time constraint or
schedule.
It also verifies and validates whether the deadlines of project are reasonable or not.
Unit-2
DFDs
Data flow diagram is graphical representation of flow of data in an information system. It
is capable of depicting incoming data flow, outgoing data flow and stored data. The DFD
does not mention anything about how data flows through the system.
There is a prominent difference between DFD and Flowchart. The flowchart depicts flow
of control in program modules. DFDs depict flow of data in the system at various levels.
DFD does not contain any control or branch elements.
Types of DFD
Data Flow Diagrams are either Logical or Physical.
Logical DFD – This type of DFD concentrates on the system process, and flow
of data in the system. For example in a Banking software system, how data is moved
between different entities.
Physical DFD – This type of DFD shows how the data flow is actually
implemented in the system. It is more specific and close to the implementation.
DFD Components
DFD can represent Source, destination, storage and flow of data using the following set
of components:
Entities – Entities are source and destination of information data. Entities are
represented by a rectangles with their respective names.
Process – Activities and action taken on the data are represented by Circle or
Round-edged rectangles.
Data Storage – There are two variants of data storage – it can either be
represented as a rectangle with absence of both smaller sides or as an open-sided
rectangle with only one side missing.
Data Flow – Movement of data is shown by pointed arrows. Data movement is
shown from the base of arrow as its source towards head of the arrow as destination.
Levels of DFD
Level 0 – Highest abstraction level DFD is known as Level 0 DFD, which depicts
the entire information system as one diagram concealing all the underlying details. Level
0 DFDs are also known as context level DFDs.
Level 1 – The Level 0 DFD is broken down into more specific, Level 1 DFD.
Level 1 DFD depicts basic modules in the system and flow of data among various
modules. Level 1 DFD also mentions basic processes and sources of information.
Level 2 – At this level, DFD shows how data flows inside the modules mentioned
in Level 1.
Higher level DFDs can be transformed into more specific lower level DFDs with deeper
level of understanding unless the desired level of specification is achieved.
Types of Forms
Flat Forms
These are papers with one-time carbons interleaved into unit sets for either
handwritten or machine use.
Carbons may be either blue or black, standard grade medium intensity. Generally,
blue carbons are best for handwritten forms while black carbons are best for machine use.
These are multiple unit forms joined in a continuous strip with perforations between
each pair of forms.
It is a less expensive method for large volume use.
They use carbonless papers which have two chemical coatings (capsules), one on the
face and the other on the back of a sheet of paper.
When pressure is applied, the two capsules interact and create an image.
Structure Chart
Structure chart is a chart derived from Data Flow Diagram. It represents the system in more
detail than DFD. It breaks down the entire system into lowest functional modules, describes
functions and sub-functions of each module of the system to a greater detail than DFD.
Structure chart represents hierarchical structure of modules. At each layer a specific task is
performed.
Jump – An arrow is shown pointing inside the module to depict that the control will
jump in the middle of the sub-module.
Loop – A curved arrow represents loop in the module. All sub-modules covered by
loop repeat execution of module.
Data flow – A directed arrow with empty circle at the end represents data flow.
Control flow – A directed arrow with filled circle at the end represents control flow.
An online telephone directory would definitely use database to store data pertaining to
people, phone numbers, other contact details, etc.
Your electricity service provider is obviously using a database to manage billing, client
related issues, to handle fault data, etc.
Let’s also consider the Facebook. It needs to store, manipulate and present data related
to members, their friends, member activities, messages, advertisements and lot more.
Requirement Engineering
The process to gather the software requirements from client, analyze and document
them is known as requirement engineering.
Feasibility Study
Requirement Gathering
Software Requirement Specification
Software Requirement Validation
Feasibility study
When the client approaches the organization for getting the desired product developed,
it comes up with rough idea about what all functions the software must perform and
which all features are expected from the software.
Referencing to this information, the analysts does a detailed study about whether the
desired system and its functionality are feasible to develop.
This feasibility study is focused towards goal of the organization. This study analyzes
whether the software product can be practically materialized in terms of implementation,
contribution of project to organization, cost constraints and as per values and objectives
of the organization. It explores technical aspects of the project and product such as
usability, maintainability, productivity and integration ability.
The output of this phase should be a feasibility study report that should contain adequate
comments and recommendations for management about whether or not the project
should be undertaken.
Requirement Gathering
If the feasibility report is positive towards undertaking the project, next phase starts with
gathering requirements from the user. Analysts and engineers communicate with the
client and end-users to know their ideas on what the software should provide and which
features they want the software to include.
SRS defines how the intended software will interact with hardware, external interfaces,
speed of operation, response time of system, portability of software across various
platforms, maintainability, speed of recovery after crashing, Security, Quality, Limitations
etc.
The requirements received from client are written in natural language. It is the
responsibility of system analyst to document the requirements in technical language so
that they can be comprehended and useful by the software development team.
Requirements gathering – The developers discuss with the client and end users
and know their expectations from the software.
Organizing Requirements – The developers prioritize and arrange the
requirements in order of importance, urgency and convenience.
Negotiation & discussion – If requirements are ambiguous or there are some
conflicts in requirements of various stakeholders, if they are, it is then negotiated and
discussed with stakeholders. Requirements may then be prioritized and reasonably
compromised.
The requirements come from various stakeholders. To remove the ambiguity and
conflicts, they are discussed for clarity and correctness. Unrealistic requirements are
compromised reasonably.
Interviews
Interviews are strong medium to collect requirements. Organization may conduct several
types of interviews such as:
Surveys
Organization may conduct surveys among various stakeholders by querying about their
expectation and requirements from the upcoming system.
Questionnaires
A document with pre-defined set of objective questions and respective options is handed
over to all stakeholders to answer, which are collected and compiled.
A shortcoming of this technique is, if an option for some issue is not mentioned in the
questionnaire, the issue might be left unattended.
Task analysis
Team of engineers and developers may analyze the operation for which the new system
is required. If the client already has some software to perform certain operation, it is
studied and requirements of proposed system are collected.
Domain Analysis
Every software falls into some domain category. The expert people in the domain can be
a great help to analyze general and specific requirements.
Brainstorming
An informal debate is held among various stakeholders and all their inputs are recorded
for further requirements analysis.
Prototyping
Prototyping is building user interface without adding detail functionality for user to
interpret the features of intended software product. It helps giving better idea of
requirements. If there is no software installed at client’s end for developer’s reference
and the client is not aware of its own requirements, the developer creates a prototype
based on initially mentioned requirements. The prototype is shown to the client and the
feedback is noted. The client feedback serves as an input for requirement gathering.
Observation
Team of experts visit the client’s organization or workplace. They observe the actual
working of the existing installed systems. They observe the workflow at client’s end and
how execution problems are dealt. The team itself draws some conclusions which aid to
form requirements expected from the software.
Clear
Correct
Consistent
Coherent
Comprehensible
Modifiable
Verifiable
Prioritized
Unambiguous
Traceable
Credible source
Software Requirements
We should try to understand what sort of requirements may arise in the requirement
elicitation phase and what kinds of requirements are expected from the software system.
Functional Requirements
Requirements, which are related to functional aspect of software fall into this category.
They define functions and functionality within and from the software system.
EXAMPLES –
Non-Functional Requirements
Requirements, which are not related to functional aspect of software, fall into this
category. They are implicit or expected characteristics of software, which users make
assumption of.
Security
Logging
Storage
Configuration
Performance
Cost
Interoperability
Flexibility
Disaster recovery
Accessibility
While developing software, ‘Must have’ must be implemented, ‘Should have’ is a matter
of debate with stakeholders and negation, whereas ‘could have’ and ‘wish list’ can be
kept for software updates.
easy to operate
quick in response
effectively handling operational errors
providing simple yet consistent user interface
User acceptance majorly depends upon how user can use the software. UI is the only
way for users to perceive the system. A well performing software system must also be
equipped with attractive, clear, consistent and responsive user interface. Otherwise the
functionalities of software system can not be used in convenient way. A system is said
be good if it provides means to use it efficiently. User interface requirements are briefly
mentioned below –
Content presentation
Easy Navigation
Simple interface
Responsive
Consistent UI elements
Feedback mechanism
Default settings
Purposeful layout
Strategical use of color and texture.
Provide help information
User centric approach
Group based view settings.
Software Metrics provide measures for various aspects of software process and
software product.
Software measures are fundamental requirement of software engineering. They not only
help to control the software development process but also aid to keep quality of ultimate
product excellent.
According to Tom DeMarco, a (Software Engineer), “You cannot control what you cannot
measure.” By his saying, it is very clear how important software measures are.
Function Point Count is measure of the functionality provided by the software. Function
Point count defines the size of functional aspect of software.
The number of defects found in development process and number of defects reported by
the client after the product is installed or delivered at client-end, define quality of product.
Process Metrics – In various phases of SDLC, the methods and tools used, the
company standards and the performance of development are software process metrics.
Resource Metrics – Effort, time and various resources used, represents metrics
for resource measurement.
Personnel Estimates
The stockroom personnel will also need information about the business. Each design
describes output to be produced by the system, such as inventory reports, sales
analyses, purchasing summaries, and invoices. The systems analysts will actually
decide which outputs to use, as well as how to produce them.
Analysis specifies what the system should do. Design states how to accomplish the
objective. Notice that each of the processes mentioned involves people. Managers and
employees have good ideas about what works and what does not, about what flows
smoothly and what causes problems, about where change is needed and where it is not,
and especially about where change will be accepted and where it will not. Despite
technology, people are still the keys that make the organizations work. Thus,
communicating and dealing with people are very important parts of the systems analyst’s
job.
A typical seven to ten – person committee would consist of the following membership:
2. Departmental management:
Credit manager
3. Technical managers:
The committee receives proposals and evaluated them. The major responsibility of the
committee is to make a decision, which often requires more information than the
proposal provides, therefore, a preliminary investigation, is often requested to gather
those details.
The steering – committee method brings high respectability and visibility to the review of
project proposals. The committee consists of managers with the responsibility and the
authority to decide which projects are in the best interest of the entire firm.
Because several levels of management are included on the committee, members can
have informed discussions on matters relating to day – to – day operations (treating
patients, ordering materials, or hiring staff members) and long – range plans (new
facilities, new programs) that many have a bearing on the project request. The
managers provide practical information and insight about operations and long – term
development. Systems specialists on the committee provide technical and
developmental information that is useful in reaching decisions about project
management.
The steering committee approach is often favored because systems projects are
business investments. Management, not systems analysts or designers, selects projects
for development, decisions are made on the basis of the cost of the project, its benefit to
the organization, and the feasibility of accomplishing the development within the limits of
information systems technology in the organization.
This is the method used by Peter Wallington’s employer in “The Good Old Days of
Information systems”.
I-O 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 −
o What are the inputs needed for the system?
o How end users respond to different elements of forms and screens.
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.
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.
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.
UNIT-3
Data Dictionary, Decision Tables
Data Dictionary
A data dictionary contains metadata i.e data about the database. The data dictionary is
very important as it contains information such as what is in the database, who is allowed
to access it, where is the database physically stored etc. The users of the database
normally don’t interact with the data dictionary, it is only handled by the database
administrators.
If the structure of the database or its specifications change at any point of time, it should
be reflected in the data dictionary. This is the responsibility of the database management
system in which the data dictionary resides.
So, the data dictionary is automatically updated by the database management system
when any changes are made in the database. This is known as an active data dictionary
as it is self-updating.
This is not as useful or easy to handle as an active data dictionary. A passive data
dictionary is maintained separately to the database whose contents are stored in the
dictionary. That means that if the database is modified the database dictionary is not
automatically updated as in the case of Active Data Dictionary.
So, the passive data dictionary has to be manually updated to match the database. This
needs careful handling or else the database and data dictionary are out of sync.
Decision Tables
Decision tables are a method of describing the complex logical relationship in a precise
manner which is easily understandable.
Condition Stub: It is in the upper left quadrant which lists all the condition to be
checked.
Action Stub: It is in the lower left quadrant which outlines all the action to be
carried out to meet such condition.
Condition Entry: It is in upper right quadrant which provides answers to
questions asked in condition stub quadrant.
Action Entry: It is in lower right quadrant which indicates the appropriate action
resulting from the answers to the conditions in the condition entry quadrant.
The entries in decision table are given by Decision Rules which define the relationships
between combinations of conditions and courses of action. In rules section,
Regular Customer – Y N –
ACTIONS
Give 5% discount X X – –
Give no discount – – X X
Decision Trees
Decision trees are a method for defining complex relationships by describing decisions and
avoiding the problems in communication. A decision tree is a diagram that shows alternative
actions and conditions within horizontal tree framework. Thus, it depicts which conditions to
consider first, second, and so on.
Decision trees depict the relationship of each condition and their permissible actions. A
square node indicates an action and a circle indicates a condition. It forces analysts to
consider the sequence of decisions and identifies the actual decision that must be made.
The major limitation of a decision tree is that it lacks information in its format to describe
what other combinations of conditions you can take for testing. It is a single representation of
the relationships between conditions and actions.
From Logical…
So, database design is the process of transforming a logical data model into an actual
physical database. Technicians sometimes leap to the physical implementation before
producing the model of that implementation. This is unwise. A logical data model is
required before you can even begin to design a physical database. And the logical data
model grows out of a conceptual data model. And any type of data model begins with
the discipline of data modeling.
When databases are built from a well-designed data model the resulting structures
provide increased value to the organization. The value derived from the data model
exhibits itself in the form of minimized redundancy, maximized data integrity, increased
stability, better data sharing, increased consistency, more timely access to data, and
better usability. These qualities are achieved because the data model clearly outlines the
data resource requirements and relationships in a clear, concise manner. Building
databases from a data model will result in a better database implementation because
you will have a better understanding of the data to be stored in your databases.
Another benefit of data modeling is the ability to discover new uses for data. A data
model can clarify data patterns and potential uses for data that would remain hidden
without the data blueprint provided by the data model. Discovery of such patterns can
change the way your business operates and can potentially lead to a competitive
advantage and increased revenue for your organization.
Data modeling requires a different mindset than requirements gathering for application
development and process-oriented tasks. It is important to think “what” is of interest
instead of “how” tasks are accomplished. To transition to this alternate way of thinking,
follow these three “rules”:
Don’t think physical; think conceptual – do not concern yourself with physical
storage issues and the constraints of any DBMS you may know. Instead, concern
yourself with business issues and terms.
Don’t think process; think structure – how something is done, although important
for application development, is not important for data modeling. The things that
processes are being done to are what is important to data modeling.
Don’t think navigation; think relationship – the way that things are related to one
another is important because relationships map the data model blueprint. The way in
which relationships are traversed is unimportant to conceptual and logical data
modeling.
A data model is built using many different components acting as abstractions of real
world things. The simplest data model will consist of entities and relationships. As work
on the data model progresses, additional detail and complexity is added. Let’s examine
the many different components of a data model and the terminology used for data
modeling.
The first building block of the data model is the entity. An entity, at a very basic level, is
something that exists and is capable of being described. It is a person, place, thing,
concept, or event about which your organization maintains facts. For example:
“STUDENT,” “INSTRUCTOR,” and “COURSE” are specific entities about which a
college or university must be knowlegeable to perform its business.
Relationships define how the different entities are associated with each other. Each
relationship is named such that it describes the role played by an entity in its association
with another (or perhaps the same) entity. A relationship is defined by the keys of the
participating entities: the primary key in the parent entity and the foreign key in the
dependent entity. Relationships are not just the “lines” that connect entities, but provide
meaning to the data model and must be assigned useful names.
Keep in mind that as you create your data models, you are developing the lexicon of
your organization’s business. Much like a dictionary functions as the lexicon of words for
a given language, the data model functions as the lexicon of business terms and their
usage. Of course, this short introduction just scrapes the tip of the data modeling
iceberg.
…To Physical
Assuming that the logical data model is complete, though, what must be done to
implement a physical database?
The first step is to create an initial physical data model by transforming the logical data
model into a physical implementation based on an understanding of the DBMS to be
used for deployment. To successfully create a physical database design you will need to
have a good working knowledge of the features of the DBMS including:
In-depth knowledge of the database objects supported by the DBMS and the
physical structures and files required to support those objects.
Details regarding the manner in which the DBMS supports indexing, referential
integrity, constraints, data types, and other features that augment the functionality of
database objects.
Detailed knowledge of new and obsolete features for particular versions or
releases of the DBMS to be used.
Knowledge of the DBMS configuration parameters that are in place.
Data definition language (DDL) skills to translate the physical design into actual
database objects.
Armed with the correct information, you can create an effective and efficient database
from a logical data model. The first step in transforming a logical data model into a
physical model is to perform a simple translation from logical terms to physical objects.
Of course, this simple transformation will not result in a complete and correct physical
database design – it is simply the first step. The transformation consists of the following:
To support the mapping of attributes to table columns you will need to map each logical
domain of the attribute to a physical data type and perhaps additional constraints. In a
physical database, each column must be assigned a data type. Certain data types
require a maximum length to be specified. For example a character data type could be
specified as CHAR(25), indicating that up to 25 characters can be stored for the column.
You may need to apply a length to other data types as well, such as graphic, floating
point, and decimal (which require a length and scale) types.
But no commercial DBMS product fully supports relational domains. Therefore the
domain assigned in the logical data model must be mapped to a data type supported by
the DBMS. You may need to adjust the data type based on the DBMS you use. For
example, what data type and length will be used for monetary values if no built-in
currency data type exists? Many of the major DBMS products support user-defined data
types, so you might want to consider creating a data type to support the logical domain,
if no built-in data type is acceptable.
In addition to a data type and length, you also may need to apply a constraint to the
column. Consider a domain of integers between 1 and 10 inclusive. Simply assigning the
physical column to an integer data type is insufficient to match the domain. A constraint
must be added to restrict the values that can be stored for the column to the specified
range, 1 through 10. Without a constraint, negative numbers, zero, and values greater
than ten could be stored. Using check constraints you can place limits on the data
values that can be stored in a column or set of columns.
Specification of a primary key is an integral part of the physical design of entities and
attributes. A primary key should be assigned for every entity in the logical data model.
As a first course of action you should try to use the primary key as selected in the logical
data model. However, multiple candidate keys often are uncovered during the data
modeling process. You may decide to choose a primary key other than the one selected
during logical design – either one of the candidate keys or another surrogate key for
physical implementation. But even if the DBMS does not mandate a primary key for each
table it is a good practice to identify a primary key for each physical table you create.
Failure to do so will make processing the data in that table more difficult.
Of course, there are many other decisions that must be made during the transition from
logical to physical. For example, each of the following must be addressed:
UNIT-4
Introduction to Distributed Data Processing and
Real Time System
Distributed systems use multiple central processors to serve multiple real-time
applications and multiple users. Data processing jobs are distributed among the
processors accordingly.
The processors communicate with one another through various communication lines
(such as high-speed buses or telephone lines). These are referred as loosely coupled
systems or distributed systems. Processors in a distributed system may vary in size and
function. These processors are referred as sites, nodes, computers, and so on.
Real-time systems are used when there are rigid time requirements on the operation of a
processor or the flow of data and real-time systems can be used as a control device in a
dedicated application. A real-time operating system must have well-defined, fixed time
constraints, otherwise the system will fail. For example, Scientific experiments, medical
imaging systems, industrial control systems, weapon systems, robots, air traffic control
systems, etc.
Features
Databases in the collection are logically interrelated with each other. Often they
represent a single logical database.
Data is physically stored across multiple sites. Data in each site can be managed
by a DBMS independent of the other sites.
The processors in the sites are connected via a network. They do not have any
multiprocessor configuration.
A distributed database is not a loosely connected file system.
A distributed database incorporates transaction processing, but it is not
synonymous with a transaction processing system.
Features
More Reliable: In case of database failures, the total system of centralized databases
comes to a halt. However, in distributed systems, when a component fails, the
functioning of the system continues may be at a reduced performance. Hence DDBMS is
more reliable.
Better Response: If data is distributed in an efficient manner, then user requests can be
met from local data itself, thus providing faster response. On the other hand, in
centralized systems, all queries have to pass through the central computer for
processing, which increases the response time.
Reliability: In case of failure of any site, the database system continues to work since a copy
is available at another site(s).
Reduction in Network Load: Since local copies of data are available, query processing can be
done with reduced network usage, particularly during prime hours. Data updating can be done at
non-prime hours.
Quicker Response: Availability of local copies of data ensures quick query processing and
consequently quick response time.
Simpler Transactions: Transactions require less number of joins of tables located at different
sites and minimal coordination across the network. Thus, they become simpler in nature.
Snapshot replication
Near-real-time replication
Pull replication
Fragmentation
Fragmentation is the task of dividing a table into a set of smaller tables. The subsets of the
table are called fragments. Fragmentation can be of three types: horizontal, vertical, and
hybrid (combination of horizontal and vertical). Horizontal fragmentation can further be
classified into two techniques: primary horizontal fragmentation and derived horizontal
fragmentation.
Fragmentation should be done in a way so that the original table can be reconstructed from
the fragments. This is needed so that the original table can be reconstructed from the
fragments whenever required. This requirement is called “reconstructiveness.”
Advantages of Fragmentation
Since data is stored close to the site of usage, efficiency of the database system is increased.
Local query optimization techniques are sufficient for most queries since data is locally
available.
Since irrelevant data is not available at the sites, security and privacy of the database system
can be maintained.
Disadvantages of Fragmentation
When data from different fragments are required, the access speeds may be very high.
In case of recursive fragmentations, the job of reconstruction will need expensive
techniques.
Lack of back-up copies of data in different sites may render the database ineffective in case
of failure of a site.
Vertical Fragmentation
In vertical fragmentation, the fields or columns of a table are grouped into fragments. In order
to maintain reconstructiveness, each fragment should contain the primary key field(s) of the
table. Vertical fragmentation can be used to enforce privacy of data.
For example, let us consider that a University database keeps records of all registered
students in a Student table having the following schema.
STUDENT
Now, the fees details are maintained in the accounts section. In this case, the designer will
fragment the database as follows −
FROM STUDENT;
Horizontal Fragmentation
Horizontal fragmentation groups the tuples of a table in accordance to values of one or more
fields. Horizontal fragmentation should also confirm to the rule of reconstructiveness. Each
horizontal fragment must have all columns of the original base table.
For example, in the student schema, if the details of all students of Computer Science Course
needs to be maintained at the School of Computer Science, then the designer will horizontally
fragment the database as follows −
CREATE COMP_STD AS
At first, generate a set of horizontal fragments; then generate vertical fragments from one or
more of the horizontal fragments.
At first, generate a set of vertical fragments; then generate horizontal fragments from one or
more of the vertical fragments.
Notation
For those not familiar with the notation used for state-transition diagrams, some
explanation is in order.
State: A condition during the life of an object in which it satisfies some condition,
performs some action, or waits for some event.
Event: An occurrence that may trigger a state transition. Event types include an
explicit signal from outside the system, an invocation from inside the system, the
passage of a designated period of time, or a designated condition becoming true.
Guard: A boolean expression which, if true, enables an event to cause a transition.
Transition: The change of state within an object.
Action: One or more actions taken by an object in response to a state change.