Você está na página 1de 11

Capitulo 2

1. MODELO LGICO DE BANCO DE DADOS.................................................................2 1.1 Definio...........................................................................................................................2 1.2 Mapeando o modelo conceitual para o modelo lgico......................................................2 1.2 Dicionrio de dados..........................................................................................................3 2. MODELO FSICO DO BANCO DE DADOS....................................................................4 2.1 Definio...........................................................................................................................4 2.2 Mapeando o modelo conceitual para o modelo lgico......................................................4 3.BIBLIOGRAFIA....................................................................................................................9

________________________________________________________________________ Prof. Espc. Fbio Margarito Martins de Barros - Tecnologia de banco de dados

1. MODELO LGICO DE BANCO DE DADOS


1.1 Definio
Projetar um esquema de um banco de dados relacional a partir de um modelo conceitual denomina-se projeto lgico de um banco de dados. A partir de um modelo conceitual aplicamos um algoritmo e temos um modelo lgico do banco. Entende-se por algoritmo uma seqncia de passos para atingir um determinado objetivo.

1.2 Mapeando o modelo conceitual para o modelo lgico


Mapeamento de entidades regulares (Comuns) : Para cada entidade do modelo conceitual criar uma entidade no modelo lgico: 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 lgico. Mapeamento de atributos simples: Para cada atributo simples da entidade do modelo conceitual criar um atributo simples na entidade do modelo lgico. Mapeamento de atributos compostos: Para cada atributo composto criar na entidade do modelo lgico somente os componentes do atributo composto. Mapeamento de atributos multivalorados: Para cada atributo multivalorado criar uma entidade no modelo lgico 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. Fbio Margarito Martins de Barros - Tecnologia de banco de dados

chave primria 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 sero a chaves primrias desta nova entidade alm 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 Dicionrio de dados


O dicionrio de dados descreve a terminologia utilizada para o desenvolvimento do modelo de dados do sistema. Apresenta uma descrio textual da estrutura lgica e fsica do banco de dados. Neste dicionrio voc pode simplesmente colocar a descrio por extenso de campos e tabela como tambm colocar outras caractersticas dos comps como , tipo de dado, se o mesmo requerido ou no. Abaixo segue um exemplo de um pequeno dicionrio de dados.

tb_funcionario noIDFuncionario sNome sEmail sUserName Identificador numrico de cada funcionrio cadastrado(cdigo). Nome completo do funcionrio. Email do funcionrio. Login para o funcionario se logar no WebSuporte. 3

________________________________________________________________________ Prof. Espc. Fbio Margarito Martins de Barros - Tecnologia de banco de dados

sPassword tb_empresa noIDEmpresa sRazaoSocial

Senha para o funcionrio se logar no WebSuporte.

Identificador nmero de cada empresa cadastrada(cdigo) Nome completo da empresa

2. MODELO FSICO DO BANCO DE DADOS

2.1 Definio
O modelo fsico de um banco de dados est relacionado com a implementao de um modelo lgico em algum sistema de banco de dados de mercado (SQL SERVER, ORACLE, FIREBIRD, MYSQL etc..). No modelo fsico mapeamos a entidades em tabelas e atributos em colunas destas tabelas, mas o modelo fsico no est limitado a esta implementao, mas tambm a tcnicas de tunning (melhorias de desempenho). Muitas vezes ser necessrio desnormalizar nosso modelo para termos um ganho de desempenho. Quem propes tais mudanas sero os DBAs, pois preciso ter um conhecimento muito slido do SGBD(Sistema gerenciado de banco de dados) no qual o modelo lgico ser implementado. No momento veremos como implementar as tabelas e atributos e em um captulo mais adiante estaremos vendo outras etapas do projeto fsico de um banco de dados.

2.2 Mapeando o modelo conceitual para o modelo lgico


