SlideShare uma empresa Scribd logo
1 de 33
Um exemplo do uso de bases de
dados relacionais
SQLite e a exploração SQL
Luís Borges Gouveia
lmbg@ufp.edu.pt
V2.1, Fevereiro de 2016
Para as práticas
• Utilização do um SGBD relacional
– http://www.sqlite.org
– Software livre, open source e sem custos, de domínio
público (opensource, freeware, public domain)
– Disponível para os sistemas operativos: Linux, MS
Windows e MAC OS
– Permite a criação de bases de dados de fácil utilização
e é adotado em inúmeras aplicações:
• Entre outras: Dropbox, Firefox, Skype e Adobe Acrobat
– Motor de base de dados fiável e de pequena
dimensão
Iniciar o SQLite
• O SQLite é um SGBD de interface de linha de comando (baseado num só
ficheiro executável que funciona isolado) que é muito fácil de instalar e
usar (não necessita de servidor ou de um cliente)
– MS Windows: ir para http://www.sqlite.org/download.html e considerar a sessão
Precompiled Binaries for Windows. Descarregar o ficheiro .zip do link command-line shell
(não o DLL ou o da analysis). Extrair o ficheiro sqlite3.exe e colocar o mesmo onde for
pretendido – o desktop pode ser um local. Basta agora um duplo clique no ficheiro
extraído para ser executado
– MAC OS X: ir para http://www.sqlite.org/download.html e considerar a sessão
Precompiled Binaries for Mac OS X. Descarregar o ficheiro .zip file do link command-line
shell (não o link analysis). Extrair o ficheiro sqlite3 e colocar o mesmo onde for
pretendido – o desktop pode ser um local. Basta agora um duplo clique no ficheiro
extraído para ser executado
A escolha do executável correto
Depois de extrair o ficheiro…
• Aspeto do ícone do executável SQLite
• Aspeto da janela da linha de comando
A linha
de
comando
(.help)
Reutilizar bases de dados no SQLite…
• Depois de utilizar o SGBD e para concluir a sessão, deve utilizar o comando
'.exit‘ (ou ‘.quit’ que, aparentemente, é o mesmo…)
– Tenha em atenção que o estado da base de dados não é gravado entre sessões,
pelo que será necessário repetir os comandos e carregar os dados novamente,
para cada sessão
– Claro que é possível forçar o SQL a manter o estado de base dados entre
sessões
• Para garantir a preservação de estado entre sessões, o SQLite pode ser
executado tendo como argumento a indicação da base dados que se
pretende abrir
– Pode ser utilizada a linha de comando do sistema operativo e executar o SQLite
com indicação do nome do ficheiro para a base de dados a criar ou a utilizar:
SQLite3 nome_basedados (exemplo: sqlite3 teste.db)
– Este comando força o SQLite a abrir um ficheiro onde contém a base dados
com o nome indicado. Caso o ficheiro ainda não exista, cria um. O estado da
base de dados irá sendo gravado e pode ser reutilizado depois
Para poder lançar o Sqlite com um
ficheiro para persistência de dados…
• É necessário lançar uma janela de sessão em
ambiente de linha de comando ou MS DOS
– Botão da direita, no menu Windows e selecionar
“executar” ou “procurar”
– Introduzir “cmd” (cria uma janela de linha de comandos,
para poder invocar o SGBD com atributos)
Interagir no SQLite
• Uma vez iniciado o SQLite, existem três
opções para correr consultas:
– teclados diretamente, um de cada vez, usando a
linha de comando
– Copiados e colocados (copy & paste) de um outro
local, na linha de comando
– Executados de um ficheiro externo (script)
Uso da linha de comando
• Experimentar e obter a resposta, de comando a
comando
– Comandos SQLite: iniciados por um ponto e listados em
.help
– Comandos SQL, de acordo com a norma e finalizados por ;
(ponto e vírgula)
• Um exemplo de um manual sobre a 4GL SQL para o SQLite
(http://zetcode.com/databases/sqlitetutorial/)
Copiar e colar na linha de comando
• uma forma fácil de replicar comandos de linha, a partir de manuais ou da
produção de textos em processadores de texto ou outros editores mais
evoluídos, é possível e até desejável
– Selecionar e copiar o texto e, na janela de comando, colar
Copiar e colar na linha de comando
• Para assegurar que é possível realizar a operação de copiar e colar
numa janela de comando, é necessário garantir que a opção de
modo de edição rápida esteja selecionada (na barra de título deve
escolher a opção Propriedades do menu acionado pela tecla direita
do rato)
Executar um ficheiro de script
• uma forma clássica de reproduzir e correr sequências complexas de
comandos é a utilização de scripts. O SQLite facilita a sua leitura por via do
comando ‘.read’
.read primeiroSQLscript.sql
– Em que o ficheiro de texto de nome primeiroSQLscript.sql está colocado no
diretório do executável SQLite3 e contém o script a correr
/* As duas primeiras linhas formatam os resultados do comando SELECT */
/* Para obter uma lista de comandos específicos do SQLite, digite '.help' */
.mode columns
.headers on
.nullvalue NULL
drop table if exists Tabela;
create table Tabela (Atributo1 text, Atributo2 text);
insert into Tabela values ('Olá,', 'mundo!');
select * from Tabela;
Considere o seguinte contexto
• Existe a necessidade de registo de uma pequena
coleção de livros associada a uma biblioteca pessoal
– Pretende-se o registo de livros, indicando o respetivo
título, ISBN e língua em que está escrito
– É necessário associar os respetivos autores, considerando
o seu nome e nacionalidade
– Deve ser igualmente registada a editora (nome)
– Deve ser considerado o registo de compra, indicando o
livro, o valor e a data de aquisição
– Adicionalmente, as relações de quem escreveu o livro
(associando o livro e o autor), quem publicou (associando
o livro e a editora)
Um modelo E-R do contexto proposto
• Consideram-se:
– quatro entidades: editora, livro,
autor e compra
– Três relações binárias:
publicado, escrito e pago
• Publicado: uma editora publica
vários livros e um livro é
publicado por várias editoras
• Escrito: um livro é escrito por
vários autores e um autor
escreve vários livros
• Pago: um livro é pago numa
compra e uma compra paga um
livro
Esquema relacional do contexto
• Livro (idl, titulo, lingua, isbn)
• Autor (ida, nome, nacionalidade)
• Editora (ide, nome)
• Escrito (idl, ida)
• Publicado (idl, ide)
• Compra (cmp, idl, valor, data)
Criar a base de dados…
• Na linha de comando do SO
– Sqlite3 biblio.db
• Criar a tabela Livro (idl, título, língua, isbn)
– Create table livro(idl integer primary key, titulo text, lingua text, isbn text);
• Criar a tabela Autor (ida, nome, nacionalidade)
– Create table autor(ida integer primary key, nome text, nacionalidade text);
• Criar a tabela Editora (ide, nome)
– Create table editora(ide integer primary key, nome text);
• Criar a tabela Escrito (idl, ida)
– Create table escrito(esc integer primary key autoincrement, idl integer, ida integer);
• Criar a tabela Publicado (idl, ide)
– Create table publicado(pub integer primary key autoincrement, idl integer, ide integer);
• Criar a tabela Compra (cmp, idl, valor, data)
– Create table compra(cmp integer primary key autoincrement, idl integer, valor real, data
date);
Informação sobre a bd biblio.db
• Testar os comandos: .databases (lista as bases de dados consideradas no
ficheiro biblio.db), .tables (lista as tabelas associadas com a base de
dados) e .schema (que lista o esquema das tabelas da base de dados)
Teste do modelo criado
• Para testar o modelo criado é tomada uma
coleção de livros, conforme descrita em
http://homepage.ufp.pt/lmbg/lg_livros.htm
– Incluia em 2013, 12 livros
– Foram adicionados mais 3 livros em 2015
Inserir dados na base de dados
• Inserir livros… [Livro (idl, título, língua, isbn)]
– Insert into livro values (1, ‘Sistemas de Informação de Apoio à Gestão’, ‘Português’, ‘9728589433’);
– Insert into livro values (2, ‘Cidades e Regiões Digitais: impacte nas cidades e nas pessoas’, ‘Português’, ‘9728830033’);
– Insert into livro values (3, ‘Informática e Competências Tecnológicas para a Sociedade da Informaçã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 digital na autarquia’, ‘Português’, ‘9728589417’);
– Insert into livro values (7, ‘Informática e Competências Tecnológicas para a Sociedade da Informação 2ed’, ‘Português’,
‘9728830300’);
– Insert into livro values (8, ‘Negócio Electrónico - conceitos e perspectivas de 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 Sociedade da Informação e do Conhecimento no Início do Século XXI’,
‘Português’, ‘9789726186953’);
• Os dados de 2015…
– Insert into livro values(13, ‘Gestão da Informação em Museus: uma contribuição para o seu estudo’, ‘Português’,
‘9789899901394’);
– Insert into livro values(14, ‘Web 2.0 and Higher Education. A psychological perspective’, Inglês’, ‘9783659683466’);
– Insert into livro values(15, ‘Contribuições para a discussão de um modelo de Governo Electrónico Local para Angola’ ,
‘Português’, ‘9789899933200’);
Inserir dados na base de dados
• Inserir autores… [Autor (ida, nome, nacionalidade)]
– 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ães Ribeiro’, ’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’);
• Dados de 2015
– Insert into autor values(11, ‘Paula Moura’, ‘Português’);
– Insert into autor values(12, ‘Luis Cunha’, ‘Português’);
– Insert into autor values(13, ‘Pereira Alfredo’, ‘Angolano’);
Inserir dados na base de dados
• Inserir editoras… [Editora (ide, nome)]
– Insert into editora values(1, ‘SPI - Principia’);
– Insert into editora values(2, ‘Edições Universidade Fernando 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’);
• Dados de 2015
– Insert into editora values(6, ‘Green Lines Instituto’);
– Insert into editora values(7, ‘Lambert Academic Publishing’);
– Insert into editora values(8, ‘Kwigia Editora’);
Inserir dados na base de dados
• Associar livros a autores… [Escrito (idl, ida)]
– 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);
• Dados de 2015
– Insert into escrito values(25, 13, 11);
– Insert into escrito values(26, 13, 1);
– Insert into escrito values(27, 14, 1);
– Insert into escrito values(28, 14, 12);
– Insert into escrito values(29, 15, 13);
– Insert into escrito values(30, 15, 1);
Inserir dados na base de dados
• Associar livros a editoras… [Publicado (idl, ide)]
– 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);
• Dados de 2015
– Insert into publicado values(13, 13, 6);
– Insert into publicado values(14, 14, 7);
– Insert into publicado values(15, 15, 8);
Inserir dados na base de dados
• Inserir compras… [Compra (cmp, idl, valor, data)]
– Insert into compra values(1, 1, 15, ‘2004-12-12’);
– Insert into compra values(2, 2, 12, ‘2003-11-12’);
– Insert into compra values(3, 3, 10, ‘2003-10-20’);
– Insert into compra values(4, 4, 7, ‘2004-04-20’);
– Insert into compra values(5, 5, 14, ‘2004-06-15’);
– Insert into compra values(6, 6, 15, ‘2004-12-12’);
– Insert into compra values(7, 7, 10, ‘2003-10-26’);
– Insert into compra values(8, 8, 15, ‘2006-12-10’);
– Insert into compra values(9, 9, 15, ‘2007-03-10’);
– Insert into compra values(10, 10, 75, ‘2009-02-05’);
– Insert into compra values(11, 11, 10, ‘2012-06-18’);
– Insert into compra values(12, 12, 24, ‘2012-09-10’);
• Dados de 2015
– Insert into compra values(13, 13, 25, ‘2015-01-10’);
– Insert into compra values(14, 14, 54, ‘2015-01-25’);
– Insert into compra values(15, 15, 17, ‘2015-01-17’);
Obter o esquema da base de dados
• Obter o esquema da base de dados biblio,
utilizando o comando .schema
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)
– O exemplo do dump da base de dados biblio.db,
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;
Alguns exercícios com base no
comando Select
• Quantas compras estão registadas?
– select count(*) from compra;
• Qual o valor total dos livros comprados?
– select sum(valor) from compra;
• Qual o valor mínimo de compra registado?
– select min(valor) from compra;
• Qual o valor máximo de compra registado?
– select max(valor) from compra;
• Diferença entre o maior e o menor valor de compra?
– select max(valor)-min(valor) from compra;
• Valor médio das compras registadas?
– select sum(valor)/count(*) from compra;
…ou (o resultado é igual, mas exige o uso de menos funções
– select avg(valor) from compra;
Mais alguns exercícios…
• Listar os títulos adquiridos por ordem crescente de valor?
– select titulo, valor, data from compra, livro where
compra.idl=livro.idl order by valor;
– …e por ordem decrescente?
select titulo, valor, data from compra, livro where
compra.idl=livro.idl order by valor desc;
– …e ordenados por data mais recente, primeiro?
select titulo, valor, data from compra, livro where
compra.idl=livro.idl order by data desc;
…saiu estranho o output? Tentar colocando antes do comando
SQL, o comando .width 30 10 10
– …e listar os titulos cujo valor de compra é de menos de 14 euros
select titulo, valor, data from compra, livro where
compra.idl=livro.idl and valor < 14 order by data desc;
Mais alguns exercícios…
• Listar os títulos existentes, indicando o número de anos de
antiguidade
– select titulo, valor, date(‘now’)-data from compra, livro where
compra.idl=livro.idl order by data desc;
– …e o número médio de anos das compras efetuadas?
Select avg(date)’now’)-data) from compra, livro where
compra.idl=livro.idl;
• Listar por ordem mais recente, os títulos de todas as
compras realizadas de valor maior que 14 euros e cuja
antiguidade seja menor ou igual a 5 anos
– Select titulo, valor from compra, livro where compra.idl=livro
and valor > 14 and (date(‘now’)-data) <= 5 order by data desc
Mais alguns exercícios…
• Listar, para todos os autores, os respetivos títulos e editoras em que
publicaram
– select autor.nome, titulo, editora.nome from livro, autor, editora, escrito,
publicado where escrito.idl=livro.idl and escrito.ida=autor.ida and
publicado.idl=livro.idl and publicado.ide=editora.ide order by autor.nome;
• Listar, para todos os autores, o número de livros que publicaram e que
estão na base de dados
– select autor.nome, count(*) from autor, escrito where escrito.ida=autor.ida
group by escrito.ida order by autor.nome;
– …ordenada pelo número de publicações…
select autor.nome, count(*) from autor, escrito where escrito.ida=autor.ida
group by escrito.ida order by count(*);
• Listar, para todos os livros, o número de autores da obra
– select titulo, count(*) from livro, autor, escrito where autor.ida=escrito.idl and
livro.idl=escrito.idl group by livro.idl order by titulo;
– …ordenar as obras pelo número crescente de autores
select titulo, count(*) from livro, autor, escrito where autor.ida=escrito.idl and
livro.idl=escrito.idl group by livro.idl order by count(*);
Desafio: tarefa 4
(resolver as seguintes consultas)
• Listar os livros disponíveis, indicando Titulo, editora, preço e isbn
• Listar as línguas das obras disponíveis, indicando o número de obras associadas a
cada uma das línguas existentes
• Contar o número de livros existentes
• Contar o número de livros existentes por ano de compra
• Listar as editoras existentes, indicando o número de livros por cada editora
• Contar o número de diferentes autores, existentes na base de dados
• Contar o número de nacionalidades distintas
• Listar as nacionalidades, indicando o número de autores para cada uma delas
• Listar as editoras, indicando o número de livros publicados por cada
• Indicar o valor de livros comprados por autor
• Indicar o valor de livros comprados por editora
• Indicar o valor de livros comprados por ano
• Indicar o número de compras efetuadas por ano
• Listar as compras efetuadas por editora
• Listar as compras efetuadas por língua e ordenadas por editora

