ADTHEORY2
ADTHEORY2
Objects are the basic building block and an instance of a class, where the type is either built-
in or user-defined.
Pointers help access elements of an object database and establish relations between
objects.
The main characteristic of objects in OODBMS is the possibility of user-constructed types. An object
created in a project or application saves into a database as is.
Object-oriented databases directly deal with data as complete objects. All the information comes in
one instantly available object package instead of multiple tables.
In contrast, the basic building blocks of relational databases, such as PostgreSQL or MySQL, are tables
with actions based on logical connections between the table data.
These characteristics make object databases suitable for projects with complex data which require an
object-oriented approach to programming. An object-oriented management system provides supported
functionality catered to object-oriented programming where complex objects are central. This
approach unifies attributes and behaviors of data into one entity.
Polymorphism
Inheritance
Encapsulation
Abstraction
Polymorphism
Polymorphism is the capability of an object to take multiple forms. This ability allows the
same program code to work with different data types. Both a car and a bike are able to break,
but the mechanism is different. In this example, the action break is a polymorphism. The
defined action is polymorphic — the result changes depending on which vehicle performs.
Inheritance
Inheritance creates a hierarchical relationship between related classes while making parts of
code reusable. Defining new types inherits all the existing class fields and methods plus
further extends them. The existing class is the parent class, while the child class extends the
parent.
For example, a parent class called Vehicle will have child classes Car and Bike. Both child
classes inherit information from the parent class and extend the parent class with new
information depending on the vehicle type.
Encapsulation
Encapsulation is the ability to group data and mechanisms into a single object to provide
access protection. Through this process, pieces of information and details of how an object
works are hidden, resulting in data and function security. Classes interact with each other
through methods without the need to know how particular methods work.
As an example, a car has descriptive characteristics and actions. You can change the color of
a car, yet the model or make are examples of properties that cannot change. A
class encapsulates all the car information into one entity, where some elements are
modifiable while some are not.
Abstraction
Abstraction is the procedure of representing only the essential data features for the
needed functionality. The process selects vital information while unnecessary information
stays hidden. Abstraction helps reduce the complexity of modeled data and allows reusability.
For example, there are different ways for a computer to connect to the network. A web
browser needs an internet connection. However, the connection type is irrelevant. An
established connection to the internet represents an abstraction, whereas the various types of
connections represent different implementations of the abstraction.
Database design can be generally defined as a collection of tasks or processes that enhance the
designing, development, implementation, and maintenance of enterprise data management system.
Designing a proper database reduces the maintenance cost thereby improving data consistency and
the cost-effective measures are greatly influenced in terms of disk storage space. Therefore, there
has to be a brilliant concept of designing a database. The designer should follow the constraints and
decide how the elements correlate and what kind of data must be stored.
The main objectives behind database designing are to produce physical and logical design models of
the proposed database system. To elaborate this, the logical model is primarily concentrated on the
requirements of data and the considerations must be made in terms of monolithic considerations
and hence the stored physical data must be stored independent of the physical conditions. On the
other hand, the physical database design model includes a translation of the logical design model of
the database by keep control of physical media using hardware resources and software systems such
as Database Management System (DBMS).
Why is Database Design important?
The important consideration that can be taken into account while emphasizing the importance of
database design can be explained in terms of the following points given below.
1. Database designs provide the blueprints of how the data is going to be stored in a system. A
proper design of a database highly affects the overall performance of any application.
2. The designing principles defined for a database give a clear idea of the behavior of any
application and how the requests are processed.
3. Another instance to emphasize the database design is that a proper database design meets
all the requirements of users.
4. Lastly, the processing time of an application is greatly reduced if the constraints of designing
a highly efficient database are properly implemented.
Life Cycle
Although, the life cycle of a database is not an important discussion that has to be taken forward in
this article because we are focused on the database design. But, before jumping directly on the
designing models constituting database design it is important to understand the overall workflow
and life-cycle of the database.
Requirement Analysis
First of all, the planning has to be done on what are the basic requirements of the project under
which the design of the database has to be taken forward. Thus, they can be defined as:-
Planning - This stage is concerned with planning the entire DDLC (Database Development Life Cycle).
The strategic considerations are taken into account before proceeding.
System definition - This stage covers the boundaries and scopes of the proper database after
planning.
Database Designing
The next step involves designing the database considering the user-based requirements and splitting
them out into various models so that load or heavy dependencies on a single aspect are not
imposed. Therefore, there has been some model-centric approach and that's where logical and
physical models play a crucial role.
Physical Model - The physical model is concerned with the practices and implementations of the
logical model.
Logical Model - This stage is primarily concerned with developing a model based on the proposed
requirements. The entire model is designed on paper without any implementation or adopting DBMS
considerations.
Implementation
The last step covers the implementation methods and checking out the behavior that matches our
requirements. It is ensured with continuous integration testing of the database with different data
sets and conversion of data into machine understandable language. The manipulation of data is
primarily focused on these steps where queries are made to run and check if the application is
designed satisfactorily or not.
Data conversion and loading - This section is used to import and convert data from the old to the
new system.
Testing - This stage is concerned with error identification in the newly implemented system. Testing is
a crucial step because it checks the database directly and compares the requirement specifications.
The process of designing a database carries various conceptual approaches that are needed to be
kept in mind. An ideal and well-structured database design must be able to:
1.2.1. VOLUME
Without a doubt, the key factor pushing organizations to look at alternatives to their current
RDBMSs is a need to query big data using clusters of commodity processors. Until around
2005, performance concerns were resolved by purchasing faster processors. In time, the
ability to increase processing speed was no longer an option. As chip density increased, heat
could no longer dissipate fast enough without chip overheating. This phenomenon, known as
the power wall, forced systems designers to shift their focus from increasing speed on a
single chip to using more processors working together. The need to scale out (also known
as horizontal scaling), rather than scale up (faster processors), moved organizations from
serial to parallel processing where data problems are split into separate paths and sent to
separate processors to divide and conquer the work.
1.2.2. VELOCITY
Though big data problems are a consideration for many organizations moving away from
RDBMSs, the ability of a single processor system to rapidly read and write data is also key.
Many single-processor RDBMSs are unable to keep up with the demands of real-time inserts
and online queries to the database made by public-facing websites. RDBMSs frequently
index many columns of every new row, a process which decreases system performance.
When single-processor RDBMSs are used as a back end to a web store front, the random
bursts in web traffic slow down response for everyone, and tuning these systems can be
costly when both high read and write throughput is desired.
1.2.3. VARIABILITY
Companies that want to capture and report on exception data struggle when attempting to use
rigid database schema structures imposed by RDBMSs. For example, if a business unit wants
to capture a few custom fields for a particular customer, all customer rows within the
database need to store this information even though it doesn’t apply. Adding new columns to
an RDBMS requires the system be shut down and ALTER TABLE commands to be run.
When a database is large, this process can impact system availability, costing time and
money.
1.2.4. AGILITY
The most complex part of building applications using RDBMSs is the process of putting data
into and getting data out of the database. If your data has nested and repeated subgroups of
data structures, you need to include an object-relational mapping layer. The responsibility of
this layer is to generate the correct combination of INSERT, UPDATE, DELETE, and
SELECT SQL statements to move object data to and from the RDBMS persistence layer.
This process isn’t simple and is associated with the largest barrier to rapid change when
developing new or modifying existing applications.
You can see how velocity, volume, variability, and agility are the high-level drivers most
frequently associated with the NoSQL movement. Now that you’re familiar with these
drivers, you can look at your organization to see how NoSQL solutions might impact these
drivers in a positive way to help your business meet the changing demands of today’s
competitive marketplace.
AD Theory 3:
Data model Highly normalized mostly Nonnormalized Complex structures Some relational, but
relationl DBMS mostly multidimensional DBMS
A Data Warehouse is a group of data specific to the entire organization, not only to a
particular group of users.
It is not used for daily operations and transaction processing but used for making
decisions.
A Data Warehouse can be viewed as a data system with the following attributes:
Role of Metadata
Metadata acts as a directory.
This directory helps the decision support system to locate
the contents of the data warehouse.
Metadata helps in decision support system for mapping of
data when data is transformed from operational
environment to data warehouse environment.
Metadata helps in summarization between current detailed
data and highly summarized data.
Metadata also helps in summarization between lightly
detailed data and highly summarized data.
Metadata is used for query tools.
Metadata is used in extraction and cleansing tools.
Metadata is used in reporting tools.
Metadata is used in transformation tools.
Metadata plays an important role in loading functions.
Business Metadata − It has the data ownership
information, business definition, and changing policies.
Technical Metadata − It includes database system names,
table and column names and sizes, data types and allowed
values. Technical metadata also includes structural
information such as primary and foreign key attributes and
indices.
Operational Metadata − It includes currency of data and
data lineage. Currency of data means whether the data is
active, archived, or purged. Lineage of data means the
history of data migrated and transformation applied on it.
What is Metadata?
Metadata is the road-map to a data warehouse.
Metadata in a data warehouse defines the warehouse
objects.
Metadata acts as a directory. This directory helps the
decision support system to locate the contents of a data
warehouse.