Baixe o app para aproveitar ainda mais
Prévia do material em texto
Rota de Aprendizagem Banco de Dados Aula 04 Perfil: Martin José Fagonde Morães. Possui Mestrado em Engenharia de Produção pela Universidade Federal de Santa Catarina – UFSC (2001), graduado em Processamento de Dados (1997). Atua como professor nos componentes curriculares de desenvolvimento de sistemas há mais de 15 anos. Foi coordenador de cursos de graduação e de pós-graduação. Atuou na área de TI por mais de 18 anos como: coordenador de TI, consultor e desenvolveu e implementou sistemas diversos sistemas. Currículo Lattes: http://lattes.cnpq.br/2746554350570335 AULA 04 – No Modelo Conceitual Introdução: HEUSER (2009, p. 29) define a etapa do projeto lógico dizendo: “...a etapa de projeto lógico objetiva transformar o modelo conceitual obtido na primeira fase em um modelo lógico. O modelo lógico define como o banco de dados será implementado em um SGDB específico”. O SGDB que estamos trabalhando é do tipo relacional. Então converteremos o DER, em um modelo lógico, utilizando a abordagem relacional. A representação da abordagem relacional pode ser em linguagem textual ou gráfica. Considerando que a maioria dos profissionais utilizam linguagem gráfica, demonstraremos desta forma. Nesta aula estudaremos os conceitos da abordagem relacional e como representá- los graficamente. Na próxima unidade demonstraremos como criar um modelo lógico, utilizando a abordagem relacional, a partir de um modelo conceitual. Contextualizando: Abordagem, como explica o prof. HEUSER (2009, p. 25) é o conjunto de conceitos usados para construir modelos. Rota de Aprendizagem Banco de Dados Aula 04 Os principais elementos utilizados na abordagem relacional são: tabelas, campos e chaves. Nos modelos que são criados as tabelas, campos e chaves, recebem nomes conforme o assunto que está sendo modelado. Os nomes dados para identificar cada elemento, deve seguir as especificações do SGDB. Geralmente não são aceitos os caracteres especiais. São válidos os caracteres de letras maiúsculas e minúsculas, os caracteres numéricos e o caractere underline ( _ ). Tabela Perceber os dados dispostos em linhas e colunas, facilita a abstração, nos é mais familiar. HEUSER (2009, p. 120) define tabela como “é um conjunto não ordenado de linhas (tuplas, na terminologia acadêmica)”. Na Tabela 1, podemos identificar duas colunas, uma linha com o nome da tabela, outra linha com a identificação das colunas e três linhas de dados. Tabela 1 Exemplo de Tabela de Usuário usuario id Nome 1 Pedro 2 Maria 3 João As entidades do modelo conceitual são convertidas em tabelas. Campos O encontro de uma coluna com uma linha é denominado de campo. Considerando a Tabela 1 podemos identificar os nomes dos campos. Temos lá os nomes dos campos “id” e “Nome”. No cabeçalho da coluna tem-se o nome do campo e no campo o valor do campo. Faz-se menção a um campo indicando o nome e o valor do mesmo. Quando o valor fala for si mesmo não se faz menção ao nome do campo. Veja os seguintes exemplos: Rota de Aprendizagem Banco de Dados Aula 04 Pouco usual: O usuário de nome Pedro. Mais usual: O usuário Pedro. O id 2 é do usuário Maria. O id do Pedro é 1. No dia-a-dia é frequente a utilização do nome do campo referindo-se a uma coluna. Exemplo: O campo id só deve conter números. O campo id é um campo chave. O campo id é do tipo inteiro. Os campos de uma tabela são definidos para o tipo de dados que vão receber, em banco de dados estes tipos de dados são chamados de domínios. KROENKE (1999, p. 23) define domínio como “Um domínio é um conjunto de valores que uma coluna pode ter”. O termo domínio é mais encontrado na literatura e nas ferramentas clássicas, é usual a expressão “tipo” para expressar a mesma ideia. Cada SGDB tem suas regras e definições para os domínios que dispõem. Na próxima unidade apresentaremos os principais domínios para o SGDB MySQL. Os atributos do modelo conceitual são convertidos em colunas (campos) na tabela. Registros, linhas ou tuplas Os termos registros, linhas e tuplas são análogos, ou seja, expressam a mesma ideia. Expressam o conjunto de dados da mesma ocorrência. Rota de Aprendizagem Banco de Dados Aula 04 Tabela 2 Tabela usuario. usuario id Nome 1 Pedro 2 Maria 3 João As ocorrências em uma entidade no modelo conceitual, serão os registros em tabela. Chaves Na abordagem relacional trabalha-se com chave primária e chave estrangeira. Chave primária, do inglês primary key, é definido por HEUSER (2009, p. 122) como “uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela”. Os identificadores no modelo conceitual, são convertidos para chaves primárias no modelo lógico. As chaves estrangeiras são conceituadas por HEUSER (2009, p. 123) como “...uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma tabela. A chave estrangeira é o mecanismo que permite a implementação de relacionamentos em um banco de dados relacional”. Vamos exemplificar e discutir as chaves estrangeiras quando estudarmos os relacionamentos e as cardinalidades. Neste contexto é oportuno citarmos as chaves compostas. O termo indica a composição de dois ou mais campos para formar uma chave primária. Deve-se considerar muito antes de optar por utilizar uma chave composta. É preferível optar por chaves primárias formadas por um campo. Rota de Aprendizagem Banco de Dados Aula 04 Relacionamentos e Cardinalidades Os relacionamentos e as cardinalidades máximas são utilizados para definir como os registros vão se relacionar através das chaves estrangeiras, processo extremamente necessário para formarmos nosso modelo lógico relacional. A cardinalidade máxima dos relacionamentos nos indicam como converter os relacionamentos do modelo conceitual em relacionamentos no modelo lógico. Os relacionamentos no modelo lógico, utilizando a abordagem relacional, são por meio de chaves estrangeiras. As chaves estrangeiras podem ser criadas nas tabelas que já existam ou podem requerer que seja criada uma nova tabela. Cardinalidade Máxima 1:n ou n:1 Para exemplificar considere a Figura 1 e Figura 4:2, onde um usuário pode enviar várias mensagens. Usuários Mensagens Envia (1,n) (1,1) Figura 1 Contexto para relacionamento e cardinalidade. U1 U2 U3 Un M11 M12 M13 M20 Mn Figura 4:2 exemplificando usuários e mensagens. Rota de Aprendizagem Banco de Dados Aula 04 Na Figura 4:2 podemos identificar que o usuário U1 enviou a mensagem M11. Podemos identificar também que o usuário U3 enviou as mensagens M12 e M20. Para mantermos esta relação em tabelas, utiliza-se uma chave estrangeira. Veja na Figura 3 onde temos uma tabela de usuários e uma tabela de mensagens. Para identificar o usuário que enviou a mensagem foi acrescida a coluna “Id_usuario”, este novo campo contém o valor do campo chave do referido usuário. As representações das Figura 4:2 e Figura 3 são similares, a primeira faz o relacionamento por setas, na segunda o relacionamento é indicado por uma chave estrangeira. A chave estrangeira faz referência a respectiva chave primária da outra tabela, que está no relacionamento. A mensagem de id 12 foi enviada pelo usuário de id 3, encontramos isto olhando para o campo “Id_usuario” no mesmo registro em que encontramos o id 12 da mensagem. Parasaber o nome do usuário cujo id é 3, vamos procurar o registro na tabela “usuario” cujo id seja 3, no campo “Nome” desse mesmo registro encontramos o nome do usuário. Figura 3 Tabelas exemplificando relacionamento. usuario mensagem Id Nome Id Texto Id_usuario 1 A 11 Xxx 1 2 B 12 Yyyy 3 3 C 13 Vvvvv 2 20 Kkkkkk 3 Converter o modelo conceitual (Figura 1), para o modelo lógico (Figura 3) foi acrescido uma coluna na tabela mensagem. A cardinalidade máxima deste relacionamento Rota de Aprendizagem Banco de Dados Aula 04 é 1:n, ou seja, um para muitos. Para esta cardinalidade a indicação é a criação de uma coluna na tabela que recebe a notação de muitos. Cardinalidade Máxima 1:1 Vamos considerar o seguinte senário. Um trabalhador, tem que ter uma conta de FGTS e uma conta de FGTS pertence ao máximo a um trabalhador. Neste senário a cardinalidade máxima é 1:1. Ao convertermos para o modelo lógico, seguindo a abordagem relacional, teremos duas tabelas, sendo elas “Trabalhador” e “Conta_FGTS”, veja na Figura 5 Tabelas com 1:1. Figura 5 Tabelas com 1:1. Trabalhador Conta_FGTS Id Nome conta titular 1 A 342 A 2 B 547 B Ao considerarmos as cardinalidades para determinar os relacionamentos, encontraremos a cardinalidade máxima 1:1, nesta situação é recomendado considerar primeiramente a possíbilidade de unificar as tabelas. Ficando todos os atributos das duas tabelas em uma, veja Figura 0:6. Trabalhador tem Conta FGTS (1,1) (1,1) Figura 0:4 Cardinalidade máxima 1:1. Rota de Aprendizagem Banco de Dados Aula 04 Figura 0:6 Unificando tabelas 1:1. Trabalhador Id Nome Conta_FGTS 1 A 342 2 B 547 Na unificação das tabelas “Trabalhador” e “Conta_FGTS” da Figura 5, resultado na tabela “Trabalhador” da Figura 0:6, a coluna “Nome” da tabela Trabalhador e a coluna “titular” da tabela Conta_FGTS são os mesmos campos. Na tabela resultante foi mantido um dos dois. Para a cardinalidade 1:1 é recomendado considerar a unificação das tabelas, mas também pode ocorrer a necessidade de manter as duas tabelas. Nestes casos é aplicável a adição de uma coluna para a chave estrangeira da outra tabela. Cardinalidade Máxima n:n A cardinalidade máxima n:n, ocorre quando temos muitas ocorrências de ambas entidades, veja na Figura 4:7. Nesta situação a indicação é a criação de uma tabela de relacionamento. Na Figura 8 vemos a transformação das entidades “Pessoas” e “Filmes”, da Figura 4:7, em tabelas. As relações entre os registros estão definidas em uma tabela adicional que contem chave estrangeira para pessoa e para filme, relacionando as múltiplas ocorrências. Pessoas Filmes empresta (0,n) (1,n) Figura 4:7 Cardinalidade n:n. Rota de Aprendizagem Banco de Dados Aula 04 Figura 8 Tabelas com n:n. pessoa empresta filme id Nome idPessoa idFilme id Nome 1 Pedro 2 102 101 A 2 Maria 3 101 102 B 3 João 3 102 103 C 2 101 104 D Considerações HEUSER (2009, p. 134), apresenta na Figura 9 considerações na aplicação das cardinalidades na conversão entre os modelos. Para cada alternativa de: “Tabela própria”, “Adição de coluna” ou “Fusão de tabela” ele indica se a alternativa é a preferida, ou se pode ser usada, ou não usar. Rota de Aprendizagem Banco de Dados Aula 04 Figura 9 Tabela de conversão. Pesquisa Agora que acabou de conhecer a abordagem relacional, identifique pesquisando ou conversando com profissionais da área, as representações de modelo lógico e as tabelas, os campos e as chaves. Rota de Aprendizagem Banco de Dados Aula 04 Trocando Ideias Compartilhe com os colegas, através do fórum, representações de modelo lógico que encontrou durante sua pesquisa. Síntese O modelo lógico, pode ser gerado a partir da descrição dos usuários, de um diagrama de classes, ou de uma base de dados já existente. A elaboração de um modelo lógico para um SGDB relacional é utilizando os conceitos e técnicas (abordagem) relacional, na qual utiliza tabelas, campos e chaves. A relação da abordagem ER com a abordagem relacional são as entidades com as tabelas, os atributos com os campos, os identificadores com as chaves primárias e os relacionamentos com as chaves estrangeiras. Muitos profissionais experientes, ao projetarem uma base de dados elaboram diretamente o modelo lógico, abstraindo o modelo conceitual. Compartilhando Crie o modelo lógico do seu modelo conceitual, elaborado na aula anterior, utilizando a abordagem relacional. Apresente-o para um colega e juntamente validem o modelo. Autoavaliação 1. Considere o seguinte texto sobre as tabelas. As tabelas se assemelham a planilhas, pois na visão dos usuários as vemos como linhas e colunas. HEUSER (2009, p. 120) define tabela como “é um conjunto não ordenado de linhas (tuplas, na terminologia acadêmica)”. A referência a não ordenados, significa que os registros são inseridos sequencialmente e a ordenação é realizada na recuperação dos dados. Analise as seguintes afirmativas. I. Pode-se afirmar que as tabelas agrupam dados referente as mesmas entidades. II. As tabelas podem crescer verticalmente até a capacidade do SGDB. III. As entidades no modelo conceitual se tornam tabelas no modelo lógico. IV. Toda tabela tem de ser representada em um retângulo no modelo lógico. Considerando a solicitação do usuário assinale a sequência das afirmativas corretas. a) Somente as afirmativas I e II estão certas. b) Somente as afirmativas II e III estão certas. c) Somente as afirmativas I, II e III estão certas. Rota de Aprendizagem Banco de Dados Aula 04 d) Somente as afirmativas I e IV estão certas. e) Somente a afirmativa II está certa. Resposta: A alternativa “c” está certa. 2. Considere o seguinte texto sobre campos de uma tabela. Na abordagem relacional, os campos são os atributos identificados no modelo conceitual. Eles são vistos como dados de um registro que serão armazenados de forma estruturada. Os dados que os campos contem, são acessados por sistemas para gerarem informações aos usuários. Analise as seguintes afirmativas. I. Os dados nunca podem ser repetidos em outros registros. II. Uma tabela sem campos, não tem utilidade na aplicação. III. Os campos de uma ocorrência na tabela formam um registro da tabela. IV. Os campos têm um domínio definido conforme sua aplicação. Considerando a solicitação do usuário assinale a sequência das afirmativas corretas. a) Estão corretas as afirmativas II, III e IV. b) Estão corretas somente as alternativas I, III e IV. c) Somente estão corretas as alternativas II e III. d) Estão corretas as afirmativas III e IV. e) Estão corretas as afirmativas II e IV. Resposta: A afirmativa “a” está correta. 3. Considere a seguinte representação de uma tabela de usuário para responder o que se pede. Usuário id Nome 1 Pedro 2 Maria 3 João Analise as seguintes sentenças e assinale V para as verdadeiras e F para as falsas considerando a tabela usuário. ( ) A tabela usuário tem uma chave primária e estrangeira no campo id. ( ) O id de valor 1 e o nome com valor Pedro formam uma tupla. ( ) Os id 1, 2 e 3 formam um registro. Rota de Aprendizagem Banco de Dados Aula 04 ( ) id e Nome também são referência para coluna. Considerando a solicitação do usuário assinale a sequência das afirmativas corretas. a) F, F, F, F. b) V, F, F, F. c) F, V, F, V. d) V, V, F, F. e) V, F, V, F.Resposta: A afirmativa “c” está correta. 4. Leia e analise. Os relacionamentos e as cardinalidades máximas são utilizados para definir como os registros vão se relacionar através das chaves estrangeiras. As seguintes representações para a tabela cliente e dependente estão relacionadas pela chave estrangeira “Id_ cliente” da tabela dependente que faz referência ao “Id” do cliente, que é uma chave primária para cliente. cliente dependente Id Nome Id Nome Id_cliente 1 A 11 Xxxx 1 2 B 12 Yyyy 3 3 C 13 Vvvv 2 20 Kkkk 3 Analise as seguintes afirmativas e a relação entre elas. I. Os dependentes “Yyyy” e “Kkkk” são dependentes do cliente “C”. Porque II. O campo “Id” da tabela cliente é uma chave primária. A respeito dessas assertivas e das representações das tabelas cliente e dependente, assinale a opção correta. a) Ambas assertivas estão corretas, mas não se complementam. b) As assertivas estão certas e se complementam. c) A assertiva I é uma proposição falsa e a II é verdadeira. d) A assertiva I está certa e a assertiva II está errada. e) Ambas assertivas estão erradas. Rota de Aprendizagem Banco de Dados Aula 04 Resposta: A opção correta é a letra “a”. 1. Leia e analise. Os relacionamentos e as cardinalidades máximas são utilizados para definir como os registros vão se relacionar através das chaves estrangeiras. As seguintes representações para a tabela cliente e dependente estão relacionadas pela chave estrangeira “Id_ cliente” da tabela dependente que faz referência ao “Id” do cliente, que é uma chave primária para cliente. cliente dependente Id Nome Id Nome Id_cliente 1 A 11 Xxxx 1 2 B 12 Yyyy 3 3 C 13 Vvvv 2 20 Kkkk 3 Analise as seguintes afirmativas, referentes as representações das tabelas cliente e dependente. I. A cardinalidade máxima é 1:n indicando que dependente sempre está relacionado a um cliente. II. A cardinalidade mínima é 1:1 indicando que todo cliente está relacionado a um dependente. III. A cardinalidade mínima é 1:0 indicando que todo dependente está relacionado somente a um cliente. IV. A cardinalidade mínima é 1:0 indicando que todo cliente pode estar relacionado a um dependente. Considerando a solicitação do usuário assinale a sequência das afirmativas corretas. a) Estão corretas somente as alternativas I, III e IV. b) Somente estão corretas as alternativas II e III. c) Estão corretas as afirmativas III e IV. d) Estão corretas as afirmativas II e IV. e) Estão corretas as afirmativas II, III e IV. Resposta: A opção correta é a letra “c”. Referências O Livro Base, o mais indicado, está disponível na BV (Biblioteca Virtual) no link: http://uninter.bv3.digitalpages.com.br/users/publications/9788579360855/pages/_1 Além deste há mais de 30 outros títulos, entre eles: Rota de Aprendizagem Banco de Dados Aula 04 http://uninter.bv3.digitalpages.com.br/users/publications/9788582122181/pages/-4 http://uninter.bv3.digitalpages.com.br/users/publications/9788543006833/pages/-12 http://uninter.bv3.digitalpages.com.br/users/publications/9788544302583/pages/-2 http://uninter.bv3.digitalpages.com.br/users/publications/9788534613248/pages/_1 http://uninter.bv3.digitalpages.com.br/users/publications/9788534614719/pages/_1 HEUSER, Carlos Alberto (Org.). Projeto de banco de dados. 6. ed. Porto Alegre (RS): Bookman, 2009.xii, 282. KROENKE, David M. (Org.). Banco de Dados: Fundamentos, Projeto e Implementação. 6. ed. Rio de Janeiro - RJ: LCT, 1999.
Compartilhar