SlideShare une entreprise Scribd logo
1  sur  54
Mais um exemplo do recurso a
bases de dados relacionais em
SQLite
Base de dados de supervisão / formação avançada / alumni
Luís Borges Gouveia
lmbg@ufp.edu.pt
V2.4, Abril de 2016
Formação avançada
• A atividade de formação avançada em contexto
universitário engloba a supervisão individual ou
conjunta de orientação de um trabalho de
investigação e desenvolvimento São considerados
três tipos de alunos, função do nível da formação:
– 2º ciclo, também conhecido como mestrado (MSc)
– 3º ciclo, também conhecido por doutoramento (PhD)
– De especialização e aprofundamento científico, também
conhecido como Pós doutoramento (PostDoc)
Luís Borges Gouveia, lmbg@ufp.edu.pt
Considere o seguinte contexto
• Existe a necessidade de registo da atividade de supervisão de
formação avançada, nesta fase, para registo de alumni (alunos
que concluíram a sua formação avançada)
– Pretende-se o registo de cada aluno com indicação do nome,
sexo e nacionalidade
– Também o registo da formação avançada, com base na
designação, tipo, nome e escola
– É necessário associar os respetivos orientadores (podem ser um
ou mais do que um – normalmente, existindo co-orientação, é
apenas um segundo elemento)
– Cada orientador deve ser identificado pelo seu nome (e
também nome de citação), sexo, cargo atual, nacionalidade e
local de afiliação (escola)
– A graduação de cada aluno deve incluir a data em que ocorreu o
seu exame ou reconhecimento de conclusão da formação
avançada
Luís Borges Gouveia, lmbg@ufp.edu.pt
Um modelo E-R proposto para o contexto
• Consideram-se:
– três entidades: aluno, orientador e formação
avançada
– Duas relações binárias: graduação e
supervisão
• graduação:
um aluno é graduado numa ou mais formações
avançadas e
uma formação avançada tem graduados um ou
mais alunos
• supervisão:
um aluno é supervisionado por um ou mais
orientadores e
um orientador é supervisor de um ou mais
alunos
Aluno
Formação
avançada
graduação
supervisão
Orientador
Luís Borges Gouveia, lmbg@ufp.edu.pt
Esquema relacional do contexto
• Aluno (ida, nome, sexo, pais)
• Afiliacao (idaf, sigla, nome, subnome, local, pais, url)
• FAvancada (idf, nome, titulo, tipo, designação, idaf)
• Orientador (ido, nome, nome_cit, sexo, cargo, pais,
idaf)
• Graduacao (idg, ida, idf, data)
• Supervisao (ids, ida, ido, idf)
Luís Borges Gouveia, lmbg@ufp.edu.pt
Os comandos SQL mais comuns
http://www.tutorialspoint.com/sqlite
Para as tabelas da base de dados
• CREATE TABLE: criar uma tabela de dados
• DROP TABLE: eliminar uma tabela de dados
• ALTER TABLE: alterar uma tabela de dados
Para os dados, nas tabelas da base de dados
• INSERT INTO: inserir dados numa tabela
• SELECT: consultar dados numa tabela
• UPDATE: atualizar dados numa tabela
• DELETE: eliminar dados numa tabela
Luís Borges Gouveia, lmbg@ufp.edu.pt
Criar a base de dados…
• Na linha de comando do SO
– Sqlite3 alumni.db
• Criar a tabela Aluno (ida, nome, sexo, dnasc, pais)
– Create table aluno(ida integer primary key, nome text, sexo text, pais text);
• Criar a tabela Afiliacao (idaf, sigla, nome, subnome, local, pais, url)
– Create table afiliacao(idaf integer primary key, sigla text, nome text, subnome text, local text,
pais text, url text);
• Criar a tabela Favancada (idf, nome, titulo, tipo, designação, idaf)
– Create table favancada(idf integer primary key, nome text, titulo text, tipo text, designação
text, idaf integer);
• Criar a tabela Orientador (ido, nome, nome_cit, sexo, cargo, pais, idaf)
– Create table orientador(ido integer primary key, nome text, nome_cit text, sexo text, cargo
text, pais text, idaf integer);
• Criar a tabela Graduacao (idg, ida, idf, data)
– Create table graduacao(idg integer primary key autoincrement, ida integer, idf integer, data
date);
• Criar a tabela Supervisao (ids, ida, ido, idf)
– Create table supervisao(ids integer primary key autoincrement, ida integer, ido integer, idf
integer);
Luís Borges Gouveia, lmbg@ufp.edu.pt
Informação sobre a bd alumni.db
• Testar os comandos: .databases (lista as bases de dados consideradas no
ficheiro alumni.db), .tables (lista as tabelas associadas com a base de
dados) e .schema (que lista o esquema das tabelas da base de dados)
Luís Borges Gouveia, lmbg@ufp.edu.pt
Teste do modelo criado
• Para testar o modelo criado é tomada a listagem de
supervisões concluídas, conforme descrita em
http://homepage.ufp.pt/lmbg/mono_on.htm
(alumni de Luis Borges Gouveia, a Março de 2016) que
lista:
– 1 pós doutoramento
– 9 doutoramentos
– 18 mestrados
– Na página estão também listadas 8 monografias de
conclusão de licenciatura, não consideradas para o
presente contexto
Luís Borges Gouveia, lmbg@ufp.edu.pt
Inserir alunos…
[Aluno (ida, nome, sexo, pais)]
Insert into aluno values(1, ‘Margarida Amélia Correia Bairrão do Vale Marques’, ‘Feminino’, ‘Portugal’);
Insert into aluno values (2, ‘Jorge Manuel Correia da Silva Xavier’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (3, ‘Jorge Manuel Viegas Graça’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (4, ‘Paulo Adriano Sousa Teixeira’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (5, ‘Gilberto Manuel Gomes Branco Vasco’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (6, ‘Marco José de Oliveira Pereirinha’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (7, ‘Steven Lopes Abrantes’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (8, ‘Maria João Silva Teixeira Guedes Mesquita’, ‘Feminino’, ‘Portugal’);
Insert into aluno values (9, ‘Márcia Cristina de Castro Moreira’, ‘Feminino’, ‘Portugal’);
Insert into aluno values (10, ‘José Luis de Sousa Rodrigues’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (11, ‘David Lopes Abrantes’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (12, ‘Susana Maria Labrincha de Azevedo’, ‘Feminino’, ‘Portugal’);
Insert into aluno values (13, ‘Paula Cristina Marinho Moura’, ‘Feminino’, ‘Portugal’);
Insert into aluno values (14, ‘Christelle Marie Cardoso Soigné’, ‘Feminino’, ‘Portugal’);
Insert into aluno values (15, ‘Helder José Marques Caixinha’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (16, ‘Teresa Maria Borges Cardoso’, ‘Feminino’, ‘Portugal’);
Insert into aluno values (17, ‘Martinho André Cerqueira de Oliveira’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (18, ‘Paulo Rocha Neto’, ‘Masculino’, ‘Brasil’);
Insert into aluno values (19, ‘Paulo Alexandre Lima Rurato’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (20, ‘Sandra Sofia Nora Gaio’, ‘Feminino’, ‘Portugal’);
Insert into aluno values (21, ‘Pedro Nuno Moreira da Silva’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (22, ‘Luis António Morão Pinto Simões da Cunha’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (23, ‘Filipe Miguel Bispo Fidalgo’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (24, ‘Artur Jorge Afonso de Sousa’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (25, ‘Pereira Alfredo’, ‘Masculino’, ‘Angola’);
Insert into aluno values (26, ‘Carlos Alberto Torres Quental’, ‘Masculino’, ‘Portugal’);
Insert into aluno values (27, ‘Paula Peres’, ‘Feminino’, ‘Portugal’);
Luís Borges Gouveia, lmbg@ufp.edu.pt
Inserir as afiliações… [Afiliacao (idaf, sigla,
nome, subnome, local, pais, url)]
Insert into afiliacao values(1, ‘UFP’, ‘Universidade Fernando Pessoa’, ‘FCT –
Faculdade de Ciência e Tecnologia’, ‘Porto’, ’Portugal’, ‘http://www.ufp.pt’);
Insert into afiliacao values(2, ‘UFP’, ‘Universidade Fernando Pessoa’, ‘FCHS –
Faculdade de Ciências Humanas e Sociais’, ‘Porto’, ’Portugal’,
‘http://www.ufp.pt’);
Insert into afiliacao values(3, ‘UA’, ‘Universidade de Aveiro’, ‘DEGEI -
Departamento de Economia, Gestão e Engenharia Industrial’, ‘Aveiro’,
‘Portugal’, ‘http://www.ua.pt’);
Luís Borges Gouveia, lmbg@ufp.edu.pt
Inserir as formações avançadas… [Favancada
(idf, nome, titulo, tipo, designação, idaf)]
Insert into favancada values (1, ‘Mestrado em Gestão da Ciência, Tecnologia e
Inovação’, ‘Mestrado’, ‘MSc’, ‘2º ciclo de estudos’, 3);
Insert into favancada values (2, ‘Mestrado em Gestão da Informação’,
‘Mestrado’, ‘MSc’, ‘2º ciclo de estudos’, 3);
Insert into favancada values (3, ‘Doutoramento em Engenharia de Gestão e
Industrial’, ‘Doutoramento’, ‘PhD’, ‘3º ciclo de estudos’, 3);
Insert into favancada values (4, ‘Mestrado em Engenharia Informática’,
‘Mestrado’, ‘MSc’, ‘2º ciclo de estudos’, 1);
Insert into favancada values (5, ‘Doutoramento em Ciências da Informação -
especialização em Sistemas e Tecnologias da Informação’, ‘Doutoramento’,
‘PhD’, ‘3º ciclo de estudos’, 1);
Insert into favancada values (6, ‘Mestrado em Ciências da Informação e
Documentação’, ‘Mestrado’, ‘MSc’, ‘2º ciclo de estudos’, 2);
Insert into favancada values (7, ‘Pós Doutoramento em e-learning’, ‘Pós
Doutoramento’, ‘Post Doc’, ‘Pós Doutoramento (12 meses)’, 1);
Insert into favancada values (8, ‘Mestrado em Ciências Empresariais’,
‘Mestrado’, ‘MSc’, ‘2º ciclo de estudos’, 2);
Luís Borges Gouveia, lmbg@ufp.edu.pt
Inserir os orientadores… [Orientador (ido, nome,
nome_cit, sexo, cargo, pais, idaf)]
Insert into orientador values(1, ‘Luis Manuel Borges Gouveia’, ‘Luis Borges
Gouveia’, ‘Masculino’, ‘Professor Associado com Agregação’, ‘Portugal’, 1);
Insert into orientador values(2, ‘Joaquim José Borges Gouveia’, ‘Borges
Gouveia’, ‘Masculino’, ‘Professor Catedrático’, ‘Portugal’, 3);
Luís Borges Gouveia, lmbg@ufp.edu.pt
Associar os alunos às formações avançadas…
[Graduacao (idg, ida, idf, data)]
Insert into graduacao values(1, 27, 7, ‘2011-06-11’);
Insert into graduacao values(2, 26, 5, ‘2015-02-17’);
Insert into graduacao values(3, 25, 5, ‘2015-02-10’);
Insert into graduacao values(4, 24, 5, ‘2013-04-10’);
Insert into graduacao values(5, 23, 5, ‘2013-01-10’);
Insert into graduacao values(6, 22, 5, ‘2012-06-10’);
Insert into graduacao values(7, 21, 5, ‘2011-07-17’);
Insert into graduacao values(8, 7, 5, ‘2011-07-10’);
Insert into graduacao values(9, 20, 3, ‘2010-06-10’);
Insert into graduacao values(10, 19, 3, ‘2008-12-12’);
Insert into graduacao values(11, 18, 4, ‘2015-04-21’);
Insert into graduacao values(12, 17, 8, ‘2014-03-19’);
Insert into graduacao values(13, 16, 6, ‘2012-04-21’);
Insert into graduacao values(14, 15, 2, ‘2009-11-11’);
Insert into graduacao values(15, 14, 2, ‘2009-10-10’);
Insert into graduacao values(16, 13, 2, ‘2009-10-16’);
Insert into graduacao values(17, 12, 2, ‘2009-10-20’);
Insert into graduacao values(18, 11, 2, ‘2007-12-10’);
Insert into graduacao values(19, 10, 2, ‘2007-11-11’);
Insert into graduacao values(20, 9, 4, ‘2007-07-16’);
Insert into graduacao values(21, 8, 2, ‘2007-07-10’);
Insert into graduacao values(22, 7, 2, ‘2007-06-10’);
Insert into graduacao values(23, 6, 2, ‘2006-11-10’);
Insert into graduacao values(24, 5, 2, ‘2005-11-10’);
Insert into graduacao values(25, 4, 2, ‘2005-11-11’);
Insert into graduacao values(26, 3, 2, ‘2005-11-20’);
Insert into graduacao values(27, 2, 1, ‘2004-07-12’);
Insert into graduacao values(28, 1, 2, ‘2003-04-12’); Luís Borges Gouveia, lmbg@ufp.edu.pt
Associar os alunos aos orientadores
[supervisao(ids, ida, ido, idf)]
Insert into supervisao values(1, 1, 1, 1);
Insert into supervisao values(2, 2, 2, 3);
Insert into supervisao values(3, 2, 1, 1);
Insert into supervisao values(4, 3, 1, 1);
Insert into supervisao values(5, 4, 1, 1);
Insert into supervisao values(6, 5, 1, 1);
Insert into supervisao values(7, 6, 1, 1);
Insert into supervisao values(8, 7, 1, 1);
Insert into supervisao values(9, 8, 1, 1);
Insert into supervisao values(10, 9, 1, 1);
Insert into supervisao values(11, 10, 1, 1);
Insert into supervisao values(12, 11, 1, 1);
Insert into supervisao values(13, 12, 1, 1);
Insert into supervisao values(14, 13, 1, 1);
Insert into supervisao values(15, 14, 1, 1);
Insert into supervisao values(16, 15, 1, 1);
Insert into supervisao values(17, 16, 1, 1);
Insert into supervisao values(18, 17, 1, 1);
Insert into supervisao values(19, 18, 1, 1);
Insert into supervisao values(20, 19, 2, 3);
Insert into supervisao values(21, 19, 1, 1);
Insert into supervisao values(22, 20, 2, 3);
Insert into supervisao values(23, 20, 1, 1);
Insert into supervisao values(24, 21, 1, 1);
Insert into supervisao values(25, 22, 1, 1);
Insert into supervisao values(26, 23, 1, 1);
Insert into supervisao values(27, 24, 1, 1);
Insert into supervisao values(28, 25, 1, 1);
Insert into supervisao values(29, 26, 1, 1);
Insert into supervisao values(30, 27, 1, 1);
Insert into supervisao values(31, 7, 1, 1);
Luís Borges Gouveia, lmbg@ufp.edu.pt
Obter uma cópia da base dados
• De forma a poder replicar a estrutura e conteúdos
da base de dados é possível obter a sequência de
comandos SQL, atráves de .dump
– Para obter a listagem num ficheiro de texto,
deve ser redirecionado o output, com base no
comando .output nome_do_ficheiro, antes do
uso do comando .dump (após o comando, deve
redirecionar novamente o output para o ecran,
utilizando .output stdout)
– Um exemplo do dump da base de dados, ao
lado…
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE livro(idlinteger primary key, titulo text, lingua text, isbn text);
INSERT INTO "livro" VALUES(1,'Sistemas de Informa‡Æo para
GestÆo','Portuguˆs','9728589433');
INSERT INTO "livro" VALUES(2,'Cidades e RegiäesDigitais: impacte nas cidadese
nas pessoas','Portuguˆs','9728830033');
INSERT INTO "livro" VALUES(3,'Inform tica e Competˆncias Tecnol¢gicas para a
Sociedade daInforma‡Æo','Portuguˆs','9728830041');
INSERT INTO "livro" VALUES(4,'Readings in Information Society
','Inglˆs','9728830149');
INSERT INTO "livro" VALUES(5,'Sociedade da Informa‡Æo: balan‡o e implica‡äes
','Portuguˆs','9728830181');
INSERT INTO "livro" VALUES(6,'O local e-government: a governa‡Æo digitalna
autarquia','Portuguˆs','9728589417');
INSERT INTO "livro" VALUES(7,'Inform tica e Competˆncias Tecnol¢gicas para a
Sociedade daInforma‡Æo 2ed','Portuguˆs','9728830300');
INSERT INTO "livro" VALUES(8,'Neg¢cio Electr¢nico - conceitose perspectivasde
desenvolvimento','Portuguˆs','972858962X');
INSERT INTO "livro" VALUES(9,'GestÆo da Informa‡Æo na Biblioteca Escolar
','Portuguˆs','9789899533004');
INSERT INTO "livro" VALUES(10,'A virtual environment to share
knowledge','Inglˆs','9783639129861');
INSERT INTO "livro" VALUES(11,'Ciˆncia da Informa‡Æo: contributos para o seu
estudo','Portuguˆs','9789896430900');
INSERT INTO "livro" VALUES(12,'Repensar a Sociedadeda Informa‡Æo e do
Conhecimento no In¡cio do S‚culo XXI','Portuguˆs','9789726186953');
CREATE TABLE autor(ida integer primary key, nome text, nacionalidadetext);
INSERT INTO "autor" VALUES(1,'Luis Borges Gouveia','Portuguˆs');
INSERT INTO "autor" VALUES(2,'JoÆo Ranito','Portuguˆs');
INSERT INTO "autor" VALUES(3,'Nuno MagalhÆesRibeiro','Portuguˆs');
INSERT INTO "autor" VALUES(4,'Paulo Rurato','Portuguˆs');
INSERT INTO "autor" VALUES(5,'Sofia Gaio','Portuguˆs');
INSERT INTO "autor" VALUES(6,'Rui Moreira','Portuguˆs');
INSERT INTO "autor" VALUES(7,'Margarida BairrÆo','Portuguˆs');
INSERT INTO "autor" VALUES(8,'Judite Gon‡alves de Freitas','Portuguˆs');
INSERT INTO "autor" VALUES(9,'Ant¢nio Borges Regedor','Portuguˆs');
INSERT INTO "autor" VALUES(10,'Jos‚ Dias Coelho','Portuguˆs');
CREATE TABLE editora(ide integer primary key, nome text);
INSERT INTO "editora" VALUES(1,'SPI - Principia');
INSERT INTO "editora" VALUES(2,'Edi‡äes UniversidadeFernando Pessoa');
INSERT INTO "editora" VALUES(3,'Edi‡äes GestKnowing');
INSERT INTO "editora" VALUES(4,'VDM - Verlag Dr. Muller');
INSERT INTO "editora" VALUES(5,'S¡labo');
CREATE TABLE escrito(esc integer primary key autoincrement,idl integer, ida
integer);
INSERT INTO "escrito" VALUES(1,1,1);
INSERT INTO "escrito" VALUES(2,1,2);
INSERT INTO "escrito" VALUES(3,2,1);
INSERT INTO "escrito" VALUES(4,3,3);
INSERT INTO "escrito" VALUES(5,3,1);
INSERT INTO "escrito" VALUES(6,3,4);
INSERT INTO "escrito" VALUES(7,4,1);
INSERT INTO "escrito" VALUES(8,4,5);
INSERT INTO "escrito" VALUES(9,5,1);
INSERT INTO "escrito" VALUES(10,5,5);
INSERT INTO "escrito" VALUES(11,6,1);
INSERT INTO "escrito" VALUES(12,7,3);
INSERT INTO "escrito" VALUES(13,7,1);
INSERT INTO "escrito" VALUES(14,7,4);
INSERT INTO "escrito" VALUES(15,7,6);
INSERT INTO "escrito" VALUES(16,8,1);
INSERT INTO "escrito" VALUES(17,9,7);
INSERT INTO "escrito" VALUES(18,9,1);
INSERT INTO "escrito" VALUES(19,10,1);
INSERT INTO "escrito" VALUES(20,11,8);
INSERT INTO "escrito" VALUES(21,11,1);
INSERT INTO "escrito" VALUES(22,11,9);
INSERT INTO "escrito" VALUES(23,12,10);
INSERT INTO "escrito" VALUES(24,12,1);
CREATE TABLE publicado(pubinteger primary key autoincrement,idl integer, ide
integer);
INSERT INTO "publicado"VALUES(1,1,1);
INSERT INTO "publicado"VALUES(2,2,2);
INSERT INTO "publicado"VALUES(3,3,2);
INSERT INTO "publicado"VALUES(4,4,2);
INSERT INTO "publicado"VALUES(5,5,2);
INSERT INTO "publicado"VALUES(6,6,1);
INSERT INTO "publicado"VALUES(7,7,2);
INSERT INTO "publicado"VALUES(8,8,1);
INSERT INTO "publicado"VALUES(9,9,3);
INSERT INTO "publicado"VALUES(10,10,4);
INSERT INTO "publicado"VALUES(11,11,2);
INSERT INTO "publicado"VALUES(12,12,5);
CREATE TABLE compra(cmp integer primary key autoincrement,idl integer, valor
real, data date);
INSERT INTO "compra" VALUES(1,1,15.0,'jan 12 2004');
INSERT INTO "compra" VALUES(2,2,12.0,'set 11 2003');
INSERT INTO "compra" VALUES(3,3,10.0,'out 20 2003');
INSERT INTO "compra" VALUES(4,4,7.0,'apr 20 2004');
INSERT INTO "compra" VALUES(5,5,14.0,'jun 15 2004');
INSERT INTO "compra" VALUES(6,6,15.0,'dez 12 2004');
INSERT INTO "compra" VALUES(7,7,10.0,'out 26 2003');
INSERT INTO "compra" VALUES(8,8,15.0,'dez 10 2006');
INSERT INTO "compra" VALUES(9,9,15.0,'mar 10 2007');
INSERT INTO "compra" VALUES(10,10,75.0,'fev 5 2009');
INSERT INTO "compra" VALUES(11,11,10.0,'jun 18 2012');
INSERT INTO "compra" VALUES(12,12,24.0,'set 10 2012');
DELETE FROM sqlite_sequence;
INSERT INTO "sqlite_sequence"VALUES('escrito',24);
INSERT INTO "sqlite_sequence"VALUES('publicado',12);
INSERT INTO "sqlite_sequence"VALUES('compra',12);
COMMIT;Luís Borges Gouveia, lmbg@ufp.edu.pt
Formatar os resultados no SQLite
sqlite> .header on  colocar o nome e separador de cada atributo da tabela
sqlite> .mode column  organizar os resultados por colunas
sqlite> .timer on  ativar o contador de recursos computacionais
sqlite> select * from aluno;
ida nome sexo pais
---------- ------------------------------------------------------------------------ -------------------------- -------------
1 Margarida Amélia Correia Bairrão do Vale Marques Feminino Portugal
2 Jorge Manuel Correia da Silva Xavier Masculino Portugal
3 Jorge Manuel Viegas Graça Masculino Portugal
4 Paulo Adriano Sousa Teixeira Masculino Portugal
5 Gilberto Manuel Gomes Branco Vasco Masculino Portugal
6 Marco José de Oliveira Pereirinha Masculino Portugal
7 Steven Lopes Abrantes Masculino Portugal
8 Maria João Silva Teixeira Guedes Mesquita Feminino Portugal
9 Márcia Cristina de Castro Moreira Feminino Portugal
10 José Luis de Sousa Rodrigues Masculino Portugal
11 .....
Run Time: real 0.046 user 0.000000 sys 0.000000
sqlite>
Luís Borges Gouveia, lmbg@ufp.edu.pt
Alguns exercícios simples,
com base no comando Select
• Quantos alunos estão registados?
– select count(*) from aluno;
• Quantas graduações é que estão registadas?
– select count(*) from graduacao;
• Quantas formações avançadas estão registadas?
– select count(*) from favancada;
• Quantos orientadores estão registados?
– select count(*) from orientador;
• Quantos alunos do sexo feminino?
– Select count(sexo) from aluno where sexo=‘Feminino’;
• Quantos alunos do sexo masculino?
– Select count(sexo) from aluno where sexo=‘Masculino’;
Luís Borges Gouveia, lmbg@ufp.edu.pt
Mais alguns exercícios com base no
comando Select
• Listar o nome das formações avançadas registadas, por ordem alfabética
– select nome from favancada order by nome;
• Listar os nomes dos alunos e tipo de formação avançada que
completaram, ordenado por nome de aluno
– select aluno.nome, favancada.titulo from aluno, graduacao, favancada where
aluno.ida=graduacao.ida and graduacao.idf=favancada.idf order by
aluno.nome;
• Contar o número de graduações do tipo Doutoramento
– select count(*) from aluno, graduacao, favancada where
aluno.ida=graduacao.ida and graduacao.idf=favancada.idf and
favancada.titulo='Doutoramento';
• Listar os nomes e nacionalidade dos alunos com graduações do tipo
Doutoramento
– select aluno.nome, aluno.pais from aluno, graduacao, favancada where
aluno.ida=graduacao.ida and graduacao.idf=favancada.idf and
favancada.titulo='Doutoramento';
Luís Borges Gouveia, lmbg@ufp.edu.pt
Mais alguns exercícios…
• Listar todos os orientadores, indicando o seu nome e nome de citação e
a quantidade de orientações
– select orientador.nome, nome_cit, count(*) from orientador, supervisao
where orientador.ido=supervisao.ido group by nome;
• Listar, todos os tipos de formação, indicando o total de graduações
existentes para cada um deles
– select distinct favancada.titulo, count(*) from favancada, graduacao where
favancada.idf=graduacao.idf group by favancada.titulo;
• Listar todas as graduações, por data, indicando a data, o nome do aluno
e a formação avançada efetuada
– select graduacao.data, aluno.nome, favancada.nome from graduacao, aluno,
favancada where graduacao.ida=aluno.ida and graduacao.idf=favancada.idf
order by data;
• Contar por ano, de forma ordenada, o número de formações avançadas
concluídas, mostrando inicialmente os anos mais recentes
– select strftime('%Y', data), count(*) from graduacao, aluno, favancada where
graduacao.ida=aluno.ida and graduacao.idf=favancada.idf group by
strftime('%Y', data) order by data desc;
Luís Borges Gouveia, lmbg@ufp.edu.pt
Ainda mais alguns exemplos
• Contar o número de alunos Portugueses que concluíram a sua formação
avançada
– select count(*) from aluno where pais='Portugal';
• Listar as nacionalidades dos alunos que concluíram a sua formação
avançada
– select distinct pais from aluno;
• Listar os nomes dos alunos que realizaram a sua formação avançada com
co-orientações
– select aluno.nome, supervisao.ida, count(supervisao.ida) as coorientacao from
aluno, supervisao where aluno.ida=supervisao.ida group by supervisao.ida
having count(supervisao.ida) > 1 and sum(supervisao.idf)/2 <> supervisao.idf
order by supervisao.ida;
Luís Borges Gouveia, lmbg@ufp.edu.pt
Alguns desafios
1. O que é necessário para considerar alunos de mais do
que um orientador e estender este modelo de dados
para um grupo de investigadores
2. O que é necessário para o modelo de dados registar
os projetos dos alunos, com uma pequena descrição e
dados de financiamento e datas de início e fim, bem
como relatórios associados e produção científica
realizada
3. O que é necessário para o modelo de dados registar,
além dos alunos que concluíram as suas formações
avançadas, todos aqueles que ainda as estão a
realizar, indicando o seu estado e as reuniões de
trabalho com os orientadores
Luís Borges Gouveia, lmbg@ufp.edu.pt
Resposta, desafio 1
O que é necessário para considerar alunos de mais do
que um orientador e estender este modelo de dados
para um grupo de investigadores?
• Apenas o registo de mais orientadores e as suas
supervisões.
O modelo de dados, tal como está, responde a esse
contexto.
Luís Borges Gouveia, lmbg@ufp.edu.pt
Notas do desafio 1 (i)
• Um aspeto a ter em conta, é quando se listam orientadores
e existe mais de um para um dado par (aluno e orientador),
não existe indicação de o orientador ser o orientador
principal ou o co-orientador
– Este caso seria resolvido, adicionando um atributo novo, na
tabela Supervisao (ids, ida, ido, idf), colocando, além do id do
orientador (ido), qual o seu papel na supervisão em
especificação)
– Nova tabela: Supervisao (ids, ida, ido, idf, papelo)
– Create table supervisao(ids integer primary key autoincrement,
ida integer, ido integer, papelo text, idf integer); MAS como a
tabela já existe e tem conteúdos, usamos em alternativa o
comando ALTER TABLE, para preservar os conteúdos existentes:
• alter table supervisao add column papelo text;
Luís Borges Gouveia, lmbg@ufp.edu.pt
Notas do desafio 1 (ii)
• Com a adição do novo atributo na tabela, o esquema
relacional da base de dados é agora diferente:
– CREATE TABLE aluno(ida integer primary key, nome text, sexo
text, pais text);
– CREATE TABLE afiliacao(idaf integer primary key, sigla text, nome
text, subnome text, local text, pais text, url text);
– CREATE TABLE favancada(idf integer primary key, nome text,
titulo text, tipo text, designação text, idaf integer);
– CREATE TABLE orientador(ido integer primary key, nome text,
nome_cit text, sexo text, cargo text, pais text, idaf integer);
– CREATE TABLE graduacao(idg integer primary key
autoincrement, ida integer, idf integer, data date);
– CREATE TABLE supervisao(ids integer primary key
autoincrement, ida integer, ido integer, idf integer, papelo text);
Luís Borges Gouveia, lmbg@ufp.edu.pt
Notas do desafio 1 (iii)
• A tabela supervisão tem o seguinte aspecto (select * from supervisao;):
ids ida ido idf papelo
---------- ---------- ---------- ---------- ----------
1 1 1 1
2 2 2 3
3 2 1 1
4 3 1 1
5 4 1 1
6 5 1 1
7 6 1 1
8 7 1 1
9 8 1 1
10 9 1 1
11 10 1 1
12 11 1 1
13 12 1 1
14 13 1 1
15 14 1 1
16 15 1 1
17 16 1 1
18 17 1 1
19 18 1 1
20 19 2 3
21 19 1 1
22 20 2 3
23 20 1 1
24 21 1 1
25 22 1 1
26 23 1 1
27 24 1 1
28 25 1 1
29 26 1 1
30 27 1 1
31 7 1 1
A coluna papelo não tem valores, pelo que terá de ser
preenchida (populada).
A melhor de o fazer é com recurso a um comando que
permita preencher as 31 entradas o mais rapidamente
possível, usando o comando UPDATE
update supervisão set papelo='principal’;
Mas agora, é preciso ver quais as supervisões em que
devemos colocar o valor alternativo de co-orientador.
O Critério é quando existem dois orientadores, para a
lista existente, o co-orientador é Luis Borges Gouveia
Luís Borges Gouveia, lmbg@ufp.edu.pt
Notas do desafio 1 (iv)
• Processo de descoberta e alteração de valores:
Passo 1: listar todos os alunos com outro orientador além de Luis Borges Gouveia, descobrindo os
ida dos alunos envolvidos….
select aluno.ida, aluno.nome, orientador.nome from aluno, supervisao, orientador where
aluno.ida=supervisao.ida and supervisao.ido=orientador.ido and orientador.nome <> 'Luis
Manuel Borges Gouveia' ;
ida nome nome
---------- ----------------------------------------------- -----------------------------------------
2 Jorge Manuel Correia da Silva Xavier Joaquim José Borges Gouveia
19 Paulo Alexandre Lima Rurato Joaquim José Borges Gouveia
20 Sandra Sofia Nora Gaio Joaquim José Borges Gouveia
Luís Borges Gouveia, lmbg@ufp.edu.pt
Notas do desafio 1 (v)
• Processo de descoberta e alteração de valores:
Passo 2: listar os registos de supervisão associados com os alunos com ida 2, 19 e 20
select * from supervisao where ida=2 or ida=19 or ida=20;
ids ida ido idf papelo
---------- -------- -------- --------- -------------
2 2 2 3 principal
3 2 1 1 principal
20 19 2 3 principal
21 19 1 1 principal
22 20 2 3 principal
23 20 1 1 principal
Luís Borges Gouveia, lmbg@ufp.edu.pt
Notas do desafio 1 (vi)
• Processo de descoberta e alteração de valores:
Passo 3: listar os orientadores para identificar os seus ido, de forma a saber que Luis Borges Gouveia, corresponde ao
ido=1
select * from orientador;
ido nome nome_cit sexo cargo pais idaf
----- --------------------------------------- -------------------------- -------------- ------------------------------------------------ ----------- -----
1 Luis Manuel Borges Gouveia Luis Borges Gouveia Masculino Professor Associado com Agregação Portugal 1
2 Joaquim José Borges Gouve Borges Gouveia Masculino Professor Catedrático Portugal 3
Luís Borges Gouveia, lmbg@ufp.edu.pt
Notas do desafio 1 (vii)
• Processo de descoberta e alteração de valores:
Passo 4: listar as supervisões que correspondem às entras dos alunos 2, 19 e 20 e ao orientador
Luis Borges Gouveia, corresponde ao ido=1, de forma a obter os respectivos id de supervisão (são
o 3, 21 e 23)
select * from supervisao where (ida=2 or ida=19 or ida=20) and ido=1;
ids ida ido idf papelo
------- ------- --------- ------- --------------
3 2 1 1 principal
21 19 1 1 principal
23 20 1 1 principal
Luís Borges Gouveia, lmbg@ufp.edu.pt
Notas do desafio 1 (viii)
• Processo de descoberta e alteração de valores:
Passo 5: Alterar o atributo papelo (papel do orientador) para co-orientador, nas entradas de
supervisão correspondentes aos alunos 2, 19 e 20 e ao orientador 1
sqlite> update supervisao set papelo='co-orientador' where (ida=2 or ida=19 or ida=20) and
ido=1;
Passo 6: Verificar a alteração...
sqlite> select * from supervisao where (ida=2 or ida=19 or ida=20) and ido=1;
ids ida ido idf papelo
------- --------- ------- -------- ---------------------
3 2 1 1 co-orientador
21 19 1 1 co-orientador
23 20 1 1 co-orientador
Luís Borges Gouveia, lmbg@ufp.edu.pt
Notas do desafio 1 (ix)
Considerando os dados existentes, antes da alteração do modelo
• Listar todos os alunos e respetivos orientadores: select aluno.nome,
orientador.nome from aluno, supervisao, orientador where
aluno.ida=supervisao.ida and supervisao.ido=orientador.ido order by
orientador.nome;
nome (aluno) nome (orientador)
------------------------------------ - --------------------------------------
Jorge Manuel Correia da Silva Xavier Joaquim José Borges Gouveia
Paulo Alexandre Lima Rurato Joaquim José Borges Gouveia
Sandra Sofia Nora Gaio Joaquim José Borges Gouveia
Margarida Amélia Correia Bairrão d Luis Manuel Borges Gouveia
Jorge Manuel Correia da Silva Xavier Luis Manuel Borges Gouveia
Jorge Manuel Viegas Graça Luis Manuel Borges Gouveia
Paulo Adriano Sousa Teixeira Luis Manuel Borges Gouveia
Gilberto Manuel Gomes Branco Vasco Luis Manuel Borges Gouveia
Marco José de Oliveira Pereirinha Luis Manuel Borges Gouveia
Steven Lopes Abrantes Luis Manuel Borges Gouveia
Maria João Silva Teixeira Guedes Me Luis Manuel Borges Gouveia
Márcia Cristina de Castro Moreira Luis Manuel Borges Gouveia
José Luis de Sousa Rodrigues Luis Manuel Borges Gouveia
David Lopes Abrantes Luis Manuel Borges Gouveia
Susana Maria Labrincha de Azevedo Luis Manuel Borges Gouveia
Paula Cristina Marinho Moura Luis Manuel Borges Gouveia
Christelle Marie Cardoso Soigné Luis Manuel Borges Gouveia
Helder José Marques Caixinha Luis Manuel Borges Gouveia
Teresa Maria Borges Cardoso Luis Manuel Borges Gouveia
Martinho André Cerqueira de Oliveir Luis Manuel Borges Gouveia
Paulo Rocha Neto Luis Manuel Borges Gouveia
Paulo Alexandre Lima Rurato Luis Manuel Borges Gouveia
Sandra Sofia Nora Gaio Luis Manuel Borges Gouveia
Pedro Nuno Moreira da Silva Luis Manuel Borges Gouveia
Luis António Morão Pinto Simões d Luis Manuel Borges Gouveia
Filipe Miguel Bispo Fidalgo Luis Manuel Borges Gouveia
Artur Jorge Afonso de Sousa Luis Manuel Borges Gouveia
Pereira Alfredo Luis Manuel Borges Gouveia
Carlos Alberto Torres Quental Luis Manuel Borges Gouveia
Paula Peres Luis Manuel Borges Gouveia
Steven Lopes Abrantes Luis Manuel Borges Gouveia
Luís Borges Gouveia, lmbg@ufp.edu.pt
Notas do desafio 1 (x)
Considerando os dados existentes, antes da alteração do modelo
• Listar os alunos com co-orientadores, além de Luis Borges Gouveia: select
aluno.nome, orientador.nome from aluno, supervisao, orientador where
aluno.ida=supervisao.ida and supervisao.ido=orientador.ido and
orientador.nome <> 'Luis Manuel Borges Gouveia' order by
orientador.nome;
nome (aluno) nome (orientador)
------------------------------------------------ ----------------------------
Jorge Manuel Correia da Silva Xavier Joaquim José Borges Gouveia
Paulo Alexandre Lima Rurato Joaquim José Borges Gouveia
Sandra Sofia Nora Gaio Joaquim José Borges Gouveia
• Neste exemplo, obtêm-se a listagem de todos os co-orientadores de Luis
Borges Gouveia (LBG), porque o contexto é os alumni de LBG. Para incluir
outros orientadores e respetivos alumni (não coincidentes com os de LBG)
seria impossível distinguir os co-orientadores associados um dado
orientador, sem a alteração proposta no desafio 1
Luís Borges Gouveia, lmbg@ufp.edu.pt
Notas do desafio 1 (xi)
select aluno.nome, supervisao.ida, count(supervisao.ida) as coorientacao from aluno,
supervisao where aluno.ida=supervisao.ida group by supervisao.ida having
count(supervisao.ida) > 1 and sum(supervisao.idf)/2 <> supervisao.idf order by
supervisao.ida;
nome ida coorientacao
--------------------------------------------------- ---------- -------------------
Jorge Manuel Correia da Silva Xavier 2 2
Paulo Alexandre Lima Rurato 19 2
Sandra Sofia Nora Gaio 20 2
select aluno.nome, supervisao.ida from supervisao, aluno where
supervisao.papelo='co-orientador' and supervisao.ida=aluno.ida;
nome ida
----------------------------------------------------------
Jorge Manuel Correia da Silva Xavier 2
Paulo Alexandre Lima Rurato 19
Sandra Sofia Nora Gaio 20
Luís Borges Gouveia, lmbg@ufp.edu.pt
Resposta, desafio 2
O que é necessário para o modelo de dados registar os projetos
dos alunos, com uma pequena descrição, dados de
financiamento e datas de início e fim do projeto, bem como os
relatórios associados e produção científica realizada?
• Neste caso, o modelo de dados tem de ser estendido de
forma a assegurar as novas necessidades
Luís Borges Gouveia, lmbg@ufp.edu.pt
Considere o seguinte contexto para o desafio 2
• Existe a necessidade de registo dos projetos associados com os alunos e sob
orientação. Dessa forma, é necessário considerar:
– O registo de cada projeto, o seu responsável (orientador) e os alunos que o
realizam (podem ser um ou mais alunos)
– O projeto deve conter informação sobre a sua data de início e de fim, o
orçamento, o nome e sigla usada e caso tenha financiamento, deve indicar o
montante e o respetivo financiador
– Para cada projeto deve ser ainda indicado o seu estado, nomeadamente se já
se encontra concluído, está em curso ou em candidatura, ou ainda suspenso
ou em avaliação
– Em princípio cada aluno está associado a um só projeto em contexto de
formação avançada, mas como existe a possibilidade de um aluno poder
frequentar mais do que uma formação avançada (mesma a tempos
diferentes), também pode estar associado a mais do que um projeto
– Embora o projeto tenha apenas um só responsável que terá de ser um
orientador, pode ter envolvidos um ou mais alunos. Desta forma, cada aluno
deve ser associado de modo a ser indicado a data de início e de fim do seu
envolvimento com o projeto. Deve ainda ser indicado o estado desse
envolvimento, nomeadamente se está em curso, suspenso ou concluído
Luís Borges Gouveia, lmbg@ufp.edu.pt
Modelo E-R para o contexto do desafio 2
Mais uma entidade
(projeto) e duas
relações: trabalho
(um aluno trabalha
em vários projetos e
num projeto,
trabalham vários
alunos) e liderar (um
orientador lidera
vários projetos e um
projeto é liderado por
um orientador
ALUNO
ORIENTADOR
FORMAÇÃO
AVANÇADA
PROJETO
supervisão
graduação
liderar
trabalho
Luís Borges Gouveia, lmbg@ufp.edu.pt
Esquema relacional do contexto
• Aluno (ida, nome, sexo, pais)
• Afiliacao (idaf, sigla, nome, subnome, local, pais, url)
• FAvancada (idf, nome, titulo, tipo, designação, idaf)
• Orientador (ido, nome, nome_cit, sexo, cargo, pais, idaf)
• Graduacao (idg, ida, idf, data)
• Supervisao (ids, ida, ido, idf, papelo)
São acrescentadas mais duas tabelas:
• Projeto(idp, nome, ido, sigla, orcamento, sponsor,
financiamento, datai, dataf, estado)
• Trabalho(idt, idp, ida, datai, dataf, estado)
Luís Borges Gouveia, lmbg@ufp.edu.pt
Acrescentar a base de dados alumni.db
• Na linha de comando do SO, abrir a bd existente
– Sqlite3 alumni.db
• Criar a tabela Projeto(idp, nome, ido, sigla, orcamento, sponsor,
financiamento, datai, dataf)
– Create table projeto(idp integer primary key, nome text, ido integer, sigla text,
orcamento real, sponsor text, financiamento real, datai date, dataf data,
estado text);
• Criar a tabela Trabalho(idt, idp, ida, datai, dataf, estado)
– Create table trabalho(idt integer primary key, idp integer, ida integer, datai
date, dataf date, estado text);
Luís Borges Gouveia, lmbg@ufp.edu.pt
Sobre o modelo de dados estendido
• Depois de introduzir os dados associados com os projetos e de os
relacionar com os alunos (trabalho), é possível consultar os dados,
como por exemplo: listar, os projetos, por nome do aluno, estado do
seu trabalho, estado do projeto e financiamento do projeto
– select projeto.nome, aluno.nome, trabalho.estado, projeto.estado,
projeto.financiamento from projeto, trabalho, aluno where
aluno.ida=trabalho.ida and trabalho.idp=projeto.idp;
• Desta forma, novas funcionalidades foram acrescentadas,
permitindo a gestão da informação associada com os projetos, o
seu estado, financiamento, datas associadas e alunos e
responsáveis implicados
• Mas atenção!!! falta ainda um dos requisitos solicitados no
desafio 2: (…), bem como relatórios associados e produção
científica realizada?
Luís Borges Gouveia, lmbg@ufp.edu.pt
Solução para incluir relatórios e publicações
• A forma mais fácil, é considerar estes elementos como resultados dos
projetos e em consequência, registar apenas a sua relação com os
projetos, uma citação completa e um identificador para a base de dados
de publicações que foi já objeto de estudo e projeto
• No contexto apresentado, toma-se por princípio que cada relatório ou
publicação, está associada a apenas um dado projeto.
• A citação do trabalho é realizada de forma a construir uma frase com a
menção dos autores, da data, título, local de publicação, editora e demais
elementos, em função do tipo de publicação que deve também ser
indicado
• Um exemplo de uma citação:
– Oliveira, M.; Nakamura, E.; Gouveia, L.; Massunari, L. & Louzada, M.
(2015). Computational solution "ODR-ATA" to mesurement of bone density from
radiographic density. 4th Joint Meeting of ECTS and IBMS. European Calcified
Tissue Society International Bone & Mineral Society. The Netherlands, Rotterdam.
25-28 April. ECTS-IBMS Abstracts (2015), pp 77. Poster on proceedings: IBMS
BoneKEy 13, Article number: 673 (2015) | doi:10.1038/bonekey.2015.40
Luís Borges Gouveia, lmbg@ufp.edu.pt
Modelo E-R para o contexto completo do
desafio 2 (com os resultados dos projetos)
ALUNO
ORIENTADOR
FORMAÇÃO
AVANÇADA
PROJETO
supervisão
graduação
liderar
trabalho
possui
RESULTADO
Mais uma entidade
(resultado) e uma
relação: possui (um
projeto possui vários
resultados e um
resultado está
associado a um
projeto)
Luís Borges Gouveia, lmbg@ufp.edu.pt
Acrescentar a base de dados alumni.db
• Na linha de comando do SO, abrir a bd existente
– Sqlite3 alumni.db
• Depois de criadas as tabelas Projeto eTrabalho, é agora necessário criar a
tabela Resultado(idr, idp, citacao, tipopub, bdpubs)
– Create table resultado(idr integer primary key, idp integer, citacao text,
tipopub text, bdpubs integer);
• Em que:
– idr: identificador único de resultado
– idp: identificador único de projeto
– citacao: citação completa do resultado
– tipopub: tipo de publicação do resultado
– bdpubs: identificador único para relacionar com a base de dados de
publicações
Luís Borges Gouveia, lmbg@ufp.edu.pt
Resposta, desafio 3
O que é necessário para o modelo de dados registar, além dos
alunos que concluíram as suas formações avançadas, todos
aqueles que ainda as estão a realizar, indicando o seu estado e
as reuniões de trabalho com os orientadores?
• Neste caso, o modelo de dados tem de ser estendido de
forma a assegurar as novas necessidades
Luís Borges Gouveia, lmbg@ufp.edu.pt
Considere o seguinte contexto para o desafio 3
• O registo de alunos em curso, altera o contexto inicial proposto para a
base de dados alumni: como o nome indica, é para registo dos antigos
alunos
• Desta forma, algumas alterações necessitam de ser realizadas de modo a
permitir não só o registo e manutenção do estado em que se encontram
os alunos, como a identificação de quem já concluiu a sua formação
avançada
• A indicação mais fácil para realizar essa identificação é na tabela
graduação. É importante tomar em consideração que um aluno pode ter
mais do que um orientador e que pode realizar mais do que uma
formação avançada
• Será necessário o registo das interações entre alunos e orientadores,
registando o seu tempo e uma descrição associada. A opção foi pela
criação de uma estrutura que agrega a interação, o orientador e a
graduação de modo a permitir a existência de mais do que um orientador
e garantindo que o aluno mantêm o estado, sem repetições, pois o seu
relacionamento é feito de forma indireta, precisamente pela tabela
graduação (que contém a identificação do aluno)
Luís Borges Gouveia, lmbg@ufp.edu.pt
Modelo E-R para o contexto do desafio 2
ALUNO
ORIENTADOR
FORMAÇÃO
AVANÇADA
PROJETO
supervisão
graduação
liderar
trabalho
possui
RESULTADO
encontro
INTERAÇÃO
Mais uma entidade
(interação) e uma
relação: encontro
(um orientador tem
encontros com várias
interações e uma
interação tem
encontros com vários
orientadores)
Luís Borges Gouveia, lmbg@ufp.edu.pt
Acrescentar a base de dados alumni.db
• Na linha de comando do SO, abrir a bd existente
– Sqlite3 alumni.db
• Criar a tabela Interacao(idi, tipo, data, horai, horaf, descre)
– Create table interacao(idi integer primary key, tipo text, data date, horai time,
horaf time, descre text);
• Criar a tabela Encontro(ide, idi, ido, idg)
– Create table encontro(ide integer primary key, idi integer, ido integer, idg
integer);
• Adicionar o atributo estado à tabela Graduação (idg, ida, idf, data, estado)
– alter table graduacao add column estado text;
Luís Borges Gouveia, lmbg@ufp.edu.pt
Assegurar a utilização dos dados existentes
• A alteração na tabela graduação é crucial, de forma a permitir identificar
quais os alunos que já finalizaram os seus graus, pois agora são também
incluídos na tabela alunos, aqueles que estão ainda noutros estados do
seu percurso de trabalho
• Assim, é necessário adicionar o atributo estado na tabela graduação, que
distingue antigos alunos dos alunos atuais
• Antes de introduzir novos alunos, deve ser colocado o estado (atributo da
tabela graduação) dos existentes a ‘finalizada’; para tal, podemos usar um
comando SQL para atualizar todos os elementos da tabela (28
graduações):
– update graduacao set estado=‘finalizado’;
• Desta forma, para saber quais os alunos que já concluíram a sua formação
avançada, listando o respetivo nome e nome do grau, é usado o comando
SQL:
– select aluno.nome, favancada.nome from aluno, favancada, graduacao where
aluno.ida=graduacao.ida and graduacao.idf=favancada.idf order by
favancada.nome;
Luís Borges Gouveia, lmbg@ufp.edu.pt
Modelo E-R final para os alumni e incorporando projetos, resultados e
o registo de atividade de supervisão de alunos atuais
ALUNO
ORIENTADOR
FORMAÇÃO
AVANÇADA
PROJETO
supervisão
graduação
liderar
trabalho
possui
RESULTADO
encontro
INTERAÇÃO
Luís Borges Gouveia, lmbg@ufp.edu.pt
Leitura do modelo E-R final
• Relação binária graduação, muitos para muitos
– Um aluno é graduado em uma ou várias formações avançadas
– Uma formação avançada permite a graduação de um ou vários alunos
• Relação binária supervisão, muitos para muitos
– Um aluno tem supervisão de um ou vários orientadores
– Um orientador é supervisor de um ou vários alunos
• Relação binária trabalho, muitos para muitos
– Um aluno trabalha num ou vários projetos
– Num projeto trabalham um ou vários alunos
• Relação binária liderar, um para muitos
– Um orientador lidera um ou vários projetos
– Um projeto é liderado por um orientador
• Relação binária possui, um para muitos
– Um projeto possui um ou mais resultados
– Um resultado está associado com um projeto
• Relação binária encontro, muitos para muitos
– Um orientador tem encontro com um ou várias interações
– Uma interação tem encontro com um ou mais orientadores
Seis (6) entidades:
• Aluno
• Formação avançada
• Orientador
• Projeto
• Resultado
• Interação
Seis (6) relações binárias
• Graduação
• Supervisão
• Trabalho
• Liderar
• Possui
• Encontro
Luís Borges Gouveia, lmbg@ufp.edu.pt
Esquema relacional final para os alumni e incorporando projetos,
resultados e o registo de atividade de supervisão de alunos atuais
11 Tabelas, com um total de 66 atributos:
• CREATE TABLE aluno(ida integer primary key, nome text, sexo text, pais text);
• CREATE TABLE afiliacao(idaf integer primary key, sigla text, nome text, subnome text, local text, pais
text, url text);
• CREATE TABLE favancada(idf integer primary key, nome text, titulo text, tipo text, designacao text,
idaf integer);
• CREATE TABLE orientador(ido integer primary key, nome text, nome_cit text, sexo text, cargo text,
pais text, idaf integer);
• CREATE TABLE graduacao(idg integer primary key autoincrement, ida integer, idf integer, data date,
estado text);
• CREATE TABLE supervisao(ids integer primary key autoincrement, ida integer, ido integer, idf integer,
papelo text);
• CREATE TABLE projeto(idp integer primary key, nome text, ido integer, sigla text, orcamento real,
sponsor text, financiamento real, datai date, dataf date, estado text);
• CREATE TABLE trabalho(idt integer primary key, idp integer, ida integer, datai date, dataf date,
estado text);
• CREATE TABLE interacao(idi integer primary key, tipo text, data date, horai time, horaf time, descre
text);
• CREATE TABLE resultado(idr integer primary key, idp integer, citacao text, tipopub text, bdpubs
integer);
• CREATE TABLE encontro(ide integer primary key, idi integer, ido integer, idg integer, estaluno text);
Luís Borges Gouveia, lmbg@ufp.edu.pt
Resumindo
• Registo da atividade de supervisão
de formação avançada para registo
de alumni
• Considerar alunos de mais do que
um orientador e estender o
modelo de dados para um grupo
de investigadores
• Considerar o registo dos projetos
associados com os alunos e sob
orientação
• Considerar o registo de relatórios
associados e produção científica
realizada no âmbito da atividade
de formação avançada
• Registar todos os alunos que ainda
estão em formação avançada,
indicando o seu estado e as
reuniões de trabalho com os
orientadores
ALUNO
ORIENTADOR
FORMAÇÃO
AVANÇADA
PROJETO
supervisão
graduação
liderar
trabalho
possui
RESULTADO
encontro
INTERAÇÃO
Luís Borges Gouveia, lmbg@ufp.edu.pt
Especificações completas para a base
de dados desenvolvida
• Necessário o registo da atividade de supervisão de formação avançada para registo de alumni (alunos que concluíram a sua formação avançada)
– Pretende-se o registo de cada aluno com indicação do nome, sexo e nacionalidade
– Também o registo da formação avançada, com base na designação, tipo, nome e escola
– É necessário associar os respetivos orientadores (podem ser um ou mais do que um – normalmente, existindo coorientação, é apenas um
segundo elemento)
– Cada orientador deve ser identificado pelo seu nome (e também nome de citação), sexo, cargo atual, nacionalidade e local de afiliação
(escola)
– A graduação de cada aluno deve incluir a data em que ocorreu o seu exame ou reconhecimento de conclusão da formação avançada
• Necessário considerar alunos de mais do que um orientador e estender o modelo de dados para um grupo de investigadores
• Necessário considerar o registo dos projetos associados com os alunos e sob orientação. Dessa forma, é necessário considerar:
– O registo de cada projeto, o seu responsável (orientador) e os alunos que o realizam (podem ser um ou mais alunos)
– O projeto deve conter informação sobre a sua data de início e de fim, o orçamento, o nome e sigla usada e caso tenha financiamento, deve
indicar o montante e o respetivo financiador
– Para cada projeto deve ser ainda indicado o seu estado, nomeadamente se já se encontra concluído, está em curso ou em candidatura, ou
ainda suspenso ou em avaliação
– Em princípio cada aluno está associado a um só projeto em contexto de formação avançada, mas como existe a possibilidade de um aluno
poder frequentar mais do que uma formação avançada (mesma a tempos diferentes), também pode estar associado a mais do que um
projeto
– Embora o projeto tenha apenas um só responsável que terá de ser um orientador, pode ter envolvidos um ou mais alunos. Desta forma, cada
aluno deve ser associado de modo a ser indicado a data de início e de fim do seu envolvimento com o projeto. Deve ainda ser indicado o
estado desse envolvimento, nomeadamente se está em curso, suspenso ou concluído
• Necessário considerar o registo de relatórios associados e produção científica realizada no âmbito da atividade de formação avançada
• Necessário registar, além dos alunos que concluíram as suas formações avançadas, todos aqueles que ainda as estão a realizar, indicando o seu
estado e as reuniões de trabalho com os orientadores
– O registo de alunos em curso, altera o contexto inicial proposto para a base de dados alumni: como o nome indica, é para registo dos antigos
alunos
– Desta forma, algumas alterações necessitam de ser realizadas de modo a permitir não só o registo e manutenção do estado em que se
encontram os alunos, como a identificação de quem já concluiu a sua formação avançada
– A indicação mais fácil para realizar essa identificação é na tabela graduação. É importante tomar em consideração que um aluno pode ter
mais do que um orientador e que pode realizar mais do que uma formação avançada
– Será necessário o registo das interações entre alunos e orientadores, registando o seu tempo e uma descrição associada. A opção foi pela
criação de uma estrutura que agrega a interação, o orientador e a graduação de modo a permitir a existência de mais do que um orientador e
garantindo que o aluno mantêm o estado, sem repetições, pois o seu relacionamento é feito de forma indireta, precisamente pela tabela
graduação (que contém a identificação do aluno)
Luís Borges Gouveia, lmbg@ufp.edu.pt
Esquema relacional com suporte explícito de chaves estrangeiras
(força a existência de uma referência prévia da chave estrangeira, na
chave primária da tabela a que lhe corresponde)
11 Tabelas, com um total de 66 atributos:
• CREATE TABLE aluno(ida integer primary key, nome text, sexo text, pais text);
• CREATE TABLE afiliacao(idaf integer primary key, sigla text, nome text, subnome text, local text, pais text, url text);
• CREATE TABLE favancada(idf integer primary key, nome text, titulo text, tipo text, designacao text, idaf integer);
• CREATE TABLE orientador(ido integer primary key, nome text, nome_cit text, sexo text, cargo text, pais text, idaf
integer, foreign key(idaf) references afiliacao(idaf) );
• CREATE TABLE graduacao(idg integer primary key autoincrement, ida integer, idf integer, data date, estado text,
foreign key(ida) references aluno(ida), foreign key(idf) references favancada(idaf));
• CREATE TABLE supervisao(ids integer primary key autoincrement, ida integer, ido integer, idf integer, papelo text,
foreign key(ida) references aluno(ida), foreign key(ido) references orientador(ido), foreign key(idf) references
favancada(idf));
• CREATE TABLE projeto(idp integer primary key, nome text, ido integer, sigla text, orcamento real, sponsor text,
financiamento real, datai date, dataf date, estado text, foreign key(ido) references orientador(ido));
• CREATE TABLE trabalho(idt integer primary key, idp integer, ida integer, datai date, dataf date, estado text, foreign
key(idp) references projeto(idp), foreign key(ida) references aluno(ida));
• CREATE TABLE interacao(idi integer primary key, tipo text, data date, horai time, horaf time, descre text);
• CREATE TABLE resultado(idr integer primary key, idp integer, citacao text, tipopub text, bdpubs integer, foreign
key(idp) references projeto(idp));
• CREATE TABLE encontro(ide integer primary key, idi integer, ido integer, idg integer, estaluno text, foreign key(idi)
references interacao(idi), foreign key(ido) references orientador(ido), foreign key(idg) references graduacao(idg));
XXX Chave primária YYY Chave estrangeira ou secundária
Luís Borges Gouveia, lmbg@ufp.edu.pt

Contenu connexe

Tendances

Base de Dados - Introdução
Base de Dados - IntroduçãoBase de Dados - Introdução
Base de Dados - IntroduçãoMariana Hiyori
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraNatanael Simões
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dadosessa
 
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Leinylson Fontinele
 
15 como analisar e avaliar um sítio web
15 como analisar e avaliar um sítio web15 como analisar e avaliar um sítio web
15 como analisar e avaliar um sítio webBiblioteca Amares
 
Sql o NoSql en Informática Médica
Sql o NoSql en Informática MédicaSql o NoSql en Informática Médica
Sql o NoSql en Informática MédicaLiz Armenteros
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosPatrícia Morais
 
Modelo entidade-relacionamento - SIGEM (sistema de gestão de materiais)
Modelo entidade-relacionamento - SIGEM (sistema de gestão de materiais)Modelo entidade-relacionamento - SIGEM (sistema de gestão de materiais)
Modelo entidade-relacionamento - SIGEM (sistema de gestão de materiais)Marcos Pessoa
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSSledsifes
 
Sistema de gerenciamento de banco de dados
Sistema de gerenciamento de banco de dadosSistema de gerenciamento de banco de dados
Sistema de gerenciamento de banco de dadosJuh Souza
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosRafael Albani
 
341339 operadora de-distribuio-referencial_efa
341339 operadora de-distribuio-referencial_efa341339 operadora de-distribuio-referencial_efa
341339 operadora de-distribuio-referencial_efamtdsequeira
 

Tendances (20)

Ficha html e css
Ficha   html e cssFicha   html e css
Ficha html e css
 
Estruturas de dados
Estruturas de dadosEstruturas de dados
Estruturas de dados
 
Base de Dados - Introdução
Base de Dados - IntroduçãoBase de Dados - Introdução
Base de Dados - Introdução
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dados
 
Apresentação árvore 2 3 4
Apresentação árvore 2 3 4Apresentação árvore 2 3 4
Apresentação árvore 2 3 4
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
 
15 como analisar e avaliar um sítio web
15 como analisar e avaliar um sítio web15 como analisar e avaliar um sítio web
15 como analisar e avaliar um sítio web
 
Sql o NoSql en Informática Médica
Sql o NoSql en Informática MédicaSql o NoSql en Informática Médica
Sql o NoSql en Informática Médica
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dados
 
Modelo entidade-relacionamento - SIGEM (sistema de gestão de materiais)
Modelo entidade-relacionamento - SIGEM (sistema de gestão de materiais)Modelo entidade-relacionamento - SIGEM (sistema de gestão de materiais)
Modelo entidade-relacionamento - SIGEM (sistema de gestão de materiais)
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSS
 
Padlet
PadletPadlet
Padlet
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Bancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geralBancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geral
 
Sistema de gerenciamento de banco de dados
Sistema de gerenciamento de banco de dadosSistema de gerenciamento de banco de dados
Sistema de gerenciamento de banco de dados
 
Introdução a HTML5
Introdução a HTML5Introdução a HTML5
Introdução a HTML5
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
341339 operadora de-distribuio-referencial_efa
341339 operadora de-distribuio-referencial_efa341339 operadora de-distribuio-referencial_efa
341339 operadora de-distribuio-referencial_efa
 

En vedette

SQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open sourceSQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open sourceLuis Borges Gouveia
 
Privacidade, CiberSegurança e Regulamentação Económica
Privacidade, CiberSegurança e Regulamentação EconómicaPrivacidade, CiberSegurança e Regulamentação Económica
Privacidade, CiberSegurança e Regulamentação EconómicaLuis Borges Gouveia
 
Desenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidDesenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidCaelum
 
Acessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidAcessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidFernando Anselmo
 
Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteMarcio Palheta
 
Android Studio: Primeiros Passos
Android Studio: Primeiros PassosAndroid Studio: Primeiros Passos
Android Studio: Primeiros PassosRomualdo Andre
 
Higher Education in the XXI century: challenging everything and also the libr...
Higher Education in the XXI century: challenging everything and also the libr...Higher Education in the XXI century: challenging everything and also the libr...
Higher Education in the XXI century: challenging everything and also the libr...Luis Borges Gouveia
 
O que é a ciência de dados (data science). Discussão do conceito
O que é a ciência de dados (data science). Discussão do conceitoO que é a ciência de dados (data science). Discussão do conceito
O que é a ciência de dados (data science). Discussão do conceitoLuis Borges Gouveia
 
R: a alternativa ao SPSS e ao NVivo em software livre
R: a alternativa ao SPSS e ao NVivo em software livreR: a alternativa ao SPSS e ao NVivo em software livre
R: a alternativa ao SPSS e ao NVivo em software livreLuis Borges Gouveia
 
O digital, a sustentabilidade e a viagem do open source ao open data
O digital, a sustentabilidade e a viagem do open source ao open dataO digital, a sustentabilidade e a viagem do open source ao open data
O digital, a sustentabilidade e a viagem do open source ao open dataLuis Borges Gouveia
 
Fórum da Arrábida: painel de discussão Privacidade e cibersegurança
Fórum da Arrábida: painel de discussão Privacidade e cibersegurança Fórum da Arrábida: painel de discussão Privacidade e cibersegurança
Fórum da Arrábida: painel de discussão Privacidade e cibersegurança Luis Borges Gouveia
 
Desenvolvimento para Android - Bento Gonçalves (08/2011)
Desenvolvimento para Android - Bento Gonçalves (08/2011)Desenvolvimento para Android - Bento Gonçalves (08/2011)
Desenvolvimento para Android - Bento Gonçalves (08/2011)Gustavo Ciello
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - IntroduçãoJoao Johanes
 
Persistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidPersistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidAntonio Marin Neto
 
Android - Frameworks de Persistência
Android - Frameworks de PersistênciaAndroid - Frameworks de Persistência
Android - Frameworks de PersistênciaÉdipo Souza
 

En vedette (20)

Base de dados desafio 2
Base de dados desafio 2Base de dados desafio 2
Base de dados desafio 2
 
Base de dados: desafio 1
Base de dados: desafio 1Base de dados: desafio 1
Base de dados: desafio 1
 
SQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open sourceSQLite: um motor de bases de dados relacional open source
SQLite: um motor de bases de dados relacional open source
 
Privacidade, CiberSegurança e Regulamentação Económica
Privacidade, CiberSegurança e Regulamentação EconómicaPrivacidade, CiberSegurança e Regulamentação Económica
Privacidade, CiberSegurança e Regulamentação Económica
 
Desenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidDesenvolvimento móvel com Google Android
Desenvolvimento móvel com Google Android
 
Acessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidAcessando Banco de Dados com o Android
Acessando Banco de Dados com o Android
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Capítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLiteCapítulo 04 - Persistência de dados com SQLite
Capítulo 04 - Persistência de dados com SQLite
 
Android Studio: Primeiros Passos
Android Studio: Primeiros PassosAndroid Studio: Primeiros Passos
Android Studio: Primeiros Passos
 
Banco de Dados - Android
Banco de Dados - AndroidBanco de Dados - Android
Banco de Dados - Android
 
Higher Education in the XXI century: challenging everything and also the libr...
Higher Education in the XXI century: challenging everything and also the libr...Higher Education in the XXI century: challenging everything and also the libr...
Higher Education in the XXI century: challenging everything and also the libr...
 
O que é a ciência de dados (data science). Discussão do conceito
O que é a ciência de dados (data science). Discussão do conceitoO que é a ciência de dados (data science). Discussão do conceito
O que é a ciência de dados (data science). Discussão do conceito
 
R: a alternativa ao SPSS e ao NVivo em software livre
R: a alternativa ao SPSS e ao NVivo em software livreR: a alternativa ao SPSS e ao NVivo em software livre
R: a alternativa ao SPSS e ao NVivo em software livre
 
O digital, a sustentabilidade e a viagem do open source ao open data
O digital, a sustentabilidade e a viagem do open source ao open dataO digital, a sustentabilidade e a viagem do open source ao open data
O digital, a sustentabilidade e a viagem do open source ao open data
 
Fórum da Arrábida: painel de discussão Privacidade e cibersegurança
Fórum da Arrábida: painel de discussão Privacidade e cibersegurança Fórum da Arrábida: painel de discussão Privacidade e cibersegurança
Fórum da Arrábida: painel de discussão Privacidade e cibersegurança
 
Desenvolvimento para Android - Bento Gonçalves (08/2011)
Desenvolvimento para Android - Bento Gonçalves (08/2011)Desenvolvimento para Android - Bento Gonçalves (08/2011)
Desenvolvimento para Android - Bento Gonçalves (08/2011)
 
2 Informix Introduction
2 Informix Introduction2 Informix Introduction
2 Informix Introduction
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - Introdução
 
Persistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidPersistencia de dados em aplicações Android
Persistencia de dados em aplicações Android
 
Android - Frameworks de Persistência
Android - Frameworks de PersistênciaAndroid - Frameworks de Persistência
Android - Frameworks de Persistência
 

Similaire à Um exemplo do uso do SQLite: uma base de dados para alumni

Aula prática 2 criação de bd e consultas básicas - com povoamento
Aula prática 2   criação de bd e consultas básicas - com povoamentoAula prática 2   criação de bd e consultas básicas - com povoamento
Aula prática 2 criação de bd e consultas básicas - com povoamentoTicianne Darin
 
Pesquisa acadêmica e preparação para pós-graduações: dicas úteis
Pesquisa acadêmica e preparação para pós-graduações: dicas úteisPesquisa acadêmica e preparação para pós-graduações: dicas úteis
Pesquisa acadêmica e preparação para pós-graduações: dicas úteisRS.dg
 
Doutorados profissionais: oportunidades e desafios
Doutorados profissionais: oportunidades e desafiosDoutorados profissionais: oportunidades e desafios
Doutorados profissionais: oportunidades e desafiosRoberto C. S. Pacheco
 
ScriptLattes: Extração de conhecimento e visualização de dados da Plataforma ...
ScriptLattes: Extração de conhecimento e visualização de dados da Plataforma ...ScriptLattes: Extração de conhecimento e visualização de dados da Plataforma ...
ScriptLattes: Extração de conhecimento e visualização de dados da Plataforma ...Simposio Internacional Network Science
 
Apresentação jorge e norma 03 10 11
Apresentação jorge e norma  03 10 11Apresentação jorge e norma  03 10 11
Apresentação jorge e norma 03 10 11jcarv
 
A importância da pós-graduação para a Biblioteconomia
A importância da pós-graduação para a BiblioteconomiaA importância da pós-graduação para a Biblioteconomia
A importância da pós-graduação para a BiblioteconomiaPaula Carina De Araújo
 
Comunicação cientifica na área do direito: avaliação da pós-graduação, indica...
Comunicação cientifica na área do direito: avaliação da pós-graduação, indica...Comunicação cientifica na área do direito: avaliação da pós-graduação, indica...
Comunicação cientifica na área do direito: avaliação da pós-graduação, indica...Paula Carina De Araújo
 
Uso de mineração nos dados do moodle para predição e combate à evasão
Uso de mineração nos dados do moodle para predição e combate à evasãoUso de mineração nos dados do moodle para predição e combate à evasão
Uso de mineração nos dados do moodle para predição e combate à evasãoRodrigo Moraes
 
Livro orcamento publico
Livro orcamento publicoLivro orcamento publico
Livro orcamento publicoLucas Bispo
 
matematica top para os professores.pptx
matematica top para os professores.pptxmatematica top para os professores.pptx
matematica top para os professores.pptxGiovannaPokorny
 
Apresentação - O Processo De Bolonha Na Web Semântica
Apresentação - O Processo De Bolonha Na Web SemânticaApresentação - O Processo De Bolonha Na Web Semântica
Apresentação - O Processo De Bolonha Na Web SemânticaEduardo Covelinhas
 

Similaire à Um exemplo do uso do SQLite: uma base de dados para alumni (20)

Aula prática 2 criação de bd e consultas básicas - com povoamento
Aula prática 2   criação de bd e consultas básicas - com povoamentoAula prática 2   criação de bd e consultas básicas - com povoamento
Aula prática 2 criação de bd e consultas básicas - com povoamento
 
Pesquisa acadêmica e preparação para pós-graduações: dicas úteis
Pesquisa acadêmica e preparação para pós-graduações: dicas úteisPesquisa acadêmica e preparação para pós-graduações: dicas úteis
Pesquisa acadêmica e preparação para pós-graduações: dicas úteis
 
Curriculo Lattes Básico: cadastro e preenchimento 13.05.2020
Curriculo Lattes Básico: cadastro e preenchimento 13.05.2020Curriculo Lattes Básico: cadastro e preenchimento 13.05.2020
Curriculo Lattes Básico: cadastro e preenchimento 13.05.2020
 
Mineração de Dados Educacionais
Mineração de Dados Educacionais Mineração de Dados Educacionais
Mineração de Dados Educacionais
 
Doutorados profissionais: oportunidades e desafios
Doutorados profissionais: oportunidades e desafiosDoutorados profissionais: oportunidades e desafios
Doutorados profissionais: oportunidades e desafios
 
Extrator Lattes CNPq (Versão SBSI)
Extrator Lattes CNPq (Versão SBSI)Extrator Lattes CNPq (Versão SBSI)
Extrator Lattes CNPq (Versão SBSI)
 
ScriptLattes: Extração de conhecimento e visualização de dados da Plataforma ...
ScriptLattes: Extração de conhecimento e visualização de dados da Plataforma ...ScriptLattes: Extração de conhecimento e visualização de dados da Plataforma ...
ScriptLattes: Extração de conhecimento e visualização de dados da Plataforma ...
 
Extrator Lattes CNPq
Extrator Lattes CNPqExtrator Lattes CNPq
Extrator Lattes CNPq
 
Conceitos para entender o Currículo Lattes...[Profa.zilka]
Conceitos para entender o Currículo Lattes...[Profa.zilka]Conceitos para entender o Currículo Lattes...[Profa.zilka]
Conceitos para entender o Currículo Lattes...[Profa.zilka]
 
Apresentação jorge e norma 03 10 11
Apresentação jorge e norma  03 10 11Apresentação jorge e norma  03 10 11
Apresentação jorge e norma 03 10 11
 
A importância da pós-graduação para a Biblioteconomia
A importância da pós-graduação para a BiblioteconomiaA importância da pós-graduação para a Biblioteconomia
A importância da pós-graduação para a Biblioteconomia
 
Comunicação cientifica na área do direito: avaliação da pós-graduação, indica...
Comunicação cientifica na área do direito: avaliação da pós-graduação, indica...Comunicação cientifica na área do direito: avaliação da pós-graduação, indica...
Comunicação cientifica na área do direito: avaliação da pós-graduação, indica...
 
Curriculo lattes
Curriculo lattesCurriculo lattes
Curriculo lattes
 
Uso de mineração nos dados do moodle para predição e combate à evasão
Uso de mineração nos dados do moodle para predição e combate à evasãoUso de mineração nos dados do moodle para predição e combate à evasão
Uso de mineração nos dados do moodle para predição e combate à evasão
 
Livro orcamento publico
Livro orcamento publicoLivro orcamento publico
Livro orcamento publico
 
Digital Object Identifier (DOI) viabilizando a via verde
Digital Object Identifier (DOI) viabilizando a via verdeDigital Object Identifier (DOI) viabilizando a via verde
Digital Object Identifier (DOI) viabilizando a via verde
 
Marcelo Bardi
Marcelo BardiMarcelo Bardi
Marcelo Bardi
 
Computação: carreira e mercado de trabalho
Computação: carreira e mercado de trabalhoComputação: carreira e mercado de trabalho
Computação: carreira e mercado de trabalho
 
matematica top para os professores.pptx
matematica top para os professores.pptxmatematica top para os professores.pptx
matematica top para os professores.pptx
 
Apresentação - O Processo De Bolonha Na Web Semântica
Apresentação - O Processo De Bolonha Na Web SemânticaApresentação - O Processo De Bolonha Na Web Semântica
Apresentação - O Processo De Bolonha Na Web Semântica
 

Plus de Luis Borges Gouveia

A Sala de Aula como um espaço de oportunidade num tempo pós pandémico
A Sala de Aula como um espaço de oportunidade num tempo pós pandémicoA Sala de Aula como um espaço de oportunidade num tempo pós pandémico
A Sala de Aula como um espaço de oportunidade num tempo pós pandémicoLuis Borges Gouveia
 
Sharing ongoing research from *TRS group on ICT for teaching and learning
Sharing ongoing research from *TRS group on ICT for teaching and learningSharing ongoing research from *TRS group on ICT for teaching and learning
Sharing ongoing research from *TRS group on ICT for teaching and learningLuis Borges Gouveia
 
Casos de Estudo e Estudos de Caso. Práticas e Operacionalização: como resolve...
Casos de Estudo e Estudos de Caso. Práticas e Operacionalização: como resolve...Casos de Estudo e Estudos de Caso. Práticas e Operacionalização: como resolve...
Casos de Estudo e Estudos de Caso. Práticas e Operacionalização: como resolve...Luis Borges Gouveia
 
Contribuições para o uso da MVR - Matriz de Valor e Relevância - Indicadores ...
Contribuições para o uso da MVR - Matriz de Valor e Relevância - Indicadores ...Contribuições para o uso da MVR - Matriz de Valor e Relevância - Indicadores ...
Contribuições para o uso da MVR - Matriz de Valor e Relevância - Indicadores ...Luis Borges Gouveia
 
Inteligência Artificial e o seu uso em contexto militar
Inteligência Artificial e o seu uso em contexto militarInteligência Artificial e o seu uso em contexto militar
Inteligência Artificial e o seu uso em contexto militarLuis Borges Gouveia
 
Curadoria Digital de Conteúdo para Educação a Distância
Curadoria Digital de Conteúdo para Educação a DistânciaCuradoria Digital de Conteúdo para Educação a Distância
Curadoria Digital de Conteúdo para Educação a DistânciaLuis Borges Gouveia
 
Proposta de um Modelo de Matriz de Correlação e Relevância – ODS e indicadore...
Proposta de um Modelo de Matriz de Correlação e Relevância – ODS e indicadore...Proposta de um Modelo de Matriz de Correlação e Relevância – ODS e indicadore...
Proposta de um Modelo de Matriz de Correlação e Relevância – ODS e indicadore...Luis Borges Gouveia
 
Livro de Resumos do Seminário PhD CI - SiTEGI 2020
Livro de Resumos do Seminário PhD CI - SiTEGI 2020Livro de Resumos do Seminário PhD CI - SiTEGI 2020
Livro de Resumos do Seminário PhD CI - SiTEGI 2020Luis Borges Gouveia
 
O Digital e um espaço de oportunidades num oceano de desafios
O Digital e um espaço de oportunidades num oceano de desafiosO Digital e um espaço de oportunidades num oceano de desafios
O Digital e um espaço de oportunidades num oceano de desafiosLuis Borges Gouveia
 
Uma análise prévia do ensino de emergência em tempos de pandemia e o impacto ...
Uma análise prévia do ensino de emergência em tempos de pandemia e o impacto ...Uma análise prévia do ensino de emergência em tempos de pandemia e o impacto ...
Uma análise prévia do ensino de emergência em tempos de pandemia e o impacto ...Luis Borges Gouveia
 
A oportunidade de um novo normal no ensino superior
A oportunidade de um novo normal no ensino superiorA oportunidade de um novo normal no ensino superior
A oportunidade de um novo normal no ensino superiorLuis Borges Gouveia
 
CULTURA DIGITAL DEFINIÇÃO E DIMENSÕES CONSTITUTIVAS: uma proposta para mapear...
CULTURA DIGITAL DEFINIÇÃO E DIMENSÕES CONSTITUTIVAS: uma proposta para mapear...CULTURA DIGITAL DEFINIÇÃO E DIMENSÕES CONSTITUTIVAS: uma proposta para mapear...
CULTURA DIGITAL DEFINIÇÃO E DIMENSÕES CONSTITUTIVAS: uma proposta para mapear...Luis Borges Gouveia
 
Transformação digital e gestão da informação
Transformação digital e gestão da informaçãoTransformação digital e gestão da informação
Transformação digital e gestão da informaçãoLuis Borges Gouveia
 
O momento da Transformação digital
O momento da Transformação digitalO momento da Transformação digital
O momento da Transformação digitalLuis Borges Gouveia
 
Emerging alternatives to leadership and governance in a digital ecosystem
Emerging alternatives to leadership and governance in a digital ecosystemEmerging alternatives to leadership and governance in a digital ecosystem
Emerging alternatives to leadership and governance in a digital ecosystemLuis Borges Gouveia
 
O lugar da leitura como espaço de convergência entre o real e o digital
O lugar da leitura como espaço de convergência entre o real e o digitalO lugar da leitura como espaço de convergência entre o real e o digital
O lugar da leitura como espaço de convergência entre o real e o digitalLuis Borges Gouveia
 
Responder a um contexto digital nas IES
Responder a um contexto digital nas IESResponder a um contexto digital nas IES
Responder a um contexto digital nas IES Luis Borges Gouveia
 

Plus de Luis Borges Gouveia (20)

A Sala de Aula como um espaço de oportunidade num tempo pós pandémico
A Sala de Aula como um espaço de oportunidade num tempo pós pandémicoA Sala de Aula como um espaço de oportunidade num tempo pós pandémico
A Sala de Aula como um espaço de oportunidade num tempo pós pandémico
 
Sharing ongoing research from *TRS group on ICT for teaching and learning
Sharing ongoing research from *TRS group on ICT for teaching and learningSharing ongoing research from *TRS group on ICT for teaching and learning
Sharing ongoing research from *TRS group on ICT for teaching and learning
 
Casos de Estudo e Estudos de Caso. Práticas e Operacionalização: como resolve...
Casos de Estudo e Estudos de Caso. Práticas e Operacionalização: como resolve...Casos de Estudo e Estudos de Caso. Práticas e Operacionalização: como resolve...
Casos de Estudo e Estudos de Caso. Práticas e Operacionalização: como resolve...
 
Contribuições para o uso da MVR - Matriz de Valor e Relevância - Indicadores ...
Contribuições para o uso da MVR - Matriz de Valor e Relevância - Indicadores ...Contribuições para o uso da MVR - Matriz de Valor e Relevância - Indicadores ...
Contribuições para o uso da MVR - Matriz de Valor e Relevância - Indicadores ...
 
Inteligência Artificial e o seu uso em contexto militar
Inteligência Artificial e o seu uso em contexto militarInteligência Artificial e o seu uso em contexto militar
Inteligência Artificial e o seu uso em contexto militar
 
Eventos PhD CI SiTEGI UFP
Eventos PhD CI SiTEGI UFPEventos PhD CI SiTEGI UFP
Eventos PhD CI SiTEGI UFP
 
Information Science PhD event
Information Science PhD eventInformation Science PhD event
Information Science PhD event
 
Curadoria Digital de Conteúdo para Educação a Distância
Curadoria Digital de Conteúdo para Educação a DistânciaCuradoria Digital de Conteúdo para Educação a Distância
Curadoria Digital de Conteúdo para Educação a Distância
 
Proposta de um Modelo de Matriz de Correlação e Relevância – ODS e indicadore...
Proposta de um Modelo de Matriz de Correlação e Relevância – ODS e indicadore...Proposta de um Modelo de Matriz de Correlação e Relevância – ODS e indicadore...
Proposta de um Modelo de Matriz de Correlação e Relevância – ODS e indicadore...
 
Livro de Resumos do Seminário PhD CI - SiTEGI 2020
Livro de Resumos do Seminário PhD CI - SiTEGI 2020Livro de Resumos do Seminário PhD CI - SiTEGI 2020
Livro de Resumos do Seminário PhD CI - SiTEGI 2020
 
O Digital e um espaço de oportunidades num oceano de desafios
O Digital e um espaço de oportunidades num oceano de desafiosO Digital e um espaço de oportunidades num oceano de desafios
O Digital e um espaço de oportunidades num oceano de desafios
 
Uma análise prévia do ensino de emergência em tempos de pandemia e o impacto ...
Uma análise prévia do ensino de emergência em tempos de pandemia e o impacto ...Uma análise prévia do ensino de emergência em tempos de pandemia e o impacto ...
Uma análise prévia do ensino de emergência em tempos de pandemia e o impacto ...
 
A oportunidade de um novo normal no ensino superior
A oportunidade de um novo normal no ensino superiorA oportunidade de um novo normal no ensino superior
A oportunidade de um novo normal no ensino superior
 
CULTURA DIGITAL DEFINIÇÃO E DIMENSÕES CONSTITUTIVAS: uma proposta para mapear...
CULTURA DIGITAL DEFINIÇÃO E DIMENSÕES CONSTITUTIVAS: uma proposta para mapear...CULTURA DIGITAL DEFINIÇÃO E DIMENSÕES CONSTITUTIVAS: uma proposta para mapear...
CULTURA DIGITAL DEFINIÇÃO E DIMENSÕES CONSTITUTIVAS: uma proposta para mapear...
 
Transformação digital e gestão da informação
Transformação digital e gestão da informaçãoTransformação digital e gestão da informação
Transformação digital e gestão da informação
 
O momento da Transformação digital
O momento da Transformação digitalO momento da Transformação digital
O momento da Transformação digital
 
Emerging alternatives to leadership and governance in a digital ecosystem
Emerging alternatives to leadership and governance in a digital ecosystemEmerging alternatives to leadership and governance in a digital ecosystem
Emerging alternatives to leadership and governance in a digital ecosystem
 
Sobre Cultura Digital
Sobre Cultura DigitalSobre Cultura Digital
Sobre Cultura Digital
 
O lugar da leitura como espaço de convergência entre o real e o digital
O lugar da leitura como espaço de convergência entre o real e o digitalO lugar da leitura como espaço de convergência entre o real e o digital
O lugar da leitura como espaço de convergência entre o real e o digital
 
Responder a um contexto digital nas IES
Responder a um contexto digital nas IESResponder a um contexto digital nas IES
Responder a um contexto digital nas IES
 

Dernier

cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfIedaGoethe
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirIedaGoethe
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosAntnyoAllysson
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPanandatss1
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 anoandrealeitetorres
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...LizanSantos1
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 

Dernier (20)

cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
 
FCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimirFCEE - Diretrizes - Autismo.pdf para imprimir
FCEE - Diretrizes - Autismo.pdf para imprimir
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteiros
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Educação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SPEducação São Paulo centro de mídias da SP
Educação São Paulo centro de mídias da SP
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
A galinha ruiva sequencia didatica 3 ano
A  galinha ruiva sequencia didatica 3 anoA  galinha ruiva sequencia didatica 3 ano
A galinha ruiva sequencia didatica 3 ano
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -XI OLIMPÍADAS DA LÍNGUA PORTUGUESA      -
XI OLIMPÍADAS DA LÍNGUA PORTUGUESA -
 
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
Intolerância religiosa. Trata-se de uma apresentação sobre o respeito a diver...
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 

Um exemplo do uso do SQLite: uma base de dados para alumni

  • 1. Mais um exemplo do recurso a bases de dados relacionais em SQLite Base de dados de supervisão / formação avançada / alumni Luís Borges Gouveia lmbg@ufp.edu.pt V2.4, Abril de 2016
  • 2. Formação avançada • A atividade de formação avançada em contexto universitário engloba a supervisão individual ou conjunta de orientação de um trabalho de investigação e desenvolvimento São considerados três tipos de alunos, função do nível da formação: – 2º ciclo, também conhecido como mestrado (MSc) – 3º ciclo, também conhecido por doutoramento (PhD) – De especialização e aprofundamento científico, também conhecido como Pós doutoramento (PostDoc) Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 3. Considere o seguinte contexto • Existe a necessidade de registo da atividade de supervisão de formação avançada, nesta fase, para registo de alumni (alunos que concluíram a sua formação avançada) – Pretende-se o registo de cada aluno com indicação do nome, sexo e nacionalidade – Também o registo da formação avançada, com base na designação, tipo, nome e escola – É necessário associar os respetivos orientadores (podem ser um ou mais do que um – normalmente, existindo co-orientação, é apenas um segundo elemento) – Cada orientador deve ser identificado pelo seu nome (e também nome de citação), sexo, cargo atual, nacionalidade e local de afiliação (escola) – A graduação de cada aluno deve incluir a data em que ocorreu o seu exame ou reconhecimento de conclusão da formação avançada Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 4. Um modelo E-R proposto para o contexto • Consideram-se: – três entidades: aluno, orientador e formação avançada – Duas relações binárias: graduação e supervisão • graduação: um aluno é graduado numa ou mais formações avançadas e uma formação avançada tem graduados um ou mais alunos • supervisão: um aluno é supervisionado por um ou mais orientadores e um orientador é supervisor de um ou mais alunos Aluno Formação avançada graduação supervisão Orientador Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 5. Esquema relacional do contexto • Aluno (ida, nome, sexo, pais) • Afiliacao (idaf, sigla, nome, subnome, local, pais, url) • FAvancada (idf, nome, titulo, tipo, designação, idaf) • Orientador (ido, nome, nome_cit, sexo, cargo, pais, idaf) • Graduacao (idg, ida, idf, data) • Supervisao (ids, ida, ido, idf) Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 6. Os comandos SQL mais comuns http://www.tutorialspoint.com/sqlite Para as tabelas da base de dados • CREATE TABLE: criar uma tabela de dados • DROP TABLE: eliminar uma tabela de dados • ALTER TABLE: alterar uma tabela de dados Para os dados, nas tabelas da base de dados • INSERT INTO: inserir dados numa tabela • SELECT: consultar dados numa tabela • UPDATE: atualizar dados numa tabela • DELETE: eliminar dados numa tabela Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 7. Criar a base de dados… • Na linha de comando do SO – Sqlite3 alumni.db • Criar a tabela Aluno (ida, nome, sexo, dnasc, pais) – Create table aluno(ida integer primary key, nome text, sexo text, pais text); • Criar a tabela Afiliacao (idaf, sigla, nome, subnome, local, pais, url) – Create table afiliacao(idaf integer primary key, sigla text, nome text, subnome text, local text, pais text, url text); • Criar a tabela Favancada (idf, nome, titulo, tipo, designação, idaf) – Create table favancada(idf integer primary key, nome text, titulo text, tipo text, designação text, idaf integer); • Criar a tabela Orientador (ido, nome, nome_cit, sexo, cargo, pais, idaf) – Create table orientador(ido integer primary key, nome text, nome_cit text, sexo text, cargo text, pais text, idaf integer); • Criar a tabela Graduacao (idg, ida, idf, data) – Create table graduacao(idg integer primary key autoincrement, ida integer, idf integer, data date); • Criar a tabela Supervisao (ids, ida, ido, idf) – Create table supervisao(ids integer primary key autoincrement, ida integer, ido integer, idf integer); Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 8. Informação sobre a bd alumni.db • Testar os comandos: .databases (lista as bases de dados consideradas no ficheiro alumni.db), .tables (lista as tabelas associadas com a base de dados) e .schema (que lista o esquema das tabelas da base de dados) Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 9. Teste do modelo criado • Para testar o modelo criado é tomada a listagem de supervisões concluídas, conforme descrita em http://homepage.ufp.pt/lmbg/mono_on.htm (alumni de Luis Borges Gouveia, a Março de 2016) que lista: – 1 pós doutoramento – 9 doutoramentos – 18 mestrados – Na página estão também listadas 8 monografias de conclusão de licenciatura, não consideradas para o presente contexto Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 10. Inserir alunos… [Aluno (ida, nome, sexo, pais)] Insert into aluno values(1, ‘Margarida Amélia Correia Bairrão do Vale Marques’, ‘Feminino’, ‘Portugal’); Insert into aluno values (2, ‘Jorge Manuel Correia da Silva Xavier’, ‘Masculino’, ‘Portugal’); Insert into aluno values (3, ‘Jorge Manuel Viegas Graça’, ‘Masculino’, ‘Portugal’); Insert into aluno values (4, ‘Paulo Adriano Sousa Teixeira’, ‘Masculino’, ‘Portugal’); Insert into aluno values (5, ‘Gilberto Manuel Gomes Branco Vasco’, ‘Masculino’, ‘Portugal’); Insert into aluno values (6, ‘Marco José de Oliveira Pereirinha’, ‘Masculino’, ‘Portugal’); Insert into aluno values (7, ‘Steven Lopes Abrantes’, ‘Masculino’, ‘Portugal’); Insert into aluno values (8, ‘Maria João Silva Teixeira Guedes Mesquita’, ‘Feminino’, ‘Portugal’); Insert into aluno values (9, ‘Márcia Cristina de Castro Moreira’, ‘Feminino’, ‘Portugal’); Insert into aluno values (10, ‘José Luis de Sousa Rodrigues’, ‘Masculino’, ‘Portugal’); Insert into aluno values (11, ‘David Lopes Abrantes’, ‘Masculino’, ‘Portugal’); Insert into aluno values (12, ‘Susana Maria Labrincha de Azevedo’, ‘Feminino’, ‘Portugal’); Insert into aluno values (13, ‘Paula Cristina Marinho Moura’, ‘Feminino’, ‘Portugal’); Insert into aluno values (14, ‘Christelle Marie Cardoso Soigné’, ‘Feminino’, ‘Portugal’); Insert into aluno values (15, ‘Helder José Marques Caixinha’, ‘Masculino’, ‘Portugal’); Insert into aluno values (16, ‘Teresa Maria Borges Cardoso’, ‘Feminino’, ‘Portugal’); Insert into aluno values (17, ‘Martinho André Cerqueira de Oliveira’, ‘Masculino’, ‘Portugal’); Insert into aluno values (18, ‘Paulo Rocha Neto’, ‘Masculino’, ‘Brasil’); Insert into aluno values (19, ‘Paulo Alexandre Lima Rurato’, ‘Masculino’, ‘Portugal’); Insert into aluno values (20, ‘Sandra Sofia Nora Gaio’, ‘Feminino’, ‘Portugal’); Insert into aluno values (21, ‘Pedro Nuno Moreira da Silva’, ‘Masculino’, ‘Portugal’); Insert into aluno values (22, ‘Luis António Morão Pinto Simões da Cunha’, ‘Masculino’, ‘Portugal’); Insert into aluno values (23, ‘Filipe Miguel Bispo Fidalgo’, ‘Masculino’, ‘Portugal’); Insert into aluno values (24, ‘Artur Jorge Afonso de Sousa’, ‘Masculino’, ‘Portugal’); Insert into aluno values (25, ‘Pereira Alfredo’, ‘Masculino’, ‘Angola’); Insert into aluno values (26, ‘Carlos Alberto Torres Quental’, ‘Masculino’, ‘Portugal’); Insert into aluno values (27, ‘Paula Peres’, ‘Feminino’, ‘Portugal’); Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 11. Inserir as afiliações… [Afiliacao (idaf, sigla, nome, subnome, local, pais, url)] Insert into afiliacao values(1, ‘UFP’, ‘Universidade Fernando Pessoa’, ‘FCT – Faculdade de Ciência e Tecnologia’, ‘Porto’, ’Portugal’, ‘http://www.ufp.pt’); Insert into afiliacao values(2, ‘UFP’, ‘Universidade Fernando Pessoa’, ‘FCHS – Faculdade de Ciências Humanas e Sociais’, ‘Porto’, ’Portugal’, ‘http://www.ufp.pt’); Insert into afiliacao values(3, ‘UA’, ‘Universidade de Aveiro’, ‘DEGEI - Departamento de Economia, Gestão e Engenharia Industrial’, ‘Aveiro’, ‘Portugal’, ‘http://www.ua.pt’); Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 12. Inserir as formações avançadas… [Favancada (idf, nome, titulo, tipo, designação, idaf)] Insert into favancada values (1, ‘Mestrado em Gestão da Ciência, Tecnologia e Inovação’, ‘Mestrado’, ‘MSc’, ‘2º ciclo de estudos’, 3); Insert into favancada values (2, ‘Mestrado em Gestão da Informação’, ‘Mestrado’, ‘MSc’, ‘2º ciclo de estudos’, 3); Insert into favancada values (3, ‘Doutoramento em Engenharia de Gestão e Industrial’, ‘Doutoramento’, ‘PhD’, ‘3º ciclo de estudos’, 3); Insert into favancada values (4, ‘Mestrado em Engenharia Informática’, ‘Mestrado’, ‘MSc’, ‘2º ciclo de estudos’, 1); Insert into favancada values (5, ‘Doutoramento em Ciências da Informação - especialização em Sistemas e Tecnologias da Informação’, ‘Doutoramento’, ‘PhD’, ‘3º ciclo de estudos’, 1); Insert into favancada values (6, ‘Mestrado em Ciências da Informação e Documentação’, ‘Mestrado’, ‘MSc’, ‘2º ciclo de estudos’, 2); Insert into favancada values (7, ‘Pós Doutoramento em e-learning’, ‘Pós Doutoramento’, ‘Post Doc’, ‘Pós Doutoramento (12 meses)’, 1); Insert into favancada values (8, ‘Mestrado em Ciências Empresariais’, ‘Mestrado’, ‘MSc’, ‘2º ciclo de estudos’, 2); Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 13. Inserir os orientadores… [Orientador (ido, nome, nome_cit, sexo, cargo, pais, idaf)] Insert into orientador values(1, ‘Luis Manuel Borges Gouveia’, ‘Luis Borges Gouveia’, ‘Masculino’, ‘Professor Associado com Agregação’, ‘Portugal’, 1); Insert into orientador values(2, ‘Joaquim José Borges Gouveia’, ‘Borges Gouveia’, ‘Masculino’, ‘Professor Catedrático’, ‘Portugal’, 3); Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 14. Associar os alunos às formações avançadas… [Graduacao (idg, ida, idf, data)] Insert into graduacao values(1, 27, 7, ‘2011-06-11’); Insert into graduacao values(2, 26, 5, ‘2015-02-17’); Insert into graduacao values(3, 25, 5, ‘2015-02-10’); Insert into graduacao values(4, 24, 5, ‘2013-04-10’); Insert into graduacao values(5, 23, 5, ‘2013-01-10’); Insert into graduacao values(6, 22, 5, ‘2012-06-10’); Insert into graduacao values(7, 21, 5, ‘2011-07-17’); Insert into graduacao values(8, 7, 5, ‘2011-07-10’); Insert into graduacao values(9, 20, 3, ‘2010-06-10’); Insert into graduacao values(10, 19, 3, ‘2008-12-12’); Insert into graduacao values(11, 18, 4, ‘2015-04-21’); Insert into graduacao values(12, 17, 8, ‘2014-03-19’); Insert into graduacao values(13, 16, 6, ‘2012-04-21’); Insert into graduacao values(14, 15, 2, ‘2009-11-11’); Insert into graduacao values(15, 14, 2, ‘2009-10-10’); Insert into graduacao values(16, 13, 2, ‘2009-10-16’); Insert into graduacao values(17, 12, 2, ‘2009-10-20’); Insert into graduacao values(18, 11, 2, ‘2007-12-10’); Insert into graduacao values(19, 10, 2, ‘2007-11-11’); Insert into graduacao values(20, 9, 4, ‘2007-07-16’); Insert into graduacao values(21, 8, 2, ‘2007-07-10’); Insert into graduacao values(22, 7, 2, ‘2007-06-10’); Insert into graduacao values(23, 6, 2, ‘2006-11-10’); Insert into graduacao values(24, 5, 2, ‘2005-11-10’); Insert into graduacao values(25, 4, 2, ‘2005-11-11’); Insert into graduacao values(26, 3, 2, ‘2005-11-20’); Insert into graduacao values(27, 2, 1, ‘2004-07-12’); Insert into graduacao values(28, 1, 2, ‘2003-04-12’); Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 15. Associar os alunos aos orientadores [supervisao(ids, ida, ido, idf)] Insert into supervisao values(1, 1, 1, 1); Insert into supervisao values(2, 2, 2, 3); Insert into supervisao values(3, 2, 1, 1); Insert into supervisao values(4, 3, 1, 1); Insert into supervisao values(5, 4, 1, 1); Insert into supervisao values(6, 5, 1, 1); Insert into supervisao values(7, 6, 1, 1); Insert into supervisao values(8, 7, 1, 1); Insert into supervisao values(9, 8, 1, 1); Insert into supervisao values(10, 9, 1, 1); Insert into supervisao values(11, 10, 1, 1); Insert into supervisao values(12, 11, 1, 1); Insert into supervisao values(13, 12, 1, 1); Insert into supervisao values(14, 13, 1, 1); Insert into supervisao values(15, 14, 1, 1); Insert into supervisao values(16, 15, 1, 1); Insert into supervisao values(17, 16, 1, 1); Insert into supervisao values(18, 17, 1, 1); Insert into supervisao values(19, 18, 1, 1); Insert into supervisao values(20, 19, 2, 3); Insert into supervisao values(21, 19, 1, 1); Insert into supervisao values(22, 20, 2, 3); Insert into supervisao values(23, 20, 1, 1); Insert into supervisao values(24, 21, 1, 1); Insert into supervisao values(25, 22, 1, 1); Insert into supervisao values(26, 23, 1, 1); Insert into supervisao values(27, 24, 1, 1); Insert into supervisao values(28, 25, 1, 1); Insert into supervisao values(29, 26, 1, 1); Insert into supervisao values(30, 27, 1, 1); Insert into supervisao values(31, 7, 1, 1); Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 16. Obter uma cópia da base dados • De forma a poder replicar a estrutura e conteúdos da base de dados é possível obter a sequência de comandos SQL, atráves de .dump – Para obter a listagem num ficheiro de texto, deve ser redirecionado o output, com base no comando .output nome_do_ficheiro, antes do uso do comando .dump (após o comando, deve redirecionar novamente o output para o ecran, utilizando .output stdout) – Um exemplo do dump da base de dados, ao lado… PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE livro(idlinteger primary key, titulo text, lingua text, isbn text); INSERT INTO "livro" VALUES(1,'Sistemas de Informa‡Æo para GestÆo','Portuguˆs','9728589433'); INSERT INTO "livro" VALUES(2,'Cidades e RegiäesDigitais: impacte nas cidadese nas pessoas','Portuguˆs','9728830033'); INSERT INTO "livro" VALUES(3,'Inform tica e Competˆncias Tecnol¢gicas para a Sociedade daInforma‡Æo','Portuguˆs','9728830041'); INSERT INTO "livro" VALUES(4,'Readings in Information Society ','Inglˆs','9728830149'); INSERT INTO "livro" VALUES(5,'Sociedade da Informa‡Æo: balan‡o e implica‡äes ','Portuguˆs','9728830181'); INSERT INTO "livro" VALUES(6,'O local e-government: a governa‡Æo digitalna autarquia','Portuguˆs','9728589417'); INSERT INTO "livro" VALUES(7,'Inform tica e Competˆncias Tecnol¢gicas para a Sociedade daInforma‡Æo 2ed','Portuguˆs','9728830300'); INSERT INTO "livro" VALUES(8,'Neg¢cio Electr¢nico - conceitose perspectivasde desenvolvimento','Portuguˆs','972858962X'); INSERT INTO "livro" VALUES(9,'GestÆo da Informa‡Æo na Biblioteca Escolar ','Portuguˆs','9789899533004'); INSERT INTO "livro" VALUES(10,'A virtual environment to share knowledge','Inglˆs','9783639129861'); INSERT INTO "livro" VALUES(11,'Ciˆncia da Informa‡Æo: contributos para o seu estudo','Portuguˆs','9789896430900'); INSERT INTO "livro" VALUES(12,'Repensar a Sociedadeda Informa‡Æo e do Conhecimento no In¡cio do S‚culo XXI','Portuguˆs','9789726186953'); CREATE TABLE autor(ida integer primary key, nome text, nacionalidadetext); INSERT INTO "autor" VALUES(1,'Luis Borges Gouveia','Portuguˆs'); INSERT INTO "autor" VALUES(2,'JoÆo Ranito','Portuguˆs'); INSERT INTO "autor" VALUES(3,'Nuno MagalhÆesRibeiro','Portuguˆs'); INSERT INTO "autor" VALUES(4,'Paulo Rurato','Portuguˆs'); INSERT INTO "autor" VALUES(5,'Sofia Gaio','Portuguˆs'); INSERT INTO "autor" VALUES(6,'Rui Moreira','Portuguˆs'); INSERT INTO "autor" VALUES(7,'Margarida BairrÆo','Portuguˆs'); INSERT INTO "autor" VALUES(8,'Judite Gon‡alves de Freitas','Portuguˆs'); INSERT INTO "autor" VALUES(9,'Ant¢nio Borges Regedor','Portuguˆs'); INSERT INTO "autor" VALUES(10,'Jos‚ Dias Coelho','Portuguˆs'); CREATE TABLE editora(ide integer primary key, nome text); INSERT INTO "editora" VALUES(1,'SPI - Principia'); INSERT INTO "editora" VALUES(2,'Edi‡äes UniversidadeFernando Pessoa'); INSERT INTO "editora" VALUES(3,'Edi‡äes GestKnowing'); INSERT INTO "editora" VALUES(4,'VDM - Verlag Dr. Muller'); INSERT INTO "editora" VALUES(5,'S¡labo'); CREATE TABLE escrito(esc integer primary key autoincrement,idl integer, ida integer); INSERT INTO "escrito" VALUES(1,1,1); INSERT INTO "escrito" VALUES(2,1,2); INSERT INTO "escrito" VALUES(3,2,1); INSERT INTO "escrito" VALUES(4,3,3); INSERT INTO "escrito" VALUES(5,3,1); INSERT INTO "escrito" VALUES(6,3,4); INSERT INTO "escrito" VALUES(7,4,1); INSERT INTO "escrito" VALUES(8,4,5); INSERT INTO "escrito" VALUES(9,5,1); INSERT INTO "escrito" VALUES(10,5,5); INSERT INTO "escrito" VALUES(11,6,1); INSERT INTO "escrito" VALUES(12,7,3); INSERT INTO "escrito" VALUES(13,7,1); INSERT INTO "escrito" VALUES(14,7,4); INSERT INTO "escrito" VALUES(15,7,6); INSERT INTO "escrito" VALUES(16,8,1); INSERT INTO "escrito" VALUES(17,9,7); INSERT INTO "escrito" VALUES(18,9,1); INSERT INTO "escrito" VALUES(19,10,1); INSERT INTO "escrito" VALUES(20,11,8); INSERT INTO "escrito" VALUES(21,11,1); INSERT INTO "escrito" VALUES(22,11,9); INSERT INTO "escrito" VALUES(23,12,10); INSERT INTO "escrito" VALUES(24,12,1); CREATE TABLE publicado(pubinteger primary key autoincrement,idl integer, ide integer); INSERT INTO "publicado"VALUES(1,1,1); INSERT INTO "publicado"VALUES(2,2,2); INSERT INTO "publicado"VALUES(3,3,2); INSERT INTO "publicado"VALUES(4,4,2); INSERT INTO "publicado"VALUES(5,5,2); INSERT INTO "publicado"VALUES(6,6,1); INSERT INTO "publicado"VALUES(7,7,2); INSERT INTO "publicado"VALUES(8,8,1); INSERT INTO "publicado"VALUES(9,9,3); INSERT INTO "publicado"VALUES(10,10,4); INSERT INTO "publicado"VALUES(11,11,2); INSERT INTO "publicado"VALUES(12,12,5); CREATE TABLE compra(cmp integer primary key autoincrement,idl integer, valor real, data date); INSERT INTO "compra" VALUES(1,1,15.0,'jan 12 2004'); INSERT INTO "compra" VALUES(2,2,12.0,'set 11 2003'); INSERT INTO "compra" VALUES(3,3,10.0,'out 20 2003'); INSERT INTO "compra" VALUES(4,4,7.0,'apr 20 2004'); INSERT INTO "compra" VALUES(5,5,14.0,'jun 15 2004'); INSERT INTO "compra" VALUES(6,6,15.0,'dez 12 2004'); INSERT INTO "compra" VALUES(7,7,10.0,'out 26 2003'); INSERT INTO "compra" VALUES(8,8,15.0,'dez 10 2006'); INSERT INTO "compra" VALUES(9,9,15.0,'mar 10 2007'); INSERT INTO "compra" VALUES(10,10,75.0,'fev 5 2009'); INSERT INTO "compra" VALUES(11,11,10.0,'jun 18 2012'); INSERT INTO "compra" VALUES(12,12,24.0,'set 10 2012'); DELETE FROM sqlite_sequence; INSERT INTO "sqlite_sequence"VALUES('escrito',24); INSERT INTO "sqlite_sequence"VALUES('publicado',12); INSERT INTO "sqlite_sequence"VALUES('compra',12); COMMIT;Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 17. Formatar os resultados no SQLite sqlite> .header on  colocar o nome e separador de cada atributo da tabela sqlite> .mode column  organizar os resultados por colunas sqlite> .timer on  ativar o contador de recursos computacionais sqlite> select * from aluno; ida nome sexo pais ---------- ------------------------------------------------------------------------ -------------------------- ------------- 1 Margarida Amélia Correia Bairrão do Vale Marques Feminino Portugal 2 Jorge Manuel Correia da Silva Xavier Masculino Portugal 3 Jorge Manuel Viegas Graça Masculino Portugal 4 Paulo Adriano Sousa Teixeira Masculino Portugal 5 Gilberto Manuel Gomes Branco Vasco Masculino Portugal 6 Marco José de Oliveira Pereirinha Masculino Portugal 7 Steven Lopes Abrantes Masculino Portugal 8 Maria João Silva Teixeira Guedes Mesquita Feminino Portugal 9 Márcia Cristina de Castro Moreira Feminino Portugal 10 José Luis de Sousa Rodrigues Masculino Portugal 11 ..... Run Time: real 0.046 user 0.000000 sys 0.000000 sqlite> Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 18. Alguns exercícios simples, com base no comando Select • Quantos alunos estão registados? – select count(*) from aluno; • Quantas graduações é que estão registadas? – select count(*) from graduacao; • Quantas formações avançadas estão registadas? – select count(*) from favancada; • Quantos orientadores estão registados? – select count(*) from orientador; • Quantos alunos do sexo feminino? – Select count(sexo) from aluno where sexo=‘Feminino’; • Quantos alunos do sexo masculino? – Select count(sexo) from aluno where sexo=‘Masculino’; Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 19. Mais alguns exercícios com base no comando Select • Listar o nome das formações avançadas registadas, por ordem alfabética – select nome from favancada order by nome; • Listar os nomes dos alunos e tipo de formação avançada que completaram, ordenado por nome de aluno – select aluno.nome, favancada.titulo from aluno, graduacao, favancada where aluno.ida=graduacao.ida and graduacao.idf=favancada.idf order by aluno.nome; • Contar o número de graduações do tipo Doutoramento – select count(*) from aluno, graduacao, favancada where aluno.ida=graduacao.ida and graduacao.idf=favancada.idf and favancada.titulo='Doutoramento'; • Listar os nomes e nacionalidade dos alunos com graduações do tipo Doutoramento – select aluno.nome, aluno.pais from aluno, graduacao, favancada where aluno.ida=graduacao.ida and graduacao.idf=favancada.idf and favancada.titulo='Doutoramento'; Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 20. Mais alguns exercícios… • Listar todos os orientadores, indicando o seu nome e nome de citação e a quantidade de orientações – select orientador.nome, nome_cit, count(*) from orientador, supervisao where orientador.ido=supervisao.ido group by nome; • Listar, todos os tipos de formação, indicando o total de graduações existentes para cada um deles – select distinct favancada.titulo, count(*) from favancada, graduacao where favancada.idf=graduacao.idf group by favancada.titulo; • Listar todas as graduações, por data, indicando a data, o nome do aluno e a formação avançada efetuada – select graduacao.data, aluno.nome, favancada.nome from graduacao, aluno, favancada where graduacao.ida=aluno.ida and graduacao.idf=favancada.idf order by data; • Contar por ano, de forma ordenada, o número de formações avançadas concluídas, mostrando inicialmente os anos mais recentes – select strftime('%Y', data), count(*) from graduacao, aluno, favancada where graduacao.ida=aluno.ida and graduacao.idf=favancada.idf group by strftime('%Y', data) order by data desc; Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 21. Ainda mais alguns exemplos • Contar o número de alunos Portugueses que concluíram a sua formação avançada – select count(*) from aluno where pais='Portugal'; • Listar as nacionalidades dos alunos que concluíram a sua formação avançada – select distinct pais from aluno; • Listar os nomes dos alunos que realizaram a sua formação avançada com co-orientações – select aluno.nome, supervisao.ida, count(supervisao.ida) as coorientacao from aluno, supervisao where aluno.ida=supervisao.ida group by supervisao.ida having count(supervisao.ida) > 1 and sum(supervisao.idf)/2 <> supervisao.idf order by supervisao.ida; Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 22. Alguns desafios 1. O que é necessário para considerar alunos de mais do que um orientador e estender este modelo de dados para um grupo de investigadores 2. O que é necessário para o modelo de dados registar os projetos dos alunos, com uma pequena descrição e dados de financiamento e datas de início e fim, bem como relatórios associados e produção científica realizada 3. O que é necessário para o modelo de dados registar, além dos alunos que concluíram as suas formações avançadas, todos aqueles que ainda as estão a realizar, indicando o seu estado e as reuniões de trabalho com os orientadores Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 23. Resposta, desafio 1 O que é necessário para considerar alunos de mais do que um orientador e estender este modelo de dados para um grupo de investigadores? • Apenas o registo de mais orientadores e as suas supervisões. O modelo de dados, tal como está, responde a esse contexto. Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 24. Notas do desafio 1 (i) • Um aspeto a ter em conta, é quando se listam orientadores e existe mais de um para um dado par (aluno e orientador), não existe indicação de o orientador ser o orientador principal ou o co-orientador – Este caso seria resolvido, adicionando um atributo novo, na tabela Supervisao (ids, ida, ido, idf), colocando, além do id do orientador (ido), qual o seu papel na supervisão em especificação) – Nova tabela: Supervisao (ids, ida, ido, idf, papelo) – Create table supervisao(ids integer primary key autoincrement, ida integer, ido integer, papelo text, idf integer); MAS como a tabela já existe e tem conteúdos, usamos em alternativa o comando ALTER TABLE, para preservar os conteúdos existentes: • alter table supervisao add column papelo text; Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 25. Notas do desafio 1 (ii) • Com a adição do novo atributo na tabela, o esquema relacional da base de dados é agora diferente: – CREATE TABLE aluno(ida integer primary key, nome text, sexo text, pais text); – CREATE TABLE afiliacao(idaf integer primary key, sigla text, nome text, subnome text, local text, pais text, url text); – CREATE TABLE favancada(idf integer primary key, nome text, titulo text, tipo text, designação text, idaf integer); – CREATE TABLE orientador(ido integer primary key, nome text, nome_cit text, sexo text, cargo text, pais text, idaf integer); – CREATE TABLE graduacao(idg integer primary key autoincrement, ida integer, idf integer, data date); – CREATE TABLE supervisao(ids integer primary key autoincrement, ida integer, ido integer, idf integer, papelo text); Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 26. Notas do desafio 1 (iii) • A tabela supervisão tem o seguinte aspecto (select * from supervisao;): ids ida ido idf papelo ---------- ---------- ---------- ---------- ---------- 1 1 1 1 2 2 2 3 3 2 1 1 4 3 1 1 5 4 1 1 6 5 1 1 7 6 1 1 8 7 1 1 9 8 1 1 10 9 1 1 11 10 1 1 12 11 1 1 13 12 1 1 14 13 1 1 15 14 1 1 16 15 1 1 17 16 1 1 18 17 1 1 19 18 1 1 20 19 2 3 21 19 1 1 22 20 2 3 23 20 1 1 24 21 1 1 25 22 1 1 26 23 1 1 27 24 1 1 28 25 1 1 29 26 1 1 30 27 1 1 31 7 1 1 A coluna papelo não tem valores, pelo que terá de ser preenchida (populada). A melhor de o fazer é com recurso a um comando que permita preencher as 31 entradas o mais rapidamente possível, usando o comando UPDATE update supervisão set papelo='principal’; Mas agora, é preciso ver quais as supervisões em que devemos colocar o valor alternativo de co-orientador. O Critério é quando existem dois orientadores, para a lista existente, o co-orientador é Luis Borges Gouveia Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 27. Notas do desafio 1 (iv) • Processo de descoberta e alteração de valores: Passo 1: listar todos os alunos com outro orientador além de Luis Borges Gouveia, descobrindo os ida dos alunos envolvidos…. select aluno.ida, aluno.nome, orientador.nome from aluno, supervisao, orientador where aluno.ida=supervisao.ida and supervisao.ido=orientador.ido and orientador.nome <> 'Luis Manuel Borges Gouveia' ; ida nome nome ---------- ----------------------------------------------- ----------------------------------------- 2 Jorge Manuel Correia da Silva Xavier Joaquim José Borges Gouveia 19 Paulo Alexandre Lima Rurato Joaquim José Borges Gouveia 20 Sandra Sofia Nora Gaio Joaquim José Borges Gouveia Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 28. Notas do desafio 1 (v) • Processo de descoberta e alteração de valores: Passo 2: listar os registos de supervisão associados com os alunos com ida 2, 19 e 20 select * from supervisao where ida=2 or ida=19 or ida=20; ids ida ido idf papelo ---------- -------- -------- --------- ------------- 2 2 2 3 principal 3 2 1 1 principal 20 19 2 3 principal 21 19 1 1 principal 22 20 2 3 principal 23 20 1 1 principal Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 29. Notas do desafio 1 (vi) • Processo de descoberta e alteração de valores: Passo 3: listar os orientadores para identificar os seus ido, de forma a saber que Luis Borges Gouveia, corresponde ao ido=1 select * from orientador; ido nome nome_cit sexo cargo pais idaf ----- --------------------------------------- -------------------------- -------------- ------------------------------------------------ ----------- ----- 1 Luis Manuel Borges Gouveia Luis Borges Gouveia Masculino Professor Associado com Agregação Portugal 1 2 Joaquim José Borges Gouve Borges Gouveia Masculino Professor Catedrático Portugal 3 Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 30. Notas do desafio 1 (vii) • Processo de descoberta e alteração de valores: Passo 4: listar as supervisões que correspondem às entras dos alunos 2, 19 e 20 e ao orientador Luis Borges Gouveia, corresponde ao ido=1, de forma a obter os respectivos id de supervisão (são o 3, 21 e 23) select * from supervisao where (ida=2 or ida=19 or ida=20) and ido=1; ids ida ido idf papelo ------- ------- --------- ------- -------------- 3 2 1 1 principal 21 19 1 1 principal 23 20 1 1 principal Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 31. Notas do desafio 1 (viii) • Processo de descoberta e alteração de valores: Passo 5: Alterar o atributo papelo (papel do orientador) para co-orientador, nas entradas de supervisão correspondentes aos alunos 2, 19 e 20 e ao orientador 1 sqlite> update supervisao set papelo='co-orientador' where (ida=2 or ida=19 or ida=20) and ido=1; Passo 6: Verificar a alteração... sqlite> select * from supervisao where (ida=2 or ida=19 or ida=20) and ido=1; ids ida ido idf papelo ------- --------- ------- -------- --------------------- 3 2 1 1 co-orientador 21 19 1 1 co-orientador 23 20 1 1 co-orientador Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 32. Notas do desafio 1 (ix) Considerando os dados existentes, antes da alteração do modelo • Listar todos os alunos e respetivos orientadores: select aluno.nome, orientador.nome from aluno, supervisao, orientador where aluno.ida=supervisao.ida and supervisao.ido=orientador.ido order by orientador.nome; nome (aluno) nome (orientador) ------------------------------------ - -------------------------------------- Jorge Manuel Correia da Silva Xavier Joaquim José Borges Gouveia Paulo Alexandre Lima Rurato Joaquim José Borges Gouveia Sandra Sofia Nora Gaio Joaquim José Borges Gouveia Margarida Amélia Correia Bairrão d Luis Manuel Borges Gouveia Jorge Manuel Correia da Silva Xavier Luis Manuel Borges Gouveia Jorge Manuel Viegas Graça Luis Manuel Borges Gouveia Paulo Adriano Sousa Teixeira Luis Manuel Borges Gouveia Gilberto Manuel Gomes Branco Vasco Luis Manuel Borges Gouveia Marco José de Oliveira Pereirinha Luis Manuel Borges Gouveia Steven Lopes Abrantes Luis Manuel Borges Gouveia Maria João Silva Teixeira Guedes Me Luis Manuel Borges Gouveia Márcia Cristina de Castro Moreira Luis Manuel Borges Gouveia José Luis de Sousa Rodrigues Luis Manuel Borges Gouveia David Lopes Abrantes Luis Manuel Borges Gouveia Susana Maria Labrincha de Azevedo Luis Manuel Borges Gouveia Paula Cristina Marinho Moura Luis Manuel Borges Gouveia Christelle Marie Cardoso Soigné Luis Manuel Borges Gouveia Helder José Marques Caixinha Luis Manuel Borges Gouveia Teresa Maria Borges Cardoso Luis Manuel Borges Gouveia Martinho André Cerqueira de Oliveir Luis Manuel Borges Gouveia Paulo Rocha Neto Luis Manuel Borges Gouveia Paulo Alexandre Lima Rurato Luis Manuel Borges Gouveia Sandra Sofia Nora Gaio Luis Manuel Borges Gouveia Pedro Nuno Moreira da Silva Luis Manuel Borges Gouveia Luis António Morão Pinto Simões d Luis Manuel Borges Gouveia Filipe Miguel Bispo Fidalgo Luis Manuel Borges Gouveia Artur Jorge Afonso de Sousa Luis Manuel Borges Gouveia Pereira Alfredo Luis Manuel Borges Gouveia Carlos Alberto Torres Quental Luis Manuel Borges Gouveia Paula Peres Luis Manuel Borges Gouveia Steven Lopes Abrantes Luis Manuel Borges Gouveia Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 33. Notas do desafio 1 (x) Considerando os dados existentes, antes da alteração do modelo • Listar os alunos com co-orientadores, além de Luis Borges Gouveia: select aluno.nome, orientador.nome from aluno, supervisao, orientador where aluno.ida=supervisao.ida and supervisao.ido=orientador.ido and orientador.nome <> 'Luis Manuel Borges Gouveia' order by orientador.nome; nome (aluno) nome (orientador) ------------------------------------------------ ---------------------------- Jorge Manuel Correia da Silva Xavier Joaquim José Borges Gouveia Paulo Alexandre Lima Rurato Joaquim José Borges Gouveia Sandra Sofia Nora Gaio Joaquim José Borges Gouveia • Neste exemplo, obtêm-se a listagem de todos os co-orientadores de Luis Borges Gouveia (LBG), porque o contexto é os alumni de LBG. Para incluir outros orientadores e respetivos alumni (não coincidentes com os de LBG) seria impossível distinguir os co-orientadores associados um dado orientador, sem a alteração proposta no desafio 1 Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 34. Notas do desafio 1 (xi) select aluno.nome, supervisao.ida, count(supervisao.ida) as coorientacao from aluno, supervisao where aluno.ida=supervisao.ida group by supervisao.ida having count(supervisao.ida) > 1 and sum(supervisao.idf)/2 <> supervisao.idf order by supervisao.ida; nome ida coorientacao --------------------------------------------------- ---------- ------------------- Jorge Manuel Correia da Silva Xavier 2 2 Paulo Alexandre Lima Rurato 19 2 Sandra Sofia Nora Gaio 20 2 select aluno.nome, supervisao.ida from supervisao, aluno where supervisao.papelo='co-orientador' and supervisao.ida=aluno.ida; nome ida ---------------------------------------------------------- Jorge Manuel Correia da Silva Xavier 2 Paulo Alexandre Lima Rurato 19 Sandra Sofia Nora Gaio 20 Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 35. Resposta, desafio 2 O que é necessário para o modelo de dados registar os projetos dos alunos, com uma pequena descrição, dados de financiamento e datas de início e fim do projeto, bem como os relatórios associados e produção científica realizada? • Neste caso, o modelo de dados tem de ser estendido de forma a assegurar as novas necessidades Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 36. Considere o seguinte contexto para o desafio 2 • Existe a necessidade de registo dos projetos associados com os alunos e sob orientação. Dessa forma, é necessário considerar: – O registo de cada projeto, o seu responsável (orientador) e os alunos que o realizam (podem ser um ou mais alunos) – O projeto deve conter informação sobre a sua data de início e de fim, o orçamento, o nome e sigla usada e caso tenha financiamento, deve indicar o montante e o respetivo financiador – Para cada projeto deve ser ainda indicado o seu estado, nomeadamente se já se encontra concluído, está em curso ou em candidatura, ou ainda suspenso ou em avaliação – Em princípio cada aluno está associado a um só projeto em contexto de formação avançada, mas como existe a possibilidade de um aluno poder frequentar mais do que uma formação avançada (mesma a tempos diferentes), também pode estar associado a mais do que um projeto – Embora o projeto tenha apenas um só responsável que terá de ser um orientador, pode ter envolvidos um ou mais alunos. Desta forma, cada aluno deve ser associado de modo a ser indicado a data de início e de fim do seu envolvimento com o projeto. Deve ainda ser indicado o estado desse envolvimento, nomeadamente se está em curso, suspenso ou concluído Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 37. Modelo E-R para o contexto do desafio 2 Mais uma entidade (projeto) e duas relações: trabalho (um aluno trabalha em vários projetos e num projeto, trabalham vários alunos) e liderar (um orientador lidera vários projetos e um projeto é liderado por um orientador ALUNO ORIENTADOR FORMAÇÃO AVANÇADA PROJETO supervisão graduação liderar trabalho Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 38. Esquema relacional do contexto • Aluno (ida, nome, sexo, pais) • Afiliacao (idaf, sigla, nome, subnome, local, pais, url) • FAvancada (idf, nome, titulo, tipo, designação, idaf) • Orientador (ido, nome, nome_cit, sexo, cargo, pais, idaf) • Graduacao (idg, ida, idf, data) • Supervisao (ids, ida, ido, idf, papelo) São acrescentadas mais duas tabelas: • Projeto(idp, nome, ido, sigla, orcamento, sponsor, financiamento, datai, dataf, estado) • Trabalho(idt, idp, ida, datai, dataf, estado) Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 39. Acrescentar a base de dados alumni.db • Na linha de comando do SO, abrir a bd existente – Sqlite3 alumni.db • Criar a tabela Projeto(idp, nome, ido, sigla, orcamento, sponsor, financiamento, datai, dataf) – Create table projeto(idp integer primary key, nome text, ido integer, sigla text, orcamento real, sponsor text, financiamento real, datai date, dataf data, estado text); • Criar a tabela Trabalho(idt, idp, ida, datai, dataf, estado) – Create table trabalho(idt integer primary key, idp integer, ida integer, datai date, dataf date, estado text); Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 40. Sobre o modelo de dados estendido • Depois de introduzir os dados associados com os projetos e de os relacionar com os alunos (trabalho), é possível consultar os dados, como por exemplo: listar, os projetos, por nome do aluno, estado do seu trabalho, estado do projeto e financiamento do projeto – select projeto.nome, aluno.nome, trabalho.estado, projeto.estado, projeto.financiamento from projeto, trabalho, aluno where aluno.ida=trabalho.ida and trabalho.idp=projeto.idp; • Desta forma, novas funcionalidades foram acrescentadas, permitindo a gestão da informação associada com os projetos, o seu estado, financiamento, datas associadas e alunos e responsáveis implicados • Mas atenção!!! falta ainda um dos requisitos solicitados no desafio 2: (…), bem como relatórios associados e produção científica realizada? Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 41. Solução para incluir relatórios e publicações • A forma mais fácil, é considerar estes elementos como resultados dos projetos e em consequência, registar apenas a sua relação com os projetos, uma citação completa e um identificador para a base de dados de publicações que foi já objeto de estudo e projeto • No contexto apresentado, toma-se por princípio que cada relatório ou publicação, está associada a apenas um dado projeto. • A citação do trabalho é realizada de forma a construir uma frase com a menção dos autores, da data, título, local de publicação, editora e demais elementos, em função do tipo de publicação que deve também ser indicado • Um exemplo de uma citação: – Oliveira, M.; Nakamura, E.; Gouveia, L.; Massunari, L. & Louzada, M. (2015). Computational solution "ODR-ATA" to mesurement of bone density from radiographic density. 4th Joint Meeting of ECTS and IBMS. European Calcified Tissue Society International Bone & Mineral Society. The Netherlands, Rotterdam. 25-28 April. ECTS-IBMS Abstracts (2015), pp 77. Poster on proceedings: IBMS BoneKEy 13, Article number: 673 (2015) | doi:10.1038/bonekey.2015.40 Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 42. Modelo E-R para o contexto completo do desafio 2 (com os resultados dos projetos) ALUNO ORIENTADOR FORMAÇÃO AVANÇADA PROJETO supervisão graduação liderar trabalho possui RESULTADO Mais uma entidade (resultado) e uma relação: possui (um projeto possui vários resultados e um resultado está associado a um projeto) Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 43. Acrescentar a base de dados alumni.db • Na linha de comando do SO, abrir a bd existente – Sqlite3 alumni.db • Depois de criadas as tabelas Projeto eTrabalho, é agora necessário criar a tabela Resultado(idr, idp, citacao, tipopub, bdpubs) – Create table resultado(idr integer primary key, idp integer, citacao text, tipopub text, bdpubs integer); • Em que: – idr: identificador único de resultado – idp: identificador único de projeto – citacao: citação completa do resultado – tipopub: tipo de publicação do resultado – bdpubs: identificador único para relacionar com a base de dados de publicações Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 44. Resposta, desafio 3 O que é necessário para o modelo de dados registar, além dos alunos que concluíram as suas formações avançadas, todos aqueles que ainda as estão a realizar, indicando o seu estado e as reuniões de trabalho com os orientadores? • Neste caso, o modelo de dados tem de ser estendido de forma a assegurar as novas necessidades Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 45. Considere o seguinte contexto para o desafio 3 • O registo de alunos em curso, altera o contexto inicial proposto para a base de dados alumni: como o nome indica, é para registo dos antigos alunos • Desta forma, algumas alterações necessitam de ser realizadas de modo a permitir não só o registo e manutenção do estado em que se encontram os alunos, como a identificação de quem já concluiu a sua formação avançada • A indicação mais fácil para realizar essa identificação é na tabela graduação. É importante tomar em consideração que um aluno pode ter mais do que um orientador e que pode realizar mais do que uma formação avançada • Será necessário o registo das interações entre alunos e orientadores, registando o seu tempo e uma descrição associada. A opção foi pela criação de uma estrutura que agrega a interação, o orientador e a graduação de modo a permitir a existência de mais do que um orientador e garantindo que o aluno mantêm o estado, sem repetições, pois o seu relacionamento é feito de forma indireta, precisamente pela tabela graduação (que contém a identificação do aluno) Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 46. Modelo E-R para o contexto do desafio 2 ALUNO ORIENTADOR FORMAÇÃO AVANÇADA PROJETO supervisão graduação liderar trabalho possui RESULTADO encontro INTERAÇÃO Mais uma entidade (interação) e uma relação: encontro (um orientador tem encontros com várias interações e uma interação tem encontros com vários orientadores) Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 47. Acrescentar a base de dados alumni.db • Na linha de comando do SO, abrir a bd existente – Sqlite3 alumni.db • Criar a tabela Interacao(idi, tipo, data, horai, horaf, descre) – Create table interacao(idi integer primary key, tipo text, data date, horai time, horaf time, descre text); • Criar a tabela Encontro(ide, idi, ido, idg) – Create table encontro(ide integer primary key, idi integer, ido integer, idg integer); • Adicionar o atributo estado à tabela Graduação (idg, ida, idf, data, estado) – alter table graduacao add column estado text; Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 48. Assegurar a utilização dos dados existentes • A alteração na tabela graduação é crucial, de forma a permitir identificar quais os alunos que já finalizaram os seus graus, pois agora são também incluídos na tabela alunos, aqueles que estão ainda noutros estados do seu percurso de trabalho • Assim, é necessário adicionar o atributo estado na tabela graduação, que distingue antigos alunos dos alunos atuais • Antes de introduzir novos alunos, deve ser colocado o estado (atributo da tabela graduação) dos existentes a ‘finalizada’; para tal, podemos usar um comando SQL para atualizar todos os elementos da tabela (28 graduações): – update graduacao set estado=‘finalizado’; • Desta forma, para saber quais os alunos que já concluíram a sua formação avançada, listando o respetivo nome e nome do grau, é usado o comando SQL: – select aluno.nome, favancada.nome from aluno, favancada, graduacao where aluno.ida=graduacao.ida and graduacao.idf=favancada.idf order by favancada.nome; Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 49. Modelo E-R final para os alumni e incorporando projetos, resultados e o registo de atividade de supervisão de alunos atuais ALUNO ORIENTADOR FORMAÇÃO AVANÇADA PROJETO supervisão graduação liderar trabalho possui RESULTADO encontro INTERAÇÃO Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 50. Leitura do modelo E-R final • Relação binária graduação, muitos para muitos – Um aluno é graduado em uma ou várias formações avançadas – Uma formação avançada permite a graduação de um ou vários alunos • Relação binária supervisão, muitos para muitos – Um aluno tem supervisão de um ou vários orientadores – Um orientador é supervisor de um ou vários alunos • Relação binária trabalho, muitos para muitos – Um aluno trabalha num ou vários projetos – Num projeto trabalham um ou vários alunos • Relação binária liderar, um para muitos – Um orientador lidera um ou vários projetos – Um projeto é liderado por um orientador • Relação binária possui, um para muitos – Um projeto possui um ou mais resultados – Um resultado está associado com um projeto • Relação binária encontro, muitos para muitos – Um orientador tem encontro com um ou várias interações – Uma interação tem encontro com um ou mais orientadores Seis (6) entidades: • Aluno • Formação avançada • Orientador • Projeto • Resultado • Interação Seis (6) relações binárias • Graduação • Supervisão • Trabalho • Liderar • Possui • Encontro Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 51. Esquema relacional final para os alumni e incorporando projetos, resultados e o registo de atividade de supervisão de alunos atuais 11 Tabelas, com um total de 66 atributos: • CREATE TABLE aluno(ida integer primary key, nome text, sexo text, pais text); • CREATE TABLE afiliacao(idaf integer primary key, sigla text, nome text, subnome text, local text, pais text, url text); • CREATE TABLE favancada(idf integer primary key, nome text, titulo text, tipo text, designacao text, idaf integer); • CREATE TABLE orientador(ido integer primary key, nome text, nome_cit text, sexo text, cargo text, pais text, idaf integer); • CREATE TABLE graduacao(idg integer primary key autoincrement, ida integer, idf integer, data date, estado text); • CREATE TABLE supervisao(ids integer primary key autoincrement, ida integer, ido integer, idf integer, papelo text); • CREATE TABLE projeto(idp integer primary key, nome text, ido integer, sigla text, orcamento real, sponsor text, financiamento real, datai date, dataf date, estado text); • CREATE TABLE trabalho(idt integer primary key, idp integer, ida integer, datai date, dataf date, estado text); • CREATE TABLE interacao(idi integer primary key, tipo text, data date, horai time, horaf time, descre text); • CREATE TABLE resultado(idr integer primary key, idp integer, citacao text, tipopub text, bdpubs integer); • CREATE TABLE encontro(ide integer primary key, idi integer, ido integer, idg integer, estaluno text); Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 52. Resumindo • Registo da atividade de supervisão de formação avançada para registo de alumni • Considerar alunos de mais do que um orientador e estender o modelo de dados para um grupo de investigadores • Considerar o registo dos projetos associados com os alunos e sob orientação • Considerar o registo de relatórios associados e produção científica realizada no âmbito da atividade de formação avançada • Registar todos os alunos que ainda estão em formação avançada, indicando o seu estado e as reuniões de trabalho com os orientadores ALUNO ORIENTADOR FORMAÇÃO AVANÇADA PROJETO supervisão graduação liderar trabalho possui RESULTADO encontro INTERAÇÃO Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 53. Especificações completas para a base de dados desenvolvida • Necessário o registo da atividade de supervisão de formação avançada para registo de alumni (alunos que concluíram a sua formação avançada) – Pretende-se o registo de cada aluno com indicação do nome, sexo e nacionalidade – Também o registo da formação avançada, com base na designação, tipo, nome e escola – É necessário associar os respetivos orientadores (podem ser um ou mais do que um – normalmente, existindo coorientação, é apenas um segundo elemento) – Cada orientador deve ser identificado pelo seu nome (e também nome de citação), sexo, cargo atual, nacionalidade e local de afiliação (escola) – A graduação de cada aluno deve incluir a data em que ocorreu o seu exame ou reconhecimento de conclusão da formação avançada • Necessário considerar alunos de mais do que um orientador e estender o modelo de dados para um grupo de investigadores • Necessário considerar o registo dos projetos associados com os alunos e sob orientação. Dessa forma, é necessário considerar: – O registo de cada projeto, o seu responsável (orientador) e os alunos que o realizam (podem ser um ou mais alunos) – O projeto deve conter informação sobre a sua data de início e de fim, o orçamento, o nome e sigla usada e caso tenha financiamento, deve indicar o montante e o respetivo financiador – Para cada projeto deve ser ainda indicado o seu estado, nomeadamente se já se encontra concluído, está em curso ou em candidatura, ou ainda suspenso ou em avaliação – Em princípio cada aluno está associado a um só projeto em contexto de formação avançada, mas como existe a possibilidade de um aluno poder frequentar mais do que uma formação avançada (mesma a tempos diferentes), também pode estar associado a mais do que um projeto – Embora o projeto tenha apenas um só responsável que terá de ser um orientador, pode ter envolvidos um ou mais alunos. Desta forma, cada aluno deve ser associado de modo a ser indicado a data de início e de fim do seu envolvimento com o projeto. Deve ainda ser indicado o estado desse envolvimento, nomeadamente se está em curso, suspenso ou concluído • Necessário considerar o registo de relatórios associados e produção científica realizada no âmbito da atividade de formação avançada • Necessário registar, além dos alunos que concluíram as suas formações avançadas, todos aqueles que ainda as estão a realizar, indicando o seu estado e as reuniões de trabalho com os orientadores – O registo de alunos em curso, altera o contexto inicial proposto para a base de dados alumni: como o nome indica, é para registo dos antigos alunos – Desta forma, algumas alterações necessitam de ser realizadas de modo a permitir não só o registo e manutenção do estado em que se encontram os alunos, como a identificação de quem já concluiu a sua formação avançada – A indicação mais fácil para realizar essa identificação é na tabela graduação. É importante tomar em consideração que um aluno pode ter mais do que um orientador e que pode realizar mais do que uma formação avançada – Será necessário o registo das interações entre alunos e orientadores, registando o seu tempo e uma descrição associada. A opção foi pela criação de uma estrutura que agrega a interação, o orientador e a graduação de modo a permitir a existência de mais do que um orientador e garantindo que o aluno mantêm o estado, sem repetições, pois o seu relacionamento é feito de forma indireta, precisamente pela tabela graduação (que contém a identificação do aluno) Luís Borges Gouveia, lmbg@ufp.edu.pt
  • 54. Esquema relacional com suporte explícito de chaves estrangeiras (força a existência de uma referência prévia da chave estrangeira, na chave primária da tabela a que lhe corresponde) 11 Tabelas, com um total de 66 atributos: • CREATE TABLE aluno(ida integer primary key, nome text, sexo text, pais text); • CREATE TABLE afiliacao(idaf integer primary key, sigla text, nome text, subnome text, local text, pais text, url text); • CREATE TABLE favancada(idf integer primary key, nome text, titulo text, tipo text, designacao text, idaf integer); • CREATE TABLE orientador(ido integer primary key, nome text, nome_cit text, sexo text, cargo text, pais text, idaf integer, foreign key(idaf) references afiliacao(idaf) ); • CREATE TABLE graduacao(idg integer primary key autoincrement, ida integer, idf integer, data date, estado text, foreign key(ida) references aluno(ida), foreign key(idf) references favancada(idaf)); • CREATE TABLE supervisao(ids integer primary key autoincrement, ida integer, ido integer, idf integer, papelo text, foreign key(ida) references aluno(ida), foreign key(ido) references orientador(ido), foreign key(idf) references favancada(idf)); • CREATE TABLE projeto(idp integer primary key, nome text, ido integer, sigla text, orcamento real, sponsor text, financiamento real, datai date, dataf date, estado text, foreign key(ido) references orientador(ido)); • CREATE TABLE trabalho(idt integer primary key, idp integer, ida integer, datai date, dataf date, estado text, foreign key(idp) references projeto(idp), foreign key(ida) references aluno(ida)); • CREATE TABLE interacao(idi integer primary key, tipo text, data date, horai time, horaf time, descre text); • CREATE TABLE resultado(idr integer primary key, idp integer, citacao text, tipopub text, bdpubs integer, foreign key(idp) references projeto(idp)); • CREATE TABLE encontro(ide integer primary key, idi integer, ido integer, idg integer, estaluno text, foreign key(idi) references interacao(idi), foreign key(ido) references orientador(ido), foreign key(idg) references graduacao(idg)); XXX Chave primária YYY Chave estrangeira ou secundária Luís Borges Gouveia, lmbg@ufp.edu.pt

Notes de l'éditeur

  1. sqlite> select count(*) from aluno; 27 sqlite> Select count(*) from graduacao; 28 sqlite> Select count(*) from favancada; 8 sqlite> select count(*) from orientador; count(*) --------------- 2 sqlite> Select count(sexo) from aluno where sexo=‘Feminino’; count(sexo) --------------- 9 sqlite> Select count(sexo) from aluno where sexo=‘Masculino’; count(sexo) --------------- 18 sqlite>
  2. sqlite> select count(*) from aluno; 27 sqlite> Select count(*) from graduacao; 28 sqlite> Select count(*) from favancada; 8 sqlite> select nome from favancada order by nome; Doutoramento em Ciências da Informação - especialização em Sistemas e Tecnologias da Informação Doutoramento em Engenharia de Gestão e Industrial Mestrado em Ciências Empresariais Mestrado em Ciências da Informação e Documentação Mestrado em Engenharia Informática Mestrado em Gestão da Ciência, Tecnologia e Inovação Mestrado em Gestão da Informação Pós Doutoramento em e-learning sqlite> select aluno.nome, favancada.titulo from aluno, graduacao, favancada where aluno.ida=graduacao.ida and graduacao.idf=favancada.idf order by aluno.nome; nome titulo -------------------------------------------------- -------------------- Artur Jorge Afonso de Sousa Doutoramento Carlos Alberto Torres Quental Doutoramento Christelle Marie Cardoso Soigné Mestrado David Lopes Abrantes Mestrado Filipe Miguel Bispo Fidalgo Doutoramento Gilberto Manuel Gomes Branco Vasco Mestrado Helder José Marques Caixinha Mestrado Jorge Manuel Correia da Silva Xavier Mestrado Jorge Manuel Viegas Graça Mestrado José Luis de Sousa Rodrigues Mestrado Luis António Morão Pinto Simões da Cunha Doutoramento Marco José de Oliveira Pereirinha Mestrado Margarida Amélia Correia Bairrão do Vale Marque Mestrado Maria João Silva Teixeira Guedes Mesquita Mestrado Martinho André Cerqueira de Oliveira Mestrado Márcia Cristina de Castro Moreira Mestrado Paula Cristina Marinho Moura Mestrado Paula Peres Pós Doutoramento Paulo Adriano Sousa Teixeira Mestrado Paulo Alexandre Lima Rurato Doutoramento Paulo Rocha Neto Mestrado Pedro Nuno Moreira da Silva Doutoramento Pereira Alfredo Doutoramento Sandra Sofia Nora Gaio Doutoramento Steven Lopes Abrantes Doutoramento Steven Lopes Abrantes Mestrado Susana Maria Labrincha de Azevedo Mestrado Teresa Maria Borges Cardoso Mestrado
  3. sqlite> select orientador.nome, nome_cit, count(*) from orientador, supervisao where orientador.ido=supervisao.ido group by nome; nome nome_cit count(*) -------------------------------------------------- -------------------- ---------- Joaquim José Borges Gouveia Borges Gouveia 3 Luis Manuel Borges Gouveia Luis Borges Gouveia 28 sqlite> select distinct favancada.titulo, count(*) from favancada, graduacao where favancada.idf=graduacao.idf group by favancada.titulo; titulo count(*) -------------------------------------------------- -------------------- Doutoramento 9 Mestrado 18 Pós Doutoramento 1 sqlite> sqlite> select graduacao.data, aluno.nome, favancada.nome from graduacao, aluno, favancada where graduacao.ida=aluno.ida and graduacao.idf=favancada.idf group by data order by strftime('%Y', data); data nome nome --------------- -------------------------------------------------- ------------------------------------------------------------ 2003-04-12 Margarida Amélia Correia Bairrão do Vale Marque Mestrado em Gestão da Informação 2004-07-12 Jorge Manuel Correia da Silva Xavier Mestrado em Gestão da Ciência, Tecnologia e Inovação 2005-11-10 Gilberto Manuel Gomes Branco Vasco Mestrado em Gestão da Informação 2005-11-11 Paulo Adriano Sousa Teixeira Mestrado em Gestão da Informação 2005-11-20 Jorge Manuel Viegas Graça Mestrado em Gestão da Informação 2006-11-10 Marco José de Oliveira Pereirinha Mestrado em Gestão da Informação 2007-06-10 Steven Lopes Abrantes Mestrado em Gestão da Informação 2007-07-10 Maria João Silva Teixeira Guedes Mesquita Mestrado em Gestão da Informação 2007-07-16 Márcia Cristina de Castro Moreira Mestrado em Engenharia Informática 2007-11-11 José Luis de Sousa Rodrigues Mestrado em Gestão da Informação 2007-12-10 David Lopes Abrantes Mestrado em Gestão da Informação 2008-12-12 Paulo Alexandre Lima Rurato Doutoramento em Engenharia de Gestão e Industrial 2009-10-10 Christelle Marie Cardoso Soigné Mestrado em Gestão da Informação 2009-10-16 Paula Cristina Marinho Moura Mestrado em Gestão da Informação 2009-10-20 Susana Maria Labrincha de Azevedo Mestrado em Gestão da Informação 2009-11-11 Helder José Marques Caixinha Mestrado em Gestão da Informação 2010-06-10 Sandra Sofia Nora Gaio Doutoramento em Engenharia de Gestão e Industrial 2011-06-11 Paula Peres Pós Doutoramento em e-learning 2011-07-10 Steven Lopes Abrantes Doutoramento em Ciências da Informação - especializaç? 2011-07-17 Pedro Nuno Moreira da Silva Doutoramento em Ciências da Informação - especializaç? 2012-04-21 Teresa Maria Borges Cardoso Mestrado em Ciências da Informação e Documentação 2012-06-10 Luis António Morão Pinto Simões da Cunha Doutoramento em Ciências da Informação - especializaç? 2013-01-10 Filipe Miguel Bispo Fidalgo Doutoramento em Ciências da Informação - especializaç? 2013-04-10 Artur Jorge Afonso de Sousa Doutoramento em Ciências da Informação - especializaç? 2014-03-19 Martinho André Cerqueira de Oliveira Mestrado em Ciências Empresariais 2015-02-10 Pereira Alfredo Doutoramento em Ciências da Informação - especializaç? 2015-02-17 Carlos Alberto Torres Quental Doutoramento em Ciências da Informação - especializaç? 2015-04-21 Paulo Rocha Neto Mestrado em Engenharia Informática sqlite>
  4. Apenas o registo de mais orientadores e registar as suas supervisões. O modelo de dados, tal como está, responde a esse contexto. Neste caso, o modelo de dados tem de ser extendido de forma a assegurar as novas necessidades Neste caso, o modelo de dados tem de ser extendido de forma a assegurar as novas necessidades