Sei sulla pagina 1di 6

Definies

CREATE TABLE Autor (IdAutor INT, Nome VARCHAR,


DDN VARCHAR,
PRIMARY KEY(IdAutor));
CREATE TABLE Editora (IdEditora INT, Nome VARCHAR,
Endereco VARCHAR, CodPostal VARCHAR,
PRIMARY KEY(IdEditora));
CREATE TABLE PalavraChave (IdPalavra VARCHAR,
PRIMARY KEY(IdPalavra));
CREATE TABLE Livro (ISBN VARCHAR, Titulo VARCHAR,
Ano VARCHAR, Edicao VARCHAR,
Quota VARCHAR, IdEditora INT,
PRIMARY KEY(ISBN),
FOREIGN KEY(IdEditora) REFERENCES Editora(IdEditora));
CREATE TABLE LivroAutor (ISBN VARCHAR, IdAutor INT,
PRIMARY KEY(ISBN, IdAutor),
FOREIGN KEY(ISBN) REFERENCES Livro(ISBN),
FOREIGN KEY(IdAutor) REFERENCES Autor(IdAutor));
CREATE TABLE LivroPalavra (IdPalavra VARCHAR, ISBN VARCHAR,
PRIMARY KEY(IdPalavra, ISBN),
FOREIGN KEY(ISBN) REFERENCES Livro(ISBN),
FOREIGN KEY(IdPalavra) REFERENCES Palavrachave(IdPalavra));
CREATE TABLE Exemplar (IdExemplar INT, ISBN VARCHAR,
DataAquisicao DATE,
PRIMARY KEY(IdExemplar),
FOREIGN KEY(ISBN) REFERENCES Livro(ISBN));
CREATE TABLE Leitor (IdLeitor INT, Nome VARCHAR,
Endereco VARCHAR, CodPostal VARCHAR,
Localidade VARCHAR, Complemento VARCHAR,
PRIMARY KEY(IdLeitor));
CREATE TABLE Requisicao (IdRequisicao INT, IdExemplar INT,
IdLeitor INT, DataRequisicao DATE,
DataPrevEntrega DATE, DataRealEntrega DATE,
ValorMulta NUMERIC,
PRIMARY KEY(IdRequisicao),
FOREIGN KEY(IdExemplar) REFERENCES Exemplar(IdExemplar),
FOREIGN KEY(IdLeitor) REFERENCES Leitor(IdLeitor));

Povoamento
insert into Autor
values
(1, 'Rogerio Gaspar', 'ROG'),
(2, 'Rafael Almeida', 'RAF'),
(3, 'Bianca Byte', 'BIB'),
(4, 'Marcela Lima', 'MAR'),
(5, 'Jessica Adelaide', 'JES'),
(6, 'Dan Brown', 'DAN'),
(7, 'Emily Bronte', 'EMI'),
(8, 'Henrique Loureiro', 'HEN');
insert into Editora
values
(1, 'Cruzeiro', 'Rua Arvoredo 111', '79100-000'),
(2, 'Leitor', 'Rua Park 222', '79200-000'),
(3, 'Centro Atlantico', 'Rua Polar 333', '79300-000'),
(4, 'Mediterraneo', 'Rua Mediterraneo 432', '79400-000'),
(5, 'Sextante', 'Rua Sextante 234', '79050-000'),
(6, 'Landmark', 'Rua Landmark 666', '79080-000'),
(7, 'FCA', 'Rua General 727', '79035-000');
insert into PalavraChave
values
('Gastronomia'),
('Informatica'),
('Politica'),
('Matematica'),
('Educacao'),
('Literatura');
insert into Livro
values
('978-11-111-1111-0', 'A Arte de Fazer Bolos', '2001', '1', '200', 1),
('978-22-222-2222-0', 'Cozinha Baiana', '2004', '2', '30', 2),
('978-33-333-3333-0', 'Fraude nas Eleies', '1999', '3', '50', 3),
('978-44-444-4444-0', 'Vetores e Geometria Analitica', '1995', '1', '20', 4),
('978-55-555-5555-0', 'Educacao e Metodologia', '2000', '1', '100', 1),
('978-66-666-6666-0', 'Assembly Basico', '2003', '1', '80', 2),
('978-77-777-7777-0', 'Redes e Topologia', '2003', '2', '90', 3),
('978-88-888-8888-0', 'Informatica para Iniciantes', '2002', '2', '30', 4),
('978-99-999-9999-0', 'Artimanhas Politicas', '2002', '1', '80', 1),
('978-85-754-2113-0', 'Codigo de Da Vinci', '2004', '1', '625', 5),
('978-85-807-0020-6', 'O Morro dos Ventos Uivantes', '2012', '1', '952', 6),
('978-97-272-2294-0', 'Visual Basic 2008', '2008', '1', '557', 7);

