Baixe o app para aproveitar ainda mais
Prévia do material em texto
TTECNOLOGIAECNOLOGIA DEDE BBANCOSANCOS DEDE DDADOSADOS Hiroo Takaoka GGERENCIAMENTOERENCIAMENTO DEDE DDADOSADOS Finanças Engenharia Produção Vendas Arquivo Arquivo Arquivo Arquivo Orientado a Área FuncionalOrientado a Área Funcional GGERENCIAMENTOERENCIAMENTO DEDE DDADOSADOS Problemas ◦ Redundância e inconsistência de dados É a presença de dados duplicados em múltiplos arquivos de dados. Um mesmo dado pode ter diferentes significados e diferentes níveis de atualização. ◦ Dependência entre programa e dados É o estreito relacionamento entre dados armazenados em arquivos e os programas requeridos para atualizar e manter esses arquivos. ◦ Falta de flexibilidade Um sistema de arquivo pode produzir relatórios pré-programados, mas não pode produzir relatórios ad hoc (como e quando preciso). ◦ Baixo nível de segurança Há pouco controle ou gerenciamento de dados. ◦ Falta de compartilhamento e disponibilidade dos dados Como não se pode relacionar facilmente os dados de diferentes arquivos, é quase impossível que a informação seja compartilhada ou acessada de modo oportuno. Orientado a Área FuncionalOrientado a Área Funcional GGERENCIAMENTOERENCIAMENTO DEDE DDADOSADOS Finanças EngenhariaVendas BancoBanco dede DadosDados Produção Orientado a DadosOrientado a Dados Sistema de Gerenciamento de Banco de Dados (Access, SQL Server, Oracle etc.) Consulta ad hoc TTECNOLOGIAECNOLOGIA DEDE BBANCOSANCOS DEDE DDADOSADOS Banco de Dados ◦ Um Banco de Dados é uma coleção de dados organizados para atender a muitas aplicações, centralizando eficientemente os dados e minimizando dados redundantes. Sistema de Gerenciamento de Banco de Dados ◦ Um Sistema de Gerenciamento de Banco de Dados (SGBD) é simplesmente o software que permite a uma organização centralizar seus dados e gerenciá-los com eficiência e proporciona acesso a programas aplicativos aos dados armazenados. Banco de Dados Sistema de Gerenciamento de Banco de Dados (Access, SQL Server, Oracle etc.) Sistema de Faturamento Sistema de Cotabilidade Sistema de Pedido Sistema de Programação de. Produção ...Consulta Sistemas de Processamento de Transações TTIPOSIPOS DEDE BBANCOSANCOS DEDE DDADOSADOS Banco de Dados Operacional Estes bancos de dados armazenam dados detalhados sobre as transações. Data Warehouse (DW) É uma coleção de dados orientada a um assunto, integrado, variante no tempo e não-volátil, voltada primariamente para as tomadas de decisões na organização. Data Mart Um Data Mart é um subconjunto de dados do DW destinado a suportar as necessidades específicas de uma determinada unidade de negócios (Finanças, Mkt, etc). TTIPOSIPOS DEDE BBANCOSANCOS DEDE DDADOSADOS DW Extração Transformação Carga Data Mining OLAP Aplicações Analíticas Sistemas de Processamento de Transações Sistemas de Informação para Apoio à Decisão Data Mart Data Warehouse Banco de dados operacional BBANCOANCO DEDE DDADOSADOS RRELACIONALELACIONAL -- BDRBDR Aluno No banco de dados relacional, todos os dados do banco são representados como simples tabelas denominadas relações. Tabela (Relação, Arquivo) Colunas (Campos, Atributos) Curso Linhas (Registros, Tuplas, Entidades) Nome de Colunas Código Nome Duração Vaga Diretor 11 Engenharia 5 150 0117 12 Ciência da Computação 4 50 1606 42 Administração de Empresas 4 180 2311 Número Nome EndereçoResidencial Endereço Comercial Código Curso 30021 Wilson R. Alfa, s/n R. Texas, 111 12 10002 Adriana R. Beta, 2 ap. 251 11 28903 Ana Paula Av. Gama, 88 R. 117 cj. 44 42 14704 Paulo Av. Delta, 117 12 10933 Fernando R. Omega, 1231 42 PPROPRIEDADESROPRIEDADES DODO BDRBDR Cada célula de uma tabela pode ser vazia ou, ao contrário conter no máximo um único valor (isto é, uma célula não pode conter um conjunto de valores). Número Nome Data Nascimento RG Fone Contato Código Depto 1 José 10/10/1985 123 2335 RH 2 Pedro 2/8/1980 234 PROD 3 Maria 7/2/1976 456 47 PROD 4 Ana 13/9/1983 786 72 TI ... ... ... ... ... ... Errado (Mais de um valor) Funcionário PPROPRIEDADESROPRIEDADES DODO BDRBDR A ordem das linhas é irrelevante (do ponto de vista do usuário). Número Nome Data Nascimento RG Fone Contato Código Depto 1 José 10/10/1985 123 23 RH 2 Pedro 2/8/1980 234 PROD 3 Maria 7/2/1976 456 47 PROD 4 Ana 13/9/1983 786 72 TI ... ... ... ... ... ... Número Nome Data Nascimento RG Fone Contato Código Depto 2 Pedro 2/8/1980 234 PROD 3 Maria 7/2/1976 456 47 PROD 4 Ana 13/9/1983 786 72 TI 1 José 10/10/1985 123 23 RH ... ... ... ... ... ... As duas tabelas são equivalentes Funcionário Funcionário PPROPRIEDADESROPRIEDADES DODO BDRBDR Não há duas linhas iguais (integridade de entidade). Número Nome Data Nascimento RG Fone Contato Código Depto 1 José 10/10/1985 123 23 RH 2 Pedro 2/8/1980 234 PROD 3 Maria 7/2/1976 456 47 PROD 4 Ana 13/9/1983 786 72 TI 2 Pedro 2/8/1980 234 PROD ... ... ... ... ... ... Errado (Iguais) Funcionário PPROPRIEDADESROPRIEDADES DODO BDRBDR Cada coluna tem um nome. Duas colunas distintas devem ter nomes diferentes. Usando-se os nomes para fazer referência às colunas, a ordem destas é também irrelevante. Número Nome Data Nascimento RG Fone Contato Código Depto 1 José 10/10/1985 123 23 RH 2 Pedro 2/8/1980 234 PROD 3 Maria 7/2/1976 456 47 PROD 4 Ana 13/9/1983 786 72 TI ... ... ... ... ... ... Número Nome Data Nascimento Fone Contato RG Código Depto 1 José 10/10/1985 23 123 RH 2 Pedro 2/8/1980 234 PROD 3 Maria 7/2/1976 47 456 PROD 4 Ana 13/9/1983 72 786 TI ... ... ... ... ... Funcionário Funcionário PPROPRIEDADESROPRIEDADES DODO BDRBDR Cada tabela recebe um nome próprio, distinto do nome de qualquer outra tabela do BDR. Aluno Curso Professor Disciplina Aluno Livro Sala BDR Errado (Nomes iguais) PPROPRIEDADESROPRIEDADES DODO BDRBDR Os valores de uma coluna de uma tabela são retirados todos de um mesmo conjunto denominado de domínio de coluna. Duas ou mais colunas distintas podem ser definidas sobre o mesmo domínio. Aluno Mesmo domínio Endereços Domínio: Nome de pessoas Número Nome EndereçoResidencial Endereço Comercial Código Curso 30021 Wilson R. Alfa, s/n R. Texas, 111 12 10002 Adriana R. Beta, 2 ap. 251 11 28903 Ana Paula Av. Gama, 88 R. 117 cj. 44 42 14704 Paulo Av. Delta, 117 12 10933 Fernando R. Omega, 1231 42 CCHAVEHAVE PPRIMÁRIARIMÁRIA Chave primária Chave primária Uma chave é uma seqüência de um ou mais campos numa tabela. Uma chave primária é uma chave que apresentam valor diferente para cada linha da tabela, de tal forma que, dado um valor da chave primária, é identificada uma única linha da tabela. Curso Pedido Código Nome Duração Vagas Diretor 11 Engenharia 5 150 0117 12 Ciência da Computação 4 50 1606 42 Administração de Empresas 4 180 2311 Número Item Produto Quantidade 1634 1 152 2 1634 2 146 5 1635 1 146 3 CCHAVEHAVE EESTRANGEIRASTRANGEIRA No modelo relacional o relacionamento entre duas tabelas é feita, em geral, transpondo-se a chave primária de uma tabela para outra tabela. No exemplo, a chave primária de Departamento (Código) foi transposta para Funcionário (Código Depto) para indicar o relacionamento entre as tabelas Departamento e Funcionário. Daí denominamos esta chave transposta (Código Depto) de chave estrangeira. Código ... RH PROD MKT TI Número ... Código Depto 1 RH 2 PROD 3 PROD 4 TI Departamento Funcionário Chave primária Chave primária Chave estrangeira Transposição CCHAVEHAVE EESTRANGEIRASTRANGEIRANo modelo relacional o relacionamento entre duas tabelas é feita, em geral, transpondo-se a chave primária de uma tabela para outra tabela. No exemplo, a chave primária de Projeto (Código), foi transposta para Projeto_Funcionário e a chave primária de Funcionário (Número) foi transposta para Projeto_Funcionário para indicar o relacionamento entre as tabelas Projeto e Funcionário. Daí denominamos estas chaves transpostas (Código Projeto e Número Funcional) de chaves estrangeiras. Número ... Código Depto 1 RH 2 PROD 3 PROD 4 TI Código ... A B C D Funcionário Projeto Código Projeto Número Funcional ... A 1 A 2 B 1 C 2 C 3 C 4 D 3 Projeto_Funcionário Chave primáriaChave primária Chave estrangeira funcionando como chave primária Chave estrangeira CCHAVEHAVE EESTRANGEIRASTRANGEIRA Chave estrangeira funcionando como chave primária Disciplina Aluno_Disciplina Aluno Chave primária Número ... 30021 10002 28903 14704 10933 Código ... EAD111 EAD222 EAD333 Número Aluno Código Disciplina Média Frequência 30021 EAD111 8,0 100% 30021 EAD333 9,5 95% 10002 EAD111 6,0 80% Chave primária RRESTRIÇÃOESTRIÇÃO DEDE IINTEGRIDADENTEGRIDADE • Integridade de Entidade impõe a restrição de unicidade (chave primária). • Integridade Referencial é garantir que as referências entre as tabelas existam e estejam compatíveis, isto é, os valores da chave estrangeira deve obrigatoriamente corresponder a valores da chave primária de origem. No exemplo, os valores da chave estrangeira Código Curso da tabela Aluno deve obrigatoriamente corresponder a valores da chave primária Código da tabela Curso. Aluno Curso Número Nome ... CódigoCurso 30021 Wilson 12 10002 Adriana 11 28903 Ana Paula 42 14704 Paulo 12 10933 Fernando 42 Código .. 11 12 42 Chave primária Chave estrangeira Integridade Referencial Integridade de Entidade AACESSOCESSO AA UMUM RREGISTROEGISTRO DADA TTABELAABELA Chave de Acesso é o campo usado para identificar o registro desejado. Tipo de Pesquisa (acesso) Pesquisa Sequencial Pesquisa sequencialmente todos os registros para localizar os dados. Pesquisa Binária Se você pesquisa frequentemente uma tabela por uma chave de acesso, poderá agilizar essa operação usando a pesquisa binária. Para tanto é necessário criar um índice para este campo. PPESQUISAESQUISA SSEQUENCIALEQUENCIAL Chave de Acesso (ordenado) Pesquisa sequencialmente todos os registros para localizar os dados. Funcionário Funcionário Chave de Acesso (Não ordenado) Número Nome ... Salário 1000 Enio 1050 Afonso 1075 Ângela 1100 Sandra 1300 César 1350 Luis 1400 Cristiano 1440 Sonia 1480 Diogo Número Nome ... Salário 1050 Afonso 1075 Ângela 1300 César 1400 Cristiano 1480 Diogo 1000 Enio 1350 Luis 1100 Sandra 1440 Sonia PPESQUISAESQUISA SSEQUENCIALEQUENCIAL Número médio de comparações é dado por: (N + 1) / 2 onde N é o número de linhas da tabela Exemplo Para N = 100.000, o número médio de comparações é: (100.000 + 1) / 2 = 50.000 PPESQUISAESQUISA BBINÁRIAINÁRIA Se você pesquisa frequentemente uma tabela por uma chave de acesso, poderá agilizar essa operação usando a pesquisa binária. Para tanto é necessário criar um índice para este campo. Índices A finalidade de um índice é permitir a rápida determinação do endereço de uma linha da tabela. Um índice armazena o local dos registros (Endereço) com base no campo escolhido (Chave de Acesso) para ser indexado. Uma tabela de índices contém duas colunas: Primeira coluna. Valores da Chave de Acesso ordenados Segunda coluna. Endereço da linha onde o valor da Chave de Acesso está armazenado na tabela. PPESQUISAESQUISA BBINÁRIAINÁRIA Funcionário Endereço Tabela de Índices Chave de Acesso (Ordenado) Chave de Acesso (Ordenado ou não) Número Endereço 1000 6 1050 1 1075 2 1100 8 1300 3 1350 7 1400 4 1440 9 1480 5 Número Nome ... Salário 1050 Afonso 1075 Ângela 1300 César 1400 Cristiano 1480 Diogo 1000 Enio 1350 Luis 1100 Sandra 1440 Sonia 1 2 3 4 5 6 7 8 9 PPESQUISAESQUISA BBINÁRIAINÁRIA Acesso A primeira linha a ser consultada é aquela que ocupa a posição média da tabela de índices. Se a chave da linha for igual ao argumento de pesquisa, a pesquisa termina com sucesso; caso contrário, ocorre uma das duas seguintes situações: A chave da tabela é maior do que o argumento de pesquisa e o processo de busca é repetido para a metade inferior da tabela; A chave da linha é menor do que o argumento de pesquisa e o processo de busca é repetido para a metade superior da tabela. A busca é encerrada sem sucesso quando a área de pesquisa, que a cada comparação é reduzida à metade, assumir o comprimento zero. PPESQUISAESQUISA BBINÁRIAINÁRIA -- EEXEMPLOXEMPLO Tabela de Índices Argumento de pesquisa: Funcionário número 1050 1300 > 10501 1075 > 10502 1050 = 10503 Número máximo de comparações [log29]+ 1 = log109 / log102 + 1= 3,1 + 1 = 4,1 Fim Portanto, o funcionário pesquisado está no endereço 1 da tabela de Funcionário. Chave de Acesso (Ordenado) Número Endereço 1000 6 1050 1 1075 2 1100 8 1300 3 1350 7 1400 4 1440 9 1480 5 1 2 3 4 5 6 7 8 9 (9+1)/2=5 (5+1)/2=3 (3+1)/2=2 PPESQUISAESQUISA BBINÁRIAINÁRIA Número máximo de comparações é dado por: [log2N] + 1 onde N é o número de linhas da tabela Exemplo Para N = 100.000 o número máximo de comparações é: [log2100.000]+ 1 = log10100.000 / log102 + 1 = 5 / 0,3010 + 1 = 17,6 EEXEMPLOXEMPLO DEDE BDRBDR Você precisa elaborar um banco de dados relacional (BDR) para registrar informações sobre alunos, cursos e disciplinas. Para cada aluno você deverá armazenar o número USP, nome, código e nome do seu curso, código, nome e número de créditos das disciplinas em que o aluno está inscrito. Note que um aluno pode se inscrever em várias disciplinas e uma disciplina pode ter vários alunos. Utilizando seus conhecimentos sobre banco de dados relacional, elabore o desenho inicial deste banco de dados. EEXEMPLOXEMPLO DEDE BDR BDR COMCOM RREDUNDÂNCIASEDUNDÂNCIAS Número USP Nome do Aluno Código da Disciplina Nome da Disciplina Número de Créditos Código do Curso Nome do Curso 111111 Bill EAD111 RH 10 EAD Administração 111111 Bill EAD222 MKT 10 EAD Administração 111111 Bill EAD333 TI 10 EAD Administração 111111 Bill EAD999 FIN 10 EAD Administração 222222 Tom EAD222 MKT 10 EAD Administração 222222 Tom EAD333 TI 10 EAD Administração 222222 Tom EAD999 FIN 10 EAD Administração 333333 Jerry EAD111 RH 10 EAD Administração 333333 Jerry EAD222 MKT 10 EAD Administração 333333 Jerry EAD333 TI 10 EAD Administração 333333 Jerry EAD444 PROD 10 EAD Administração 444444 Kim EAD111 RH 10 MAC Computação 444444 Kim EAD999 FIN 10 MAC Computação EEXEMPLOXEMPLO DEDE BDR BDR SEMSEM RREDUNDÂNCIASEDUNDÂNCIAS Código do Curso Nome do Curso EAD Administração MAC Computação Código da Disciplina Nome da Disciplina Número de Créditos EAD111 RH 10 EAD222 MKT 10 EAD333 TI 10 EAD444 PROD 10 EAD999 FIN 10 Número USP Código da Disciplina 111111 EAD111 111111 EAD222 111111 EAD333 111111 EAD999 222222 EAD222 222222 EAD333 222222 EAD999 333333 EAD111 333333 EAD222 333333 EAD333 333333 EAD444 444444 EAD111 444444 EAD999 Número USP Nome do Aluno Código do Curso 111111 Bill EAD 222222 Tom EAD 333333 Jerry EAD 444444 Kim MAC Aluno Curso Disciplina Aluno_Disciplina TransposiçãoTransposição Transposição Requisitos de Banco de Dados Análise de Requisitos Projeto Conceitual Projeto Lógico Modelo de Entidades e Relacionamentos (Banco de Dados Relacional) DDESENVOLVIMENTOESENVOLVIMENTO DODO BBANCOANCO DEDE DDADOSADOS MMODELOODELO DEDE EENTIDADESNTIDADES EE RRELACIONAMENTOSELACIONAMENTOS -- MERMER Entidades ◦ São coisas sobre as quais interessa armazenar e recuperar as informações. ◦ Exemplos Aluno Cliente DisciplinaPedido Livro Produto FornecedorConta-corrente Aluno (Indivíduo) Maria Jose Paulo Bia Pedro Carlos Ana Lucia Luis Mauro Rui Beto João Dirce Produto (Tipo) Azeite Arroz A Óleo Pão Leite A Queijo Feijão Arroz B Sabão SalAçúcar Vinagre Suco Leite BMacarrão MMODELOODELO DEDE EENTIDADESNTIDADES EE RRELACIONAMENTOSELACIONAMENTOS -- MERMER Relacionamentos ◦ São associações com significado entre entidades. ◦ Exemplos Fez Aluno DisciplinaInscrito Cliente Pedido N N 1 N Professor CursoCoordena 1 1 Muitos-para-muitos N:N Um-para-muitos 1:N Um-para-um 1:1 MMODELOODELO DEDE EENTIDADESNTIDADES EE RRELACIONAMENTOSELACIONAMENTOS -- MERMER Professor CursoCoordena 1 1 P1 P2 P3 C1 C2 C3 Conjunto de Professores (Pi) Conjunto de Cursos (Cj) Relacionamento um-para-um (1:1) MMODELOODELO DEDE EENTIDADESNTIDADES EE RRELACIONAMENTOSELACIONAMENTOS -- MERMER FezCliente Pedido 1 N C1 C2 C3 P1 P2 P3 Conjunto de Clientes (Ci) Conjunto de Pedidos (Pj) Relacionamento um-para-muitos (1:N) P4 P5 MMODELOODELO DEDE EENTIDADESNTIDADES EE RRELACIONAMENTOSELACIONAMENTOS -- MERMER D1 D2 D3 A1 A2 A3 Conjunto de Disciplinas (Dj) Conjunto de Alunos (Ai) Relacionamento muitos-para-muitos (1:1) A4 A5 Aluno DisciplinaInscrito N N MMODELOODELO DEDE EENTIDADESNTIDADES EE RRELACIONAMENTOSELACIONAMENTOS -- MERMER Atributos ◦ São propriedades ou características que descrevem as entidades e relacionamentos. ◦ Exemplo ALUNO: número, nome, RG etc. DISCPLINA: código, nome, crédito etc. INSCRITO: nota, frequência etc. Aluno Número Nome RG Inscrito Disciplina Código Nome Crédito N N Nota Frequência Identificador ou Chave Primária PPROJETOROJETO CCONCEITUALONCEITUAL Passo 1: Identificar as entidades Passo 2: Identificar os relacionamentos entre as entidades Passo 3: Identificar os atributos de entidades e relacionamentos EEXEMPLOXEMPLO 1 1 DEDE MER MER Você precisa elaborar um banco de dados para registrar as seguintes informações. Para cada aluno deverá armazenar o número USP, nome, RG, seu curso e as disciplinas em que está inscrito com as notas e frequências obtidas. Para cada curso, o código, nome, professor que coordena e suas disciplinas componentes. Para cada disciplina, o código, nome, número de créditos e professor responsável. Para cada professor, o código e nome. Note que: um curso é coordenado por um professor e um professor só pode coordenar um curso; um professor pode ministrar várias disciplinas e uma disciplina pode ter apenas um professor; uma disciplina pode fazer parte de vários cursos e um curso é composto de várias disciplinas; um aluno pode pertencer apenas a um curso; um aluno pode estar inscrito em várias disciplinas e uma disciplina pode ter vários alunos Utilizando seus conhecimentos sobre MER, elabore o desenho inicial deste banco de dados. EEXEMPLOXEMPLO 1 1 DEDE MER MER Passo 1: Entidades Aluno Curso Professor Disciplina Passo 2: Relacionamentos com as regras do negócio Curso e Professor: um curso é coordenado por um professor e um professor só pode coordenar um curso Disciplina e Curso : uma disciplina pode fazer parte de vários cursos e um curso é composto de várias disciplinas Aluno e Curso: um aluno pode pertencer apenas a um curso Aluno e Disciplina: um aluno pode estar inscrito em várias disciplinas e uma disciplina pode ter vários alunos Professor e Disciplina: um aluno pode estar inscrito em várias disciplinas e uma disciplina pode ter vários alunos Passo 3: Atributos cada professor tem código e nome; cada curso tem código e nome; cada disciplina tem código, nome e número de créditos; cada aluno tem número, nome e RG; cada aluno numa disciplina tem nota e frequência MER MER DODO EEXEMPLOXEMPLO 1 1 Curso Código Nome Professor Código Nome Aluno Número Nome RG Disciplina Código Nome Crédito Possui Coordenado por Responsável por InscritoComposto de N N N N N N 1 1 1 1 Nota Frequência EEXERCÍCIOXERCÍCIO 1 1 -- MERMER Você foi convidado a elaborar um banco de dados para uma empresa de consultoria que deseja registrar informações sobre seus projetos e consultores. De acordo com o solicitado pelo seu cliente, para cada projeto você deverá armazenar o código, nome, e endereço da empresa que solicitou o projeto, o número do projeto, a data de início e de término do projeto, o valor do projeto, o número, nome, número do documento de identidade e especialização dos consultores que participaram do projeto, as horas que trabalharam em cada projeto e a função que exerceu (líder ou membro) . Note que uma mesma empresa pode solicitar diversos projetos e um mesmo consultor pode trabalhar em diversos projetos. Utilizando seus conhecimentos sobre modelo de entidades e relacionamentos (MER), elabore o desenho inicial deste banco de dados. CCONVERSÃOONVERSÃO DODO MER MER PARAPARA BDRBDR Aluno Número Nome RG Curso Código Nome Curso Código Nome MER BDR (Access) Conversão de Entidades Aluno Número Nome RG Disciplina Código Nome Crédito Disciplina Código Nome Crédito Identificador Chave primária CCONVERSÃOONVERSÃO DODO MER MER PARAPARA BDRBDR Aluno Número Nome RG Curso Código NomeInscrito N 1 Aluno Número Nome RG CodCurso Curso Código Nome 1 MER BDR (Access) Chave estrangeira Chave primária Chave primária Transposição Conversão do relacionamento 1:N sem atributos ∞ EEXEMPLOXEMPLO –– RRELACIONAMENTOELACIONAMENTO 1:1:NN SEMSEM AATRIBUTOSTRIBUTOS CURSO ALUNO Transposição N Código Nome EAC Contabilidade EAD Administração EAE Economia Número ... CodCurso 111111 EAD 222222 EAD 333333 EAC 444444 EAE 555555 EAE 666666 EAE 777777 EAD 888888 EAC 1 CCONVERSÃOONVERSÃO DODO MER MER PARAPARA BDRBDR Aluno Número Nome RG Curso Código NomeInscrito N 1 Aluno Número Nome RG Curso Código Nome 1 1 MER BDR (Access) Chave primária Transposição Chave primária Aluno_Curso NumAluno CodCurso Ano_ingresso Transposição 1 Conversão do relacionamento 1:N com atributos Alternativa 1 - Melhor Chave primária (estrangeira) Ano_ingresso ∞ EEXEMPLOXEMPLO –– RRELACIONAMENTOELACIONAMENTO 1:1:NN COMCOM AATRIBUTOSTRIBUTOS Alternativa 1 - Melhor CURSO ALUNO_CURSO Transposição ALUNO Transposição N 1 1 1 Número ... 111111 222222 333333 444444 ... ... Código Nome EAC Contabilidade EAD Administração EAE Economia NumAluno Codcurso Ano_Ingresso 111111 EAD 201x 222222 EAD 201x 333333 EAC 201y 444444 EAE 201x ... ... ... CCONVERSÃOONVERSÃO DODO MER MER PARAPARA BDRBDR Aluno Número Nome RG Curso Código Nome N 1 Aluno Número Nome RG CodCurso Ano_ingresso Curso Código Nome 1 MER BDR (Access) Chave estrangeira Chave primária Chave primária Transposição Conversão do relacionamento 1:N com atributos Alternativa2 ∞ Ano_ingresso Inscrito EEXEMPLOXEMPLO –– RRELACIONAMENTOELACIONAMENTO 1:1:NN COMCOM AATRIBUTOSTRIBUTOS CURSO ALUNO Transposição 1 N Alternativa 2 Código Nome EAC Contabilidade EAD Administração EAE Economia Número ... CodCurso Ano_Ingresso 111111 EAD 201x 222222 EAD 201x 333333 EAC 201y 444444 EAE 201x 555555 EAE 201y 666666 EAE 201y 777777 EAD 201z 888888 EAC 201x CCONVERSÃOONVERSÃO DODO MER MER PARAPARA BDRBDR Composto de Curso Código Nome Disciplina Código Nome Crédito NN MER Como o Access só aceita relacionamento 1:N, é necessário converter o relacionamento N:N em dois relacionamentos 1:N Disciplina Código Nome Crédito Curso_Disciplina CodCurso CodDiscip Curso Código Nome 1 1 Chave primáriaChave primária (estrangeira) Chave primária Transposição Transposição BDR (Access) ∞ ∞ CCONVERSÃOONVERSÃO DODO MER MER PARAPARA BDRBDR D1 D2 D3 A1 A2 A3 A4 A5 D1 D2 D3 A1 A2 A3 A4 A5 A1 D1 A1 D2 A1 D3 A2 D2 A3 D2 A3 D3 A4 D1 A4 D2 A5 D1 A5 D3 MER BDR (Access) 1 N 1 N N N CURSO DISCIPLINA EEXEMPLOXEMPLO -- RRELACIONAMENTOELACIONAMENTO N:N N:N SEMSEM AATRIBUTOSTRIBUTOS CURSO_DISCIPLINA Transposição Transposição N 1 1 N Código Nome EAC Contabilidade EAD Administração EAE Economia Código Nome Crédito EAD100 Marketing 10 EAD200 RH 10 EAD300 Finanças 5 EAC200 Auditoria 10 EAE100 Economia 5 EAE200 Econometria 10 CodCurso CodDiscip EAD EAD100 EAD EAD200 EAD EAC100 EAD EAE100 EAE EAE100 EAE EAE200 EAC EAD200 EAC EAC100 CCONVERSÃOONVERSÃO DODO MER MER PARAPARA BDRBDR Aluno Número Nome RG Disciplina Código Nome Crédito Inscrito N N Aluno Número Nome RG Disciplina Código Nome Crédito Aluno_Disciplina NumAluno CodDiscip Nota Frequência 1 1 MER Chave primáriaChave primária (estrangeira)Chave primária Transposição Transposição Nota Freqüência BDR (Access) Como o Access só aceita relacionamento 1:N, é necessário converter o relacionamento N:N em dois relacionamentos 1:N. ∞ ∞ ALUNO EEXEMPLOXEMPLO -- RRELACIONAMENTOELACIONAMENTO N:N N:N COMCOM AATRIBUTOSTRIBUTOS ALUNO_DISCIPLINA DISCIPLINA Transposição Transposição N 1 1 N Número ... CodCurso 111111 EAD 222222 EAD 333333 EAC ... ... ... Código Nome Crédito EAD100 Marketing 10 EAD200 RH 10 EAD300 Finanças 5 EAC200 Auditoria 10 EAE100 Economia 5 EAE200 Econometria 10 NumAluno CodDiscip Nota Frequência 111111 EAD100 10,0 100% 111111 EAD200 9,0 80% 111111 EAC100 6,5 80% 111111 EAE100 8,0 90% 222222 EAE100 9,5 100% 222222 EAE200 7,0 70% 222222 EAD200 5,0 70% 333333 EAC100 6,5 75% ... ... ... ... BBANCOANCO DEDE DDADOSADOS RRELACIONALELACIONAL DODO EEXEMPLOXEMPLO 1 1 Curso Código Nome CodProfessor Professor Código Nome Aluno Número Nome RG CodCurso Disciplina Código Nome Crédito CodProfessor 1 1 1 1 Aluno Discip NúmAluno CodDiscip Nota Freqüência Curso Discip CodCurso CodDiscip 1 1 1 11 ∞∞ ∞ ∞ ∞ ∞ OBS.: N ou ∞ BBANCOANCO DEDE DDADOSADOS RRELACIONALELACIONAL DODO EEXEMPLOXEMPLO 1 1 Código Nome CodProfessor EAD Administração 176 ... ... ... Código Nome 176 Roberto ... ... Curso Professor Número Nome RG CodCurso 111111 Bill 1234 EAD ... ... ... Aluno Código Nome Crédito CodProfessor EAD100 Marketing 10 176 ... ... ... Disciplina NumAluno CodDiscip Nota Frequência 111111 EAD100 10,0 100% ... ... ... ... Aluno_Discip CodCurso CodDiscip EAD EAD100 ... ... Curso_Discip EEXERCÍCIOXERCÍCIO 2 2 -- BDRBDR Converter o Modelo de Entidades e Relacionamentos (MER) do exercício 1 para Banco de Dados Relacional (BDR). EEXERCÍCIOXERCÍCIO 3 3 -- MERMER Construa um Modelo de Entidades e Relacionamentos (MER) para um banco de dados de uma empresa contendo tipo de produto, fornecedor, cliente, venda e loja? Suponha que: ◦ um tipo de produto pode ser fornecido por vários fornecedores e um fornecedor pode fornecer vários tipos de produtos; ◦ a venda a um cliente pode conter vários tipos de produto e um tipo de produto pode fazer parte de várias vendas; ◦ a venda a um cliente é realizada em uma das lojas da empresa; ◦ cada produto numa venda tem preço e quantidade; ◦ cada venda tem número da nota fiscal, data, valor total; ◦ cada tipo de produto tem código, nome e descrição; ◦ cada cliente tem código, nome e endereço; ◦ cada fornecedor tem código, nome, CNPJ e endereço; ◦ cada loja tem código, nome e CNPJ. EEXERCÍCIOXERCÍCIO 4 4 -- BDRBDR Converter o Modelo de Entidades e Relacionamentos do exercício 3 para Access (conjunto de tabelas e relacionamentos). EEXERCÍCIOXERCÍCIO 5 5 -- MERMER Construir um modelo de entidades e relacionamentos (MER) para uma companhia de seguros de automóveis com um conjunto de clientes, onde cada um possui um certo número de automóveis. Os dados do cliente são código, nome, RG, CPF, endereço e telefone. Do carro deve-s armazenar a placa, código RENAVAN, fabricante, modelo e ano. Associado a cada automóvel há um histórico de ocorrências. Cada ocorrência deve ter um número (único), data, local e descrição. EEXERCÍCIOXERCÍCIO 6 6 -- BDRBDR Converter o Modelo de Entidades e Relacionamentos do exercício 5 para Access (conjunto de tabelas e relacionamentos). EEXERCÍCIOXERCÍCIO 7 7 -- MERMER Construir um modelo de entidades e relacionamentos (MER) para o banco de dados de uma clínica abaixo: Cada médico que trabalha na clínica é identificado pelo seu CRM, um nome, uma data de admissão e um salário. Para todo paciente internado na clínica são cadastrados alguns dados pessoais: código, nome, RG, CPF, endereço e telefone para contato. Um paciente tem sempre um médico como responsável, com um horário de visita diário predeterminado. Pacientes estão sempre internados em quartos individuais que são identificados por um número e está em um andar da clínica. EEXERCÍCIOXERCÍCIO 8 8 -- BDRBDR Converter o Modelo de Entidades e Relacionamentos do exercício 7 para Access (conjunto de tabelas e relacionamentos ). Companhia Pedro Luís de Oliveira S/A R. das Esquinas, 421 – cj. 89 Santo Amaro – São Paulo – SP CEP 09000-992 N. 001999 PEDIDO DE VENDA Cliente: Nestlé S/A CNPJ: 002.235.695/0001-78 Endereço: Av. Eng. Luís Carlos Berrini, 500 Cidade: São Paulo Estado: SP Telefone: (11) 5894-5487 Contato: Pedro (compras) ITENS DO PEDIDO Código Descrição Preço Quantidade Valor Item XU-12 Detergente Industrial 12,00 200,00 2.400,00 CH-89 Escovas de Limpeza 19,00 100,00 1.900,00 Totais 300,00 5.300,00 Desconto Comercial 5% 265,00 Valor c/ Desconto 5.035,00 Data do Pedido: 07/03/05 Prazo de Entrega: 14/03/05 No. Vendedor: 332 - Joelson EEXERCÍCIOXERCÍCIO 9 9 -- MERMER Construir um modelo de entidades e relacionamentos (MER) para o banco de dados de pedido de venda abaixo: Companhia Pedro Luís de Oliveira S/A R. das Esquinas, 421 – cj. 89 Santo Amaro – São Paulo – SP CEP 09000-992 N. 001999 PEDIDO DE VENDA Cliente: Nestlé S/A CNPJ: 002.235.695/0001-78 Endereço: Av. Eng. Luís Carlos Berrini, 500 Cidade: São Paulo Estado: SP Telefone: (11) 5894-5487 Contato: Pedro (compras) ITENS DO PEDIDO Código Descrição Preço Quantidade Valor Item XU-12 Detergente Industrial 12,00 200,00 2.400,00 CH-89 Escovas de Limpeza 19,00 100,00 1.900,00 Totais 300,00 5.300,00 Desconto Comercial 5% 265,00 Valorc/ Desconto 5.035,00 Data do Pedido: 07/03/05 Prazo de Entrega: 14/03/05 No. Vendedor: 332 - Joelson EEXERCÍCIOXERCÍCIO 9 9 –– MER MER -- SSOLUÇÃOOLUÇÃO Cliente Produto Vendedor Pedido Pedido Item pedido Identificando Entidades EEXERCÍCIOXERCÍCIO 9 9 –– MER MER -- SSOLUÇÃOOLUÇÃO Cliente Código Nome CNPJ Endereço Cidade Estado Contato Pedido Número Data Pedido Data Entrega Total Desconto Produto Código Descrição Preço Fez pedido Contem item 1 N N N Valor item Vendedor Código Nome Regis- trou 1 N Quantidade EEXERCÍCIOXERCÍCIO 10 10 -- BDRBDR Converter o Modelo de Entidades e Relacionamentos do exercício 9 para Access (conjunto de tabelas e relacionamentos).
Compartilhar