Mapear um modelo lgico em um modelo fsico 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 tambm criar um banco de dados no SGBD escolhido. Para a criao destas ________________________________________________________________________ 4 Prof. Espc. Fbio 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 razes para o sucesso dos bancos de dados relacionais no mundo comercial. Como se tornou padro para os bancos relacionais, os usurios tm pouca preocupao ao migrar suas aplicaes de um banco de dados para outro.Na prtica existem muitas diferenas entre um SGBD para outro. Entretanto se o usurio for diligente e usar somente aquelas funcionalidades que fazem parte do padro, e se ambos os sistemas suportarem plenamente este padro, ento a converso entre os dois sistemas ser muito fcil. O nome SQL derivado de Structured Query language (Linguagem estruturada de consulta). A SQL a linguagem padro para os SGBDs relacionais comerciais. Um esforo conjunto da ANSI (American National Standards institute) e da ISO(Internation Standards Organization) chegou a verso padro (ANSI,1986), chamada SQL-86 ou SQL1. Uma nova verso revisada e expandida chamada SQL2 (tambm conhecida como SQL-92) foi desenvolvida em seguida. A prxima verso do padro foi originalmente chamada de SQL3, mas atualmente conhecida como SQL-99. A linguagem SQL bem abrangente, cobre definio de dados , consulta e atualizaes, possuindo comandos DDL(Data definition language Linguagem de definio de dados) e DML (Data Manipulation Languagem - Linguagem de manipulao de dados). Para a criao do modelo fsico 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 instruo create table do grupo DDL da linguagem SQL. Com o comando create table definimos o nome da tabela seus atributos tipos de dados e restries. Os tipos de dados podem ser numricos, cadeia de caracteres (string), booleanos, data e horrio. Numricos: Tipos numricos englobam os inteiros de vrios tamanhos(inteiros ou int) e smallint e os nmeros de ponto flutuante ou seja, com casas decimais temos: decimal(i,j) ou numeric (i,j) onde i a preciso e j o nmero de casas decimais. ________________________________________________________________________ Prof. Espc. Fbio 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 varivel como o varchar(n) onde n o nmero mximo 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 restries podemos considerar se um determinado campo poder aceitar NULO (Nenhum valor) ou no. Por regra todo campo chave (PK) dever ser NOT NULL, ou seja no NULO. Abaixo segue a sintaxe da instruo CREATE TABLE e logo a seguir o mapeando de um modelo lgico para o fsico. SINOPSE DO CREATE TABLE:
CREATE [ [ LOCAL ] { TEMPORARY | TEMP } ] TABLE nome_da_tabela ( { nome_da_coluna tipo_de_dado [ DEFAULT expresso_padro ] [ restrio_de_coluna [, ... ] ] | restrio_de_tabela } [, ... ] ) [ INHERITS ( tabela_ascendente [, ... ] ) ] [ WITH OIDS | WITHOUT OIDS ] onde restrio_de_coluna : [ CONSTRAINT nome_da_restrio ] { NOT NULL | NULL | UNIQUE | PRIMARY KEY | CHECK (expresso) | REFERENCES tabela_referenciada [ ( coluna_referenciada ) ] [ MATCH FULL | MATCH PARTIAL ] [ ON DELETE ao ] [ ON UPDATE ao ] } [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

________________________________________________________________________ Prof. Espc. Fbio Margarito Martins de Barros - Tecnologia de banco de dados

e restrio_de_tabela : [ CONSTRAINT nome_da_restrio ] { UNIQUE ( nome_da_coluna [, ... ] ) | PRIMARY KEY ( nome_da_coluna [, ... ] ) | CHECK ( expresso ) | FOREIGN KEY ( nome_da_coluna [, ... ] ) REFERENCES tabela_referenciada [ ( coluna_referenciada [, ... ] ) ] [ MATCH FULL | MATCH PARTIAL ] [ ON DELETE ao ] [ ON UPDATE ao ] }

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

EXEMPLOS: MAPEANDO PARA O MODELO FSICO O MODELO LGICO 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. Fbio Margarito Martins de Barros - Tecnologia de banco de dados

Mapeando a entidade cliente do modelo lgico:


CREATE TABLE TB_CLIENTE ( CPF NOME LOGRADOURO BAIRRO PRIMARY KEY (CPF) ); INT VARCHAR(50) VARCHAR(100) VARCHAR(30) , , NOT NULL, ,

Mapeando a entidade Nota fiscal de venda:


CREATE TABLE TB_NF_VENDA ( NUMERONF DATAFATUR CPF INT INT DATETIME NOT NULL, , 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. Fbio Margarito Martins de Barros - Tecnologia de banco de dados 8

CREATE TABLE TB_ITEM_NOTA_VEDA ( NUMERONF CODPRODUTO INT INT NOT NULL, NOT NULL, , REFERENCES

PRIMARY KEY (CODPRODUTO,NUMERONF) FOREIGN TB_PRODUTO(CODPRODUTO), KEY

(CODPRODUTO)

FOREIGN KEY (NUMERONF) REFERENCES TB_NF_VENDA(NUMERONF) );

3.BIBLIOGRAFIA
NAVATHE, ELMASRI. Sistema de banco de dados. 4 Edio. Editora Pearson. ________________________________________________________________________ Prof. Espc. Fbio Margarito Martins de Barros - Tecnologia de banco de dados 9

Exerccios: 1) Qual o mapeamento de uma entidade comum do modelo conceitual para o modelo lgico? a) b) c) d) e) Tambm uma entidade no modelo lgico. Duas entidades no modelo lgico. Trs entidades no modelo lgico. Depende da quantidade de atributos. NDA.

2) Para mapearmos um relacionamento 1:N no do modelo conceitual para o lgico 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 lgico. 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) No existe PK(Primary key) no modelo lgico. d) NDA. 4) A partir de um relacionamento N:M ou N:N do modelo conceitual, temos no modelo lgico: a) b) c) d) e) Duas entidades associativas. Trs entidades associativas. Apenas uma entidade associativa. Nenhuma entidade associativa. NDA.

5) Qual o principal objetivo do dicionrio de dados. ________________________________________________________________________ 10 Prof. Espc. Fbio Margarito Martins de Barros - Tecnologia de banco de dados

a) b) c) d) e)

Fornecer uma descrio de todos os objetos do banco de dados. Fornecer o script de gerao de tabelas. Fornecer diagramas do banco de dados. Mostrar os limites fsicos do banco de dados. NDA.

6) Ao mapear entidades do modelo lgico para o modelo fsico temos: a) b) c) d) e) Entidades fsicas. Tabelas. Associaes. Colunas NDA

7) Para mapear uma entidade do modelo lgico no modelo fsico que instruo 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 fsico totalmente independente de qualquer gerenciador de banco de dados comercial, como: SQL Sever, Oracle ? a) No, j a partir do modelo lgico j temos um forte acoplamento com o SGBD escolhido. b) Sim, a partir do modelo lgico podemos gerar o mesmo scritp SQL DDL para todos os SGBDS, c) Depende do modelo lgico. d) Depende das instrues utilizadas. e) NDA. 9) Cite dois tipos de dados. a) Numrico, Data. b) Num

________________________________________________________________________ 11 Prof. Espc. Fbio Margarito Martins de Barros - Tecnologia de banco de dados