bancos de dados sql server 2012 introdução a modelagem de dados
TRANSCRIPT
Bancos de Dados
SQL Server 2012
Introdução a Modelagem de Dados
Modelagem de Dados
• Modelos• Entidades e atributos• Chave Candidata• Chave Primária• Relacionamentos• Cardinalidade• Regras de Conversão
ModelosModelo conceitual - Representa as regras de negócio sem limitações tecnológicas ou de implementação. É a etapa mais adequada para o envolvimento do usuário que não precisa ter conhecimentos técnicos– Visão Geral do negócio– Facilitação do entendimento entre usuários e
desenvolvedores– Possui somente as Entidades e atributos principais– Pode conter relacionamentos n para m.
Modelos
Modelo lógico - Leva em conta limites impostos por algum tipo de tecnologia de banco de dados. (Banco de Dados hierárquico , Relacional ,etc.) – Deriva do modelo conceitual – Possui Entidades associativas em lugar de
relacionamentos n:m– Define as chaves primárias das Entidades– Normalizado até a 3a. forma normal– Adequado a um padrão de nomenclatura– Entidades e atributos documentados
Modelos
Modelo Físico - Leva em consideração limites impostos pelo SGBD (Sistema Gerenciador de Banco de dados) e pelos requisitos não funcionais dos programas que acessam os dados– Elaborado a partir do modelo lógico– Pode variar segundo o SGBD– Possui tabelas e colunas
Entidade e Atributos
Entidade pode ser definida como qualquer coisa do mundo real , abstrata ou concreta , sobre a qual se deseja guardar informações. Exemplos: Cliente , Produto , Contrato , Vendas , Fatura, Aluno, Sala de Aula, Professor, etc.
Atributo é tudo o que se pode relacionar como propriedade da Entidade. Exemplos de atributos : Código do Produto, (Entidade Produto) , Nome do Cliente (Entidade Cliente), etc.
Entidade e Atributos
Características dos Atributos
• Domínio: conjunto de valores possíveis do atributo
• Tipo: É a natureza da informação que o atributo armazena Texto , Número , Indicador (sim/não) , Código, Data, Hora, etc.
• Obrigatoriedade: Se deve ou não possuir um valor (Null ou Not Null)
Chave Candidata
• Atributo ou grupamento de atributos que têm a propriedade de identificar unicamente uma ocorrência da Entidade .
• Pode vir a se tornar uma chave Primária. • À chave candidata que não seja a chave
primária também chama-se chave Alternativa.
Chave Primária• Uma das chaves candidatas poderá tornar-se a chave
primária• Não deve haver duas ocorrências de uma mesma Entidade
com o mesmo valor da chave Primária• A chave primária não pode ser composta por um atributo
opcional , ou seja, que aceite nulo.• Os atributos identificadores devem formar o conjunto
mínimo que pode identificar cada instância de um Entidade• Não devem ser usadas chaves externas (Atributos sobre os
quais você não tem controle. Ex: CPF)• Cada atributo identificador da chave deve possui um
tamanho reduzido• Não deve conter informação volátil
Relacionamentos
Um relacionamento pode ser entendido como uma associação entre instâncias de Entidades devido a regras de negócio. Normalmente ocorre entre instâncias de duas ou mais Entidades , podendo também ocorrer entre instâncias da mesma Entidade (auto-relacionamento).
Relacionamentos
Por que o relacionamento é necessário ?– Quando existem várias possibilidades de
relacionamento entre o par de Entidades e se deseja representar apenas um
– Quando ocorrer mais de um relacionamento entre o par de Entidades
– Para evitar ambiguidade– Quando houver auto-relacionamento
Cardinalidade
Indica quantas ocorrências de uma Entidade participam no mínimo e no máximo de um Relacionamento– Cardinalidade Mínima– Cardinalidade Máxima – Cardinalidade UM para UM – Cardinalidade UM para N (Muitos)– Cardinalidade N para N
Cardinalidade
Cardinalidade Mínima - define se o relacionamento entre duas Entidades é obrigatório ou não. Ex: Entidade Pais e a Entidade UF
CardinalidadeCardinalidade Máxima - define a quantidade máxima de ocorrências da Entidade que pode participar do Relacionamento. Deve ser maior que zero.Ex: Ex: Entidade Pais e a Entidade UF
CardinalidadeJuntando a cardinalidade mínima e máxima no mesmo diagrama temos:
País possui no mínimo ZERO UF e no máximo VÀRIOS UF.UF pertence no máximo e no mínimo a UM País
Relacionamento UM-para-UM (1:1)Uma instância em “A” está associada com nomáximo uma instância em “B”, e uma instância em “B” está associada com no máximo uma instância em “A”.Regra: No relacionamento Um para Um temos o lado opcional e o lado obrigatório . A chave primária se desloca em direção ao lado opcional
Tipos de Relacionamentos
Tipos de Relacionamentos
Exemplo: PESSOA pode ser um CLIENTE(opcional), mas todo CLIENTE é uma PESSOA (obrigatório). Assim a chave primária de pessoa se desloca para a Entidade cliente
Tipos de Relacionamentos
Cardinalidade UM para Muitos (1:n):uma instância em “A” está associada a qualquer número de instâncias em “B”, e uma instância em “B”, todavia, pode estar associado a no máximo uma instância em “A” Regra: No relacionamento UM para N levamos a chave primária do lado UM para o lado N. Neste caso o atributo recebe o nome de chave estrangeira ou Foreign Key ( FK ). Chave Estrangeira é a chave primária de uma Entidade que aparece em outra Entidade em virtude do relacionamento
Tipos de Relacionamento
Exemplo: Um PRODUTO é fornecido por somente um FORNECEDOR, enquanto que um FORNECEDOR pode fornecer muitos produtos.
Tipos de RelacionamentoMuitos-para-muitos (n:n): uma instância em “A” está associada a qualquer número de instâncias em “B” e vice-versa. Alguns autores preferem chamar esta cardinalidade de m:n, por considerar que podem representar valores diferentesRegra: A cardinalidade N para N leva para o modelo lógico a necessidade de definição de mais um Entidade, chamada de Entidade Associativa
Tipos de Relacionamento
Exemplo: Um CLIENTE celebra um ou vários Contratos. Um CONTRATO é celebrado por um ou vários clientes.
Tipos de Relacionamento A Entidade Associativa CLIENTE DO CONTRATO é necessária para que possamos identificar o contrato de um determinado cliente
Regras de Conversão
• Toda entidade vira uma tabela• Relacionamentos que possuem atributos viram
tabelas • Relacionamentos são representados por chaves
estrangeiras– atributo correspondente à chave primária de outra relação
Regras de Conversão• Relacionamentos 1:1 podem ser mapeados em– Um única tabela (quando possuem a mesma chave
primária)– Em duas tabelas (quando as chaves primárias são
diferentes ou um dos lados do relacionamento é obrigatório)
– ou em três tabelas (quando o relacionamento é opcional em ambos os lados)
• Relacionamentos 1:n são mapeados de forma que a chave primária do lado “1” seja representada do lado “n” como chave estrangeira
Regras de Conversão• Relacionamentos n:n devem ser transformados em dois
relacionamentos 1:n, resultando numa nova tabela• Relacionamentos ternários (ou de maior grau) geram
novas tabelas• Agregações normalmente geram novas tabelas• Auto-relacionamentos geram novas tabelas se forem
relacionamentos do tipo n:n• Generalização/Especialização podem ser mapeadas em
uma única tabela, em uma tabela para cada especialização ou uma tabela para cada entidade envolvida, dependendo da situação
Normalização
Finalidade• Minimização de redundâncias e
inconsistências• Facilidade de manipulações do Banco de
Dados• Facilidade de manutenção do Sistema de
Informações
Normalização• Anomalia de Exclusão - O que acontece se
você excluir o funcionário de código igual a 3 ? O Setor vai ser excluído junto.
Normalização• Anomalia de Alteração - O nome do Setor
Suporte mudou para Apoio . Você vai ter alterar o nome em todos os registros da tabela.
Normalização• Anomalia de Inclusão - Foi contratado um
novo funcionário para o Setor Suporte. Você vai ter que incluir um funcionário ao campo - QuantidadeFuncionarios - em todas as ocorrências com setor de nome Suporte
NormalizaçãoPrimeira Forma Normal (1FN) : Uma relação está na 1FN se, e somente se, todos os domínios básicos contiverem somente valores atômicos (não contiver grupos repetitivos). Para atingir esta forma normal devemos eliminar os grupos de repetição.
a) Identificar a chave primária da entidadeb) Identificar o grupo repetitivo e excluí-lo da entidadec) Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivoA chave primária da nova entidade será obtida pela concatenação da chave primária da entidade inicial e a do grupo repetitivo.
Normalização
NormalizaçãoSegunda Forma Normal -(2FN)- Uma relação R está na 2FN se, e somente se, ela estiver na primeira e todos os atributos não-chave forem totalmente dependentes da chave primária (dependente de toda a chave e não apenas de parte dela)
a) Identificar os atributos que não são funcionalmente dependentes de toda a chave primáriab) Remover da entidade todos esses atributos identificados e criar uma nova entidade com elesA chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes.
NormalizaçãoTerceira Forma Normal (3FN): Uma relação R está na 3FN se, e somente se, estiver na 2FN e todos os atributos não chave forem dependentes não transitivos da chave primária (cada atributo for funcionalmente dependente apenas dos atributos componentes da chave primária ou se todos os seus atributos não-chave forem independentes entre si)
a) Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave;b) Removê-los e criar uma nova entidade com os mesmos. A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes
Exercício de Modelagem
Exercícios de Modelagem1. Modelar o diagrama do amplificador Classe A
do slide anterior, afim de armazenar o seguinte:– A identificação (Q1, Q2, R1, etc…) do componente– A identificação das portas de cada componente (se
aplicável)– A especificação elétrica (1K, 330R, etc) de cada
componente – As interconexões elétricas entre os componentes – Terra, Vcc e Sinal de Entrada
• Q1 é um 2N7000 (MOSFET tipo N)• Q2 é um BC548 (NPN)
Exercícios de Modelagem
2. Estender o diagrama do exercício 1 para armazenar múltiplos diagramas
3. Estender o diagrama do exercício 1 para armazenar a representação visual do circuito – Armazenar somente a imagem dos componentes
como um gráfico– As linhas elétricas e pontos de interconexão
deverão ser obtidas do modelo (banco de dados)