O documento apresenta três estudantes com seus respectivos RAs e lista de disciplina de Engenharia de Software III ministrada pelo professor Wilson Vendramel em novembro de 2013. Além disso, contém códigos Java de classes de pagamento e usuário, tabelas para um sistema de livraria e códigos SQL para criação de tabelas.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Lista de alunos e códigos de disciplina
1. Nome: Caroline Silva Pimentel
Nome: Nádia Rodrigues
Nome: Rodrigo Naoki Yanase
RA: 121681023
RA: 121681008
RA: 121681018
Lista VIII - Engenharia de Software III
Prof. MSc. Wilson Vendramel
Novembro/2013
18. 30)
31)
package java.Envolvido;
public class Advogado {
private Cliente cliente;
private Advogado advogado;
private Advogado advogado;
}
public class AdvogadoDAO implements IAdvogadoDAO {
}
public class
private
private
private
}
Cliente {
IAdvogadoDAO iAdvogadoDAO;
Advogado advogado;
IParteContrariaDAO iParteContrariaDAO;
public class ClienteDAO implements IClienteDAO {
}
public interface IAdvogadoDAO {
private Cliente cliente;
}
public interface IClienteDAO {
private ParteContraria parteContraria;
}
public interface IParteContrariaDAO {
private Cliente cliente;
}
public class ParteContraria {
19. private IClienteDAO iClienteDAO;
}
public class ParteContrariaDAO implements IParteContrariaDAO {
}
32)
a)
b)
Unidade(idUni, região, endereço)
Venda(idVend, valor, idUni)
Produto(idProd, preco)
VendProd(id, idProd, idVend)
Porca(idProd, preco, diametro)
Parafuso(idProd, preco, tamanho)
Pino(idProd, preco, tamanho)
Arruela(idProd, preco, diametro)
c)
CREATE TABLE Venda (
valor DOUBLE
);
CREATE TABLE Produto (
preco VARCHAR(10)
);
CREATE TABLE Unidade (
regiao VARCHAR(10),
20. endereco VARCHAR(10)
);
CREATE TABLE Arruela (
diametro INT
);
CREATE TABLE Parafuso (
tamanho INT
);
CREATE TABLE Pino (
tamanho INT
);
CREATE TABLE Porca (
diametro INT
);
33)
a)
b)
21. c)
NomeCientifico(idNomeCientifico, idGenero, nomeCientifico)
SerVivo(id, idNomeCientifico, nomePopular, idGenero, idFamilia, idClasse, idReino, idFilo)
CategoriaTaxonomica(idSerVivo)
Genero(idGenero, nomeGenero)
Familia(idFamilia, nomeFamilia)
Classe(idClasse, nomeClasse)
Reino(idReino, nomeReino)
Filo(idFilo, nomeFilo)
d)
A vantagem da Gen/Espec é que ela torna mais fácil a compreensão de suas filhas, deixando claro que nome
científico, gênero, família, classe, reino e filo são tipos de categorias taxonômicas. O problema é que essa relação
22. poderia ser mais resumida, criando um atributo “tipo” na classe categoria taxonômica, que receberia os valores de
suas filhas. Por exemplo:
e)
CREATE TABLE Classe (
idClasse int PRIMARY KEY NOT NULL,
nomeClasse CHAR(20)
);
ALTER TABLE Classe ADD CONSTRAINT PK_Classe PRIMARY KEY (idClasse);
CREATE TABLE Familia (
idFamilia int PRIMARY KEY NOT NULL,
nomeFamilia CHAR(20)
);
ALTER TABLE Familia ADD CONSTRAINT PK_Familia PRIMARY KEY (idFamilia);
CREATE TABLE Filo (
idFilo int PRIMARY KEY NOT NULL,
nomeFilo CHAR(20)
);
ALTER TABLE Filo ADD CONSTRAINT PK_Filo PRIMARY KEY (idFilo);
CREATE TABLE Genero (
idGenero int PRIMARY KEY NOT NULL,
nomeGenero CHAR(20)
);
23. ALTER TABLE Genero ADD CONSTRAINT PK_Genero PRIMARY KEY (idGenero);
CREATE TABLE Reino (
idReino int PRIMARY KEY NOT NULL,
nomeReino CHAR(20)
);
ALTER TABLE Reino ADD CONSTRAINT PK_Reino PRIMARY KEY (idReino);
CREATE TABLE CategoriaTaxonomica (
idSerVivo int PRIMARY KEY NOT NULL,
idGenero int
);
ALTER TABLE CategoriaTaxonomica ADD CONSTRAINT PK_CategoriaTaxonomica PRIMARY
KEY (idSerVivo);
CREATE TABLE SerVivo (
idSerVivo int PRIMARY KEY NOT NULL,
idNomeCientifico VARCHAR(25) NOT NULL,
idGenero int NOT NULL,
idFamilia int NOT NULL,
idClasse int NOT NULL,
idReino int NOT NULL,
idFilo int NOT NULL,
nomePopular CHAR(30)
);
ALTER TABLE SerVivo ADD CONSTRAINT PK_SerVivo PRIMARY KEY
(idSerVivo,idNomeCientifico,idGenero,idFamilia,idClasse,idReino,idFilo);
CREATE TABLE NomeCientifico (
idNomeCientifico int PRIMARY KEY NOT NULL,
nomeCientifico CHAR(30)
);
ALTER TABLE NomeCientifico ADD CONSTRAINT PK_NomeCientifico PRIMARY KEY
(idNomeCientifico);
ALTER TABLE CategoriaTaxonomica ADD CONSTRAINT FK_CategoriaTaxonomica_0 FOREIGN
KEY (idGenero) REFERENCES Genero (idGenero);
f)
/* criando as tabelas */
create table NomeCientifico(
idNomeCientifico int primary key auto_increment not null,
24. idGenero int,
constraint fk_idGenero foreign key (idGenero) references Genero (idGenero),
nomeCientifico varchar(30))
create table SerVivo(
idSerVivo int primary key auto_increment not null,
nomePopular varchar(30),
idNomeCientifico int,
idGenero int,
idFamilia int,
idClasse int,
idReino int,
idFilo int,
constraint fk_idNomeCientifico foreign key (idNomeCientifico) references
NomeCientifico (idNomeCientifico),
constraint fk_idGenero foreign key (idGenero) references Genero (idGenero),
constraint fk_idFamilia foreign key (idFamilia) references Familia (idFamilia),
constraint fk_idClasse foreign key (idClasse) references Classe (idClasse),
constraint fk_idReino foreign key (idReino) references Reino (idReino),
constraint fk_idFilo foreign key (idFilo) references Filo (idFilo))
create table CategoriaTaxonomica(
idSerVivo int,
constraint fk_idSerVivo foreign key (idSerVivo) references SerVivo (idSerVivo))
create table Genero(
idGenero int primary key auto_increment not null,
nomeGenero varchar(30))
create table Familia(
idFamilia int primary key auto_increment not null,
nomeFamilia varchar(30))
create table Classe(
idClasse int primary key auto_increment not null,
nomeClasse varchar(30))
create table Reino(
idReino int primary key auto_increment not null,
nomeReino varchar(30))
create table Filo(
idFilo int primary key auto_increment not null,
nomeFilo varchar(30))
/* populando as tabelas com os dados de cachorro */
insert into SerVivo values(01, ‘cachorro’, 01, 01, 01, 01, 01, 01)
insert into NomeCientifico values (01, 01, ‘canis lupus familiaris’)
insert into CategoriaTaxonomica values (01)
insert into Genero values (01, ‘canis’)
insert into Familia values 01, ‘canidae’)
insert into Classe values (01, ‘mammalia’)
insert into Reino values (01, ‘animalia’)
25. insert into Filo values (01, ‘chordata’)
/* populando as tabelas com os dados de humano */
insert into SerVivo values(02, ‘humano’, 02, 02, 02, 02, 02, 02)
insert into NomeCientifico values (02, 02, ‘homo sapiens’)
insert into CategoriaTaxonomica values (02)
insert into Genero values (02, ‘homo’)
insert into Familia values 02, ‘hominidae’)
insert into Classe values (02, ‘mammalia’)
insert into Reino values (02, ‘animalia’)
insert into Filo values (02, ‘chordata’)
g)
/* pesquisando dados do cachorro */
SELECT
SerVivo.nomePopular,
NomeCientifico.nomeCientifico,
Genero.nomeGenero,
Familia.nomeFamilia,
Classe.nomeClasse,
Reino.nomeReino,
Filo.nomeFilo
FROM SerVivo
INNER JOIN NomeCientifico
ON SerVivo.idNomeCientifico = NomeCientifico.idNomeCientifico
INNER JOIN Genero
ON SerVivo.idGenero = Genero.idGenero
INNER JOIN Familia
ON SerVivo.idFamilia = Familia.idFamilia
INNER JOIN Classe
ON SerVivo.idClasse = Classe.idClasse
INNER JOIN Reino
ON SerVivo.idReino = Reino.idReino
INNER JOIN Filo
ON SerVivo.idFilo = Filo.idFilo
WHERE idSerVivo = 1;
/* pesquisando dados do humano */
SELECT
SerVivo.nomePopular,
NomeCientifico.nomeCientifico,
Genero.nomeGenero,
Familia.nomeFamilia,
Classe.nomeClasse,
Reino.nomeReino,
Filo.nomeFilo
FROM SerVivo
INNER JOIN NomeCientifico
ON SerVivo.idNomeCientifico = NomeCientifico.idNomeCientifico
INNER JOIN Genero
ON SerVivo.idGenero = Genero.idGenero
26. INNER JOIN Familia
ON SerVivo.idFamilia = Familia.idFamilia
INNER JOIN Classe
ON SerVivo.idClasse = Classe.idClasse
INNER JOIN Reino
ON SerVivo.idReino = Reino.idReino
INNER JOIN Filo
ON SerVivo.idFilo = Filo.idFilo
WHERE idSerVivo = 2;