Introdução a banco de dados à modelagem e

5.479 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
5.479
No SlideShare
0
A partir de incorporações
0
Número de incorporações
27
Ações
Compartilhamentos
0
Downloads
162
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Introdução a banco de dados à modelagem e

  1. 1. BANCO DE DADOS Rilmar Gomes
  2. 2.  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
  3. 3.  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
  4. 4.  “É uma coleção de dados inter-relacionados, 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ários/aplicação  Pode ter qualquer tamanho/complexidade
  5. 5. Mundo Real SoluçãoModelo é a representação abstrata e simplificada de umadeterminada realidade. É um conjunto de conceitos paradescrever os dados, de restrições e relacionamento entreesses dados.
  6. 6. É um conjunto de registros dispostos em estrutura regular quepossibilita a reorganização dos mesmos e produçãode informação.Um banco de dados normalmente agrupa registros utilizáveispara um mesmo fim.Um banco de dados é usualmente mantido e acessado por meiode um software conhecido como Sistema Gerenciador de Bancode Dados (SGBD).Normalmente um SGBD adota um modelo de dados, de formapura, reduzida ou estendida. Muitas vezes o termo banco dedados é usado, de forma errônea, como sinônimo de SGDB.
  7. 7. Os sistemas de gestão de banco de dados possuemcaracterísticas especiais para o armazenamento, classificação,gestão da integridade e recuperação dos dados.Com a evolução de padrões de conectividade entre as tabelas deum banco de dados e programas desenvolvidos em linguagenscomo Java, Delphi, Visual Basic, C++ etc.Como hoje em dia a maioria das linguagens de programaçãofazem ligações a bancos de dados, a apresentação destes temficado cada vez mais a critério dos meios de programação,fazendo com que os bancos de dados deixem de restringir-se àspesquisas básicas, dando lugar ao compartilhamento, em temporeal, de informações, mecanismos de busca inteligentes epermissividade de acesso hierarquizada.
  8. 8.  Sistema Gerenciador de Bancos de Dados (SGBD):Software construıdo para facilitar as atividades de definição,construção e manipulação de bancos de dados;Consistem em uma coleção de dados inter-relacionadose de um conjunto de programaspara acessá-losSistema de Bancos de Dados: Banco de Dados + Softwareque o manipula
  9. 9. Prover um ambiente que seja conveniente e eficiente para recuperar earmazenar informações de Bancos de Dados.Eliminar ou Reduzir Redundância e inconsistência de dados Dificuldade no acesso aos dados Isolamento dos dados Anomalias de acesso concorrente Problemas de segurançaAbstração de dadosSimplifica a interação do usuário com o Sistema
  10. 10. Fucapi
  11. 11. 1.Controle de Redundancia;2. Compartilhamento de Dados;3. Controle de Acesso aos Dados;4. Multiplas Interfaces;5. Representação de associacoes complexas;6. Garantia de restrições de Integridade;7. Recuperação de falhas
  12. 12. Modelo de Entidade do Modelo do clienteModelo dosistema namente docliente Representação Tabular do modelo Server de entidade Tabelas no disco
  13. 13. Mundo RealModelo Entidade Relacionamento Nível Conceitual Modelo Relacional-Objeto Relacional nível lógico nível físico
  14. 14.  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
  15. 15.  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. Fucapi
  16. 16. Atributo supervisor DataIni Relacionamento gerenciar 1 N 1 1 número N 1 número endereço FUNCIONÁRIO trabalhar DEPARTAMENTO nome nome N 1 1 salário localização participar controlar possuir horas N número N N PROJETO nome nome DataNiver DEPENDENTE parentesco Entidade Fucapi
  17. 17. Entidade Entidade Fraca Relacionamento Relacionamento Identificador Atributo Atributo Identificadorz Atributo Multivalorado Fucapi
  18. 18. ... Atributo Composto Atributo Derivado Participação total de E2 em RE1 R E2 Ex: Agência e Conta Corrente 1 N Cardinalidade 1:N para E1:E2 em RE1 R E2 (min,max) E2 Constraint (min,max) de E em RE1 R Fucapi
  19. 19. código descrição GENERO nome código endereço 1,1salário4,N FUNCIONARIO 1,N classifica 1,1 código nome código principal nome 0,N supervisor 2,N 1,N ATOR possui FILME qtde fitas 1,1 código descrição preço 1,1 STATUS possui CLIENTE dt prev ret valor pago dt aluguel * multa 1,N condição possui 1,N aluguel FITA código dt retorno 1,N valor 0,N previsto CLIENTE código nome endereço Fucapi
  20. 20.  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 Fucapi
  21. 21.  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 Fucapi
  22. 22. DEPENDENTES(FRACAS) ▪ 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 Fucapi
  23. 23. Entidade Dependente Nome IdFunc Endereço Nome Salário 1 N Funcionário Tem Dependente IdDepto Nome P-20 1 Trabalho Departamento EntidadeIndependente Fucapi
  24. 24.  Atributo- serve para qualificar a entidade  Simples  Multivalorado  Determinante ou Identificador  Composto  Derivado ou Calculado Fucapi
  25. 25.  Simples  só pode assumir um único valor elementar  Exemplo: Nome, Idade, Data de Nascimento Notação Rua Nome Idade Num CEP Fone PESSOAS Endereço Fucapi
  26. 26.  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. Fucapi
  27. 27.  Multivalorado  só pode assumir mais de uma valor  Exemplo: Fones Notação Rua Nome Num Idade Fones CEP PESSOAS Endereço Fucapi
  28. 28.  Determinante  Identifica unicamente uma entidade da outra  Lembra o conceito de Chave Notação Rua Num Nome Idade Fones CEP Código PESSOAS Endereço Fucapi
  29. 29.  Determinante  Identifica unicamente uma entidade da outra  Lembra o conceito de Chave Notação Fones Rua Num Nome Idade CEP CPF PESSOAS Endereço IdPessoa Fucapi
  30. 30.  Composto  Pode ser dividido em sub atributos  Exemplo: Endereço Notação Nome Idade Rua Num Fones CEP Código PESSOAS Endereço Fucapi
  31. 31.  Derivado ou Calculado  Seu valor é gerado a partir do valor de outro atributo  Exemplo: Data de Nascimento e Idade Notação DataNasc Nome Idade Sexo * PACIENTES Fucapi
  32. 32.  RELACIONAMENTO  É uma ligação entre duas ou mais entidades  É representado por um losango xx RESTRIÇÕES ▪ Não se pode repetir nomes de relacionamentos ▪ O relacionamento deve ligar, no mínimo, duas entidades Fucapi
  33. 33.  DEPENDENTES (FORTES)  o conceito de entidade dependente e independente é reforçado pelo tipo de relacionamento  quando se quer que uma entidade se torne dependente, cria-se um relacionamento identificador INDEPENDENTES (FRACOS) ▪ Conecta entidades fortes e fracas Fucapi
  34. 34. Entidade EntidadeIndependente Dependente Identificador Nome Código Endereço Nome Salário Código 1 N 1 Funcionário É de possui Tem Dependente N N ÉC om po sto Supervisor de Código Nome Trabalha no 1 Trabalho Departamento Não Identificador Papel do Relacionamento Fucapi
  35. 35. CARDINALIDADE 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 Fucapi
  36. 36. CARDINALIDADE 1:1 Médicos Especialidades 1:1 M1 E1 M2 E2 M3 E3 . . . . . . Mn En 1 1 MÉDICOS possuem ESPECIALIDADES Fucapi
  37. 37. CARDINALIDADE 1:N Médicos Especialidades 1:N E1 M1 E2 M2 M3 E3 . . E4 . . Mn . . En N 1 MÉDICOS possuem ESPECIALIDADES Fucapi
  38. 38. CARDINALIDADE 1:N Médicos Pacientes N:N P1 M1 P2 M2 P3 M3 P4 M4 . . . . . . Pn Mn N N MÉDICOS consultas PACIENTES (0,1) (1,N) MÉDICOS possuem ESPECIALIDADES Fucapi
  39. 39. PARTICIPAÇÃO DO RELACIONAMENTO • É 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) Fucapi
  40. 40.  Situação em que uma entidade se relaciona com outra do mesmo conjunto Nome Código Endereço Salário 1 N Funcionário Supervisionado Supervisor Supervisão Fucapi
  41. 41. É dado pelo total de entidades envolvidas no relacionamento• Binário, ternário, etc. N N MÉDICOS consultas PACIENTES N N VENDEDORES vendas PRODUTOS N CLIENTES Fucapi
  42. 42. • É definido pela regra de negócio N NVENDEDORES vendas PRODUTOS N N N N vendem CLIENTES compram N N VENDEDORES vendas PRODUTOS N CLIENTES Fucapi
  43. 43. AGREGAÇÃO N N MÉDICOS consultas PACIENTES• Supondo que um médico faz consultas a pacientes. Fucapi
  44. 44. AGREGAÇÃO N N MÉDICOS consultas PACIENTES N N N N solicita EXAMES faz• Supondo também que nessas consultas o médico podefazer solicitações de exames.• Vários binários = inconsistência Fucapi
  45. 45. AGREGAÇÃO N N MÉDICOS consultas PACIENTES N EXAMES• O ternário obriga que em toda consulta o médicosolicite um exame. Fucapi
  46. 46. AGREGAÇÃO N N MÉDICOS consultas PACIENTES N solicita N EXAMES• O MER não permite relacionamento entre relacionamento Fucapi
  47. 47. AGREGAÇÃO• O melhor modo para representar a situação anterior éusando a agregação.• Na agregação não existe obrigatoriedade na entrevistapara encaminhar um candidato a um cargo Fucapi
  48. 48. AGREGAÇÃO• A agregação é a abstração que transforma umrelacionamento em uma entidade;• Evita inconsistências• Só pode ser em relacionamentos de cardinalidade N:N• Não possui atributos Fucapi
  49. 49. AGREGAÇÃO N NMÉDICOS consultas PACIENTES N N N solicitações MÉDICOS consultas PACIENTES N N EXAMES solicitações N EXAMES Fucapi
  50. 50. A Clínica Salva Vidas, atua na área de saúde disponibilizando à sua clientela serviçosmédicos de consultas e realização de exames. Para melhor atender seus clientes, a clínica deseja informatizar seus serviços deforma a gerar controle sobre os agendamentos e realização de consultas, solicitação erealizaçã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 deve-se armazenar o nome, endereço, fones (residencial,celular e contato). Para se consultar o paciente pode agendar a data e hora da consulta e onome do médico. Durante uma consulta o médico captura e repassa ao sistema os sintomasdo paciente e o diagnóstico e ao final desta, ele pode fazer a solicitação de um exame, paraque o paciente faça. É necessário que o sistema mantenha o controle sobre qual médicosolicitou 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ínicanão interessa em qual clínica foi feito o exame, bastando apenas a informação se foi feito ounão na mesma. Sobre a realização do exame deve-se guardar a data da realização e oresultado. Um outro ponto importante, é que o paciente pode ter uma consulta de retorno etal 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. Fucapi
  51. 51. HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO• É a forma de agrupar um conjunto de entidades quecompartilham características comuns. IdTitulação Descrição IdPessoa Nome Endereço TITULAÇÕES PESSOAS CPF CGC DtaNasc NomeFantasia PESSOAS PESSOAS FÍSICAS JURÍDICAS ESPECIALISTA MESTRE Fucapi
  52. 52. HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO• É a forma de agrupar um conjunto de entidades quecompartilham características comuns. IdTitulação Descrição IdPessoa Nome Diagnóstico PESSOAS TITULAÇÕES CPF CGC DtaNasc NomeFantasia PESSOAS PESSOAS FÍSICAS JURÍDICAS ESPECIALISTA MESTRE Fucapi
  53. 53. HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO• É a forma de agrupar um conjunto de entidades que compartilhamcaracterísticas comuns. Restrições:d: mutuamente exclusivo - quando uma instância da entidadegeneralização só pode estar em uma entidade de especialização o: sobrepostos - quando uma instância da entidade generalização podeestar em duas ou mais entidade de especialização total: cada entidade da generalização deve pertencer a pelo menos umaentidade de especialização parcial: cada entidade da generalização pode ou não pertencer a umaentidade de especialização Fucapi
  54. 54. 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 Fucapi
  55. 55. Uma empresa de TV à cabo necessita informatizar alguns dos seus serviçosde forma a atender as seguintes necessidades: O sistema deverá controlar ocadastro dos clientes, pacotes (família, adulto, infantil, cinema, etc), daprogramação (filmes, horários, etc) e do pagamento de mensalidades.Cada pacote possui um preço e o cliente pode escolher uma combinaçãodos mesmos, podendo mais tarde adicionar mais pacotes se assim o desejar.O valor de sua mensalidade corresponde ao valor total dos pacotes e seuvencimento 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 docabo, 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). Aprogramação é composta de todos os filmes que serão exibidos, além deseus horários e datas de exibição. Vale ressaltar que, um filme pode serexibido em mais de um horário e em várias datas diferentes. Fucapi
  56. 56. Uma empresa de TV à cabo necessita informatizar alguns dos seus serviçosde forma a atender as seguintes necessidades: O sistema deverá controlar ocadastro dos clientes, pacotes (família, adulto, infantil, cinema, etc), daprogramação (filmes, horários, etc) e do pagamento de mensalidades.Cada pacote possui um preço e o cliente pode escolher uma combinaçãodos mesmos, podendo mais tarde adicionar mais pacotes se assim o desejar.O valor de sua mensalidade corresponde ao valor total dos pacotes e seuvencimento 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 docabo, 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). Aprogramação é composta de todos os filmes que serão exibidos, além deseus horários e datas de exibição. Vale ressaltar que, um filme pode serexibido em mais de um horário e em várias datas diferentes. Fucapi
  57. 57. Uma loja de CDs deseja informatizar suas transações de venda e de aluguel de títulos, mantendo cadastros atualizados declientes, 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 juntamentecom a data em que houve a transação (data de venda e data de locação, respectivamente). Somente para a locação, osistema deverá também armazenar a data prevista para a devolução do titulo alugado (data de devolução). É de interesseda loja, saber, através das informações armazenadas na base de dados, que balconista vendeu ou alugou determinado titulopara qual cliente.Eventualmente, um cliente também pode solicitar a encomenda de um CD que não esteja disponível naloja. 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). Noteque 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 o(s) pedido(s) do cliente seja(m) atendido(s).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 edos 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 deunidades vendidas no ato da transação e a sua quantidade, remanescente no estoque, são informaçõesimportantíssimas, além do que, no caso de um título disponível exclusivamente para locação, a sua vendanão é permitida e vice-versa. Fucapi

×