Classes e Banco de Dados FEMA - IMESA Engenharia de Software I Introdução a Banco de Dados Os dados referentes à aplicação são organizados em estruturas que podem ter relacionamentos independentes do(s) sistema(s) que o(s) utiliza(m). Uma base de dados é definida e modelada por: Modelo de Entidade e Relacionamento MER As tabelas armazenam dados sobre entidades (elementos) e os relacionamentos que estas tabelas podem possuir; Entidades É algo da realidade modelada onde deseja-se manter informações em uma tabela; Por exemplo, em um sistema escolar, algumas entidades podem ser os alunos, professores, horário, disciplinas e avaliações. 2
A entidade ALUO representa todos os estudantes sobre as quais se deseja manter informações no BD. As tabelas são divididas em linhas e colunas: as colunas de cada tabela temos os campos correspondentes a cada elemento de um sistema; O conjunto de campos são chamados de registros. 3 Diagrama Entidade - Relacionamento Planejamento Definição de Requisitos Análise Projeto Implementação Testes e Homologação Diagrama Entidade Relacionamento Fase que utiliza 4 2
Exemplo Estrutura de uma tabela de Banco de Dados Primeiro campo Último campo Registro Registro 2 Registro Campo Campo 2 Campo 3... Campo Info Info Info Info Info Info2 Info2 Info2 Info2 Info2............... Info Info Info Info Info 5 Unicidade: Uma Tabela não pode ter registros duplicados. Unicidade requer a existência de ao menos um campo que garanta que não ocorram registros duplicados; Chave Primária (Primary Key): É o campo que identifica o registro de forma única. Pode conter um ou mais campos (chave primária composta). 6 3
Exemplo 2 Matrícula: é uma chave composta. ID Ano Série Cod ome 08 2 42 João 2 08 2 422 José 3 07 42 Maria 7 O correto é utilizar um identificador automático e numérico. O processador processa apenas código numérico. Quando passamos um código do tipo string ele converterá este código string para numérico o que acarreta mais tempo de processamento. Chave Estrangeira (Foreign Key): É uma chave primária de outra tabela. Suponha que exista as tabelas A e B, e que exista um relacionamento exclusivo (somente entre elas) entre estas duas tabelas. Imagine que na tabela B existe um campo definido como chave estrangeira. Portanto este campo que é chave estrangeira em B, é chave primária na tabela A. Pagamento Id Cod_Cli Valor 45 0,00 2 50 5,00 Cliente Id Cod_Cli ome 45 João 2 50 Maria 3 80 José 4 20 Clara 8 Chave estrangeira 4
Relacionamento Def.: Um relacionamento pode ser entendido como uma associação entre instâncias de Entidades devido a regras de negócio. Def.2: É um conjunto de associações entre entidades. ormalmente ocorre entre instâncias de duas ou mais Entidades, podendo ocorrer entre instâncias da mesma Entidade (auto-relacionamento). 9 Entidade A entidade é representada por um retângulo, que contém o nome da entidade. otação: Aluno Produto A entidade ALUO representa todos os estudantes sobre os quais se deseja manter informações no BD. 0 5
Relacionamento entre Entidades O relacionamento é representado por um losango. Esse losango é ligado por linhas aos retângulos que representam as entidades participantes do relacionamento. O exemplo possui duas entidades, MÉDICO e PACIETE, e um relacionamento chamado COSULTA. Médico Consulta Paciente O BD mantém informações sobre médicos, pacientes, além de um conjunto de associações (consulta). Quando é necessário especificar um relacionamento particular (determinada consulta) usase o termo ocorrência do relacionamento. Uma ocorrência de consulta envolve a ocorrência de determinado médico e a ocorrência de determinado paciente. Cardinalidade Para definir o número de ocorrências de uma entidade usamos o conceito de Cardinalidade. A Cardinalidade indica quantas ocorrências de uma Entidade participam no mínimo e no máximo do relacionamento. Cidade Possui UF Médico Consulta Paciente 2 6
Cardinalidade Empregado Possui Dependente Pagamento Tem Cliente 3 Cardinalidade Cliente Celebra Contrato Um Cliente celebra UM ou MUITOS Contratos. Um Contrato é celebrado por UM ou por MUITOS Clientes. A cardinalidade de para leva o modelo lógico a necessidade de definição de mais uma entidade. Chamamos esta situação de ASSOCIATIVA. 4 7
Cardinalidade Cliente Cliente_Contrato Contrato A Entidade CLIETE_COTRATO é necessária para que possamos identificar o Contrato de um determinado Cliente. Em toda Cardinalidade para devemos criar a entidade ASSOCIATIVA. 5 Exercício Elabore o Diagrama Entidade-Relacionamento para a seguinte situação: Funcionário: Matrícula do Funcionário ome do Funcionário Data de ascimento Dependente Código do Dependente ome do Dependente Curso Código do Curso ome do Curso Ano do Curso Regras do negócio: Um funcionário pode ter mais de um dependente Um funcionário pode fazer mais de um curso 6 8
Resolução Funcionário Dependente Func_Curso Curso Funcionário úmero Matrícula Dependente Código Dependente Func_Curso Código Curso Curso Código Curso ome úmero Matrícula úmero Matrícula Texto Curso Data ascimento ome Dependente Ano Formação 7 Aplicação do Modelo E-R O MER deve ser elaborado na fase de Projeto, após da definição do Diagrama de Classes; O MER pode ser utilizado nas fases de Projeto, Implementação e Testes. O diagrama MER não está relacionado na lista de diagramas oficiais da UML. 8 9
Tabelas de Banco de Dados x Classes Tabelas São estruturas de armazenamento de dados Os dados devem ser armazenados para que as informações possam ser geradas. Classes São representações de modelagem que instanciam objetos de diversos tipos, que são alocados em memória durante a execução de um sistema. 9 Exercício 2 Elabore o Diagrama Entidade-Relacionamento para a seguinte situação: Fornecedor: Código do Fornecedor ome do Fornecedor... Produto Código do Produto ome do Produto... Regras do negócio: Um fornecedor pode ter mais de um produto Um produto pode ser fornecido por mais de um fornecedor. 20 0
Resolução Fornecedor Pedido Produto 2 Resolução Fornecedor Pedido Produto Fornecedor Código ome... Pedido Código Fornec Código Prod Quantidade Data_Pedido Data_Entrega Forma_Pagto Produto Código ome... 22
Resolução Fornecedor Pedido Produto Fornecedor Código ome... Pedido Código Fornec Código Prod Quantidade Data_Pedido Data_Entrega Forma_Pagto Código ome... Produto Acrescente a entidade VEDEDOR. 23 Exercício 3 Construa um diagrama E-R (incluindo as cardinalidades) para controle do prontuário de pacientes de um hospital. O hospital possui um conjunto de pacientes e um conjunto de médicos. o registro dos pacientes, temos o nome, RG, CPF, endereço e telefone. o registro dos médicos temos o nome, especialidade, RG, CPF, CRM, endereço e telefone. Cada paciente tem associado a si um prontuário (sua ficha), onde são registradas basicamente todas as ocorrências, exames, consultas, medicamentos ministrados associadas a ele. Cada registro no seu prontuário, além de ter a data tem que estar relacionado a um médico, que é o responsável pela informação do registro cadastrado no sistema. 24 2
Exercício 4 Construa um diagrama E-R para uma companhia de seguros de automóveis com um conjunto de clientes, onde cada um possui certo número de carros. Os dados do cliente são nome, RG, CPF, endereço e telefone. Do carro deve-se armazenar a placa, código Renavan, fabricante, modelo, e ano. Associado a cada carro há um histórico de ocorrências. Um carro pode possuir várias ocorrências ou nenhuma. Cada ocorrência deve ter uma data, local e descrição. 25 26 3