Mostrando postagens com marcador Artigos. Mostrar todas as postagens
Mostrando postagens com marcador Artigos. Mostrar todas as postagens

domingo, 23 de março de 2014

Banco de dados CEP

base CEP SQL SERVER 2008 arquivo .BAK contendo as tabelas ESTADOS->CIDADES->BAIRROS->LOGRADOUROS e com 709440 registros de CEP (atualizado em 22/03/2014) DOWNLOAD - http://1drv.ms/1eAF3UF

domingo, 1 de março de 2009

Engenharia de Software - Doomsday ep01

A História:

James Bond desenvolveu um sistema bastante complexo, não adotou nenhuma metodologia de desenvolvimento, código complexo,funções paranormais (só baixando um santo pra saber) e inúmeras Stored Procedures ao invés de utilizar da boa prática de uma camada de Acesso aos Dados (DAL) no software e ainda por cima não documentou nada, nem sequer comentou as Stored Procedures. Depois de quase concluído o sistema, James saiu da empresa e deixou a liga da justiça na mão, pois nada foi documentado, nem sequer para que serve o sistema. Posteriormente com sistema ainda inacabado, o cliente Lex Luthor solicitou N modificações no sistema.
A liga da justiça foi acionada, com 0% de conhecimento do sistema Martian Manhunter verificou as alterações a serem feitas passou para o Mestre Yoda o que deveria ser feito. Logo Mestre Yoda passou o prazo de entrega para as alterações e Lex Luthor ficou satisfeito por enquanto...só por enquanto.
Martian Manhunter com seu amigo Arqueiro Verde começaram a documentar o sistema e enteder o funcionamento do sistema e nessa documentação percebem que o perigo eminente é muito maior do que esperavam. As modificações são imensas e irão afetar o sistema inteiro. Martian Manhunter percebeu então que o prazo para a entrega da solicitação feita por Lex Luthor não seria mais possível, nem mesmo com a ajuda do The Flash...



A história acima pode ser um exemplo de como não proceder ao desenvolver um software, a falta de documentação e entendimento do sistema prejudicou toda a Liga da Justiça. Podemos citar isso como falta de maturidade em uma equipe de desenvolvimento de softwares. São boas práticas que essencialmente ajudam na futura manutenibilidade do código.

Estimativas de software são geralmente feitas na hora errada e pelas pessoas erradas!



Tabelas desnormalizadas, atributos no banco com underscore, SQL junto com regras de negócios, Stored Procedure com regras de negócio, interface carregada, várias opções de cadastro em uma mesma tela, falta de comentário em linha de código e todo tipo possível de má prática em um desenvolvimento de software...

Um dos fatores mais importante na qualidade do trabalho de desenvolvimento de software é a qualidade dos programadores.

sábado, 31 de janeiro de 2009

Stored Procedure

Stored Procedures são procedimentos armazenados no banco de dados que aceitam parâmetros de entrada e retornam valores.

Muito se discute na sua utilização, de certa forma há uma briga entre desenvolvedores na qual uns são extremamente contra e outros a favor do uso das Stored Procedures.



Eu sou do time que joga contra as Stored Procedures.



Acredito que Stored Procedures foram feitas para o DBA e não para o programador, acredito também que seu uso junto aos softwares é nada mais do que POG.

Uma boa dica é: Se for usar Stored Procedure: Nunca coloque /else/case/
nada de condições nas mesmas, somente um insert/delete/update simples.
Caso use os if/elses ou cases da vida, toda teória de que SPs são mais
rápidas/otimizadas serão anuladas.

terça-feira, 8 de julho de 2008

Microsoft SkyDrive

Melhor que o serviço GDrive do google, pois este da microsof não é necessário programa para logar no drive virutal e ainda é possível compartilhar com os amigos os seus arquivos.
Há muito tempo estava procurando um serviço assim e agora disponível para todos, até que enfim a Microsoft fez algo que presta e ainda com 5GB, obaaaaaaaaaaaaaa.

Meu Drive virtual - http://cid-e67429c4ffea5feb.skydrive.live.com/browse.aspx/Compartilhado

sábado, 28 de junho de 2008

Monte Carlo PI - Distribuído parte 2


Outro método interessante para o cálculo de π pode ser realizado através de Monte Carlo utilizando-se a estatística. Nesse método são sorteados aleatoriamente pontos num quadrado compreendido entre as coordenadas O = (0,0) e B = (1,1). Em seguida calcula-se a distância dos pontos sorteados cn = (xn,yn) até a origem O = (0, 0). π pode ser aproximado através do número de pontos inscritos na circunferência de raio 1 em relação ao total de pontos sorteados no quadrado de lado 1.

Código:

Versão 1 - Servidor se conecta ao cliente.
Versão 2 - Cliente se conecta ao Servidor.

Cliente e Servidor - Compactados, cliente e servidor.

quinta-feira, 17 de abril de 2008

Monte Carlo PI - Paralelismo parte 1



Valores de PI podem ser calculados de diversas maneiras. Vamos considerar o seguinte método
para calcular o valor de PI:
1. Inscreva um circulo em um quadrado de lado = 1
2. Gere pontos aleatórios dentro do quadrado
3. Determine o numero de pontos que cair˜ao dentro do círculo
4. Faça ser o numero de pontos dentro do círculo dividido pelo número de pontos gerados
5. PI = 4r
6. Quanto mais pontos s˜ao gerados, mais preciso é o número PI


O programa deve ser feito utilizando a biblioteca pthreads em C.
Deverá existir uma thread "mestre". Essa thread ir´a instanciar o número necessário de threads
"escravo" para executar o cálculo do PI. A thread "mestre" pode ser a execução do programa principal. O usuario deve entrar com a quantidade de threads "escravos" que seu programa ira criar. Alem disso, o usuario vai entrar com a quantidade de pontos a serem gerados. A thread "mestre" ir´a criar a quantidade de threads "escravos" e dividir a quantidade de pontos que cada thread "escravo" ira gerar. Ao final da execu¸c˜ao, a thread "escravo" ir´a atualizar uma variável compartilhada (utilizando seção crítica) para informar a quantidade de pontos gerado dentro do círculo.
Após o término de todas threads "escravo", a thread "mestre" ir´a encontrar o valor de PI fazendo: PI = 4r.


Código aqui

segunda-feira, 18 de junho de 2007

Projetos de Sistemas de Informação - Trabalho Final



Veja seqüência de figuras para descrever como foi feito a execução do projeto:

Figura 1 = Como o professor explicou...
Figura 2 = Como o líder do projeto entendeu...
Figura 3 = Como o analista projetou...
Figura 4 = Como o programador construiu...
Figura 5 = Como o Consultor de Negócios descreveu...
Figura 6 = Como o projeto foi documentado...
Figura 7 = Que funcionalidades foram instaladas...
Figura 8 = Como o professor foi cobrado...
Figura 9 = Como foi mantido...
Figura 10 = O que o professor realmente queria...


PROJETO DE DESENVOLVIMENTO DE UM SISTEMA PARA CONTROLE DE SERVIÇOS DE UMA OFICINA

Objetivo
O objetivo do Sistema de Gestão de serviços consiste em controlar todas as informações necessárias para a equipe da oficina e os gestores da empresa possam realizar seu trabalho.

Forma de Contratação e de Desenvolvimento
O sistema deve ser desenvolvido segundo critérios próprios de contratação da instituição, que envolve os seguintes passos, que são baseado na estrutura do RUP:
Concepção do SGATE
• Desenvolvimento de uma Visão inicial do sistema (proposta técnica).

Elaboração do SGATE• Desenvolvimento de protótipo de interface do usuário.
• Desenvolvimento de diagrama de casos de uso.
• Desenvolvimento de diagrama de classes do sistema.

Construção do SGATE
• Implementação do sistema

Transição do SGATE

• Apresentação ao contratante
Marco 3 : entrega do sistema definitivo
Neste marco, o sistema será apresentado ao cliente (no caso, o professor).

Trabalho da Disciplina
O trabalho da disciplina consiste de implementar o sistema conforme o critério de contratação acima, assim como os artefatos de cada fase.

Download Projeto - Clique aqui

domingo, 17 de junho de 2007

Banco de Dados - Trabalho Final

Projetar e implementar um sistema de banco de dados para manter as informações relativas
a uma aplicação definida pelo grupo e aprovada pelo professor. Os temas para desenvolvimento poderão ser os mesmos utilizados nas disciplinas Gerência de Projetos
e/ou Projeto de Sistemas.
Outros temas poderão ser escolhidos, a critério do grupo e com aprovação do professor. O
esquema relacional resultante do projeto deverá gerar, no mínimo, 10 tabelas.
Tarefas a serem cumpridas:

1) Representar o esquema conceitual do banco de dados através do diagrama entidaderelacionamento e do diagrama de classes.
2) Fazer o mapeamento do diagrama entidade-relacionamento ou do diagrama de classes para um esquema relacional, respeitando as regras de normalização.
3) Escrever comandos CREATE TABLE para as tabelas do esquema relacional gerado, considerando a existência de chaves primárias e estrangeiras.
4) Elaborar consultas SQL com as seguintes características (cada consulta deverá incluir, no mínimo, 3 tabelas):
· Duas consultas envolvendo junção.
· Três consultas envolvendo operações de conjuntos (união, interseção e diferença).
· Quatro consultas envolvendo operações agregadas (SUM, COUNT, MAX, MIN,
AVG), pelo menos uma das consultas deve envolver as cláusulas GROUP BY e
HAVING.
· Três consultas envolvendo os operadores LIKE, BETWEEN e IN.
· Criar duas visões, cada uma envolvendo pelo menos três tabelas.

OBS: Essas consultas deverão ser não apenas elaboradas, em termos de SQL Plus, mas deverão ser criadas na interface de programação.

5) Fazer uma interface para entrada de dados utilizando um ambiente de desenvolvimento integrado (Delphi, C++ Builder), java ou alguma ferramenta para desenvolvimento Web. Essa interface deverá contemplar a implementação de pelo menos cinco regras de negócio definidas para a aplicação.

domingo, 10 de junho de 2007

Gerência de Projetos - Trabalho Final



I.Meta: Elaborar, até a data de entrega estabelecida pelo professor, os documentos pedidos em uma das fases:

-Fase I: Proposta técnica-comercial;
-Fase II: Plano de projeto;

Em anexo, segue todo o trabalho e enunciado para o mesmo.

Clique aqui para fazer o DOWNLOAD

Defeitos em monitor Samsung



O documento contém imagens de como consertar solda fria em monitores samsung, foi um colega meu que me mandou e estou disponibilizando para vocês.

Conserto de : 1 Imagem sem cor, cor oscilando, imagem descentralizada, imagem não fecha por completo na tela.

Download documento com imagens

PROGRAMA P2P - Uma variável do EA-Share



PROGRAMA P2P é um programa de comunicação peer-to-peer como o Napster. A idéia é disponibilizar a lista de arquivos locais em um servidor para que todos os clientes possam pesquisá-los. Porém a transferência de arquivos é feita entre cada usuário diretamente sem a passagem dos dados pelo servidor.

O servidor é implementado em Unix e os clientes em Windows . Para isso ele deve fazer o controle das conexões TCP/IP ativas e tratar eventuais desconexões. Deve ser implementado um protocolo simples de mensagens, entrada e saída de usuários. Toda busca de arquivos efetuada por um cliente, é pesquisada nos arquivos do servidor e o cliente deve receber o resultado da busca contendo o número IP dos demais clientes que possuem o arquivo requisitado. A transferência é feita diretamente entre os clientes.

O trabalho acima é uma variação do EA-SHARE, um amigo meu o (Eder - Link pro blog dele) fez uma nova versão daquele antigo, pra apresentar na matéria de Redes de Computadores neste primeiro semestre de 2007.

