• Nenhum resultado encontrado

Na figura6.1, ´e apresentado o modelo de dados utilizado, duma forma simplificada.

Para a melhor compreens˜ao do modelo de dados, ´e apresentada uma descric¸˜ao das tabelas que o comp˜oem:

• A tabela de atores ´e constitu´ıda por nome, data de nascimento, foto e pelo seu respetivo ´ındice;

• A tabela de realizadores ´e formada pelos campos que representam o nome, a sua data de nascimento e por uma foto que o representa;

• A tabela de escritores tamb´em ´e formada pelos campos que representam o nome, a sua data de nascimento e por uma foto que o representa;

Ator_id integer(10)

Nome varchar(255) Data de Nascimentotime(7)

Ator

Utilizador_id integer(10)

Nome varchar(255) Data de Nascimento time(7) Genero varchar(255) Email varchar(255) admin integer(10) ConselhoConselho_id integer(10) Utilizador Antecedente_id integer(10) Genero varchar(255) Ano_filme integer(10) ProfissõesProfissões_id integer(10) DistritoDistrito_id integer(10) FilmeFilme_id integer(10)

Regra de AcentuaçãoRegra_idinteger(10) Antecedente Regra_id integer(10) Suporte integer(10) ClusterCluster_id integer(10) AntecedenteAntecedente_idinteger(10) Regra de Acentuação Categoria_idinteger(10) Categoria varchar(255) Cor varchar(255) Categoria Centro_id integer(10) Idade integer(10) Genero char(255) ProfissõesProfissões_id integer(10) DistritoDistrito_id integer(10) ClusterCluster_id integer(10) Centroid Cluster_id integer(10) Cluster Consequente_id integer(10) Genero varchar(255) Ano_filme integer(10) ProfissõesProfissões_id integer(10) DistritoDistrito_id integer(10)

Regra de AcentuaçãoRegra_id integer(10)

Regra de AcentuaçãoRegra_id2 integer(10)

Consequente

Conselho_id integer(10)

Conselho varchar(255)

DistritoDistrito_id integer(10)

Conselho DislikeFilmeUtilizador_id integer(10)integer(10) UtilizadorUtilizador_id integer(10) Dislike Distrito_id integer(10) Distrito varchar(255) Distrito Profissões_id integer(10) Profissões varchar(255) Profissões Palavra-chave_idinteger(10) Palavra-chave varchar(255) Palavra-chave Like_id integer(10) FilmeUtilizador_id integer(10) UtilizadorUtilizador_id integer(10) Like Filme_id integer(10) Titulo varchar(255) Descriçãovarchar(255) Ano integer(4) Column integer(10) Filme Escritor integer(10) Nome varchar(255) Data de Nascimentotime(7)

Escritor

Realizador_id integer(10)

Nome varchar(255) Data de Nascimentotime(7)

Realizador AntecedenteAntecedente_id integer(10) AtorAtor_id integer(10) Antecedente_Ator RealizadorRealizador_id integer(10) AntecedenteAntecedente_id integer(10) Realizador_Antecedente AntecedenteAntecedente_id integer(10) EscritorEscritor integer(10) Antecedente_Escritor AtorAtor_id integer(10) ConsequenteConsequente_id integer(10) Ator_Consequente RealizadorRealizador_id integer(10) ConsequenteConsequente_id integer(10) Realizador_Consequente EscritorEscritor integer(10) ConsequenteConsequente_id integer(10) Escritor_Consequente AntecedenteAntecedente_id integer(10) CategoriaCategoria_id integer(10) Antecedente_Categoria CategoriaCategoria_id integer(10) ConsequenteConsequente_id integer(10) Categoria_Consequente FilmeUtilizador_id integer(10) AtorAtor_id integer(10) Filme_Ator FilmeUtilizador_id integer(10) RealizadorRealizador_id integer(10) Filme_Realizador FilmeUtilizador_id integer(10) EscritorEscritor integer(10) Filme_Escritor CategoriaCategoria_id integer(10) FilmeUtilizador_id integer(10) Categoria_Filme FilmeUtilizador_id integer(10) Palavra-chavePalavra-chave_id integer(10) Filme_Palavra-chave UtilizadorUtilizador_id integer(10) CategoriaCategoria_id integer(10) Utilizador_Categoria AntecedenteAntecedente_id integer(10) Palavra-chavePalavra-chave_id integer(10) Antecedente_Palavra-chave CentroidCentro_id integer(10) CategoriaCategoria_id integer(10) Centroid_Categoria CentroidCentro_id integer(10) FilmeUtilizador_id integer(10) Centroid_Like CentroidCentro_id integer(10) FilmeUtilizador_id integer(10) Centroid_Dislike Recomendação_id integer(10) Avasliação integer(10) UtilizadorUtilizador_id integer(10) FilmeUtilizador_id integer(10) Recomendação AntecedenteAntecedente_id integer(10) AntecedenteAntecedente_id2 integer(10) Antecedente_Antecedente

