Professional Documents
Culture Documents
EXERCCIOS DE SQL DDL O objetivo desta atividade elaborar cdigos SQL responsveis pela realizao de consultas em um banco de dados. Questo 1 A partir do diagrama abaixo desenvolva o modelo relacional e o modelo fsico (linguagem sql).
Questo 2 Criao de tabelas As tabelas so: Alunos, com os campos: ra, do tipo inteiro, e sendo chave-primria; nome aluno, do tipo string com 50 caracteres; ano admiss, do tipo inteiro; data nasc, do tipo data. Disciplinas, com os campos: codigo, do tipo string com 10 caracteres, e sendo chave primria; nome disciplina, do tipo string com 50 caracteres; corte a, do tipo ponto-flutuante; corte b, do tipo ponto-flutuante; corte c, do tipo ponto-flutuante. OBS.: Os campos corte referem-se s notas mnimas para garantir os conceitos A, B e C, respectivamente. Cursa, com os campos: codigo, do tipo string com 10 caracteres, referenciando o atributo codigo em Disciplinas, e pertencendo chave primria; ra, do tipo inteiro, referenciando o atributo ra em Alunos, e pertencendo chave primria; professor, do tipo string com 50 caracteres; ano, do tipo inteiro; semestre, do tipo inteiro; nota, do tipo ponto flutuante.
Questo 3 Com base no esquema abaixo, escreva restries de integridade que garantam: fornecedores(num_for (PK), razao_social, cnpj, cidade, status) a) Que a cidade dos fornecedores seja apenas uma entre: Londres, Paris, Roma, Atenas, Oslo, Estocolmo, Madri e Amsterda. (com check) b) Que num_for seja um inteiro entre 150 e 550. c) Que o cnpj no pode ser nulo. d) Que o valor default de status 'OK'.
Execute instrues abaixo: a) Inserir um fornecedor para a cidade de Londrina b) Inserir um fornecedor para a cidade de Oslo c) Inserir um fornecedor para a cidade de roma (minsculo) d) Inserir um fornecedor com num_for igual a 90 e) Inserir um fornecedor com cnpj nulo f) Inserir dois fornecedores com a mesma razo social g) Inserir um fornecedor com num_for igual a 100. h) Modifique a restrio para que o cnpj possa ser nulo. i) Modifique a restrio para que num_for fique entre 100 e 500. Nenhum dado de fornecedor previamente cadastrado pode ser perdido. Faa esta alterao sem apagar ou recriar a tabela e recadastrar os dados. Os novos dados dos fornecedores devem ser:
Questo 4 Crie as tabelas abaixo: Atleta (cod_atleta, nome, sexo, cidade, data_nasc, idade) Equipe (cod_equipe, nome) Equipe_Atleta (cod_equipe, cod_atleta) cod_equipe referencia equipe cod_atleta referencia atleta Competicao (cod_competicao, data, cidade, pais) Participacao (cod_atleta, cod_equipe, cod_competicao, qualificacao) (cod_atleta, cod_equipe) referencia equipe_atleta cod_competicao referencia competicao Penalidades (cod_atleta, cod_penalidade, data, pontos, valor) cod_atleta referencia atleta * Os campos em negrito indicam as chaves primrias das tabelas. * As indicaes em azul representam as chaves estrangeiras das tabelas.
Faa insero dos seguintes dados Atleta cod_atleta 1 2 3 4 Equipe cod_equipe 1 2 Equipe_atleta cod_equipe 1 2 1 2 Competio cod_competicao 1 2 3 Participao cod_atleta 1 2 3 4 data 07/05/2003 03/06/2004 10/08/2004 cod_equipe 1 1 2 2 nome Rubens Souza Giovani Gomes Carla Andrade Flavia Tomazio sex o M M F F cidade Londrina Rio de Janeiro Sao Paulo Cornelio Procopio nome Flamengo Sao Paulo cod_atleta 1 3 2 4 cidade Roma Curitiba Rio de Janeiro pais Italia Brasil Brasil qualificacao ouro prata bronze bronze data_nasc 02/02/1980 20/01/1975 30/04/1977 13/05/1980 idade 24 29 27 24
cod_competicao 1 2 3 2
Questo 5 Crie as seguintes tabelas a partir das relaes abaixo. Defina Chaves primrias, Chaves Estrangeiras e Validaes de campos. Curso Codigo_Curso Nome_Curso Inscritos_Curso Instrutor Codigo_Instrutor Nome_Instrutor Seo Escritrio Fone Horrio Codigo_Horario Sala Horario Pre_Req Codigo_Curso Pre_Req Int Varchar(100) Int Int Varchar(100) Varchar(50) Varchar(30) Varchar(15) Int Varchar(30) Time Int Int Obrigatrio Obrigatrio Obrigatrio Obrigatrio Chave Primria >=0 Obrigatrio Obrigatrio Obrigatrio Chave Primria Centra, Vendas, Comercial
Chave Primria
Questo 6 a. Crie a seguinte tabela a partir das relaes abaixo. Empregado Nome_Empregado Rua Cidade Estado Civil b. c. d. e. f. g. Varchar(50) Varchar(100) Varchar(30) Varchar(15) Obrigatrio Obrigatrio Chave Primria Casado, Solteiro, Viuvo
Altere a Tabela Empregado adicionando o atributo Bairro varchar(40) Altere a Tabela Empregado adicionando o atributo Salario numeric(9,2) Altere a Tabela Empregado adicionando o atributo data nascimento date Altere a Tabela Empregado modificando o tamanho do atributo Cidade para 110. Altere a Tabela Empregado modificando o tamanho do Estado Civil para 20. Crie a seguinte tabela a partir da relao abaixo. No esquea de definir a chave primria. Varchar(50) Varchar(30) Obrigatrio Chave Primria
h. Altere a Tabela Empregado adicionando Nome_Empregado como chave primria. i. Verifique a descrio das tabelas criadas anteriormente. j. Crie a seguinte tabela a partir da relao. No esquea de definir as chaves estrangeiras. Trabalha Nome_Empregado Nome_Companhia Salrio Varchar(50) Varchar(50) Numeric(9,2) Obrigatrio Obrigatrio Obrigatrio Chave Primria Chave Primria Chave Estrangeira de Empregado Chave Estrangeira de Companhia >0
k. Crie a seguinte tabela a partir da relao. No esquea de definir as chaves estrangeiras. Gerente Nome_Empregado Nome_Gerente Varchar(50) Varchar(50) Obrigatrio Obrigatrio Chave Primria Chave Primria Chave Estrangeira de Empregado Chave Estrangeira de Empregado
l. Crie a seguinte tabela a partir da relao. Cidade Nome_Cidade CEP Estado Varchar(50) Varchar(9) Varchar(2) Obrigatrio Obrigatrio Chave Primria
Questo 7 Crie a seguinte tabela a partir das relao abaixo. Piloto codigo_piloto Nome_piloto Salario Gratificacao Companhia Pais Voo codigo_voo Aeroporto_Origem Aeroporto_Destino Hora Escala codigo_voo Data_voo Codigo_piloto Aviao Aeroporto codigo_aeroporto Nome_Aeroporto Cidade Pais Int Varchar(100) Numeric(9,2) Numeric(9,2) Varchar(30) Varchar(15) Varchar(6) Varchar(3) Varchar(3) Int Varchar(6) Date Int Varchar(30) Varchar(3) Varchar(100) Varchar(50) Varchar(15) Chave Primria
Chave Primria
Questo 8 De acordo com o dicionrio de dados abaixo, gere um novo banco de dados. Tabela BAIRRO Atributo / Campo COD_BAIRRO COD_CIDADE NOME_BAIRRO CIDADE COD_CIDADE NOME_CIDADE SIGLA_UF DOC_PESSOA_FISICA COD_PESSOA_FISICA COD_TIPO_DOCUMENTO COMPLEMENTO EXPEDICAO NUMERO_DOCUMENTO ENDERECO_PESSOA_FI APARTAMENTO SICA BLOCO CEP COD_LOGRADOURO COD_PESSOA_FISICA COMPLEMENTO NUMERO TIPO_ENDERECO VARCHAR(60) NUMERIC CHAR(1) NULL NOT NULL NULL No No 0 NUMERIC NOT NULL Yes Ye s VARCHAR(1) DATE VARCHAR(20) VARCHAR(10) NOT NULL NULL NULL No No VARCHAR(60) NUMERIC VARCHAR(60) VARCHAR(2) NUMERIC NOT NULL Yes NULL NULL No No Ye s Tipo de Dado / Tamanho NUMERIC Null / Not Null PK FK Valor Mnimo Regra de Validao Valor Padro
ESTADO_CIVIL
COD_ESTADO_CIVIL DESC_ESTADO_CIVIL
NOT NULL Yes No Yes Ye s No 0 DESCONTO >= 0 QUANTIDADE >= 0 VALOR_UNITARIO >= 0 0
ITENS_PEDIDO
FLOAT
No
LOGRADOURO
NUMERIC
NULL
Ye s
NOT NULL Yes No NULL VARCHAR(80) NUMERIC VARCHAR(30) NUMERIC NULL DATE NOT NULL NOT NULL Yes No Yes No Ye s No CURRENT_DATE NUMERIC Ye s Yes No DATE NULL No CURRENT_DATE No Ye s No
NACIONALIDADE PEDIDO
PESSOA_FISICA
DATA_CADASTRO DATA_NASCIMENTO NOME NOME_MAE NOME_PAI OBS SEXO PRODUTOS COD_PRODUTO COD_UNIDADE DESC_PRODUTO ESTOQUE_MINIMO QTDE_ESTOQUE VALOR_UNIT TIPO_DOCUMENTO TIPO_LOGRADOURO UF UNIDADE COD_TIPO_DOCUMENTO DESC_TIPO_DOCUMENTO COD_TIPO_LOGRADOURO DESC_TIPO_LOGRADOURO NOME_UF SIGLA_UF COD_UNIDADE DESC_UNIDADE NUMERIC VARCHAR(30) NUMERIC VARCHAR(20) VARCHAR(30) VARCHAR(2) NUMERIC VARCHAR(30) VARCHAR(60) FLOAT VARCHAR(250) CHAR(1) NUMERIC VARCHAR(60)
SEXO IN (M, F)