Este software não tem qualquer tipo de garantia, e o autor não poderá ser responsabilizado por qualquer tipo de prejuízo causado pela sua execução ou distribuição do mesmo. A execução deste programa correrá por sua conta e risco. Este programa tem licença gratuita e pode ser distribuído livremente...


quarta-feira, 6 de junho de 2007

Banco de Dados Exercício 7



1. Selecione os nomes de todos os empregados do departamento 'Research' que trabalham mais de 10 horas por semana no projeto 'ProdutoX'.

SELECT E.FNAME
FROM R11_EMPLOYEE E, R11_WORKS_ON W, R11_PROJECT P, R11_DEPARTMENT D
WHERE P.PNUMBER = W.PNO AND W.ESSN = E.SSN AND W.HOURS > 10
AND P.DNUM = D.DNUMBER AND P.PNAME = 'ProdutoX' AND D.DNAME = 'Research';

2. Selecionar o nome dos empregados que tenham um dependente com o mesmo primeiro nome que o deles.

SELECT E.FNAME' 'E.LNAME
FROM R11_EMPLOYEE E
WHERE E.FNAME = ANY
(SELECT D.DEPENDENT_NAME
FROM R11_DEPENDENT D
WHERE D.ESSN = E.SSN)

3. Selecionar o nome dos empregados que são diretamente supervisionados por 'Franklin Wong'.

SELECT E.FNAME' 'E.LNAME
FROM R11_EMPLOYEE E
WHERE E.SUPERSSN =
(SELECT E1.SSN
FROM R11_EMPLOYEE E1
WHERE E1.FNAME = 'Franklin' AND E1.LNAME = 'Wong');

4. Selecionar o nome do projeto e o número total de horas por semana (de todos os empregados) gastas no projeto.

SELECT P.PNAME, SUM(W.HOURS)
FROM R11_PROJECT P, R11_WORKS_ON W
WHERE P.PNUMBER = W.PNO GROUP BY P.PNAME;

5. Selecionar o nome dos empregados que trabalham em todos os projetos.

SELECT E.FNAME
FROM R11_EMPLOYEE E, R11_WORKS_ON WO, R11_PROJECT P
WHERE WO.PNO = P.PNUMBER AND WO.ESSN = E.SSN
GROUP BY E.FNAME;

6. Selecionar o nome dos empregados que não trabalham em nenhum projeto.

SELECT E.FNAME
FROM R11_EMPLOYEE E, R11_WORKS_ON WO, R11_PROJECT P
WHERE WO.PNO = P.PNUMBER AND WO.ESSN NOT IN E.SSN
GROUP BY E.FNAME;

7. Selecionar o nome do departamento e a média salarial de seus empregados.

SELECT DPTO.DNAME, AVG(E.SALARY) AS MEDIA_SALARIO
FROM R11_DEPARTMENT DPTO, R11_EMPLOYEE E
WHERE E.SSN = DPTO.MGRSSN
GROUP BY DPTO.DNAME;

8. Selecione a média salarial dos empregados do sexo feminino.

SELECT AVG(E.SALARY)
FROM R11_EMPLOYEE E
WHERE E.SEX = 'F';

9. Selecione o nome e o endereço dos empregados que trabalhem em pelo menos um projeto localizado em 'Houston', mas cujo departamento não se localiza em 'Houston'.

SELECT E.FNAME, E.ADDRESS
FROM R11_EMPLOYEE E, R11_PROJECT P, R11_DEPARTMENT DPT, R11_DEPT_LOCATIONS DL, R11_WORKS_ON W
WHERE E.DNO = DPT.DNUMBER AND DPT.DNUMBER = DL.DNUMBER
AND DL.DLOCATION <> 'Houston' AND E.SSN = W.ESSN
AND W.PNO = P.PNUMBER AND P.PLOCATION = 'Houston'
GROUP BY E.FNAME, E.ADDRESS;

10. Selecione o nome de todos os gerentes de departamento que não tenham dependentes.

SELECT E.FNAME
FROM R11_EMPLOYEE E, R11_DEPARTMENT DPT
WHERE E.SSN = DPT.MGRSSN AND E.SSN NOT IN
(SELECT D.ESSN
FROM R11_DEPENDENT D);

Banco de Dados Exercício 6


a) Selecionar os nomes dos os alunos do curso de “CIÊNCIA DA COMPUTAÇÃO”.

SELECT A.NOME
FROM R10_ALUNO A, R10_DEPARTAMENTO D
WHERE A.CODDEPTO = D.CODDEPTO AND D.NOMEDEPTO = 'Ciencia da Computacao';

b) Selecionar os nomes das disciplinas que o professor “KING” lecionou entre 1998 e1999.
SELECT D.NOMEDISC
FROM R10_DISCIPLINA D, R10_TURMA T
WHERE D.CODDISC = T.CODDISC AND T.PROFESSOR = 'King' AND T.ANO BETWEEN 1998 AND 1999;

c) Selecionar o nome da disciplina, o código da turma, o semestre, o ano e o número dealunos matriculados para as disciplinas que do professor “KING”.

SELECT D.NOMEDISC , T.CODTURMA, T.SEMESTRE, T.ANO, COUNT(A.MATRICULA) AS NUM_ALUNOS
FROM R10_DISCIPLINA D, R10_TURMA T, R10_HISTORICO H, R10_ALUNO A
WHERE D.CODDISC = T.CODDISC AND T.CODTURMA = H.CODTURMA AND H.MATRICULA = A.MATRICULA AND T.PROFESSOR = 'King' GROUP BY D.NOMEDISC , T.CODTURMA, T.SEMESTRE, T.ANO;

d) Selecionar o código da disciplina, o nome da disciplina, o número de créditos, osemestre, o ano e o conceito obtido pelo aluno em seu histórico escolar.

SELECT D.CODDISC, D.NOMEDISC, D.CREDITOS, T.SEMESTRE, T.ANO, H.CONCEITO
FROM R10_DISCIPLINA D, R10_TURMA T, R10_HISTORICO H, R10_ALUNO A
WHERE D.CODDISC = T.CODDISC AND T.CODTURMA = H.CODTURMA AND H.MATRICULA = A.MATRICULA;

e) Selecione o nome do aluno e o nome do departamento para os alunos que possuemapenas conceito “A”.

SELECT DISCTINCT A.NOME,D.NOMEDEPTO
FROM R10_HISTORICO H,R10_ALUNO A,R10_DEPARTAMENTO D
WHERE A.MATRICULA=H.MATRICULA AND A.CODDEPTO=D.CODDEPTO ANDA.NOME NOT IN
(SELECT DISTINCT A.NOME
FROM R10_HISTORICO H,R10_ALUNO AWHERE A.MATRICULA=H.MATRICULA AND UPPER(H.CONCEITO)<>'A');

f) Selecionar o nome do aluno e o nome do departamento para os alunos que nãoobtiveram nenhum conceito “A”.

SELECT DISTINCT A.NOME,D.NOMEDEPTO
FROM R10_HISTORICO H,R10_ALUNO A,R10_DEPARTAMENTO D
WHERE A.MATRICULA=H.MATRICULA AND A.CODDEPTO=D.CODDEPTO AND A.NOME NOT IN
(SELECT DISTINCT A.NOME
FROM R10_HISTORICO H,R10_ALUNO A
WHERE A.MATRICULA=H.MATRICULA AND UPPER(H.CONCEITO)='A');

g) Inserir na tabela alunos os seguintes valores <25,’johnson’,02).>
INSERT INTO R10_Aluno VALUES (25,'Johnson',02);

h) Inserir na tabela disciplina os seguintes valores <’CC4390’,’Engenharia doConhecimento’,3,01>.

INSERT INTO R10_Disciplina VALUES ('CC4390','Engenharia doConhecimento',3,01);

Banco de Dados Exercício 5

DROP TABLE R11_DEPARTMENT CASCADE CONSTRAINTS;
DROP TABLE R11_EMPLOYEE CASCADE CONSTRAINTS;
DROP TABLE R11_DEPT_LOCATIONS CASCADE CONSTRAINTS;
DROP TABLE R11_PROJECT CASCADE CONSTRAINTS;
DROP TABLE R11_WORKS_ON CASCADE CONSTRAINTS;
DROP TABLE R11_DEPENDENT CASCADE CONSTRAINTS;

CREATE TABLE R11_DEPARTMENT (
DNAME VARCHAR(15) NOT NULL,
DNUMBER INT NOT NULL,
MGRSSN CHAR(9) NOT NULL,
MGRSTARTDATE DATE,
PRIMARY KEY (DNUMBER),
UNIQUE(DNAME)
);

CREATE TABLE R11_EMPLOYEE (
FNAME VARCHAR(15) NOT NULL,
MINIT CHAR,
LNAME VARCHAR(15) NOT NULL,
SSN CHAR(9) NOT NULL,
BDATE DATE,
ADDRESS VARCHAR(30),
SEX CHAR,
SALARY DECIMAL(10,2),
SUPERSSN CHAR(9),
DNO INT NOT NULL,
PRIMARY KEY (SSN),
FOREIGN KEY (SUPERSSN) REFERENCES R11_EMPLOYEE(SSN),
FOREIGN KEY (DNO) REFERENCES R11_DEPARTMENT(DNUMBER)
);

ALTER TABLE R11_DEPARTMENT ADD CONSTRAINT FK_R11_EMPLOYEEDEPT FOREIGN KEY (MGRSSN) REFERENCES R11_EMPLOYEE(SSN) DEFERABLE;

CREATE TABLE R11_DEPT_LOCATIONS (
DNUMBER INT NOT NULL,
DLOCATION VARCHAR(15) NOT NULL,
PRIMARY KEY (DNUMBER, DLOCATION),
FOREIGN KEY (DNUMBER) REFERENCES R11_DEPARTMENT(DNUMBER)
);

CREATE TABLE R11_PROJECT (
PNAME VARCHAR(15) NOT NULL,
PNUMBER INT NOT NULL,
PLOCATION VARCHAR(15),
DNUM INT NOT NULL,
PRIMARY KEY (PNUMBER),
UNIQUE(PNAME),
FOREIGN KEY (DNUM) REFERENCES R11_DEPARTMENT(DNUMBER)
);

CREATE TABLE R11_WORKS_ON (
ESSN CHAR(9) NOT NULL,
PNO INT NOT NULL,
HOURS DECIMAL(3,1) NOT NULL,
PRIMARY KEY(ESSN, PNO),
FOREIGN KEY(ESSN) REFERENCES R11_EMPLOYEE(SSN),
FOREIGN KEY(PNO) REFERENCES R11_PROJECT(PNUMBER)
);

CREATE TABLE R11_DEPENDENT (
ESSN CHAR(9) NOT NULL,
DEPENDENT_NAME VARCHAR(15) NOT NULL,
SEX CHAR,
BDATE DATE,
RELATIONSHIP VARCHAR(8),
PRIMARY KEY (ESSN, DEPENDENT_NAME),
FOREIGN KEY(ESSN) REFERENCES R11_EMPLOYEE(SSN)
);

INSERT INTO R11_DEPARTMENT VALUES ('Research', 5, '333445555', '22/05/1988');
INSERT INTO R11_DEPARTMENT VALUES ('Administration', 4, '987654321', '01/01/1995');
INSERT INTO R11_DEPARTMENT VALUES ('Headquarters', 1, '888665555', '19/06/1981');

INSERT INTO R11_DEPT_LOCATIONS VALUES (1, 'Houston');
INSERT INTO R11_DEPT_LOCATIONS VALUES (4, 'Stafford');
INSERT INTO R11_DEPT_LOCATIONS VALUES (5, 'Bellaire');
INSERT INTO R11_DEPT_LOCATIONS VALUES (5, 'Sugarland');
--#INSERT INTO R11_DEPT_LOCATIONS VALUES (null, 'Houston');