insert into LivroAutor


values
('978-11-111-1111-0', 1),
('978-22-222-2222-0', 1),
('978-33-333-3333-0', 2),
('978-44-444-4444-0', 3),
('978-55-555-5555-0', 4),
('978-66-666-6666-0', 8),
('978-77-777-7777-0', 5),
('978-88-888-8888-0', 3),
('978-99-999-9999-0', 2),
('978-85-754-2113-0', 6),
('978-85-807-0020-6', 7),
('978-97-272-2294-0', 8);
insert into LivroPalavra
values
('Gastronomia', '978-11-111-1111-0'),
('Gastronomia',
'978-22-222-2222-0'),
('Informatica', '978-66-666-6666-0'),
('Informatica', '978-77-777-7777-0'),
('Informatica', '978-88-888-8888-0'),
('Politica', '978-33-333-3333-0'),
('Politica', '978-99-999-9999-0'),
('Matematica', '978-44-444-4444-0'),
('Educacao', '978-55-555-5555-0'),
('Literatura', '978-85-754-2113-0'),
('Literatura', '978-85-807-0020-6'),
('Informatica', '978-97-272-2294-0');
insert into Exemplar
values
(1111, '978-11-111-1111-0', '2002-01-01'),
(2222, '978-11-111-1111-0', '2002-01-02'),
(3333, '978-22-222-2222-0', '2004-01-03'),
(4444, '978-22-222-2222-0', '2004-01-04'),
(5555, '978-33-333-3333-0', '2000-01-05'),
(6666, '978-33-333-3333-0', '2000-01-06'),
(7777, '978-44-444-4444-0', '1999-01-07'),
(8888, '978-55-555-5555-0', '2001-01-08'),
(9999, '978-55-555-5555-0', '2001-01-09'),
(1010, '978-66-666-6666-0', '2003-01-10'),
(1011, '978-77-777-7777-0', '2003-01-11'),
(1012, '978-88-888-8888-0', '2002-01-12'),
(1013, '978-88-888-8888-0', '2002-01-13'),
(1014, '978-99-999-9999-0', '2003-01-14'),
(1015, '978-99-999-9999-0', '2003-01-15'),
(1101, '978-85-754-2113-0', '2007-04-04'),
(1102, '978-85-754-2113-0', '2007-04-04'),
(1103, '978-85-754-2113-0', '2009-08-06'),
(1104, '978-85-754-2113-0', '2009-08-07'),

(1201, '978-85-807-0020-6', '2013-02-02'),


