Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Banco de Dados I – EAD – 2018/2
SQL - Atividade Avaliativa – PARTE 1 (a parte 2 será divulgada em breve)
Professora: Denise Bandeira
Nome do Aluno: __________________________________
Leia este documento na íntegra antes de iniciar os exercícios
Edite o presente documento e insira as suas respostas para cada questão logo após o enunciado da mesma. 
Salve este arquivo com o seu nome e envie por meio da tarefa criada no Moodle para este propósito.
Descrição do banco de dados para a realização do trabalho
Considere o seguinte projeto lógico de um banco de dados:
	PRESIDENTE
	ID_PRESIDENTE, SOBRENOME, NOME, IDADE, ID_PARTIDO, ESTADO
	PARTIDO
	ID_PARTIDO, NOME_PARTIDO, ANO_FUNDAÇÃO, NÚMERO
	MANDATO
	ID_MANDATO, ANO_INICIO, ANO_FIM
	PRESIDENTE_MANDATO
	ID_PRESIDENTE, ID_MANDATO, DATA_INÍCIO_CARGO, DATA_FIM_CARGO, FORMA DE INGRESSO
Com as seguintes chaves:
	Tabela
	Chave Primária
	Chave Estrangeira
	PRESIDENTE
	ID_PRESIDENTE
	ID_PARTIDO referencia PARTIDO
	PARTIDO
	ID_PARTIDO
	NÃO TEM
	MANDATO
	ID_MANDATO
	NÃO TEM
	PRESIDENTE_MANDATO
	ID_PRESIDENTE, ID_MANDATO
	PRESIDENTE referencia PRESIDENTE
