You are on page 1of 8

CREATE TABLE Person(

id Integer,
firstName Varchar,
lastName Varchar
);

CREATE TABLE Student(


credit Varchar
) INHERITS (Person);
Crear modelo objeto-relacional

Crear clases con relaciones de composición/agregación

CREATE TABLE person (


id integer,
firstname varchar(20),
lastname varchar(20));

CREATE TABLE Student(


rank varchar(20)
)INHERITS (person);

CREATE TABLE Faculty(


credits varchar(20)
)INHERITS (person);

CREATE TABLE AdjunctFact(


coursePayRate varchar(20)
)INHERITS (Faculty);

CREATE TABLE UnderGraduate(


major varchar(20)
)INHERITS (Student);

CREATE TABLE Graduate(


Program varchar(20)
)INHERITS (Student);

CREATE TABLE Freshman(


)INHERITS (UnderGRaduate);

CREATE TABLE Sophomore(


)INHERITS (UnderGRaduate);

CREATE TABLE JUnior(


)INHERITS (UnderGRaduate);

CREATE TABLE Senior(


)INHERITS (UnderGRaduate);

Crear modelo de objetos


Person

firstName text
lastname
Id int

Student
Faculty
-nombreMiembro
rank TEXT
major TEXT
credits TEXT

FullTimeFac
UnderGraduate
annualSalary
major TEXT

Freshman AdjuntFac
coursePayRate

Sophomore

Junior

Senior
Práctica

1.- Generar modelo <ER-OO>

Student
stdId INT (PK)
lName TEXT

Majory Result
stdId (FK) stdId INT (FK)
major TEXT classNo (FK)
credits INT (FK) grade TEXT

Credit Class
credits INT (PK) classNo (PK)
status BOOLEAN schedule TEXT
facId INT
room TEXT
2.- Generar script <OO> que crea las tablas del modelo (ODL)

CREATE TABLE Student (


lName varchar(20),
stdid integer
);
alter table Student add
constraint PK_ID_1 primary key(stdid);
CREATE TABLE Result(
stdid integer,
classNo integer,
grade varchar(20)
)INHERITS (Student);
CREATE TABLE Class(
classNo integer,
schedule varchar(20),
facId varchar(20),
room varchar(20)
)INHERITS (Result);
CREATE TABLE Majory(
stdid integer,
major varchar(20),
credits integer
)INHERITS (Student);
CREATE TABLE Credit(
credits Integer,
status varchar(20)
)INHERITS (Majory);

alter table Credit add


constraint PK_ID_3 primary key(credits);
alter table Class add
constraint PK_ID_2 primary key(classNo);
alter table Result add
constraint PK_ID_12 primary key(classNo);
alter table Result add
constraint FK_ID_34 foreign key(stdid) references Student(stdid)
alter table Result add
constraint FK_ID_2 foreign key(classNo) references Class(classNo);
alter table Majory add
constraint FK_ID_3 foreign key(stdid) references Student(stdid);
alter table Majory add
constraint FK_ID_4 foreign key(credits) references Credits(credits);

select * FROM Student


INSERT INTO Student values('Luis',1),('Jorge',2);

update Student
set lname = 'Luis'
where lname = 'Tenoch'

INSERT INTO Credit values ('Jorge',2,'Adios',2,'Junior'),(2,'Junior')

Select * from Class


insert into Class values ('Jorge',2,3,'Despertino','UTEQ2018','PlantaAB a3')

3.- Generar las consultas más óptimas posibles (OML):

a) Obtener la especialidad (major) de “Luis”


cuando ésta adquiera el status de “Senior”.

Select major from Majory where lname = 'Luis'


b) Obtener Identificadores de los profesores
(facId) de los estudiantes en status de “Senior”

select facid from Class where stdid in(


Select stdid from Credit where status = 'Senior')

You might also like