I Modelos teóricos de bancos de dados Questão I.1 Na comparação dos arcabouços teóricos de bancos de dados, com teoria e interpretação, quais são as principais simplificações necessárias no segundo caso? Explique cada uma sucintamente. Questão I.2 Considere a sentença x y [funcionário (x, y) departamento (y)] Sabendo-se que o predicado funcionário (Paulo, Vendas) denota o fato de que o funcionário Paulo trabalha no departamento Vendas e que o predicado departamento(vendas) denota a existência de um departamento chamado Vendas, como esta regra é tratada, num banco de dados, quando se trabalha a) com teoria; e b) quando se trabalha com interpretação? Questão I.3 Considerando a linguagem aceita pela Máquina de Muhammed apresentada no curso, como deveriam ser codificadas as seguintes afirmativas? um aluno não pode estar inscrito em mais de uma disciplina com chst de 6 horas; Astronomia é uma disciplina com chst igual à chst de Astrologia mais 1; um aluno pode ter inscrições em mais de uma disciplina, mas não pode estar inscrito simultaneamente em Astronomia e Astrologia. Questão I.4 Considere os seguintes fatos e condições sobre as entidades Aluno, Disciplina, Turma num sistema de controle de inscrições: a) disciplinas têm código, nome e número de créditos; não há duas disciplinas com o mesmo código; b) alunos têm DRE e nome; não há dois alunos com o mesmo DRE; c) turmas têm código apenas; não há duas turmas com o mesmo código; d) uma disciplina pode ter qualquer número de turmas; e) toda turma tem algum aluno inscrito em alguma disciplina; f) Física I é uma disciplina, de 3 créditos, cujo código é F1; g) existe uma turma de código MAA; h) existe uma turma de código MAB; i) Pedro, cujo DRE é 101, está inscrito em Física I na turma MAA; j) Maria, cujo DRE é 102, está inscrita em Cálculo I na turma MAB; k) Paula, cujo DRE é 103, está inscrita em Cálculo I na turma MAB; l) João, cujo DRE é 104, está inscrito em Física I na turma MAA; m) uma turma pode ter, no máximo, 30 alunos numa mesma disciplina; n) um aluno pode inscrever-se, no máximo, em 24 créditos; o) Física Experimental I é uma disciplina, de 3 créditos, cujo código é Fx; p) existe uma turma de código MAX; q) Pares de disciplinas podem ser co-requisitos entre si; r) Física I e Física Experimental I são co-requisitos; Dentre as sentenças acima, há algumas que geram fatos diretamente registrados na instância do banco de dados e outras que originam regras de caráter geral, que devem ser verdadeiras para qualquer interpretação. Dentre as últimas, algumas podem ser capturadas num modelo E-R e outras, não. Indique, para cada sentença apresentada acima, se a mesma pode ser representada ou não e qual a sua representação num possível diagrama E-R do sistema de controle de inscrições e, quando for o caso, a construção E- R que deveria ser utilizada. Uma sentença pode causar a especificação de entidades, atributos, identificadores, cardinalidades, relacionamentos ou qualquer outro elemento ou combinação presente num diagrama E-R. Utilize a notação IDEF1X modificada nas suas respostas. Para as sentenças não totalmente representáveis no modelo E-R, indique o que pode ser representado e o que não pode. II - Modelagem de dados Questão II.1 Na notação ER-win há dois tipos de relacionamentos: identificadores e não identificadores. Explique o significado de cada um, a notação utilizada e mostre exemplos. Questão II.2 Cite três mecanismos de abstração utilizados para modelagem de dados e mostre como podem ser representados num diagrama E-R, em qualquer notação, com um exemplo para cada caso.
Questão II.3 Num diagrama ER, criado no software ERWIN, foi introduzido um relacionamento entre as entidades E1 e E2, como mostrado abaixo. Complete a lista de atributos da entidade E2 após a introdução do relacionamento, justificando sua resposta. Sabendo-se que os atributos A1, B1 e C1 são identificadores em X, Y, Z, respectivamente, e que os atributos A1,B1,C1 constituem o identificador de R, pode-se concluir que, na tabela relacional correspondente a R: a) B1, isoladamente, poderia constituir uma chave candidata; b) A1 e C1 poderiam constituir uma chave candidata; a) A1 e B1 poderiam constituir uma chave candidata; Analise a validade de cada uma das afirmativas acima, justificando Questão II.7 O diagrama abaixo descreve o modelo de dados simplificado de uma livraria virtual, de acordo com o exercício feito durante o curso. Porém, há algumas incorreções. Identifique todas que puder e faça as devidas correções. Questão II.5 Considere os seguintes requisitos sobre as entidades Aluno, Disciplina, Turma num sistema de controle de inscrições: disciplinas são oferecidas através de turmas; uma disciplina pode ter qualquer número de turmas uma turma pode ter até 30 alunos numa mesma disciplina; um aluno pode inscrever-se em até 8 disciplinas; a inscrição é opcional; para toda turma há alguma disciplina sendo oferecida pela mesma; Desenhe um diagrama E-R representando o(s) relacionamento(s) entre as três entidades, observando a restrição de que não haja relacionamentos redundantes, ou seja, entre duas entidades só pode haver um caminho através do(s) relacionamento(s). Questão II.6 Considere o diagrama ER abaixo, na notação do ER- Win, apresentado com seus atributos identificadores já migrados. Questão II.8 Apresente os comandos SQL de criação das tabelas e principais constraints que implementem uma base relacional que corresponda, tanto quanto possível, ao diagrama abaixo. Para facilitar, considere que todos os atributos são do tipo int.
Observe o seguinte conjunto de dependências funcionais: A F A B A G A H, I B G B H C, D H a) Considerando as relações abaixo, determine as chaves primárias e/ou candidatas que devem estar definidas, em cada uma das relações, para que as mesmas estejam normalizadas até a Forma Boyce Codd. III Projeto de bancos de dados Questão III.1 Quais os principais objetivos quando se constrói um projeto de bancos de dados? Ilustre sua explicação com exemplos. Questão III.2 Sobre o processo de normalização de esquemas relacionais: a) explique o que é uma dependência funcional. Apresente um exemplo. b) explique o que é uma dependência multi-valorada. Apresente um exemplo; c) a partir dos axiomas de Armstrong (reflexividade, incremento e transitividade) mostre formalmente que se A B e A C então A BC Questão III.3 Considere os atributos A, B, C, D, E, F e suas dependências funcionais A B, C C D E F F E D F Mostre um esquema relacional para os atributos no qual as relações estejam na forma normal BC. Questão III.4 R1 (A,F,G) R2 (H, I) R3 (G, B, H) R4 (C, D) b) Indique, para cada uma das relações abaixo, o grau de normalização de cada uma, justificando suas respostas. R1 (B, C, D, H) R2 ( A, G) R3 (C, D) Questão III.5 Especifique as dependências funcionais que devem existir sobre os atributos atômicos A, B, C, D, H para que as tabelas R1 (A, B, C, D) R2 (A, H, B) estejam simultaneamente normalizadas até a forma Boyce-Codd. Não é preciso listar as dependências triviais. Questão III.6 Utilizando os Axiomas de Armstrong, mostre formalmente que b) se X Y e X Z então X Y, Z c) se X Y,Z então X Y Questão III.7 Suponha a existência dos atributos V, W, X, Y, Z e considere as seguintes assertivas: Se W X e V Y então X Y Se X Y então XW YW XY X
Se X Y e Y Z e Z V então X V Discuta sucintamente a validade de cada uma dessas assertivas. Questão III.8 Considere o esquema relacional R ( A, B, C, D) onde A é a chave primária, D é uma chave candidata. Supondo que R esteja na Forma Normal Boyce-Codd (BCNF), indique para cada uma das dependências funcionais abaixo se a mesma pode existir ou não, justificando as respostas. I. A -> B II. D -> C III. A -> C IV. AC -> BC V. DC -> A Questão III.9 Considere a seguinte relação R como descrita abaixo. R(Cidade, Rua, Número, CEP) Suponha que as seguintes dependências funcionais se verificam. Cidade Rua Número CEP CEP Cidade Se for possível identificar chave(s) adequada(s) tal que R esteja na Forma Normal Boyce-Codd, consideradas as dependências funcionais acima, identifique-a(s) e explique. Se não for possível, explique a razão. Questão III.10 Discuta as três principais alternativas para a implementação de estruturas de generalização através de tabelas relacionais. Use um esquema ER como exemplo, explique as alternativas de implementação e discuta os pontos fortes e fracos de cada opção, além dos fatores que podem contribuir na escolha final do projetista. Questão III.11 Cliente (CPF, Nome, Endereço) Loja (CodLoja, Localização) Produto (CodProduto, Descrição, PreçoUnitário) Venda (CodVenda, CPF, Data, CodLoja, Vendedor, Desconto) ItemVenda (CodItem, CodVenda, CodProduto, Quantidade) Chaves estrangeiras: CPF, na tabela Venda, com relação à tabela Cliente; CodLoja, na tabela Venda, com relação à tabela Loja; CodVenda, na tabela ItemVenda, com relação à tabela Venda; CodProduto, na tabela ItemVenda, com relação à tabela Produto; O esquema acima serve para um banco de dados (simplificado) que registra as vendas de uma rede de lojas de varejo. Os atributos (ou conjuntos de atributos) da chave primária de cada tabela aparecem sublinhados. Clientes e produtos são descritos nas tabelas Cliente e Produto, respectivamente. Uma venda está associada a um cliente, uma data, uma loja e um vendedor. Um venda pode incluir vários produtos, que são discriminados na tabela ItemVenda. Para cada venda, CodItem é numerado seqüencialmente, a partir de 1. Cada produto comprado aparece somente uma vez numa venda. Numa venda pode haver um desconto global, concedido para a venda como um todo. Um cliente pode comprar várias vezes, em lojas diferentes ou não. a) Construa um diagrama ER do problema acima, utilizando anotação IDEF1X IE (ER-Win b) Liste as dependências funcionais que você consegue depreender do enunciado; Questão III.12 Considere o diagrama ER abaixo. Quais as dependências funcionais que podem ser depreendidadas desse diagrama? Por quê? Questão III.13 Considere um banco de dados com os atributos atômicos dre, nome, cpf, codcurso e curso. Sabe-se que dre cpf cpf nome
cpf dre dre codcurso codcurso curso curso codcurso Indique o grau de normalização de cada uma das seguintes tabelas relacionais, justificando suas conclusões. T1 (dre, cpf, nome, curso) T2 (cpf, dre) T3 (cpf, codcurso, dre, nome) T4 (cpf, codcurso, dre, curso) Questão III.14 Considere as seguintes definições para a Terceira Forma Normal: Todo atributo não chave é não transitivamente dependente da chave. Uma relação R está na terceira forma normal se não existe uma chave X em R, um conjunto de atributos Y e um atributo não chave A, disjunto de X e Y, tal que: 1. X Y verifica-se em R; 2. Y A verifica-se em R; 3. Y X não se verifica em R. Apresente um exemplo que ilustre a diferença entre as duas. Questão III.15 Considere o diagrama abaixo, construído no ER-Win sob a notação IE. Considere ainda que: os atributos B1 e C1 não podem ser nulos; os atributos B2 e E2 têm valores default 0 e podem ser nulos; quando B2 e E2 forem diferentes de nulo, C2 B2; o atributo D3 deve conter valores entre 100 e 1000 e não aceita nulos; o atributo F armazena datas não nulas e todos os demais atributos são de tipos inteiros. Apresente um script SQL que defina um esquema relacional que adequadamente traduza a estrutura representada pelo diagrama, incluindo: a definição das tabelas e seus atributos com as respectivas propriedades; a definição das chaves primárias; a definição das chaves estrangeiras; a definição de outras restrições de integridade que eventualmente possam ser inferidas a partir do diagrama e das informações adicionais fornecidas; Questão III.16 Durante o processo de levantamento de requisitos de um sistema de informações descobriram-se que as seguintes dependências funcionais se verificam sobre os atributos A, B, C, D, E, F, G e H: A B B C D E E D F G F H G H H F H G Agora, considere o esquema relacional mostrado a seguir. Tabela Atributos Chaves R1 A, B, C A R2 D, E D R3 F, G, H F G, H
As tabelas R1 e R2 têm uma chave cada, definidas pelos atributos A e D, respectivamente. A tabela R3 possui duas chaves, uma formada pelo atributo F e outra, pela concatenação dos atributos G e H. Pede-se: indicar o grau máximo de normalização de cada tabela (1FN, 2FN, 3FN ou FNBC), justificando a resposta; indicar as modificações necessárias para que o esquema relacional apresentado esteja com todas as tabelas normalizadas até a forma normal Boyce- Codd. As alterações podem implicar na introdução/supressão de chaves, migração de atributos de uma tabela para outra ou até na redefinição completa do esquema. O esquema resultante deve contemplar todos os atributos. Procure favorecer a solução que mais se aproxima do esquema original, apresentando-a no formato utilizado acima e destacando claramente os atributos e chaves de cada tabela. Questão III.17 Considere o seguinte script SQL: create table concurso ( id_concurso int not null primary key, concurso varchar(60) not null create table cargo ( id_cargo int not null primary key, cargo varchar(60) not null, id_concurso int not null, constraint ci0 foreign key (id_concurso) references concurso (id_concurso) create table candidato ( id_candidato int not null primary key, nome varchar(40) not null create table inscrição ( id_concurso int not null, id_candidato int not null, id_cargo int, pontos int, constraint ci1 foreign key (id_concurso) references concurso (id_concurso), constraint ci2 foreign key (id_candidato) references candidato (id_candidato), constraint ci3 foreign key (id_cargo) references cargo (id_cargo), constraint ci4 primary key (id_concurso,id_candidato) Apresente um diagrama ER, na notação ER-Win IE, que corresponda exatamente ao esquema relacional definido pelo script acima. Seja preciso na sintaxe do diagrama. Questão III.18 Considere uma tabela relacional R, com atributos A, B e C, onde a chave primária é composta pelo atributo A. R A B C Sabe-se que as seguintes dependências funcionais se verificam: A B B C B A Pede-se: a) identificar o grau de normalização da tabela R; b) apresentar um esquema relacional com os referidos atributos, que esteja na forma normal Boyce-Codd, que preserve as dependências funcionais e ocorra sem perda na junção. As respostas devem ser sucintamente justificadas. Questão III.19 Considere o seguinte script SQL: create table A ( A1 int not null primary key, A2 varchar(40) not null create table D ( D1 int not null primary key, D2 varchar(30) not null unique, P1 int, T1 int not null, constraint c1 unique (P1), constraint c2 unique (T1), create table P ( P1 int not null primary key, P2 varchar(30) not null unique create table I ( A1 int not null, D1 int not null, D2 real, constraint c3 primary key (A1, D1), constraint c4 foreign key (A1) references A, constraint c5 foreign key (D1) references D, constraint c6 check (D2 >= 0 and D2 <= 10) create table T ( T1 int not null primary key, D1 int not null, constraint c7 unique (D1), constraint c8 foreign key (D1) references D alter table D add constraint c9 foreign key (P1) references P; alter table D add constraint c0 foreign key (T1) references T; Apresente um diagrama ER, na notação ER-Win IE, que corresponda exatamente ao esquema relacional definido pelo script acima. Seja preciso na sintaxe do diagrama.
Questão III.20 Usando a sintaxe da Máquina de Muhammed, escreva sentenças lógicas que representem as constraints c6, c7, c9 do exercício anterior. Questão III.21 Algumas implementações de bancos relacionais permitem variações na organização lógica e física das tabelas. Comente sucintamente as tabelas do tipo nested e partitioned, disponíveis no Oracle, explicando os conceitos que as norteiam e sugerindo exemplos de situações práticas nas quais esses tipos de tabelas são úteis. Questão III.22 No caso de estudo do campeonato de futebol foram utilizados alguns dos atributos listados a seguir. Atributo Time TimeVisitante TimeLocal CPF Endereço CGC Data Local CPF Nome Gols NumCartãoAmarelo MinutoSaida Interpretação Nome de um time Nome do time visitante num jogo Nome do time local num jogo CPF de um jogador Endereço de um time CGC de um time Data de um jogo Local onde um jogo se realiza CPF de um jogador Nome completo de um jogador Número de gols de um jogador num jogo Número de cartões amarelos de um jogador num jogo Minuto em que um jogador sai do jogo Forneça a lista das principais dependências funcionais (pelo menos 10) que podem ser depreendidas desses atributos, no contexto do caso mencionado (não inclua dependências funcionais triviais). Questão III.23 Apresente um diagrama ER, na notação ER-Win IE, que corresponda ao esquema relacional definido pelo script abaixo. Seja preciso na sintaxe do diagrama. create table X ( X1 int not null primary key, X2 varchar(40) not null Y2 varchar(30) not null, A int null, B int, constraint c1 unique (A), constraint c2 foreign key (A) references W create table I ( X1 int not null, Y1 int not null, D real, constraint c3 primary key (X1, Y1), constraint c4 foreign key (X1) references X, constraint c5 foreign key (Y1) references Y, Questão III.24 Na primeira versão do caso do campeonato de futebol, viu-se que as seguintes dependências funcionais eram definidas: TimeVisitante, TimeLocal DataJogo TimeVisitante, TimeLocal, CPF Gols a) Utilizando os Axiomas de Armstrong, mostre formalmente que TimeVisitante, TimeLocal, CPF DataJogo b) É possível concluir que Questão III.25 DataJogo, CPF Gols (?) Considere as tabelas R (A, B) S (C, D) Escreva 3 comandos SQL que produzam resultados respectivamente equivalentes às seguintes operações da álgebra relacional: R S R S R S Questão III.26 Explique o tratamento dado aos valores nulos (null) pelos gerenciadores de bancos no SQL. Aborde o que acontece quando há operandos nulos: a) nas expressões lógicas, b) nas operações aritméticas e c) nas funções de agregação. create table W ( W1 int not null primary key, W2 varchar(30) not null unique create table Y ( Y1 int not null primary key,
Questão III.26 Considere as instâncias das tabelas T1 e T2 apresentadas a seguir. T1 A B C D 3 4 4 3 4 6 5 3 5 3 5 3 2 5 2 3 4 6 5 3 2 7 1 9 Das dependências funcionais apresentadas abaixo, indique quais se verificam e quais não se verificam em T1 e T2, analisando cada uma separadamente e justificando as respostas sucintamente. 1. A C 2. A, B D 3. B, C, D C 4. F, G E, H 5. E FG Questão III.27 T2 E F G H 1 3 5 10 1 4 2 10 5 4 2 20 5 3 5 20 5 6 3 20 1 6 3 10 Apresente os comandos SQL de criação das tabelas e principais constraints que implementam uma base relacional que corresponda, tanto quanto possível, ao diagrama abaixo. Para facilitar, considere que todos os atributos são do tipo int. CodVoo, Origem, Destino H_Saída CodVoo, Origem, Destino, Data H_Saída_Real CodVoo, Data, Origem, Destino CodAviao Considerando somente os atributos e dependências funcionais listados acima, considere o esquema relacional mostrado a seguir. T1 (CodVoo, Empresa) T2 (CodEmpresa, Empresa) T3 (CodVoo, Data) T4 (CodVoo, Origem, Destino, H_Saída) T5 (CodVoo, Data, Origem, Destino, H_Saída, CodAviao) a) o esquema mostrado pode ser considerado uma decomposição sem perda? b) o esquema mostrado preserva as dependências funcionais apresentadas? c) o esquema está OK? IV Criação de tabelas Incluir os exercícios do capítulo 11 da Apostila de SQL, exceto aqueles que envolvem consultas Questão IV.1 Quando da criação de chaves estrangeiras (foreign keys) num banco de dados relacional, é possível especificar a ação a ser tomada na remoção e atualização de registros da tabela referenciada. Indique quais são as quatro principais opções usualmente disponibilizadas pelos gerenciadores de bancos de dados e o significado de cada uma. Discuta o emprego dessas variações quando do uso de relacionamentos identificadores e não identificadores. V Álgebra relacional Incluir os exercícios do capítulo 3 da Apostila de SQL Questão III.28 No estudo de caso das cargas aéreas, as seguintes dependências funcionais foram identificadas: CodVoo CodEmpresa CodEmpresa Empresa Empresa CodEmpresa PMS, Abril/2012