Fundamentos de Bancos de Dados 3 a Prova

Documentos relacionados
Fundamentos de Bancos de Dados 3 a Prova

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

Fundamentos de Bancos de Dados Prova 3

Modelagem Conceitual parte I

Modelagem Conceitual parte I

Engenharia Reversa e Normalização

Engenharia Reversa e Normalização

01 - Quais as principais vantagens da utilização de um Sistema de Banco de Dados em relação aos sistemas tradicionais de gerenciamento de arquivos?

PROJETO DE BANCO DE DADOS -PROJETO CONCEITUAL. Prof. Angelo Augusto Frozza, M.Sc.

DCC011 Introdução a Banco de Dados. Construindo o Esquema. 1. Propriedades de Modelos ER. Construindo Esquema Conceitual

P R O J E T O: C A R N A V A L. 2. Informações Básicas sobre o Sistema a ser Desenvolvido

MER e DER Entidades Relacionamentos Atributos Ferramentas CASE Exemplos de DERs Exemplo de Minimundo. Banco de Dados. Aula 1.

Modelos. Banco de dados. Professor: Jarbas Araújo CENTRO EDUCACIONAL RADIER.

Banco de Dados I Modelagem Conceitual

BANCO DE DADOS I/MODELAGEM DE DADOS Prof. Ricardo Rodrigues Barcelar

PROJETO: CONFERÊNCIA ACADÊMICA. 2. Informações Básicas sobre o Sistema a ser Desenvolvido

Revisando Banco de Dados. Modelo Relacional

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

SISTEMA DE INFORMAÇÃO Modelo Conceitual. Prof. Luiz Fernando Laguardia Campos FMS

Engenharia reversa de arquivos e documentos. Capítulo 6

BANCO DE DADOS I/MODELAGEM DE DADOS Prof. Ricardo Rodrigues Barcelar

DCC011 Introdução a Banco de Dados Definição do Trabalho Final

Disciplina: Banco de Dados I Professora: Ms. Márcia Jani. Trabalho de BD1

Normalização de Tabelas. Prof. Antonio Almeida de Barros Junior

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

ENGENHARIA REVERSA DE ARQUIVOS

BCD29008 Banco de dados

Tópico: Normalização

Modelo Relacional Wendel Melo

Construindo modelos ER. Capítulo 3

Unidade 4 Projeto de Banco de Dados

Modelo Relacional. Aula 02

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Engenharia reversa de arquivos e documentos. Capítulo 6

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Normalização de Dados. Disciplina: Fundamentos de Banco de dados Docente: Kelyn Schenatto

Projeto de um BD Modelo Entidade-Relacionamento (ER)

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Modelo Relacional e Normalização de Dados. ENG1518/3VC Sistemas de Informação Gerenciais Prof. Marcos Villas

Aula 2 Abordagem Entidade-Relacionamento Cleverton Hentz

Sistema de Banco de Dados. UNIDADE 1 Introdução aos Sistemas de Bancos de Dados Professor: Armando Hage

Modelo Entidade-Relacionamento (E-R)

Banco de Dados Modelagem e Normalização

Engenharia Reversa de Arquivos e Normalização

12.4 DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Banco de Dados II. Prof. Fiorin

Análise das Necessidades

Abordagem ER. Capítulo 2

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Engenharia reversa de arquivos e documentos. Capítulo 6

Construindo modelos ER. Capítulo 3

Banco de Dados Aula 02

MER Modelo de entidade e Relacionamento. Prof. Me. Hélio Esperidião

Professor Eros Moura, DSc

P R O F. M E. H É L I O E S P E R I D I Ã O. Eng. Computação

Computação Instrumental

Banco de dados. Conteúdo: Modelo relacional Prof. Patrícia Lucas

BANCO DE DADOS I/MODELAGEM DE DADOS Prof. Ricardo Rodrigues Barcelar

INE 5623 Projeto de Banco de Dados

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

O CMS JOOMLA! UM GUIA PARA INICIANTES

Prof.: Clayton Maciel Costa

BCD29008 Banco de dados

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

ORGANIZANDO DADOS E INFORMAÇÕES: Bancos de Dados

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de Dados. Sistemas de Informação Engenharia de Produção

BD e Aplicações em Negócios

Banco de Dados 30/04/2012 1

Modelo Relacional. Banco de Dados 2º trimestre Prof. Patrícia Lucas

Projeto de Banco de dados - Fundamentos

