Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Base de dados desafio 2

3,014 views

Published on

Bases de dados
Desafio 2

Alargar as funcionalidades de uma base de dados
Luis Borges Gouveia
Maio de 2013

Published in: Education
  • Be the first to comment

Base de dados desafio 2

  1. 1. Bases  de  dados  Desafio  2  Alargar  as  funcionalidades  de  uma  base  de  dados  Luis  Borges  Gouveia  Maio  de  2013  
  2. 2. Considere  o  seguinte  contexto  •  Considere  a  necessidade  de  registo  de  uma  pequena  coleção  de  livros  associada  a  uma  biblioteca  pessoal  –  Pretende-­‐se  o  registo  de  livros,  indicando  o  respeGvo  Htulo,  isbn  e  língua  em  que  está  escrito  –  É  necessário  associar  os  respeGvos  autores,  considerando  o  seu  nome  e  nacionalidade  –  Deve  ser  igualmente  registada  a  editora  (nome)  –  Deve  ser  considerado  o  registo  de  compra,  indicando  o  livro,  o  valor  e  a  data  de  aquisição  –  Adicionalmente,  as  relações  de  quem  escreveu  o  livro  (associando  o  livro  e  o  autor),  quem  publicou  (associando  o  livro  e  a  editora)  
  3. 3. Um  modelo  E-­‐R  do  contexto  proposto  •  Consideram-­‐se:  –  quatro  enGdades:  editora,  livro,  autor  e  compra  –  Três  relações  binárias:  publicado,  escrito  e  pago  •  Publicado:  uma  editora  publica  vários  livros  e  um  livro  é  publicado  por  várias  editoras  •  Escrito:  um  livro  é  escrito  por  vários  autores  e  um  autor  escreve  vários  livros  •  Pago:  um  livro  é  pago  numa  compra  e  uma  compra  paga  um  livro  
  4. 4. Esquema  relacional  do  contexto  •  Livro  (idl,  Gtulo,  lingua,  isbn)  •  Autor  (ida,  nome,  nacionalidade)  •  Editora  (ide,  nome)  •  Escrito  (idl,  ida)  •  Publicado  (idl,  ide)  •  Compra  (cmp,  idl,  valor,  data)  
  5. 5. Desafio  2  •  Considere  o  modelo  e-­‐r  anterior  e  estenda  a  sua  funcionalidade  de  modo  a  suportar:  –  Notas  de  leitor  associadas  com  determinado  livro  e  que  registe  também  um  conjunto  de  termos  indeterminado  a  cada  nota  realizada  (deve  incluir  informação  de  contexto  da  produção  da  nota,  tal  como  data,  etc...)  –  EmprésGmos  de  livros:  deve  implementar  a  solução  para  que  consiga  realizar  o  emprésGmo  de  um  determinado  livro,  registanto  a  data  e  os  tempos  de  emprésGmo  de  modo  a  permiGr  um  serviço  de  alertas  (não  esquecer  os  dados  de  idenGficação  a  quem  se  empresta  os  livros)  
  6. 6. Modelo  E-­‐R  para  extensão  NOTAS    •  Consideram-­‐se:  –  Duas  novas  enGdades:  termo  e  nota  (nota  integra  com  a  enGdade  livro)  –  duas  relações  binárias:  associa  e  colocada  •  colocada:  uma  nota  é  colocada  em  vários  livros  e  num  livro  são  colocadas  várias  notas  •  associa:  um  termo  associa  várias  notas  e  uma  nota  associa  vários  termos  
  7. 7. Esquema  relacional  para  notas  •  NOTA(id_n,  Gtulo,  descre,  data)  •  TERMO(id_t,  nome,  desc)  •  NOTA_TERMO(intermo,  id_n,  id_t)  •  NOTA_LIVRO(nlivro,  id_n,  idl)  
  8. 8. Modelo  E-­‐R  para  extensão  EMPRÉSTIMOS  •  Consideram-­‐se:  –  Duas  novas  enGdades:  emprésGmo  e  leitor  (emprésGmo  integra  com  a  enGdade  livro)  –  duas  relações  binárias:  associa  e  feito  •  associa:  um  livro  está  associado  a  vários  emprésGmo  (a  tempos  diferentes)  e  um  emprésGmo  está  associado  a  vários  livros  (a  tempos  diferentes)  •  feito:  um  leitor  faz  vários  emprésGmos  e  um  emprésGmo  é  feito  por  um  leitor  
  9. 9. Esquema  relacional  para  emprésGmos  •  DATAS_EMP  (nreg,  idl,  n_em,  d_ini;  d_fim)  •  EMPRESTIMO(n_em,  nlei,  notas)  •  LEITOR(nlei,  nome,  nac,  Gpo)  
  10. 10. Estender  o  modelo  E-­‐R…  
  11. 11. Estender  o  esquema  relacional…  •  Para  suporte  de  notas:  – NOTA(id_n,  Gtulo,  descre,  data)  – TERMO(id_t,  nome,  desc)  – NOTA_TERMO(intermo,  id_n,  id_t)  – NOTA_LIVRO(nlivro,  id_n,  idl)  •  Para  suporte  de  emprésGmos:  – DATAS_EMP  (nreg,  idl,  n_em,  d_ini;  d_fim)  – EMPRESTIMO(n_em,  nlei,  notas)  – LEITOR(nlei,  nome,  nac,  Gpo)  
  12. 12. Adicionar  à  Biblio.db  (SQLite)  •  NOTA(id_n,  Gtulo,  descre,  data)  –  Create  table  nota(id_n  integer  primary  key,  Gtulo  text,  descre  text,  data  date);  •  TERMO(id_t,  nome,  desc)  –  Create  table  termo(id_t  integer  primary  key,  nome  text,  desc  text);  •  NOTA_TERMO(intermo,  id_n,  id_t)  –  Create  table  nota_termo(interno  integer  primary  key  autoincrement,  id_n  integer,  id_t  integer);  •  NOTA_LIVRO(nlivro,  id_n,  idl)  –  Create  table  nota_livro(nlivro  integer  primary  key,  id_n  integer,  idl  integer);      •  DATAS_EMP  (nreg,  idl,  n_em,  d_ini;  d_fim)  –  Create  table  datas_emp(nreg  integer  primary  key  autoincrement,  idl  integer,  n_em  integer,  d_ini  date,  d_fim  date);  •  EMPRESTIMO(n_em,  nlei,  notas)  –  Create  table  empresGmo(n_em  integer  primary  key,  nlei  integer,  notas  text);  •  LEITOR(nlei,  nome,  nac,  Gpo)  –  Create  table  leitor(nlei  integer  primary  key,  nome  text,  nac  text,  Gpo  text);  
  13. 13. Considere  a  seguinte  nota  •  Para  a  nota,  carregue  os  dados  correspondentes  na  base  de  dados  –  Realizada  uma  nota  para  o  livro  “Negócio  Electrónico  -­‐  conceitos  e  perspecGvas  de  desenvolvimento”  designada  por  posição  com  o  texto:  trata-­‐se  de  um  livro  introdutório  sobre  o  tema  do  e-­‐business  escrito  em  português  que,  em  160  páginas  apresenta  os  conceitos  básicos  do  uso  do  digital  para  a  condução  de  negócios  e  o  que  tal  implica”.  Com  esta  nota  foram  associados  três  termos:  e-­‐business,  negócio  eletrónico  e  e-­‐commerce  
  14. 14. Mapear  o  texto  com  os  atributos  •  Realizada  uma  nota  para  o  livro  “Negócio  Electrónico  -­‐  conceitos  e  perspecGvas  de  desenvolvimento”  [nlivro=1],  [id_n=1]  e  [idl=  8]  designada  por  posição  [Gtulo=‘Posição’]  com  o  texto:  trata-­‐se  de  um  livro  introdutório  sobre  o  tema  do  e-­‐business  escrito  em  português  que,  em  160  páginas  apresenta  os  conceitos  básicos  do  uso  do  digital  para  a  condução  de  negócios  e  o  que  tal  implica”  [descre=‘…’]  e  incluir  [id_n]  e  [data].    •  Com  esta  nota  foram  associados  três  termos[3  entradas  na  tabela  NOTA_TERMO]:  e-­‐business  [id_t=1]  e  [nome=‘e-­‐business’],  negócio  eletrónico  [id_t=2]  e  [nome=‘negócio  eletrónico’]  e  e-­‐commerce  [id_t=3]  e  [nome=‘e-­‐commerce’]  
  15. 15. Carregar  as  tabelas  •  NOTA(id_n,  Gtulo,  descre,  data)  –  Insert  into  nota  values(1,  ´Posição’,  ‘trata-­‐se  de  um  livro  introdutório  sobre  o  tema  do  e-­‐business  escrito  em  português  que,  em  160  páginas  apresenta  os  conceitos  básicos  do  uso  do  digital  para  a  condução  de  negócios  e  o  que  tal  implica’,  ‘2013-­‐05-­‐22’);  •  TERMO(id_t,  nome,  desc)  –  Insert  into  termo  values(1,  ‘e-­‐business’,’’);  –  Insert  into  termo  values(2,  ‘negócio  eletrónico’,’’);  –  Insert  into  termo  values(3,  ‘e-­‐commerce’,’’);  •  NOTA_TERMO(intermo,  id_n,  id_t)  –  Insert  into  nota_termo  values(1,  1,  1);  –  Insert  into  nota_termo  values(2,  1,  2);  –  Insert  into  nota_termo  values(3,  1,  3);  •  NOTA_LIVRO(nlivro,  id_n,  idl)  –  Insert  into  nota_livro  values(1,  1,  8);  
  16. 16. Considere  os  seguintes  emprésGmos  •  Carregue  esta  informação  na  base  de  dados  – Os  livros  2  e  3  foram  emprestados  ao  leitor  Manuel  António  (PT,  aluno)  a  15  de  Fevereiro  de  2013,  tendo  o  livro  2,  sido  entregue  a  22  de  Fevereiro  e  o  livro  3,  a    12  de  Março  de  2013  – Os  livros  10  e  12  foram  emprestados  à  Diana  Alves  (PT,  professora)  a  6  de  Abril  de  2013,  tendo  o  livro  12  sido  entregue  a  4  de  Maio  e  o  10,  ainda  não  foi  entregue.  Na  data  do  emprésGmo  foi  registado  que  o  livro  12  apresentava  anotações  diversas  
  17. 17. Mapear  o  texto  com  os  atributos  •  Os  livros  2  e  3  [2  entradas  na  tabela  DATAS_EMP]  foram  emprestados  [1  entrada  na  tabela  EMPRESTIMO]  ao  leitor  Manuel  António  (PT,  aluno)  [nlei=1]  e  [nome=‘Manuel  António’]  e  [nac=‘PT’]  e  [Gpo=‘aluno’]  a  15  de  Fevereiro  de  2013  [d_ini=‘2013-­‐02-­‐15’],  tendo  o  livro  2,  sido  entregue  a  22  de  Fevereiro  [d_fim]  e  o  livro  3,  a    12  de  Março  de  2013  [d_fim]  •  Os  livros  10  e  12  [2  entradas  na  tabela  DATAS_EMP]  foram  emprestados  à  Diana  Alves  (PT,  professora)  [nlei=2]  e  [nome=‘Diana  Alves’]  e  [nac=‘PT’]  e  [Gpo=‘professor’]  a  6  de  Abril  de  2013  [d_ini=‘2013-­‐04-­‐06’],  tendo  o  livro  12  [d_fim]  sido  entregue  a  4  de  Maio  e  o  10,  ainda  não  foi  entregue  [d_fim].  Na  data  do  emprésGmo  foi  registado  que  o  livro  12  apresentava  anotações  diversas  [notas]  
  18. 18. Carregar  as  tabelas  •  DATAS_EMP  (nreg,  idl,  n_em,  d_ini;  d_fim)  –  Insert  into  datas_emp  values(1,  2,  1,’2013-­‐02-­‐15’,  ’2013-­‐02-­‐22’);    –  Insert  into  datas_emp  values(2,  3,  1,’2013-­‐02-­‐15’,  ‘2013-­‐03-­‐12’);  –  Insert  into  datas_emp  values(3,  10,  2,’2013-­‐04-­‐06’,  ‘2013-­‐05-­‐04’);  –  Insert  into  datas_emp  values(4,  12,  2,’2013-­‐04-­‐06’,  ‘’);  •  EMPRESTIMO(n_em,  nlei,  notas)  –  Insert  into  empresGmo  values(1,  1,  ‘’);  –  Insert  into  empresGmo  values(2,  2,  ‘o  livro    12  apresenta  notações  diversas’);  •  LEITOR(nlei,  nome,  nac,  Gpo)  –  Insert  into  leitor  values(1,  ‘Manuel  António’,  ‘PT’,  ‘aluno’);  –  Insert  into  leitor  values(2,  ‘Diana  Alves’,  ‘PT’,  ‘professor’);  
  19. 19. Algumas  das  consultas  possíveis  •  Listar  os  emprésGmos  •  Listar  os  leitores  •  Listar  as  notas  •  Listar  os  termos  •  Listar  a  frequência  de  uGlização  dos  termos  •  Listar  o  tempo  médio  de  emprésGmo,  por  livro  •  Listar  o  número  de  vezes  que  cada  livro  foi  emprestado  •  Listar  o  número  de  emprésGmos  realizados  por  cada  uGlizador  

×