Sistema de Gerenciamento de Banco de Dados

Propaganda
Sistema de Gerenciamento de
Banco de Dados
PROJETANDO UM BANCO DE DADOS
LOGICAMENTE
PROF.: ANDRÉ LUIZ MONTEVECCHI
Tirando vantagem do mecanismo relacional
Depois que o modelo conceitual é aprovado e obtém
a anuência dos usuários e clientes, podemos criar o
modelo lógico. Um projeto lógico é um modelo de
banco de dados que evolui a partir do modelo
conceitual, pois ele pega os requisitos anteriormente
capturados e cria uma visão da solução de software.
Tirando vantagem do mecanismo relacional
Um diagrama lógico de banco de dados é criado para
responder perguntas como estas:



Que tipos de dados devem ser utilizados?
Como identificar uma entidade?
Quais regras devem ser impostas para validar os dados?
Tirando vantagem do mecanismo relacional
A terminologia da modelagem muda quando ela
alcança o modelo lógico.
Modelo conceitual
Modelo lógico
Entidade
Tabela
Atributo
Coluna
Relacionamento
Chave estrangeira
Tirando vantagem do mecanismo relacional
Para criar um modelo lógico, siga os passos:




Localize o tipo apropriado para cada coluna.
Localize a chave primária de cada tabela.
Normalize o banco de dados.
Acrescente regras adicionais de validação.
Tirando vantagem do mecanismo relacional
A normalização é o processo em um banco de
dados relacional que reduz a redundância e o
potencial para anomalias aprimorando, assim, a
integridade e a consistência dos dados.
Normalização de banco de dados
1° Forma Normal: Verificação de tabelas
aninhadas
Para uma tabela estar na primeira forma normal, ela
não deve conter tabelas aninhadas.
Para verificar esta norma devemos fazer a pergunta:
Este campo depende de qual?
1° Forma Normal
 Tabela sem a aplicação da norma:
CODVENDA
CODCLIENTE
ENDERECO
CEP
CIDADE
UF
QTDE
VL. UNITARIO
VL.TOTAL
4343
2
Av. Amazonas
3233
BH
MG
1
R$10,00
R$10,00
7878
3
Rua Peixoto
3265
Contagem
MG
2
R$25,00
R$50,00
1° Forma Normal
 Tabelas com a aplicação da norma:
CODVENDA
CODCLIENTE
QTDE
VL. UNITARIO
VL.TOTAL
4343
2
1
R$10,00
R$10,00
7878
3
2
R$25,00
R$50,00
CODCLIENTE
NOME
ENDERECO
CEP
CIDADE
UF
2
Luiz
Av. Amazonas
3233
BH
MG
3
Augusto
Rua Peixoto
3265
Contagem
MG
2° Forma Normal
2° Forma Normal: Verificação de
Dependências Parciais
Para uma tabela estar na segunda forma normal,
além de estar na primeira forma, ela não deve conter
dependências parciais.
Para verificar esta norma devemos fazer a pergunta:
Este campo depende de toda a chave? Se não,
temos uma dependência parcial.
2° Forma Normal
 Tabelas sem a aplicação da norma:
CODVENDA
CODCLIENTE
CODCIDADE
QTDE
VL.
UNITARIO
VL.TOTAL
4343
2
20
1
R$10,00
R$10,00
7878
3
22
2
R$25,00
R$50,00
2° Forma Normal
 Tabelas com a aplicação da norma:
CODVENDA
CODCLIENTE
QTDE
VL.
UNITARIO
VL.TOTAL
4343
2
1
R$10,00
R$10,00
7878
3
2
R$25,00
R$50,00
CODCLIENTE
CODCIDADE
NOME
CODCIDADE
NOME
2
20
Maurício
20
Belo Horizonte
3
22
Márcia
22
Contagem
3° Forma Normal
3° Forma Normal: Verificação de
Dependências Transitivas
Para uma tabela estar na terceira forma normal,
além de estar na segunda forma, ela não deve conter
dependências transitivas.
Para verificar esta norma devemos fazer a pergunta:
Este campo depende de outro que não seja a
chave? Se sim, temos uma dependência transitiva.
3° Forma Normal
 Tabelas sem a aplicação da norma:
CODVENDA
CODCLIENTE
CODCIDADE
QTDE
VL.TOTAL
4343
2
20
1
R$10,00
7878
3
22
2
R$50,00
CODPRODUTO
DESCRIÇÃO
VL. UNITARIO
1234
Abajur
R$10,00
4321
Espelho
R$25,00
3° Forma Normal
 Tabelas com a aplicação da norma:
CODVENDA
CODCLIENTE
CODPRODUTO
QTDE
4343
2
1234
1
7878
3
4321
2
CODPRODUTO
DESCRIÇÃO
VL. UNITARIO
1234
Abajur
R$10,00
4321
Espelho
R$25,00
Definindo o tipo das colunas
 Toda vez que você define uma coluna, é necessário
definir um tipo de dados. O tipo de dados é um
atributo de cada coluna que especifica o tipo de
dados que a coluna armazenará.
 Definir o tipo de dados apropriado é fundamental
para manter a integridade do banco de dados. Por
exemplo, se utilizar o tipo de dados char para definir
uma coluna Preço, os usuário podem armazenar
nomes nessa coluna.
Atributos numéricos
 Inteiros
e quantidades: Colunas de inteiro
armazenam dados numéricos inteiros sem parte
decimal. Inteiros incluem números naturais positivos
(1, 2, 3), números naturais negativos (-1,-2,-3) e o 0.
São
freqüentemente
usados
para
modelar
quantidades.
TIPO
ESPAÇO
MÍNIMO E MÁXIMO
bit
1/8 de byte
0a1
tinyint
1 byte
0 a 255
smallint
2 bytes
-32,768 até 2,147,483,647
int
4 bytes
-2,147,483,648 até 2,147,483,647
bigint
8 bytes
-9, 223,372,036,854,775,808 até
9, 223,372,036,854,775,807
Atributos numéricos
 Números precisos: Armazenam dados numéricos
com parte decimal. Isso significa que o número pode
conter frações. O SQL SERVER 2005 oferece 4 tipos:
decimal, money, numeric e smallmoney.
TIPO
ESPAÇO
MÍNIMO E MÁXIMO
Decimal
5 bytes
-999,999,999 até 999,999,999
Numeric
9 bytes
-1019 + 1 até 1019 – 1
Money
8 bytes
-922,337,203,685,477.5808 até
922,337,203,685,477.5807
Smallmoney
4 bytes
-214,748.3648 até 214,748.3647
Atributos numéricos
 Dados científicos e de engenharia: Geralmente
utilizam números muito grandes e muito pequenos.
Por exemplo, aplicativos da astronomia podem
armazenar a massa e o tamanho dos planetas,
estrelas ou galáxias. A massa do Sol é 1.9181 x 1030 ,
que é uma unidade chamada massa solar.
 Para esses propósitos, temos os tipos de dados de
número aproximado. Eles não armazenam um
número exato, mas em vez disso usam dados de
pontos flutuantes aproximados.
Atributos numéricos
 A maioria dos SGBD fornecem 3 tipos de dados
aproximados: float, real e double. Os tipos de dados
float e real são tipos de dados flutuantes com bits de
mantissa predefinidos.
TIPO
ESPAÇO
MÍNIMO E MÁXIMO
Float
8
25-43
Real
8
24
Double
8
53
Atributos string
 Atributos
de string armazenam informações
como nome e endereço. Esses tipos de dados são
compostos de letras, números e símbolos.
 Tipos de dados fixos (char e nchar) utilizam
uma
quantidade
permanente
de
espaço
independente do valor da coluna ou da variável.
 Tipos de dados de comprimento variável
ajustam seu armazenamento para acomodar o valor
da coluna.
Atributos string
 Tipos de dados de texto longo: Se precisar
armazenar um tipo de dados string que exceder a
capacidade máxima, você poderá usar o tipo de
dados varchar(max) ou nvarchar(max).
Atributos Data e Hora
 Nos aplicativos de negócios, a necessidade de
armazenar atributos de data e hora é frequente. No
SQL SERVER 2005 possui dois tipos de dados que
combinam datas e horas em um único atributo.
TIPO
TAMANHO
EXATIDÃO
MÍNIMO E MÁXIMO
Datetime
8 bytes
3,33 milissegundos
1 de janeiro de 1753 até
31 de dezembro de 9999
Smalldatetim
e
4 bytes
1 minuto
1 de janeiro de 1900 até 6
junho de 2079
Dados binários
 Alguns aplicativos precisam armazenar imagens ou
documentos.
 Alguns SGBD, como o SQL SERVER possuem três
tipos de dados para armazenar informações binárias:
binary(n), varbinary(n) e varbinary(max).
TIPO
DESCRIÇÃO
LARGURA MÁXIMA
Binary(n)
Dados binários de
largura fixa
8000 bytes
Varbinary(n)
Dados binários de
comprimento variável
8000 bytes
Varbinary(max)
Dados binários longos
2,147,483,647 bytes
Download