Modelagem de Dados (Estrutura Relacional)

Banco de Dados. Aula 3 - Prof. Bruno Moreno 26/08/2011

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

MODELAGEM DE DADOS UNIDADE 2 Projeto de Banco de Dados. Luiz Leão

Banco de Dados I. Aula 10 - Prof. Bruno Moreno 23/09/2011

1) Defina os seguintes termos: entidade, atributo, atributo multivalorado, atributo derivado, atributo-chave, conjunto de valores e relacionamento

Introdução 20 Diagramas de fluxos de dados 20 O processo de elaboração de DFD 22 Regras práticas para a elaboração de DFD 24 Dicionário de dados 26

Faculdade Ieducare 4º Semestre Sistemas de Informação Professor: Rhyan Ximenes

Banco de Dados 08/08/2010

Classificação dos Dados

Modelo Relacional Prof. Msc Denival A. dos Santos

Transformação ER para modelo relacional

Projeto de Banco de Dados. Carlos Alberto Heuser

Banco de Dados I Curso: Sistemas de Informação

Banco de Dados. Aula 01. Prof. Diemesleno Souza Carvalho

Aula 01 Conceito de Banco de Dados e SGBD

Desenvolvimento de Aplicações para Internet Aula 6

Prova de Fundamentos de Bancos de Dados 1 a Prova

Arquitetura dos SBDs Características e Benefícios Visão Geral de Projeto de BD MER: Entidades e Atributos Atividade.

Abordagem relacional. Capítulo 4

Fundamentos de Bancos de Dados Prova 3

Modelo Entidade-Relacionamento. José Antônio da Cunha CEFET-RN

2010 Diagrama Entidade - Associação

Abordagem ER. Capítulo 2

Introdução a B anco de Dados. INE5206 Introdução à Informática INE/CTC/UFSC Prof. Roberto Willrich

Transcrição:

Fundamentos de Bancos de Dados 3 a Prova Prof. Carlos A. Heuser 4 de julho de 2007 Duração: 2 horas Prova com consulta Questão 1 (Construção de modelo ER - Peso 3) Deseja-se construir um sistema gestão de sítios WEB. Este sistema irá armazenar o conteúdo de um sítio web. Um sítio tem um nome, uma url e um número de identificação interna. Cada sítio é composto por muitas páginas. Cada página pertence a um sítio somente, é identificada por um número identificador e tem um nome. As páginas podem ser de dois tipos, chamados custom e template. No caso das páginas custom, o sistema simplesmente armazena o conteúdo da página, na forma de string longo que contém o código HTML ou PHP da página, juntamente com um sinalizador que indica a linguagem (HTM ou PHP). Não estão previstas outras linguagens. As páginas template são páginas com funcionalidade pré-determinada. Estas páginas são usadas para acessar uma base de dados. Neste caso, o sistema deve armazenar os dados necessários ao acesso da base de dados, que são o número P do servidor, o nome da base de dados, o nome do usuário do SGBD e a senha de acesso. Por sua vez, as páginas template podem ser classificadas em dois tipos, as páginas que exibem dados do resultado de uma consulta e as páginas que disponibilizam um formulário que permite que sejam feitas modificações em uma tabela. Para as páginas de consulta, o sistema armazena um comando SQL que monta a consulta a exibir na página. A partir deste comando a página é montada dinamicamente cada vez que requisitada pelo usuário. Já para páginas de formulário de modificação, o sistema armazena o nome da tabela que é alterada através do formulário, bem como três indicadores que informam que tipo de modificações (inclusão, exclusão e alteração) podem ser realizada através do formulário. Além de armazenar o conteúdo do sítio, o sistema de gestão deve controlar o acesso e a modificação de páginas. Para tal, o sistema deve manter um cadastro de 1

usuários, identificados por seu nome, tendo cada um uma senha. Para cada sítio e para cada usuário, pode ser definido seu direito de acesso. O direito de acesso pode ser "Acesso", que significa que o usuário somente pode acessar o sítio, ou "Adm", que significa que ele também pode fazer modificações nas páginas do sítio. Da mesma forma, para cada página e para cada usuário, também pode ser definido o direito de acesso à página específica ("Adm"ou "Acesso"). Solução: A solução encontra-se na Figura 1 e está apresentada com a notação do Power designer. 2