Mais conteúdo relacionado

Mais procurados

Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Aula1-Conceitos de SGBD
Aula1-Conceitos de SGBDAula1-Conceitos de SGBD
Aula1-Conceitos de SGBDCris Fidelix
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualizaçãocamila_seixas
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)Janynne Gomes
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Instalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorInstalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorEdgar Costa
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
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
 
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...Fernando Belome Feltrin
 
Banco de Dados II: Tabelas (aula 2)
Banco de Dados II: Tabelas (aula 2)Banco de Dados II: Tabelas (aula 2)
Banco de Dados II: Tabelas (aula 2)Gustavo Zimmermann
 

Mais procurados (20)

Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Aula1-Conceitos de SGBD
Aula1-Conceitos de SGBDAula1-Conceitos de SGBD
Aula1-Conceitos de SGBD
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Bases De Dados
Bases De DadosBases De Dados
Bases De Dados
 
Arquitetura de Redes de Computadores
 Arquitetura de Redes de Computadores Arquitetura de Redes de Computadores
Arquitetura de Redes de Computadores
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualização
 
Teste teorico excel
Teste teorico excelTeste teorico excel
Teste teorico excel
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Caderno de exercícios excel 2010
Caderno de exercícios excel 2010Caderno de exercícios excel 2010
Caderno de exercícios excel 2010
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Instalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorInstalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/Servidor
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
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
 
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
300 Exercícios Resolvidos e Comentados em Python - Fernando Feltrin - Amostra...
 