(1202, '978-85-807-0020-6', '2013-02-02'),
(1203, '978-85-807-0020-6', '2013-02-02'),
(1301, '978-97-272-2294-0', '2009-12-28');
insert into Leitor
values
(1, 'Andre', 'Rua A', '79100-000', 'Setor Sul', 'Casa'),
(2, 'Amanda', 'Rua B', '79200-000', 'Setor Norte', 'Ap31'),
(3, 'Barbara', 'Rua A', '79100-000', 'Setor Sul', 'Casa'),
(4, 'Bruno', 'Rua C', '79300-000', 'Setor Oeste', 'Ap12'),
(5, 'Caio', 'Rua B', '79200-000', 'Setor Norte', 'Ap101'),
(6, 'Camila', 'Rua A', '79400-000', 'Setor Leste', 'Casa'),
(7, 'Dilano', 'Rua D', '79100-000', 'Setor Sul', 'Ap55'),
(8, 'Dalia', 'Rua A', '79400-000', 'Setor Leste', 'Casa'),
(9, 'Fabia', 'Rua C', '79200-000', 'Setor Norte', 'Ap130'),
(10, 'Georgia', 'Rua K', '79300-000', 'Setor Oeste', 'Casa'),
(11, 'Marcelo', 'Rua Y', '79088-378', 'Setor Sul', 'Casa'),
(12, 'Edna', 'Rua Y', '79088-378', 'Setor Sul', 'Casa');
insert into Requisicao
values
(1, 7777, 6, '2000-01-01', '2000-01-08', '2000-01-08', 0),
(2, 5555, 11, '2001-02-02', '2001-02-09', '2001-03-09', 30),
(3, 6666, 2, '2002-05-05', '2002-05-12', '2002-05-12', 0),
(4, 7777, 2, '2002-05-05', '2002-05-12', '2002-05-13', 1),
(5, 7777, 3, '2002-06-03', '2002-06-10', '2002-06-30', 20),
(6, 8888, 6, '2002-11-12', '2002-11-19', '2002-11-19', 0),
(7, 1111, 1, '2003-01-01', '2003-01-08', '2003-01-28', 20),
(8, 1111, 4, '2003-06-06', '2003-06-13', '2003-06-13', 0),
(9, 1012, 12, '2003-06-06', '2003-06-13', '2003-06-13', 0),
(10, 1013, 3, '2003-10-01', '2003-10-08', '2003-10-08', 0),
(11, 5555, 6, '2003-10-01', '2003-10-08', '2003-10-23', 15),
(12, 1010, 10, '2003-11-15', '2003-11-22', '2004-03-22', 120),
(13, 3333, 10, '2004-01-15', '2004-01-22', '2004-01-22', 0),
(14, 8888, 7, '2004-01-20', '2004-01-27', '2004-01-30', 3),
(15, 6666, 11, '2005-04-02', '2005-04-09', '2005-04-09', 0),
(16, 1102, 6, '2008-10-20', '2008-10-27', '2008-10-29', 2),
(17, 1101, 8, '2009-02-11', '2009-02-18', '2009-02-19', 1),
(18, 1011, 8, '2010-05-02', '2010-05-09', '2010-05-29', 20),
(19, 7777, 10, '2011-08-12', '2011-08-19', '2011-08-19', 0),
(20, 1301, 12, '2013-05-04', '2013-05-11', '2013-05-11', 0);

Consultas
EXERCICIO 1
SELECT E.IdExemplar
FROM Exemplar E, Livro L
WHERE E.ISBN = L.ISBN AND L.Titulo = 'Codigo de Da Vinci';
EXERCICIO 2
SELECT L.Titulo
FROM Livro L, Requisicao R, Exemplar E
WHERE R.DataRequisicao LIKE '2004-01%' AND R.IdExemplar = E.IdExemplar AND E.ISBN =
L.ISBN,
ORDER BY L.Titulo;
EXERCICIO 3
(SELECT L.Titulo
FROM Livro L, Requisicao R, Exemplar E;
WHERE R.IdExemplar = E.IdExemplar AND E.ISBN = L.ISBN)
EXCEPT
(SELECT L.Titulo
FROM Livro L, Requisicao R, Exemplar E
WHERE R.DataRequisicao LIKE '2004-01%' AND R.IdExemplar = E.IdExemplar AND E.ISBN =
L.ISBN);
EXERCICIO 4
SELECT A.IdAutor, A.Nome
FROM Autor A, Editora E, LivroAutor LA, Livro L
WHERE E.Nome = 'FCA' AND E.IdEditora = L.IdEditora AND L.ISBN = LA.ISBN AND
LA.IdAutor = A.IdAutor;
EXERCICIO 5
SELECT R.ValorMulta
FROM PalavraChave PC, LivroPalavra LP, Exemplar E, Requisicao R
WHERE PC.IdPalavra = 'Informatica' AND PC.IdPalavra = LP.IdPalavra AND LP.ISBN = E.ISBN
AND E.IdExemplar = R.IdExemplar;
EXERCICIO 9
SELECT COUNT(IdRequisicao)
FROM Requisicao
WHERE DataRequesicao LIKE '2004-02%';

EXERCICIO 10
SELECT SUM(ValorMulta)
FROM Requisicao
WHERE DataRealEntrega LIKE '2003%';
EXERCICIO 11
SELECT MAX(ValorMulta)
FROM Requisicao;

Potrebbero piacerti anche