bancos de dados sql server 2012 introdução a modelagem de dados

37
Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

Upload: internet

Post on 21-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

Bancos de Dados

SQL Server 2012

Introdução a Modelagem de Dados

Page 2: 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

Page 3: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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.

Page 4: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 5: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 6: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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.

Page 7: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

Entidade e Atributos

Page 8: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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)

Page 9: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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.

Page 10: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 11: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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).

Page 12: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 13: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 14: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

Cardinalidade

Cardinalidade Mínima - define se o relacionamento entre duas Entidades é obrigatório ou não. Ex: Entidade Pais e a Entidade UF

Page 15: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 16: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 17: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 18: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 19: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 20: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

Tipos de Relacionamento

Exemplo: Um PRODUTO é fornecido por somente um FORNECEDOR, enquanto que um FORNECEDOR pode fornecer muitos produtos.

Page 21: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 22: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

Tipos de Relacionamento

Exemplo: Um CLIENTE celebra um ou vários Contratos. Um CONTRATO é celebrado por um ou vários clientes.

Page 23: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

Tipos de Relacionamento A Entidade Associativa CLIENTE DO CONTRATO é necessária para que possamos identificar o contrato de um determinado cliente

Page 24: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 25: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 26: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 27: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 28: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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.

Page 29: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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.

Page 30: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 31: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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.

Page 32: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

Normalização

Page 33: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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.

Page 34: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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

Page 35: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

Exercício de Modelagem

Page 36: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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)

Page 37: Bancos de Dados SQL Server 2012 Introdução a Modelagem de Dados

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)