Professional Documents
Culture Documents
What is database?
ANSWER:
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.
QUESTION 2:
What is DBMS?
ANSWER:
? Redundancy is controlled.
? Unauthorised access is restricted.
? Providing multiple user interfaces.
? Enforcing integrity constraints.
? Providing backup and recovery.
QUESTION 4:
What is a Database system?
ANSWER:
The database and DBMS software together is called as Database system.
QUESTION 5:
Disadvantage in File Processing System?
ANSWER:
? Data redundancy & inconsistency.
? Difficult in accessing data.
? Data isolation.
? Data integrity.
? Concurrent access is not possible.
? Security Problems. .
QUESTION 6:
Describe the three levels of data abstraction?
ANSWER:
The are three levels of abstraction:
? Physical level: The lowest level of abstraction describes how data are stored.
? Logical level: The next higher level of abstraction, describes what data are stored in
database and what relationship among those data.
? View level: The highest level of abstraction describes only part of entire database.
QUESTION 7:
Define the "integrity rules"
ANSWER:
There are two Integrity rules.
? Entity Integrity: States that ?Primary key cannot have NULL value?
? Referential Integrity: States that ?Foreign Key can be either a NULL value or should be
Primary Key value of other relation.
QUESTION 8:
What is extension and intension?
ANSWER:
Extension -It is the number of tuples present in a table at any instance. This is time
dependent.
Intension - It is a constant value that gives the name, structure of table and the constraints
laid on it.
QUESTION 9:
What is System R? What are its two major subsystems?
ANSWER:
System R was designed and developed over a period of 1974-79 at IBM San Jose
Research Center . It is a prototype and its purpose was to demonstrate that it is possible to
build a Relational System that can be used in a real life environment to solve real life
problems, with performance at least comparable to that of existing system.
? Research Storage
QUESTION 10:
How is the data structure of System R different from the relational structure?
ANSWER:
Unlike Relational systems in System R
QUESTION 11:
What is Data Independence?
ANSWER:
Data independence means that ?the application is independent of the storage structure and
access strategy of data?. In other words, The ability to modify the schema definition in
one level should not affect the schema definition in the next higher level.
QUESTION 12:
What is a view? How it is related to data independence?
ANSWER:
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. .
QUESTION 13:
What is Data Model?
ANSWER:
A collection of conceptual tools for describing data, data relationships data semantics and
constraints.
QUESTION 14:
What is E-R model?
ANSWER:
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.
QUESTION 15:
What is Object Oriented model?
ANSWER:
This model is based on collection of objects. An object contains values stored in instance
variables with in 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.
QUESTION 16:
What is an Entity?
ANSWER:
It is a 'thing' in the real world with an independent existence.
QUESTION 17:
What is an Entity type?
ANSWER:
It is a collection (set) of entities that have same attributes.
QUESTION 18:
What is an Entity set?
ANSWER:
It is a collection of all entities of particular entity type in the database.
QUESTION 19:
What is an Extension of entity type?
ANSWER:
The collections of entities of a particular entity type are grouped together into an entity
set.
QUESTION 20:
What is Weak Entity set?
ANSWER:
An entity set may not have sufficient attributes to form a primary key, and its primary
key compromises of its partial key and primary key of its parent entity, then it is said to
be Weak Entity set.
QUESTION 21:
What is an attribute?
ANSWER:
It is a particular property, which describes the entity.
QUESTION 22:
What is a Relation Schema and a Relation?
ANSWER:
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).
QUESTION 23:
What is degree of a Relation?
ANSWER:
It is the number of attribute of its relation schema.
QUESTION 24:
What is Relationship?
ANSWER:
It is an association among two or more entities.
QUESTION 25:
What is Relationship set?
ANSWER:
The collection (or set) of similar relationships.
QUESTION 26:
What is Relationship type?
ANSWER:
Relationship type defines a set of associations or a relationship set among a given set of
entity types.
QUESTION 27:
What is degree of Relationship type?
ANSWER:
It is the number of entity type participating.
QUESTION 28:
What is Data Storage - Definition Language?
ANSWER:
The storage structures and access methods used by database system are specified by a set
of definition in a special type of DDL called data storage-definition language.
QUESTION 29:
What is DML (Data Manipulation Language)?
ANSWER:
This language that enable user to access or manipulate data as organised by appropriate
data model.
? Procedural DML or Low level: DML requires a user to specify what data are needed
and how to get those data.
? Non-Procedural DML or High level: DML requires a user to specify what data are
needed without specifying how to get those data.
QUESTION 30:
What is VDL (View Definition Language)?
ANSWER:
It specifies user views and their mappings to the conceptual schema.
QUESTION 31:
What is DML Compiler?
ANSWER:
It translates DML statements in a query language into low-level instruction that the query
evaluation engine can understand.
QUESTION 32:
What is Query evaluation engine?
ANSWER:
It executes low-level instruction generated by compiler.
QUESTION 33:
What is DDL Interpreter?
ANSWER:
It interprets DDL statements and record them in tables containing metadata.
QUESTION 34:
What is Record-at-a-time?
ANSWER:
The Low level or Procedural DML can specify and retrieve each record from a set of
records. This retrieve of a record is said to be Record-at-a-time.
QUESTION 35:
What is Set-at-a-time or Set-oriented?
ANSWER:
The High level or Non-procedural DML can specify and retrieve many records in a single
DML statement. This retrieve of a record is said to be Set-at-a-time or Set-oriented.
QUESTION 36:
What is Relational Algebra?
ANSWER:
It is procedural query language. It consists of a set of operations that take one or two
relations as input and produce a new relation.
QUESTION 37:
What is Relational Calculus?
ANSWER:
It is an applied predicate calculus specifically tailored for relational databases proposed
by E.F. Codd. E.g. of languages based on it are DSL ALPHA, QUEL.
QUESTION 38:
How does Tuple-oriented relational calculus differ from domain-oriented relational
calculus
ANSWER:
The tuple-oriented calculus uses a tuple variables i.e., variable whose only permitted
values are tuples of that relation. E.g. QUEL
The domain-oriented calculus has domain variables i.e., variables that range over the
underlying domains instead of over relation. E.g. ILL, DEDUCE.
QUESTION 39:
What is normalization?
ANSWER:
It is a process of analysing the given relation schemas based on their Functional
Dependencies (FDs) and primary key to achieve the properties
? Minimizing redundancy
QUESTION 40:
What is Functional Dependency?
ANSWER:
A Functional dependency is denoted by X Y between two sets of attributes X and Y that
are subsets of R specifies a constraint on the possible tuple that can form a relation state r
of R. The constraint is for any two tuples t1 and t2 in r if t1[X] = t2[X] then they have
t1[Y] = t2[Y]. This means the value of X component of a tuple uniquely determines the
value of component Y.
QUESTION 41:
When is a functional dependency F said to be minimal?
ANSWER:
? Every dependency in F has a single attribute for its right hand side.
? We cannot remove any dependency from F and still have set of dependency that is
equivalent to F.
QUESTION 42:
What is Multivalued dependency?
ANSWER:
Multivalued dependency denoted by X Y specified on relation schema R, where X and Y
are both subsets of R, specifies the following constraint on any relation r of R: if two
tuples t1 and t2 exist in r such that t1[X] = t2[X] then t3 and t4 should also exist in r with
the following properties
QUESTION 43:
What is Lossless join property?
ANSWER:
It guarantees that the spurious tuple generation does not occur with respect to relation
schemas after decomposition.
QUESTION 44:
What is 1 NF (Normal Form)?
ANSWER:
The domain of attribute must include only atomic (simple, indivisible) values.
QUESTION 45:
What is Fully Functional dependency?
ANSWER:
It is based on concept of full functional dependency. A functional dependency X Y is full
functional dependency if removal of any attribute A from X means that the dependency
does not hold any more.
QUESTION 46:
What is 2NF?
ANSWER:
A relation schema R is in 2NF if it is in 1NF and every non-prime attribute A in R is fully
functionally dependent on primary key.
QUESTION 47:
What is 3NF?
ANSWER:
A relation schema R is in 3NF if it is in 2NF and for every FD X A either of the
following is true
? X is a Super-key of R.
? A is a prime attribute of R.
In other words, if every non prime attribute is non-transitively dependent on primary key.
QUESTION 48:
What is BCNF (Boyce-Codd Normal Form)?
ANSWER:
A relation schema R is in BCNF if it is in 3NF and satisfies an additional constraint that
for every FD X A, X must be a candidate key.
QUESTION 49:
What is 4NF?
ANSWER:
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 a super key.
QUESTION 50:
What is 5NF?
ANSWER:
A Relation schema R is said to be 5NF if for every join dependency {R1, R2, ..., Rn} that
holds R, one the following is true
? Ri = R for some i.
? The join dependency is implied by the set of FD, over R in which the left side is key of
R.
RDBMS Concepts
1. 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.
2. 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. Advantages of DBMS?
? Redundancy is controlled.
? Unauthorised access is restricted.
? Providing multiple user interfaces.
? Enforcing integrity constraints.
? Providing backup and recovery.
10. How is the data structure of System R different from the relational structure?
Unlike Relational systems in System R
? Domains are not supported
? Enforcement of candidate key uniqueness is optional
? Enforcement of entity integrity is optional
? Referential integrity is not enforced
38. How does Tuple-oriented relational calculus differ from domain-oriented relational
calculus
The tuple-oriented calculus uses a tuple variables i.e., variable whose only permitted
values are tuples of that relation. E.g. QUEL
The domain-oriented calculus has domain variables i.e., variables that range over the
underlying domains instead of over relation. E.g. ILL, DEDUCE.
52. What are partial, alternate,, artificial, compound and natural key?
Partial Key:
It is a set of attributes that can uniquely identify weak entities and that are related to same
owner entity. It is sometime called as Discriminator.
Alternate Key:
All Candidate Keys excluding the Primary Key are known as Alternate Keys.
Artificial Key:
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.
Compound Key:
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.
Natural Key:
When one of the data elements stored within a construct is utilized as the primary key,
then it is called the natural key.
53. What is indexing and what are the different kinds of indexing?
Indexing is a technique for determining how quickly specific data can be found.
Types:
? Binary search style indexing
? B-Tree indexing
? Inverted list indexing
? Memory resident table
? Table indexing
54. 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.
67. What are the primitive operations common to all record management systems?
Addition, deletion and modification.
68. Name the buffer in which all the commands that are typed in are stored
‘Edit’ Buffer
70. Are the resulting relations of PRODUCT and JOIN operation the same?
No.
PRODUCT: Concatenation of every row in one relation with every row in another.
JOIN: Concatenation of rows from one relation and related rows from another.
73. 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.
77. 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.
78. 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.
80. 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).
81. 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
Control Files
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 redo 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.
83. 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.
85. 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 Export and 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 recover the database to the time when the export was last
performed.
86. 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.
87. How are exceptions handled in PL/SQL? Give some of the internal exceptions' name
PL/SQL exception handling is a mechanism for dealing with run-time errors encountered
during procedure execution. Use of this mechanism enables execution to continue if the
error is not severe enough to cause procedure termination.
The exception handler must be defined within a subprogram specification. Errors cause
the program to raise an exception with a transfer of control to the exception-handler
block. After the exception handler executes, control returns to the block in which the
handler was defined. If there are no more executable statements in the block, control
returns to the caller.
User-Defined Exceptions
PL/SQL enables the user to define exception handlers in the declarations area of
subprogram specifications. User accomplishes this by naming an exception as in the
following example:
ot_failure EXCEPTION;
In this case, the exception name is ot_failure. Code associated with this handler is written
in the EXCEPTION specification area as follows:
EXCEPTION
when OT_FAILURE then
out_status_code := g_out_status_code;
out_msg := g_out_msg;
The following is an example of a subprogram exception:
EXCEPTION
when NO_DATA_FOUND then
g_out_status_code := 'FAIL';
RAISE ot_failure;
Within this exception is the RAISE statement that transfers control back to the ot_failure
exception handler. This technique of raising the exception is used to invoke all user-
defined exceptions.
System-Defined Exceptions
Exceptions internal to PL/SQL are raised automatically upon error. NO_DATA_FOUND
is a system-defined exception. Table below gives a complete list of internal exceptions.
Exception Name
Oracle Error
CURSOR_ALREADY_OPEN ORA-06511
DUP_VAL_ON_INDEX ORA-00001
INVALID_CURSOR ORA-01001
INVALID_NUMBER ORA-01722
LOGIN_DENIED ORA-01017
NO_DATA_FOUND ORA-01403
NOT_LOGGED_ON ORA-01012
PROGRAM_ERROR ORA-06501
STORAGE_ERROR ORA-06500
TIMEOUT_ON_RESOURCE ORA-00051
TOO_MANY_ROWS ORA-01422
TRANSACTION_BACKED_OUT ORA-00061
VALUE_ERROR ORA-06502
ZERO_DIVIDE ORA-01476
In addition to this list of exceptions, there is a catch-all exception named OTHERS that
traps all errors for which specific error handling has not been established.
(a) i & iii because theta joins are joins made on keys that are not primary keys.
94. Select 'NORTH', CUSTOMER From CUST_DTLS Where REGION = 'N' Order By
CUSTOMER Union Select 'EAST', CUSTOMER From CUST_DTLS Where REGION =
'E' Order By CUSTOMER
The above is
a) Not an error
b) Error - the string in single quotes 'NORTH' and 'SOUTH'
c) Error - the string should be in double quotes
d) Error - ORDER BY clause
(d) Error - the ORDER BY clause. Since ORDER BY clause cannot be used in UNIONS
103. What are Armstrong rules? How do we say that they are complete and/or sound
The well-known inference rules for FDs
? Reflexive rule :
If Y is subset or equal to X then X Y.
? Augmentation rule:
If X Y then XZ YZ.
? Transitive rule:
If {X Y, Y Z} then X Z.
? Decomposition rule :
If X YZ then X Y.
? Union or Additive rule:
If {X Y, X Z} then X YZ.
? Pseudo Transitive rule :
If {X Y, WY Z} then WX Z.
Of these the first three are known as Amstrong Rules. They are sound because it is
enough if a set of FDs satisfy these three. They are called complete because using these
three rules we can generate the rest all inference rules.
104. 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+
inner select passes to the where criteria for the outer select.
Group by controls the presentation of the rows, order by controls the presentation of
the columns for the results of the
SELECT statement.
What keyword does an SQL SELECT statement use for a string search?
The LIKE keyword allows for string searches. The % sign is used as a wildcard.
The common aggregate, built-in functions are AVG, SUM, MIN, MAX, COUNT and
DISTINCT.
SUBSTR is used for string manipulation with column name, first position and string
length used as arguments. E.g.
SUBSTR (NAME, 1 3) refers to the first three characters in the column NAME.
The explain statement provides information about the optimizer's choice of access
path of the SQL.
A NULL value takes up one byte of storage and indicates that a value is not present
as opposed to a space or zero
value. It's the DB2 equivalent of TBD on an organizational chart and often
correctly portrays a business situation.
A synonym is used to reference a table or view by another name. The other name
can then be written in the
application code pointing to test tables in the development stage and to
production entities when the code is migrated.
qualifier of a table or view. The alias is not dropped when the table is dropped.
When can an insert of a new primary key value threaten referential
integrity?
Never. New primary key values are not a problem. However, the values of foreign
key inserts must have
Static SQL is hard-coded in a program when the programmer knows the statements
to be executed. For dynamic SQL
the program must dynamically allocate memory to receive the query results.
Compare a subselect to a join?
Any subselect can be rewritten as a join, but not vice versa. Joins are usually more
efficient as join rows can be
select.
If there is an index on the attributes tested an IN is more efficient since DB2 uses
the index for the IN. (IN for index is
the mnemonic).
A Cartesian product results from a faulty query. It is a row in the results for every
combination in the join tables.
What is a tuple?
A). NUMERIC
B). CHARACTER
A,B,C. Not all SQL implementations have a BLOB or a BIT data types.
We have a table with a CHARACTER data type field. We apply a ">" row
comparison between this field and
another CHARACTER field in another table. What will be the results for
records with field value of NULL?
TRUE
B. FALSE
C. UNKNOWN
D. Error.
obtain the third normal form? (Check one that applies the best)
We have a table with multi-valued key. All columns that are dependent on only
one or on some of the keys should be moved in a different table.
If a table has columns not dependent on the primary keys, they need to be
moved in a separate table.
E. Primary key is always UNIQUE and NOT NULL.
D. All columns in a table should be dependent on the primary key. This will eliminate
transitive dependencies in
which A depends on B, and B depends on C, but we're not sure how C depends
on A.
and the last three defines the subclass of the error. Which of the
following SQLSTATE codes is interpreted as
A). 00xxx
B). 01xxx
C). 02xxx
D). 22xxx
E). 2Axxx
Dynamic SQL are SQL statements that are prepared and executed within a program
while the program is executing.
The SQL source is contained in host variables rather than being hard coded into
the program. The SQL statement may
They are SQL statements that are embedded with in application program and are
prepared during the program
preparation process before the program is executed. After it is prepared, the
statement itself does not change(although
Check out the article Q100139 from Microsoft knowledge base and of course, there's
much more information available in the net. It'll be a good idea to get a hold of any
RDBMS fundamentals text book, especially the one by C. J. Date. Most of the times, it
will be okay if you can explain till third normal form.
One-to-One relationship can be implemented as a single table and rarely as two tables
with primary and foreign key relationships. One-to-Many relationships are implemented
by splitting the data into two tables with primary key and foreign key relationships.
Many-to-Many relationships are implemented using a junction table with the keys from
both the tables forming the composite primary key of the junction table.
Both primary key and unique enforce uniqueness of the column on which they are
defined. But by default primary key creates a clustered index on the column, where are
unique creates a nonclustered index by default. Another major difference is that, primary
key doesn't allow NULLs, but unique key allows one NULL only.
What are user defined datatypes and when you should go for them?
User defined datatypes let you extend the base SQL Server datatypes by providing a
descriptive name, and format to the database. Take for example, in your database, there is
a column called Flight_Num which appears in many tables. In all these tables it should be
varchar(8). In this case you could create a user defined datatype called Flight_num_type
of varchar(8) and use it across all your tables.
See sp_addtype, sp_droptype in books online.
What is bit datatype and what's the information that can be stored inside a bit
column?
Bit datatype is used to store Boolean information like 1 or 0 (true or false). Until SQL
Server 6.5 bit datatype could hold either a 1 or 0 and there was no support for NULL. But
from SQL Server 7.0 onwards, bit datatype can represent a third state, which is NULL.
A candidate key is one that can identify each row of a table uniquely. Generally a
candidate key becomes the primary key of the table. If the table has more than one
candidate key, one of them will become the primary key, and the rest are called alternate
keys.
A key formed by combining at least two or more columns is called composite key.
A default is a value that will be used by a column, if no value is supplied to that column
while inserting data. IDENTITY columns and timestamp columns can't have defaults
bound to them. See CREATE DEFUALT in books online.
A transaction is a logical unit of work in which, all the steps must be performed or none.
ACID stands for Atomicity, Consistency, Isolation, Durability. These are the properties
of a transaction. For more information and explanation of these properties, see SQL
Server books online or any RDBMS fundamentals text book.
What type of Index will get created after executing the above statement?
Non-clustered index. Important thing to note: By default a clustered index gets created on
the primary key, unless specified otherwise.
8060 bytes. Don't be surprised with questions like 'what is the maximum number of
columns per table'. Check out SQL Server books online for the page titled: "Maximum
Capacity Specifications".
This is a very important question and you better be able to answer it if consider yourself a
DBA. SQL Server books online is the best place to read about SQL Server architecture.
Read up the chapter dedicated to SQL Server Architecture.
Lock escalation is the process of converting a lot of low level locks (like row locks, page
locks) into higher level locks (like table locks). Every lock is a memory structure too
many locks would mean, more memory being occupied by locks. To prevent this from
happening, SQL Server escalates the many fine-grain locks to fewer coarse-grain locks.
Lock escalation threshold was definable in SQL Server 6.5, but from SQL Server 7.0
onwards it's dynamically managed by SQL Server.
DELETE TABLE is a logged operation, so the deletion of each row gets logged in the
transaction log, which makes it slow. TRUNCATE TABLE also deletes all the rows in a
table, but it won't log the deletion of each row, instead it logs the deallocation of the data
pages of the table, which makes it faster. Of course, TRUNCATE TABLE can be rolled
back.
What are the new features introduced in SQL Server 2000 (or the latest release of SQL
Server at the time of your interview)? What changed between the previous version of
SQL Server and the current version?
This question is generally asked to see how current is your knowledge. Generally there is
a section in the beginning of the books online titled "What's New", which has all such
information. Of course, reading just that is not enough, you should have tried those things
to better answer the questions. Also check out the section titled "Backward
Compatibility" in books online which talks about the changes that have taken place in the
new version.
Constraints enable the RDBMS enforce the integrity of the database automatically,
without needing you to create triggers, rule or defaults.
For an explanation of these constraints see books online for the pages titled:
"Constraints" and "CREATE TABLE", "ALTER TABLE"
Whar is an index? What are the types of indexes? How many clustered indexes can
be created on a table? I create a separate index on each column of a table. what are
the advantages and disadvantages of this approach?
Indexes in SQL Server are similar to the indexes in books. They help SQL Server retrieve
the data quicker.
Indexes are of two types. Clustered indexes and non-clustered indexes. When you craete
a clustered index on a table, all the rows in the table are stored in the order of the
clustered index key. So, there can be only one clustered index per table. Non-clustered
indexes have their own storage separate from the table data storage. Non-clustered
indexes are stored as B-tree structures (so do clustered indexes), with the leaf level nodes
having the index key and it's row locater. The row located could be the RID or the
Clustered index key, depending up on the absence or presence of clustered index on the
table.
If you create an index on each column of a table, it improves the query performance, as
the query optimizer can choose from all the existing indexes to come up with an efficient
execution plan. At the same t ime, data modification operations (such as INSERT,
UPDATE, DELETE) will become slow, as every time data changes in the table, all the
indexes need to be updated. Another disadvantage is that, indexes need disk space, the
more indexes you have, more disk space is used.
RAID stands for Redundant Array of Inexpensive Disks, used to provide fault tolerance
to database servers. There are six RAID levels 0 through 5 offering different levels of
performance, fault tolerance. MSDN has some information about RAID levels and for
detailed information, check out the RAID advisory board's homepage
What are the steps you will take to improve performance of a poor performing
query?
This is a very open ended question and there could be a lot of reasons behind the poor
performance of a query. But some general issues that you could talk about would be: No
indexes, table scans, missing or out of date statistics, blocking, excess recompilations of
stored procedures, procedures and triggers without SET NOCOUNT ON, poorly written
query with unnecessarily complicated joins, too much normalization, excess usage of
cursors and temporary tables.
Some of the tools/ways that help you troubleshooting performance problems are: SET
SHOWPLAN_ALL ON, SET SHOWPLAN_TEXT ON, SET STATISTICS IO ON,
SQL Server Profiler, Windows NT /2000 Performance monitor, Graphical execution plan
in Query Analyzer.
Download the white paper on performance tuning SQL Server from Microsoft web site.
Don't forget to check out sql-server-performance.com
What are the steps you will take, if you are tasked with securing an SQL Server?
Again this is another open ended question. Here are some things you could talk about:
Preferring NT authentication, using server, database and application roles to control
access to the data, securing the physical database files using NTFS permissions, using an
unguessable SA password, restricting physical access to the SQL Server, renaming the
Administrator account on the SQL Server computer, disabling the Guest account,
enabling auditing, using multiprotocol encryption, setting up SSL, setting up firewalls,
isolating SQL Server from the web server etc.
Read the white paper on SQL Server security from Microsoft website. Also check out My
SQL Server security best practices
What is a deadlock and what is a live lock? How will you go about resolving
deadlocks?
Deadlock is a situation when two processes, each having a lock on one piece of data,
attempt to acquire a lock on the other's piece. Each process would wait indefinitely for
the other to release the lock, unless one of the user processes is terminated. SQL Server
detects deadlocks and terminates one user's process.
A livelock is one, where a request for an exclusive lock is repeatedly denied because a
series of overlapping shared locks keeps interfering. SQL Server detects the situation
after four denials and refuses further shared locks. A livelock also occurs when read
transactions monopolize a table or page, forcing a write transaction to wait indefinitely.
Blocking happens when one connection from an application holds a lock and a second
connection requires a conflicting lock type. This forces the second connection to wait,
blocked on the first.
Read up the following topics in SQL Server books online: Understanding and avoiding
blocking, Coding efficient transactions.
Many of us are used to craeting databases from the Enterprise Manager or by just issuing
the command: CREATE DATABAE MyDB. But what if you have to create a database
with two filegroups, one on drive C and the
other on drive D with log on drive E with an initial size of 600 MB and with a growth
factor of 15%? That's why being a DBA you should be familiar with the CREATE
DATABASE syntax. Check out SQL Server books
online for more information.
How to restart SQL Server in single user mode? How to start SQL Server in
minimal configuration mode?
SQL Server can be started from command line, using the SQLSERVR.EXE. This EXE
has some very important parameters with which a DBA should be familiar with. -m is
used for starting SQL Server in single user mode
and -f is used to start the SQL Server in minimal confuguration mode. Check out SQL
Server books online for more parameters and their explanations.
As a part of your job, what are the DBCC commands that you commonly use for
database maintenance?
What are statistics, under what circumstances they go out of date, how do you
update them?
Statistics determine the selectivity of the indexes. If an indexed column has unique values
then the selectivity of that index is more, as opposed to an index with non-unique values.
Query optimizer uses these indexes in determining whether to choose an index or not
while executing a query.
Look up SQL Server books online for the following commands: UPDATE
STATISTICS, STATS_DATE, DBCC SHOW_STATISTICS, CREATE STATISTICS,
DROP
STATISTICS, sp_autostats, sp_createstats, sp_updatestats
What are the different ways of moving data/databases between servers and
databases in SQL Server?
There are lots of options available, you have to choose your option depending upon your
requirements. Some of the options you have are: BACKUP/RESTORE, dettaching and
attaching databases, replication, DTS, BCP, logshipping, INSERT...SELECT,
SELECT...INTO, creating INSERT scripts to generate data.
Types of backups you can create in SQL Sever 7.0+ are Full database backup, differential
database backup, transaction log backup, filegroup backup. Check out the BACKUP and
RESTORE commands in SQL Server books online. Be prepared to write the commands
in your interview. Books online also has information on detailed backup/restore
architecture and when one should go for a particular kind of backup.
What is database replicaion? What are the different types of replication you can set
up in SQL Server?
* Snapshot replication
* Transactional replication (with immediate updating subscribers, with queued
updating subscribers)
* Merge replication
See SQL Server books online for indepth coverage on replication. Be prepared to explain
how different replication agents function, what are the main system tables used in
replication etc.
The global variable @@Version stores the build number of the sqlservr.exe, which is
used to determine the service pack installed. To know more about this process visit SQL
Server service packs and versions.
What are cursors? Explain different types of cursors. What are the disadvantages of
cursors? How can you avoid cursors?
Types of cursors: Static, Dynamic, Forward-only, Keyset-driven. See books online for
more information.
Disadvantages of cursors: Each time you fetch a row from the cursor, it results in a
network roundtrip, where as a normal SELECT query makes only one rowundtrip,
however large the resultset is. Cursors are also costly because they require more
resources and temporary storage (results in more IO operations). Furthere, there are
restrictions on the SELECT statements that can be used with some types of cursors.
Most of the times, set based operations can be used instead of cursors. Here is an
example:
If you have to give a flat hike to your employees using the following criteria:
Salary between 30000 and 40000 -- 5000 hike
Salary between 40000 and 55000 -- 7000 hike
Salary between 55000 and 65000 -- 9000 hike
In this situation many developers tend to use a cursor, determine each employee's salary
and update his salary according to the above formula. But the same can be achieved by
multiple update statements or can be combined in a single UPDATE statement as shown
below:
Another situation in which developers tend to use cursors: You need to call a stored
procedure when a column in a particular row meets certain condition. You don't have to
use cursors for this. This can be achieved using WHILE loop, as long as there is a unique
key to identify each row. For examples of using WHILE loop for row by row processing,
check out the 'My code library' section of my site or search for WHILE.
Write down the general syntax for a SELECT statements covering all the options.
Here's the basic syntax: (Also checkout SELECT in books online for advanced syntax).
SELECT select_list
[INTO new_table_]
FROM table_source
[WHERE search_condition]
[GROUP BY group_by__expression]
[HAVING search_condition]
[ORDER BY order__expression [ASC | DESC] ]
What is a join and explain different types of joins?
Joins are used in queries to explain how different tables are related. Joins also let you
select data from a table depending upon data from another table.
Types of joins: INNER JOINs, OUTER JOINs, CROSS JOINs. OUTER JOINs are
further classified as LEFT OUTER JOINS, RIGHT OUTER JOINS and FULL OUTER
JOINS.
For more information see pages from books online titled: "Join Fundamentals" and
"Using Joins".
Yes, very much. Check out BEGIN TRAN, COMMIT, ROLLBACK, SAVE TRAN and
@@TRANCOUNT
What is an extended stored procedure? Can you instantiate a COM object by using
T-SQL?
Yes, you can instantiate a COM (written in languages like VB, VC++) object from T-
SQL by using sp_OACreate stored procedure. Also see books online for sp_OAMethod,
sp_OAGetProperty, sp_OASetProperty, sp_OADestroy. For an example of creating a
COM object in VB and calling it from T-SQL, see 'My code library' section of this site.
What is the system function to get the current user's user id?
What are triggers? How many triggers you can have on a table? How to invoke a
trigger on demand?
Triggers are special kind of stored procedures that get executed automatically when an
INSERT, UPDATE or DELETE operation takes place on a table.
In SQL Server 6.5 you could define only 3 triggers per table, one for INSERT, one for
UPDATE and one for DELETE. From SQL Server 7.0 onwards, this restriction is gone,
and you could create multiple triggers per each action. But in 7.0 there's no way to
control the order in which the triggers fire. In SQL Server 2000 you could specify which
trigger fires first or fires last using sp_settriggerorder
Triggers can't be invoked on demand. They get triggered only when an associated action
(INSERT, UPDATE, DELETE) happens on the table on which they are defined.
Triggers are generally used to implement business rules, auditing. Triggers can also be
used to extend the referential integrity checks, but wherever possible, use constraints for
this purpose, instead of triggers, as constraints are much faster.
Till SQL Server 7.0, triggers fire only after the data modification operation happens. So
in a way, they are called post triggers. But in SQL Server 2000 you could create pre
triggers also. Search SQL Server 2000 books online for INSTEAD OF triggers.
Also check out books online for 'inserted table', 'deleted table' and
COLUMNS_UPDATED()
There is a trigger defined for INSERT operations on a table, in an OLTP system. The
trigger is written to instantiate a COM object and pass the newly insterted rows to it for
some custom processing. What do you think of this implementation? Can this be
implemented better?
Instantiating COM objects is a time consuming process and since you are doing it from
within a trigger, it slows down the data insertion process. Same is the case with sending
emails from triggers. This scenario can be better implemented by logging all the
necessary data into a separate table, and have a job which periodically checks this table
and does the needful.
Sponsored Links
Self join is just like any other join, except that two instances of the same table will be
joined in the query. Here is an example: Employees table which contains rows for normal
employees as well as managers. So, to find out the managers of all the employees, you
need a self join.
Here's an advanced query using a LEFT OUTER JOIN that even returns the employees
without managers (super bosses)