Banco de Dados II: Tabelas (aula 2)
Banco de Dados II: Tabelas (aula 2)Banco de Dados II: Tabelas (aula 2)
Banco de Dados II: Tabelas (aula 2)
 

Destaque

Um exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniUm exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniLuis Borges Gouveia
 
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
 
Introducao Base Dados I
Introducao  Base  Dados  IIntroducao  Base  Dados  I
Introducao Base Dados Iguest3118b2
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dadosessa
 
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
 
Do gastador ao pao duro
Do gastador ao pao duroDo gastador ao pao duro
Do gastador ao pao durovitadenarium
 
3 bases tecnológicas segunda aula 18 03
3 bases tecnológicas segunda aula 18 033 bases tecnológicas segunda aula 18 03
3 bases tecnológicas segunda aula 18 03Agronegócios
 
Android Studio: Primeiros Passos
Android Studio: Primeiros PassosAndroid Studio: Primeiros Passos
Android Studio: Primeiros PassosRomualdo Andre
 
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
 
Lista de exercícios sobre soma de P.A.
Lista de exercícios sobre soma de P.A.Lista de exercícios sobre soma de P.A.
Lista de exercícios sobre soma de P.A.Lucas Azevedo
 
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
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
69964605 apostila-teorica-cosmetologia-2011-02
69964605 apostila-teorica-cosmetologia-2011-0269964605 apostila-teorica-cosmetologia-2011-02
69964605 apostila-teorica-cosmetologia-2011-02Anna Paulla
 

