Anda di halaman 1dari 5

Databases

Definition:
A Database is a collection of related data organised in a way that data can be easily accessed,
managed and updated. It is a collection of Schemas, tables, queries, reports, views and other objects.
Some examples of databases we may encounter in our daily life are:
A telephone book
T.V. Guide
Airline reservation system
Motor vehicle registration records
Papers in our filing cabinet
Files on our computer hard drive.
Why do we need a database?
Keep records of our:
Clients
Staff
Volunteers
To keep a record of activities and interventions
Keep sales records
Develop reports
Perform research
There are several software-based products that help you build and maintain databases. These
software products are known as database management systems (DBMS).
DBMS: Database Management System
A database management system stores data in such a way that it becomes easier to retrieve,
manipulate, and produce information. A DBMS makes it possible for end users to create, read, update
and delete data in a database. The DBMS essentially serves as an interface between the database and
end users or application programs, ensuring that data is consistently organized and remains easily
accessible. Some DBMS examples include MySQL, PostgreSQL, Microsoft Access, SQL Server,
FileMaker, Oracle, RDBMS, dBASE, Clipper, and FoxPro.
Functions of DBMS:
Provides data independence
Concurrency control
Provides Recovery services
Provides Utility services
Provides a clear and logical view of the process that manipulates the data.
Advantages of DBMS:
Controlling Redundancy
Inconsistency can be avoided
Data can be shared
Restricting unauthorized access

Providing Backup and Recovery


Cost of developing and maintaining system is lower
Data Model can be developed

Disadvantages of DBMS:
Complexity
Size
Performance
Higher impact of a failure
Cost of DBMS
Additional Hardware costs

RDBMS: Relational Database Management System


Relational database management systems were first suggested by Edgar Codd in the 1970s.
Because navigational databases could not be searched, So Edgar Codd suggested another model
i.e., the relational model that allowed users to search it for data.
Relational database is a collection of organized set of tables from which data can be accessed
easily. Relational databases are the most common database systems. They include databases like SQL
Server, Oracle Database, Sybase, Informix, and MySQL.
Why we Use an RDBMS ?
Data Safety data is immune to program crashes
Concurrent Access atomic updates via transactions
Fault Tolerance replicated dbs for instant failover on machine/disk crashes
Data Integrity aids to keep data meaningful
Scalability can handle small/large quantities of data in a uniform manner
Reporting easy to write SQL programs to generate arbitrary reports

Advantages of RDBMS:
Avoids data duplication
Avoids inconsistent records
Easier to change data
Easier to change data format
Data can be added and removed easily
Easier to maintain security.
Disadvantages of RDBMS:
Cost- relational databases is the expensive
Abundance of Information- the complexity of information
Stuctured Limits- relational databases have limits on field lengths
Isolated Databases- relational databases becoming "islands of information" where the
information cannot be shared easily from one large system to another.

NoSQL
NoSQL: Not Only SQL
NoSQL is a non-relational database that stores and accesses data using key-values. Instead of
storing data in rows and columns like a traditional database, a NoSQL DBMS stores each item
individually with a unique key. Additionally, a NoSQL database does not require a structured Schema
that defines each table and the related columns. This provides a much more flexible approach to storing
data than a relational database.
While relational databases are ideal for storing structured data, their rigid structure makes it
difficult to add new fields and quickly scale the database. NoSQL provides an unstructured or "semistructured" approach that is ideal for capturing and storing user generated content. This may include
text, images, audio files, videos, click streams, tweets, or other data. While relational databases often
become slower and more inefficient as they grow, NoSQL databases are highly scalable. In fact, you
can add thousands or hundreds of thousands of new records to a NoSQL database with a minimal
decrease in performance.
Because of NoSQL's flexibility and scalability, many large businesses and organizations have
begun using NoSQL databases to store user data. They are especially common in cloud computing
applications and have become a most popular storage solution for big data.
Why do we use an NoSQL ?

The Growth of Big Data


Continuous Data Availability
Real Location Independence
Mode rn Transactional Capabilities
Flexible Data Models
Better Architecture
Analytics and Business Intelligence
Support large numbers of concurrent users (tens of thousands, perhaps millions)
Deliver highly responsive experiences to a globally distributed base of users
Be always available no downtime
Handle semi- and unstructured data
Rapidly adapt to changing requirements with frequent updates and new features

.
Types of NoSQL Databases:

Key-value database: Key-value databases are generally useful for storing session information,
user profiles, preferences, shopping cart data. We would avoid using Key-value databases when
we need to query by data, have relationships between the data being stored or we need to
operate on multiple keys at the same time.

Document database: Document databases are generally useful for content management
systems, blogging platforms, web analytics, real-time analytics, ecommerce-applications. We
would avoid using document databases for systems that need complex transactions spanning
multiple operations or queries against varying aggregate structures.

Column family database: Column family databases are generally useful for content
management systems, blogging platforms, maintaining counters, expiring usage, heavy
write volume such as log aggregation. We would avoid using column family databases for
systems that are in early development, changing query patterns.

Graph database: Graph databases are very well suited to problem spaces where we have
connected data, such as social networks, spatial data, routing information for goods and money,
recommendation engines.

Disadvantages of NoSql Databases:


No relations between the tables(collections in mongodb).
No Stored Procedures in mongodb (NoSql database).
Most of the administration is depends upon scripting like bash,perl e.t.c., in linux environment.
GUI mode tools to access the database is not flexibly available in market.
There is no database developer for nosql. Front end application developer can take care of the
database creation.
Backups is the drawback in nosql(considering mongodb) like incremental,differential e.t.c.,
These systems are fundamentally not transactional (ACID). If they advertise otherwise, beware
the over-reaching claim.

Anda mungkin juga menyukai