• Nenhum resultado encontrado

2 MAPEAMENTO, MODELO, CONCEITUAL, LÓGICO

N/A
N/A
Protected

Academic year: 2021

Share "2 MAPEAMENTO, MODELO, CONCEITUAL, LÓGICO"

Copied!
7
0
0

Texto

(1)

2 – MAPEAMENTO, MODELO CONCEITUAL, LÓGICO – Prof. George Fragoso

1. MODELO LÓGICO DE BANCO DE DADOS...2

1.1 Definição...2

1.2 Mapeando o modelo conceitual para o modelo lógico...2

1.2 Dicionário de dados...3

2. MODELO FÍSICO DO BANCO DE DADOS...4

2.1 Definição...4

2.2 Mapeando o modelo conceitual para o modelo Físico...4

3.BIBLIOGRAFIA...10 1. MODELO LÓGICO DE BANCO DE DADOS

1.1 Definição

Projetar um esquema de um banco de dados relacional a partir de um modelo

conceitual denomina-se projeto lógico de um banco de dados. A partir de um modelo conceitual aplicamos um algoritmo e temos um modelo lógico do banco. Entende-se por algoritmo uma seqüência de passos para atingir um determinado objetivo.

1.2 Mapeando o modelo conceitual para o modelo lógico

1 - Mapeamento de entidades regulares (Comuns) : Para cada entidade do modelo conceitual criar uma tabela no modelo lógico:

2 - Mapeamento de atributos chaves “Mais importantes da entidade” : Para cada atributo chave da entidade do modelo conceitual criar um atributo PK (Primary key) na tabela do modelo lógico.

3 - Mapeamento de atributos simples: Para cada atributo simples da entidade do modelo conceitual criar um atributo simples na tabela do modelo lógico.

4 - Mapeamento de atributos compostos: Para cada atributo composto criar na tabela do modelo lógico somente os componentes do atributo composto.

5 - Mapeamento de atributos multivalorados: Para cada atributo multivalorado criar uma tabela no modelo lógico contendo o atributo chave (FK) da entidade que este atributo pertence mais o atributo multivalorado. A chave desta entidade será estes dois atributos (PK Composta).

6 - Mapeamento de entidades fracas: Para cada entidade fraca criar uma tabela no modelo relacional incluindo nesta entidade fraca o atributo chave da entidade Pai. A chave primária desta entidade será composta pelo atributo chave da entidade pai mais o atributo da entidade fraca.

7 - Mapeamento de relacionamentos 1:N: Para cada relacionamento um para muitos exportar o atributo chave da entidade do lado 1 para o lado N. Este atributo exportado tem o nome de Foreign Key (FK).

8 - Mapeamento de relacionamentos N:N ou N:M: Para cada relacionamento muitos para muitos criar uma nova tabela tendo como chave primária os atributos chave das entidades participantes do relacionamento, além de serem foreing keys e mais os atributos do relacionamento.

(2)

9 - Mapeamento de relacionamentos 1:1: Neste tipo de relacionamento escolhe-se uma das entidades e exporta seu atributo chave para a outra entidade, sendo a FK desta entidade.

10 - Mapeamento de entidades especializadas: Neste tipo de entidades podemos realizar o mapeamento de três formas:

10.1 – Para cada entidade especializada criar uma tabela, onde o atributo chave da entidade generalizada será a chave primária em cada tabela criada.

10.2 – Criar uma tabela para a entidade generalizada e uma tabela para cada tabela especializada. Nas tabelas criada a partir das especializadas terá uma chave estrangeira para a tabela criada a partir da entidade generalizada.

10.3 – Cria-se apenas uma tabela e coloca-se todos os atributos das entidades envolvidas. Admite-se um campo para determinar a qual especialização cada registro pertence.

1.2 Dicionário de dados

