·

Cursos Gerais ·

Estrutura de Dados

Send your question to AI and receive an answer instantly

Ask Question

Recommended for you

Preview text

Modelagem e Projeto de Banco de Dados Professor Manfrine Santos Agradecimentos a professora MSc Áurea Melo OBJETIVOS Modelagem de dados de sistemas típicos através do Modelo Entidade Relacionamento Conceitos e projeto lógico do Modelo Relacional Práticas de Modelagem e Projeto BIBLIOGRAFIA Fundamentals of Database Systems Elmasri R Navathe S Benjamin Cummings 1994 Sistemas de banco de Dados Korth H F Silberschatz A Sudarshan S Makkron Books 1999 Introdução a Sistemas de Bancos de Dados Date C J Editora Campus 2000 BANCO DE DADOS É uma coleção de dados interrelacionados representando informações sobre um domínio específico conceito geral Representa aspectos do mundo real Mudanças no mundo real são refletidas no BD É uma coleção lógica e coerente de dados com relacionamentos intrínsecos É projetado construído e mantido para uma proposta específica É direcionado a um grupo de usuáriosaplicação Pode ter qualquer tamanhocomplexidade MODELOS DE DADOS Mundo Real Solução Processo de Solução Modelo Modelo é a representação abstrata e simplificada de uma determinada realidade É um conjunto de conceitos para descrever os dados de restrições e relacionamento entre esses dados MODELOS DE DADOS Modelo do sistema na mente do cliente Modelo de Entidade do Modelo do cliente Representação Tabular do modelo de entidade Server Tabelas no disco Níveis de Abstração de BD Modelo Entidade Relacionamento Modelo RelacionalObjeto Relacional Mundo Real Nível Conceitual nível lógico nível físico Modelo de Dados XPTO Conceito Homem Casa Peixe Pássaro Homem deitado Notação Conceito Nuvem Sol Rio Notação Modelo de Dados XPTO Regras de Integridade Em dias de sol o homem sempre fica em casa e no céu há sempre pássaros Não existe rio sem peixe Sempre que está em casa o homem está em deitado Modelo de Dados XPTO Mundo Real Estava um dia ensolarado e o rio estava calmo e o homem resolveu ficar em casa Apesar de ser um dia nublado o homem foi tomar banho no rio Modelo Entidade Relacionamento MER Proporciona uma visão lógica de alto nível dos dados É uma descrição abstrata de uma porção do mundo real Todos os dados são visualizados como fatos específicos sobre entidades relacionamentos e atributos Através do MER podemos ter uma fotografia do sistema As entidades relacionamentos e atributos descrevem as regras de negócio da empresa Modelo Entidade Relacionamento MER Modelo EntidadeRelacionamento MER Original Fases do Projeto de Bases de Dados Definição e Objetivo do Modelo ER Entidades e ConjuntosEntidade Atributos e Domínio de um Atributo Relacionamentos e ConjuntosRelacionamento Projeto de Chaves Grau de um Relacionamento Restrições de Cardinalidade e Integridade Referencial Modelo Entidade Relacionamento MER Extensões e Variações do MER Agregação GeneralizaçãoEspecialização Notação Variações e Exemplos Dicas para Elaboração de Modelos ER Modelo Entidade Relacionamento MER Definição modelo baseado na percepção do mundo real que consiste em um conjunto de objetos básicos chamados entidades e nos relacionamentos entre esses objetos Objetivo facilitar o projeto de banco de dados possibilitando especificar a estrutura lógica geral Relacionamento Entidade Atributo Modelo Entidade Relacionamento MER Modelo Entidade Relacionamento Convenções Entidade Fraca Entidade Relacionamento Atributo Atributo Identificador Atributo Multivalorado Relacionamento Identificador z Modelo Entidade Relacionamento Convenções Atributo Composto Atributo Derivado Participação total de E2 em R Ex Agência e Conta Corrente E1 R E2 Cardinalidade 1N para E1E2 em R E1 R E2 1 N Constraint minmax de E em R R E2 minmax E1 código nome endereço salário FUNCIONARIO código descrição GÊNERO código nome principal ATOR código nome qtde fitas preço FILME condição código FITA código descrição STATUS CLIENTE código nome endereço CLIENTE valor pago multa dt prev ret dt aluguel dt retorno valor previsto aluguel supervisor classifica possui possui possui COMPONENTES DO MER ENTIDADE Qualquer coisa para a qual desejamos guardar informação Conjunto de objetos individuais chamados instâncias Uma instância deve ter uma identidade distinta de todas as outras TIPOS DE ENTIDADES INDEPENDENTES FORTES entidade que existe por si só NOTAÇÃO retângulo RESTRIÇÕES Não pode existir duas entidades no mesmo model DICA Geralmente tem mais de um atributo O nome substantivo TIPOS DE ENTIDADES DEPENDENTESFRACAS Entidades que dependem de outras para sua existência dependência por existência Entidades que dependem de outras para sua identificação dependência por identificação NOTAÇÃO Retângulo duplo RESTRIÇÕES Só existe enquanto a entidade forte existir Entidades Fortes e Fracas Entidade Independente Entidade Dependente MER Atributos Atributo serve para qualificar a entidade Simples Multivalorado Determinante ou Identificador Composto Derivado ou Calculado MER Atributos Simples só pode assumir um único valor elementar Exemplo Nome Idade Data de Nascimento Notação Idade Num Rua CEP Endereço Fone Nome PESSOAS MER Atributos REGRAS Começar o nome do atributo com uma inicial maiúscula e estar no singular Distinção entre conjunto de entidades e atributo Exemplo AUTOR para livro de uma biblioteca AUTOR para uma editora Se um conjunto de entidades tem um único atributo provavelmente aquele conjunto é atributo de um outro conjunto de entidades Cada atributo deve ocorrer uma única vez em apenas um conjunto de entidades Desconfiar da modelagem de um conjunto de entidades que tem um só atributo Provavelmente ele é um atributo de outro conjunto MER Atributos Multivalorado só pode assumir mais de uma valor Exemplo Fones Notação Idade Num Rua CEP Endereço Nome Fones PESSOAS MER Atributos Determinante Identifica unicamente uma entidade da outra Lembra o conceito de Chave Notação Idade Num Rua CEP Endereço Nome Fones PESSOAS Código MER Atributos Determinante Identifica unicamente uma entidade da outra Lembra o conceito de Chave Notação Fones Idade Num Rua CEP Endereço Nome PESSOAS CPF IdPessoa MER Atributos Composto Pode ser dividido em sub atributos Exemplo Endereço Notação Idade Num Rua CEP Endereço Nome Fones PESSOAS Código MER Atributos Derivado ou Calculado Seu valor é gerado a partir do valor de outro atributo Exemplo Data de Nascimento e Idade Notação PósGraduação em Projeto e Administração de Banco de Dados2006 COMPONENTES DO MER RELACIONAMENTO É uma ligação entre duas ou mais entidades É representado por um losango RESTRIÇÕES Não se pode repetir nomes de relacionamentos O relacionamento deve ligar no mínimo duas entidades PósGraduação em Projeto e Administração de Banco de Dados2006 TIPOS DE RELACIONAMENTOS DEPENDENTES FORTES o conceito de entidade dependente e independente é reforçado pelo tipo de relacionamento quando se quer que uma entidade se torne dependente criase um relacionamento identificador INDEPENDENTES FRACOS Conecta entidades fortes e fracas PósGraduação em Projeto e Administração de Banco de Dados2006 Relacionamento Fraco e Forte Entidade Independente Identificador Entidade Dependente Não Identificador Papel do Relacionamento É a propriedade do relacionamento que define exatamente com quantas instâncias uma entidade de um conjunto pode se relacionar com outras entidades de outro conjunto PODE SER um para um um para muitos e muitos para muitos CARDINALIDADE DO RELACIONAMENTO PósGraduação em Projeto e Administração de Banco de Dados2006 CARDINALIDADE 11 PósGraduação em Projeto e Administração de Banco de Dados2006 CARDINALIDADE 1N PósGraduação em Projeto e Administração de Banco de Dados2006 CARDINALIDADE NN PósGraduação em Projeto e Administração de Banco de Dados2006 É a propriedade do relacionamento que define a obrigatoriedade ou não de uma entidade participar se relacionar de um relacionamento Pode ser total obrigatória ou parcial opcional PARTICIPAÇÃO DO RELACIONAMENTO PósGraduação em Projeto e Administração de Banco de Dados2006 PARTICIPAÇÃO DO RELACIONAMENTO TOTAL e PARCIAL PósGraduação em Projeto e Administração de Banco de Dados2006 AUTO RELACIONAMENTO Situação em que uma entidade se relaciona com outra do mesmo conjunto PósGraduação em Projeto e Administração de Banco de Dados2006 Grau do Relacionamento É dado pelo total de entidades envolvidas no relacionamento Binário ternário etc PósGraduação em Projeto e Administração de Banco de Dados2006 RELACIONAMENTO nÁRIOS É definido pela regra de negócio PósGraduação em Projeto e Administração de Banco de Dados2006 AGREGAÇÃO Supondo que um médico faz consultas a pacientes PósGraduação em Projeto e Administração de Banco de Dados2006 AGREGAÇÃO Supondo também que nessas consultas o médico pode fazer solicitações de exames Vários binários inconsistência PósGraduação em Projeto e Administração de Banco de Dados2006 AGREGAÇÃO O ternário obriga que em toda consulta o médico solicite um exame PósGraduação em Projeto e Administração de Banco de Dados2006 AGREGAÇÃO O MER não permite relacionamento entre relacionamento PósGraduação em Projeto e Administração de Banco de Dados2006 O melhor modo para representar a situação anterior é usando a agregação Na agregação não existe obrigatoriedade na entrevista para encaminhar um candidato a um cargo AGREGAÇÃO PósGraduação em Projeto e Administração de Banco de Dados2006 AGREGAÇÃO A agregação é a abstração que transforma um relacionamento em uma entidade Evita inconsistências Só pode ser em relacionamentos de cardinalidade NN Não possui atributos PósGraduação em Projeto e Administração de Banco de Dados2006 AGREGAÇÃO PósGraduação em Projeto e Administração de Banco de Dados2006 A Clínica Salva Vidas atua na área de saúde disponibilizando à sua clientela serviços médicos de consultas e realização de exames Para melhor atender seus clientes a clínica deseja informatizar seus serviços de forma a gerar controle sobre os agendamentos e realização de consultas solicitação e realização de exames Para isso é necessário cadastrar os dados sobre os pacientes exames médicos especialidades dos médicos e funcionários entre outros Sobre os médicos é necessário que o sistema armazene o CRM nome endereço fones residencial e celular e as especialidades em que atua oftalmologista ortopedista etc Cada especialidade também pode ter mais de um médico atuando Sobre os pacientes devese armazenar o nome endereço fones residencial celular e contato Para se consultar o paciente pode agendar a data e hora da consulta e o nome do médico Durante uma consulta o médico captura e repassa ao sistema os sintomas do paciente e o diagnóstico e ao final desta ele pode fazer a solicitação de um exame para que o paciente faça É necessário que o sistema mantenha o controle sobre qual médico solicitou e qual realizou o exame já que o médico que realiza não é o mesmo que solicita Além disso o paciente pode fazer o exame em outras clínicas Nesses casos para a clínica não interessa em qual clínica foi feito o exame bastando apenas a informação se foi feito ou não na mesma Sobre a realização do exame devese guardar a data da realização e o resultado Um outro ponto importante é que o paciente pode ter uma consulta de retorno e tal fato também deve ser controlado pelo sistema Com base nas informações descritas faça a modelagem de dados para o sistema Se necessário complemente ou incremente a descrição PósGraduação em Projeto e Administração de Banco de Dados2006 É a forma de agrupar um conjunto de entidades que compartilham características comuns HERANÇA GENERALIZAÇÃO E ESPECIALIZAÇÃO PósGraduação em Projeto e Administração de Banco de Dados2006 É a forma de agrupar um conjunto de entidades que compartilham características comuns HERANÇA GENERALIZAÇÃO E ESPECIALIZAÇÃO PósGraduação em Projeto e Administração de Banco de Dados2006 É a forma de agrupar um conjunto de entidades que compartilham características comuns Restrições d mutuamente exclusivo quando uma instância da entidade generalização só pode estar em uma entidade de especialização o sobrepostos quando uma instância da entidade generalização pode estar em duas ou mais entidade de especialização total cada entidade da generalização deve pertencer a pelo menos uma entidade de especialização parcial cada entidade da generalização pode ou não pertencer a uma entidade de especialização HERANÇA GENERALIZAÇÃO E ESPECIALIZAÇÃO PósGraduação em Projeto e Administração de Banco de Dados2006 HERANÇA GENERALIZAÇÃO E ESPECIALIZAÇÃO Especialização Generalização Total PósGraduação em Projeto e Administração de Banco de Dados2006 HERANÇA GENERALIZAÇÃO E ESPECIALIZAÇÃO Especialização Generalização Parcial PósGraduação em Projeto e Administração de Banco de Dados2006 HERANÇA GENERALIZAÇÃO E ESPECIALIZAÇÃO FUNCIONARI O nom e códi go ende reço sex o CONSULTOR hora s tx hora tipo especialização generalização mostra a direção do relacionamento superclassesubclasse PósGraduação em Projeto e Administração de Banco de Dados2006 METODOLOGIA PARA PROJETO DE BANCO DE DADOS Requerimentos e análise Projeto conceitual do banco de dados Escolha de um SGBD Mapeamento do modelo de dados Projeto físico do banco de dados Implementação e configuração do banco de dados PósGraduação em Projeto e Administração de Banco de Dados2006 Exercícios Uma empresa de TV à cabo necessita informatizar alguns dos seus serviços de forma a atender as seguintes necessidades O sistema deverá controlar o cadastro dos clientes pacotes família adulto infantil cinema etc da programação filmes horários etc e do pagamento de mensalidades Cada pacote possui um preço e o cliente pode escolher uma combinação dos mesmos podendo mais tarde adicionar mais pacotes se assim o desejar O valor de sua mensalidade corresponde ao valor total dos pacotes e seu vencimento será todos os meses no dia em que comprou o primeiro pacote O cliente poderá também escolher a quantidade de tvs para instalação do cabo e a cada 2 tvs ele paga um adicional em sua mensalidade Cada pacote possui um conjunto de canais exclusivos Um canal é identificado por um número e seu nome 33 HBO2 por exemplo A programação é composta de todos os filmes que serão exibidos além de seus horários e datas de exibição Vale ressaltar que um filme pode ser exibido em mais de um horário e em várias datas diferentes PósGraduação em Projeto e Administração de Banco de Dados2006 Exercícios Uma empresa de TV à cabo necessita informatizar alguns dos seus serviços de forma a atender as seguintes necessidades O sistema deverá controlar o cadastro dos clientes pacotes família adulto infantil cinema etc da programação filmes horários etc e do pagamento de mensalidades Cada pacote possui um preço e o cliente pode escolher uma combinação dos mesmos podendo mais tarde adicionar mais pacotes se assim o desejar O valor de sua mensalidade corresponde ao valor total dos pacotes e seu vencimento será todos os meses no dia em que comprou o primeiro pacote O cliente poderá também escolher a quantidade de tvs para instalação do cabo e a cada 2 tvs ele paga um adicional em sua mensalidade Cada pacote possui um conjunto de canais exclusivos Um canal é identificado por um número e seu nome 33 HBO2 por exemplo A programação é composta de todos os filmes que serão exibidos além de seus horários e datas de exibição Vale ressaltar que um filme pode ser exibido em mais de um horário e em várias datas diferentes PósGraduação em Projeto e Administração de Banco de Dados2006 Exercícios Uma loja de CDs deseja informatizar suas transações de venda e de aluguel de títulos mantendo cadastros atualizados de clientes balconistas títulos dos distribuidores que os fornecem e dos gêneros musicais em que estes se classificam Entre o cliente e o balconista as vendas e locações de títulos de CD devem ser armazenadas na base de dados juntamente com a data em que houve a transação data de venda e data de locação respectivamente Somente para a locação o sistema deverá também armazenar a data prevista para a devolução do titulo alugado data de devolução É de interesse da loja saber através das informações armazenadas na base de dados que balconista vendeu ou alugou determinado titulo para qual cliente Eventualmente um cliente também pode solicitar a encomenda de um CD que não esteja disponível na loja As encomendas feitas desta forma são pedidas diretamente para o balconista mas para a loja somente é interessante saber qual cliente encomendou determinado titulo e em que data data da encomenda Note que um cliente pode encomendar vários títulos e um título pode ser encomendado por vários clientes Normalmente o processo de encomenda é seguido por uma transação de venda mas nunca de locação caso os pedidos do cliente sejam atendidos Cada título de CD é classificado somente num gênero musical pelo menos aquele gênero que predomina dentre os vários que a base de dados mantêm como disponíveis na loja Além disso cada título de CD é fornecido por apenas uma dentre as várias distribuidoras com a qual a loja obedece a contratos de revenda Para cada distribuidora é imprescindível além de outras informações o nome do vendedor intermediário e dos telefones para contato Um título pode estar disponível somente para venda ou somente para locação E não se esqueça que somente quando da disponibilidade de um CD ser para venda o seu preço unitário a quantidade de unidades vendidas no ato da transação e a sua quantidade remanescente no estoque são informações importantíssimas além do que no caso de um título disponível exclusivamente para locação a sua venda não é permitida e viceversa