Banco de Dados - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/05/BD_Aula3.pdf ·...
Transcript of Banco de Dados - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/05/BD_Aula3.pdf ·...
Aula passada..
• PostgreSQL• Profissionais de BD• Vantagens do uso de BD• Modelagem de Dados• Esquema de Banco de Dados• Arquitetura de Banco de Dados• Independência de Dados• Linguagens SGBD• Utilitários do sistema de BD• Classificação de SGBDs• Modelo de Dados Relacional e OO
08:51
Roteiro
• Projeto de BD
• Esquema geral do projeto de um BD
• Conceitos de modelagem
• Diagrama E-R
08:56
Projeto de BD
• O projeto de BD pode ser dividido em duas fases(1) Modelagem conceitual
• Baseado na análise de requisitos, é construído um modelo conceitual de alto nível.
• Independente de SGBD
(2) Projeto lógico• Modelo conceitual é convertido em um modelo lógico
• O modelo lógico define como o BD será implementado por um SGBD
08:56
Esquema geral do projeto de um BD
08:56
Levantamento e análise de requisitos
Esquema conceitual
-Descrição concisa dos requisitos de dados dos usuários- Descrição detalhada de tipos de entidade, relacionamento e restrições
Não incluem detalhes de implementação
Esquema geral do projeto de um BD
08:59
O modelo conceitual é mapeado para o modelo de dados do SGBD
São definidas estruturas de armazenamento interno, índices, caminhos de acesso e
organizações de arquivo para os arquivos do BD
Conceitos de modelagem
• Entidades (Tipo Entidade)– Um objeto do mundo real com uma existência
independente
– Existência• Física: pessoa, carro, casa, funcionário
• Conceitual: empresa, trabalho, curso universitário
– Um tipo entidade define uma coleção de entidades que possuem os mesmos atributos
• Conjunto de entidades– Coleção de todas entidades de um tipo entidade
09:00
Conceitos de modelagem
• Entidades possuem atributos
– Propriedades que descrevem entidades
– Empregado
• Nome, idade, endereço, salário e função
• Tipos de atributos
– Compostos ou simples
– Univalorado ou multivalorado
– Armazenado ou derivado
09:00
Conceitos de modelagem
• Atributos compostos
– Podem ser divididos em sub-partes menores
– Sub-partes representam atributos básicos com significados independentes
• Endereço: Rua, Cidade, Estado e CEP
• Telefone: DDD e Número
09:02
Endereço
EnderecoRua Cidade Estado CEP
Número Rua Apartamento
Conceitos de modelagem
• Atributos monovalorados
– Possuem um valor único para uma entidade
– Exemplo: idade
• Atributos multivalorados
– Podem possuir diversos valores
– Exemplos
• Telefone
• Titulação de uma pessoa
09:10
Conceitos de modelagem
• Atributos derivados
– Quando existe relação de dependência entre atributos
– Exemplo: idade e data de nascimento
• Idade é atributo derivado de DataDeNascimento
• DataDeNascimento é chamado atributo armazenado
– Atributos derivados de relacionamentos
• Exemplo: NumeroEmpregados de Departamento
09:11
Conceitos de modelagem
• Valor null para atributos
– Pode ser usado quando não existe valor aplicável ou quando o valor é desconhecido
– Atributo apartamento de ENDEREÇO
– Atributo titulação de PROFESSOR
– Atributo telefone de PESSOA
09:11
Conceitos de modelagem
• Atributo-chave– Restrição de unicidade de atributos de uma
entidade
– Atributo de uma entidade cujos valores são distintos para cada uma das entidades do conjunto de entidades• Nenhuma entidade pode ter, ao mesmo tempo, o
mesmo valor para o atributo-chave
– Os valores do atributo-chave são utilizados para identificar uma entidade univocamente
09:11
Conceitos de modelagem
• Atributo-chave
– Chave composta: atributos que, em conjunto, possuem valores distintos para cada entidade do conjunto de entidades
– No diagrama ER: sublinhado
– A restrição de chave deriva de restrições do minimundo
09:13
Conceitos de modelagem
• Atributo-chave
– Alguns tipos de entidades possuem mais do que um atributo chave
• Aluno: CPF e Matrícula
– Um tipo entidade também pode não ter chave
• Entidade fraca
09:18
Pessoa
CPF
Nome
DataNasc
Nacionalidade
Empresa
Nome
Local
Presidente
Placa_carro
Letras
Numero
Estado
Cidade
Dependente
Nome
Parentesco
Sexo
Conceitos de modelagem
• Conjunto de valores de atributos (domínio)
– Conjunto de valores válidos para os atributos de cada entidade
– Exemplos
• Limite de idade permitido para empregados
• Quantidade de caracteres para CPF de aluno
– Não são representados no DER
– São especificados pelos tipos básicos de dados
• String, ponto flutuante, inteiro, ...
09:18
Exemplo: EMPRESA
• Descrição do minimundo(1) A empresa está organizada em departamentos.
Cada departamento tem um nome único, um número único e um empregado que o gerencia. O BD armazena a data que o empregado começou a gerenciar o departamento. O departamento pode ter diversas localizações
(2) Um departamento controla um número qualquer de projetos, cada qual com um único nome, um único número e uma única localização
09:21
Exemplo: EMPRESA
• Descrição do minimundo(3) Para cada empregado, é armazenado o CPF, endereço,
salário, sexo e data de nascimento. Um empregado está alocado a um departamento, mas pode trabalhar em diversos projetos que não são controlados, necessariamente, pelo mesmo departamento. O número de horas semanais que cada funcionário trabalha também é controlado, além do supervisor direto de cada funcionário.
(4) O banco também controla os dependentes de cada empregado para fins de seguro. Para cada dependente, é armazenado o primeiro nome, sexo, data de nascimento e o parentesco dele com o empregado.
09:22
Exemplo: EMPRESA
• Projeto conceitual
– A empresa está organizada em departamentos.
– Cada departamento possui
• Nome único
• Número único
• É gerenciado por um empregado
• A data que o empregado começou a gerenciar
• Pode ter diversas localizações
09:22
DEPARTAMENTONome, Numero, Gerente, DataInicioGerencia, {Localizacoes}
Exemplo: EMPRESA
• Projeto conceitual
• Um departamento controla um número qualquer de projetos
• Cada projeto contém
– Nome único
– Número único
– Localização única
09:23
PROJETONome, Numero, Localizacao, DepartamentoControle
Exemplo: EMPRESA
• Projeto conceitual
– Para cada empregado
• Nome, CPF, endereço, salário, sexo, data de nascimento, numero de horas semanais, supervisor direto
• Um empregado está alocado a um departamento, mas pode trabalhar em diversos projetos que não são controlados, necessariamente, pelo mesmo departamento
09:24
EMPREGADONome (Pnome, InicialM, UnNome), CPF, endereco, salario, sexo,
DataNascimento, Departamento, Supervisor, {TrabalhaEm(Projeto, Horas)}
Exemplo: EMPRESA
• Projeto conceitual
• Para cada dependente
– Primeiro nome, sexo, data de nascimento e o parentesco dele com o empregado
09:25
DEPENDENTENomeDependente, Sexo, DataNascimento, Parentesco, Empregado
Diagrama E-R
• Entidades:
• Entidades fracas:
• Atributo:
09:26
EMPREGADODEPARTAMENTO PROJETO
DEPENDENTE
Nome Localização
Diagrama E-R
• Atributo chave:
• Atribuo multi-valorado:
• Atributo composto:
• Atributo derivado:
09:28
CPF Número
Telefone
Endereço
Rua
Número
Bairro
Idade NroEmpregados
Tipos de Relacionamento
• No exemplo há diferentes relacionamentos implícitos
09:29
DEPARTAMENTONome, Numero, Gerente, DataInicioGerencia, {Localizacoes}
PROJETONome, Numero, Localizacao, DepartamentoControle
EMPREGADONome (Pnome, InicialM, UnNome), CPF, endereco, salario, sexo,
DataNascimento, Departamento, Supervisor, {TrabalhaEm(Projeto, Horas)}
DEPENDENTENomeDependente, Sexo, DataNascimento, Parentesco, Empregado
Tipos de Relacionamentos
• No modelo ER estas referências são representadas por relacionamentos
– Referências não são representadas como atributos
– Representados como LOSANGO
09:31
TRABALHA_PARA
Grau de um relacionamento
• Número de entidades que participam desse relacionamento
– Um EMPREGADO TRABALHA_PARA DEPARTAMENTO: grau 2
• Binário
09:31
EMPREGADO DEPARTAMENTOTRABALHA_PARA
Grau de um relacionamento
• Número de entidades que participam desse relacionamento
– Um EMPREGADO TRABALHA_PARA DEPARTAMENTO: grau 2
• Ternário
09:33
FORNECEDOR PROJETOFORNECE
PEÇA
Relacionamento Recursivo
• Nome de papel
– Significa o papel que uma entidade realiza em um relacionamento
– Relacionamento TRABALHA_PARA
• EMPREGADO é empregado
– Relacionamento SUPERVISÃO
• EMPREGADO é supervisor
09:34
EMPREGADO SUPERVISÃO
supervisor
supervisionado
Razões de Cardinalidade
• Relacionamentos binários
• Especifica o número máximo de instâncias de relacionamento em que uma entidade pode participar
• TRABALHA_PARA
– DEPARTAMENTO e EMPREGADO
– 1:N
09:34
Razões de Cardinalidade
• Tipos de relacionamentos binários
– 1:1 (GERENCIA)
– 1:N
– N:1
– M:N (TRABALHA_PARA: EMPREGADO e PROJETO)
09:35
Razões de Cardinalidade
• Tipos de relacionamentos binários
– 1:1 (GERENCIA)
– 1:N
– N:1
– M:N (TRABALHA_PARA: EMPREGADO e PROJETO)
09:36
e1
e2
e3
e4
d1
d2
d3
d4
EMPREGADO DEPARTAMENTO
r1
r2
r3
r4
GERENCIA
.
.
.
.
.
.
.
.
.
Razões de Cardinalidade
• Tipos de relacionamentos binários
– 1:1 (GERENCIA)
– 1:N
– N:1
– M:N (TRABALHA_PARA: EMPREGADO e PROJETO)
09:36
e1
e2
e3
e4
p1
p2
p3
p4
EMPREGADO PROJETO
r1
r2
r3
r4
TRABALHA_EM
.
.
.
.
.
.
.
.
.
Razões de Cardinalidade
09:37
EMPREGADO TRABALHA_PARAN
DEPARTAMENTO1
EMPREGADO TRABALHA_PARA(1,N)
DEPARTAMENTO(1,1)
Razões de Cardinalidade
• Restrições de participação
– Determina se a existência de uma entidade depende de seu relacionamento com outra entidade
– Determina o mínimo de instâncias de relacionamento
• Restrição de cardinalidade mínima
09:38
Razões de Cardinalidade
• Tipos de restrições de participação– Total: toda e qualquer entidade de um conjunto
entidade específico deve estar relacionada a outra
– Conhecida como dependência de existência• Exemplo: todo EMPREGADO deve trabalhar para um
DEPARTAMENTO (TRABALHA_PARA)
– Parcial: algumas entidades de um conjunto entidade específico está relacionada com a outra• Exemplo: um EMPREGADO gerencia ou não um
DEPARTAMENTO
09:38
Razões de Cardinalidade
• Tipos de restrições de participação
– Participação total no DER
– Participação parcial no DER
09:38
TRABALHA_PARAEMPREGADO DEPARTAMENTO
GERENCIAEMPREGADO DEPARTAMENTO
Entidade fraca
• Entidade fraca sempre possui uma restrição de participação total em relação ao seu relacionamento identificador
– Relacionamento identificador: relacionamento da entidade fraca com a forte
– O contrário é inválido
• Exemplo: CARTEIRA_HABILITAÇÃO depende de PESSOA mas possui o atributo-chave NUMERAÇÃO
09:39
Entidade fraca
CPF Nome DataNasc Sexo Salario
123456 José 01/01/80 M 2.000,00
654321 Maria 01/01/79 F 2.500,00
09:40
Nome DataNasc Sexo Parentesco CPF_Empregado
João 01/01/00 M Filho 123456
João 01/01/00 M Filho 654321
Manoel 01/02/02 M Filho 123456
EMPREGADO
DEPENDENTE
Entidade fraca
• Chave parcial
– Conjunto de atributos que identifica, de modo exclusivo, as entidades fracas que estão relacionadas a uma mesma proprietária
– Exemplo: nenhum dependente da mesma entidade forte pode ter o mesmo nome
• Nome de DEPENDENTE será chave parcial
• É comum que chave parcial de entidades fracas seja composta
09:40
Entidade fraca
• No DER
– O relacionamento e a ligação são representados pela borda dupla
09:40
DEPENDENTE_DEDEPENDENTE EMPREGADO
Atributos de relacionamentos• Relacionamento TRABALHA_EM
– Atributo horas
• Relacionamento GERENCIA– Atributo dataInicio
• 1:1- atributo pode ser representado em qualquer uma das entidades
• 1:N- atributo pode ser representado na entidad“1”
• M:N- atributo deve ser atributo de relacionamento
09:40
Demais convenções DER
• Análise de requisitos– Normalmente, substantivos geram entidades e
verbos geram relacionamentos– Atributos surgem de substantivos adicionais que são
utilizados para descrever outros substantivos
• Nomes de cada entidade no singular• Letras maiúsculas para tipos de entidade e
relacionamento• Relacionamentos nomeados de forma que facilite
leitura da direita para esquerda e de cima para baixo
09:43