Direito site direito acesso site Numero Sítio Nome Sítio URL Sítio Sítio WEB Relationship_2 Relationship_5 Relationship_1 Nome usuário senha usuario Usuario Página WEB Nome da página Número da página VMBT60 Relationship_3 Relationship_4 nheritance_1 Direito pagina direito acesso pagina Página custom Conteúdo da página linguagem da página LVA32000 A3 Pagina template Servidor de BD Nome do BD usuario senha A9 nheritance_2 pagina consulta Consulta SQL LVA1000 forumario alteracoa Nome da Tabela nclusao Exclusao Alteração BL BL BL Figura 1: Modelo conceitual para a questão 1 3

Sessão frustrada DataHora DT Relationship_1 Usuário número interno usuário nome do usuário senha do usuário Relationship_2 Ordem de visita inicio da visita fim da visita Página visitada DT DT Relationship_3 Relationship_4 início fim Sessão realizada Página número da página nome da página DT DT <UNDEF> Figura 2: Modelo conceitual para a questão 2 Questão 2 (Projeto de base de dados relacional - Peso 2,6) Na figura 2, está apresentado um modelo ER parcial de um sistema de controle de acesso a páginas WEB. A notação usada é no estilo engenharia de informação, especificamente a do software Power Designer que vimos em aula. Os atributos estão anotados dentro dos retângulos representativos das entidades. Atributos identificadores estão sublinhados. Relacionamentos são representados por linhas. A cardinalidade mínima 0 é representada por um círculo, e a cardinalidade mínima 1 é representada por um pequeno traço. A cardinalidade máxima n é representada por um pequeno triângulo, e a cardinalidade máxima 1 é representada pelas ausência deste triângulo. Relacionamentos identificadores têm um símbolo especial (ver o relacionamento entre Usuário e Sessão realizada). A entidade Usuário corresponde aos usuários que estão sendo controlados. A entidade Sessão frustrada representa as sessões que não puderam ser realizadas por senha incorreta. Já a entidade Sessão realizada corresponde às sessões que efetivamente ocorreram. A entidade Página visitada informa as páginas que foram visitadas em uma sessão, sendo o atributo Ordem de visita um número inteiro que representa a seqüencia de visita das páginas do site. A entidade Página representa as páginas propriamente ditas. Deve ser projetado o esquema (modelo lógico) de uma base de dados relacional para o modelo ER em questão. A base de dados deve refletir exatamente o especificado no modelo conceitual. O esquema da base de dados relacional deve conter os nomes das tabelas, os nomes dos atributos, atributos que formam a chave primária e as chaves estrangeiras. Quando houver alternativas de projeto 4

dizer que alternativa foi usada. Pode ser usada a notação textual vista em aula para representar esquemas relacionais. Solução: USUARO ( NUMERO_NTERNO_USUARO, NOME_DO_USUARO, SENHA_DO_USUARO); SESSAO_FRUSTRADA ( NUMERO_NTERNO_USUARO,DATAHORA); (NUMERO_NTERNO_USUARO) references USUARO (NUMERO_NTERNO_USUARO) SESSAO_REALZADA ( NUMERO_NTERNO_USUARO,NCO, FM); (NUMERO_NTERNO_USUARO) references USUARO (NUMERO_NTERNO_USUARO) PAGNA_VSTADA ( NUMERO_NTERNO_USUARO,NCO,ORDEM_DE_VSTA, NUMERO_DA_PAGNA, NCO_DA_VSTA, FM_DA_VSTA); (NUMERO_NTERNO_USUARO, NCO) references SESSAO_REALZADA (NUMERO_NTERNO_USUARO, NCO) (NUMERO_DA_PAGNA) references PAGNA (NUMERO_DA_PAGNA) PAGNA (NUMERO_DA_PAGNA, NOME_DA_PAGNA); 5