O dicionário de dados descreve a terminologia utilizada para o desenvolvimento do modelo de dados do sistema. Apresenta uma descrição textual da estrutura lógica e física do banco de dados. Neste dicionário você pode simplesmente colocar a descrição por extenso de campos e tabela como também colocar outras características dos compôs como , tipo de dado, se o mesmo é requerido ou não. Abaixo segue um exemplo de um pequeno dicionário de dados.

tb_funcionario

noIDFuncionario Identificador numérico de cada funcionário cadastrado(código). sNome Nome completo do funcionário.

sEmail Email do funcionário.

sUserName Login para o funcionario se logar no WebSuporte. sPassword Senha para o funcionário se logar no WebSuporte. tb_empresa

noIDEmpresa Identificador número de cada empresa cadastrada(código) sRazaoSocial Nome completo da empresa

2. MODELO FÍSICO DO BANCO DE DADOS 2.1 Definição

O modelo físico de um banco de dados está relacionado com a implementação de um modelo lógico em algum sistema de banco de dados de mercado (SQL SERVER, ORACLE, FIREBIRD, MYSQL etc..). No modelo físico mapeamos a entidades em tabelas e atributos em colunas destas tabelas, mas o modelo físico não está limitado a esta implementação, mas também a técnicas de tunning (melhorias de desempenho). Muitas vezes será necessário desnormalizar nosso modelo para termos um ganho de desempenho. Quem propões tais mudanças serão os DBAs, pois é preciso ter um conhecimento muito sólido do SGBD(Sistema gerenciado de banco de dados) no qual o modelo lógico será implementado. No momento veremos como implementar as tabelas e atributos e em um capítulo mais adiante estaremos vendo outras etapas do projeto físico de um banco de dados.

(3)

2.2 Mapeando o modelo conceitual para o modelo físico

Mapear um modelo lógico em um modelo físico na primeira fase é simplesmente transformar as entidades em tabelas e atributos em colunas das tabelas. Um conjunto de tabelas forma um banco de dados e para isso devemos também criar um banco de dados no SGBD escolhido. Para a criação destas tabelas, campos e data base utilizamos a linguagem SQL. A linguagem SQL pode ser considerada uma das maiores razões para o sucesso dos bancos de dados relacionais no mundo comercial. Como se tornou padrão para os bancos relacionais, os usuários têm pouca preocupação ao migrar suas aplicações de um banco de dados para outro.Na prática existem muitas diferenças entre um SGBD para outro. Entretanto se o usuário for diligente e usar somente aquelas funcionalidades que fazem parte do padrão, e se ambos os sistemas suportarem plenamente este padrão, então a conversão entre os dois sistemas será muito fácil. O nome SQL é derivado de Structured Query language (Linguagem estruturada de consulta). A SQL é a linguagem padrão para os SGBDs relacionais comerciais. Um esforço conjunto da ANSI (American National Standards institute) e da ISO(Internation Standards Organization) chegou a versão padrão (ANSI,1986), chamada SQL-86 ou SQL1. Uma nova versão revisada e expandida chamada SQL2 (também conhecida como SQL-92) foi desenvolvida em seguida. A próxima versão do padrão foi originalmente chamada de SQL3, mas atualmente é conhecida como SQL-99. A linguagem SQL é bem abrangente, cobre definição de dados , consulta e atualizações, possuindo comandos DDL(Data definition language – Linguagem de definição de dados) e DML (Data Manipulation Languagem -Linguagem de manipulação de dados). Para a criação do modelo físico do banco de dados utilizaremos o grupo chamado DDL.

Mapeando entidades

Para mapear uma entidade em uma tabela no banco de dados estaremos utilizando a instrução create table do grupo DDL da linguagem SQL. Com o comando create table definimos o nome da tabela seus atributos tipos de dados e restrições. Os tipos de dados podem ser numéricos, cadeia de caracteres (string), booleanos, data e horário.

Numéricos: Tipos numéricos englobam os inteiros de vários tamanhos(inteiros ou int) e smallint e os números de ponto flutuante ou seja, com casas decimais temos: decimal(i,j) ou numeric (i,j) onde i é a precisão e j o número de casas decimais.

