Baixe o app para aproveitar ainda mais
Prévia do material em texto
Conversa Inicial Olá, caro aluno! Seja bem-vindo à quarta aula da disciplina Banco de Dados! HEUSER (2009, p. 29) define a etapa do projeto lógico como a que “objetiva transformar o modelo conceitual obtido na primeira fase em um modelo lógico.”. Segundo o autor, “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, na aula de hoje, 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 utiliza a linguagem gráfica, demonstraremos desta forma. Neste encontro estudaremos os conceitos da abordagem relacional e veremos 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. Preparado? Então, acompanhe a aula com o professor Martin Morães e bons estudos! Contextualizando Abordagem, como explica HEUSER (2009, p. 25), é o conjunto de conceitos usados para construir modelos. Os principais elementos utilizados na abordagem relacional são tabelas, campos e chaves. Os modelos em 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 devem 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 ( _ ). Acompanhe a contextualização de nossa aula com o professor Martin Morães para conhecer os conteúdos que serão vistos na aula de hoje: http://ava.grupouninter.com.br/videos/video2.php?video=http://vod.grupouninter.com.br/2015/OUT/MT 180014-A04-S01.mp4 Pesquise Na instrumentalização de nossa aula, o professor Martin explica os conceitos da linguagem textual na representação de um modelo lógico, que ocorre por meio de diagramas e textos, além das exemplificações que vimos até aqui. Acompanhe: http://ava.grupouninter.com.br/videos/video2.php?video=http://vod.grupouninter.com.br/2015/OUT/MT 180014-A04-S02.mp4 Tema 1 –Tabela Tema 2 – Campos Tema 3 – Registros, linhas ou tuplas Tema 4 – Chaves Tema 5 – Relacionamentos e Cardinalidades Tema 1 – Tabela Perceber os dados dispostos em linhas e colunas facilita a abstração e 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 é possível identificar duas colunas, uma linha com o nome da tabela, outra linha com a identificação das colunas e três linhas de dados. Usuário id Nome 1 Pedro 2 Maria 3 João Tabela 1 – Exemplo de Tabela de Usuário. As entidades do modelo conceitual são convertidas em tabelas. Tema 2 – Campos O encontro de uma coluna com uma linha é denominado campo. Considerando a Tabela 1, podemos identificar os nomes dos campos. Nela, observamos 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 seu nome e valor. Quando o valor fala for si mesmo, não se faz menção ao nome do campo. Veja os seguintes exemplos: 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 domínios. KROENKE (1999, p. 23) define domínio como “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õe. 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. Tema 3 Registros, linhas ou tuplas Os termos registros, linhas e tuplas são análogos, ou seja, expressam a mesma ideia. Demonstram o conjunto de dados da mesma ocorrência. Veja o exemplo a seguir: Usuário id Nome 1 Pedro 2 Maria 3 João Tabela 2 – Tabela usuário. As ocorrências em uma entidade no modelo conceitual serão os registros em tabela. Tema 4 – Chaves Na abordagem relacional trabalha-se com chave primária e chave estrangeira. Chave primária ou primary key, é definida 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. Tema 5 – 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 feitos por meio de chaves estrangeiras. Estas 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 a Figura 2, nas quais um usuário pode enviar várias mensagens. Figura 1 – Contexto para relacionamento e cardinalidade. Figura 2 – exemplificando usuários e mensagens. Na Figura 2 podemos identificar que o usuário U1 enviou a mensagem M11. Também podemos verificar 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 2 e Figura 3 são similares: a primeira faz o relacionamento por setas e, na segunda, o relacionamento é indicadopor uma chave estrangeira, que faz referência à respectiva chave primária da outra tabela, que está no relacionamento. A mensagem de id 12 foi enviada pelo usuário de id 3. Identificamos tal fato observando o campo “Id_usuario” no mesmo registro em que encontramos o id 12 da mensagem. Para saber o nome do usuário cujo id é 3, vamos procurar o registro na tabela “usuário” cujo id seja 3. No campo “Nome” desse mesmo registro, encontramos o nome do usuário. Usuário 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 Figura 3 – Tabelas exemplificando relacionamento. Para converter o modelo conceitual (Figura 1), para o modelo lógico (Figura 3), foi acrescida uma coluna na tabela mensagem. A cardinalidade máxima deste relacionamento era 1:n, ou seja, um para muitos. Para essa 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 cenário: um trabalhador deve ter uma conta de FGTS e uma conta de FGTS pertence ao máximo a um trabalhador. Neste cenário, a cardinalidade máxima é 1:1. Figura Erro! Nenhum texto com o estilo especificado foi encontrado no documento. – 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: Trabalhador Conta_FGTS Id Nome conta titular 1 A 342 A 2 B 547 B Figura 4 – Tabelas com 1:1. Ao considerarmos as cardinalidades para determinar os relacionamentos, encontraremos a cardinalidade máxima 1:1. Nesta situação, é recomendado considerar, primeiramente, a possibilidade de unificar as tabelas, ficando todos os atributos das duas tabelas em uma. Observe a Figura 5: Trabalhador Id Nome Conta_FGTS 1 A 342 2 B 547 Figura 5 – Unificando tabelas 1:1. Na unificação das tabelas “Trabalhador” e “Conta_FGTS”, da Figura 4, na tabela “Trabalhador” da Figura 5, 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 para chave estrangeira da outra tabela. Cardinalidade Máxima n:n A cardinalidade máxima n:n ocorre quando temos muitas ocorrências de ambas as entidades. Observe a Figura 6: Figura 6 – Cardinalidade n:n. Nesta situação, a indicação é a criação de uma tabela de relacionamento. Na Figura 7 vemos a transformação das entidades “Pessoas” e “Filmes”, da Figura 6, em tabelas. As relações entre os registros estão definidas em uma tabela adicional que contém chave estrangeira para pessoa e para filme, relacionando as múltiplas ocorrências. Figura 7 – Tabelas com n:n. Considerações HEUSER (2009, p. 134) apresenta, na Erro! Fonte de referência não encontrada., 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”, o autor indica se a alternativa é a preferida, se pode ser usada, ou se não deve se utilizar. NA PRÁTICA 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. Agora que você acabou de conhecer a abordagem relacional, identifique representações de modelo lógico e identifique as tabelas, os campos e as chaves. Você pode conversar com profissionais da área para fazer essa análise. Na videoaula a seguir, o professor Martin explicará os aspectos que concernem as tabelas para a aplicação prática de nosso conteúdo. Confira: http://ava.grupouninter.com.br/videos/video2.php?video=http://vod.grupouninter.com.br/2015/OU T/MT180014-A04-S03.mp4 Na sequência, aproveite para testar os conhecimentos adquiridos na aula de hoje! Caso fique com dúvidas, retorne ao conteúdo e às videoaulas e realize o teste novamente. 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. d) Somente as afirmativas I e IV estão certas. e) Somente a afirmativa II 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 contêm, 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. 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. ( ) 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. 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_cliente1 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 as 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 as assertivas estão erradas. 5. 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. TROCANDO IDEIAS Compartilhe com os colegas, através do fórum desta disciplina, representações de modelo lógico que encontrou durante sua pesquisa. Participe acessando o Ambiente Virtual de Aprendizagem (AVA)! SÍNTESE A elaboração de um modelo lógico para um SGDB relacional é feita 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. Vamos ver um resumo preparado pelo professor Martin dos conteúdos que vimos na aula de hoje? Confira: http://ava.grupouninter.com.br/videos/video2.php?video=http://vod.grupouninter.com.br/2015/O UT/MT180014-A04-S04.mp4 Bons estudos e até a próxima aula! REFERÊNCIAS HEUSER, C. A. (Org.). Projeto de Banco de Dados. 6. ed. Porto Alegre: Bookman, 2009. p. 282. KROENKE, D. M. (Org.). Banco de Dados: fundamentos, projeto e implementação. 6. ed. Rio de Janeiro: LCT, 1999.
Compartilhar