INSERT INTO R11_PROJECT VALUES ('ProdutoX', 1, 'Bellaire', 5);
INSERT INTO R11_PROJECT VALUES ('ProdutoY', 2, 'Sugarland', 5);
INSERT INTO R11_PROJECT VALUES ('ProdutoZ', 3, 'Houston', 4);
INSERT INTO R11_PROJECT VALUES ('Computerization', 10, 'Stafford', 4);
INSERT INTO R11_PROJECT VALUES ('Reorganization', 20, 'Houston', 1);
INSERT INTO R11_PROJECT VALUES ('Newbenefits', 30, 'Stafford', 4);

INSERT INTO R11_EMPLOYEE VALUES ('James', 'E', 'Borg', '888665555', '10/11/1937', '450 Stone, Houston, TX', 'M', 55000, null, 1);
INSERT INTO R11_EMPLOYEE VALUES ('Franklin', 'T', 'Wong', '333445555', '08/12/1955', '638 Voss, Houston, TX', 'M', 40000, '888665555', 5);
INSERT INTO R11_EMPLOYEE VALUES ('John', 'B', 'Smith', '123456789', '01/09/1965', '731 fondren, Houston, TX', 'M', 30000, '333445555', 5);
INSERT INTO R11_EMPLOYEE VALUES ('Jennifer', 'S', 'Wallace', '987654321', '20/06/1941', '291 Berry, Bellaire, TX', 'F', 43000, '888665555', 4);
INSERT INTO R11_EMPLOYEE VALUES ('Alicia', 'J', 'Zelaya', '999887777', '19/01/1968', '3321 Castle, Spring, TX', 'F', 25000, '987654321', 4);
INSERT INTO R11_EMPLOYEE VALUES ('Ramesh', 'K', 'Narayan', '666884444', '15/09/1962', '975, Fire Oak, Humble, TX', 'M', 38000, '333445555', 5);
INSERT INTO R11_EMPLOYEE VALUES ('Joyce', 'A', 'English', '453453453', '31/07/1972', '6531 Rice, Houston, TX', 'F', 25000, '333445555', 5);
INSERT INTO R11_EMPLOYEE VALUES ('Ahmad', 'V', 'Jabbar', '987987987', '29/03/1969', '980 Dallas, Houston, TX', 'M', 25000, '987654321', 4);

INSERT INTO R11_WORKS_ON VALUES ('123456789', 1, 32.5);
INSERT INTO R11_WORKS_ON VALUES ('123456789', 2, 7.5);
INSERT INTO R11_WORKS_ON VALUES ('666884444', 3, 40.0);
INSERT INTO R11_WORKS_ON VALUES ('453453453', 1, 20.0);
INSERT INTO R11_WORKS_ON VALUES ('453453453', 2, 20.0);
INSERT INTO R11_WORKS_ON VALUES ('333445555', 2, 10.0);
INSERT INTO R11_WORKS_ON VALUES ('333445555', 3, 10.0);
INSERT INTO R11_WORKS_ON VALUES ('333445555', 10, 10.0);
INSERT INTO R11_WORKS_ON VALUES ('333445555', 20, 10.0);
INSERT INTO R11_WORKS_ON VALUES ('999887777', 30, 30.0);
INSERT INTO R11_WORKS_ON VALUES ('999887777', 10, 10.0);
INSERT INTO R11_WORKS_ON VALUES ('987987987', 10, 35.0);
INSERT INTO R11_WORKS_ON VALUES ('987987987', 30, 5.0);
INSERT INTO R11_WORKS_ON VALUES ('987654321', 30, 20.0);
INSERT INTO R11_WORKS_ON VALUES ('987654321', 20, 15.0);
INSERT INTO R11_WORKS_ON VALUES ('888665555', 20, null);

INSERT INTO R11_DEPENDENT VALUES ('333445555', 'Alice', 'F', '05/04/1986', 'FILHA');
INSERT INTO R11_DEPENDENT VALUES ('333445555', 'Theodore', 'M', '25/10/1983', 'FILHO');
INSERT INTO R11_DEPENDENT VALUES ('333445555', 'Joy', 'F', '03/05/1958', 'CONJUGE');
INSERT INTO R11_DEPENDENT VALUES ('987654321', 'Abner', 'M', '28/02/1942', 'CONJUGE');
INSERT INTO R11_DEPENDENT VALUES ('123456789', 'Michael', 'M', '04/01/1988', 'FILHO');
INSERT INTO R11_DEPENDENT VALUES ('123456789', 'Alice', 'F', '30/12/1988', 'FILHA');
INSERT INTO R11_DEPENDENT VALUES ('123456789', 'Elizabeth', 'F', '05/05/1967', 'CONJUGE');

Com base no esquema acima responda as seguintes perguntas :

1. Selecionar, para os empregados que possuem menos de 200 meses de tempo de serviço, o nome do empregado, a data de admissão, a data em que ele completou 6 meses de tempo de serviço, a data da primeira sexta-feira (FRIDAY) após sua admissão, e o último dia do mês em que ele foi admitido.

SELECT ENAME,HIREDATE,ADD_MONTHS(HIREDATE,6),
NEXT_DAY(HIREDATE,'SEXTA'),LAST_DAY(HIREDATE)
FROM EMP
WHERE MONTHS_BETWEEN(SYSDATE,HIREDATE) > 200;

2. Selecionar o nome do empregado, o mês e o ano em que ele foi admitido.

SELECT ENAME,TO_CHAR(HIREDATE,'MM') AS MES_ADMISSAO,TO_CHAR(HIREDATE,'YYYY')AS ANO_ADMISSAO FROM EMP;

3. Selecionar o nome do empregado e o seu salário no formato ‘R$ 99,999’.

SELECT ENAME,TO_CHAR(SAL,'L9999,99')
FROM EMP;

4. Selecionar o nome do empregado, o salário, o valor da comissão e o salário anual.

SELECT ENAME,SAL,12*(SAL) AS SALARIO_ANUAL , COMM
FROM EMP;

5. Selecionar o nome do empregado, o salário, e o salário revisado.
OBS: O salário revisado é calculado de acordo com a seguinte regra:
SE job = ‘ANALYST’ ENTAO sal = sal * 1.1
SE job = ‘CLERK’ ENTAO sal = sal * 1.15
SE job = ‘MANAGER’ ENTAO sal = sal * 1.20
SENAO sal = sal

SELECT ENAME,SAL,DECODE(JOB, 'ANALYST' , (sal * 1.1) , 'CLERK' , (sal * 1.15) , 'MANAGER', (sal * 1.20), sal ) AS SALARIO_REVISADO
FROM EMP;

6. Computar o produto cartesiano das tabelas EMPR e DEPT.

SELECT * FROM EMP, DEPT;

7. Selecionar o nome do empregado, o nome e a localização do departamento onde ele
trabalha.

SELECT ENAME, DNAME , LOC
FROM EMP, DEPT
WHERE EMP.DEPTNO=DEPT.DEPTNO;

8. Selecionar o nome do empregado, o salário e o grau (faixa de salário).

SELECT ENAME, SAL , GRADE
FROM EMP , SALGRADE
WHERE SAL BETWEEN LOSAL AND HISAL;

9. Selecionar o nome do empregado e o nome do subordinado, para os subordinados ate o
ultimo nível na hierarquia (operação de fechamento recursivo).

Select ...

10. Selecionar o nome do departamento e o numero de empregados, para os departamentos que possuem pelo menos 10 empregados.

SELECT DNAME , COUNT(EMPNO)
FROM EMP,DEPT
WHERE EMP.DEPTNO=DEPT.DEPTNO
GROUP BY DNAME
HAVING COUNT(EMPNO)>10;

11. Selecionar o nome do departamento e o salario total dos seus empregados, para os
departamentos cuja soma de salarios seja superior a 5000.

SELECT DNAME , SUM(SAL) AS TOTALSAL
FROM EMP,DEPT
WHERE EMP.DEPTNO=DEPT.DEPTNO
GROUP BY DNAME
HAVING SUM(SAL)>5000;

Banco de Dados Exercício 4

drop table r1_nota_fiscal cascade constraints;
drop table r1_produto cascade constraints;
drop table r1_item_nf cascade constraints;
drop table r1_cliente cascade constraints;

create table r1_cliente(
cgc varchar2(14) not null,
razao varchar2(20) not null,
endereco varchar2(50),
cidade varchar2(20),
uf varchar2(2),
constraint pkcliente primary key (cgc));

create table r1_produto(
codigo varchar2(6) not null,
descricao varchar2(50) not null,
estoque integer,
preco number(8,2),
desconto number(8,2),
constraint pkproduto primary key (codigo));

create table r1_nota_fiscal(
serie varchar2(1) not null,
numero varchar2(10) not null,
cgc varchar2(14),
data date,
condicao varchar2(10),
constraint pknf primary key (serie,numero),
constraint fkcliente_nf foreign key (cgc) references r1_cliente(cgc));

create table r1_item_nf(
serie varchar2(1) not null,
numero varchar2(10) not null,
produto varchar2(6) not null,
preco number(8,2) not null,
quantidade integer,
constraint pkitem_nf primary key (serie,numero,produto),
constraint fknf_item foreign key (serie,numero) references r1_nota_fiscal(serie,numero),
constraint fkproduto_item foreign key (produto) references r1_produto(codigo));

insert into r1_cliente values ('11111111111111','BH Hardsoft','rua das Flores, 50','Belo Horizonte','MG');
insert into r1_cliente values ('22222222222222','Popular PC','rua da República, 51/201','São Paulo','SP');
insert into r1_cliente values ('33333333333333','Infostyle','rua da Candelária, 1250','Rio de Janeiro','RJ');
insert into r1_cliente values ('44444444444444','Amazonas Micro','rua Bela Vista, 25','Manaus','AM');
insert into r1_cliente values ('55555555555555','Riogrande Info','rua três Gaúchos, 200','Porto Alegre','RS');

insert into r1_nota_fiscal values ('C','100','11111111111111','20/09/2002','À vista');
insert into r1_nota_fiscal values ('C','101','22222222222222','27/09/2002','30 d');
insert into r1_nota_fiscal values ('C','102','33333333333333','28/09/2002','À vista');
insert into r1_nota_fiscal values ('C','103','44444444444444','29/09/2002','60 d');
insert into r1_nota_fiscal values ('C','104','55555555555555','29/09/2002','À vista');
insert into r1_nota_fiscal values ('C','105','22222222222222','01/10/2002','30 d');

insert into r1_produto values ('MIC001','Microcomputador 1 Ghz, 64 MB','10',1790.00,50.00);
insert into r1_produto values ('MIC002','Microcomputador 1,3 Ghz, 128MB','6',2100.00,100.00);
insert into r1_produto values ('IMP001','Impressora Epson C20sx','4',250.00,10.00);
insert into r1_produto values ('IMP002','Impressora Epson C60sx','5',360.00,20.00);
insert into r1_produto values ('IMP003','Impressora Lexmark Z53','3',399.00,0);
insert into r1_produto values ('MON001','AOC Spectrum 4vn (14")','6',300.00,25.00);
insert into r1_produto values ('MON002','Samsung Syncmaster 15"','4',499.00,30.00);
insert into r1_produto values ('EST001','Estabilizador','20',35.00,0);

