Lab Programs Dbms

download Lab Programs Dbms

of 45

Transcript of Lab Programs Dbms

  • 7/29/2019 Lab Programs Dbms

    1/45

    1. INSURANCE DATABASE

    Consider the Insurance Database given below. The primary keys are underlined and the data types

    are specified.

    PERSON(driver_id# : string, name : string, address : string)

    CAR(regno : string, model : string, year : int)ACCIDENT(report_number : int, acc_date : date, location : string)

    OWNS(driver_id# : string, regno : string)

    PARTICIPATED(driver_id# : string, regno : string, report_number : int, damage_amount :number(10,2) )

    (i) Create the above tables by properly specified the primary key and the foreign key(ii) Enter at least five tuples for each relation(iii) Demonstrate how you can

    a. Update the damage amount for the car with a specific regno, the accident withreport number 12 to 25000.

    b. Add a new accident to the database.(iv) Find the total number of people who owned cars that were involved in accident in

    2002.

    (v) Find the number of accident in which cars belonging to a specific models wereinvolved.

    ER Diagram of Insurance Database

    I) Create the above tables by properly specified the primary key and the foreign key

    SQL>CREATE TABLE PERSON(D_ID VARCHAR(12),NAME VARCHAR(12),ADDRESS VARCHAR(33),PRIMARY(D_ID));

    Table created.

    SQL>CREATE TABLE CAR(REGNO VARCHAR(12),

  • 7/29/2019 Lab Programs Dbms

    2/45

    MODEL VARCHAR(12),YEAR INTEGER,PRIMARY KEY(REGNO));

    Table created.

    SQL>CREATE TABLE ACCIDENT(REPORTNO INTEGER,DATE1 DATE,LOCATION VARCHAR(12),PRIMARY KEY(REPORTNO));

    Table created.

    SQL>CREATE TABLE OWNS(D_ID VARCHAR(12) REFERENCES PERSON(D_ID),REGNO VARCHAR(12)REFERENCES CAR(REGNO),PRIMARY KEY(REGNO,D_ID));

    Table created.

    SQL>CREATE TABLE PARTICIPATED(D_ID VARCHAR(12) REFERENCES PERSON(D_ID),REGNO VARCHAR(12)REFERENCES CAR(REGNO),REPORTNO INTEGER REFERENCES ACCIDENT(REPORTNO),DAMAGEDAMOUNT INTEGER,PRIMARY KEY(D_ID,REGNO,REPORTNO));

    Table created.

    ii) Enter at least five tuples for each relationSQL> insert into PERSON values('a11','abc','bangalore');

    1 row created.

    SQL> insert into PERSON values('a22','efg','mangalore');

    1 row created.

    SQL> insert into PERSON values('a33','lmn','mysore');

    1 row created.

    SQL> insert into PERSON values('a44','opq','shimoga');

    1 row created.

    SQL> insert into PERSON values('a55','rst','dharwad');

  • 7/29/2019 Lab Programs Dbms

    3/45

    1 row created.

    SQL>SELECT * FROM PERSON;

    D_ID NAME ADDRESS------------ ------------ ---------------------------------a11 abc bangalorea22 efg mangalorea33 lmn mysorea44 opq shimogaa55 rst dharwad

    SQL> insert into CAR values('ka02e1235','zen','1986');

    1 row created.

    SQL>INSERT into CAR values('ka02e1231','alto','1987');

    1 row created.

    SQL>INSERT into CAR values('ka02e1222','zen','1988');

    1 row created.

    SQL>INSERT into CAR values('ka02e1232','zen','1989');

    1 row created.

    SQL>INSERT into CAR values('ka02e1233','alto','1999');

    1 row created.

    SQL> SELECT * FROM CAR;

    REGNO MODEL YEAR------------ ------------ ----------ka02e1235 zen 1986ka02e1231 alto 1987ka02e1222 zen 1988ka02e1232 zen 1989ka02e1233 alto 1999

    SQL> insert into ACCIDENT values('11','02/jan/2001','bangalore');

    1 row created.

    SQL>INSERT into ACCIDENT values('12','03/feb/2002','bangalore');

    1 row created.

    SQL>INSERT into ACCIDENT values('13','03/oct/2001','bangalore');

  • 7/29/2019 Lab Programs Dbms

    4/45

    1 row created.

    SQL>INSERT into ACCIDENT values('14','12/sep/2002','bangalore');

    1 row created.

    SQL>INSERT into ACCIDENT values('15','09/sep/2002','bangalore');

    1 row created.

    SQL>SELECT * FROM ACCIDENT;

    REPORTNO DATE1 LOCATION---------- --------- ------------

    11 02-JAN-01 bangalore12 03-FEB-02 bangalore13 03-OCT-01 bangalore

    14 12-SEP-02 bangalore15 09-SEP-02 bangalore

    SQL> insert into OWNS values('a11','ka02e1235');

    1 row created.

    SQL>INSERT into OWNS values('a22','ka02e1231');

    1 row created.

    SQL>INSERT into OWNS values('a33','ka02e1222');

    1 row created.

    SQL>INSERT into OWNS values('a44','ka02e1233');

    1 row created.SQL>INSERT into OWNS values('a55','ka02e1233');

    1 row created.

    SQL>SELECT * FROM OWNS;

    D_ID REGNO------------ ------------a33 ka02e1222a22 ka02e1231a44 ka02e1233a55 ka02e1233a11 ka02e1235

  • 7/29/2019 Lab Programs Dbms

    5/45

    SQL> insert into PARTICIPATED values('a22','ka02e1231','12','2000');

    1 row created.SQL>INSERT into PARTICIPATED values('a33','ka02e1222','13','3000');

    1 row created.

    SQL>INSERT into PARTICIPATED values('a44','ka02e1233','14','4000');

    1 row created.

    SQL>INSERT into PARTICIPATED values('a55','ka02e1233','15','5000');

    1 row created.SQL> insert into PARTICIPATED values('a11','ka02e1235','11','1000');

    1 row created.

    SQL>SELECT * FROM PARTICIPATED;

    D_ID REGNO REPORTNO DAMAGEDAMOUNT------------ ------------ ---------- -------------a22 ka02e1231 12 2000a33 ka02e1222 13 3000a44 ka02e1233 14 4000a55 ka02e1233 15 5000a11 ka02e1235 11 1000

    (iii) Demonstrate how you cana. Update the damage amount for the car with a specific regno, the accident with report

    number 12 to 25000.

    b. Add a new accident to the database.SQL>UPDATE PARTICIPATEDSET damagedamount='25000'WHERE (reportno='12' and regno='ka02e1231');

    1 row updated.

    SQL> SELECT * FROM PARTICIPATED;

    D_ID REGNO REPORTNO DAMAGEDAMOUNT

    ------------ ------------ ---------- -------------a22 ka02e1231 12 25000a33 ka02e1222 13 3000a44 ka02e1233 14 4000a55 ka02e1233 15 5000a11 ka02e1235 11 1000

    SQL>INSERT INTO ACCIDENT VALUES('33','01/sep/2002','bangalore');

    1 row created.

  • 7/29/2019 Lab Programs Dbms

    6/45

    (iv) Find the total number of people who owned cars that were involved in accident in 2002.

    SQL>SELECT count(*)

    FROM accident a , participated p ,person peWHERE ((p.reportno=a.reportno) and (p.d_id=pe.d_id)and ( date1 like '%02'));

    COUNT(*)----------

    3

    (v) Find the number of accident in which cars belonging to a specific models wereinvolved.

    SQL>

    SELECT car.model,count(*)FROM car,accident,participatedWHERE ((accident.reportno=participated.reportno)

    and (participated.regno=car.regno))GROUP BY car.model;

    MODEL COUNT(*)------------ ----------alto 3zen 2

  • 7/29/2019 Lab Programs Dbms

    7/45

    2.ORDER PROCESSING DATABASE IN A COMPANY----------------------------------------

    Consider the following relations for an order processing database application in a company.

    CUSTOMER(cust# : int , cname : string, city : string)

    ORDER(order# : int, odate : date, cust# : int, ord_amt : int)ORDER_ITEM(order# : int, item# : int, qty : int)

    ITEM(item# : int, unit_price : int)

    SHIPMENT(order# : int, warehouse# : int, qty : int)WAREHOUSE(warehouse# : int, city : string)

    (i) Create the above tables by properly specified the primary key and the foreign key(ii) Enter at least five tuples for each relation(iii) Produce a listing : CUSTNAME, #oforders, AVG_ORDER_AMT, where the

    middle column is the total number of orders by the customer and the last column isthe average order amount for that customer.

    (iv) List the order# for orders that were shipped from allthe warehouses that thecompany has in a specific city.

    (v) Demonstrate how you delete item# 10 from the ITEM table and make that field nullin the ORDER_ITEM table.

    (vi) Generation of suitable reports.(vii) Create suitable front end for querying and displaying the results.

    ER Diagram of Order Processing Database

    (i) Create the above tables by properly specified the primary key and the foreign keySQL>create table CUSTOMERS(CUSTNO INTEGER,CNAME VARCHAR(12),CITY VARCHAR(12),PRIMARY KEY(CUSTNO));

    Table created.

    SQL>CREATE TABLE ORDER2(ORDERNO INTEGER,ODATE DATE,CUSTNO INTEGER references customers(custno),ORD_AMT INTEGER,PRIMARY KEY(ORDERNO));

  • 7/29/2019 Lab Programs Dbms

    8/45

    Table created.

    SQL>CREATE TABLE ITEM(ITEMNO INTEGER,UNITPRICE INTEGER,PRIMARY KEY(ITEMNO));

    Table created.

    SQL>CREATE TABLE ORDER_ITEM(ORDERNO INTEGER references order2(orderno),ITEMNO INTEGER references item(itemno) on delete set null,QTY INTEGER,PRIMARY KEY(ORDERNO));

    Table created.

    SQL>CREATE TABLE WAREHOUSE(WAREHOUSENO INTEGER primary key,CITY VARCHAR(12));

    Table created.

    SQL>CREATE TABLE SHIPMENT(ORDERNO INTEGER references order2(orderno),WAREHOUSENO INTEGER references warehouse(warehouseno),SHIP_DATE DATE,PRIMARY KEY(ORDERNO));

    Table created.

    (ii) Enter at least five tuples for each relationSQL> INSERT INTO CUSTOMERS VALUES('11','shobha','BANGLORE');

    1 row created.

    SQL> INSERT INTO CUSTOMERS VALUES('12','shilpa','MANDYA');

    1 row created.

    SQL> INSERT INTO CUSTOMERS VALUES('13','sameera','MYSORE');

    1 row created.

    SQL> INSERT INTO CUSTOMERS VALUES('14','swetha','DHARWAD');

  • 7/29/2019 Lab Programs Dbms

    9/45

    1 row created.

    SQL> INSERT INTO CUSTOMERS VALUES('15','shubha','GULBARGA');

    1 row created.

    SQL> INSERT INTO CUSTOMERS VALUES('16','Sunitha','Hubbli');

    1 row created.

    SQL> select * from customers;

    CUSTNO CNAME CITY---------- ------------ ------------

    11 shobha BANGLORE12 shilpa MANDYA13 sameera MYSORE14 swetha DHARWAD15 shubha GULBARGA

    16 Sunitha Hubbli

    6 rows selected.

    SQL> delete from customers where custno=16;

    1 row deleted.

    SQL> SELECT * FROM CUSTOMERS;

    CUSTNO CNAME CITY---------- ------------ ------------

    11 shobha BANGLORE12 shilpa MANDYA13 sameera MYSORE14 swetha DHARWAD15 shubha GULBARGA

    SQL> INSERT INTO ORDER2 VALUES('21','12/JAN/2002','11',1000);

    1 row created.

    SQL> INSERT INTO ORDER2 VALUES('22','12/JAN/2002','12',2000);

    1 row created.

    SQL> INSERT INTO ORDER2 VALUES('23','2/JAN/2002','13',3000);

    1 row created.

    SQL> INSERT INTO ORDER2 VALUES('24','12/FEB/2002','14',4000);

    1 row created.

    SQL> INSERT INTO ORDER2 VALUES('25','12/JAN/2002','15',5000);

  • 7/29/2019 Lab Programs Dbms

    10/45

    1 row created.

    SQL> SELECT * FROM ORDER2;

    ORDERNO ODATE CUSTNO ORD_AMT---------- --------- ---------- ----------

    21 12-JAN-02 11 100022 12-JAN-02 12 200023 02-JAN-02 13 300024 12-FEB-02 14 400025 12-JAN-02 15 5000

    SQL> INSERT INTO ITEM VALUES('33','100');

    1 row created.

    SQL> INSERT INTO ITEM VALUES('10','150');

    1 row created.

    SQL> INSERT INTO ITEM VALUES('3','140');

    1 row created.

    SQL> INSERT INTO ITEM VALUES('11','100');

    1 row created.

    SQL> INSERT INTO ITEM VALUES('22','101');

    1 row created.

    SQL> SELECT * FROM ITEM;

    ITEMNO UNITPRICE---------- ----------

    33 10010 1503 140

    11 10022 101

    SQL> INSERT INTO ORDER_ITEM VALUES('21','33',3);

    1 row created.

    SQL>INSERT INTO ORDER_ITEM VALUES('22','10',3);

    1 row created.

    SQL>INSERT INTO ORDER_ITEM VALUES('23','3',3);

  • 7/29/2019 Lab Programs Dbms

    11/45

    1 row created.

    SQL>INSERT INTO ORDER_ITEM VALUES('24','11',3);

    1 row created.

    SQL>INSERT INTO ORDER_ITEM VALUES('25','22',3);

    1 row created.

    SQL> SELECT * FROM ORDER_ITEM;

    ORDERNO ITEMNO QTY---------- ---------- ----------

    21 33 322 10 323 3 324 11 3

    25 22 3

    SQL>INSERT INTO WAREHOUSE VALUES(1,'MYSORE');

    1 row created.

    SQL>INSERT INTO WAREHOUSE VALUES(2,'MYSORE');

    1 row created.

    SQL>INSERT INTO WAREHOUSE VALUES(3,'MYSORE');

    1 row created.

    SQL>INSERT INTO WAREHOUSE VALUES(4,'BANGL');

    1 row created.

    SQL>INSERT INTO WAREHOUSE VALUES(5,'BANGL');

    1 row created.

    SQL> SELECT * FROM WAREHOUSE;

    WAREHOUSENO CITY

    ----------- ------------1 MYSORE2 MYSORE3 MYSORE4 BANGL5 BANGL

    SQL> INSERT INTO SHIPMENT VALUES ('21',1,'4/JAN/2002');

  • 7/29/2019 Lab Programs Dbms

    12/45

    1 row created.

    SQL>INSERT INTO SHIPMENT VALUES ('22',1,'7/JAN/2002');

    1 row created.

    SQL>INSERT INTO SHIPMENT VALUES ('23',1,'8/JAN/2002');

    1 row created.

    SQL>INSERT INTO SHIPMENT VALUES ('24',2,'9/JAN/2002');

    1 row created.

    SQL>INSERT INTO SHIPMENT VALUES ('25',2,'2/JAN/2002');

    1 row created.

    SQL> SELECT * FROM SHIPMENT;

    ORDERNO WAREHOUSENO SHIP_DATE---------- ----------- ---------

    21 1 04-JAN-0222 1 07-JAN-0223 1 08-JAN-0224 2 09-JAN-0225 2 02-JAN-02

    (iii) Produce a listing: CUSTNAME, #oforders, AVG_ORDER_AMT, where the middlecolumn is the total number of orders by the customer and the last column is theaverage order amount for that customer.

    SQL>SELECT CUSTOMERs.CNAME,COUNT(*),AVG(ORD_AMT)FROM CUSTOMERS,ORDER2WHERE CUSTOMERs.CUSTNO=ORDER2.CUSTNOGROUP BY CUSTOMERS.CNAME;

    CNAME COUNT(*) AVG(ORD_AMT)------------ ---------- ------------sameera 1 3000shilpa 1 2000shobha 1 1000shubha 1 5000

    swetha 1 4000

    (iv) List the order# for orders that were shipped from allthe warehouses that thecompany has in a specific city.

    SQL>SELECT SHIPMENT.ORDERNO,WAREHOUSE.CITY

  • 7/29/2019 Lab Programs Dbms

    13/45

    FROM SHIPMENT,WAREHOUSEWHERE SHIPMENT.WAREHOUSENO=WAREHOUSE.WAREHOUSENOGROUP BY WAREHOUSE.CITY,SHIPMENT.ORDERNO;

    ORDERNO CITY---------- ------------

    21 MYSORE22 MYSORE23 MYSORE24 MYSORE25 MYSORE

    (v) Demonstrate how you delete item# 10 from the ITEM table and make that field nullin the ORDER_ITEM table.

    SQL> DELETE FROM ITEM WHERE itemno='10';

    1 row deleted.

  • 7/29/2019 Lab Programs Dbms

    14/45

    3. DATABASE OF STUDENT ENROLL IN COURSE & BOOKS ADOPTED-------------------------------------------------------

    Consider the following database of student enrollment in courses & books adopted for each

    course:

    STUDENT(regno : string, name : string, major : string, bdate: date)

    COURSE( course# : int, cname : string, dept : string)ENROLL(regno : string, course# : int, sem : int, marks : int)

    BOOK_ADOPTION(course# : int, sem : int, book_ISBN : int)

    TEXT(book_ISBN : int, book_title : string, publisher : string, author : string)

    (i) Create the above tables by properly specified the primary key and the foreign key.(ii) Enter at least five tuples for each relation.(iii) Demonstrate how you add a new text book to the database and make this book be

    adopted by some department.

    (iv) Produce a list of text books (include course#, book_ISDN, book_title) in thealphabetical order for courses offered by the CS department that use more than two

    books.(v) List any department that has allits adopted books published by a specific publisher.(vi) Generation of suitable reports.(vii) Create suitable front end for querying and displaying and displaying the results.

    ER DIAGRAM OF STUDENT ENROLL DATABASE

    (i) Create the above tables by properly specified the primary key and the foreign key.SQL>CREATE TABLE STUDENT(REGNO VARCHAR(12),NAME VARCHAR(12),MAJOR VARCHAR(12),BDATE DATE,PRIMARY KEY(REGNO));

    Table created.

    SQL>CREATE TABLE COURSE(COURSENO INTEGER,CNAME VARCHAR(12),DEPT VARCHAR(12) ,PRIMARY KEY(COURSENO));

  • 7/29/2019 Lab Programs Dbms

    15/45

    Table created.SQL>CREATE TABLE ENROLL(REGNO VARCHAR(12) REFERENCES STUDENT(REGNO),COURSENO INTEGER REFERENCES COURSE(COURSENO),SEM INTEGER,MARKS INTEGER,PRIMARY KEY(REGNO,COURSENO,SEM));

    Table created.

    SQL>CREATE TABLE TEXT(BOOK_ISBN INTEGER,BOOK_TITLE VARCHAR(12),PUBLISHER VARCHAR(12),AUTHOR VARCHAR(12),PRIMARY KEY(BOOK_ISBN));

    Table created.

    SQL>CREATE TABLE BOOK_ADOPTION(COURSENO INTEGER REFERENCES COURSE(COURSENO),SEM INTEGER,BOOK_ISBN INTEGER REFERENCES TEXT(BOOK_ISBN),PRIMARY KEY(COURSENO,SEM));

    Table created.

    (ii) Enter at least five tuples for each relation.SQL>INSERT INTO STUDENT VALUES(11,'NIKIL','CSE','12/JAN/2002');

    1 row created.

    SQL>INSERT INTO STUDENT VALUES(12,'DERU','CSE','17/JAN/2002');

    1 row created.

    SQL>INSERT INTO STUDENT VALUES(13,'TARUN','ISE','13/JAN/2002');

    1 row created.

    SQL>INSERT INTO STUDENT VALUES(14,'NAKUL','ECE','14/JAN/2002');

    1 row created.

    SQL>INSERT INTO STUDENT VALUES(15,'SRIRAM','EEE','15/JAN/2002');

    1 row created.

  • 7/29/2019 Lab Programs Dbms

    16/45

    SQL> SELECT * FROM STUDENT;

    REGNO NAME MAJOR BDATE------------ ------------ ------------ ---------11 NIKIL CSE 12-JAN-0212 DERU CSE 17-JAN-0213 TARUN ISE 13-JAN-0214 NAKUL ECE 14-JAN-0215 SRIRAM EEE 15-JAN-02

    SQL>INSERT INTO COURSE VALUES('31','ADA','CS');

    1 row created.

    SQL>INSERT INTO COURSE VALUES('32','FAFL','CS');

    1 row created.

    SQL>INSERT INTO COURSE VALUES('33','GRAPHICS','MECH');

    1 row created.

    SQL>INSERT INTO COURSE VALUES('34','MATHS','MATHD');

    1 row created.

    SQL>INSERT INTO COURSE VALUES('35','MP','EC');

    1 row created.

    SQL> SELECT * FROM COURSE;

    COURSENO CNAME DEPT---------- ------------ ------------

    31 ADA CS32 FAFL CS33 GRAPHICS MECH34 MATHS MATHD35 MP EC

    SQL>INSERT INTO ENROLL VALUES('11',31,2,24);

    1 row created.

    SQL>INSERT INTO ENROLL VALUES('12',32,4,25);

    1 row created.

    SQL>INSERT INTO ENROLL VALUES('13',33,6,23);

    1 row created.

  • 7/29/2019 Lab Programs Dbms

    17/45

    SQL>INSERT INTO ENROLL VALUES('14',34,5,21);

    1 row created.

    SQL>INSERT INTO ENROLL VALUES('15',35,4,25);

    1 row created.

    SQL> SELECT * FROM ENROLL;

    REGNO COURSENO SEM MARKS------------ ---------- ---------- ----------11 31 2 2412 32 4 2513 33 6 2314 34 5 2115 35 4 25

    SQL>INSERT INTO TEXT VALUES(244,'C','PEARSON','BALAGURU');

    1 row created.

    SQL>INSERT INTO TEXT VALUES(255,'C++','TATA','PADMA');

    1 row created.

    SQL>INSERT INTO TEXT VALUES(233,'DSC','ELITE','PADMA');

    1 row created.

    SQL>INSERT INTO TEXT VALUES(277,'ADA','HIMALAYA','LEVITIN');

    1 row created.

    SQL>INSERT INTO TEXT VALUES(265,'EC','EXCELLENT','MVRAO');

    1 row created.

    SQL> SELECT * FROM TEXT;

    BOOK_ISBN BOOK_TITLE PUBLISHER AUTHOR---------- ------------ ------------ ------------

    244 C PEARSON BALAGURU255 C++ TATA PADMA233 DSC ELITE PADMA277 ADA HIMALAYA LEVITIN265 EC EXCELLENT MVRAO

  • 7/29/2019 Lab Programs Dbms

    18/45

    SQL> INSERT INTO BOOK_ADOPTION VALUES(31,2,244);

    1 row created.

    SQL> INSERT INTO BOOK_ADOPTION VALUES(32,4,255);

    1 row created.

    SQL> INSERT INTO BOOK_ADOPTION VALUES(33,6,233);

    1 row created.

    SQL>INSERT INTO BOOK_ADOPTION VALUES(34,5,277);

    1 row created.

    SQL>INSERT INTO BOOK_ADOPTION VALUES(35,4,265);

    1 row created.

    SQL>INSERT INTO BOOK_ADOPTION VALUES(31,1,244);

    1 row created.

    SQL>INSERT INTO BOOK_ADOPTION VALUES(32,5,255);

    1 row created.

    (iii) Demonstrate how you add a new text book to the database and make this book beadopted by some department.

    SQL>INSERT INTO BOOK_ADOPTION VALUES(33,8,233);

    1 row created.

    SQL> SELECT * FROM BOOK_ADOPTION;

    COURSENO SEM BOOK_ISBN---------- ---------- ----------

    31 2 24432 4 25533 6 23334 5 27735 4 26531 1 24432 5 25533 8 233

  • 7/29/2019 Lab Programs Dbms

    19/45

    SQL> INSERT INTO BOOK_ADOPTION VALUES (32,10,233);

    1 row created.

    (iv) Produce a list of text books (include course#, book_ISDN, book_title) in thealphabetical order for courses offered by the CS department that use more than two

    books.

    SQL>

    SELECT DISTINCT B.COURSENO,B.BOOK_ISBN,T.BOOK_TITLEFROM BOOK_ADOPTION B,TEXT TWHERE B.BOOK_ISBN=T.BOOK_ISBN AND B.COURSENOIN

    (SELECT COURSENOFROM BOOK_ADOPTIONWHERE COURSENOIN

    (SELECT COURSENOFROM COURSEWHERE DEPT LIKE 'CS')

    GROUP BY COURSENOHAVING COUNT (COURSENO)>=2);

    COURSENO BOOK_ISBN BOOK_TITLE---------- ---------- ------------

    31 244 C32 233 DSC32 255 C++

    SQL>SELECT COURSENOFROM COURSE;

    COURSENO----------

    3132

    333435

  • 7/29/2019 Lab Programs Dbms

    20/45

    (v) List any department that has allits adopted books published by a specific publisher.

    SQL>

    SELECT BOOK_ISBNFROM TEXTWHERE PUBLISHER='PEARSON';

    BOOK_ISBN----------

    244

    SQL>SELECT COURSENOFROM BOOK_ADOPTIONWHERE BOOK_ISBN = (SELECT BOOK_ISBN

    FROM TEXTWHERE PUBLISHER='PEARSON');

    COURSENO----------

    3131

    SQL>

    SELECT C.DEPTFROM COURSE CWHERE COURSENO IN (

    SELECT COURSENO

    FROM BOOK_ADOPTIONWHERE BOOK_ISBN = (SELECT BOOK_ISBNFROM TEXTWHERE PUBLISHER='PEARSON'));

    DEPT------------CS

  • 7/29/2019 Lab Programs Dbms

    21/45

    4. BOOK DEALER DATABASE-----------------------

    The following tables are maintained by a book dealer.AUTHOR(author_id : int, name : string, city : string, country : string)PUBLISHER(publisher_id : int, name : string, city : string, country :string) CATALOG(book_id : int, title : string, author_id : int,publisher_id : int, category_id : int, year : int, price : int)CATEGORY(category_id : int, description : string)ORDER_DETAILS(order_no : int, book_id : int, quantity : int)

    (i) Create the above tables by properly specified the primary key andthe foreign key

    (ii) Enter at least five tuples for each relation(iii) Give the details of the authors who have 2 or more books in the

    catalog and the price of the books is greater than the average priceof the books in the catalog and the year of publication is after2000.

    (iv) Find the author of the book which has maximum sales.(v) Demonstrate how you increase the price of books published by a

    specific publisher by 10%.

    (vi) Generation of suitable reports.(vii) Create suitable front end for the querying and displaying theresults.

    ER DIAGRAM OF BOOK DEALER DATABASE

    (i) Create the above tables by properly specified the primary key andthe foreign key

    SQL>CREATE TABLE AUTHOR (AID INTEGER,NAME VARCHAR (12),CITY VARCHAR (12),COUNTRY VARCHAR (12),

    PRIMARY KEY (AID));

    Table created.

    SQL>CREATE TABLE PUBLISHER (PID INTEGER,NAME VARCHAR (12),CITY VARCHAR (12),

  • 7/29/2019 Lab Programs Dbms

    22/45

    COUNTRY VARCHAR (12),PRIMARY KEY (PID));

    Table created.

    SQL>CREATE TABLE CATALOG1 (BID INTEGER,TITLE VARCHAR (12),AID INTEGER REFERENCES AUTHOR (AID),PID INTEGER REFERENCES PUBLISHER (PID),CID INTEGER REFERENCES CATEGORY (CID),YEAR INTEGER,PRICE INTEGER,PRIMARY KEY (BID));

    Table created.

    SQL>

    CREATE TABLE CATEGORY (CID INTEGER,DESCRIPTION VARCHAR (20),PRIMARY KEY (CID));

    Table created.

    SQL>CREATE TABLE ORDER_DETAILS (ONO INTEGER,BID INTEGER REFERENCES CATALOG1 (BID),QUANTITY INTEGER,PRIMARY KEY (ONO, BID));Table created.

    (ii) Enter at least five tuples for each relationSQL>

    INSERT INTO AUTHOR VALUES('11','nandagopal','banglore','india');

    1 row created.

    SQL>INSERT INTO AUTHOR VALUES('12','yogish','mandya','india');

    1 row created.

    SQL>INSERT INTO AUTHOR VALUES('13','ian','london','england');

    1 row created.

    SQL>INSERT INTO AUTHOR VALUES('14','padmareddy','dharwad','india');

    1 row created.

    SQL>INSERT INTO AUTHOR VALUES('15','albert','newyork','usa');

  • 7/29/2019 Lab Programs Dbms

    23/45

    1 row created.

    SQL>INSERT INTO PUBLISHER VALUES('21','sapna','bangalore','india');

    1 row created.

    SQL>INSERT INTO PUBLISHER VALUES('22','ep','mysore','india');

    1 row created.

    SQL>INSERT INTO PUBLISHER VALUES('23','pearl','tokyo','japan');

    1 row created.

    SQL>INSERT INTO PUBLISHER VALUES('24','vvv','sydney','austr');

    1 row created.

    SQL>INSERT INTO PUBLISHER VALUES('25','tatamg','washington','usa');

    1 row created.

    SQL>INSERT INTO CATEGORY VALUES ('31','dbms');

    1 row created.

    SQL>INSERT INTO CATEGORY VALUES ('32','unix');

    1 row created.

    SQL>INSERT INTO CATEGORY VALUES('33','computer');

    1 row created.

    SQL>INSERT INTO CATEGORY VALUES('35','vb');

    1 row created.

    SQL> INSERT INTO CATEGORY VALUES ('36','science');

    1 row created.

    SQL> INSERT INTO CATALOG1 VALUES ('1','c',11,21,31,2001,1000);

    1 row created.

    SQL>INSERT INTO CATALOG1 VALUES('2','c++',12,22,32,2006,1500);

    1 row created.

    SQL>INSERT INTO CATALOG1 VALUES('3','c#',13,23,33,2002,1450);

    1 row created.

    SQL>INSERT INTO CATALOG1 VALUES('4','ansic',14,24,36,2003,1560);

  • 7/29/2019 Lab Programs Dbms

    24/45

    1 row created.

    SQL>INSERT INTO CATALOG1 VALUES('5','pointers',15,25,35,2005,1230);

    1 row created.

    SQL> INSERT INTO CATALOG1 VALUES ('6','linux',13,25,35,2003,1830);

    1 row created.

    SQL>INSERT INTO ORDER_DETAILS VALUES (41,1,12);

    1 row created.

    SQL>INSERT INTO ORDER_DETAILS VALUES (42,2,16);

    1 row created.

    SQL>INSERT INTO ORDER_DETAILS VALUES(43,3,23);

    1 row created.

    SQL>INSERT INTO ORDER_DETAILS VALUES(44,4,21);

    1 row created.

    SQL>INSERT INTO ORDER_DETAILS VALUES(45,5,33);

    1 row created.

    SQL>INSERT INTO ORDER_DETAILS VALUES(46,6,9);

    1 row created.

    (iii) Give the details of the authors who have 2 or more books in thecatalog and the price of the books is greater than the average priceof the books in the catalog and the year of publication is after2000.

    SQL> SELECT *FROM authorWHERE aid in (select aid from catalog1

    where (year>2000) and (catalog1.price>(select avg(price)from catalog1))group by aid having count(*)>1 );

    AID NAME CITY COUNTRY---------- ------------ ------------ ------------

    13 ian london england

    (iv) Find the author of the book which has maximum sales.SQL>SELECT a.nameFROM author a,catalog1 c,order_details o

  • 7/29/2019 Lab Programs Dbms

    25/45

    WHERE (a.aid=c.aid) and (o.bid=c.bid) and(o.quantity =

    (select max(quantity)from order_details));

    NAME------------albert

    (v) Demonstrate how you increase the price of books published by aspecific publisher by 10%.

    SQL> SELECT * FROM CATALOG1;

    BID TITLE AID PID CID YEAR PRICE---------- ------------ ---------- ---------- ---------- ---------- ----------

    1 c 11 21 31 2001 10002 c++ 12 22 32 2006 15003 c# 13 23 33 2002 14504 ansic 14 24 36 2003 15605 pointers 15 25 35 2005 12306 linux 13 25 35 2003 1830

    6 rows selected.

    SQL> UPDATE CATALOG1SET PRICE=PRICE*1.1WHERE PID=21;

    1 row updated.

    SQL> SELECT * FROM CATALOG1;

    BID TITLE AID PID CID YEAR PRICE---------- ------------ ---------- ---------- ---------- ---------- ----------

    1 c 11 21 31 2001 11002 c++ 12 22 32 2006 15003 c# 13 23 33 2002 14504 ansic 14 24 36 2003 15605 pointers 15 25 35 2005 12306 linux 13 25 35 2003 1830

  • 7/29/2019 Lab Programs Dbms

    26/45

    5. BANKING DATABASE--------------------

    Consider the following database for a banking enterprise.BRANCH(branch_name : string, branch_city : string, assets : real)ACCOUNT(accno : int, branch_name : string, balance : real)DEPOSITOR(customer_name : string, accno : int)CUSTOMER(customer_name : string, customer_street : string, cust_city :string)LOAN(loan_number : int, branch_name : string, amount : real)BORROWER(customer_name : string, loan_number : int)

    (i) Create the above tables by properly specifying the primary keys andthe foreign keys.

    (ii) Enter at least five tuples for each relation.(iii) Find all the customers who have at least two accounts at the MAIN

    branch(iv) Find all the customers who have an account at all the branches

    located in a specific city.(v) Demonstrate how you delete all account tuples at every branch

    located in a specific city.(vi) Generation of suitable reports.(vii) Create suitable front end for the querying and displaying the

    results.

    ER DIAGRAM OF BANKING DATABASE

    (i) Create the above tables by properly specifying the primary keys andthe foreign keys.

    SQL>CREATE TABLE BRANCH (BNAME VARCHAR(12),BCITY VARCHAR(12),ASSETS REAL,PRIMARY KEY(BNAME));

    Table created.

    SQL>CREATE TABLE CUSTOMER1 (CNAME VARCHAR(12),CSTREET VARCHAR(12),CCITY VARCHAR(12),PRIMARY KEY(CNAME));

  • 7/29/2019 Lab Programs Dbms

    27/45

    Table created.

    SQL>CREATE TABLE ACCOUNT(ACCNO INTEGER,BNAME VARCHAR(12) REFERENCES BRANCH(BNAME) ,BALANCE INTEGER ,PRIMARY KEY(ACCNO));

    Table created.

    SQL>CREATE TABLE DEPOSITOR(CNAME VARCHAR(12) REFERENCES CUSTOMER1(CNAME) ,ACCNO INTEGER REFERENCES ACCOUNT(ACCNO) ON DELETE CASCADE ,PRIMARY KEY(CNAME,ACCNO));

    Table created.

    SQL>CREATE TABLE LOAN(LOANNO INTEGER,BNAME VARCHAR(12) REFERENCES BRANCH(BNAME),AMOUNT REAL,PRIMARY KEY(LOANNO));

    Table created.

    SQL>CREATE TABLE BORROWER(CNAME VARCHAR(12) REFERENCES CUSTOMER1(CNAME),LOANNO INTEGER REFERENCES LOAN(LOANNO));

    Table created.

    (ii) Enter at least five tuples for each relation.SQL> insert into branch values('rtnagarmain','bang',12000000);

    1 row created.

    SQL>INSERT into branch values('yelahanka','bang',100000000);

    1 row created.

    SQL>INSERT into branch values('vijayanagar','mysore',23000000);

    1 row created.

    SQL>INSERT into branch values('krnagar','mandya',21000000);

    1 row created.

  • 7/29/2019 Lab Programs Dbms

    28/45

    SQL>INSERT into branch values('hebbal','bang',33000000);

    1 row created.

    SQL> select * from branch;

    BNAME BCITY ASSETS------------ ------------ ----------rtnagarmain bang 12000000yelahanka bang 100000000vijayanagar mysore 23000000krnagar mandya 21000000hebbal bang 33000000

    SQL> insert into customer1 values('kiran','a1','bang');

    1 row created.

    SQL>INSERT into customer1 values('vijay','b2','bang');

    1 row created.

    SQL>INSERT into customer1 values('barath','d5','mysore');

    1 row created.

    SQL>INSERT into customer1 values('chandru','t4','mandya');

    1 row created.

    SQL>INSERT into customer1 values('dinesh','h9','bang');

    1 row created.

    SQL> select * from customer1;

    CNAME CSTREET CCITY------------ ------------ ------------kiran a1 bangvijay b2 bang

    barath d5 mysorechandru t4 mandyadinesh h9 bang

    SQL> insert into account values(1,'rtnagarmain',123450);

    1 row created.

  • 7/29/2019 Lab Programs Dbms

    29/45

    SQL>INSERT into account values(2,'yelahanka',254310);

    1 row created.

    SQL>INSERT into account values(3,'vijayanagar',154730);

    1 row created.

    SQL>INSERT into account values(4,'krnagar',564440);

    1 row created.

    SQL>INSERT into account values(5,'hebbal',342110);

    1 row created.

    SQL> insert into account values(6,'rtnagarmain',223450);

    1 row created.

    SQL> select * from account;

    ACCNO BNAME BALANCE---------- ------------ ----------

    1 rtnagarmain 1234502 yelahanka 2543103 vijayanagar 1547304 krnagar 5644405 hebbal 3421106 rtnagarmain 223450

    6 rows selected.

    SQL>insert into depositor values('kiran',1);

    1 row created.

    SQL>INSERT into depositor values('vijay',2);

    1 row created.

    SQL>INSERT into depositor values('barath',3);

    1 row created.

    SQL>INSERT into depositor values('chandru',4);

    1 row created.

    SQL>INSERT into depositor values('dinesh',5);

  • 7/29/2019 Lab Programs Dbms

    30/45

    1 row created.

    SQL>INSERT into depositor values('kiran',6);

    1 row created.

    SQL> select * from depositor;

    CNAME ACCNO------------ ----------barath 3chandru 4dinesh 5kiran 1kiran 6vijay 2

    6 rows selected.

    SQL> insert into loan values(21,'hebbal',110000);

    1 row created.

    SQL>INSERT into loan values(22,'yelahanka',120000);

    1 row created.

    SQL>INSERT into loan values(23,'vijayanagar',14000);

    1 row created.

    SQL>INSERT into loan values(24,'krnagar',480000);

    1 row created.

    SQL>INSERT into loan values(25,'hebbal',280000);

    1 row created.

    SQL> select * from loan;

    LOANNO BNAME AMOUNT---------- ------------ ----------

    21 hebbal 11000022 yelahanka 12000023 vijayanagar 14000

    24 krnagar 48000025 hebbal 280000

    SQL>INSERT into borrower values('kiran',21);

    1 row created.

    SQL>INSERT into borrower values('vijay',22);

  • 7/29/2019 Lab Programs Dbms

    31/45

    1 row created.

    SQL>INSERT into borrower values('barath',23);

    1 row created.

    SQL>INSERT into borrower values('chandru',24);

    1 row created.

    SQL>INSERT into borrower values('dinesh',25);

    1 row created.

    SQL> SELECT * FROM BORROWER;

    CNAME LOANNO------------ ----------kiran 21

    vijay 22barath 23chandru 24dinesh 25

    (iii) Find all the customers who have at least two accounts at the MAINbranch

    SQL> SELECT c.cnameFROM depositor d,branch b,customer1 c,account aWHERE (d.cname=c.cname) AND (a.accno=d.accno) AND(b.bname=a.bname) AND (b.bname like 'rtnagarmain')GROUP BY c.cnameHAVING COUNT(d.accno)>=2;

    CNAME------------kiran

    (iv) Find all the customers who have an account at all the brancheslocated in a specific city.

    SQL>SELECT DISTINCT DEPOSITOR.CNAMEFROM DEPOSITOR

    WHERE ACCNO IN ( SELECT ACCOUNT.ACCNOFROM ACCOUNTWHERE BNAME IN

    (SELECT BNAME FROM BRANCH WHERE BCITY='BANG'));

    CNAME------------dineshkiranvijay

  • 7/29/2019 Lab Programs Dbms

    32/45

    SQL> SELECT * FROM ACCOUNT;

    ACCNO BNAME BALANCE---------- ------------ ----------

    1 rtnagarmain 1234502 yelahanka 2543103 vijayanagar 1547304 krnagar 5644405 hebbal 3421106 rtnagarmain 223450

    6 rows selected.

    (v) Demonstrate how you delete all account tuples at every branchlocated in a specific city.

    SQL> delete from accountwhere bname in (select bname from branch where bcity='mandya' );

    1 row deleted.

    SQL> select * from account;

    ACCNO BNAME BALANCE---------- ------------ ----------

    1 rtnagarmain 1234502 yelahanka 2543103 vijayanagar 1547305 hebbal 3421106 rtnagarmain 223450

  • 7/29/2019 Lab Programs Dbms

    33/45

    VIVA QUESTIONS WITH ANSWERS

    1. What is database?A database is a logically coherent collection of data with some inherentmeaning, 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 adatabase. In other words it is general-purpose software that provides the userswith the processes of defining, constructing and manipulating the database forvarious applications.

    3. What is a Database system?The database and DBMS software together is called as Database system.

    4. Advantages of DBMS?Redundancy is controlled.Unauthorized access is restricted.Providing multiple user interfaces.Enforcing integrity constraints.Providing backup and recovery.

    5. Disadvantage in File Processing System?Data redundancy & inconsistency.Difficult in accessing data.Data isolation.Data integrity.Concurrent access is not possible.Security Problems.

    6. Describe the three levels of data abstraction?

    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 arestored in database and what relationship among those data.

    View level: The highest level of abstraction describes only part of entiredatabase.

    7. Define the "integrity rules"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 orshould be Primary Key value of other relation.

    8. What is extension and intension?

    Extension -It is the number of tuples present in a table at any instance. Thisis time dependent.

  • 7/29/2019 Lab Programs Dbms

    34/45

    Intension -It is a constant value that gives the name, structure of table andthe constraints laid on it.

    9. What is System R? What are its two major subsystems?System R was designed and developed over a period of 1974-79 at IBM San JoseResearch Center. It is a prototype and its purpose was to demonstrate that it ispossible to build a Relational System that can be used in a real lifeenvironment to solve real life problems, with performance at least comparable tothat of existing system.Its two subsystems areResearch StorageSystem Relational Data System.

    10. How is the data structure of System R different from the relationalstructure?Unlike Relational systems in System RDomains are not supportedEnforcement of candidate key uniqueness is optionalEnforcement of entity integrity is optional

    Referential integrity is not enforced

    11. What is Data Independence?

    Data independence means that The application is independent of the storagestructure and access strategy of data. In other words, the ability to modify

    the schema definition in one level should not affect the schema definition inthe next higher level.

    Two types of Data Independence:

    Physical Data Independence: Modification in physical level should not affectthe logical level.

    Logical Data Independence: Modification in logical level should affect theview level.

    NOTE: Logical Data Independence is more difficult to achieve

    12. 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 notreally exist in its own right but is instead derived from one or more underlyingbase table. In other words, there is no stored file that direct represents theview 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.

    13. What is Data Model?

    A collection of conceptual tools for describing data, data relationships datasemantics and constraints.

  • 7/29/2019 Lab Programs Dbms

    35/45

    14. What is E-R model?

    This data model is based on real world that consists of basic objects calledentities and of relationship among these objects. Entities are described in adatabase by a set of attributes.

    15. What is Object Oriented model?This model is based on collection of objects. An object contains values storedin instance variables with in the object. An object also contains bodies of codethat operate on the object. These bodies of code are called methods. Objectsthat contain same types of values and the same methods are grouped together intoclasses.

    16. What is an Entity?It is a 'thing' in the real world with an independent existence.

    17. What is an Entity type?It is a collection (set) of entities that have same attributes.

    18. What is an Entity set?

    It is a collection of all entities of particular entity type in the database.

    19. What is an Extension of entity type?The collections of entities of a particular entity type are grouped togetherinto an entity set.

    20. What is Weak Entity set?An entity set may not have sufficient attributes to form a primary key, and itsprimary key compromises of its partial key and primary key of its parent entity,then it is said to be Weak Entity set.

    21. What is an attribute?It is a particular property, which describes the entity.

    22. 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 setof 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).

    23. What is degree of a Relation?It is the number of attribute of its relation schema.

    24. What is Relationship?It is an association among two or more entities.

    25. What is Relationship set?

    The collection (or set) of similar relationships.

    26. What is Relationship type?Relationship type defines a set of associations or a relationship set among agiven set of entity types.

    27. What is degree of Relationship type?It is the number of entity type participating.

  • 7/29/2019 Lab Programs Dbms

    36/45

    25. What is DDL (Data Definition Language)?A data base schema is specifies by a set of definitions expressed by a speciallanguage called DDL.

    26. What is VDL (View Definition Language)?It specifies user views and their mappings to the conceptual schema.

    27. What is SDL (Storage Definition Language)?This language is to specify the internal schema. This language may specify themapping between two schemas.

    28. What is Data Storage - Definition Language?The storage structures and access methods used by database system are specifiedby a set of definition in a special type of DDL called data storage-definitionlanguage.

    29. What is DML (Data Manipulation Language)?

    This language that enable user to access or manipulate data as organized byappropriate data model.

    Procedural DML or Low level: DML requires a user to specify what data are neededand how to get those data.

    Non-Procedural DML or High level: DML requires a user to specify what data areneeded without specifying how to get those data.

    31. What is DML Compiler?It translates DML statements in a query language into low-level instruction thatthe query evaluation engine can understand.

    32. What is Query evaluation engine?It executes low-level instruction generated by compiler.

    33. What is DDL Interpreter?It interprets DDL statements and record them in tables containing metadata.

    34. What is Record-at-a-time?The Low level or Procedural DML can specify and retrieve each record from a setof records. This retrieve of a record is said to be Record-at-a-time.

    35. What is Set-at-a-time or Set-oriented?

    The High level or Non-procedural DML can specify and retrieve many records in asingle DML statement. This retrieve of a record is said to be Set-at-a-time orSet-oriented.

    36. What is Relational Algebra?It is procedural query language. It consists of a set of operations that takeone or two relations as input and produce a new relation.

  • 7/29/2019 Lab Programs Dbms

    37/45

    37. What is Relational Calculus?It is an applied predicate calculus specifically tailored for relationaldatabases proposed by E.F. Codd. E.g. of languages based on it are DSL ALPHA,QUEL.

    38. How does Tuple-oriented relational calculus differ from domain-orientedrelational calculusThe tuple-oriented calculus uses a tuple variables i.e., variable whose onlypermitted values are tuples of that relation. E.g. QUELThe domain-oriented calculus has domain variables i.e., variables that rangeover the underlying domains instead of over relation. E.g. ILL, DEDUCE.

    39. What is normalization?It is a process of analysing the given relation schemas based on theirFunctional Dependencies (FDs) and primary key to achieve the propertiesMinimizing redundancyMinimizing insertion,Deletion and update anomalies.

    40. What is Functional Dependency?A Functional dependency is denoted by X Y between two sets of attributes X and Ythat are subsets of R specifies a constraint on the possible tuple that can forma relation state r of R. The constraint is for any two tuples t1 and t2 in r ift1[X] = t2[X] then they have t1[Y] = t2[Y]. This means the value of X componentof a tuple uniquely determines the value of component Y.

    41. When is a functional dependency F said to be minimal?

    Every dependency in F has a single attribute for its right hand side.

    We cannot replace any dependency X A in F with a dependency Y A where Y is aproper subset of X and still have a set of dependency that is equivalent to F.

    We cannot remove any dependency from F and still have set of dependency thatis equivalent to F.

    42. What is multivalued dependency?Multivalued dependency denoted by X Y specified on relation schema R, where Xand Y are both subsets of R, specifies the following constraint on any relationr 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 propertiest3[x] = t4[X] = t1[X] = t2[X]t3[Y] = t1[Y] and t4[Y] = t2[Y]t3 [Z] = t2[Z] and t4[Z] = t1[Z]

    Where [Z = (R-(X U Y)) ]

  • 7/29/2019 Lab Programs Dbms

    38/45

    43. What is Lossless join property?It guarantees that the spurious tuples generation does not occur with respect torelation schemas after decomposition.

    44. What is 1 NF (Normal Form)?The domain of attribute must include only atomic (simple, indivisible) values.

    45. What is Fully Functional dependency?It is based on concept of full functional dependency. A functional dependency XY is full functional dependency if removal of any attribute A from X means thatthe dependency does not hold any more.

    46. What is 2NF?A relation schema R is in 2NF if it is in 1NF and every non-prime attribute A inR is fully functionally dependent on primary key.

    47. What is 3NF?A relation schema R is in 3NF if it is in 2NF and for every FD X A either of thefollowing is trueX 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 onprimary key.

    48. What is BCNF (Boyce-Codd Normal Form)?A relation schema R is in BCNF if it is in 3NF and satisfies an additionalconstraint that for every FD X A, X must be a candidate key.

    49. What is 4NF?A relation schema R is said to be in 4NF if for every multivalued dependency X Ythat holds over R, one of following is trueX is subset or equal to (or) XY = R.X is a super key.

    50. What is 5NF?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

    i) Ri = R for some i.

    ii) The join dependency is implied by the set of FD, over R in which the leftside is key of R.

    51. What is Domain-Key Normal Form?A relation is said to be in DKNF if all constraints and dependencies that shouldhold on the constraint can be enforced by simply enforcing the domain constraintand key constraint on the relation.

  • 7/29/2019 Lab Programs Dbms

    39/45

    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 arerelated 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 lastresort is to simply create a key, by assigning a unique number to each record oroccurrence. 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 constructis known as creating a compound key.

    Natural Key:

    When one of the data elements stored within a construct is utilized as theprimary 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 indexingB-Tree indexingInverted list indexingMemory resident tableTable 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, informationabout every relation and index that it contains. This information is stored in acollection of relations maintained by the system called metadata. It is alsocalled data dictionary.

    55. What is meant by query optimization?The phase that identifies an efficient execution plan for evaluating a querythat has the least estimated cost is referred to as query optimization.

    56. What is join dependency and inclusion dependency?Join Dependency: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 rulesfor JD.

  • 7/29/2019 Lab Programs Dbms

    40/45

    Inclusion Dependency:An Inclusion Dependency is a statement of the form that some columns of arelation are contained in other columns. A foreign key constraint is an exampleof inclusion dependency.

    57. 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 arereflected on disk. This property is called durability.

    58. What do you mean by atomicity and aggregation?

    Atomicity:Either all actions are carried out or none are. Users should not have to worryabout the effect of incomplete transactions. DBMS ensures this by undoing theactions of incomplete transactions.

    Aggregation:A concept which is used to model a relationship between a collection of entitiesand relationships. It is used when we need to express a relationship amongrelationships.

    59. What is a Phantom Deadlock?In distributed deadlock detection, the delay in propagating local informationmight cause the deadlock detection algorithms to identify deadlocks that do notreally exist. Such situations are called phantom deadlocks and they lead tounnecessary aborts.

    60. What is a checkpoint and when does it occur?A Checkpoint is like a snapshot of the DBMS state. By taking checkpoints, theDBMS can reduce the amount of work to be done during restart in the event ofsubsequent crashes.

    61. What are the different phases of ARIES Algorithm transaction?Different phases areAnalysis phaseRedo PhaseUndo phase

    62. What do you mean by flat file database?It is a database in which there are no programs or user access languages. It hasno cross-file capabilities but is user-friendly and provides user-interfacemanagement.

  • 7/29/2019 Lab Programs Dbms

    41/45

    63. What is "transparent DBMS"?It is one, which keeps its Physical Structure hidden from user.

    64. Brief theory of Network, Hierarchical schemas and their propertiesNetwork schema uses a graph data structure to organize record; example for sucha database management system is CTCG while a hierarchical schema uses a treedata structure; example for such a system is IMS.

    65. What is a query?A query with respect to DBMS relates to user commands that are used to interactwith a data base. The query language can be classified into data definitionlanguage and data manipulation language.

    66. What do you mean by Correlated sub query?

    Sub queries, or nested queries, are used to bring back a set of rows to be usedby the parent query. Depending on how the sub query is written, it can beexecuted once for the parent query or it can be executed once for each rowreturned by the parent query. If the sub query is executed for each row of theparent, this is called a correlated sub query.

    A correlated sub query can be easily identified if it contains any references tothe parent sub query columns in its WHERE clause. Columns from the sub querycannot be referenced anywhere else in the parent query. The following exampledemonstrates a non-correlated sub query.

    E.g.Select * From CUST Where '10/03/1990' IN (Select ODATE from ORDER WhereCUST.CNUM = ORDER.CNUM)

    67. What are the primitive operations common to all record management systems?AdditionDeletion andModification.

    68. Name the buffer in which all the commands that are typed in are stored

    Edit Buffer

    69. What are the unary operations in Relational Algebra?

    PROJECTION and SELECTION.

    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.

  • 7/29/2019 Lab Programs Dbms

    42/45

    JOIN: Concatenation of rows from one relation and related rows from another.

    71. What is RDBMS KERNEL?Two important pieces of RDBMS architecture are the kernel, which is thesoftware, and the data dictionary, which consists of the system-level datastructures used by the kernel to manage the database

    You might think of an RDBMS as an operating system (or set of subsystems),designed specifically for controlling data access;Its primary functions are storing, retrieving, and securing data. An RDBMSmaintains its own list of authorized users and their associated privileges;Manages memory caches and paging;Controls locking for concurrent resource usage;Dispatches and schedules user requests; andManages space usage within its table-space structures.

    72. Name the sub-systems of a RDBMS.I/O, Security, Language Processing, Process Control, Storage Management, Loggingand Recovery, Distribution Control, Transaction Control, Memory Management, LockManagement

    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 aspecial area of the database and maintained exclusively by the kernel.

    74. 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.

    75. not only RDBMS takes care of locating data it also determines an optimalaccess path to store or retrieve the data.

    YES

    76. How do you communicate with an RDBMS?You communicate with an RDBMS using Structured Query Language (SQL)

    77. Define SQL and state the differences between SQL and other conventionalprogramming LanguagesSQL is a nonprocedural language that is designed specifically for data access

    operations on normalized relational database structures. The primary difference

  • 7/29/2019 Lab Programs Dbms

    43/45

    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 the

    entire database using a backup, if there is one.

    79. Spurious tuples may occur due toi. Bad normalizationii. Theta joins

    iii. Updating tables from join

    a) i & ii b) ii & iii c) i & iii

    80. Tables derived from the ERDa) Are totally UN normalizedb) Are always in 1NFc) Can be further denormalizedd) May have multi-valued attributes

    (b) Are always in 1NF

    81. What are database files, control files and log files? How many of thesefiles 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

  • 7/29/2019 Lab Programs Dbms

    44/45

    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 file 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

    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.

    82. 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.

  • 7/29/2019 Lab Programs Dbms

    45/45

    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

    84. What is database Trigger?A database trigger is a PL/SQL block that can defined to automatically execute

    for insert, update, and delete statements against a table. The trigger can e

    defined to execute once for the entire statement or once for every row that is

    inserted, updated, or deleted. For any one table, there are twelve events for

    which you can define database triggers. A database trigger can call database

    procedures that are also written in PL/SQL.

    85. Name two utilities that Oracle provides, which are use for backup andrecovery.

    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