Criado por: Malcon Toledo
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
Esta etapa é independente do SGBD
É um modelo "simplificado", legivel também para os leigos
irá descrever os principais atributos, os relacionamentos e as entidades
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)
Apresenta detalhes dos campos, tabelas, chaves extrangeiras, primarias, índices..
Descreve como os dados serão fisicamente armazenados
No modelo conceitual, lógico e físico
Podemos definir Entidade como um conjunto de dados que, reunidos, descrevem algo específico. Exemplo: Pessoa, Curso, Matrícula, etc.
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 |
No modelo lógico:
é "mais ou menos" como colocar todo o modelo conceitual numa planilha do Excel
surge o conceito de
um ou mais campos que definem (identificam) um registro de uma Entidade |
Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla |
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"
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 |
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 |
o tipo DECIMAL, é o mais preciso.
ideal para armazenar valores monetários, como "salário" e "preco_venda" entre outros exemplos.
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"
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
É 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
É uma referência à uma chave primária em outra tabela.
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
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
Conceitos:
1FN 2FN 3FNServe 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
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
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
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
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