Cadeia de caracteres: Os caracteres podem ter tamanho fixo como char(n) onde n é o tamanho da cadeia de caracteres e caracteres de tamanaho variável como o varchar(n) onde n é o número máximo de caracteres.

Booleano: Podem assumir o valor de verdadeiro ou falso.

Date e time: O tipo date armazena datas e o tipo time armazena horas minutos e segundos.

Timestamp: é um tipo de dados que armazena data e hora.

Como restrições podemos considerar se um determinado campo poderá aceitar NULO (Nenhum valor) ou não. Por regra todo campo chave (PK) deverá ser NOT NULL, ou seja não NULO.

Abaixo segue a sintaxe da instrução CREATE TABLE e logo a seguir o mapeando de um modelo lógico para o físico.

(4)

CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE nome_da_tabela ( { nome_da_coluna tipo_de_dado [ DEFAULT expressão_padrão ] [

restrição_de_coluna [, ... ] ]

| restrição_de_tabela } [, ... ] )

[ INHERITS ( tabela_ascendente [, ... ] ) ] [ WITH OIDS | WITHOUT OIDS ] onde restrição_de_coluna é:

[ CONSTRAINT nome_da_restrição ]

{ NOT NULL | NULL | UNIQUE | PRIMARY KEY | CHECK (expressão) |

REFERENCES tabela_referenciada [ ( coluna_referenciada ) ] [ MATCH FULL | MATCH PARTIAL ]

[ ON DELETE ação ] [ ON UPDATE ação ] }

[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

e restrição_de_tabela é:

[ CONSTRAINT nome_da_restrição ] { UNIQUE ( nome_da_coluna [, ... ] ) |

PRIMARY KEY ( nome_da_coluna [, ... ] ) | CHECK ( expressão ) |

FOREIGN KEY ( nome_da_coluna [, ... ] ) REFERENCES tabela_referenciada [ (

coluna_referenciada [, ... ] ) ]

[ MATCH FULL | MATCH PARTIAL ] [ ON DELETE ação ] [ ON UPDATE

ação ] }

[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

EXEMPLOS:

(5)

CLIENTE CPF NOME LOGRADOURO BAIRRO PRODUTO CODIGO DO PRODUTO DESCRICAO

NOTA FISCAL DE VENDA NUMERO NOTA CPF (FK) DATA DE FATURAMENTO ITEM DA NOTA NUMERO NOTA (FK) CODIGO DO PRODUTO (FK)

Mapeando a entidade cliente do modelo lógico: CREATE TABLE TB_CLIENTE

(

CPF INT NOT NULL, NOME VARCHAR(50) , LOGRADOURO VARCHAR(100) ,

BAIRRO VARCHAR(30) , PRIMARY KEY (CPF)

);

Mapeando a entidade Nota fiscal de venda: CREATE TABLE TB_NF_VENDA

(

NUMERONF INT NOT NULL, DATAFATUR DATETIME , CPF INT NOT NULL,

PRIMARY KEY (NUMERONF) ,

FOREIGN KEY (CPF) REFERENCES

TB_CLIENTE(CPF) );

Mapeando a entidade produto: CREATE TABLE TB_PRODUTO

(

(6)

DESCRICAO VARCHAR(50) NOT NULL,

PRIMARY KEY (CODPRODUTO)

);

Mapeando a entidade TB_ITEN_NOTA_VENDA CREATE TABLE TB_ITEM_NOTA_VEDA

(

NUMERONF INT NOT NULL,

CODPRODUTO INT NOT NULL,

PRIMARY KEY (CODPRODUTO,NUMERONF) ,

FOREIGN KEY (CODPRODUTO) REFERENCES

TB_PRODUTO(CODPRODUTO),

FOREIGN KEY (NUMERONF) REFERENCES

TB_NF_VENDA(NUMERONF) );

3.BIBLIOGRAFIA

NAVATHE, ELMASRI. Sistema de banco de dados. 4º Edição. Editora Pearson. Exercícios:

1) Qual o mapeamento de uma entidade comum do modelo conceitual para o modelo lógico?

a) Também uma entidade no modelo lógico. b) Duas entidades no modelo lógico.