Destaque (20)

Base de dados: desafio 1
Base de dados: desafio 1Base de dados: desafio 1
Base de dados: desafio 1
 
Base de dados desafio 2
Base de dados desafio 2Base de dados desafio 2
Base de dados desafio 2
 
Um exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniUm exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumni
 
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
 
SGBD
SGBDSGBD
SGBD
 
Introducao Base Dados I
Introducao  Base  Dados  IIntroducao  Base  Dados  I
Introducao Base Dados I
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dados
 
Conceitos essenciais de bases de dados
Conceitos essenciais de bases de dadosConceitos essenciais de bases de dados
Conceitos essenciais de bases de dados
 
Do gastador ao pao duro
Do gastador ao pao duroDo gastador ao pao duro
Do gastador ao pao duro
 
3 bases tecnológicas segunda aula 18 03
3 bases tecnológicas segunda aula 18 033 bases tecnológicas segunda aula 18 03
3 bases tecnológicas segunda aula 18 03
 
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
 
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)
 
Lista de exercícios sobre soma de P.A.
Lista de exercícios sobre soma de P.A.Lista de exercícios sobre soma de P.A.
Lista de exercícios sobre soma de P.A.
 
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
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
69964605 apostila-teorica-cosmetologia-2011-02
69964605 apostila-teorica-cosmetologia-2011-0269964605 apostila-teorica-cosmetologia-2011-02
69964605 apostila-teorica-cosmetologia-2011-02
 