Questão 3 (Engenharia reversa de BD relacional - Peso 2,6) Abaixo está apresentado o esquema lógico de uma parte de uma base de dados que mantém dados sobre pessoas relacionadas a uma universidade. Execute um processo de engenharia reversa, construindo o modelo entidaderelacionamento correspondente a esta base de dados. O modelo ER deve refletir exatamente esta base de dados, contendo entidades, atributos, relacionamentos e cardinalidades máximas (quando possível), bem como os identificadores. O modelo deve ser construído aplicando as regras apresentadas no livro. Para representar o modelo ER use a notação do livro ou da ferramenta CASE utilizada no trabalho. Pessoa (NumeroCartao,NomePess,SexoPess,DataNascPess) /* tabela com dados das pessoas */ Aluno (NumeroCartao, NoDeAnosNaEscolaPublica, ResultadoENEM) (NumeroCartao) referencia Pessoa /* tabela com os dados dos alunos */ BolsasC (NumeroCartao,AnoSemestre,CodOrgãoFinanciador) (NumeroCartao) referencia Aluno (CodOrgãoFinanciador) referencia OrgãoFin /* tabela com dados sobre as bolsas de C que cada aluno teve*/ ngressoemcurso (NumeroCartao,CodCr,Datangresso, DataFinaliza) (NumeroCartao) referencia Aluno (CodCr) referencia Curso /* tabela com dados referentes aos ingressos dos alunos nos cursos */ Curso (CodCr,NomeCurso,NivelCurso) /* tabela com dados dos cursos*/ OrgãoFin (CodOrgãoFinanciador,NomeOrgãoFinanciador) /* tabela com dados dos orgãos que financiam bolsas de iniciação científica*/ Solução: O modelo conceitual gerado pela engenharia reversa encontra-se na figura 3. A entidade ngresso em curso poderia ser um relacionamento n:n entre 6

Pessoa Número do cartão Nome da pessoa Sexo da pessoa Data de nascimento L A1 D Código do orgão Nome do orgão Orgão Financiador L nheritance_1 Relationship_2 Aluno Número de anos em esc publ Resultado no ENEM F Relationship_1 BolsaC Ano semestre Relationship_3 ngresso em curso Data de ingresso Data de finalização D D Relationship_4 Código do curso Nome do curso Nível do curso Curso L VA10 Figura 3: Modelo conceitual para a questão 3 Aluno e Curso. 7

Questão 4 (Normalização - Peso 1,8) Considere a tabela abaixo, não necessariamente normalizada, referente à base de dados da questão anterior. Esta tabela foi obtida a partir de um documento que lista, para cada aluno: 1. seu número de cartão, seu nome, seu sexo e sua data de nascimento; 2. dados das bolsas C que o aluno obteve, incluindo o ano semestre em que teve bolsa, e o código e nome do órgão financiador da bolsa; 3. dados dos cursos nos quais ele ingressou, incluindo o código e o nome do curso e a data de ingresso no mesmo. Tabela (NumeroCartao,NomePess,SexoPess,DataNascPess, (AnoSemestre,CodOrgãoFinanciador, NomeOrgãoFinanciador), (CodCr,Datangresso, NomeCurso), ) As dependências funcionais (podendo incluir dependências transitivas) que existem nesta tabela são as seguintes: (NumeroCartao) NomePess (NumeroCartao) SexoPess (NumeroCartao) NomeDataNascPess (NumeroCartao,AnoSemestre) CodOrgãoFinanciador (NumeroCartao,AnoSemestre) NomeOrgãoFinanciador (CodOrgãoFinanciador) NomeOrgãoFinanciador (CodCr) NomeCurso 1. Diga em que forma normal encontra-se a tabela. 2. Caso a tabela não se encontre na terceira forma normal, mostre a transformação da tabela para a terceira forma normal. Mostre cada forma normal intermediária, entre aquela em que a tabela se encontra e a terceira forma normal. Solução: 8

1. A tabela não se encontra na 1FN pois contém tabelas aninhadas. 2. 1FN: (eliminação das tabelas aninhadas) Tab1 (NumeroCartao,NomePess,SexoPess,DataNascPess) Tab2 (NumeroCartao,AnoSemestre,CodOrgãoFinanciador, NomeOrgãoFinanciador) Tab3 (NumeroCartao,CodCr,Datangresso, NomeCurso) 2FN: (eliminação das dependências funcionais parciais) Tab1 (NumeroCartao,NomePess,SexoPess,DataNascPess) Tab2 (NumeroCartao,AnoSemestre,CodOrgãoFinanciador, NomeOrgãoFinanciador) Tab3 (NumeroCartao,CodCr,Datangresso) Tab4 (CodCr, NomeCurso) 3FN: (eliminação das dependências funcionais transitivas) Tab1 (NumeroCartao,NomePess,SexoPess,DataNascPess) Tab2 (NumeroCartao,AnoSemestre,CodOrgãoFinanciador) Tab3 (NumeroCartao,CodCr,Datangresso) Tab4 (CodCr, NomeCurso) Tab5 (CodOrgãoFinanciador, NomeOrgãoFinanciador) 9