ID_MANDATO referencia MANDATO
Observações:
Tabela PRESIDENTE: 
idade tem valor máximo de 90.
Tabela PARTIDO: 
ANO_FUNCAÇÃO, quando não informado, deverá ter o valor 1889, que foi quando iniciou a primeira República do Brasil.
Tabela MANDATO: 
ANO_INICIO deve ser posterior a 1985, que foi o ano em que iniciou o período da Sexta República do Brasil.
ANO_FIM deve ser anterior 2019, que é o ano em que terminará o mandato atualmente em vigor no Brasil.
Tabela PRESIDENTE_MANDATO: 
FORMA_INGRESSO permite apenas os valores “ELEICAO” (eleição) ou “SUCESSAO” (sucessão).
É importante definir algumas restrições de integridade para que os dados inseridos respeitem às regras de validação e, consequentemente, o banco de dados permaneça sempre íntegro, com os dados corretos segundo o seu contexto de aplicação. O conceito de restrição de integridade: são regras que são definidas sobre os dados para regular as operações que podem ser realizadas sobre eles. No material da disciplina são apresentados os tipos de restrições que podem ser especificadas no momento da criação das tabelas.
Além das restrições, é possível definir valores default para serem inseridos em alguns atributos (colunas). Conforme está descrito no nosso material, a opção default “determina um valor que será inserido nesta coluna da tabela, quando um valor não for enviado pela instrução INSERT”.
Considere o exposto acima para criar o banco de dados neste trabalho. 
Questões da tarefa
(4 PONTOS) Crie o banco de dados descrito acima
Os elementos listados abaixo não podem faltar na criação das tabelas do banco de dados:
Defina as chaves primárias apropriadas, utilize as cláusulas CONSTRAINT e/ou PRIMARY KEY para isso.
Defina as chaves estrangeiras apropriadas, utilize as cláusulas CONSTRAINT e/ou FOREIGN KEY para isso.
Defina algumas restrições de integridade para o banco de dados; as restrições estão sugeridas no detalhamento do projeto do banco de dados descrito acima.
As restrições podem ser criadas através de uma CONSTRAINT da seguinte forma:
CONSTRAINT <nome da constraint> CHECK (<expressão>)
onde <expressão> é alguma expressão envolvendo o atributo relacionado na restrição. Ela pode envolver os operadores IN e BETWEEN.
Exemplos:
CONSTRAINT ck_idade CHECK (idade > 18)
ou
CONSTRAINT ck_ramo CHECK (ramo IN (‘Atacado’, ‘Varejo’, ‘Serviços’))
Defina alguns valores default; os valores default estão sugeridos no detalhamento do projeto do banco de dados descrito acima.
Valores default podem ser criados da seguinte forma:
DEFAULT <valor>, ao lado da definição do atributo na criação da tabela.
Exemplo para a tabela EMPREGADO:
…
idade number DEFAULT 60,	
… 
Observação: para ver a descrição completa da tabela, após tê-la criado no ORACLE, execute a instrução:	
describe <nome da tabela>;
*** sugestão: copie e cole o seguinte conjunto de instruções em um arquivo texto e grave em seu computador, assim será possível criar um script para execução de todas as instruções em conjunto no Oracle ***
*** o conjunto de instruções DROP TABLE abaixo remove as tabelas do banco de dados ***
*** a diretiva CASCADE CONSTRAINTS serve para que as tabelas possam ser apagadas, independentemente se chaves estrangerias de outras tabelas fazem referencia a elas ***
DROP TABLE PRESIDENTE CASCADE CONSTRAINTS;
DROP TABLE PARTIDO CASCADE CONSTRAINTS;
DROP TABLE MANDATO CASCADE CONSTRAINTS;
DROP TABLE PRESIDENTE_MANDATO CASCADE CONSTRAINTS;
*** sugestão: copie e cole o seguinte conjunto de instruções em um arquivo texto e grave em seu computador, assim será possível criar um script para execução de todas as instruções em conjunto no Oracle ***
*** o conjunto de instruções CREATE TABLE cria as tabelas descritas acima no banco de dados 
ENTRETANTO, O CONJUNTO DE INSTRUÇÕES ABAIXO ESTÁ INCOMPLETO (E NA ORDEM ERRADA) E FAZ PARTE DESTE TRABALHO VOCÊ COMPLETÁ-LO CONFORME O QUE ESTÁ SENDO DADO NO INÍCIO DESTE ENUNCIADO. 
***
Create table PRESIDENTE (
id_presidente	integer not null,
sobrenome 	varchar(50),
nome 	varchar(50),
idade		integer,
id_partido 	char(5),
estado 	char(2),
constraint 	pk_PRESIDENTE primary key(id_presidente),
);
Create table PARTIDO (
id_partido char(5) not null,
nome 	 varchar(100),
ano_fundacao integer,
numero	 integer,
constraint pk_PARTIDO primary key(id_partido)
);
Create table MANDATO (
id_mandato integer not null,
ano_inicio integer CHECK (ano_inicio >= 1985),
ano_fim integer,
constraint pk_MANDATO primary key(id_mandato)
);
Create table PRESIDENTE_MANDATO (
id_presidente integer not null,
id_mandato integer not null,
data_inicio_no_cargo date,
data_fim_no_cargo date,
constraint fk1_PRESIDENTE_MANDATO foreign key(id_presidente) references PRESIDENTE,
constraint fk2_PRESIDENTE_MANDATO foreign key(id_mandato) references MANDATO
);
Insira AQUI a resposta para esta questão, que deve ser o conjunto FINAL de instruções CREATE TABLE que definem as tabelas deste projeto corretamente. 
(4 PONTOS) Popule o banco de dados acima. Note que as instruções já foram dadas abaixo, mas você deve verificar se existem erros. Execute o conjunto de instruções apresentado abaixo para a inserção dos dados no banco de dados. Note que a ordem de inserção é muito importante. Algumas instruções podem gerar erros. As instruções que gerarem erro devem ser comentadas na resposta.
Observação: para omitir alguns valores em uma instrução SQL INSERT, indica-se, antes da palavra values, os nomes dos atributos para os quais vai inserir valores. 
Exemplo:
INSERT into EMPREGADO (Cod_Emp, Nome_Emp) values (100, ‘Denise Bandeira’);
No exemplo acima, será inserido um empregado com apenas os valores para os atributos Cod_Emp e Nome_Emp. Os demais atributos ficarão com valores “nulos”, a não ser o atributo idade, que ficará com o valor default (caso tenha sido definido na criação da tabela).
insert into PARTIDO values ('PT', 'Partido dos Trabalhadores', 1980, 13);
insert into PARTIDO values ('PSDB', 'Partido da Social Democracia Brasileira', 1988, 45);
insert into PARTIDO (id_partido, nome, numero) values ('PRN', 'Partido da Reconstrução Nacional', 36);
insert into PARTIDO values ('PMDB', 'Partido do Movimento Democrático Brasileiro', 1980, 15);
insert into PRESIDENTE values (37, 'Temer', 'Michel', 77,'PMDB', 'SP');
insert into PRESIDENTE values (36, 'Rousseff', 'Dilma', 70, 'PT', 'MG');
insert into PRESIDENTE values (35, 'Silva', 'Luiz Inacio Lula da', 72, 'PT', 'SP');
insert into PRESIDENTE values (35, 'Cardoso', 'Fernando Henrique', 87, 'PSDB', 'SP');
insert into PRESIDENTE values (33, 'Franco', 'Itamar', null, 'PMDB', 'SP');
insert into PRESIDENTE values (32, 'Color', 'Fernando', 91, 'PRN', 'AL');
insert into PRESIDENTE values (31, 'Sarney', 'Jose',88, 'PMDB', 'MA');
insert into MANDATO values (1, 2015, 2019);
insert into MANDATO values (2, 2011, 2015);
insert into MANDATO values (3, 2007, 2011);
insert into MANDATO values (4, 2003, 2007);
insert into MANDATO values (5, 1999, 2003);
insert into MANDATO values (6, 1995, 1999);
insert into MANDATO values (7, 1990, 1995);
insert into MANDATO values (8, 1984, 1990);
insert into PRESIDENTE_MANDATO values (37, 1, '08-31-2016', null, 'SUCESSAO');
insert into PRESIDENTE_MANDATO values (36, 1, '01-01-2015','08-31-2016','ELEICAO');
insert into PRESIDENTE_MANDATO values (36, 2, '01-01-2011','01-01-2015','ELEICAO');
insert into PRESIDENTE_MANDATO values (35, 3, '01-01-2007','01-01-2011','ELEICAO');
insert into PRESIDENTE_MANDATO values (35, 4, '01-01-2003','01-01-2007','ELEICAO');
insert into PRESIDENTE_MANDATO values (34, 5, '01-01-1999','01-01-2003','ELEICAO');
insert into PRESIDENTE_MANDATO values (34, 6, '01-01-1995','01-01-1999','VOTO');
insert into PRESIDENTE_MANDATO values (33, 7, '12-29-1992','01-01-1995','SUCESSAO');
insert into PRESIDENTE_MANDATO values (32, 7, '03-15-1990','12-29-1992','ELEICAO');
insert into PRESIDENTE_MANDATO values (31, 8, '03-15-1985','03-15-1990','SUCESSAO');
Insira AQUI a resposta para esta questão, que deve conter os itens abaixo:
o conjunto FINAL de instruções INSERT realizado em todas as tabelas e na ordem correta de execução.
para o INSERT onde o valor Default foi aplicado, indique isso explicitamente aqui na sua resposta.
os comentários sobre as instruções que geraram erro, qual o motivo (descrever o conceito, visto na disciplina, que determina o motivo do erro) e o que foi feito para corrigir.
uma listagem dos dados de cada tabela após a finalização de todos os INSERTS; por exemplo, pode ser um printscreen da tela do ambiente Oracle (ou outro SGBD que esteja utilizando), ou pode ser a “cópia e cola” do resultado emitido por uma instrução SELECT * FROM <tabela> para cada tabela do banco de dados.
Os dados dos inserts foram consultados em: 
“https://pt.wikipedia.org/wiki/Lista_de_presidentes_do_Brasil”.
Após editar o arquivo, ESTE EXERCÍCIO DEVE SER ENCAMINHADO PELO Moodle, conforme PRAZO indicado na tarefa. A entrega deve ser entregue neste mesmo arquivo, editado conforme orientações ao longo do texto.
Observação sobre a avaliação: 
este trabalho é individual; 
as questões somente serão consideradas totalmente corretas se as respostas forem apresentadas conforme as orientações ao longo do texto.
Mais uma questão será divulgada em breve, dependente das questões já apresentadas aqui. Portanto, adiante esta parte 1 do trabalho.

Mais conteúdos dessa disciplina