Banco de Dados Aula 3 - Prof. Bruno Moreno 26/08/2011
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
Banco de Dados I PROJETO DE BD 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 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 08:56 Não incluem detalhes de implementação
Esquema geral do projeto de um BD 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 08:59
Esquema geral do projeto de um BD Diagrama E-R 09:00
Banco de Dados I CONCEITOS DE MODELAGEM 09:00
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 Endereço EnderecoRua Cidade Estado CEP 09:02 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
Banco de Dados I DIAGRAMA ENTIDADE- RELACIONAMENTO 09:20
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 09:22 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 DEPARTAMENTO Nome, 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 PROJETO Nome, Numero, Localizacao, DepartamentoControle
Exemplo: EMPRESA Projeto conceitual 09:24 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 EMPREGADO Nome (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 DEPENDENTE NomeDependente, Sexo, DataNascimento, Parentesco, Empregado 09:25
Diagrama E-R Entidades: DEPARTAMENTO Entidades fracas: EMPREGADO PROJETO Atributo: DEPENDENTE Nome Localização 09:26
Diagrama E-R Atributo chave: CPF Número Atribuo multi-valorado: Atributo composto: Telefone Rua Endereço Número Atributo derivado: Bairro Idade NroEmpregados 09:28
Tipos de Relacionamento No exemplo há diferentes relacionamentos implícitos DEPARTAMENTO Nome, Numero, Gerente, DataInicioGerencia, {Localizacoes} 09:29 PROJETO Nome, Numero, Localizacao, DepartamentoControle EMPREGADO Nome (Pnome, InicialM, UnNome), CPF, endereco, salario, sexo, DataNascimento, Departamento, Supervisor, {TrabalhaEm(Projeto, Horas)} DEPENDENTE NomeDependente, 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 TRABALHA_PARA 09:31
Grau de um relacionamento Número de entidades que participam desse relacionamento Um EMPREGADO TRABALHA_PARA DEPARTAMENTO: grau 2 Binário EMPREGADO TRABALHA_PARA DEPARTAMENTO 09:31
Grau de um relacionamento Número de entidades que participam desse relacionamento Um EMPREGADO TRABALHA_PARA DEPARTAMENTO: grau 2 Ternário FORNECEDOR FORNECE PROJETO PEÇA 09:33
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 supervisor EMPREGADO SUPERVISÃO supervisionado 09:34
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) EMPREGADO GERENCIA DEPARTAMENTO e 1 r 1 d 1 e 2 r 2 d 2 e 3 r 3 d 3 09:36 e 4... r 4... d 4...
Razões de Cardinalidade Tipos de relacionamentos binários 1:1 (GERENCIA) 1:N N:1 M:N (TRABALHA_PARA: EMPREGADO e PROJETO) EMPREGADO TRABALHA_EM PROJETO e 1 r 1 p 1 e 2 r 2 p 2 e 3 r 3 p 3 09:36 e 4... r 4... p 4...
Razões de Cardinalidade EMPREGADO N TRABALHA_PARA 1 DEPARTAMENTO EMPREGADO (1,N) TRABALHA_PARA (1,1) DEPARTAMENTO 09:37
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 EMPREGADO TRABALHA_PARA DEPARTAMENTO Participação parcial no DER EMPREGADO GERENCIA DEPARTAMENTO 09:38
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 EMPREGADO CPF Nome DataNasc Sexo Salario 123456 José 01/01/80 M 2.000,00 654321 Maria 01/01/79 F 2.500,00 DEPENDENTE 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 09:40
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 DEPENDENTE DEPENDENTE_DE EMPREGADO 09:40
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
Demais convenções DER Não são regras! 09:44
Freqüência! Aula 3 - BD - Prof. Bruno Moreno 26/08/2011