insert into r1_item_nf values ('C','100','IMP001',240.00,'2');
insert into r1_item_nf values ('C','100','MIC002',2000.00,'1');
insert into r1_item_nf values ('C','101','IMP002',360.00,'3');
insert into r1_item_nf values ('C','101','MON001',300.00,'4');
insert into r1_item_nf values ('C','101','MON002',499.00,'1');
insert into r1_item_nf values ('C','101','EST001',35.00,'2');
insert into r1_item_nf values ('C','102','MIC001',1740.00,'1');
insert into r1_item_nf values ('C','102','IMP002',340.00,'1');
insert into r1_item_nf values ('C','102','MON001',275.00,'2');
insert into r1_item_nf values ('C','102','MON002',469.00,'1');
insert into r1_item_nf values ('C','103','MIC001',1790.00,'10');
insert into r1_item_nf values ('C','103','MIC002',2100.00,'5');
insert into r1_item_nf values ('C','103','IMP001',250.00,'6');
insert into r1_item_nf values ('C','103','IMP002',360.00,'2');
insert into r1_item_nf values ('C','103','MON001',300.00,'3');
insert into r1_item_nf values ('C','103','EST001',35.00,'20');
insert into r1_item_nf values ('C','104','EST001',35.00,'10');
insert into r1_item_nf values ('C','105','MIC001',1790.00,'2');
insert into r1_item_nf values ('C','105','MON001',300.00,'2');

commit;

Baseado no esquema acima, responda àsperguntas:

1. Quantas unidades de microcomputadores (produtos MIC001 e MIC002) foram vendidas nototal?

SELECT SUM(I.QUANTIDADE) TOTAL
FROM r1_item_nf I
WHERE I.r1_produtoO IN ('MIC001', 'MIC002');

2. Quanto o valor total dos descontos dados nas vendas do item MIC001?

SELECT SUM(P.DESCONTO * I.QUANTIDADE) TOTAL_DESCONTO
FROM r1_produto P, r1_item_nf I
WHERE P.CODIGO=I.r1_produtoAND P.CODIGO='MIC001';

3. Quais produtos venderam mais unidades em setembro?

SELECT item.produto, SUM(item.quantidade) as qtd
FROM r1_item_nf item
GROUP BY item.produto);

4. Quais produtos não tiveram venda em setembro?

SELECT p.descricao
FROM r1_item_nf item, r1_produto p, r7_soma
WHERE p.codigo = r7_soma.produto ANDr7_soma.qtd = (select max(qtd) from r7_soma)GROUP BY p.descricao;

5. Qual foi o valor total das vendas em setembro, excluindo microcomputadores?

SELECT SUM(I.PRECO * I.QUANTIDADE) T_VENDAS
FROM r1_item_nf I, r1_nota_fiscal N
WHERE I.NUMERO=N.NUMERO AND TO_CHAR(N.DATA,'MM') = '09' AND I.r1_produto NOT IN ('MIC001', 'MIC002');

6. Quais produtos têm preço maior que 300,00 e possuem mais de 4 unidades em estoque?

SELECT P.DESCRICAO, P.PRECO, P.ESTOQUE
FROM r1_produto P
WHERE P.PRECO > 300 AND P.ESTOQUE > 4;

7. Quantos produtos foram vendidos para fora do estado de Minas Gerais em setembro?

SELECT SUM(I.QUANTIDADE) QTD_PROD
FROM r1_item_nf I, r1_nota_fiscal N, r1_cliente C
WHERE I.NUMERO=N.NUMERO AND N.CGC=C.CGCAND TO_CHAR(N.DATA,'MM') = '09' AND C.UF <> 'MG';

8. Que cliente comprou mais unidades do produto MIC001?

SELECT C.RAZAO
FROM r1_cliente C, r1_item_nf I, r1_nota_fiscal N
WHERE I.NUMERO=N.NUMERO AND N.CGC=C.CGCAND I.r1_produto = 'MIC001'AND I.QUANTIDADE = (SELECT MAX(I.QUANTIDADE) FROM r1_item_nf I WHERE I.r1_produto = 'MIC001');

9. Que cliente comprou mais unidades do produto IMP002?

SELECT C.RAZAO
FROM r1_cliente C, r1_item_nf I, r1_nota_fiscal N
WHERE I.NUMERO=N.NUMEROAND N.CGC=C.CGC AND I.r1_produto = 'IMP002' AND I.QUANTIDADE = (SELECT MAX(I.QUANTIDADE) FROM r1_item_nf I WHERE I.r1_produto = 'IMP002');

Banco de Dados Exercício 3


1. Selecionar o nome das editoras que publicaram livros do autor “BOOCH”.

SELECT E.NOMEEDIT
FROM EDITORA E , LIVRO L, AUTORIA A , AUTOR
WHERE AUTOR.NOMEAUT = ' BOOCH ' AND E.CODIGO=L.CODEDIT AND L.CODIGO=A.CODLIVRO AND A.CODAUTOR=AUTOR.CODIGO;

2. Selecionar o nome dos usuários que pegaram 2 ou mais livros no ano de 2003.

SELECT A.NOME, COUNT(*)
FROM ALUNO A, EMPRESTIMO E, ITEMEMPREST I
WHERE A.CODIGO=E.CODALUNO AND
E.CODEMPREST=I.CODEMPREST
AND TO_CHAR(E.DATA,'YYYY')=2003
HAVING COUNT(*) >= 2

3. Selecionar o titulo dos livros que não foram emprestados em 2002.

SELECT L.TITULO
FROM LIVRO WHERE L.CODIGO NOT IN
( SELECT L.CODIGO
FROM LIVRO L , EXEMPLAR E, ITEMEMPREST I, EMPRESTI EMP
WHERE L.CODIGO=E.CODLIVRO AND E.CODEXEMPLAR=I.CODEMPREST AND I.CODEMPREST=EMP.CODEMPREST
AND TO_CHAR(EMP.DATA,'YYYY')=2002 )

4. Selecionar o nome da editora e o número de livros publicados, para as editoras que publicaram dois ou mais livros.

SELECT E.NOMEEDITORA, COUNT(L.CODLIVRO) AS NUM_LIVROS
FROM R6_EDITORA E, R6_LIVRO L
WHERE E.CODEDITORA = L.CODEDITORA
GROUP BY E.NOMEEDITORAHAVING COUNT(L.CODLIVRO) >= 2;

5. Selecionar a menor idade, a maior idade e a idade média dos usuários.

SELECT ROUND(MIN(MONTHS_BETWEEN(SYSDATE, U.DATANASC)/12)) AS MENOR,ROUND(MAX(MONTHS_BETWEEN(SYSDATE, U.DATANASC)/12)) AS MAIOR, ROUND(AVG(MONTHS_BETWEEN(SYSDATE, U.DATANASC)/12)) AS MEDIA
FROM R6_USUARIO U;

6. Selecionar o nome dos autores que não publicaram livros pela editora "CAMPUS".

SELECT A.NOMEAUTOR
FROM R6_AUTOR A, R6_AUTORIA AU, R6_EDITORA E, R6_LIVRO L
WHERE A.CODAUTOR = AU.CODAUTOR AND E.CODEDITORA = L.CODEDITORA AND AU.CODLIVRO = L.CODLIVRO AND E.NOMEEDITORA <> 'CAMPUS';

7. Selecionar o nome do usuário, o titulo do livro, e a data de empréstimo para os livros pertencentes à editora "LTC" ou que pertencem ao assunto "BANCO DE DADOS".

SELECT U.NOMEALUNO, L.TITULO, E.DATAEMPREST
FROM R6_ALUNO U,R6_LIVRO L, R6_EMPRESTIMO E,R6_EDITORA ED,R6_ASSUNTO A
WHERE ED.CODEDITORA = L.CODEDITORA AND L.CODASSUNTO = A.CODASSUNTO AND E.CODALUNO = U.CODALUNOAND (ED.NOMEEDITORA = 'LTC' OR A.DESCRICAO = 'BANCO DE DADOS');

8. Excluir os livros que nunca foram emprestados.

DELETE FROM R6_LIVRO LWHERE L.CODLIVRO NOT IN (SELECT L.CODLIVRO FROM R6_LIVRO L,R6_EXEMPLAR EX,R6_ITEMEMPREST I WHERE I.CODEXEMPLAR = EX.CODEXEMPLAR AND EX.CODLIVRO = L.CODLIVRO GROUP BY L.CODLIVRO);

9. Transferir os livros da editora “CAMPUS” para a editoras “MAKRON BOOKS”.

UPDATE R6_LIVRO SET CODEDITORA =
(SELECT CODEDITORA FROM R6_EDITORA WHERE NOMEEDITORA = 'MAKRON BOOKS') WHERE CODEDITORA = (SELECT CODEDITORA FROM R6_EDITORA WHERE NOMEEDITORA = 'CAMPUS')

10. Selecionar o titulo dos livros com o maior número de empréstimos no ano de 2003.

SELECT L.TITULO , MAX(COUNT(CODLIVRO))
FROM LIVRO L , EXEMPLAR E, ITEMEMPREST I, EMPRESTI EMP
WHERE L.CODIGO=E.CODLIVRO AND E.CODEXEMPLAR=I.CODEMPREST AND I.CODEMPREST=EMP.CODEMPREST;

Banco de dados Exercício 2



a) Selecionar a placa do veículo e o nome do proprietário para os veículos que tiveram
infrações do tipo “GRAVE” no ano de 2003.

SELECT V.PLACA, P.NOME
FROM R9_VEICULO V, R9_PROPRIETARIO P, R9_INFRACAO_VEICULO IV, R9_INFRACAO I, R9_TIPOINFRACAO T
WHERE V.PLACA = IV.PLACA AND P.CPF = V.CPFPROP AND I.CODIGO = IV.CODINFRACAO AND
T.CODIGO = I.CODTIPO AND T.DESCTIPO = 'GRAVE' AND TO_CHAR(IV.DATA, 'YYYY') = '2003';

b) Selecionar o nome do proprietário e o valor total de suas multas, para os proprietários
cujo valor total das multas seja superior a R$1000,00.

SELECT P.NOME, SUM(IV.VALOR) AS VALORTOTAL
FROM R9_PROPRIETARIO P, R9_INFRACAO_VEICULO IV, R9_VEICULO V
WHERE P.CPF = V.CPFPROP AND V.PLACA = IV.PLACA
GROUP BY P.NOME
HAVING SUM(IV.VALOR) > 1000;

c) Selecionar o(s) nome(s) do(s) proprietário(s) que possui(em) o valor total máximo de
multas.

SELECT P.NOME
FROM R9_PROPRIETARIO P, R9_VEICULO V, R9_INFRACAO_VEICULO IV
WHERE P.CPF = V.CPFPROP AND V.PLACA = IV.PLACA
GROUP BY P.NOME
HAVING SUM(IV.VALOR) = (SELECT MAX(TOTAL)
FROM ( SELECT SUM(IV.VALOR) TOTAL
FROM R9_INFRACAO_VEICULO IV, R9_PROPRIETARIO P, R9_VEICULO V
WHERE P.CPF = V.CPFPROP AND V.PLACA = IV.PLACA
GROUP BY P.NOME));

d) Selecionar o nome dos proprietários que não cometeram infrações graves nos últimos 3
anos.

SELECT P.NOME
FROM R9_PROPRIETARIO P
MINUS
SELECT P.NOME
FROM R9_VEICULO V, R9_PROPRIETARIO P, R9_INFRACAO_VEICULO IV, R9_INFRACAO I, R9_TIPOINFRACAO T
WHERE V.PLACA = IV.PLACA AND
P.CPF = V.CPFPROP AND I.CODIGO = IV.CODINFRACAO AND
T.CODIGO = I.CODTIPO AND T.DESCTIPO = 'GRAVE' AND
MONTHS_BETWEEN(SYSDATE, IV.DATA) < 36;

e) Selecionar a placa dos veículos cujos proprietários sejam de “BELO HORIZONTE” e que não tenham infrações no ano de 2003.

