TADS:Banco de dados I: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(21 revisões intermediárias por 4 usuários não estão sendo mostradas)
Linha 1: Linha 1:
'''Semestre''': 2º
=Objetivo=
Fornecer conhecimentos sobre a concepção, utilização, técnicas de estruturação, manipulação de informações, modelos de representação e desenvolvimento de bancos de dados.Banco de dados relacional; normalização até a 3ª. Forma Normal;
=Ementa=
Sistemas de banco de dados; Projeto lógico de banco de dados; Bancos de dados relacionais; Diagrama entidade-relacionamento; Projeto físico de um banco de dados; Linguagem SQL. Álgebra Relacional. Linguagens de consulta declarativas. Normalização. Projeto Físico de Bancos de Dados. Estrutura interna de um Sistema Gerenciador de Banco de Dados.


= Banco de Dados I =
=Planos de ensino=


== Carga Horária ==
* [[TADS:Banco de Dados I (2016-2)|2016/2]] (prof. Alcione Benacchio)
60 horas -> 72 aulas


== Ano Letivo 2014 ==
* [[TADS:Banco de Dados I (2015-2)|2015/2]] (prof. Alcione Benacchio)
<br>'''Professora:''' Ana Paula Wauke (ana.wauke@ifpr.edu.br)
<br>'''Horário de aula:''' 3a. feira - 19h00 - 20h35 | 5a feira - 20h55 - 22h35
<br>'''Horário de atendimento:''' 6a. feira - 18h00 - 19h00


== Objetivos ==
* [[TADS:Banco de Dados I (2014-2)|2014/2]] (prof. Ana Paula Wauke)
Fornecer conhecimentos sobre a concepção, utilização, técnicas de estruturação, manipulação de informações, modelos de representação e desenvolvimento de bancos de dados. Banco de dados relacional; normalização até a 3ª. Forma Normal.
 
== Ementa ==
Sistemas de banco de dados; Projeto lógico de banco de dados; Bancos de dados relacionais; Diagrama entidade-relacionamento; Projeto físico de um banco de dados; Linguagem SQL.
Álgebra Relacional. Linguagens de consulta declarativas. Normalização. Projeto Físico de Bancos de Dados. Estrutura interna de um Sistema Gerenciador de Banco de Dados.
 
== Conteúdo Programático ==
#Introdução a Banco de Dados
##Dados X Informação
##Base de dados X sistema de banco de dados
##Tipos de usuários de um banco de dados
##Fases no desenvolvimento de um projeto de banco de dados
##Modelo de dados
#Modelo Entidade-Relacionamento
##Entidades e Atributos
##Chave primária
##Entidade fraca
##Relacionamento / Cardinalidade
##Especialização
##Agregação
#Modelo Relacional
##Chave estrangeira e Integridade referencial
##Conversão Modelo ER para Modelo Relacional
##Diagrama do Modelo Relacional
##Dicionário de Dados
##Normalização
#Linguagem SQL: DDL
#Linguagem SQL: DML
##Comandos INSERT, DELETE, UPDATE, SELECT
##cláusulas WHERE, FROM, LIKE, ORDER BY, GROUP BY
##Operadores IN, NOT IN, EXISTS, ALL, SOME
##Junção
#Desenvolvimento de Aplicação Prática Envolvendo Banco de Dados.
#Álgebra Relacional
 
==Bibliografia Básica==
# SILBERCHATZ, Abrahan, KORTH, Henri F., SHUDARSHAN, S., Sistema de Banco de Dados, 5a. Ed., Campus, 2006.
# HEUSER , Projeto de Banco de Dados.  Editora Sagra Luzzato, 5a. Edição, 2004.
# ELMASRI, Ramez E., NAVATHE, Shamkant B., Sistema de Banco de Dados, 6a. Ed., Pearson, 2010.
# DATE, Chris J., Introdução a Sistemas de Banco de Dados, 8a. Ed, Campus, 2004.
# ABREU, Maurício P.; MACHADO, Felipe N. R.; Projeto de Banco de Dados: Uma visão prática;    Ed. Érica, 2006.
 
==Bibliografia Complamentar==
# KROENKE, David M. ; Banco de Dados: Fundamentos, Projeto e Implementação - 6a edição;  LTC Editora, 1999.
# SUEHRING, Steve;  MySQL a Bíblia;  Ed. Campus Elsevier, 2002;
# ANGELOTTI, Elaini Simoni, Banco de Dados, Editora do Livro Técnico, 2010.
# TAKAHASHI, Mana, Guia Mangá de Banco de Dados, Novatec, 2009.
# LECHETA, Ricardo R.;  Google Android; 3ª Edição, 2013en, ed. Novatec
 