c) Três entidades no modelo lógico. d) Depende da quantidade de atributos. e) NDA.

2) Para mapearmos um relacionamento 1:N no do modelo conceitual para o lógico temos

a) Atributo chave do lado N será exportado para o lado 1

b) Atributo chave do lado N será exportado para o lado 1 e o atributo chave do lado 1 será exportado para o lado N.

c) Atributo chave do lado 1 será exportado para o lado N. d) Nenhum atributo é exportado.

e) NDA.

3) É correto afirmar que:

a) Um atributo chave de uma entidade é considerado PK(Primary key) no modelo lógico.

b) Otributo chave de uma entidade é considerado PK(Primary key) no modelo Conceitual.

b) Um atributo chave de uma entidade é considerado FK(Foreing key) no modelo conceitual.

(7)

d) NDA.

4) A partir de um relacionamento N:M ou N:N do modelo conceitual, temos no modelo lógico:

a) Duas entidades associativas. b) Três entidades associativas. c) Apenas uma entidade associativa. d) Nenhuma entidade associativa. e) NDA.

5) Qual o principal objetivo do dicionário de dados.

a) Fornecer uma descrição de todos os objetos do banco de dados. b) Fornecer o script de geração de tabelas.

c) Fornecer diagramas do banco de dados. d) Mostrar os limites físicos do banco de dados. e) NDA.

6) Ao mapear entidades do modelo lógico para o modelo físico temos: a) Entidades físicas.

b) Tabelas. c) Associações. d) Colunas e) NDA

7) Para mapear uma entidade do modelo lógico no modelo físico que instrução DDL (Data Definition Language) SQL, utilizamos? a) Alter table.

b) Create Table c) Drop Table d) Include table. e) NDA.

8) Podemos dizer que o modelo físico é totalmente independente de qualquer gerenciador de banco de dados comercial, como: SQL Sever, Oracle ? a) Não, já a partir do modelo lógico já temos um forte acoplamento com o SGBD

escolhido.

b) Sim, a partir do modelo lógico podemos gerar o mesmo scritp SQL DDL para todos os SGBDS,

c) Depende do modelo lógico. d) Depende das instruções utilizadas. e) NDA.

9) Cite dois tipos de dados. a) Numérico, Data.

Referências

Documentos relacionados

Tais resultados em Saimiri fornecem informações básicas imprescindíveis para o avanço nas pesquisas sobre a composição biomolecular do coágulo seminal, e consequentemente um

de calçados para o Brasil, em setembro de 2009, o Governo autorizou a cobrança de uma taxa “antidumping” provisória de US$ 12,47, por um período de seis meses, para cada par

Valores médios e desvios padrões da idade e do tempo de doença no início do acompanhamento, do tempo de acompanhamento e das medidas antes e após o

a) Subsistema para o Desenvolvimento do Turismo, adiante designado por SIDET; b) Subsistema para o Desenvolvimento Local, adiante designado por SIDEL; c) Subsistema de

O modelo lógico e conceitual do banco de dados foi baseado no modelo entidade- relacionamento, exigindo um mapeamento do modelo orientado a objetos para o modelo

b) Criar um conselho estratégico (CE) com a missão de acompanhar a evolução do projeto, avaliar o desempenho e os resultados, bem como, apresentar propostas

O Resumo trata-se de um texto com uma quantidade pré-determinada de palavras, onde se expõe o objetivo do artigo que deve incluir o problema, a metodologia

PREVIDENCIÁRIO. BENEFÍCIO CONCEDIDO ANTES DA CONSTITUIÇÃO FEDERAL DE 1988. MÉDIA DOS SALÁRIOS DE CONTRIBUIÇÃO LIMITADA AO MAIOR VALOR TETO. Supremo Tribunal Federal