SELECT V.PLACA FROM R9_VEICULO V MINUS SELECT V.PLACA
FROM R9_VEICULO V, R9_PROPRIETARIO P, R9_INFRACAO_VEICULO IV, R9_INFRACAO I WHERE V.PLACA = IV.PLACA AND P.CPF = V.CPFPROP AND I.CODIGO = IV.CODINFRACAO AND P.CIDADE = 'BELO HORIZONTE' AND TO_CHAR(IV.DATA, 'YYYY') = '2003';

f) Selecionar a descrição das infrações do tipo “LEVE” que foram cometidas pelo menos 2 vezes no ano de 2003.

SELECT I.DESCINFRACAO FROM R9_INFRACAO I, R9_INFRACAO_VEICULO IV, R9_TIPOINFRACAO T WHERE I.CODIGO = IV.CODINFRACAO AND T.CODIGO = I.CODTIPO AND T.DESCTIPO = 'LEVE' AND TO_CHAR(IV.DATA, 'YYYY') = '2003' GROUP BY I.DESCINFRACAO HAVING COUNT(*)>=2;

g) Selecionar a placa, a cor, e o ano dos veículos emplacados em “BELO HORIZONTE”
ou que não cometeram infrações em 2003.

SELECT V.PLACA, V.COR, V.ANO
FROM R9_VEICULO V, R9_INFRACAO_VEICULO IV, R9_INFRACAO I, R9_PROPRIETARIO P
WHERE P.CPF = V.CPFPROP AND
V.PLACA = IV.PLACA AND I.CODIGO = IV.CODINFRACAO AND
P.CIDADE = 'BELO HORIZONTE' OR (TO_CHAR(IV.DATA, 'YYYY') <> '2003');

h) Selecionar o nome dos proprietários que cometeram pelo menos uma infração, mas que
não cometeram infrações do tipo “GRAVISSIMA”.

SELECT DISTINCT P.NOME
FROM R9_VEICULO V, R9_PROPRIETARIO P, R9_INFRACAO I, R9_TIPOINFRACAO TI, R9_INFRACAO_VEICULO IV
WHERE P.CPF = V.CPFPROP AND
V.PLACA = IV.PLACA AND IV.CODINFRACAO = I.CODIGO AND I.CODTIPO = TI.CODIGO
MINUS
SELECT P.NOME
FROM R9_VEICULO V, R9_PROPRIETARIO P, R9_INFRACAO I, R9_TIPOINFRACAO TI, R9_INFRACAO_VEICULO IV
WHERE P.CPF = V.CPFPROP AND
V.PLACA = IV.PLACA AND IV.CODINFRACAO = I.CODIGO AND
I.CODTIPO = TI.CODIGO AND TI.DESCTIPO = 'GRAVISSIMA';

i) Selecionar a placa do veículo, o nome do proprietário, e a data da infração para as
infrações cuja pontuação seja superior a 5 pontos.

SELECT V.PLACA, P.NOME, IV.DATA
FROM R9_VEICULO V, R9_PROPRIETARIO P, R9_INFRACAO I, R9_TIPOINFRACAO TI, R9_INFRACAO_VEICULO IV
WHERE P.CPF = V.CPFPROP AND
V.PLACA = IV.PLACA AND IV.CODINFRACAO = I.CODIGO AND
I.CODTIPO = TI.CODIGO AND TI.PONTUACAO > 5;

j) Selecionar o nome dos proprietários que cometeram pelo menos uma infração, mas cujo valor total de suas infrações não ultrapasse R$600,00.

SELECT P.NOME
from R9_PROPRIETARIO P, R9_VEICULO V, R9_INFRACAO_VEICULO IV
WHERE P.CPF = V.CPFPROP
AND V.PLACA = IV.PLACA
GROUP BY P.NOME
HAVING SUM(IV.VALOR) < 600;

Banco de Dados Exercício 1



1. Elaborar comandos CREATE TABLE para criação das tabelas do esquema abaixo.

CREATE TABLE R6_AUTOR
(CODAUTOR NUMBER(5,0),
NOMEAUTOR VARCHAR2(50),
CONSTRAINT PKR6_AUTOR PRIMARY KEY (CODAUTOR)
);

CREATE TABLE R6_EDITORA
(CODEDITORA NUMBER(5,0),
NOMEEDITORA VARCHAR2(50),
CONSTRAINT PKR6_EDITORA PRIMARY KEY (CODEDITORA)
);

CREATE TABLE R6_ASSUNTO
(CODASSUNTO NUMBER(5,0),
DESCRICAO VARCHAR2(50),
CONSTRAINT PKR6_ASSUNTO PRIMARY KEY (CODASSUNTO)
);

CREATE TABLE R6_ALUNO
(CODIGO NUMBER(5,0),
NOME VARCHAR2(50),
DATANASC DATE,
CONSTRAINT PKR6_ALUNO PRIMARY KEY (CODIGO)
);

CREATE TABLE R6_LIVRO
(CODLIVRO NUMBER(5,0),
TITULO VARCHAR2(50),
CODEDITORA NUMBER(5,0),
CODASSUNTO NUMBER(5,0),
CONSTRAINT PKR6_LIVRO PRIMARY KEY (CODLIVRO),
CONSTRAINT FKR6_LIVROEDIT FOREIGN KEY (CODEDITORA) REFERENCES R6_EDITORA(CODEDITORA),
CONSTRAINT FKR6_LIVROASSUNTO FOREIGN KEY (CODASSUNTO) REFERENCES R6_ASSUNTO(CODASSUNTO)
);

CREATE TABLE R6_EMPRESTIMO
(CODEMPRESTIMO NUMBER(5,0),
CODALUNO NUMBER(5,0),
DATAEMPREST DATE,
CONSTRAINT PKR6_EMPREST PRIMARY KEY (CODEMPRESTIMO),
CONSTRAINT FKR6_EMPRESTALUNO FOREIGN KEY (CODALUNO) REFERENCES R6_ALUNO(CODIGO)
);

CREATE TABLE R6_EXEMPLAR
(CODEXEMPLAR NUMBER(5,0),
CODLIVRO NUMBER(5,0),
DATAAQUISICAO DATE,
VALORAQUISICAO NUMBER(6,2),
CONSTRAINT PKR6_EXEMPLAR PRIMARY KEY (CODEXEMPLAR),
CONSTRAINT FKR6_EXEMPLARLIVRO FOREIGN KEY (CODLIVRO) REFERENCES R6_LIVRO(CODLIVRO)
);


CREATE TABLE R6_ITEMEMPREST
(CODEMPREST NUMBER(5,0),
ITEM NUMBER(2,0),
CODEXEMPLAR NUMBER(5,0),
DATADEVOLUCAO DATE,
MULTA NUMBER(6,2),
CONSTRAINT PKR6_ITEMEMPREST PRIMARY KEY (CODEMPREST,ITEM),
CONSTRAINT FKR6_ITEMEMPRESTEXEMPLAR FOREIGN KEY (CODEXEMPLAR) REFERENCES R6_EXEMPLAR(CODEXEMPLAR),
CONSTRAINT FKR6_ITEMEMPRESTEMPRESTIMO FOREIGN KEY (CODEMPREST) REFERENCES R6_EMPRESTIMO(CODEMPRESTIMO)
);

CREATE TABLE R6_AUTORIA
(CODLIVRO NUMBER(5,0),
CODAUTOR NUMBER(5,0),
CONSTRAINT PKR6_AUTORIA PRIMARY KEY (CODLIVRO,CODAUTOR),
CONSTRAINT FKR6_AUTORIAAUTOR FOREIGN KEY (CODAUTOR) REFERENCES R6_AUTOR(CODAUTOR),
CONSTRAINT FKR6_AUTORIALIVRO FOREIGN KEY (CODLIVRO) REFERENCES R6_LIVRO(CODLIVRO)
);

INSERT INTO R6_EDITORA VALUES (01,'MAKRON BOOKS');
INSERT INTO R6_EDITORA VALUES (02,'CAMPUS');
INSERT INTO R6_EDITORA VALUES (03,'MODERNA');
INSERT INTO R6_EDITORA VALUES (04,'LTC');

COMMIT;

INSERT INTO R6_ASSUNTO VALUES (01,'BANCO DE DADOS');
INSERT INTO R6_ASSUNTO VALUES (02,'ANALISE DE SISTEMAS');
INSERT INTO R6_ASSUNTO VALUES (03,'PROJETO DE SISTEMAS');
INSERT INTO R6_ASSUNTO VALUES (04,'ARQUITETURA DE COMPUTADORES');

COMMIT;

INSERT INTO R6_LIVRO VALUES (01,'SISTEMAS DE BANCOS DE DADOS',01,01);
INSERT INTO R6_LIVRO VALUES (02,'ANALISE E PROJETO ORIENTADO A OBJETOS',02,02);
INSERT INTO R6_LIVRO VALUES (03,'ENGENHARIA DE SOFTWARE',03,03);
INSERT INTO R6_LIVRO VALUES (04,'ORGANIZAÇAO DE COMPUTADORES',04,04);
INSERT INTO R6_LIVRO VALUES (05,'PROJETO DE BANCOS DE DADOS',01,02);
INSERT INTO R6_LIVRO VALUES (06,'UML: GUIA DO USUARIO',02,01);
INSERT INTO R6_LIVRO VALUES (07,'MODELAGEM E PROJETO BASEADO EM OBJETOS',03,04);
INSERT INTO R6_LIVRO VALUES (08,'INTRODUCAO A ARQUITETURA DE COMPUTADORES',04,03);

COMMIT;

INSERT INTO R6_ALUNO VALUES (01,'PAULO JOSE DA SILVA','01/01/1974');
INSERT INTO R6_ALUNO VALUES (02,'MARIA PAULA DE FREITAS','02/02/1980');
INSERT INTO R6_ALUNO VALUES (03,'JOAO PAULO MATOS','03/04/1975');
INSERT INTO R6_ALUNO VALUES (04,'PEDRO ANTONIO SOARES','06/12/1981');
INSERT INTO R6_ALUNO VALUES (05,'ANA MARIA PEREIRA','12/11/1980');
INSERT INTO R6_ALUNO VALUES (06,'JOAQUIM DE SOUZA SANTOS','14/04/1976');
INSERT INTO R6_ALUNO VALUES (07,'RAQUEL SOUZA E SILVA','13/05/1975');
INSERT INTO R6_ALUNO VALUES (08,'JOSE PEDRO DA FONSECA','27/07/1977');

COMMIT;

INSERT INTO R6_EMPRESTIMO VALUES (01,01,'01/01/2002');
INSERT INTO R6_EMPRESTIMO VALUES (02,01,'02/02/2002');
INSERT INTO R6_EMPRESTIMO VALUES (03,02,'03/04/2002');
INSERT INTO R6_EMPRESTIMO VALUES (04,01,'06/12/2002');
INSERT INTO R6_EMPRESTIMO VALUES (05,04,'12/11/2002');
INSERT INTO R6_EMPRESTIMO VALUES (06,05,'14/04/2002');
INSERT INTO R6_EMPRESTIMO VALUES (07,06,'13/05/2002');
INSERT INTO R6_EMPRESTIMO VALUES (08,07,'27/07/2002');
INSERT INTO R6_EMPRESTIMO VALUES (09,01,'01/01/2003');
INSERT INTO R6_EMPRESTIMO VALUES (10,03,'02/02/2003');
INSERT INTO R6_EMPRESTIMO VALUES (11,04,'03/02/2003');
INSERT INTO R6_EMPRESTIMO VALUES (12,06,'06/02/2003');
INSERT INTO R6_EMPRESTIMO VALUES (13,08,'12/02/2003');
INSERT INTO R6_EMPRESTIMO VALUES (14,08,'14/02/2003');
INSERT INTO R6_EMPRESTIMO VALUES (15,05,'17/02/2003');
INSERT INTO R6_EMPRESTIMO VALUES (16,06,'27/02/2003');
INSERT INTO R6_EMPRESTIMO VALUES (17,07,'01/03/2003');
INSERT INTO R6_EMPRESTIMO VALUES (18,02,'02/03/2003');
INSERT INTO R6_EMPRESTIMO VALUES (19,03,'03/03/2003');
INSERT INTO R6_EMPRESTIMO VALUES (20,04,'06/03/2003');
INSERT INTO R6_EMPRESTIMO VALUES (21,04,'12/03/2003');
INSERT INTO R6_EMPRESTIMO VALUES (22,07,'14/03/2003');
INSERT INTO R6_EMPRESTIMO VALUES (23,06,'16/03/2003');
INSERT INTO R6_EMPRESTIMO VALUES (24,08,'26/03/2003');