== Link do Blog com material da aula, materiais e listas de exercício ==
# [http://anapaulawauke.wordpress.com http://anapaulawauke.wordpress.com]
Abaixo as listas de Exercícios. O conteúdo encontra-se dividido em partes.
Neste primeiro momento os exercícios são para criar o modelo ER (modelo Entidade-Relacionamento) - ferramenta referência [http://www.baixaki.com.br/download/brmodelo.htm || brModelo]. Em seguida será feito a transformação para o modelo Relacional (estrutura de tabelas) - ferramenta referência [http://dev.mysql.com/downloads/workbench/ || MySql Workbench]. No 2o. bimestre serão implementados para o SQL - ferramenta referência [http://dev.mysql.com/downloads/workbench/ || MySql]:
# [[Mídia:BD1_EX1.pdf | Lista de Exercícios 1]]
# [[Mídia:BD1_EX2.pdf | Lista de Exercícios 2]]
# [[Mídia:BD1_EX3-1.pdf | Lista de Exercícios 3 - parte 1]]
# [[Mídia:BD1_EX3-2.pdf | Lista de Exercícios 3 - parte 2]]
# [[Mídia:BD1_EX3-3.pdf | Lista de Exercícios 3 - parte 3]]
# [[Mídia:BD1_EX3-4.pdf | Lista de Exercícios 3 - parte 4]]
# [[Mídia:BD1_EX3-5.pdf | Lista de Exercícios 3 - parte 5]]
 
 
1. Normalização
[[Mídia:Normalizacao.pdf | Normalização até a 3FN]]
 
2. Dicionário de Dados
[[Mídia:Dicionario de Dados.pdf | Dicionário de Dados]]
 
3. SQL (Structured Query Language)
[[Mídia:SQL-1.pdf  | Aula1 de SQL]]
 
4. Aula 24 de outubro de 2014
[[Mídia:ex20141024.pdf | Exercício Aula 24/10/2014]]
 
/* EXERCICIO 1 */
CREATE DATABASE dbCinema;
USE dbCinema;
 
CREATE TABLE tbSala(
numero_sala int PRIMARY KEY,
descricao_sala varchar(20) NOT NULL,
capacidade int NOT NULL
);
 
CREATE TABLE tbDiretor(
codigo_diretor int PRIMARY KEY,
nome_diretor varchar(20) NOT NULL
);
 
CREATE TABLE tbFilme(
codigo_filme int PRIMARY KEY,
nome_filme varchar(50) NOT NULL,
ano_lancamento int NOT NULL,
categoria_filme varchar(20) NOT NULL,
codigo_diretor int NOT NULL,
FOREIGN KEY (codigo_diretor) REFERENCES tbDiretor(codigo_diretor)
);
 
CREATE TABLE tbSalaFilme(
numero_sala int NOT NULL,
codigo_filme int NOT NULL,
data date NOT NULL,
horario time NOT NULL,
PRIMARY KEY(numero_sala, codigo_filme, data),
FOREIGN KEY (numero_sala) REFERENCES tbSala(numero_sala),
FOREIGN KEY (codigo_filme) REFERENCES tbFilme(codigo_filme)
);
 
CREATE TABLE tbPremio(
codigo_premio int PRIMARY KEY,
nome_premio varchar(20) NOT NULL,
ano_premiacao int NOT NULL,
codigo_filme int NOT NULL,
FOREIGN KEY (codigo_filme) REFERENCES tbFilme(codigo_filme)
);
 
/* EXERCICIO 2 */
INSERT INTO tbSala(numero_sala, descricao_sala, capacidade) VALUES (1, 'Sala Legal', 50);
INSERT INTO tbSala(numero_sala, descricao_sala, capacidade) VALUES (2, 'Sala 3D', 40);
INSERT INTO tbSala(numero_sala, descricao_sala, capacidade) VALUES (3, 'Sala Gigante', 200);
INSERT INTO tbSala(numero_sala, descricao_sala, capacidade) VALUES (8, 'Sala 6D', 150);
 
INSERT INTO tbDiretor(codigo_diretor, nome_diretor) VALUES(1, 'João da Silva');
INSERT INTO tbDiretor(codigo_diretor, nome_diretor) VALUES(2, 'Pedro de Sousa');
INSERT INTO tbDiretor(codigo_diretor, nome_diretor) VALUES(3, 'Maria de Matos');
 
INSERT INTO tbFilme(codigo_filme, nome_filme, ano_lancamento, categoria_filme, codigo_diretor) VALUES(1, 'A Revolta dos Mortos', 2014, 'Ação', 1);
INSERT INTO tbFilme(codigo_filme, nome_filme, ano_lancamento, categoria_filme, codigo_diretor) VALUES(2, 'Plague: A destruição', 2015, 'Suspense', 2);
INSERT INTO tbFilme(codigo_filme, nome_filme, ano_lancamento, categoria_filme, codigo_diretor) VALUES(3, 'Homem Aranha vs Homem de Ferro', 2014, 'Ação', 3);
 
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(1, 3, NOW(), NOW());
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(2, 1, '2015-02-27', '13:00:00');
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(3, 2, NOW(), NOW());
 
INSERT INTO tbPremio(codigo_premio, nome_premio, ano_premiacao, codigo_filme) VALUES(1, 'Melhor Filme', 2015, 2);
INSERT INTO tbPremio(codigo_premio, nome_premio, ano_premiacao, codigo_filme) VALUES(2, 'Melhor Diretor', 2016, 1);
INSERT INTO tbPremio(codigo_premio, nome_premio, ano_premiacao, codigo_filme) VALUES(3, 'Maior Bilheteria', 2015, 3);
 
/* EXERCICIO 2.1 -- 2.7 */
INSERT INTO tbFilme(codigo_filme, nome_filme, ano_lancamento, categoria_filme, codigo_diretor) VALUES(4, 'IFPR: O contágio', 2015, 'Terror', 1);
INSERT INTO tbFilme(codigo_filme, nome_filme, ano_lancamento, categoria_filme, codigo_diretor) VALUES(5, 'A eleição', 2014, 'Terror', 3);
 
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(8, 5, '2010-11-15', '13:00:00');
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(8, 4, '2015-11-15', '15:30:00');
 
INSERT INTO tbDiretor(codigo_diretor, nome_diretor) VALUES(4, 'Pedro Paulo Matos');
INSERT INTO tbDiretor(codigo_diretor, nome_diretor) VALUES(5, 'Jorge Penha');
 
INSERT INTO tbFilme(codigo_filme, nome_filme, ano_lancamento, categoria_filme, codigo_diretor) VALUES(6, 'The Project', 2015, 'Comédia', 5);
 
INSERT INTO tbFilme(codigo_filme, nome_filme, ano_lancamento, categoria_filme, codigo_diretor) VALUES(7, 'Titanic', 2001, 'Drama', 2);
 
INSERT INTO tbPremio(codigo_premio, nome_premio, ano_premiacao, codigo_filme) VALUES(4, 'Melhor Filme', 2010, 7);
INSERT INTO tbPremio(codigo_premio, nome_premio, ano_premiacao, codigo_filme) VALUES(5, 'Melhor Diretor', 2001, 7);
INSERT INTO tbPremio(codigo_premio, nome_premio, ano_premiacao, codigo_filme) VALUES(6, 'Maior Bilheteria', 2008, 7);
 
INSERT INTO tbPremio(codigo_premio, nome_premio, ano_premiacao, codigo_filme) VALUES(7, 'Melhor Filme', 2007, 4);
INSERT INTO tbPremio(codigo_premio, nome_premio, ano_premiacao, codigo_filme) VALUES(8, 'Melhor Diretor', 2009, 5);
INSERT INTO tbPremio(codigo_premio, nome_premio, ano_premiacao, codigo_filme) VALUES(9, 'Maior Bilheteria', 2008, 6);
INSERT INTO tbPremio(codigo_premio, nome_premio, ano_premiacao, codigo_filme) VALUES(10, 'Melhor Filme', 2010, 6);
 
INSERT INTO tbSala(numero_sala, descricao_sala, capacidade) VALUES (12, 'Sala Quase PT', 30);
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(12, 1, '2010-11-15', '13:00:00');
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(12, 2, '2010-11-15', '15:00:00');
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(12, 3, '2010-11-15', '17:00:00');
 
/* EXERCICIO 3 */
select * from tbDiretor;
 
/* EXERCICIO 4 */
select * from tbFilme where categoria_filme = 'Terror';
 
/* EXERCICIO 5 */
UPDATE tbSala SET capacidade=200 WHERE numero_sala = 8;
 
/* EXERCICIO 6*/
UPDATE tbSalaFilme SET numero_sala=8 WHERE numero_sala = 12 AND data = '2010-11-15';
 
/* EXERCICIO 7 */
delete from tbDiretor where nome_diretor='Pedro Paulo Matos';
 
/* EXERCICIO 8 */
SELECT nome_filme as 'nome' FROM tbFilme, tbDiretor WHERE tbFilme.codigo_diretor = tbDiretor.codigo_diretor AND nome_diretor = 'Jorge Penha';
 
/* EXERCICIO 9 */
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(1, 5, '2010-04-20', NOW());
SELECT nome_filme as 'nome', horario FROM tbFilme, tbSalaFilme WHERE tbFilme.codigo_filme = tbSalaFilme.codigo_filme AND tbSalaFilme.data = '2010-04-20';
 
/* EXERCICIO 10 */
SELECT nome_premio FROM tbPremio, tbFilme where tbPremio.codigo_filme = tbFilme.codigo_filme AND nome_filme = 'Titanic';
 
/* EXERCICIO 11 */
UPDATE tbSala SET capacidade=250 WHERE numero_sala = 3;
SELECT nome_filme FROM tbFilme f, tbSalaFilme sf, tbSala s WHERE f.codigo_filme = sf.codigo_filme AND s.numero_sala = sf.numero_sala AND capacidade > 200;
 
/* EXERCICIO 12 */
INSERT INTO tbFilme(codigo_filme, nome_filme, ano_lancamento, categoria_filme, codigo_diretor) VALUES(8, 'Titanic - O retorno', 2001, 'Drama', 2);
INSERT INTO tbFilme(codigo_filme, nome_filme, ano_lancamento, categoria_filme, codigo_diretor) VALUES(9, 'Os Vingadores 7 - O fim de Marte', 2012, 'Ação', 3);
INSERT INTO tbFilme(codigo_filme, nome_filme, ano_lancamento, categoria_filme, codigo_diretor) VALUES(10, 'The movie', 2005, 'Comédia', 1);
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(3, 8, '2010-05-15', '13:00:00');
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(8, 9, '2010-05-15', '15:00:00');
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(2, 10, '2010-05-15', '17:00:00');
SELECT nome_filme as 'Filme', s.numero_sala as 'Sala', horario FROM tbFilme f, tbSalaFilme sf, tbSala s WHERE f.codigo_filme = sf.codigo_filme AND s.numero_sala = sf.numero_sala AND sf.data between '2010-05-01' AND '2010-05-31';
 
/* EXERCICIO 13 */
SELECT nome_filme as 'Premiados' FROM tbFilme f, tbPremio p WHERE f.codigo_filme = p.codigo_filme AND nome_premio = "Melhor Diretor" AND ano_premiacao IN  (2007, 2008, 2009, 2010);
 
/* EXERCICIO 14 */
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(3, 9, '2010-06-30', '15:00:00');
INSERT INTO tbSalaFilme(numero_sala, codigo_filme, data, horario) VALUES(2, 10, '2010-06-15', '17:00:00');
SELECT nome_filme as 'nome' FROM tbFilme, tbSalaFilme WHERE tbFilme.codigo_filme = tbSalaFilme.codigo_filme AND tbSalaFilme.data >= '2010-06-01' AND  tbSalaFilme.data < '2010-07-01' AND tbFilme.categoria_filme = 'Comédia';
 
/* EXERCICIO 15 */
UPDATE tbDiretor SET nome_diretor='Severino Juca' WHERE codigo_diretor = 2;
SELECT descricao_sala as 'Descrição', categoria_filme as 'Categoria', nome_filme as 'Filme' FROM tbDiretor d, tbFilme f, tbSala s, tbSalaFilme sf WHERE      d.codigo_diretor = f.codigo_diretor AND f.codigo_filme = sf.codigo_filme AND s.numero_sala = sf.numero_sala AND nome_diretor = 'Severino Juca';
 
5. Aula 31 de outubro de 2014
 
5.1 [[Mídia:ex20141031.pdf | Exercício Aula 24/10/2014 - Parte 1]]
 
5.2 [[Mídia:ex20141031-INNER_JOIN.pdf | Exercício Aula 24/10/2014 - Parte 2]]
 
5.3 [[Mídia:relacional20141031.pdf | Exercício Aula 24/10/2014 - Parte 3]]
 
6. Aula 04 de novembro de 2014
 
[[Mídia:comandos sql-2014_11nov_04.pdf | comandos sql-2014_11nov_04 ]] (observe a data, pois arquivo será atualizado)

Edição atual tal como às 17h43min de 21 de novembro de 2016

Semestre: 2º

Objetivo

Fornecer conhecimentos sobre a concepção, utilização, técnicas de estruturação, manipulação de informações, modelos de representação e desenvolvimento de bancos de dados.Banco de dados relacional; normalização até a 3ª. Forma Normal;

Ementa

Sistemas de banco de dados; Projeto lógico de banco de dados; Bancos de dados relacionais; Diagrama entidade-relacionamento; Projeto físico de um banco de dados; Linguagem SQL. Álgebra Relacional. Linguagens de consulta declarativas. Normalização. Projeto Físico de Bancos de Dados. Estrutura interna de um Sistema Gerenciador de Banco de Dados.

Planos de ensino

  • 2016/2 (prof. Alcione Benacchio)
  • 2015/2 (prof. Alcione Benacchio)
  • 2014/2 (prof. Ana Paula Wauke)