Projeto de Banco de Dados - Parte 3

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Neste artigo, continuaremos a tarefa de transformação do Modelo Conceitual em Modelo Lógico.

No artigo anterior, finalmente iniciamos a conversão entre os modelos Conceitual e Lógico. Esta é uma parte bastante importante do processo, pois já considera características do SGBD em questão.

Até o momento, executamos apenas o primeiro passo da transformação entre modelos, ou seja, a definição das tabelas com base nas entidades do Modelo Conceitual. As Figuras 1 e 2 mostram este resultado.

Figura 1. Entidades do Modelo Conceitual.

Figura 2. Tabelas do Modelo Lógico.

É importante também, neste momento, definir qual o SGBD que será utilizado e no nosso caso, optei pelo MySQL, por dois motivos simples: 1) é um SGBD Open Source; 2) É a única opção presente no DB Designer para a geração do Modelo Físico e scripts de criação do banco de dados.

Antes de darmos prosseguimento, é importante termos em mente que precisamos chegar, a cada passo, sempre mais perto da implementação final no banco de dados. Por isso, evitaremos também a utilização de acentuação e espaços na definição dos nomes de tabelas e campos. Você verá nas próximas seções as tabelas já devidamente corrigidas.

Neste artigo, continuaremos a tarefa de transformação do Modelo Conceitual em Modelo Lógico (o primeiro passo foi executado na edição anterior da SQL Magazine).

Continuando a transformação - 2º Passo: Atributos do Modelo Conceitual transformando-se em Campos no Modelo Lógico

Já temos a definição das primeiras tabelas, com base nas entidades encontradas no Modelo Conceitual. Passaremos agora para a definição dos campos destas tabelas com base nos atributos encontrados no Modelo Conceitual.

Apenas para relembrar, a Figura 3 mostra o Modelo Conceitual completo e é com base nele que continuaremos a transformação entre modelos. É importante salientar, como você já deve ter notado, que nosso modelo não contempla TODAS as características que possam aparecer em um modelo, mas nem por isso deixarei de cobrir estas características, apenas utilizarei exemplos práticos destas características mas estes exemplos não estarão efetivamente no modelo final.

Figura 3. Modelo Conceitual completo, apresentado pelo Diagrama ER.

Vamos iniciar definindo os campos para as tabelas já definidas sem nos preocupar com os relacionamentos. Estes campos são os atributos das entidades do Modelo Conceitual.

Como devemos levar em consideração o SGBD específico, uma informação importante, mas não fundamental para o Modelo Lógico, é o tipo de dados e o tamanho de cada campo. O Modelo Lógico em si não contempla estas informações, mas quando utilizamos ferramentas CASE para a construção do Modelo Lógico, definir este tipo de informação é particularmente útil, pois já deixa seu Modelo Lógico preparado para a conversão em Modelo Físico. Desta forma mostrarei na Tabela 1 os campos definidos e também os tipos de dados com os respectivos tamanhos. Note que os detalhes de tipo de dados podem variar de acordo com o SGBD escolhido, portanto é muito importante que seja lida a documentação do SGBD escolhido para verificar exatamente os tipos de dados suportados.

Entidade

Atributo

Tabela

Campo

Tipo de Dados

Gênero Artista

Código

Gen_Artista

Codigo

INTEIRO

Nome

Nome

LITERAL(64)

Artista

Código

Artista

Codigo

INTEIRO

Nome

Nome

LITERAL(64)

Descrição

Descricao

LITERAL(128)

Ano Origem

Ano_Origem

DATE

Local Origem

Local_Origem

LITERAL(64)

Música

Código CD

Musica

Codigo_CD

INTEIRO

Núm Faixa

Num_Faixa

INTEIRO

Título

Titulo

LITERAL(64)

Tipo Gravação

Tipo_Gravacao

INTEIRO

CD

Código

CD

Codigo

INTEIRO

Título

Titulo

LITERAL(64)

Núm CDs

Num_CDs

INTEIRO

Categoria CD

Código

Categoria_CD

Codigo

INTEIRO

Nome

Nome

LITERAL(64)

Usuário

Código

Usuario

Codigo

INTEIRO

Nome

Nome

LITERAL(64)

Tabela 1. Tabela de conversão das entidades/atributos para tabelas/campos.

A Figura 4 apresenta a posição atual do Modelo Lógico.

Figura 4. Modelo Lógico contendo as entidades/atributos convertidas em tabelas/campos.

3º Passo: Atributos Multi-valorados do Modelo Conceitual transformando-se em Tabelas no Modelo Lógico

Em nosso modelo, conforme a descrição dos requisitos, não houve um caso sequer de atributo multi-valorado, mas o exemplo e implementação é bem simples de ser apresentado em nosso próprio modelo.

Imagine a situação da entidade “Usuário” apresentada na Figura 5.

Figura 5. Entidade “Gravadora” com atributo multi-valorado.

Perceba na Figura 5 o atributo “Telefone” na entidade “Gravadora”. Claramente é um atributo multi-valorado (com cardinalidade mínima 0 e máxima n), pois uma gravadora pode possuir mais de um telefone e deseja-se manter informações, se este for o caso. Temos também o atributo “Endereço” que também é multi-valorado, pois é composto de logradouro, complemento, número e CEP.

Como sabemos, um campo de uma tabela não poderá receber mais de um valor, como é o caso dos famosos vetores (ou arrays, como são conhecidos) das linguagens de programação. Desta forma, atributos multi-valorados serão convertidos em tabelas relacionadas no Modelo Lógico.

Veja na Figura 6 a implementação do exemplo da Figura 5.

Figura 6. Entidade “Gravadora” com atributo multi-valorado.

Perceba na Figura 6 que foram criadas duas tabelas (“End_Gravadora” e “Tel_Gravadora”) relacionadas com a tabela “Gravadora” e que a chave primária (atributo identificador) da tabela “Gravadora” foi definida como chave estrangeira (identificado por FK de Foreign Key) nas duas novas tabelas e, além de ser a chave estrangeira o campo é também parte da chave primária das novas tabelas. Esta implementação de chave estrangeira é o que define o relacionamento entre as tabelas.

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?