Semelhante a Exemplo e caso prático do uso de base de dados

Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQlCezar Souza
 
Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sqlrobinhoct
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29Juliana Nascimento
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - IntroduçãoMarco Pinheiro
 
Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01Osny Pereira Filho
 
Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptxacsme
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistenciaRoberson Alves
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfArleiEvaristo
 
Artigo data warehouse bd ii - 2015-1 a
Artigo data warehouse   bd ii - 2015-1 aArtigo data warehouse   bd ii - 2015-1 a
Artigo data warehouse bd ii - 2015-1 aDarlene Coelho
 
Artigo data warehouse bd ii - 2015-1
Artigo data warehouse   bd ii - 2015-1Artigo data warehouse   bd ii - 2015-1
Artigo data warehouse bd ii - 2015-1Darlene Coelho
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdfQuitriaSilva550
 

Semelhante a Exemplo e caso prático do uso de base de dados (20)

Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
Aula 06 - TEP - Introdução SQLite
Aula 06 - TEP - Introdução SQLiteAula 06 - TEP - Introdução SQLite
Aula 06 - TEP - Introdução SQLite
 
Python 04
Python 04Python 04
Python 04
 
Php curso de php com my sql
Php   curso de php com my sqlPhp   curso de php com my sql
Php curso de php com my sql
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
3260 php truquesmagicos %281%29
3260 php truquesmagicos %281%293260 php truquesmagicos %281%29
3260 php truquesmagicos %281%29
 
3260 php truquesmagicos
3260 php truquesmagicos3260 php truquesmagicos
3260 php truquesmagicos
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
Apostila sqlserver65v1a
Apostila sqlserver65v1aApostila sqlserver65v1a
Apostila sqlserver65v1a
 
Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Aula8.pptx
Aula8.pptxAula8.pptx
Aula8.pptx
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistencia
 
PostgreSQL-Prático.pdf
PostgreSQL-Prático.pdfPostgreSQL-Prático.pdf
PostgreSQL-Prático.pdf
 
Artigo data warehouse bd ii - 2015-1 a
Artigo data warehouse   bd ii - 2015-1 aArtigo data warehouse   bd ii - 2015-1 a
Artigo data warehouse bd ii - 2015-1 a
 
Artigo data warehouse bd ii - 2015-1
Artigo data warehouse   bd ii - 2015-1Artigo data warehouse   bd ii - 2015-1
Artigo data warehouse bd ii - 2015-1
 
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 

Mais 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
 

Mais 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
 

Último

Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 

Último (20)

Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 

