Mapeamento - Modelo Conceitual para Lógico e Físico

Propaganda
Capitulo 2
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 lógico ..................................................... 4
3.BIBLIOGRAFIA ................................................................................................................... 9
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
1
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
Mapeamento de entidades regulares (Comuns) : Para cada entidade do modelo
conceitual criar uma entidade no modelo lógico:
Mapeamento de atributos de atributos chaves “Mais importantes da entidade” :
Para cada atributo chave da entidade do modelo conceitual criar um atributo PK
(Primary key) na entidade do modelo lógico.
Mapeamento de atributos simples: Para cada atributo simples da entidade do
modelo conceitual criar um atributo simples na entidade do modelo lógico.
Mapeamento de atributos compostos: Para cada atributo composto criar na
entidade do modelo lógico somente os componentes do atributo composto.
Mapeamento de atributos multivalorados: Para cada atributo multivalorado criar
uma entidade no modelo lógico contendo o atributo chave (FK) da entidade que este
atributo pertence mais um atributo chave desta nova entidade (PK). A chave desta
entidade será estes dois atributos(PKs).
Mapeamento de entidades fracas: Para cada entidade fraca criar uma entidade 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 chave da entidade fraca.
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
2
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 atritubuto
exportado tem o nome de Foreign Key (FK).
Mapeamento de relacionamentos N:N ou N:M: Para cada relacionamento muitos
para muitos criar uma nova entidade tendo como chave os atributos das entidades
participantes do relacionamento que serão a chaves primárias desta nova entidade
além de serem foreing keys e mais os atributos do relacionamento.
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.
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
sNome
sEmail
sUserName
sPassword
Identificador numérico de cada funcionário cadastrado(código).
Nome completo do funcionário.
Email do funcionário.
Login para o funcionario se logar no WebSuporte.
Senha para o funcionário se logar no WebSuporte.
tb_empresa
noIDEmpresa
sRazaoSocial
Identificador número de cada empresa cadastrada(código)
Nome completo da empresa
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
3
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.
2.2 Mapeando o modelo conceitual para o modelo lógico
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
________________________________________________________________________ 4
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
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.
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
5
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.
SINOPSE DO CREATE TABLE:
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 ]
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
6
EXEMPLOS:
MAPEANDO PARA O MODELO FÍSICO O MODELO LÓGICO ABAIXO:
CLIENTE
NOTA FISCAL DE VENDA
CPF
NUMERO NOTA
NOME
LOGRADOURO
BAIRRO
CPF (FK)
DATA DE FATURAMENTO
ITEM DA NOTA
NUMERO NOTA (FK)
CODIGO DO PRODUTO (FK)
PRODUTO
CODIGO DO PRODUTO
DESCRICAO
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)
);
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
7
Mapeando a entidade Nota fiscal de venda:
CREATE TABLE TB_NF_VENDA
(
NUMERONF
INT
DATAFATUR
CPF
NOT NULL,
DATETIME
INT
,
NOT NULL,
PRIMARY KEY (NUMERONF)
,
FOREIGN KEY (CPF) REFERENCES TB_CLIENTE(CPF)
);
Mapeando a entidade produto:
CREATE TABLE TB_PRODUTO
(
CODPRODUTO
INT
DESCRICAO
NOT NULL,
VARCHAR(50) NOT NULL,
PRIMARY KEY (CODPRODUTO)
);
Mapeando a entidade TB_ITEN_NOTA_VENDA
CREATE TABLE TB_ITEM_NOTA_VEDA
(
NUMERONF
CODPRODUTO
INT
NOT NULL,
INT
NOT NULL,
PRIMARY KEY (CODPRODUTO,NUMERONF)
FOREIGN
KEY
,
(CODPRODUTO)
REFERENCES
TB_PRODUTO(CODPRODUTO),
FOREIGN KEY (NUMERONF) REFERENCES TB_NF_VENDA(NUMERONF)
);
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
8
3.BIBLIOGRAFIA
NAVATHE, ELMASRI. Sistema de banco de dados. 4º Edição. Editora Pearson.
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
9
Download