2. modelo físico do banco de dados

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 ................................................................................................................. 10
________________________________________________________________________
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
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
2
chave primária desta entidade será composta pelo atributo chave da entidade pai
mais o atributo chave da entidade fraca.
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
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.
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
3
sPassword
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
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
________________________________________________________________________ 4
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
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.
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
5
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.
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
]
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
6
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:
MAPEANDO PARA O MODELO FÍSICO O MODELO LÓGICO ABAIXO:
CLIENTE
CPF
NOME
LOGRADOURO
BAIRRO
NOTA FISCAL DE VENDA
NUMERO NOTA
CPF (FK)
DATA DE FATURAMENTO
ITEM DA NOTA
NUMERO NOTA (FK)
CODIGO DO PRODUTO (FK)
PRODUTO
CODIGO DO PRODUTO
DESCRICAO
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
7
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
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
DESCRICAO
INT
NOT NULL,
VARCHAR(50) NOT NULL,
PRIMARY KEY (CODPRODUTO)
);
Mapeando a entidade TB_ITEN_NOTA_VENDA
________________________________________________________________________
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
8
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
9
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)
b)
c)
d)
e)
Também uma entidade no modelo lógico.
Duas entidades no modelo lógico.
Três entidades no modelo lógico.
Depende da quantidade de atributos.
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.
c) Não existe PK(Primary key) no modelo lógico.
d) NDA.
4) A partir de um relacionamento N:M ou N:N do modelo conceitual, temos no modelo
lógico:
a)
b)
c)
d)
Duas entidades associativas.
Três entidades associativas.
Apenas uma entidade associativa.
Nenhuma entidade associativa.
________________________________________________________________________ 10
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
e) NDA.
5) Qual o principal objetivo do dicionário de dados.
a)
b)
c)
d)
e)
Fornecer uma descrição de todos os objetos do banco de dados.
Fornecer o script de geração de tabelas.
Fornecer diagramas do banco de dados.
Mostrar os limites físicos do banco de dados.
NDA.
6) Ao mapear entidades do modelo lógico para o modelo físico temos:
a)
b)
c)
d)
e)
Entidades físicas.
Tabelas.
Associações.
Colunas
NDA
7) Para mapear uma entidade do modelo lógico no modelo físico que instrução DDL
(Data Definition Language) SQL, utilizamos?
a)
b)
c)
d)
e)
Alter table.
Create Table
Drop Table
Include table.
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.
b) Num
________________________________________________________________________ 11
Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados
Download