COMMIT;

INSERT INTO R6_EXEMPLAR VALUES (01,01,'01/01/2002',12);
INSERT INTO R6_EXEMPLAR VALUES (02,01,'01/01/2002',23);
INSERT INTO R6_EXEMPLAR VALUES (03,02,'01/01/2002',34);
INSERT INTO R6_EXEMPLAR VALUES (04,01,'01/01/2002',45);
INSERT INTO R6_EXEMPLAR VALUES (05,04,'01/01/2002',56);
INSERT INTO R6_EXEMPLAR VALUES (06,05,'01/01/2002',65);
INSERT INTO R6_EXEMPLAR VALUES (07,06,'01/01/2002',67);
INSERT INTO R6_EXEMPLAR VALUES (08,07,'01/01/2002',78);
INSERT INTO R6_EXEMPLAR VALUES (09,01,'01/01/2003',89);
INSERT INTO R6_EXEMPLAR VALUES (10,03,'01/01/2003',90);
INSERT INTO R6_EXEMPLAR VALUES (11,04,'01/01/2003',21);
INSERT INTO R6_EXEMPLAR VALUES (12,06,'01/01/2003',32);
INSERT INTO R6_EXEMPLAR VALUES (13,08,'01/01/2003',43);
INSERT INTO R6_EXEMPLAR VALUES (14,08,'01/01/2003',54);
INSERT INTO R6_EXEMPLAR VALUES (15,05,'01/01/2003',65);
INSERT INTO R6_EXEMPLAR VALUES (16,06,'01/01/2003',76);
INSERT INTO R6_EXEMPLAR VALUES (17,07,'01/01/2003',87);
INSERT INTO R6_EXEMPLAR VALUES (18,02,'01/01/2003',98);
INSERT INTO R6_EXEMPLAR VALUES (19,03,'01/01/2003',100);
INSERT INTO R6_EXEMPLAR VALUES (20,04,'01/01/2003',99);
INSERT INTO R6_EXEMPLAR VALUES (21,04,'01/01/2003',88);
INSERT INTO R6_EXEMPLAR VALUES (22,07,'01/01/2003',77);
INSERT INTO R6_EXEMPLAR VALUES (23,06,'01/01/2003',66);
INSERT INTO R6_EXEMPLAR VALUES (24,08,'01/01/2003',55);

COMMIT;

INSERT INTO R6_ITEMEMPREST VALUES (01,01,01,'06/01/2002',5);
INSERT INTO R6_ITEMEMPREST VALUES (02,01,02,'07/01/2002',6);
INSERT INTO R6_ITEMEMPREST VALUES (03,01,03,'08/01/2002',7);
INSERT INTO R6_ITEMEMPREST VALUES (04,01,04,'09/01/2002',8);
INSERT INTO R6_ITEMEMPREST VALUES (05,01,05,'10/01/2002',9);
INSERT INTO R6_ITEMEMPREST VALUES (06,01,06,'01/01/2002',0);
INSERT INTO R6_ITEMEMPREST VALUES (07,01,07,'05/01/2002',4);
INSERT INTO R6_ITEMEMPREST VALUES (08,01,08,'04/01/2002',3);
INSERT INTO R6_ITEMEMPREST VALUES (09,01,09,'03/01/2003',2);
INSERT INTO R6_ITEMEMPREST VALUES (10,01,10,'02/01/2003',1);
INSERT INTO R6_ITEMEMPREST VALUES (11,01,11,'11/01/2003',10);
INSERT INTO R6_ITEMEMPREST VALUES (12,01,12,'12/01/2003',11);
INSERT INTO R6_ITEMEMPREST VALUES (13,01,13,'13/01/2003',12);
INSERT INTO R6_ITEMEMPREST VALUES (14,01,14,'14/01/2003',13);
INSERT INTO R6_ITEMEMPREST VALUES (15,01,15,'15/01/2003',14);
INSERT INTO R6_ITEMEMPREST VALUES (16,01,16,'16/01/2003',15);
INSERT INTO R6_ITEMEMPREST VALUES (17,01,17,'17/01/2003',16);
INSERT INTO R6_ITEMEMPREST VALUES (18,01,18,'18/01/2003',17);
INSERT INTO R6_ITEMEMPREST VALUES (19,01,19,'19/01/2003',18);
INSERT INTO R6_ITEMEMPREST VALUES (20,01,20,'20/01/2003',19);
INSERT INTO R6_ITEMEMPREST VALUES (21,01,21,'21/01/2003',20);
INSERT INTO R6_ITEMEMPREST VALUES (22,01,22,'22/01/2003',21);
INSERT INTO R6_ITEMEMPREST VALUES (23,01,23,'23/01/2003',22);
INSERT INTO R6_ITEMEMPREST VALUES (24,01,24,'24/01/2003',23);

COMMIT;

INSERT INTO R6_AUTOR VALUES (01,'ELMASRI');
INSERT INTO R6_AUTOR VALUES (02,'NAVATHE');
INSERT INTO R6_AUTOR VALUES (03,'JACOBSON');
INSERT INTO R6_AUTOR VALUES (04,'BOOCH');
INSERT INTO R6_AUTOR VALUES (05,'RUMBAUGH');
INSERT INTO R6_AUTOR VALUES (06,'MULLER');
INSERT INTO R6_AUTOR VALUES (07,'HENNESSY');
INSERT INTO R6_AUTOR VALUES (08,'FURLAN');
INSERT INTO R6_AUTOR VALUES (09,'PATTERSON');
INSERT INTO R6_AUTOR VALUES (10,'KORTH');
INSERT INTO R6_AUTOR VALUES (11,'SILBERSCHATZ');
INSERT INTO R6_AUTOR VALUES (12,'PRESSMAN');

COMMIT;

INSERT INTO R6_AUTORIA VALUES (01,01);
INSERT INTO R6_AUTORIA VALUES (01,02);
INSERT INTO R6_AUTORIA VALUES (02,08);
INSERT INTO R6_AUTORIA VALUES (03,12);
INSERT INTO R6_AUTORIA VALUES (04,07);
INSERT INTO R6_AUTORIA VALUES (04,09);
INSERT INTO R6_AUTORIA VALUES (05,10);
INSERT INTO R6_AUTORIA VALUES (05,11);
INSERT INTO R6_AUTORIA VALUES (06,03);
INSERT INTO R6_AUTORIA VALUES (06,04);
INSERT INTO R6_AUTORIA VALUES (06,05);
INSERT INTO R6_AUTORIA VALUES (07,08);
INSERT INTO R6_AUTORIA VALUES (08,07);
INSERT INTO R6_AUTORIA VALUES (08,09);

COMMIT;

2. Elaborar comandos INSERT de forma que cada uma das consultas elaboradas (3 a 11)
retorne pelo menos uma tupla.

3. Selecionar o nome dos alunos que pegaram pelo menos 10 livros distintos no ano de 2004.

SELECT a.nome
FROM r6_aluno a, r6_emprestimo e, r6_itememprest i, r6_exemplar ex
WHERE a.codigo = em.codaluno AND e.codemprest = i.codemprest AND
i.codexemplar = ex.codexemplar AND TO_CHAR(em.data,’YYYY’) = ’2004’
GROUP BY a.nome
HAVING COUNT(DISTINCT ex.codlivro)>=10;

4. Selecionar o nome dos autores que publicaram algum livro com o autor "NAVATHE".

SELECT a.nomeautor
FROM r6_autor a, r6_autoria au
WHERE a.codautor=au.codautor AND a.nomeautor <> 'NAVATHE' AND
au.codlivro IN (SELECT au.codlivro
FROM r6_autor a, r6_autoria au
WHERE a.codautor=au.codautor AND a.nomeautor='NAVATHE');

5. Selecionar o nome dos autores que publicaram mais livros que o autor "NAVATHE".

SELECT a.nomeautor
FROM r6_autor a, r6_autoria au
WHERE a.codautor=au.codautor
GROUP BY a.nomeautor
HAVING COUNT(*) > (SELECT COUNT(*)
FROM r6_autor a, r6_autoria au
WHERE a.codautor=au.codautor AND a.nomeautor='NAVATHE');

6. Selecionar o nome do aluno e o valor médio de suas multas, para os alunos cujo valor médio das multas seja superior ao valor médio das multas dos alunos de "BELO HORIZONTE".

SELECT a.nome, AVG(i.multa) AS "MÉDIA MULTA"
FROM r6_aluno a, r6_emprestimo e, r6_itememprest i
WHERE a.codigo=e.codaluno AND e.codemprestimo=i.codemprest
GROUP BY a.nome
HAVING AVG(i.multa) > (SELECT AVG(i.multa) AS MEDIA_BH
FROM r6_aluno a, r6_emprestimo e, r6_itememprest i
WHERE a.codigo=e.codaluno AND e.codemprest=i.codemprest
AND a.cidade = ’BELO HORIZONTE’);

7. Selecionar o nome dos alunos cujo número total de empréstimos seja superior ao número de
empréstimos de livros do autor "MACHADO DE ASSIS".
SELECT a.nome
FROM r6_aluno a, r6_emprestimo e, r6_itememprest i
WHERE a.codigo = e.codaluno and e.codemprestimo=i.codemprest
GROUP BY a.nome
HAVING COUNT(*) > (SELECT COUNT(*)
FROM r6_itememprest i, r6_exemplar ex, r6_autoria au, r6_autor a
WHERE i.codexemplar=ex.codexemplar AND
ex.codlivro=au.codlivro AND
au.codautor=a.codautor AND
a.nomeautor='MACHADO DE ASSIS');

8. Selecionar o nome das editoras cujo número de livros publicados seja superior ao número de livros da editora "CAMPUS".

SELECT e.nomeeditora
FROM r6_editora e, r6_livro l
WHERE e.codeditora=l.codeditora
GROUP BY e.nomeeditora
HAVING COUNT(*) > (SELECT COUNT(*)
FROM r6_editora e, r6_livro l
WHERE e.codeditora=l.codeditora AND e.nomeeditora='CAMPUS');
9. Selecionar o título do livro e o nome do aluno para os livros emprestados em março de 2005 e devolvidos em até dois dias após o empréstimo.

SELECT l.titulo, a.nome
FROM r6_emprestimo e, r6_itememprest i, r6_exemplar ex, livro l, r6_aluno a
WHERE TO_CHAR(e.data,’YYYY’)=’2005’ AND i.datadevol <= e.dataemprest + 2
AND i.codemprest = e.codemprest AND ex.codexemplar = i.codexemplar
AND l.codlivro = ex.codlivro AND a.codigo = e.codaluno;
10. Selecionar o título do(s) livro(s) com o maior número de empréstimos em 2005.

