1. 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, accd-date: date, location: string)
OWNS (driver-id #:string, Regno:string)
PARTICIPATED (driver-id: string, Regno:string, report-number:int, damage amou
nt:int)
(i) Create the above tables by properly specifying the primary keys and the
foreign keys.
Person
create table person
(
driverid varchar(5) primary key,
name varchar(30),
address varchar(50)
);
Car
create table car
(
regno varchar(5) primary key,
model varchar(25),
year int
);
Accident
create table accident
(
reportno int primary key,
date1 date,
location varchar(30)
);
Owns
create table owns
(
driverid varchar(5) references person(driverid),
regno varchar(5) references car(regno)
);
Participated
create table participated
(
driverid varchar(5) references person(driverid)
regno varchar(5) references car(regno)
reportno int references accident(reportno)
damages int,
);
(ii) Enter at least five tuples for each relation.
person
insert into person values (1,'abc','hkbkce,nagawara');
insert into person values (2,'bcd','atria,yelahanka');
insert into person values (3,'ade','ramahiah,near iisc');
insert into person values (4,'cfg','mvjce,whitefield');
insert into person values (5,'rte','pesit,somewhere');
car
insert into car values ('a1','merc',2007);
insert into car values ('a2','porsche',2005);
insert into car values ('b2','rolls royce',2006);
insert into car values ('b4','ferrari',1999);
insert into car values ('c1','bentley',2000);
insert into car values ('d2','maybach',2007);
accident
insert into accident values (1,'1-01-2006','domlur');
insert into accident values (2,'28-03-2006','m.g.road');
insert into accident values (3,'2-12-2006','r.t.nagar');
insert into accident values (4,'5-01-2007','yelahanka');
insert into accident values (5,'26-01-2007','koramangla');
insert into accident values (6,'4-02-2007','majestic');
owns
insert into owns values (1,'a1');
insert into owns values (2,'a2');
insert into owns values (2,'c1');
insert into owns values (3,'b2');
insert into owns values (4,'b4');
insert into owns values (5,'d2');
participated
insert into participated values (1,'a1',1,500);
insert into participated values (2,'a2',1,2000);
insert into participated values (3,'b2',1,1000);
insert into participated values (1,'a1',2,1500);
insert into participated values (4,'c1',2,800);
insert into participated values (5,'d2',3,750);
insert into participated values (2,'c1',3,600);
insert into participated values (1,'a1',3,200);
insert into participated values (5,'d2',4,1000);
insert into participated values (2,'a2',5,1200);
insert into participated values (3,'b2',6,10000);
insert into participated values (2,'a1',6,5000);
(iii) Demonstrate how you
a. Update the damage amount to 25000 for the car with a specific Regno in the AC
CIDENT table with report number 12.
update participated set damages=25000 where reportno=4 and regno='d2';
b. Add a new accident to the database.
insert into accident values (7,'16-mar-2007','nagawara');
insert into participated values (2,'a1',7,15000);
(iv) Find the total number of people who owned cars that were involved in accide
nts in 2008.
select count(distinct p.driverid) from accident a,owns o,participated p
where date1 like '%06' and a.reportno=p.reportno
and p.regno=o.regno and o.driverid=p.driverid;
(v) Find the number of accidents in which cars belonging to a specific model wer
e involved.
select count(*) from car c,participated p where model='porsche' and c.regno=
p.regno;