DBMS Viva Questions
DBMS Viva Questions
Viva Questions
1. What is SQL?
Structured Query Language
2. What is database?
A database is a logically coherent collection of data with some inherent meaning,
representing some aspect of real world and which is designed, built and populated with data
for a specific purpose.
3. What is DBMS?
It is a collection of programs that enables user to create and maintain a database. In other
words it is general-purpose software that provides the users with the processes of defining,
constructing and manipulating the database for various applications.
4. What is a Database system?
The database and DBMS software together is called as Database system.
5. Advantages of DBMS?
Redundancy is controlled.
Unauthorized access is restricted.
Providing multiple user interfaces.
Enforcing integrity constraints.
Providing backup and recovery.
6. Disadvantage in File Processing System?
Difficult in accessing data.
Data isolation.
Data integrity.
Concurrent access is not possible.
Security Problems.
of abstraction,describes what data are stored in database and
Logical level: The next higher level
what relationship among those data.
LogicalData Independence: Modification in logical level should affect the view level.
NOTE: Logical Data Independence is more difficult to achieve
11. What is a view? How it is related to data independence?
A view may be thought of as a virtual table, that is, a table that does not really exist in its
own right but is instead derived from one or more underlying base table. In other words, there is
no stored file that direct represents the view instead a definition of view is stored in data
dictionary.
Growth and restructuring of base tables is not reflected in views. Thus the view can
insulate users from the effects of restructuring and growth in the database. Hence accounts for
logical data independence.
12. What is Data Model?
A collection of conceptual tools for describing data, data relationships data semantics and
constraints.
13. What is E-R model?
This data model is based on real world that consists of basic objects called entities and of
relationship among these objects. Entities are described in a database by a set of attributes.
14. What is Object Oriented model?
This model is based on collection of objects. An object contains values stored in instance
variables within the object. An object also contains bodies of code that operate on the object.
These bodies of code are called methods. Objects that contain same types of values and the same
methods are grouped together into classes.
15. What is an Entity?
It is an 'object' in the real world with an independent existence.
16. What is an Entity type?
It is a collection (set) of entities that have same attributes.
17. What is an Entity set?
It is a collection of all entities of particular entity type in the database.
18. What is an Extension of entity type?
The collections of entities of a particular entity type are grouped together into an entity
set.
19. What is an attribute?
It is a particular property, which describes the entity.
20. What is a Relation Schema and a Relation?
A relation Schema denoted by R(A1, A2, …, An) is made up of the relation name
R and the list of attributes Ai that it contains. A relation is defined as a set of tuples. Let r
be the relation which contains set tuples (t1, t2, t3, ...,tn). Each tuple is an ordered list of n-
values t=(v1,v2, ..., vn).
21. What is degree of a Relation?
It is the number of attribute of its relation schema.
22. What is Relationship?
It is an association among two or more entities.
23. What is Relationship set?
In other words, if every non prime attribute is non-transitively dependent on primary key.
43. What is BCNF (Boyce-Codd Normal Form)?
A relation schema R is in BCNF if it is in 3NF and satisfies additional constraints that for
every FD X A, X must be a candidate key.
44. What is 4NF?
A relation schema R is said to be in 4NF if for every Multivalued dependency X
Y that holds over R, one of following is true
X is subset or equal to (or) XY = R.
X is a super key.
All Candidate Keys excluding the Primary Key are known as Alternate Keys.
ArtificialKey:
If no obvious key, either stand alone or compound is available, then the last
resort is to simply create a key, by assigning a unique number to each record or occurrence. Then
this is known as developing an artificial key.
CompoundKey:
If no single data element uniquely identifies occurrences within a construct, then
combining multiple elements to create a unique identifier for the construct is known as creating a
compound key.
NaturalKey:
When one of the data elements stored within a construct is utilized as the primary
key, then it is called the natural key.
48. What is indexing and what are the different kinds of indexing?
Indexing is a technique for determining how quickly specific data can be found.
Binary search style indexing
B-Tree indexing
Inverted list indexing
Memory resident table
Table indexing
49. What is system catalog or catalog relation? How is better known as?
A RDBMS maintains a description of all the data that it contains, information about
every relation and index that it contains. This information is stored in a collection of relations
maintained by the system called metadata. It is also called data dictionary.
50. What is meant by query optimization?
The phase that identifies an efficient execution plan for evaluating a query that has the
least estimated cost is referred to as query optimization.
51. What is join dependency and inclusion
dependency? JoinDependency:
A Join dependency is generalization of Multivalued dependency.A JD
{R1, R2, ...,Rn} is said to hold over a relation R if R1, R2, R3, ..., Rn is a lossless-join
decomposition of R . There is no set of sound and complete inference rules for JD.
InclusionDependency:
An Inclusion Dependency is a statement of the form that some columns of a
relation are contained in other columns. A foreign key constraint is an example of inclusion
dependency.
52. What is durability in DBMS?
Once the DBMS informs the user that a transaction has successfully completed, its effects
should persist even if the system crashes before all its changes are reflected on disk. This
property is called durability.
53. What do you mean by atomicity and aggregation?
Atomicity:
Either all actions are carried out or none are. Users should not have to worry about the
effect of incomplete transactions. DBMS ensures this by undoing the actions of incomplete
transactions.
Aggregation:
A concept which is used to model a relationship between a collection of entities and
relationships. It is used when we need to express a relationship among relationships.
query or it can be executed once for each row returned by the parent query. If the subquery is
executed for each row of the parent, this is called a correlated subquery.
A correlated subquery can be easily identified if it contains any references to the parent
subquery columns in its WHERE clause. Columns from the subquery cannot be referenced
anywhere else in the parent query. The following example demonstrates a non-correlated
subquery.
E.g. Select * From CUST Where '10/03/1990' IN (Select ODATE From ORDER Where
CUST.CNUM = ORDER.CNUM)
62. What are the primitive operations common to all record
management systems? Addition, deletion and modification.
63. Name the buffer in which all the commands that are typed in are stored
68. Which part of the RDBMS takes care of the data dictionary? How
Data dictionary is a set of tables and database objects that is stored in a special area of
the database and maintained exclusively by the kernel.
69. What is the job of the information stored in data-dictionary?
The information in the data dictionary validates the existence of the objects, provides
access to them, and maps the actual physical storage location.
70. Not only RDBMS takes care of locating data it also Determines
an optimal access path to store or retrieve the data
71. How do you communicate with an RDBMS?
You communicate with an RDBMS using Structured Query Language (SQL)
72. Define SQL and state the differences between SQL and other conventional
programming Languages
SQL is a nonprocedural language that is designed specifically for data access operations
on normalized relational database structures. The primary difference between SQL and other
conventional programming languages is that SQL statements specify what data operations should
be performed rather than how to perform them.
73. Name the three major set of files on disk that compose a database in Oracle
There are three major sets of files on disk that compose a database. All the files
are binary. These are
Database files
Control files
Redo logs
The most important of these are the database files where the actual data resides.
The control files and the redo logs support the functioning of the architecture itself.
All three sets of files must be present, open, and available to Oracle for any data on the
database to be useable. Without these files, you cannot access the database, and the database
administrator might have to recover some or all of the database using a backup, if there is one.
74. What is an Oracle Instance?
The Oracle system processes, also known as Oracle background processes, provide
functions for the user processes—functions that would otherwise be done by the user processes
themselves
Oracle database-wide system memory is known as the SGA, the system global area or
shared global area. The data and control structures in the SGA are shareable, and all the Oracle
background processes and user processes can use them.
The combination of the SGA and the Oracle background processes is known as an Oracle
instance
75. What are the four Oracle system processes that must always be up and running for
the database to be useable
The four Oracle system processes that must always be up and running for the database to
be useable include DBWR (Database Writer), LGWR (Log Writer), SMON (System Monitor),
and PMON (Process Monitor).
76. What are database files, control files and log files. How many of these files should
a database have at least? Why?
Database Files
The database files hold the actual data and are typically the largest in size.
Depending on their sizes, the tables (and other objects) for all the user accounts can go in one
database file—but that's not an ideal situation because it does not make the database structure
very flexible for controlling access to storage for different users, putting the database on different
disk drives, or backing up and restoring just part of the database.
You must have at least one database file but usually, more than one files are used. In
terms of accessing and using the data in the tables and other objects, the number (or location) of
the files is immaterial.
The database files are fixed in size and never grow bigger than the size at which they
were created
ControlFiles
The control files and redo logs support the rest of the architecture. Any database must
have at least one control file, although you typically have more than one to guard against loss.
The control file records the name of the database, the date and time it was created, the location of
the database and redoes logs, and the synchronization information to ensure that all three sets of
files are always in step. Every time you add a new database or redo log file to the database, the
information is recorded in the control files.
Redo Logs
Any database must have at least two redo logs. These are the journals for the database;
the redo logs record all changes to the user objects or system objects. If any type of failure
occurs, the changes recorded in the redo logs can be used to bring the database to a consistent
state without losing any committed transactions. In the case of non-data loss failure, Oracle can
apply the information in the redo logs automatically without intervention from the DBA.
The redo log files are fixed in size and never grow dynamically from the size at which they
were created.
77. What is ROWID?
The ROWID is a unique database-wide physical address for every row on every table.
Once assigned (when the row is first inserted into the database), it never changes until the row is
deleted or the table is dropped.
The ROWID consists of the following three components, the combination of which
uniquely identifies the physical storage location of the row.
Oracle database file number, which contains the block with the rows
Oracle block address, which contains the row
The row within the block (because each block can hold many rows)
The ROWID is used internally in indexes as a quick means of retrieving rows with a
particular key value. Application developers also use it in SQL statements as a quick way to
access a row once they know the ROWID
78. What is Oracle Block? Can two Oracle Blocks have the same address?
Oracle "formats" the database files into a number of Oracle blocks when they are first
created—making it easier for the RDBMS software to manage the files and easier to read data
into the memory areas.
The block size should be a multiple of the operating system block size. Regardless of the
block size, the entire block is not available for holding data; Oracle takes up some space to
manage the contents of the block. This block header has a minimum size, but it can grow.
These Oracle blocks are the smallest unit of storage. Increasing the Oracle block size can
improve performance, but it should be done only when the database is first created.
Each Oracle block is numbered sequentially for each database file starting at 1. Two
blocks can have the same block address if they are in different database files.
81. Name two utilities that Oracle provides, which are use for backup and recovery.
Along with the RDBMS software, Oracle provides two utilities that you can use to back
up and restore the database. These utilities are Exportand Import.
The Export utility dumps the definitions and data for the specified part of the database to
an operating system binary file. The Import utility reads the file produced by an export, recreates
the definitions of objects, and inserts the data
If Export and Import are used as a means of backing up and recovering the database, all
the changes made to the database cannot be recovered since the export was performed. The best
you can do is recovering the database to the time when the export was last performed.
82. What are stored-procedures? And what are the advantages of using them.
Stored procedures are database objects that perform a user defined operation. A stored
procedure can have a set of compound SQL statements. A stored procedure executes the SQL
commands and returns the result to the client. Stored procedures are used to reduce network
traffic.
Itis copying the three sets of files (database files, redo logs, and control file) when the
instance is shut down. This is a straight file copy, usually from the disk directly to tape. You
must shut down the instance to guarantee a consistent copy.
If a cold backup is performed, the only option available in the event of data file loss is
restoring all the files from the latest backup. All work performed on the database since the last
backup is lost.
Hot Backup:
Some sites (such as worldwide airline reservations systems) cannot shut down the
database while making a backup copy of the files. The cold backup is not an available option.
So different means of backing up database must be used — the hot backup. Issue a SQL
command to indicate to Oracle, on a tablespace-by-tablespace basis, that the files of the
tablespace are to backed up. The users can continue to make full use of the files, including
making changes to the data. Once the user has indicated that he/she wants to back up the
tablespace files, he/she can use the operating system to copy those files to the desired backup
destination.
The database must be running in ARCHIVELOG mode for the hot backup option. If a
data loss failure does occur, the lost database files can be restored using the hot backup and the
online and offline redo logs created since the backup was done. The database is restored to the
most consistent state without any loss of committed transactions.
96. How can you find the minimal key of relational schema?
Minimal key is one which can identify each tuple of the given relation schema uniquely.
For finding the minimal key it is required to find the closure that is the set of all attributes that
are dependent on any given set of attributes under the given set of functional dependency.
+
Algo. I Determining X , closure for X, given set of FDs F
+
1. Set X = X
+= +
2. Set Old X X
+ +
3. For each FD Y Z in F and if Y belongs to X then add Z to X
+ +
4. Repeat steps 2 and 3 until Old X =X
SQL Questions:
1. Which is the subset of SQL commands used to manipulate Oracle Database
structures, including tables?
Data Definition Language (DDL)
2. What operator performs pattern matching?
LIKE operator
3. What operator tests column for the absence of data?
IS NULL operator
4. Which command executes the contents of a specified file?
START <filename> or @<filename>
5. What is the parameter substitution symbol used with INSERT INTO command?
&
6. Which command displays the SQL command in the SQL buffer, and then executes it?
RUN
7. What are the wildcards used for pattern matching?
For single character substitution and % for multi-character substitution
8. State true or false. EXISTS, SOME, ANY are operators in SQL.
True
9. State true or false. !=, <>, ^= all denote the same
operation. True
10. What are the privileges that can be granted on a table by a user to others?
Insert, update, delete, select, references, index, execute, alter, all
11. What command is used to get back the privileges offered by the GRANT command?
REVOKE
12. Which system tables contain information on privileges granted and privileges obtained?
USER_TAB_PRIVS_MADE, USER_TAB_PRIVS_RECD
13. Which system table contains information on constraints on all the tables created?
USER_CONSTRAINTS
14. TRUNCATE TABLE EMP;
DELETE FROM EMP;
Will the outputs of the above two commands differ?
Both will result in deleting all the rows in the table EMP.
15. What the difference is between TRUNCATE and DELETE commands?
TRUNCATE is a DDL command whereas DELETE is a DML command. Hence
DELETE operation can be rolled back, but TRUNCATE operation cannot be rolled back.
WHERE clause can be used with DELETE and not with TRUNCATE.
16. What command is used to create a table by copying the structure of another table?
Answer:
CREATE TABLE AS SELECT command
Explanation:
To copy only the structure, the WHERE clause of the SELECT command should contain
a FALSE statement as in the following.
CREATE TABLE NEWTABLE AS SELECT * FROM EXISTINGTABLE WHERE
1=2;
If the WHERE condition is true, then all the rows or rows satisfying the condition will be
copied to the new table.
17. What will be the output of the following query?
SELECT REPLACE (TRANSLATE(LTRIM(RTRIM('!! ATHEN !!','!'), '!'), 'AN',
'**'),'*','TROUBLE') FROM DUAL;
TROUBLETHETROUBLE
18. What will be the output of the following query?
SELECT DECODE(TRANSLATE('A','1234567890','1111111111'), '1','YES', 'NO' );
Answer :
NO
Explanation :
The query checks whether a given string is a numerical digit.
19. What does the following query do?
SELECT SAL + NVL(COMM,0) FROM EMP;
This displays the total salary of all employees. The null values in the commission
column will be replaced by 0 and added to salary.
20. Which date function is used to find the difference between two dates?
MONTHS_BETWEEN
23. What is the use of the DROP option in the ALTER TABLE command?
It is used to drop constraints specified on the table.
24. What is the value of ‘comm’ and ‘sal’ after executing the following query if the initial
value of ‘sal’ is 10000?
UPDATE EMP SET SAL = SAL + 1000, COMM = SAL*0.1;
sal = 11000, comm = 1000
25. What is the use of DESC in SQL?
DESC has two purposes. It is used to describe a schema as well as to retrieve rows
from table in descending order.
The query SELECT * FROM EMP ORDER BY ENAME DESC will display the output
sorted on ENAME in descending order.
26. What is the use of CASCADE CONSTRAINTS?
When this clause is used with the DROP command, a parent table can be dropped even
when a child table exists.
27. Which function is used to find the largest integer less than or equal to a specificvalue?
FLOOR
28. What is the output of the following query?
SELECT TRUNC(1234.5678,-2) FROM
DUAL; 1200
SQL HANDSON
b. EMP:
COLUMN NAME DATATYPE(SIZE)
-----------------------------------------------------------------------------------------------
EMPNO NUMBER (4)
ENAME VARCHAR (10)
JOB VARCHAR (9)
MGR NUMBER (4)
HIREDATE DATE
SAL NUMBER (7, 2)
COMM NUMBER (7, 2)
DEPTNO NUMBER (2)
2. Check the Default Size of a Number, Char and Date Data types.
3. Describe the Structure of the Table and EMP Table.
4. Add two columns to the table EMP with the following information in one single
ALTER COMMAND.
COLUMN NAME DATATYPE (SIZE)
-----------------------------------------------------------------------------------------------
SEX CHAR (1)
PLACE CHAR (15)
5. Modify the column job present in the EMP table with the following
information given below:
COLUMN NAME DATATYPE (SIZE)
-----------------------------------------------------------------------------------------------
JOB VARCHAR (15)
6. modify the column ENAME present in the EMP table with the following
information given below:
COLUMN NAME DATATYPE (SIZE)
-----------------------------------------------------------------------------------------------
ENAME CHAR (15)
7. Decrease the size for the column EMPNO with the following information:-
COLUMN NAME DATATYPE (SIZE)
-----------------------------------------------------------------------------------------------
EMPNO NUMBER (2)
8. Modify the column name of EMPNO to EMPLOYEE_NUMBER present in the
EMP table verify the result.
9. Add a new column nationality placed between JOB and MGR columns and
verify the result
10. Drop the table DEPT and EMP.
11. What is the data type of the column HIREDATE and how many bytes it occupies.
12. Create a table EMP and DEPT using the following information.
a. DEPT:
COLUMN NAME DATATYPE(SIZE)
-----------------------------------------------------------------------------------------------
DEPTNO NUMBER(2) CONSTRAINT PK_DEPTNO
PRIMARY KEY
DNAME VARCHAR(14)
LOC VARCHAR(14)
b.EMP:
COLUMN NAME DATATYPE(SIZE)
-----------------------------------------------------------------------------------------------
EMPNO NUMBER(4)CONSTRAINTPK_EMPNO
PRIMARY KEY
ENAME VARCHAR(10) CONSTRAINT UQ_DEPTNO
UNIQUE
JOB VARCHAR(9)
MGR NUMBER(4)
HIREDATE DATE DEFAULT SYSDATE
SAL NUMBER(7,2) CONSTRAINT CK_SAL
CHECK(SAL)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)CONSTRAINTFK_DEPTNO
REFERENCE
13. Select all the constraints in the EMP table
SOL: SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME=‘EMP‘;
14. select the owner, constraints name, constraints type, table name, status for DEPT
table
SOL: SELECT OWNER, CONSTRAINTS_ NAME, CONSTRAINTS_TYPE, TABLE_
NAME, STATUS FROM USER_CONSTRAINTS WHERE
TABLE_NAME=‘DEPT‘;
15. Drop the constraints UQ_FMANE from EMP table
SOL: ALTER TABLE EMP DROP CONSTRAINT UQ_FNAME;
16. Add a new column PINCODE with not null constraints to the existing table
DEPT SOL: ALTER TABLE DEPT ADD(PINCODE NUMBER(6) NOT NULL);
17. Disable the constraints PK_DEPTNO present in the DEPT table
SOL: ALTER TABLE DEPT DISABLE CONSTRAINTS PK_DEPTNO;
18. Enable the constraints PK_DEPTNO which is defined in the DEPTNO column
of DEPT table;
SOL: ALTER TABLE DEPT ENABLE CONSTRAINTS PK_DEPTNO;
19. Insert the given values into the tables:
EMP:
54. Update a record of EMP table and save the changes permanently in the database
SOL: UPDATE EMP SET SAL=SAL+100 WHERE EMPNO=100; COMMIT;
55. Sql * plus has the facility to automatically save all the records without issuing the
TCL command which is that?
SOL: SET AUTOCOMMIT ON
56. Give all the privileges you have of a database object to another
SOL: GRANT ALL ON EMP TO ORA253A;
57. Give only select, insert privileges to another user
SOL: GRANT SELECT, INSERT ON EMP TO ORA267A;
58. List the user’s id and which database object you have granted
SOL: SELECT * FROM USE_TAB_PRIVS;
who have registered for that subject by a teacher. A student is awarded a grade in
each subject taken.
iv. Time Table Preparation - An Engineering College has a number of Branches. Each
Branch has number sections, a number of courses and a number of faculty members
teaching the courses. Each branch has a number of class rooms and laboratories. Each
course may be scheduled in a class room at a particular time.
Exercise 2: Design and build Relational Data Model for each of the application scenarios of
exercise 1 specifying all possible constraints. Extend the same for a database application of
students' choice.
Exercise 3 To understand and demonstrate DDL, DML and DCL Commands of
SQL a. Create a table called EMP with the following structure and describe it.
Name Type
-----------------------------------------------------
EMPNO NUMBER (6)
ENAME VARCHAR (20)
DOB DATE
JOB VARCHAR (10)
DEPTNO NUMBER (2)
SAL NUMBER (7,2)
Allow NULL for all columns except ENAME and JOB. EMPNO is the Primary Key
b. Add a column EXPERIENCE of type NUMERIC to the EMP table. Allow NULL to it.
c. Modify the column width of the JOB field of EMP table.
d. Create DEPT table with the following structure and describe it
Name Type
-----------------------------------------------------
DEPTNO NUMBER (2)
DNAME VARCHAR (15)
LOCN VARCHAR (10)
DEPTNO is the Primary Key and DNAME cannot be NULL
e. Add constraint to check the SAL value of EMP Table. SAL must be > 6000.
f. Drop a column EXPERIENCE from the EMP table.
g. Insert a single record into DEPT table. Repeat this for inserting at least 3 records
h. Insert more than a record into EMP table using a single insert command. Insert at least
10 records
i. Update the EMP table to set the salary of all employees to Rs. 30000/- for a given
JOB type
j. Create a pseudo table EMPLOYEE with the same structure as the table EMP
using SELECT clause.
k. Delete employees from EMP table for a given JOB type. Delete the first five records
of EMP table
l. Grant all/some privileges of EMP table to DEPT table
m. Revoke some/all privileges of EMP table from DEPT table
n. Truncate the EMP table and drop the DEPT table
o. Demonstrate the use of COMMIT, SAVEPOINT and ROLLBACK commands