SELECT l.titulo
FROM r6_livro l, r6_exemplar ex, r6_itememprest i, r6_emprestimo e
WHERE l.codlivro=ex.codlivro AND ex.codexemplar=i.codexemplar AND
i.codemprest=e.codemprest AND TO_CHAR(e.data,’YYYY’)=’2005’
GROUP BY l.titulo
HAVING COUNT(*) > (SELECT MAX(TOT)
FROM (SELECT COUNT(*) AS TOIT
FROM r6_exemplar ex, r6_itememprest i, r6_emprestimo e
WHERE ex.codexemplar=i.codexemplar AND
i.codemprest=e.codemprest AND
TO_CHAR(e.data,’YYYY’)=’2005’
GROUP BY ex.codlivro);

11. Selecionar o título do livro e o código do exemplar para os exemplares cujo valor de aquisição seja superior ao valor médio dos exemplares da mesma editora.

SELECT l.titulo, ex.codexemplar
FROM r6_livro l, r6_exemplar ex, (SELECT AVG(ex.valoraquisicao) AS MEDIA, l.codeditora
FROM exemplar ex, livro l
WHERE l.codlivro = ex.codlivro
GROUP BY l.codeditora) M
WHERE l.codlivro=ex.codlivro AND ex.valoraquisicao>M.MEDIA
AND M.codeditora=l.codeditora

12. Excluir os alunos que não possuem empréstimo.

DELETE r6_aluno WHERE codigo NOT IN (SELECT codaluno FROM r6_emprestimo);

13. Transferir os livros da editora "MAKRON BOOKS" para a editora "PEARSON".

UPDATE r6_livro
SET codeditora = (SELECT codeditora FROM editora
WHERE nomeeditora = 'PEARSON')
WHERE codeditora = (SELECT codeditora FROM editora
WHERE nomeeditora = 'MAKRON BOOKS');

sexta-feira, 1 de junho de 2007

Gerência de Projetos Lista 1


1. Apresente a diferença entre projeto e operação. Cite exemplos de cada um.

Um Projeto tem início e fim pré-definidos. Além disso, um projeto é único e executado uma única vez, dado seu escopo inicial; se este muda, muda também o projeto. Por sua vez, uma operação é permanente e repetitiva. Entretanto ambas coexistem no ambiente da empresa, utilizando o mesmo recurso fundamental (pessoas). Qualquer atividade pode ser encarada como um projeto. Não existe restrição (tamanho, custo, etc.) qualquer a um projeto, desde que ele mantenha os requisitos de tempo e unicidade. Um projeto sempre produz um produto principal, motivo inicial do projeto, e alguns produtos intermediários.



2. Existem empreendimentos temporários que não são projetos? Justifique e/ou exemplifique.

Um projeto é um empreendimento temporário com o objetivo de criar um produto ou serviço único. Temporário significa que cada projeto tem um começo e um fim bem definidos. Único significa que o produto ou serviço produzido é de alguma forma diferente de todos os outros produtos ou serviços semelhantes. Para muitas organizações, projetos são o meio de responder a requisitos que não podem ser atendidos através dos limites normais de operação da organização.

Um trabalho de uma entidade social que visa arrecadar fundos, não pode ser considerado um projeto, pois o seu produto é a arrecadação de verbas que pode ter um fim quando atingir uma valor ou mesmo se tornar um processo.

3. Defina Gerência de Projetos.

Gerenciar projetos consiste em executar atividades que têm como propósito planejar e controlar as atividades de outras pessoas para atingir objetivos os quais não poderiam ser alcançados por estas atuando por conta própria. Isto implica que o ato de gerenciar deve agregar valor ao invés de agregar burocracia.

4. Critique a frase: “O Guia PMBOK descreve o conjunto de conhecimentos que devem ser adotados dentro da profissão de gerenciamento de projetos.”

O profissional deve saber tomar decisões e não somente ser influenciado por um guia, este mesmo dever ter a capacidade de decidir e correr riscos, mas acima de tudo com cuidado e moderação para que fatores diversos não atrapalhem seu projeto.

5. Liste pelo menos 5 características complementares de um projeto.
- Objetivos claros e bem definidos;- conduzido por pessoas;- utiliza recursos;- não repetitivo;- envolve uma seqüência clara lógica de ventos em seu planejamento.

6. Descreva as duas possíveis visões de sucesso de um projeto.
Um projeto de
sucesso é aquele que ocorre conforme o planejado em termos de custo, prazo e performance.- Sucesso Técnico: Aderência do projeto a quesitos mensuráveis - ocorre dentro ou antes do prazo previsto; - envolver um orçamento menor ou igual ao previsto;
- demandar menos recursos do que o previsto originalmente. - Sucesso Organizacional: Aderência do projeto a quesitos não mensuráveis, mas igualmente importantes. - Mínimo de alterações de escopo; - Aceito sem restrições pelo contratante ou cliente.

7. Defina um exemplo de quando o conceito de subprojetos pode ser utilizado. Justifique.

os projetos são frequentemente divididos em componentes mais facilmente gerenciáveis ou subprojetos, embora os subprojetos individuais possam ser chamados de projetos e gerenciados como tal. Os subprojetos são normalmente contratados de uma empresa externa ou de outra unidade funcional na organização executora.
Exemplos:
· Subprojetos baseados no processo de projetos, como uma fase específica no ciclo de vida do projeto.
· Subprojetos que atendem aos requisitos de habilidades de recursos humanos, como encanadores ou eletricistas necessários em um projeto de construção

Em projetos muito grandes, os subprojetos podem consistir em uma série de subprojetos ainda menores.

8. Descreva o ciclo de vida básico de um projeto.

Os ciclos de vida do projeto geralmente definem:

Que trabalho técnico deve ser realizado em cada fase (por exemplo, em qual fase deve ser realizado o trabalho do arquiteto?)
Quando as entregas devem ser geradas em cada fase e como cada entrega é revisada, verificada e validada
Quem está envolvido em cada fase (por exemplo, a engenharia simultânea exige que os implementadores estejam envolvidos com os requisitos e o projeto)
Como controlar e aprovar cada fase.

9. Liste e defina as fases genéricas que formam o ciclo de vida de um projeto.
Concepção - Determinação dos objetivos técnicos - Comprometimento dos recursos necessários - Prioridade do projeto em relação aos outros da organização - Estrutura organizacional do projetoPlanejamento - Elaboração de planos
detalhados - Comprometimento dos gerentes para alocação dos seus recursosImplementação - trabalho efetivo - execução do projeto - desafio - controle do projetoEncerramento - entrega dos produtos ou serviços finais - finalização dos documentos - encerramento dos contratos - aceite final do projeto

10. Descreva o comportamento de um projeto ao longo do seu ciclo de vida em termos de progresso, risco e probabilidade de sucesso.

Nem todos os projetos vão seguir todos os estágios, já que projetos podem ser encerrados antes de sua conclusão. Alguns projetos talvez não tenham planejamento ou monitoramento. Alguns projetos passarão pelos estágios 2, 3 e 4 múltiplas vezes. Alguns empreendimentos, necessitam serem executados e entregues sob determinadas variáveis . As variáveis principais também podem ser denominadas como tradicionais são eles o escopo, o tempo, e o custo. Isto é conhecido também como ao triângulo da gerência de projeto, onde cada lado representa uma variável. Um lado do triângulo não pode ser mudado sem impactar no outro. Como comentado anteriormente, alguns profissionais entendem que a variável ´qualidade’ esta separada do escopo, e definem esta como sendo uma quarta variável.. A restrição do tempo influencia o projeto no seu termino.A restrição de custo informa o valor monetário incluído no orçamento disponível para o projeto. Já a restrição do escopo consulta a o que deve ser feito para produzir o resultado de fim do projeto. Estas três variáveis estão freqüentemente competindo: o escopo aumentado significa tipicamente o tempo aumentado e o custo aumentado, uma restrição apertada de tempo poderia significar custos aumentados e o escopo reduzido, e um orçamento apertado poderia significar o tempo aumentado e o escopo reduzido. O tempo requerido para terminar os componentes do projeto, é normalmente influenciado quando se pretende baixar o tempo para execução de cada tarefa que contribui diretamente à conclusão de cada componente. Ao executar tarefas usando a gerência de projeto, é importante cortar o trabalho em diversas partes menores de modo que seja fácil definirmos condições de críticidade e de folga. O tempo requerido para terminar os componentes do projeto, é normalmente influenciado quando se pretende baixar o tempo para execução de cada tarefa que contribui diretamente à conclusão de cada componente. Ao executar tarefas usando a gerência de projeto, é importante cortar o trabalho em diversas partes menores de modo que seja fácil definirmos condições de críticidade e de folga. São as exigências especificadas para o resultado fim ou seja o que se pretende realizar. Um componente principal do escopo é a qualidade do produto final. A quantidade de tempo pôs em tarefas individuais determina a qualidade total do projeto.

11. Qual o papel do Gerente de Projetos em um projeto? Quais as principais habilidades que o profissional deve apresentar para desempenhar esse processo?

Sua função é de “gerenciar” o progresso do empreendimento e através das variáveis (custo,prazo e escopo) verificar ser desvios. Desta forma seu objetivo geral é proporcionar que as falhas inerentes aos processos sejam minimizadas. profissional gerente de projetos deve ter habilidades de administração geral, como:

Conhecimentos de contabilidade, finanças, marketing, vendas, pesquisa e desenvolvimento, fabricação, distribuição.
Planejamento estratégico, tático e operacional.
Conhecimentos de estruturas e comportamento organizacional.
Gerência de relações de trabalho através de motivação, delegação, supervisão (controle), desenvolvimento de equipes, etc.
Auto-gerenciamento através de gerência de tempo pessoal, gerência de stress, etc.
Liderança (estabelecer direção, alinhar, motivar e inspirar as pessoas).
Comunicação (oral, escrita, falada e ouvida).
Negociação (para negociar objetivos e mudanças de escopo, custo, cronograma, termos contratuais e recursos em prol do projeto).
Solução de problemas (definir problemas, tomar decisões e implementar as decisões).
Capacidade de influenciar a organização (fazer com que “as coisas sejam feitas”).
12. Quais as atividades conduzidas pelo gerente de projetos?

O Gerente de projetos deverá planejar e coordenar o desenvolvimento do projeto colhendo métricas, suprindo necessidades, recrutando recursos adequados, focalização na meta, além de:
Estar sempre alerta, mas não averso a mudanças;
Sensível a aspectos políticos: os interesses dos stakehosders nem sempre convergem;
É obrigação do gerente agendar reuniões, acompanhar o treinamento, avaliar o desempenho de sua equipe e mantê-los motivados, resolver conflitos, etc.

13. O que determina o envolvimento de um indivíduo ou organização no projeto? Identifique e descreva os possíveis envolvidos.

14. Avalie as opções abaixo:
I. Um fabricante de processadores descobre um bug no seu mais novo chip, recentemente lançado no mercado, e decide substituir todas as unidades vendidas gratuitamente, num prazo de noventa dias. Este recall pode ser considerado um projeto.
II. Os recursos de um projeto podem ser, às vezes, limitados. As técnicas de GP são importantes para garantir que eles possam ser bem aproveitados, gerando economia de dinheiro.
III. Um projeto pode ser completado com êxito sem a utilização de uma metodologia de GP.
IV. Um projeto é sempre único. Não existem dois projetos iguais, ainda que obedeçam ao mesmo planejamento e tenham como resultado final o mesmo produto.

a) São corretas as afirmativas I e III.
b) São corretas as afirmativas II e III.
c) São corretas as afirmativas III e IV.
d) São corretas as afirmativas I, III e IV.
e) São corretas todas as afirmativas.

Letra E, todas as alternativas estão corretas.

15. Exemplifique até 5 elementos que influenciam externamente um projeto.

Normas, crenças e expectativas e valores compartilhados – Devido a normas, crenças um projeto pode ter seu tempo influenciado.
Políticas e procedimentos – Políticos podem influenciar a maneira como um projeto é dirigido caso este seja grande e cause algum impacto na sociedade.
Visão das relações de autoridades – Autoridades podem embargar obras e mesmo projetos visto que estes não estejam de acordo com suas “visões”.
Ética do trabalho e horas do trabalho – Se o projeto for em local perigoso, ou mesmo haja riscos para os trabalhadores.
Meio ambiente – Caso o meio ambiente sofra impactos, o projeto pode sofrer influencias.

