DATA MODELING
QUESTIONS
1. Mention the uses of database query language.
2. Describe the meaning and the purpose of a data model.
3. Define data modeling, its roles, benefits and common
approaches.
4. Describe the strength, weaknesses of conceptual models,
object oriented models and relational data models.
Question 1. Mention the uses of database query languages.
A database query language refers to any computer programming language
used to request and retrieve data/ information from a database and
information systems by sending queries. A query is a r4equest for
information/data from the database using the SELECT statement.
Uses of databases query languages
They provide a means of retrieving records or parts of records and
performing various calculations before displaying the results.
They are used to share and manage data, particularly data that is found
in relational database management systems. Data is organized into
tables, and multiple files, each containing tables of data, may be related
together by a common field. A filed is a data structure for a single piece of
data in the database table.
Using such languages, you can query (request information from
databases), update and reorganize data, as well as create and modify the
schema (structure) of a database system, and control access to the data.
Common software used for SQL servers include Microsoft Access, MySQL,
and Oracle.
Qn 2. Describe the meaning and the purpose of a data model.
A data model is a logical interrelationship and data flow between different
data elements involved in the information world. It also documents the way
day data is stored and retrieved.
OR
A Data model is an abstract model that organizes elements of data and
standardizes how they relate to one another. For instance, a data model may
specify that the data element representing a car be composed of a number
of other elements which, in turn, represent the color and size of the car and
define its owner.
Data models are represented by data modeling notation, which are often
presented in the graphical format.
Data model can be concrete or abstract. It has the following main
components:
- Data types
- Data items
- Data sources
- Event sources
- Links
Purpose of a data model
Their main purpose is to support and aid information systems by showing
the format and definition of different data involved.
Data models facilitate communication business and technical
development by accurately representing the requirements of the
information system and by designing the responses needed for those
requirements.
They also help to represent what data is required and what format is to be
used for different business processes.
They also help to prevent data redundancy.
The information stored in the data models is of a great significance
because it dictates the data relationships between data tables, foreign
keys and the events involved.
Qn. 3 Define data modeling, its role, benefits and common
approaches.
Data modeling refers to the process of creating a data model for an
information system by applying certain formal techniques.
The process of data modeling involves professional data modelers working
closely with business stakeholders, as well as potential users of the
information system.
Data modelers are graphical tools that enhance the productivity and simplify
data modeling tasks. Examples include;
1- Oracle SQL developer data modeler: oracle data modeler is a free
graphical tool that helps business users with data modeling tasks. It offers
features and utilities centered on productivity like easy access to report tool,
DDL preview capabilities, built in quality check tool and sophisticated search
engine.
2- ER/Studio: this supports single and multi-platform environments, with
native integration for big data platforms. It can also forward and reverse
engineer models, includes a compare and merge function and is able to
create reports in various formats like XML, PNG, JEG, ETC.
3- Others include; sparrx enterprise architect, CA Erwin, etc.
Role of Data Modeling
The major role of data modeling is to create and maintain conceptual,
logical and physical data models by defining information requirements for
management and intelligence purposes.
BENEFITS OF DATA MODELING
1. To Manage Data as a Resource. Data modeling allows you to normalize
your data and to define it in terms of what it is and what attributes it can
possess.
2. Data modeling also provides you with the tools to query the database and
derive reports from it. Without a good data model, you can find yourself in
the possession of a great deal of data, and with no efficient way – or no
way at all – to make use of it.
3. With a good data model and well- designed database, business users can
have access to information that – perhaps – they didn’t even realize was
being collected.
4. Higher quality. A data model helps define the problem, enabling you to
consider different approaches and choose the best one.
5. Reduced cost. It is cheaper to build applications using data modeling.
Data modeling catches errors and oversights early, when they are easy to
fix. This is better than fixing errors once the software has been written or
– worse yet – is in customer hands.
6. Clearer scope. A data model provides a focus for determining scope. It
provides something tangible to help business sponsors and developers
agree over precisely what is included with the software and what is
omitted. Business staff can
7. Faster performance. A well-constructed database typically runs fast, often
quicker than expected. To achieve optimal performance, the concepts in a
data model must be coherent.
8. Better documentation. Models document important concepts and jargon,
proving a basis for long-term maintenance. The documentation will serve
you well through staff turnover.
9. Fewer application errors. A data model causes participants to crisply
define concepts and resolve confusion. As a result, application
development starts with a clear vision. Developers can still make detailed
errors as they write application code, but they are less likely to make
deep errors that are difficult to resolve.
10. Fewer data errors. Data errors are worse than application errors. It is
one thing to have an application crash, necessitating a restart. It is
another thing to corrupt data in a large database. A data model not only
improves the conceptual quality of an application, it also lets you leverage
database features that improve data quality.
Qn. 4 Describe the strengths and weaknesses of conceptual, object
oriented and relational data models.
1. CONCEPTUAL MODELS.
A conceptual data model /schema is a map of concepts and their
relationships used for databases. It describes the semantics of an
organization and represents a series of assertions about its nature. It
provides an in-depth coverage of concepts and is mostly developed for
business audience.
A conceptual model should fulfill four fundamental objectives:
a. Enhance understanding of the representative system.
b. Promote efficient conveyance of system details between team members.
c. Provide a point of reference for system designers to gather system
specifications.
d. Document the system for future reference.
By applying these objectives, we can ascertain that a conceptual data
model should capture the key business entities (a person, place, concept,
event, or thing about which the organization wants to collect data), as well
as the relationships between these entities.
Conceptual model implementation and best practices
A conceptual model should:
- Be available to all team members, to facilitate collaboration and iteration.
- Be easily changeable, as a continuous reflection of up-to-date
information.
- Contain both visual and written forms of diagramming, to better explain
the abstract concepts it may represent.
- Establish relevant terms and concepts that will be used throughout the
project.
- Define said terms and concepts.
- Provide a basic structure for entities of the project.
Benefits of conceptual data model
A conceptual data model captures the key business entities (a person,
place, concept, event or thing about which the organization wants to
collect data), and the relationships between these entities.
Establishes Entities: By establishing and defining all the various entities
and concepts that are likely to come up throughout the course of a
software development life cycle, a conceptual model can help ensure that
there are fewer surprises down the road, where entities or relationships
might otherwise have been neglected or forgotten.
Defines Project Scope: A solid conceptual model can be used as a way to
define project scope, which assists with time management and
scheduling.
Base Model for Other Models: For most projects, additional, less abstract
models will need to be generated beyond the rough concepts defined in
the conceptual model. Conceptual models serve as a great jumping-off
point from which more concrete models can be created, such as logical
data models and the like.
High-Level Understanding: Conceptual models serve as a great tool by
providing a high-level understanding of a system throughout the software
development life cycle. This can be particularly beneficial for managers
and executives, who may not be dealing directly with coding or
implementation, but require a solid understanding of the system and the
relationships therein.
Disadvantages of Conceptual Modeling
Creation Requires Deep Understanding: While conceptual models can
(and should) be adaptive, proper creation and maintenance of a
conceptual model requires a fundamental and robust understanding of
the project, along with all associated entities and relationships.
Potential Time Sink: Improper modeling of entities or relationships within
a conceptual model may lead to massive time waste and potential sunk
costs, where development and planning have largely gone astray of what
was actually necessary in the first place.
Possible System Clashes: Since conceptual modeling is used to represent
such abstract entities and their relationships, it’s possible to create
clashes between various components. In this case, a clash simply
indicates that one component may conflict with another component,
somewhere down the line. This may be seen when design or coding clash
with deployment, as the initial assumptions of scaling during design and
coding were proven wrong when actual deployment occurred.
Implementation Challenge Scales with Size: While conceptual models are
not inherently ill-suited for large applications, it can be challenging to
develop and maintain a proper conceptual model for particularly complex
projects, as the number of potential issues, or clashes, will grow
exponentially as the system size increases.
2. Object oriented data model.
Object-oriented databases make the promise of reduced maintenance, code
reusability, real world modeling, and improved reliability and flexibility.
However, these are just promises and in the real world some users find that
the object-oriented benefits are not as compelling as they originally believed.
The object-oriented approach does give the ability to reduce some of the
major expenses associated with systems, such as maintenance and
development of programming code.
Advantages of Object-Oriented data model
Here are some of the benefits of the object-oriented approach:
- Reduced Maintenance: The primary goal of object-oriented development
is the assurance that the system will enjoy a longer life while having far
smaller maintenance costs. Because most of the processes within the
system are encapsulated, the behaviors may be reused and incorporated
into new behaviors.
- Real-World Modeling: Object-oriented system tends to model the real
world in a more complete fashion than do traditional methods. Objects are
organized into classes of objects, and objects are associated with
behaviors. The model is based on objects, rather than on data and
processing.
- Improved Reliability and Flexibility: Object-oriented system promise to be
far more reliable than traditional systems, primarily because new
behaviors can be "built" from existing objects. Because objects can be
dynamically called and accessed, new objects may be created at any
time. The new objects may inherit data attributes from one, or many
other objects. Behaviors may be inherited from super-classes, and novel
behaviors may be added without effecting existing systems functions.
- High Code Reusability: When a new object is created, it will automatically
inherit the data attributes and characteristics of the class from which it
was spawned. The new object will also inherit the data and behaviors
from all super classes in which it participates.
3. RELATIONAL DATA MODEL
The relational database organizes data in a series of tables. Each table has
its own fields specific to the type of data being stored. The database
management system (DBMS) designed around the relationships between
tables has survived more than two decades because of its flexibility. Once
the user enters data into a table and saves it in the massive database, a
query will recall the information at any time.
Advantages of a Relational Database Model
- Data Entry
In the relational database, you can manage endless sets of data in tables
without having to go back and reenter data a second time. You can create
separate records for each type of data to be stored.
- Data Management. Microsoft SQL Server 2008 is a popular example of a
relational database. The Microsoft Corporation updated its scalable server
system to make it easier for programmers to build, manage and query
their data warehouse.
- The ability to program a query to search all data tables for the exact
information you need.
- The ability to scale the database to the size of a very large organization.
- The ability to access, update and share information among many user
stations.