Relational Databases

What are relational databases? What are their advantages? Well, ease of use, flexibility, security, and performance are some of them. For an overview of relational databases and their advantages, read this Techspirited article.

database-11 Relational Databases

What is a Database?
A structured collection of records is known as a database. The way in which a database is structured is defined by the database model. Hierarchical model, network model, object model, and relational model are some of the most commonly used models in the structure of databases. A database facilitates an organized storage of data in the form of records. The records can be queried in different ways to retrieve information from the database. Owing to organized storage of data, a database becomes a useful tool of data storage. Databases form the basic tier of any multi-tier system. The information handled and manipulated by the other layers of an n-tier system is basically stored in a structured manner in a database. Take an example of any organization. How do you think they store their employee and customer information? Yes, they store it in a database. Imagine a website and where do you think the site maintains the log-in information about its users? Again, the answer is – a database.

After having realized the utility of databases in software systems, let us introduce ourselves to this concept. A database is composed of tables, which are composed of records. There is a primary key associated with every record and it serves as its unique identification. Every record has a unique primary key and also the information about the entity associated with that record. Each field in the database can be called attribute and data from a table can be retrieved on the basis of database attributes. Search queries enable easy data retrieval from the table, thus proving the importance of the organized nature of data in a database.

An Introduction to Relational Databases
One of the most popularly used database models is the relational model. It was developed by Edgar Codd in 1969. This model provides a declarative method for specification of data and queries. In a relational model of a database, the database users directly state the information they want to be retrieved from it and abstract away from the responsibility of describing the data structures that are used to store data. A database that confirms to the relational database model is known as a relational database.

A relational database is a collection of relations or tables. The rows of a table in a relational database are known as tuples and each column of a table is called an attribute. By definition, a relation becomes a set of tuples having the same attributes. Operations, which can be performed on the relations are select, project, and join. The join operation combines relations, the select queries are used for data retrieval and the project operation identifies attributes. Similar to other database models, even relational databases support the insert, delete, and update operations. Let us now look at the advantages of relational databases.


Support to Operations Based on Set Theory: Basically, relational databases are based on relational set theory. Normalization is a vital component of the relational model of databases. Relational operations, supported by relational databases work best with normalized tables. A relational database supports relational algebra, consequently supporting the relational operations of set theory. Apart from mathematical set operations namely, union, intersection, difference, and Cartesian product, relational databases also support select, project, relational join, and division operations. These operations are unique to relational databases.

Dynamic Views: Relational databases support an important concept of dynamic views. In this database, a view is not a part of the physical schema, it is dynamic. Hence changing the data in a table alters the data depicted by the view. Views can subset data, join and simplify multiple relations, dynamically hide the complexity in the data, and reduce data storage requirements.

Simple Operations and Defined Relationships: Relational databases use SQL, which is an easy and human-readable language. SQL instructions are in the form of plain instructions, which can be put to the database for implementation. Most of the database vendors support the SQL standard. A competitive technology of flat files supports a sequential storage of data and fails to provide the users with search and query options. On the other hand, relational databases provide the users with simple operations to manipulate data in the databases and retrieve it. Moreover relational databases establish defined relationships between tables, thus giving their users a complete picture of the data stored.

Security: Relational databases provide excellent security. They support access permissions which allow the database administrator to implement need-based permissions to the access of data in database tables. Relational databases support the concept of users and user rights, thus meeting the security needs of databases. Relations are associated with privileges like create privilege, grant privilege, select, insert, and delete privileges, which authorize different users for corresponding operations on the database.

The other important advantages of relational databases include their performance, power, and support to new hardware technologies, as also flexibility and a capacity to meet all types of data needs. These databases are scalable and provide support for the implementation of distributed systems.

Owing to their advantages and application in the operations of data storage and retrieval, relational databases have revolutionized database management systems.

database-11 Relational Databasesdatabase-11 Relational Databases database-11 Relational Databases

Parallel computing

Parallel computing is a type of computation in which many calculations or the execution of processes are carried out simultaneously.Large problems can often be divided into smaller ones, which can then be solved at the same time. There are several different forms of parallel computing: bit-levelinstruction-leveldata, and task parallelism. Parallelism has long been employed in high-performance computing, but it’s gaining broader interest due to the physical constraints preventing frequency scaling.As power consumption (and consequently heat generation) by computers has become a concern in recent years,parallel computing has become the dominant paradigm in computer architecture, mainly in the form of multi-core processors.

parallel-computing Parallel computing

Parallel computing is closely related to concurrent computing—they are frequently used together, and often conflated, though the two are distinct: it is possible to have parallelism without concurrency (such as bit-level parallelism), and concurrency without parallelism (such as multitasking by time-sharing on a single-core CPU).]In parallel computing, a computational task is typically broken down into several, often many, very similar sub tasks that can be processed independently and whose results are combined afterwards, upon completion. In contrast, in concurrent computing, the various processes often do not address related tasks; when they do, as is typical in distributed computing, the separate tasks may have a varied nature and often require some inter-process communication during execution.

Parallel computers can be roughly classified according to the level at which the hardware supports parallelism, with multi-core and multi-processor computers having multiple processing elements within a single machine, while clustersMPPs, and grids use multiple computers to work on the same task. Specialized parallel computer architectures are sometimes used alongside traditional processors, for accelerating specific tasks.

In some cases parallelism is transparent to the programmer, such as in bit-level or instruction-level parallelism, but explicitly parallel algorithms, particularly those that use concurrency, are more difficult to write than sequential ones,because concurrency introduces several new classes of potential software bugs, of which race conditions are the most common. Communication and synchronization between the different sub tasks are typically some of the greatest obstacles to getting good parallel program performance.