Visual Paradigm Standard(Universidade do Minho)

Figura 6.1: Modelo de Dados Utilizada

• A tabela de filmes ´e formada pelo seu t´ıtulo, durac¸˜ao, ano, foto e ficheiro multim´edia com o conte´udo do filme. A tabela de filmes est´a ligada `a tabela de atores, categorias, escritores, realizadores e palavras-chave;

• A tabela das palavras-chave ´e formada pela designac¸˜ao da palavra-chave; • A tabela de profiss˜oes ´e formada pela designac¸˜ao da profiss˜ao;

• A tabela de distrito ´e formada pela designac¸˜ao do distrito;

• A tabela de concelhos ´e formada pela designac¸˜ao do concelho e pela conex˜ao ao distrito a que pertence;

• A tabela de clusters tem associadas as regras de associac¸˜ao de cada cluster e os centr´oides de cada cluster. Guarda ainda a informac¸˜ao das categorias, likes e dislikes em tabelas auxiliares;

• A tabela que representa os centr´oides ´e composta pela m´edia de idades, sexo predomi- nante, cluster a que pertence, distrito predominante e profiss˜ao predominante;

• A tabela de utilizadores ´e formada pelos campos que representam o nome, a sua data de nascimento, por uma foto que o representa, g´enero, email, uma palavra-passe encriptada, um token, permiss˜ao de administrador, profiss˜ao, concelho onde reside e por fim a que cluster est´a associado. Um utilizador tamb´em tem associada uma lista de categorias pelas quais nutre um interesse especial;

• A tabela de likes faz a ponte entre os utilizadores e os filmes, onde cada utilizador est´a relacionado com os filmes que gosta;

• A tabela de dislikes faz a ponte entre os utilizadores e os filmes, `a semelhanc¸a da tabela de likes, mas neste caso cada utilizador est´a relacionado com os filmes que n˜ao gosta ou n˜ao nutre um particular interesse;

• A tabela de regras de associac¸˜ao ´e definida pelo suporte, confianc¸a, antecedente, con- sequente e pelo cluster a que est´a associada. Como se pode verificar, a tabela de regras de associac¸˜ao tem associado uma antecedente e um consequente. Para representar toda a informac¸˜ao que pode surgir, ´e necess´ario criar duas tabelas que permitam armazenar tal uma informac¸˜ao, ambas com os mesmos campos, mas cada uma representando um dos lados da implicac¸˜ao;

• A tabela de antecedentes est´a ligada `a tabela de regras de associac¸˜ao e pode ter um g´enero, um ano dum filme, uma profiss˜ao, um distrito, um filme, um conjunto de atores, realizado- res, escritores e/ou categorias;

• A tabela de consequentes est´a ligada `a tabela de regras de associac¸˜ao e pode ter um g´enero, um ano dum filme, uma profiss˜ao, um distrito, um filme, um conjunto de atores, realizadores, escritores e/ou categorias;

• A tabela de recomendac¸˜oes representa os poss´ıveis filmes que os utilizadores podem gostar, acompanhados com a sua respetiva avaliac¸˜ao.

Em tabelas auxiliares, ´e armazenada a informac¸˜ao que permite fazer a ligac¸˜ao de ”muitos para muitos”, permitindo fazer a ponte entre a tabelas com outras tabelas com informac¸˜ao relevante. Estas tabelas tˆem habitualmente apenas dois campos, um representa o ´ındice do elemento na tabela de origem e o outro representa o ´ındice da tabela de destino. Desta forma, ´e poss´ıvel guardar mais informac¸˜ao, gastando menos espac¸o em disco.