Exemplo e caso prático do uso de base de dados

  • 1. Um exemplo do uso de bases de dados relacionais SQLite e a exploração SQL Luís Borges Gouveia lmbg@ufp.edu.pt V2.1, Fevereiro de 2016
  • 2. Para as práticas • Utilização do um SGBD relacional – http://www.sqlite.org – Software livre, open source e sem custos, de domínio público (opensource, freeware, public domain) – Disponível para os sistemas operativos: Linux, MS Windows e MAC OS – Permite a criação de bases de dados de fácil utilização e é adotado em inúmeras aplicações: • Entre outras: Dropbox, Firefox, Skype e Adobe Acrobat – Motor de base de dados fiável e de pequena dimensão
  • 3. Iniciar o SQLite • O SQLite é um SGBD de interface de linha de comando (baseado num só ficheiro executável que funciona isolado) que é muito fácil de instalar e usar (não necessita de servidor ou de um cliente) – MS Windows: ir para http://www.sqlite.org/download.html e considerar a sessão Precompiled Binaries for Windows. Descarregar o ficheiro .zip do link command-line shell (não o DLL ou o da analysis). Extrair o ficheiro sqlite3.exe e colocar o mesmo onde for pretendido – o desktop pode ser um local. Basta agora um duplo clique no ficheiro extraído para ser executado – MAC OS X: ir para http://www.sqlite.org/download.html e considerar a sessão Precompiled Binaries for Mac OS X. Descarregar o ficheiro .zip file do link command-line shell (não o link analysis). Extrair o ficheiro sqlite3 e colocar o mesmo onde for pretendido – o desktop pode ser um local. Basta agora um duplo clique no ficheiro extraído para ser executado
  • 4. A escolha do executável correto
  • 5. Depois de extrair o ficheiro… • Aspeto do ícone do executável SQLite • Aspeto da janela da linha de comando
  • 7. Reutilizar bases de dados no SQLite… • Depois de utilizar o SGBD e para concluir a sessão, deve utilizar o comando '.exit‘ (ou ‘.quit’ que, aparentemente, é o mesmo…) – Tenha em atenção que o estado da base de dados não é gravado entre sessões, pelo que será necessário repetir os comandos e carregar os dados novamente, para cada sessão – Claro que é possível forçar o SQL a manter o estado de base dados entre sessões • Para garantir a preservação de estado entre sessões, o SQLite pode ser executado tendo como argumento a indicação da base dados que se pretende abrir – Pode ser utilizada a linha de comando do sistema operativo e executar o SQLite com indicação do nome do ficheiro para a base de dados a criar ou a utilizar: SQLite3 nome_basedados (exemplo: sqlite3 teste.db) – Este comando força o SQLite a abrir um ficheiro onde contém a base dados com o nome indicado. Caso o ficheiro ainda não exista, cria um. O estado da base de dados irá sendo gravado e pode ser reutilizado depois
  • 8. Para poder lançar o Sqlite com um ficheiro para persistência de dados… • É necessário lançar uma janela de sessão em ambiente de linha de comando ou MS DOS – Botão da direita, no menu Windows e selecionar “executar” ou “procurar” – Introduzir “cmd” (cria uma janela de linha de comandos, para poder invocar o SGBD com atributos)
  • 9. Interagir no SQLite • Uma vez iniciado o SQLite, existem três opções para correr consultas: – teclados diretamente, um de cada vez, usando a linha de comando – Copiados e colocados (copy & paste) de um outro local, na linha de comando – Executados de um ficheiro externo (script)
  • 10. Uso da linha de comando • Experimentar e obter a resposta, de comando a comando – Comandos SQLite: iniciados por um ponto e listados em .help – Comandos SQL, de acordo com a norma e finalizados por ; (ponto e vírgula) • Um exemplo de um manual sobre a 4GL SQL para o SQLite (http://zetcode.com/databases/sqlitetutorial/)
  • 11. Copiar e colar na linha de comando • uma forma fácil de replicar comandos de linha, a partir de manuais ou da produção de textos em processadores de texto ou outros editores mais evoluídos, é possível e até desejável – Selecionar e copiar o texto e, na janela de comando, colar
  • 12. Copiar e colar na linha de comando • Para assegurar que é possível realizar a operação de copiar e colar numa janela de comando, é necessário garantir que a opção de modo de edição rápida esteja selecionada (na barra de título deve escolher a opção Propriedades do menu acionado pela tecla direita do rato)
  • 13. Executar um ficheiro de script • uma forma clássica de reproduzir e correr sequências complexas de comandos é a utilização de scripts. O SQLite facilita a sua leitura por via do comando ‘.read’ .read primeiroSQLscript.sql – Em que o ficheiro de texto de nome primeiroSQLscript.sql está colocado no diretório do executável SQLite3 e contém o script a correr /* As duas primeiras linhas formatam os resultados do comando SELECT */ /* Para obter uma lista de comandos específicos do SQLite, digite '.help' */ .mode columns .headers on .nullvalue NULL drop table if exists Tabela; create table Tabela (Atributo1 text, Atributo2 text); insert into Tabela values ('Olá,', 'mundo!'); select * from Tabela;
  • 14. Considere o seguinte contexto • Existe a necessidade de registo de uma pequena coleção de livros associada a uma biblioteca pessoal – Pretende-se o registo de livros, indicando o respetivo título, ISBN e língua em que está escrito – É necessário associar os respetivos autores, considerando o seu nome e nacionalidade – Deve ser igualmente registada a editora (nome) – Deve ser considerado o registo de compra, indicando o livro, o valor e a data de aquisição – Adicionalmente, as relações de quem escreveu o livro (associando o livro e o autor), quem publicou (associando o livro e a editora)
  • 15. Um modelo E-R do contexto proposto • Consideram-se: – quatro entidades: editora, livro, autor e compra – Três relações binárias: publicado, escrito e pago • Publicado: uma editora publica vários livros e um livro é publicado por várias editoras • Escrito: um livro é escrito por vários autores e um autor escreve vários livros • Pago: um livro é pago numa compra e uma compra paga um livro
  • 16. Esquema relacional do contexto • Livro (idl, titulo, lingua, isbn) • Autor (ida, nome, nacionalidade) • Editora (ide, nome) • Escrito (idl, ida) • Publicado (idl, ide) • Compra (cmp, idl, valor, data)
  • 17. Criar a base de dados… • Na linha de comando do SO – Sqlite3 biblio.db • Criar a tabela Livro (idl, título, língua, isbn) – Create table livro(idl integer primary key, titulo text, lingua text, isbn text); • Criar a tabela Autor (ida, nome, nacionalidade) – Create table autor(ida integer primary key, nome text, nacionalidade text); • Criar a tabela Editora (ide, nome) – Create table editora(ide integer primary key, nome text); • Criar a tabela Escrito (idl, ida) – Create table escrito(esc integer primary key autoincrement, idl integer, ida integer); • Criar a tabela Publicado (idl, ide) – Create table publicado(pub integer primary key autoincrement, idl integer, ide integer); • Criar a tabela Compra (cmp, idl, valor, data) – Create table compra(cmp integer primary key autoincrement, idl integer, valor real, data date);
  • 18. Informação sobre a bd biblio.db • Testar os comandos: .databases (lista as bases de dados consideradas no ficheiro biblio.db), .tables (lista as tabelas associadas com a base de dados) e .schema (que lista o esquema das tabelas da base de dados)
  • 19. Teste do modelo criado • Para testar o modelo criado é tomada uma coleção de livros, conforme descrita em http://homepage.ufp.pt/lmbg/lg_livros.htm – Incluia em 2013, 12 livros – Foram adicionados mais 3 livros em 2015
  • 20.
  • 21. Inserir dados na base de dados • Inserir livros… [Livro (idl, título, língua, isbn)] – Insert into livro values (1, ‘Sistemas de Informação de Apoio à Gestão’, ‘Português’, ‘9728589433’); – Insert into livro values (2, ‘Cidades e Regiões Digitais: impacte nas cidades e nas pessoas’, ‘Português’, ‘9728830033’); – Insert into livro values (3, ‘Informática e Competências Tecnológicas para a Sociedade da Informaçã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 digital na autarquia’, ‘Português’, ‘9728589417’); – Insert into livro values (7, ‘Informática e Competências Tecnológicas para a Sociedade da Informação 2ed’, ‘Português’, ‘9728830300’); – Insert into livro values (8, ‘Negócio Electrónico - conceitos e perspectivas de 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 Sociedade da Informação e do Conhecimento no Início do Século XXI’, ‘Português’, ‘9789726186953’); • Os dados de 2015… – Insert into livro values(13, ‘Gestão da Informação em Museus: uma contribuição para o seu estudo’, ‘Português’, ‘9789899901394’); – Insert into livro values(14, ‘Web 2.0 and Higher Education. A psychological perspective’, Inglês’, ‘9783659683466’); – Insert into livro values(15, ‘Contribuições para a discussão de um modelo de Governo Electrónico Local para Angola’ , ‘Português’, ‘9789899933200’);
  • 22. Inserir dados na base de dados • Inserir autores… [Autor (ida, nome, nacionalidade)] – 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ães Ribeiro’, ’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’); • Dados de 2015 – Insert into autor values(11, ‘Paula Moura’, ‘Português’); – Insert into autor values(12, ‘Luis Cunha’, ‘Português’); – Insert into autor values(13, ‘Pereira Alfredo’, ‘Angolano’);
  • 23. Inserir dados na base de dados • Inserir editoras… [Editora (ide, nome)] – Insert into editora values(1, ‘SPI - Principia’); – Insert into editora values(2, ‘Edições Universidade Fernando 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’); • Dados de 2015 – Insert into editora values(6, ‘Green Lines Instituto’); – Insert into editora values(7, ‘Lambert Academic Publishing’); – Insert into editora values(8, ‘Kwigia Editora’);
  • 24. Inserir dados na base de dados • Associar livros a autores… [Escrito (idl, ida)] – 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); • Dados de 2015 – Insert into escrito values(25, 13, 11); – Insert into escrito values(26, 13, 1); – Insert into escrito values(27, 14, 1); – Insert into escrito values(28, 14, 12); – Insert into escrito values(29, 15, 13); – Insert into escrito values(30, 15, 1);
  • 25. Inserir dados na base de dados • Associar livros a editoras… [Publicado (idl, ide)] – 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); • Dados de 2015 – Insert into publicado values(13, 13, 6); – Insert into publicado values(14, 14, 7); – Insert into publicado values(15, 15, 8);
  • 26. Inserir dados na base de dados • Inserir compras… [Compra (cmp, idl, valor, data)] – Insert into compra values(1, 1, 15, ‘2004-12-12’); – Insert into compra values(2, 2, 12, ‘2003-11-12’); – Insert into compra values(3, 3, 10, ‘2003-10-20’); – Insert into compra values(4, 4, 7, ‘2004-04-20’); – Insert into compra values(5, 5, 14, ‘2004-06-15’); – Insert into compra values(6, 6, 15, ‘2004-12-12’); – Insert into compra values(7, 7, 10, ‘2003-10-26’); – Insert into compra values(8, 8, 15, ‘2006-12-10’); – Insert into compra values(9, 9, 15, ‘2007-03-10’); – Insert into compra values(10, 10, 75, ‘2009-02-05’); – Insert into compra values(11, 11, 10, ‘2012-06-18’); – Insert into compra values(12, 12, 24, ‘2012-09-10’); • Dados de 2015 – Insert into compra values(13, 13, 25, ‘2015-01-10’); – Insert into compra values(14, 14, 54, ‘2015-01-25’); – Insert into compra values(15, 15, 17, ‘2015-01-17’);
  • 27. Obter o esquema da base de dados • Obter o esquema da base de dados biblio, utilizando o comando .schema
  • 28. 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) – O exemplo do dump da base de dados biblio.db, 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;
  • 29. Alguns exercícios com base no comando Select • Quantas compras estão registadas? – select count(*) from compra; • Qual o valor total dos livros comprados? – select sum(valor) from compra; • Qual o valor mínimo de compra registado? – select min(valor) from compra; • Qual o valor máximo de compra registado? – select max(valor) from compra; • Diferença entre o maior e o menor valor de compra? – select max(valor)-min(valor) from compra; • Valor médio das compras registadas? – select sum(valor)/count(*) from compra; …ou (o resultado é igual, mas exige o uso de menos funções – select avg(valor) from compra;
  • 30. Mais alguns exercícios… • Listar os títulos adquiridos por ordem crescente de valor? – select titulo, valor, data from compra, livro where compra.idl=livro.idl order by valor; – …e por ordem decrescente? select titulo, valor, data from compra, livro where compra.idl=livro.idl order by valor desc; – …e ordenados por data mais recente, primeiro? select titulo, valor, data from compra, livro where compra.idl=livro.idl order by data desc; …saiu estranho o output? Tentar colocando antes do comando SQL, o comando .width 30 10 10 – …e listar os titulos cujo valor de compra é de menos de 14 euros select titulo, valor, data from compra, livro where compra.idl=livro.idl and valor < 14 order by data desc;
  • 31. Mais alguns exercícios… • Listar os títulos existentes, indicando o número de anos de antiguidade – select titulo, valor, date(‘now’)-data from compra, livro where compra.idl=livro.idl order by data desc; – …e o número médio de anos das compras efetuadas? Select avg(date)’now’)-data) from compra, livro where compra.idl=livro.idl; • Listar por ordem mais recente, os títulos de todas as compras realizadas de valor maior que 14 euros e cuja antiguidade seja menor ou igual a 5 anos – Select titulo, valor from compra, livro where compra.idl=livro and valor > 14 and (date(‘now’)-data) <= 5 order by data desc
  • 32. Mais alguns exercícios… • Listar, para todos os autores, os respetivos títulos e editoras em que publicaram – select autor.nome, titulo, editora.nome from livro, autor, editora, escrito, publicado where escrito.idl=livro.idl and escrito.ida=autor.ida and publicado.idl=livro.idl and publicado.ide=editora.ide order by autor.nome; • Listar, para todos os autores, o número de livros que publicaram e que estão na base de dados – select autor.nome, count(*) from autor, escrito where escrito.ida=autor.ida group by escrito.ida order by autor.nome; – …ordenada pelo número de publicações… select autor.nome, count(*) from autor, escrito where escrito.ida=autor.ida group by escrito.ida order by count(*); • Listar, para todos os livros, o número de autores da obra – select titulo, count(*) from livro, autor, escrito where autor.ida=escrito.idl and livro.idl=escrito.idl group by livro.idl order by titulo; – …ordenar as obras pelo número crescente de autores select titulo, count(*) from livro, autor, escrito where autor.ida=escrito.idl and livro.idl=escrito.idl group by livro.idl order by count(*);
  • 33. Desafio: tarefa 4 (resolver as seguintes consultas) • Listar os livros disponíveis, indicando Titulo, editora, preço e isbn • Listar as línguas das obras disponíveis, indicando o número de obras associadas a cada uma das línguas existentes • Contar o número de livros existentes • Contar o número de livros existentes por ano de compra • Listar as editoras existentes, indicando o número de livros por cada editora • Contar o número de diferentes autores, existentes na base de dados • Contar o número de nacionalidades distintas • Listar as nacionalidades, indicando o número de autores para cada uma delas • Listar as editoras, indicando o número de livros publicados por cada • Indicar o valor de livros comprados por autor • Indicar o valor de livros comprados por editora • Indicar o valor de livros comprados por ano • Indicar o número de compras efetuadas por ano • Listar as compras efetuadas por editora • Listar as compras efetuadas por língua e ordenadas por editora