Академический Документы
Профессиональный Документы
Культура Документы
edilson.ifsp@gmail.com
FUNCIONARIO
CPF primeiroNome nomeDoMeio sobreNome salario
1.2. Entidades Fracas
Criar uma tabela para cada conjunto de entidades fracas.
Incluir como chave estrangeira a chave primria da tabela de entidades dominantes.
As entidades fracas tm chave primria composta de duas partes:
o A chave primria da tabela de entidades dominantes
o A chave parcial do conjunto de entidades fracas.
FUNCIONARIO
CPF nome salario
DEPENDENTE
CPFResponsavel nome dataNasc
FUNCIONARIO
CPF nome salario
DEPARTAMENTO
codDepto descricao CPFGerente dataInicio
FUNCIONARIO
CPF nome salario codDepto dataLocacao
DEPARTAMENTO
codDepto descricao
FUNCIONARIO
CPF nome salario
ALOCACAO
CPF codProjeto
horas
PROJETO
codigo descricao dataInicio dataFim
FUNCIONARIO
CPF nome salario
FONE
CPFFuncionario numeroFone
VENDAS
codFornecedor codComprador codProduto data qtde
2. Join (Juno)
A operao de juno, representada atravs de |X|, utilizada para combinar tuplas (linhas)
relacionadas de duas ou mais relaes (tabelas) em uma nica linha.
Forma Geral:
NomeMontadora
GM
Honda
Toyota
Fiat
Volkswagen
Ford
Veiculo
CodigoModelo
10
20
30
40
50
NomeModelo CodigoMontadora
Gol
5
Palio
4
Corsa
1
Civic
2
Clio
Null
Inner Join:
3. Exerccios
3.1. Dadas as tabelas abaixo, escreva o cdigo SQL para as questes de 1 a 5.
CLIENTE
CodCliente
NroConta
Nome
DataN asc
Endereco
1
2
3
4
5
10020
Null
10014
10028
Null
Ronaldo
Klber
Mrcia
Joana
Alethia
20/07/1980
13/04/1986
28/11/1982
13/04/1986
28/11/1982
Cidade
So Paulo
Santos
Bauru
So Paulo
Jundia
CONTA
NroConta
10020
10075
10014
10028
10077
Agencia
SPCAP
SPLIT
SPINT
SPCAP
SPINT
Saldo
300
7000
2100
890
1070
a)
Barco
codMarinheiro
nome
avaliacao idade
codBarco
descricao
cor
22
Dustin
45
101
Interlake azul
29
Brutus
33
102
Interlake vermelho
31
Lubber
55
103
Clipper
verde
32
Andy
25
104
Marine
vermelho
58
Rusty
10
35
64
Horatio
35
71
Zorba
10
16
74
Horatio
35
22
101
10/10/2013
85
Art
25
22
102
10/10/2013
95
Bob
63
22
103
08/10/2013
22
104
07/10/2013
31
102
10/11/2013
31
103
06/11/2013
31
104
12/11/2013
64
101
05/09/2013
64
102
05/09/2013
74
103
08/09/2013
Reserva
codMarinheiro codBarco
data
b)
c)
d)
1) Crie um novo projeto no NetBeans, especificando a categoria como Java e o projeto como
Aplicativo Java.
2) Informe como nome de projeto Aula02_ConexaoBD. Aps isso, crie a classe ConexaoBD.
possvel criar a classe e j inclu-la no pacote br.edu.ifsp.aplicacaoteste. Veja:
4) Clique em Executar.
Observao: Ao tentar executar o projeto, ir ocorrer o seguinte erro:
Exception
in
thread
"main"
java.lang.RuntimeException:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
br.edu.ifsparq.ConexaoBD.main(ConexaoBD.java:21)
at
Isso significa que a aplicao no encontrou uma implementao do driver JDBC para estabelecer
a conexo com o banco de dados.
Para solucionar esse problema, clique com o boto direito na pasta Biblioteca e escolha a
opo Adicionar biblioteca... (o NetBeans j possui o driver; no necessrio efetuar o download).
Aps isso, selecione o driver para o MySQL (MySQL JDBC Driver) e clique no boto Adicionar
biblioteca.
o programa inicializa o objeto conexao (do tipo Connection) com o resultado de uma chamada
ao mtodo esttico getConnection(), que pertence classe DriverManager (pacote java.sql). O
mtodo getConnection() recebe trs argumentos: uma string que especifica o url do banco de dados,
o nome de usurio e sua senha.
O url especifica o protocolo de comunicao (jdbc), indica que o protocolo utiliza um
subprotocolo especfico para o MySQL (mysql), e tambm contm a localizao do banco de dados
(localhost:3306/biblioteca ). Veja:
jdbc:mysql://localhost:3306/biblioteca
Na linha
conexao.close();
realizado o fechamento da conexo com o banco de dados. Vale enfatizar que efetuar o
fechamento da conexo de extrema importncia para a segurana da aplicao e liberao de
recursos JDBC.
5. Efetuando uma consulta simples
O cdigo fornecido a seguir permite a consulta e impresso de informaes da tabela Aluno.
Pr-requisitos:
a) Criao do banco de dados Escola.
Utilize o MySQL Workbench para criar o novo banco de dados.
b) Criao da tabela Aluno no banco de dados Escola.
Observao: a tabela Curso criada somente para permitir que a tabela Aluno contenha a coluna
codCurso como chave estrangeira.
CREATE TABLE Curso(
codCurso
INT AUTO_INCREMENT,
nomeCurso
VARCHAR(30),
depto
VARCHAR(30),
PRIMARY KEY(codCurso)
);
CREATE TABLE Aluno(
codAluno
int auto_increment,
nome
VARCHAR(40),
cpf
VARCHAR(11),
fone
VARCHAR(13),
codCurso
INT,
PRIMARY KEY(codAluno),
FOREIGN KEY (codCurso) REFERENCES Curso (codCurso)
);
Cdigo Java:
package br.edu.ifsp.nomeaplicacao;
import java.sql.*;
public class ConexaoBD
public static void
Connection con
Statement st =
ResultSet rs =
{
main(String[] args) {
= null;
null;
null;
try {
con = DriverManager.getConnection(url, usuario, senha);
st = con.createStatement();
rs = st.executeQuery("select * from aluno;");
while (rs.next()) {
int codigo = rs.Int("codAluno");
String nome = rs.getString("nome");
String cpf = rs.getString("cpf");
String fone = rs.getString("fone");
int codCurso = rs.Int("codCurso");
System.out.println("Cdigo Aluno: " + codigo + ", Nome: " +
nome + ", CPF: " + cpf + ", Fone: " + fone + ", Cdigo Curso: " +
codCurso);
}
} catch (SQLException e) {
throw new RuntimeException(e);
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
}
1) Listar Cursos
2) Listar Alunos
3) Listar Departamentos
Observao: As informaes do departamento devem ser armazenadas em uma nova tabela.
6.2. Escreva um programa que, baseando-se nas tabelas Marinheiro, Barco e Reserva, liste todas
as reservas de barcos, contendo as seguintes colunas:
Nome do Marinheiro
Descrio do Barco
Cor do Barco
Desafio: Tente listar tambm a data da reserva.
6.3. Elabore um conjunto de tabelas para a seguinte situao: Luiz Felipe comprou um conjunto
de casas em um condomnio. Agora ele quer criar um sistema que seja capaz de ajud-lo no
controle do aluguel e avarias (problemas) das casas. Alm do nome, endereo (rua, nmero,
cep, cidade) e telefone do condomnio, ele quer armazenar o endereo da casa (rua, lote,
nmero), o valor do aluguel e a data na qual ela foi alugada. Um cliente (nome, cpf, salario,
data de nascimento) pode alugar vrias casas ao mesmo tempo. No caso das avarias,
existem trs tipos: eltrica, estrutural ou hidrulica. Deve existir um campo que contenha a
descrio da avaria, a data na qual ela ocorreu e a data na qual foi solucionada.