quinta-feira, 31 de maio de 2007

Gerência de Projetos Lista 03




1. Defina Gerência de Projetos.

Gerência de Projetos é a aplicação de conhecimentos, habilidades, e técnicas para projetar atividades que visem atingir os requerimentos do projeto. O Gerenciamento do Projeto é acompanhado através do uso de processos tais como: iniciação, planejamento, execução, controle e encerramento. A equipe de projeto gerência o trabalho do projeto e
o trabalho tipicamente envolve:

• Demandas concorrentes: escopo, tempo, risco e qualidade
• Partes envolvidas com diferentes necessidades e expectativas
• Identificação de requerimentos

É importante notar que muitos processos dentro da gerência de projetos são naturalmente iterativos. Isto é, em parte, devido a existência e a necessidade da elaboração progressiva no projeto durante todo o ciclo de vida do projeto.; i. e. quanto mais você conhece acerca do seu projeto, melhor você é capaz de gerenciá -lo. O termo gerência de projetos é algumas vezes usado para descrever uma abordagem organizacional para gerenciamento dos processos operacionais contínuos. Esta abordagem, mais conhecida como gerência por projetos, trata muitos aspectos dos serviços continuados como projetos, objetivando aplicar também a eles, os conceitos de gerência de projetos. Embora seja óbvio que o conhecimento de gerência de projetos é
essencial para uma organização que aplica a gerência por projetos, uma discussão detalhada dessa abordagem, está fora do escopo deste documento.

2. Descreva como as variáveis, tempo, orçamento e recursos podem influenciar no planejamento de um projeto.

Tempo – Inviabilizar uma construção ou uma tarefa em um determinado dia, atrasando assim o projeto.
Orçamento – Pouco orçamento, fazendo com que as matérias primas sejam de baixa qualidade ou mesmo deixando de usar tal produto ou recurso pela falta de orçamento
Recursos – Falta de qualidade no projeto, isto também pode agravar o tempo do mesmo.

3. Considere o projeto de construção do galpão de armazenamento de itens confiscados da polícia federal.

a)Defina os possíveis produtos a serem entregues ao cliente.

• Planta do galpão
• Documento de Aceitação
• Plano de Execução
• Cronograma
• Contrato
• Recibos
• Galpão

b)Liste possíveis os envolvidos no projeto.

• Cliente
• Gerente de Projetos
• Engenheiros
• Pedreiros
• Ajudantes de Pedreiros
• Serviços terceirizados como maquinas(tratores e etc..)

c)Apresente os principais fatores externos que podem gerar impacto no desenvolvimento do projeto.

• Tempo
• Recurso
• Fatores Externos

4. Qual o papel do Gerente de Projetos em um projeto?

Planejar e coordenar o desenvolvimento do sistema; colhendo métricas, suprindo necessidades, recrutando os recursos adequados, etc. Além das características já mencionadas, deve ser:

• Um “domador” de riscos
• Sempre alerta, mas não avesso a mudanças!
• Sensível a aspectos políticos
• Os interesses dos stakeholders do projeto nem sempre convergem!
• Um “ditador” esclarecido:
1. Para os desenvolvedores
2. Para o cliente / usuários

5. Uma vez fechado o TAP, quais são os principais itens que o gerente de projetos deve definir?

• Desenvolver a declaração do escopo preliminar - visão de alto nível do escopo do projeto.
• Desenvolvimento do Plano de gerenciamento do Projeto - agregar os resultados dos outros processos de planejamento construindo um documento coerente e consistente.
• Execução do Plano do Projeto - levar a cabo o projeto através da realização das atividades nele incluídas.
• Monitorar e controlar o trabalho do projeto - Verificação do andamento, desempenho da execução do plano de gerenciamento do projeto.
• Controle Geral de Mudanças – coordenar as mudanças através do projeto inteiro.
• Encerramento do projeto - envolve os processo de encerramento do projeto como encerramento administrativo, contrato, formalização da entregas do projeto.

6. Como são estruturadas as equipes para a construção de um determinado produto em uma empresa que adota a estrutura funcional?
Organização com estrutura funcional: cada funcionário tem um superior bem definido, e as equipes são organizadas por funcionalidade (ex. finanças, produção, etc) ou seguindo estruturas internas da empresa
7. Como são estruturadas as equipes para a construção de um determinado produto em uma empresa que adota a estrutura projetizada?

Organização projetizada : a empresa é organizada em departamentos, sendo que cada um responde a um gerente de projeto. Algumas áreas dão suporte a todos os projetos

8. O que você entende por estrutura matricial ?

Um estrutura principal, que dá origem.

9. Qual é o papel de um gerente de projetos em uma estrutura matricial fraca?

A estrutura matricial fraca mantem o gerente funcional com um nível maior de autoridade párecendo-se mais com uma estrutura funcional.

10. Cite um exemplo de organização que utiliza:

Estrutura funcional pura.
Organização com estrutura funcional: cada funcionário tem um superior bem definido, e as equipes são organizadas por funcionalidade (ex. finanças, produção, etc) ou seguindo estruturas internas da empresa

Estrutura projetizada.
Organização projetizada : a empresa é organizada em departamentos, sendo que cada um responde a um gerente de projeto. Algumas áreas dão suporte a todos os projetos. Ex – Uma empresa de criação de softwares.

Estrutura matricial forte.
Organização matricial : a estrutura matricial é uma combinação das estruturas – funcional e projetizada. Com isso pode assumir características distintas que dependem exclusivamente do grau de relevância que cada extremo é considerado. Pode ser dividida em estrutural matricial fraca, forte e balanceada. A estrutura matricial fraca mantem o gerente funcional com um nível maior de autoridade párecendo-se mais com uma estrutura funcional, a estrutura forte se perece muito com uma estrutura projetizada e o gerente de projetos possui grande autoridade, podendo alocar recursos de outras áreas ou mesmo contratatar recursos externos para realizar o projeto e, finalmente, a estrutura matricial balanceada representa um equíbrio entre os dois extremos, o lado funcional e o projetizado. Ex – Uma empresa de criação de automoveis.

11. Quando uma estrutura composta torna-se necessária? Quais as características de uma organização com estrutura composta?

Quando um empresa tem diversos projetos de diversas áreas diferentes e que estes precisam que as pessoas sejam dinâmicas, interagindo e se integrando a novos projetos, executando ou coordenando as tarefas do mesmo.

12. Considere as seguintes características de um projeto: Autoridade do gerente; percentual de pessoal alocado em tempo integral ao projeto; alocação do gerente de projetos; papel do gerente de projetos; suporte administrativo ao gerente de projetos.
Apresente como cada uma dessas características estão configuradas na estrutura funcional, matricial fraca, matricial forte e projetizada.



13. Liste possíveis fontes de riscos de um determinado projeto.

Categorias de risco. Os riscos, que podem afetar o projeto para melhor ou pior, podem ser identificados e organizados em categorias de risco. As categorias de risco deveriam ser bem definidas e deveriam refletir fontes comuns de risco para a indústria ou área de aplicação. Categorias incluem as seguintes:

• Riscos técnicos, qualidade ou desempenho - tal como confiar em tecnologia complexa ou em desenvolvimento, metas de desempenho irreais, mudanças na tecnologia na usada ou nos padrões de indústria durante o projeto.
• Riscos de gerência de projeto - tal como alocação precária de tempo e recursos, qualidade inadequada do plano de projeto, uso precária de disciplinas de gerência de projeto.
• Riscos organizacional - tais como custo, tempo, e objetivos de escopo que são internamente inconsistentes, falta de priorização de projetos, insuficiência ou interrupção de fundos e conflitos de recurso com outros projetos na organização.
• Riscos externos – tais como mudanças legais ou de regulamentações ambientais, questões trabalhistas, mudanças de prioridades do responsável, riscos rurais e de clima. Riscos de força maior como terremotos, inundações e revoltas civis geralmente requerem ações de recuperação de desastre em lugar de gerência de risco.

14. Descreva os princípios de uma gerência de risco bem sucedida.

Os riscos, que podem afetar o projeto para melhor ou pior, devem ser identificados e organizados em categorias de risco. As categorias de risco devem ser bem definidas e devem refletir fontes comuns de risco para a indústria ou área de aplicação.

15. Critique: “Em um projeto bem planejado e com forte tendência a ser bem sucedido, de forma a reduzir custos, deve ser adotada uma gerência reativa de riscos.”

Sim, um bom gerente deve prever risco e se assegurar de que estes sejam tratados e evitados.

16. Descreva, de forma sucinta o processo de gerência de riscos.

Planejamento da Gerência de risco é o processo de decidir como abordar e planejar a Gerência de risco no projeto. Isto é importante para planejar os processos de gerência de risco a seguir de forma a garantir que o nível, tipo e visibilidade da gerência de risco estão comensurados tanto para o risco, quanto para a importância do projeto para a organização

17. O que é a exposição de um risco? Como essa métrica pode ajudar na priorização de riscos durante a gerência dos mesmos?

Exposição ao risco é quando o gerente de projetos consegue enxergar o risco eminente, com isso ele consegue lidar com a situação que pode acontecer.

18. O que é e quais os tipos existentes de Mitigação de risco?

Mitigação. A mitigação busca reduzir as conseqüências e/ou probabilidade de um evento de risco adverso para uma tolerância aceitável. Tomar antecipadamente ações para reduzir a probabilidade de um risco acontecer ou o seu impacto no projeto é mais efetivo do que tentar reparar as conseqüências depois elas ocorrerem. Os custos de mitigação devem ser compatíveis com a probabilidade esperada do risco e suas conseqüências.
A mitigação do risco pode determinar a forma de implementar de um novo curso de ação que reduzirá o problema - por exemplo., adotar processos menos complexos, conduzir testes mais completos ou planejados , ou escolher um vendedor mais estável. Pode envolver mudar as condições para que seja reduzida a probabilidade de que o risco venha a ocorrer - por exemplo., adicionar recursos ou prazo para o cronograma. Isso pode exigir prototipar o desenvolvimento para reduzir o risco da evolução frente a um padrão dominado. Onde não é possível reduzir a probabilidade, uma resposta de mitigação pode atacar o impacto do risco buscando indicadores que determinem a severidade . Por exemplo, projetar uma redundância em um subsistema pode reduzir o impacto resultante de uma falha de um componente original.

19. Por que é importante o planejamento de contigência na gerência de riscos?

Controle e monitoração dos riscos é o processo de manter a rastreabilidade dos riscos identificados, monitorar riscos residuais e identificar novos riscos, assegurar a execução dos planos de risco e avaliar a sua efetividade na redução dos riscos. A monitoração e o controle dos riscos registra as métricas de riscos que são associadas com a implementação dos planos de contingência. Controle e monitoração de riscos é um processo contínuo para a vida do projeto. Os riscos mudam quando o projeto amadurece, novos riscos surgem, ou riscos previstos desaparecem.

20. Quais os principais itens presentes no Documento de Avaliação de Riscos? Esse documento deve ser estático de forma a permitir o gerenciamento preciso dos riscos pela equipe de projetos?

Saídas de planejamentos do projeto. Identificação do risco requer um entendimento da missão do projeto, escopo, objetivos do responsável, padronizador ou partes envolvidas. Saídas de outros processos devem ser revisadas para identificar possíveis riscos através de todo o projeto. Isso pode incluir, mas não limitar-se a:

• Project Charter
• EAP
• Descrição do produto
• Cronograma e estimativa de custo
• Plano de recursos
• Plano de aquisições
• Lista de restrições e premissas.