Capítulo 1

Modelagem de dados

Criado por: Malcon Toledo

Modelagem

Definições

A modelagem de dados é uma técnica usada para a descrever as regras de negócios e as estruturas de dados de um banco de dados.

Os modelos de dados nos dizem como são os tipos de dados, como é o relacionamento entre eles e como são armazenados dentro do banco de dados

Modelo Conceitual

Esta etapa é independente do SGBD

É um modelo "simplificado", legivel também para os leigos

irá descrever os principais atributos, os relacionamentos e as entidades

modelo conceitual nivel 0
modelo conceitual bem simplificado
modelo conceitual detalhado
modelo conceitual com mais detalhes

Modelo Lógico

Já leva em conta as características do SGBD (se é relacional ou não, por exemplo)

é como se colocássemos as informações do modelo conceitual numa planilha do Excel.

Detalhamento maior dos atributos.

onde é feita a Normalização (até 3 FN)

Modelo Físico

Apresenta detalhes dos campos, tabelas, chaves extrangeiras, primarias, índices..

Descreve como os dados serão fisicamente armazenados

Entidades e Atributos

No modelo conceitual, lógico e físico

Modelo Conceitual

Modelo Conceitual

Entidades

Podemos definir Entidade como um conjunto de dados que, reunidos, descrevem algo específico. Exemplo: Pessoa, Curso, Matrícula, etc.

entidade, representação

Atributo

Atributos são as "informações" (campos) que compõem uma entidade.

Um relacionamento também pode possuir atributos

Tipos de Atributos.

São atômicos, não podem ser divididos
Podem ser divididos. Ex. Endereço (Rua, número, bairro...)
Podem possuir mais de um valor. Ex. Telefone (Residencial, Comercial...)
Obtidos por meio de cálculos com outros atributos. Ex. idade

Modelo Lógico

Modelo Conceitual
Modelo Lógico

No modelo lógico:

é "mais ou menos" como colocar todo o modelo conceitual numa planilha do Excel

surge o conceito de

"chave-primária"

um ou mais campos que definem (identificam) um registro de uma Entidade

"tupla"

Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla

Modelo Físico

Modelo físico

No modelo físico:

aqui é feito um detalhamento maior nos atributos

é totalmente dependente do Banco de Dados que será utilizado

descreve como os dados serão guardados fisicamente

surge o conceito de "TIPOS DE DADOS"

Dados ALFANUMÉRICOS

Tipo de Dado Descrição
CHAR(N) Campo com N caracteres fixos.(máx: 255)
VARCHAR(N) Campo com até N caracteres. (máx: 65.535)
TEXT Para strings de até 65.535 caracteres
LONGTEXT Para strings de até 4,294,967,295 caracteres

Dados NUMÉRICOS

Tipo de Dado Descrição
INT(Size) Size (quantidade de caracteres do número - máximo 11)
Tamanhao: 4 Bytes
Inteiros entre: -2147483648 até 2147483647
Sem sinal: até 4294967295
FLOAT Tamanhao: 4 Bytes
Range: ±3.40282347E+38F
Número máximo de casas decimais: 6 ou 7
DOUBLE Tamanhao: 8 Bytes
Range: ±1.79769313486231570E+308
Número máximo de casas decimais: 15 ou 16
DECIMAL(size,p) Size (quantidade de caracteres do número - máx: 65)
p (quantidade EXATA de casas decimais)
Tamanhao: 8 Bytes
Range: ±1.79769313486231570E+308
Número máximo de casas decimais: até 28 ou 29

FLOAT x DOUBLE x DECIMAL

Conclusão

o tipo DECIMAL, é o mais preciso.

ideal para armazenar valores monetários, como "salário" e "preco_venda" entre outros exemplos.

Dados TIPO DATA E TEMPO

Tipo de Dado Descrição
DATE YYYY-MM-DD
TIME hh:mm:ss
DATETIME YYYY-MM-DD hh:mm:ss

lista completa dos tipos de dados:

surge a "DDL"

Data Definition Language

Relacionamentos entre entidades

Relacionamento 1 para 1

Usado quando o registro da tabela A puder ser associado com somente 1 registro da tabela B

Relacionamento 1 para 1

No primeiro caso um Boleto terá obrigatóriamente um Pagamento, e um Pagamento terá obrigatóriamente um Boleto

Relacionamento 1 para 1

No segundo caso um Motorista terá uma ou nenhuma CNH, e uma CNH, quando existir, estará relacionada com somete um Motorista

Relacionamento 1 para 1

Passando para o modelo lógico

Quanto temos um relacionamento um para um, com essa cardinalidade, o recomendado é que seja feita uma junção das entidades para que fique uma só

Relacionamento 1 para 1

Passando para o modelo lógico

modelo conceitual

modelo lógico

Relacionamento 1 para 1

Passando para o modelo lógico

Quanto temos um relacionamento um para um, quando as cardinalidades mínimas forem diferentes, a Entidade com cardinalidade mínima = 0 se transformará em uma entidade fraca

Entidade Fraca

É a Entidade que só existe a partir de uma outra Entidade. Por sí só, ela não existiria.

A Entidade Fraca se relaciona com a Entidade Principal por meio de uma chave extrangeira

A Entidade Fraca não possui chave primária

Relacionamento 1 para 1

Passando para o modelo lógico

modelo conceitual

modelo lógico

Chave Extrangeira

É uma referência à uma chave primária em outra tabela.

Relacionamento 1 para Muitos (1:N)

Quando uma Entidade contém somente um registro relacionado a nenhum, a um ou a muitos registros de uma outra Entidade.

Relacionamento 1 para N

Passando para o modelo lógico

Relacionamento Muitos para Muitos (M:N)

Cada registro em ambas as Entidades podem se relacionar a nenhum ou a qualquer número de registros na outra Entidade.

Relacionamento M para N

Passando para o modelo lógico

A relação se tranforma em uma tabela

Normalização

Conceitos:

1FN 2FN 3FN

Normalização - Objetivo

Serve para evitar redundâncias no banco

Redundadância é ruim pois causa desperdício de armazenamento e também dificulta a manutenção e utilização do das informações do banco

1ª Forma Normal

Todos os atributos devem ser atômicos, ou seja, não podem ser divididos

tabela não está na 1º forma normal

endereco é um atributo composto

telefone é um atributo multivalorado

Regras 1FN

atributos compostos devem ser divididos em colunas

atributos multivalorados dem ser colocados em outra tabela

Após aplicarmos as regras da 1FN

2ª Forma Normal

Todos os atributos não-chave devem depender unicamente da chave primária

tabela não está na 2º forma normal

O campo cliente não depende da chave primaria

Regras 2FN

tabela deve estar na 1FN

localizar todos os campos que não dependem da chave primária

criar uma tabela separada para eles

relacionar as tabelas por meio de chave estrangeira

Após aplicarmos as regras da 2FN

3ª Forma Normal

Todos os atributos não chave devem ser funcionalmente independentes entre si

tabela não está na 3º forma normal

O campo idade depende do campo data-nasc

Regras 3FN

tabela deve estar na 1FN

tabela deve estar na 2FN

localizar e remover todos os campos derivados

Após aplicarmos as regras da 3FN

Relacionamentos entre entidades

Relacionamento 1 para 1

Usado quando o registro da tabela A puder ser associado com somente 1 registro da tabela B

a associação 1 para 1 indica uma referência obrigatória

Modelo Conceitual
Modelo Conceitual

Modelo Conceitual e Lógico

Fundamentos

p.destaque2