INSTITUTO FEDERAL NORTE DE MINAS GERAIS Curso Técnico em Informática Disciplina: Banco de Dados Professor: Alessandro Carneiro Ribeiro E-mail: [email protected] Aula 02 Modelo de Dados Modelo Conceitual Modelo de Implementação Entidades e Atributos Modelo de Dados: Conjunto de conceitos que descrevem a estrutura dos dados de um sistema de BD. Objetivo de um modelo de dados é representar graficamente os dados de forma padronizada para uma melhor compreensão do sistema de Banco de Dados. Para isso será usado a ferramenta DER (Diagrama Entidade Relacionamento). Neste curso vamos trabalhar com dois tipos de modelo de dados: 1. Modelo Conceitual de Banco de Dados: Representa os dados de acordo com a regra de negócio do sistema que está sendo projetado independente do software e hardware no qual o sistema será implementado. Existem diversas notações no mercado: Peter Chen, James Martin, Merise, OMT, etc. Este modelo é construído segundo uma MDS na atividade de análise de sistemas (projeto lógico do sistema). Cliente Solicita R e a lid a d e Pedido Contém Produto Exemplo: um pequeno modelo conceitual para um sistema de uma pizzaria: Cliente (Nome, Endereço, Telefone) Pedido (Numero, Valor_Total, Desconto) Produto (Descricao, Quantidade, Preco_Venda) Solicita (Data) Contém (Quantidade, Preco_Pago) 2. Modelo de implementação do Banco de Dados (modelo físico): Representa os dados na forma como será implementado, logo dependente do software e hardware no qual o sistema será implementado. Existem diversas abordagens no mercado que depende do SGBD que se está trabalhando: Relacional, Orientado a Objetos, Objeto Relacional, Hierárquica, Rede... Este modelo é construído segundo uma MDS na atividade de projeto de sistemas (projeto físico do sistema). É gerado a partir do modelo conceitual previamente construído. Ex 1: Modelo de implementação do sistema de uma pizzaria para SGBDs T a b e la s Relacionais: Ex 2: Modelo de implementação do sistema de uma pizzaria para SGBDs Orientado por Objetos: Modelo Conceitual de Banco de Dados Primeira etapa do projeto de Banco de Dados para um SI, cujo objetivo é obter uma descrição abstrata, independente da implementação do BD em computador. A ferramenta mais utilizada é o Diagrama Entidade Relacionamento (DER) ou Modelo Entidade Relacionamento (MER), criada por Peter Chen em 1976. Baseado na percepção da realidade pelo analista. Logo supõem-se já feito um bom LD. Será dado ênfase neste curso na notação de James Martin por ser mais fácil de desenhar e Ter maior abrangência de mercado atualmente (notação do pé de galinha!). <<entity>> Cliente Nome Endereco T elefone 1 <<entity>> Pedido <<entity>> Produto Valor_T otal Desconto 0..* SolicitaData Descricao Quantidade 0..* "Gerar Nota Fiscal" 1..* "Obter Clientes em Débito" Preco "Obter Pedidos do Dia" "Enviar Mala Direta" <<entity>> Item_Pedido "Obter Estoque C persistent persistent "Obter Produtos m "Atualizar Preço V Quantidade Preco persistent "Atualizar Valor T otal do Pedido" "Dar Baixa Estoque" C lasses (O b jeto s) persistent Conceitos Entidade "Objeto do sistema que está sendo modelado sobre o qual deseja-se manter alguma informação útil para o usuário". Exemplos de entidades: Sistema Pizzaria: Cliente, Produto, Caixa, Fornecedor, ... Sistema Recursos Humanos: Funcionário, Departamento, Benefício, ... Sistema universitário: Aluno, Professor, Funcionário, Disciplina, Curso, ... Sistema hospitalar: Médico, Paciente, Convênio, Exame, ... Sistema Bancário: Agência, Cliente, Tipo de Movimentação, Tipo de Aplicação, ... A existência de uma entidade (Entity) não deve depender de outro objeto do sistema: por isso também chamada Entidade Forte ou Entidade Independente. Uma entidade pode ser: Um objeto real, como um livro, uma máquina, um lugar, avião. Uma pessoa física ou jurídica como um empregado, cidadão, cliente, fornecedor, empresa. Um conceito abstrato, como um curso, uma cor, um projeto, um departamento. A representação de uma entidade no modelo conceitual (DER) é um retângulo: Cliente Produto Quando for implementada em um SGBD relacional pode ser pensada como uma tabela contendo vários registros (os objetos). Toda entidade possui atributos que a caracterizam. Estes atributos são de diversos tipos: 1. Atributos simples ou compostos: Simples: Nome_Cliente, CPF_Funcionário, Salário_Bruto, Quantidade, Descrição. Composto: Endereço [rua, número, cep, cidade, estado], Data_Nascimento [Dia, Mês, Ano]. 2. Atributos monovalorados ou multivalorados: Monovalorado: CPF, CI, Data_Nascimento, Telefone, Endereço. Multivalorado: Telefones(0,n), Cores(0,5), Endereços(0,2). 3. Atributos obrigatório ou opcional: Obrigatório: Nome_Cliente, Título_Livro, Quantidade_Estoque. Opcional: Sexo(0,1), Data_Pagamento(0,1), Salário_Líquido(0,1), CPF(0,1), Telefone(0,n). 4. Atributos derivados ou não derivados: Derivado: Saldo, Salário_Líquido, Valor_Total_Fatura, Idade. Não Derivado: Nome, Endereço, CPF, Data_Nascimento. Observação Importante: Alguns SGBDs não aceitam nome de entidades ou atributos contendo espaços em branco ou acentuação. Como forma de padronização, neste curso, as entidades e atributos não conterão espaços em branco e nem acentuação. Todos começarão com um caracter não numérico em maiúsculo, separados por undescore (_) se for o caso. Atributo Identificador: Um conjunto de um ou mais atributos cujos valores servem para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade. Também chamado de Chave Primária ou Primary Key. Pode ser um atributo artificialmente controlado pelo sistema ou usuário, ou pode ser um atributo natural. No System Architect: Medico P ri m a ry K e y CRM Cliente P ri m a ry S es s ao_Ci K ey P ri m a ry K e Cod ig o_ Cliente [PK1 ]a Numero_ S [PK 1] No ns -K e y A ttriData_S b u te s No n -K e y A ttri b u te es s a Nome Endereco Telefone Nome Endereco Telefone CPF Hora_ Inicio No n -K e y A tt Hora_ Fim Publico Notação Alternativa: N u m e r o _ S a l a C o d i g o _ C l i e n t e S e s s a o D a t a _ S e s s a o N o m e N o m e M e d i c o C l i e n t e C i n e m a H o r a _ I n i c i o E n d e r e c o E n d e r e c o ( 0 , 2 ) H o r a _ F i m T e l e f o n e T e l e f o n e ( 0 , n ) P u b l i c o ( 0 , 1 ) Notação que usaremos para atributos (para não sobrecarregar o diagrama): Medico (@CRM, Nome, Endereco, Telefone). Cliente (@Codigo_Cliente, Nome, Endereco(0,2), Telefone(0,n). Sessao_Cinema (@Numero_Sala, @Data_Sessao, @Hora_Inicio, Hora_Fim, Publico(0,1)) C R M Informalmente estaremos suprimindo a opcionalidade do atributo ou se é ou não multivalorado embora isto seja importante no modelo e em softwares CASE: Cliente (@Codigo_Cliente, Nome, Endereco, Telefone) Sessao_Cinema (@Numero_Sala, @Data_Sessao, @Hora_Inicio, Hora_Fim, Publico) Entidade Fraca "Uma entidade que depende para existir de um outra entidade do sistema". Também denominada "Weak Entity" ou "Entidade Dependente". Exemplos de entidades Fraca: Sistema Pizzaria: Pedido depende para existir de um cliente. Sistema Recursos Humanos: Contra Cheque depende de funcionário. Sistema universitário: Boleta depende de Aluno. Sistema hospitalar: Consulta depende de um cliente e de um médico. Sistema Bancário: Conta depende de um cliente. A representação de uma entidade fraca no modelo conceitual (DER) é um retângulo de bordas duplas: Dependente Conta Dependente( @Nome_Dependente, Sexo, Parentesco) Conta ( @Numero_Conta, Saldo) Exercícios de Fixação 1) 2) 3) 4) 5) 6) 7) Para que serve o modelo de dados? Diferencie modelo conceitual e modelo de implementação de um banco de dados. O que são Entidades e Atributos em um modelo de dados? Cite exemplos de Entidades e Atributos. Quais os tipo de atributos? Dê exemplos. O que é uma Entidade Fraca? Para a descrição do sistema abaixo, liste as principais entidades e atributos para o sistema: O sistema de controle para uma Pizzaria tem como finalidade dar suporte ao controle de cadastros de clientes, pedidos, entrega, estoque, fluxo de caixa (contas a pagar e a receber) e fornecedores. Ao realizar o pedido o sistema identificará se o cliente é cadastrado e fornecerá ao cliente o tempo aproximado para a entrega da pizza. Será também verificado o crédito e a forma de pagamento. Depois de confirmado o pedido e o crédito do cliente será emitido uma ordem de entrega e dado baixa no estoque para que se possam emitir ordens de compras aos fornecedores, se necessário. O sistema possuirá todo um cadastro de fornecedores com seus respectivos produtos (pizzas semiprontas, refrigerantes, cervejas, etc) para auxiliar na compra dos mesmos. O sistema emitirá relatórios semanais de fluxo de caixa para a gerência.