DBMS - Unit-1
DBMS - Unit-1
UNIT-1
Purpose of Database System – Views of data - Data Models – Database System
Architecture – Introduction to relational databases – Relational Model – Constraints –
Relational Algebra. Overview of the SQL Query Language – Basic Structure of SQL
Queries – DDL – DML – Keys.
Introduction
• Definition: A Database Management System (DBMS) is a collection of interrelated data
and various programs that are used to handle that data.
• The primary goal of DBMS is to provide a way to store and retrieve the required
information from the database in convenient and efficient manner.
• For managing the data in the database two important tasks are conducted -
(i) Define the structure for storage of information.
(ii) Provide mechanism for manipulation of information.
• In addition, the database systems must ensure the safety of information stored.
Database System Applications
There are wide range of applications that make use of database systems. Some of the
applications are -
1) Accounting: Database systems are used in maintaining information employees, salaries,
and payroll taxes.
2) Manufacturing: For management of supply chain and tracking production of items in
factories database systems are maintained.
3) For maintaining customer, product and purchase information the databases are used.
4) Banking: In banking sector, for customer information, accounts and loan and for
performing banking applications the DBMS is used.
5) For purchase on credit cards and generation of monthly statements database systems are
useful.
6) Universities: The database systems are used in universities for maintaining student
information, course registration, and accounting.
7) Reservation systems: In airline/railway reservation systems, the database is used to at
maintain the reservation and schedule information.
8) Telecommunication: In telecommunications for keeping records of the calls made,
generating monthly bills, maintaining balances on prepaid calling cards, and storing
information about communication networks the database systems are used.
Purpose of Database System
AU: May-07, 12, Dec.-04, Marks 8
• Earlier database systems are created in response to manage the commercial data. These data
is typically stored in files. To allow users to manipulate these files various programs are
written for
1) Addition of new data
2) Updating the data
3) Deleting the data.
• As per the addition of new need, separate application programs were required to write. Thus
as the time goes by, the system acquires more files and more application programs.
• This typical file processing system is supported by conventional operating system. Thus the
file processing system can be described as -
• The system that stores the permanent records in files and it needs different application
programs to extract or add the records.
Before introducing database management system, this file processing system was in use.
However, such a system has many drawbacks. Let us discuss them
Disadvantages of Traditional File Processing System
The traditional file system has following disadvantages:
1) Data redundancy: Data redundancy means duplication of data at several places. Since
different programmers create different files and these files might have different structures,
there are chances that some information may appear repeatedly in some or more format at
several places.
2) Data inconsistency: Data inconsistency occurs when various copies of same data may no
longer get matched. For example changed address of an employee may be reflected in one
department and may not be available (or old address present) for other department.
3) Difficulty in accessing data: The conventional file system does not allow to retrieve the
desired data in efficient and convenient manner.
4) Data isolation: As the data is scattered over several files and files may be in different
formats, it becomes to retrieve the desired data from the file for writing the new application.
5) Integrity problems: Data integrity means data values entered in the database fall within a
specified range and are of correct format. With the use of several files enforcing such
constraint on the data becomes difficult.
6) Atomicity problems: An atomicity means particular operation must be carried out sib
entirely or not at all with the database. It is difficult to ensure atomicity in conventional file
processing system.
7) Concurrent access anomalies: For efficient execution, multiple users update data
simultaneously, in such a case data need to be synchronized. As in traditional file systems,
data is distributed over multiple files, one cannot access these files concurrently.
8) Security problems: Every user is not allowed to access all the data of database no system.
Since application program in file system are added in an ad hoc manner, enforcing such
security constraints become difficult.
Database systems offer solutions to all the above mentioned problems.
Difference between Database System and Conventional File System
Views of Data
AU: May-16, Marks 16
• Database is a collection of interrelated data and set of programs that allow users to access or
modify the data.
• Abstract view of the system is a view in which the system hides certain details of how the
data are stored and maintained.
• The main purpose of database systems is to provide users with abstract view of the data.
• The view of the system helps the user to retrieve data efficiently.
• For simplifying the user interaction with the system there are several levels of abstraction -
these levels are - Physical level, logical level and view level.
Data Abstraction
Data abstraction: Data abstraction means retrieving only required amount of information /of
the system and hiding background details.
There are several levels of abstraction that simplify the user interactions with the system.
These are
1) Physical level:
• This is the lowest level.
• This level describes how actually the data are stored.
• This level describes complex low level data structures.
2) Logical level:
• This is the next higher level, which describes the what data are stored in database.
• This level also describes the relationship among the data.
• The logical level thus describes then entire database in terms of small number of relatively
simple structures.
• The database administrators use logical level of abstraction for deciding what information to
keep in database.
3) View level:
This is highest level of abstraction that describes only part of the entire database.
• The view level can provide the access to only part of the database.
• This level helps in simplifying the interaction with the system.
• The system can provide multiple views of the same system.
• Clerk at the reservation system, can see only part of the database and can access the
required information of the passenger.
Fig. 1.3.1 shows the relationship among the three levels of abstraction.
For example: Consider following record
Type employee = record
empID:numeric(10)
empname:char(20)
dept_no:numeric (10)
salary:numeric(8,2)
end
This code defines a new record employee with four fields. Each field is associated with field
name and its type. There are several other records such as
department with fields dept_no, dept_name, building
customer with fields cust_id,cust_name
• At the physical level, the record - customer, employee, department can be Vibe described as
block of consecutive storage locations. Many database systems hide lowest level storage
details from database programmer.
• The type definition of the records is decided at the logical level. The programmer work of
the record at this level, similarly database administrators also work at this level of abstraction.
• There is specific view of the record is allowed at the view level. For instance - - customer
can view the name of the employee, or id of the employee but cannot access employee's
salary.
Instances: When information is inserted or deleted from the database then the database gets
changed. The collection of information at particular moment is called instances. For example
- following is an instance of student database
Types of Schema: The database has several schema based on the levels of abstraction.
(1) Physical Schema: The physical schema is a database design described at the physical
level of abstraction.
(2) Logical Schema: The logical schema is a database design at the logical level of
abstraction.
(3) Subschema:A database may have several views at the view level which are
called subschemas.
Data Models
AU: Dec.-14, May-19, Marks 13
Definition: It is a collection of conceptual tools for describing data, relationships among
data, semantics (meaning) of data and constraints.
• Data model is a structure below the database.
• Data model provides a way to describe the design of database at physical, logical and view
level.
• There are various data models used in database systems and these are as follows -
(1) Relational model:
• Relation model consists of collection of tables which stores data and also guilatxo
represents the relationship among the data.
• Table is also known as relation.
• The table contains one or more columns and each column has unique name.
• Each table contains record of particular type, and each record type defines a fixed number
of fields or attributes.
• For example - Following figure shows the relational model by showing the relationship
between Student and Result database. For example - Student Ram lives in city Chennai and
his marks are 78. Thus the relationship between these two databases is maintained by
the SeatNo. Column
Advantages:
(i) Structural Independence: Structural independence is an ability that allows us to make
changes in one database structure without affecting other. The relational levsiz model have
structural independence. Hence making required changes in thedatabase is convenient in
relational database model.
(ii)Conceptual Simplicity: The relational model allows the designer to simply focus on
logical design and not on physical design. Hence relational models are conceptually simple to
understand.
(iii) Query Capability: Using simple query language (such as SQL) user can get egile
information from the database or designer can manipulate the database structure.
(iv) Easy design,maintenance and usage: The relational models can be designed logically
hence they are easy to maintain and use.
Disadvantages:
(i) Relational model requires powerful hardware and large data storage devices.
(ii) May lead to slower processing time.
(iii) Poorly designed systems lead to poor implementation of database systems.
1) Entity relationship model:
• As the name suggests the entity relationship model uses collection of basic objects called
entities and relationships.
• The entity is a thing or object in the real world.
• The entity relationship model is widely used in database design.
• For example - Following is a representation of Entity Relationship modelin which the
relationship works_for is between entities Employee and Department.
Advantages:
i) Simple: It is simple to draw ER diagram when we know entities and relationships.
ii) Easy to understand: The design of ER diagram is very logical and hence they are easy to
design and understand.
iii) Effective: It is effective communication tool.
iv) Integrated: The ER model can be easily integrated with Relational model.
v) Easy conversion: ER model can be converted easily into other type of models.
Disadvantages:
i) Loss of information: While drawing ER model some information can be hidden or lost.
ii) Limited relationships: The ER model can represent limited relationships as compared to
other models.
iii) No Representation for data manipulation: It is not possible to represent data
manipulation in ER model.
iv) No industry standard: There is no industry standard for notations of ER diagram.
(3) Object Based Data Model:
• The object oriented languages like C++, Java, C# are becoming the
dominant in software development.
• This led to object based data model.
• To The object based data model combines object oriented features with relationaldata
model.
Advantages:
i) Enriched modelling: The object based data model has capability of modelling the real
world objects.
ii) Reusability: There are certain features of object oriented design such as inheritance,
polymorphism which help in reusability.
iii) Support for schema evolution: There is a tight coupling between data and b
applications, hence there is strong support for schema evolution.
iv)Improved performance: Using object based data model there can be significant
improvement in performance using object based data model.
Disadvantages:
i) Lack of universal data model: There is no universally agreed data model for an object
based data model, and most models lack a theoretical foundation.
ii) Lack of experience: In comparison with relational database management the use of object
based data model is limited. This model is more dependent on the skilled egi programmer.
iii) Complex: More functionalities present in object based data model make the design
complex.
(4) Semi-structured data model:
• The semi-structured data model permits the specification of data where individual data
items of same type may have different sets of attributes.
• The Extensible Markup Language (XML) is widely used to represent semi- structured data
model.
Advantages
i) Data is not constrained by fixed schema.
ii) It is flexible.
iii) It is portable.
Disadvantages
i) Queries are less efficient than other types of data model.
Review Questions
1. Write short note on: Data model and its types. AU: Dec.-14, Marks 8
2 Explain three different groups of data models with suitable examples. AU: May-19, Marks
13
The above table consists of three column headers RollNo, Name and Phone. Each row of the
table indicates the information of each student by means of his Roll Number, Name and
Phone number.
Similarly consider another table named Course as follows –
Clearly, in above table the columns are CourseID, CourseName and Credits. The CourseID
101 is associated with the course named Mechanical and associated with the course of
mechanical there are 4 credit points. Thus the relation is represented by the table in the
relation model. Similarly we can establish the relationship among the two tables by defining
the third table. For example - Consider the table Admission as
From this third table we can easily find out that the course to which the RollNo 001 is
admitted is computer Science.
Relational Model
There are some commonly used terms in Relational Model and those are -
Table or relation: In relational model, table is a collection of data items arranged in rows
and columns. The table cannot have duplicate data or rows. Below is an example of student
table
Tuple or record or row: The single entry in the table is called tuple. The tuple represents a
set of related data. In above Student table there are four tuples. One of the tuple can be
represented as
Attribute or columns: It is a part of table that contains several records. Each record can be
broken down into several small parts of data known as attributes. For example the above table
consists of four attributes such as RollNo,Name,Marks and Phone.
Relation schema: A relation schema describes the structure of the relation, with the name of
the relation (i.e. name of table), its attributes and their names and type.
Relation Instance: It refers to specific instance of relation i.e. containing a specific set of
rows. For example - the following is a relation instance - which contains the records with
marks above 80.
Domain: For each attribute of relation, there is a set of permitted values called domain. For
example - in above table, the domain of attribute Marks is set of all possible permitted marks
of the students. Similarly the domain of Name attribute is all possible names of students.
That means Domain of Marks attribute is (88,83,98)
Atomic:The domain is atomic if elements of the domain are considered to be indivisible
units. For example in above Student table, the attribute Phone is non-atomic.
NULL attribute: A null is a special symbol, independent of data type, which means either
unknown or inapplicable. It does not mean zero or blank. For example - Consider a salary
table that contains NULL
Degree: It is nothing but total number of columns present in the relational database. In given
Student table –
The degree is 4.
Cardinality: It is total number of tuples present i in the relational database. In above given
table the cardinality is 3
Example 1.9.1 Find out following for given Staff table
i) No of Columns
ii) No of tuples
iii) Different attributes
iv) Degree
v) Cardinality
Solution:
i) No of Columns = 6
ii) No of Tuples = 3
iii) Different attributes are StaffID, Name, Sex, Designation, Salary, DOJ
iv) Degree Total number of columns = 6
v) Cardinality =Total number of rows = 3
• Note that the "CustID" column in the "Order" table points to the "CustID" column in the
"Customer" table.
• The "CustID" column in the "Customer" table is the PRIMARY KEY in the"Customer"
table.
• The "CustID" column in the "Order" table is a FOREIGN KEY in the "Order" table.
• The table containing the foreign key is called the child table, and the table containing the
primary key is called the referenced or parent table.
• The FOREIGN KEY constraint is used to prevent actions that would destroy links between
tables.
• The FOREIGN KEY constraint also prevents invalid data from being inserted into the
foreign key column, because it has to be one of the values contained in the table it points to.
Relational Algebra
AU: May-03,04,05,14,15,16,17,18, Dec.-02,06,07,08,11,15,16,17, Marks 16
There are two formal query languages associated with relational model and those are
relational algebra and relational calculus.
• Definition: Relational algebra is a procedural query language which is used to access
database tables to read data in different ways.
• The queries present in the relational algebra are denoted using operators.
• Every operator in relational algebra accepts relational instances (tables) as input and returns
relational instance as output. For example-
• Each relational algebra is procedural. That means each relational query describes a step-by-
step procedure for computing the desired answer, based on the order in which operators are
applied in the query.
• A sequence of relational algebra operations forms a relational algebra expression, whose
result will also be a relation that represents the result of a database query. The By composing
the operators in relational expressions the complex relation can be defined.
Relational Operations
Various types of relational operations are as follows-
(1) Selection:
• This operation is used to fetch the rows or tuples from the table(relation).
• Syntax: The syntax is
σpredicate(relation)
Where σrepresents the select operation. The predicate denotes some logic using which the
data from the relation (table) is selected.
• For example - Consider the relation student as follows-
(2)Projection :
• Project operation is used to project only a certain set of attributes of a relation. That means
if you want to see only the names all of the students in the Student table, then you can use
Project operation.
• Thus to display particular column from the relation, the projection operator is used.
• It will only project or show the columns or attributes asked for, and will also vait remove
duplicate data from the columns.
• Syntax:
ПС1, С2... (r)
where C1, C2 etc. are attribute names(column names).
• For example - Consider the Student table given in Fig. 1.13.2.
Query: Display the name and age all the students
This can be written in relational algebra as
Пsname, age (Student)
Above statement will show us only the Name and Age columns for all the rows of data in
Student table.
Query: Find the names of all the students who have reserved isbn = 005. To satisfy this
query we need to extract data from two table. Hence the cartesian product operator is used as
(σStudent.sid = Reserve.sid ˄ Reserve.Isbn = 005 (Student × Reserve)
As an output we will get
• Query: We want to display both the student name and book names from both the tables
then
Пsname (Student) U Пbname (Book)
(ii) Intersection:
• This operation is used to fetch data from both tables which is common in both the tables.
• Syntax: A ∩ B
where A and B are relations.
• Example - Consider two tables - Student and Worker
• Query: If we want to find out the names of the students who are working in a company then
300
Пname (Student) ∩ Пname (Worker)
(iii) Set-Difference: The result of set difference operation is tuples, which are present in one
relation but are not in the second relation.
Syntax: A - B
For Example: Consider two relations Full_Time_Employee and Part_Time_Employee, if we
want to find out all the employee working for Fulltime, then the set difference operator is
used -
ПEmpName(Full Time_Employee) – ПEmpName(Part_Time_Employee)
(5) Join:The join operation is used to combine information from two or more relations.
Formally join can be defined as a cross-product followed by selections and projections, joins
arise much more frequently in practice than plain cross-products. The join operator is used as
A) Inner Join
There are three types of joins used in relational algebra
i) Conditional join: This is an operation in which information from two tables is combined
using some condition and this condition is specified along with the join operator.
A c B = σc (A x B)
Thus is defined to be a cross-product followed by a selection. Note that the condition c can
refer to attributes of both A and B. The condition C can be specified using <,<,>,< or =
operators.
For example consider two table student and reserve as follows-
If we want the names of students with sid(Student) = sid (Reserve) and isbn = 005,then we
can write it using Cartesian product as -
(σ((Student.sid = Reserve.sid) ∩(Reserve.(isbn) =005)) (Student × Reserve))
Here there are two conditions as
i) (Student.sid =Reserve.sid) and ii) (Reserve.isbn = 005) which are joined by∩operator.
Now we can use c instead of above statement and write it as -
(Student ( Student.sid - Reserve.sid) ˄ (Reserve.(Isbn) - 005) Reserve))
The result will be-
ii) Equijoin: This is a kind of join in which there is equality condition between two
attributes(columns) of relations(tables). For example - If there are two table Book and
Reserve table and we want to find the book which is reserved by the student having isbn 005
and name of the book is 'DBMS', then :
iii) Natural Join: When there are common columns and we have to equate these common
columns then we use natural join. The symbol for natural join is simply without any
condition. For example, consider two tables-
Now if we want to list the books that are reserved, then that means we want to match
Books.isbn with Reserve.isbn. Hence it will be simply Books Reserve
B) Outer Join
There are three types of outer joins - Left outer join, Right outer join and Full outer join.
(1) Left Outer join
• This is a type of join in which all the records from left table are returned and the matched
records from the right table gets returned.
• The result is NULL from the right side, if there is no match.
• The symbol used for left outer join is
• This can be graphically represented as follows
(6) Rename operation: This operation is used to rename the output relation for any query
operation which returns result like Select, Project etc. Or to simply rename a relation(table).
The operator ρ(rho) is used for renaming.
Syntax: ρ (RelationNew, RelationOld)
For example: If you want to create a relation Student_names with sid and sname from
Student, it can be done using rename operator as:
ρ(Student_names, (Πsid.sname (Student))
(7) Divide operation:The division operator is used when we have to evaluate queries which
contain the keyword ALL.
It is denoted by A/B where A and B are instances of relation.
Formal Definition of Division Operation: The operation A/B is define as the set of all x
values (in the form of unary tuples) such that for every y value in (a tuple of) B, there is a
tuple <x,y> in A.
For example - Find all the customers having accounts in all the branches. For that consider
two tables - Customer and Account as
Here We check all the branches from Account table against all the names from Customer
table. We can then find that only customer A has all the accounts in all the branches.
Review Questions
1. Explain select, project, cartesian product and join operations in relational algebra with an
example lebeidi enne roberts AU: May-18, Marks 13, Dec.-16, Marks 6
2. List operations of relational algebra and purpose of each with example. AU: May-17,
Marks 5
3.Differentiate between foreign key constraints and referential integrity constraints with
suitable example. AU: Dec.-17, Marks 6
4. Explain various operations in relational algebra with examples
AU: May-03, Marks 10, Dec-07, Marks 8, Dec.- 08, Marks 10, May-14, Marks 16
5. Explain all join operations in relational algebra. AU: May-05, Marks 8
6. Briefly explain relational algebra.
AU: May-04, Marks 8
7. What is rename operation in relational algebra ? Illustrate your answer with example.
AU: Dec.-02, Marks 2
SQL Fundamentals
AU: Dec.-14,15,17,19, May-15,16,17,18, Marks 15
• Structure Query Language(SQL) is a database query language used for storing and
managing data in Relational DBMS.
• Various parts of SQL are -
• Data Definition Language(DDL): It consists of a set of commands for defining relation
schema, deleting relations, and modifying relation schemas.
• Data Manipulation Language(DML): It consists of set of SQL commands for inserting
tuples into relational schema, deleting tuples from or modifying tuples in databases.
• Integrity: The SQL DDL includes commands for specifying integrity constraints. These
constraints must be satisfied by the databases.
• View definition: The SQL DDL contains the commands for defining views for database.
• Transaction control: The SQL also includes the set of commands that indicate beginning
and ending of the transactions.
• Embedded SQL and Dynamic SQL: There is a facility of including SQL commands in the
programming languages like C,C++, COBOL or Java.
• Authorization: The SQL DDL includes the commands for specifying access rights to
relations and views.
Data Abstraction
The Basic data types used in SQL are -
(1) char(n): For representing the fixed length character string this data type is used. For
instance to represent name, designation, coursename, we use this data type. Instead of char
we can also use character. The n is specified by the user.
(2) varchar(n): The varchar means character varying. That means - for denoting the variable
length character strings this data type is used. The n is user specified maximum character
length.
(3) int: For representing the numeric values without precision, the int data type is used.
(4) numeric: For representing, a fixed point number with user-specified precision this data
type is used. The number consists of m digits plus sign k digits are to the right of precision.
For instance the numeric(3,2) allows 333.11 but it does not allow 3333.11
(5) smallint: It is used to store small integer value. It allows machine dependent subset of
integer type.
(6) real: It allows the floating point, double precision numbers.
(7) float(n): For representing the floating point number with precision of at least n digits this
data type is used.
1. Creation
• A database can be considered as a container for tables and a table is a grid with rows and
columns to hold data.
• Individual statements in SQL are called queries.
• We can execute SQL queries for various tasks such as creation of tables, insertion of data
into the tables, deletion of record from table, and so on.
In this section we will discuss how to create a table.
Step 1: We normally create a database using following SQL statement..
Syntax
CREATE DATABASE database_name;
Example
CREATE DATABASE Person _DB
Step 2: The table can be created inside the database as follows -
CREATE TABLE table name (
Col1_name datatype,
col2 _name datatype,
……
coln_name datatype
);
Example
CREATE TABLE person_details{
AdharNo int,
FirstName VARCHAR(20),
MiddleName VARCHAR(20),
LastName VARCHAR(20),
Address VARCHAR(30),
City VARCHAR(10)
}
The blank table will be created with following structure
Person_details
2. Insertion
We can insert data into the table using INSERT statement.
Syntax
INSERT INTO table_name (col1, col2,...,coln)
VALUES (value1,value,...., valuen)
Example
INSERT INTO person_details (AdharNo, FirstName, MiddleName, LastName, Address, City)
VALUES (111, 'AAA','BBB','CCC','M.G. Road', 'Pune')
The above query will result into –
3. Select
• The Select statement is used to fetch the data from the database table.
• The result returns the data in the form of table. These result tables are called resultsets.
• We can use the keyword DISTINCT. It is an optional keyword indicating that the answer
should not contain duplicates. Normally if we write the SQL without DISTINCT operator
then it does not eliminate the duplicates.
Syntax
SELECT col1, col2, ...,coln FROM table_name;
Example
SELECT AdharNo, FirstName, Address, City from person_details
The result of above query will be
• If we want to select all the records present in the table we make use of * character.
Syntax
SELECT FROM table_name;
Example
SELECT * FROM person_details;
The above query will result into
4. Where Clause
The WHERE command is used to specify some condition. Based on this condition the data
present in the table can be displayed or can be updated or deleted.
Syntax
SELECT col1,col2, ...,coln
FROM table_name
WHERE condition;
Example
Consider following table-
If we execute the following query
SELECT AdharNo
FROM person_details
WHERE city='Pune';
The result will be
If we want records of all those person who live in city Pune then we can write the query using
WHERE clause as
SELECT *
FROM person_details
WHERE city='Pune';
The result of above query will be
5. Update
• For modifying the existing record of a table, update query is used.
Syntax
UPDATE table name
SET col1-value1, col2-value2,...
WHERE condition;
Example
Consider following table
Person_details table
If we execute following query
UPDATE rerson_details
SET city 'Chennai'
WHERE AdharNo=333
The result will be
6. Deletion
We can delete one or more records based on some condition. The syntax is as follows -
Syntax
DELETE FROM table_name WHERE condition;
Example
DELETE FROM person_details
WHERE AdharNo=333
The result will be –
We can delete all the records from table. But in this deletion, all the records get deleted
without deleting table. For that purpose the SQL statement will be
DELETE FROM person_details;
7. Logical Operators
• Using WHERE clause we can use the operators such as AND, OR and NOT.
• AND operator displays the records if all the conditions that are separated using AND
operator are true.
• OR operator displays the records if any one of the condition separated using OR operator is
true.
• NOT operator displays a record if the condition is NOT TRUE.
Consider following table
Syntax of AND
SELECT col1, col2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3...;
Example of AND
If we execute following query-
SELECT AdharNo, FirstName, City
FROM person_details
WHERE AdharNo=222 AND City= 'Pune';
The result will be –
Syntax of OR
SELECT col1, col2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
Example of OR
SELECT AdharNo, FirstName, City
FROM person_details
WHERE City='Pune' OR City='Mumbai';
The result will be –
Syntax of NOT
SELECT col1, col2, ...
FROM table_name
WHERE NOT condition;
Example of NOT
SELECT AdharNo, FirstName, City
FROM person_details
WHERE NOT City='Pune';
The result will be
8. Order By Clause
• Many times we need the records in the table to be in sorted order.
• If the records are arranged in increasing order of some column then it is called ascending
order.
• If the records are arranged in decreasing order of some column then it is called descending
order.
• For getting the sorted records in the table we use ORDER BY command.
• The ORDER BY keyword sorts the records in ascending order by default.
Syntax
SELECT col1, col2,...,coln
FROM table_name
ORDER BY col1,col2.... ASC | DESC
Here ASC is for ascending order display and DESC is for descending order display.
Example
Consider following table
SELECT *
FROM person_details
ORDER BY AdharNo DESC;
The above query will result in
9. Alteration
There are SQL command for alteration of table. That means we can add new column or
delete some column from the table using these alteration commands.z
Syntax for Adding columns
ALTER TABLE table_name
ADD column_name datatype;
Example
Consider following table
Dept Table:
• Notice that the "EmpID" column in the "Dept" table points to the "EmpID" column in the
"Employee" table.
• The "EmpID" column in the "Employee" table is the PRIMARY KEY in the "Employee"
table.
• The "EmpID" column in the "Dept" table is a FOREIGN KEY in the "Dept" table.
• The FOREIGN KEY constraint is used to prevent actions that would destroy links between
tables.
• The FOREIGN KEY constraint also prevents invalid data from being inserted into the
foreign key column, because it has to be one of the values contained in the table it points to.
• The purpose of the foreign key constraint is to enforce referential integrity but there are also
performance benefits to be had by including them in your database design.
The table Dept can be created as follows with foreign key constraint.
CREATE TABLE DEPT (
DeptID int
DeptName VARCHAR(20),
EmpID int,
PRIMARY KEY(DeptID),
FOREIGN KEY (EmpID)
REFERENCES EMPLOYEE(EmpID)
);
(3) Unique
Unique constraint is used to prevent same values in a column. In the EMPLOYEE table, for
example, you might want to prevent two or more employees from having an identical
designation. Then in that case we must use unique constraint.
We can set the constraint as unique at the time of creation of table, or if the table is already
created and we want to add the unique constraint then we can use ALTER command.
For example -
CREATE TABLE EMPLOYEE(
EmpID INT NOT NULL,
Name VARCHAR (20) NOT NULL,
Designation VARCHAR(20) NOT NULL UNIQUE,
Salary DECIMAL (12, 2),
PRIMARY KEY (EmpID)
);
If table is already created then also we can add the unique constraint as follows -
ALTER TABLE EMPLOYEE
MODIFY Designation VARCHAR(20) NOT NULL UNIQUE;
(4) NOT NULL
• By default the column can have NULL values.
• NULL means unknown values.
• We can set the column values as non NULL by using the constraint NOT NULL.
• For example
CREATE TABLE EMPLOYEE(
EmpID INT NOT NULL,
Name VARCHAR (20) NOT NULL,
Designation VARCHAR(20) NOT NULL,
Salary DECIMAL (12, 2) NOT NULL,
PRIMARY KEY (EmpID)
);
(5) CHECK
The CHECK constraint is used to limit the value range that can be placed in a column.
For example
CREATE TABLE parts (
Part_no int PRIMARY KEY,
Description VARCHAR(40),
Price DECIMAL(10, 2) NOT NULL CHECK(cost > 0)
);
(6) IN operator
The IN operator is just similar to OR operator.
It allows to specify multiple values in WHERE clause.
Syntax
SELECT col1,col2,....
FROM table_name
WHERE column-name IN (value1, value2,...);
Example
Consider following table
Employee
1) Inner Join:
• The most important and frequently used of the joins is the INNER JOIN. They are also
known as an EQUIJOIN.
• The INNER JOIN creates a new result table by combining column values of two alqutul no
tables (Table1 and Table2) based upon the join-predicate.
• The query compares each row of tablel with each row of Table2 to find all pairs of rows
which satisfy the join-predicate.
• When the join-predicate is satisfied, column values for each matched pair of rows of A and
B are combined into a result row. It can be represented as:
• Syntax: The basic syntax of the INNER JOIN is as follows.
SELECT Table1.column1, Table2.column2...
FROM Table1
INNER JOIN Table2
ON Table1.common_field = Table2.common_field;
• Example: For above given two tables namely Student and City, we can apply inner join. It
will return the record that are matching in both tables using the common column cid. The
query will be
SELECT *
FROM Student Inner Join City on Student.cid=City.cid
The result will be
2) Left Join:
• The SQL LEFT JOIN returns all rows from the left table, even if there are no matches in the
right table. This means that if the ON clause matches 0 (zero) records in the right table; the
join will still return a row in the result, but with NULL in each column from the right table.
• This means that a left join returns all the values from the left table, plus matched values
from the right table or NULL in case of no matching join predicate.
• It can be represented as –
3) Right Join:
• The SQL RIGHT JOIN returns all rows from the right table, even if there are no matches in
the left table.
• This means that if the ON clause matches 0 (zero) records in the left table; the join will still
return a row in the result, but with NULL in each column from the left table.
• This means that a right join returns all the values from the right table, plus matched values
from the left table or NULL in case of no matching join predicate.
• It can be represented as follows:
• Syntax: The basic syntax of a RIGHT JOIN is as follow-
4) Full Join:
• The SQL FULL JOIN combines the results of both left and right outer joins.
• The joined table will contain all records from both the tables and fill in NULLS for missing
matches on either side.
• It can be represented as
Database Languages
There are two types of languages supported by database systems. These are
(1) DDL
• Data Definition Language (DDL) is a specialized language used to specify a database
schema by a set of definitions.
• It is a language which is used for creating and modifying the structures of tables, views,
indexes and so on.
• DDL is also used to specify additional properties of data.
• Some of the common commands used in DDL are - CREATE, ALTER, DROP.) The main
use of CREATE command is to build a new table. Using ALTER command, the users can
add up some additional column and drop existing columns. Using DROP command, the user
can delete table or view.
(2) DML
• DML stands for Data Manipulation Language.
• This language enables users to access or manipulate data as organized by appropriate data
model.
• The types of access are-
• Retrieval of information stored in the database.
• Insertion of new information into the database.
• Deletion of information from the database.
• Modification of information stored in database.
• There are two types of DML -
• Procedural DML - Require a user to specify what data are needed and how to get those
data.
• Declarative DML - Require a user to specify what data are needed without of au aw
specifying how to get those data.
• Query is a statement used for requesting the retrieval of information. This retrieval of
information using some specific language is called query language.
Review Question
1. Briefly explain about views of data. AU: May-16, Marks 16
Keys
AU: May-06, 07, 12, Dec.-06, Marks 4
Keys are used to specify the tuples distinctly in the given relation.
Various types of keys used in relational model are - Superkey, Candidate Keys, primary keys,
foreign keys. Let us discuss them with suitable example
1) Super Key(SK): It is a set of one or more attributes within a table that can uniquely
identify each record within a table. For example - Consider the Student table as follows-
The superkey can be represented as follows-
Clearly using the (RegNo) and (RollNo, Phone,Name) we can identify the records uniquely
but (Name, Marks) of two students can be same, hence this combination not necessarily help
in identifying the record uniquely.
2) Candidate Key(CK): The candidate key is a subset of superset. In other words candidate
key is a single attribute or least or minimal combination of attributes that uniquely identify
each record in the table. For example - in above given Student table, the candidate key is
RegNo, (RollNo,Phone). The candidate key can be
Thus every candidate key is a superkey but every superkey is not a candidate key.
3) Primary Key(PK): The primary key is a candidate key chosen by the database designer to
identify the tuple in the relation uniquely. For example - Consider the following
representation of primary key in the student table
Other than the above mentioned primary key, various possible primary keys can be (RollNo),
(RollNo, Name), (RollNo, Phone)
The relation among super key, candidate key and primary can be denoted by
Candidate Key= Super Key- Primary Key
Rules for Primary Key
(i) The primary key may have one or more attributes.
(ii) There is only one primary key in the relation.
(iii) The value of primary key attribute can not be NULL.
(iv) The value of primary key attributes does not be NULL.
4) Alternate Key:The alternate key is a candidate key which is not chosen by the database
designer to uniquely identify the tubles. For example-
5) Foreign key: Foreign key is a single attribute or collection of attributes in one table that
refers to the primary key of other table.
• Thus foreign keys refers to primary key.
• The table containing the primary key is called parent table and the table containing foreign
key is called child table.
• Example-
From above example, we can see that two tables are linked. For instance we could easily find
out that the 'Student CCC has opted for ComputerSci course
Review Question
1. Explain distinction among the terms primary key, candidate key, foreign key and super key
with suitable example. AU: May-06, 07, 12, Dec.-06, Marks 4 AU: Dec.-05, Marks 10