Índices secundários, avail list e truques para o tp3 fábio dias
TRANSCRIPT
![Page 1: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/1.jpg)
Índices secundários, avail list e truques para o TP3
Fábio Diashttp://fabio.dias.googlepages.com
![Page 2: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/2.jpg)
O que vai acontecer hoje?
• TP3• Índices secundários• Melhorando nosso índice primário• Avail list• Usuário compra música• Dúvidas
![Page 3: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/3.jpg)
TP3Este trabalho prático é uma continuação do TP2. Todas as definições e funcionalidades do TP2 (e TP1) devem ser mantidas neste trabalho.
•Todas as bases de dados e formatos•Todas as funcionalidades•(vocês entenderam o espírito né?)
![Page 4: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/4.jpg)
TP3 - Objetivos
• Implementação de consultas por índices secundários
• Implementar uma política de tratamento de registros excluídos na base de músicas, através do conceito de avail list.
• Suporte à compra de músicas e sugestão musical.
![Page 5: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/5.jpg)
Implementação
• Capacidade de consulta ao banco de dados de músicas através de: –Palavras inteiras do do nome da música,
utilizando busca binária no indice. –Palavras inteiras do nome do autor. –Palavras inteiras do nome do disco. –Palavras inteiras do gênero.
![Page 6: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/6.jpg)
Buscas
• Palavras inteiras. Caso contrário, a busca binária não funcionará. – Idéias juntando ambas serão bem vindas, mas não
cobradas.
• Deverão ser insensíveis a maiusculas / minusculas.
![Page 7: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/7.jpg)
Buscas - Exemplo
• Músicas no banco:– Cara feia– Cara nua
• Termo de busca:– Cara ou cara ou CARA ou cArA (....)– Todos estes devem retornar as duas músicas– Buscas por ara ou car, não devem retornar estas
músicas
![Page 8: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/8.jpg)
Implementação
• Implementação do tratamento dos registros excluídos da base de músicas através do conceito visto em sala de avail list, com os dados armazenados no arquivo do banco de dados.
Caso a política implementada no TP2 seja diferente, apresente vantagens e desvantagens entre as duas. Podemos implementar a mesma política nas duas bases de dados (música e usuários) ?
![Page 9: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/9.jpg)
Implementação
• Capacidade de compra de músicas. O programa deverá armazenar quais músicas cada usuário comprou. O método mais adequado para isto é a criação de uma nova base de dados, contendo a chave primária do usuário (que identifica o usuário unicamente, no nosso caso o login) e a chave primária de música (o nome da música). Utilizem o nome comprasXX.dat.
![Page 10: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/10.jpg)
Implementação
• Deverá ser implementado também um sistema de sugestões de compras de músicas realizadas através de consultas aos índices secundários. Por exemplo, quando determinado usuário escolher uma música, indique outras do mesmo disco/autor/gênero ou, a opção mais completa e exata, que sugere outras músicas compradas por quem já comprou aquela música.
![Page 11: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/11.jpg)
TP3
• Data de entrega:
03/05/2007 (até as 23:59)
![Page 12: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/12.jpg)
DatasDom Seg Ter Qua Qui Sex Sáb8 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30 01/mai 2 3 4 56 7 8 9 10 11 1213 14 15 16 17 18 1920 21 22 23 24 25 2627 28 29 30 31 01/jun 23 4 5 6 7 8 910 11 12 13 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 30
![Page 13: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/13.jpg)
O que vai acontecer hoje?
• TP3• Índices secundários• Melhorando nosso índice primário• Avail list• Usuário compra música• Dúvidas
![Page 14: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/14.jpg)
Índices secundários
Chave Primária “Ponteiro” para o registro no arquivo
Beatriz 1596
Cara feia 4332
Mandei avisar 2964
Só as mães são felizes
2052
(...)
Chave Secundária
Chave primária
Ana Carolina Beatriz
Barão Vermelho
Só as mães são felizes
Gabriel o Pensador
Cara feia
Gabriel o Pensador
Mandei avisar
(...)
Qual o motivo para o índice secundário não conter o “ponteiro” para o arquivo?
![Page 15: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/15.jpg)
Tornando EficienteChave Secundária Chave primária
Ana Carolina Beatriz
Barão Vermelho Só as mães são felizes
Gabriel o Pensador Cara feia
Gabriel o Pensador Mandei avisar
(...)
![Page 16: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/16.jpg)
Tornando Eficiente
Chave Secundária
Entrada
Ana Carolina 4
Barão Vermelho
1
Gabriel o Pensador
2
(...)
Chave primária próximo
Só as mães são felizes
-1
Mandei avisar 3
Cara Feia -1
Beatriz -1
(...)
![Page 17: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/17.jpg)
Busca
Chave Secundária
Entrada
Ana Carolina 4
Barão Vermelho
1
Gabriel o Pensador
2
(...)
Chave primária próximo
Só as mães são felizes
-1
Mandei avisar 3
Cara Feia -1
Beatriz -1
(...)
Gabriel o Pensador
{“Mandei avisar”,”Cara Feia”}
![Page 18: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/18.jpg)
Busca{“Mandei avisar”,”Cara Feia”} Chave
Primária“Ponteiro”
Beatriz 1596
Cara feia 4332
Mandei avisar 2964
Só as mães são felizes
2052
(...)
Banco
Cara Feia – Gabriel o Pensador – 4:27 – Ao vivo MTV – RapMandei avisar – Gabriel o Pensador – 4:29 – Ao vivo MTV – Rap
![Page 19: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/19.jpg)
O que vai acontecer hoje?
• TP3• Índices secundários• Melhorando nosso índice primário• Avail list• Usuário compra música• Dúvidas
![Page 20: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/20.jpg)
Melhorando nosso indice primárioChave Primária
Entrada
Cara feia 4332
Cara nua 2964
(...)
Chave primária próximo
Cara feia 2
Cara nua -1
Cara feia -1
Cara nua -1
(...)
Chave Secundária
Entrada
Cara 1
Feia 3
Nua 4
(...) Estamos substituindo o índice primário?
![Page 21: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/21.jpg)
Melhorando nosso indice primárioChave Primária
arquivo
Cara feia 4332
Cara nua 2964
(...)
Chave primária próximo
Cara feia 2
Cara nua -1
Cara feia -1
Cara nua -1
(...)
Chave Secundária
Entrada
Cara 1
Feia 3
Nua 4
(...)
![Page 22: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/22.jpg)
O que vai acontecer hoje?
• TP3• Índices secundários• Melhorando nosso índice primário• Avail list• Usuário compra música• Dúvidas
![Page 23: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/23.jpg)
Avail listNome Autor Duração Disco Gênero
Garganta Ana Carolina 4:30 Ana Carolina MPB
She Elvis Costello 3:57 Coletânea Pop
Help Beatles 3:43 Help Rock
Sad but true Metallica 4:23 S&M Rock
Apagamos “Help”.
Avail: -1
![Page 24: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/24.jpg)
Avail listNome Autor Duração Disco Gênero
Garganta Ana Carolina 4:30 Ana Carolina MPB
She Elvis Costello 3:57 Coletânea Pop
-1
Sad but true Metallica 4:23 S&M Rock
Avail: 3
Apagamos “Garganta”.
![Page 25: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/25.jpg)
Avail listNome Autor Duração Disco Gênero
3
She Elvis Costello 3:57 Coletânea Pop
-1
Sad but true Metallica 4:23 S&M Rock
Avail: 1
Adicionamos outra música
![Page 26: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/26.jpg)
Avail listNome Autor Duração Disco Gênero
Nua Ana Carolina 4:38 Ana Carolina MPB
She Elvis Costello 3:57 Coletânea Pop
-1
Sad but true Metallica 4:23 S&M Rock
Avail: 3
![Page 27: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/27.jpg)
O que vai acontecer hoje?
• TP3• Índices secundários• Melhorando nosso índice primário• Avail list• Usuário compra música• Dúvidas
![Page 28: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/28.jpg)
Usuário compra músicaChave Primária
arquivo
root 4332
fabio 2964
(...)
Chave Primária
arquivo
Cara feia 4332
Cara nua 2964
(...)
Usuário Música
fabio Cara nua
root Cara nua
fabio Cara feia
(...)
Qual a chave primária desse novo banco?
![Page 29: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/29.jpg)
Índices secundáriosUsuário Música
fabio Cara nua
root Cara nua
fabio Cara feia
(...)
Música Entrada
Cara feia
1
Cara nua
3
(...)
PK Proximo
fabio 2
root -1
fabio -1
(...)
Usuário Entrada
fabio 1
root 3
(...)
PK Proximo
Cara feia
2
Cara nua
-1
Cara nua
-1
(...)
Índice secundário pelo nome da música Índice secundário pelo
login do usuário
Os índices devem ser ordenados. Não estão aqui, mas devem estar!
![Page 30: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/30.jpg)
Sugerindo músicasUsuário Música
fabio Cara nua
root Cara nua
fabio Cara feia
(...)
Música Entrada
Cara nua
1
Cara feia
3
(...)
PK Proximo
fabio 2
root -1
fabio -1
(...)
Usuário Entrada
fabio 1
root 3
(...)
PK Proximo
Cara feia
2
Cara nua
-1
Cara nua
-1
(...)
Usuário escolhe uma música: Cara feia
Conseguimos todos os usuários que compraram aquela música
![Page 31: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/31.jpg)
Sugerindo músicasUsuário Música
fabio Cara nua
root Cara nua
fabio Cara feia
(...)
Música Entrada
Cara nua
1
Cara feia
3
(...)
PK Proximo
fabio 2
root -1
fabio -1
(...)
Usuário Entrada
fabio 1
root 3
(...)
PK Proximo
Cara feia
2
Cara nua
-1
Cara nua
-1
(...)
Usuário escolhe uma música: Cara feia
Vamos pegar todas as músicas que estes usuários compraram
![Page 32: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/32.jpg)
Sugerindo músicas
Assim que o usuário escolher uma música:1. Usando o índice secundário, consiga todos os
usuários que compraram aquela música;2. Usando o outro índice secundário, consiga
todas as músicas que aqueles usuários compraram;
3. Apresente ao usuário as N músicas mais compradas por estes usuários.
Vocês também podem fazer isso assim que o usuário logar, usando as músicas que ele já comprou como ponto inicial.
![Page 33: Índices secundários, avail list e truques para o TP3 Fábio Dias](https://reader036.vdocuments.pub/reader036/viewer/2022062512/552fc15f497959413d8e6a01/html5/thumbnails/33.jpg)
?