Leandro Moles de Matos
Rafael Barbolo Lopes
Thiago Bosco Leite
Thiago Dias Pastor
Projeto de Banco de Dados
Diagrama Entidade Relacionamento
id
data duraçãodias descrição
vagas_totais
nome
id
Evento
(0,N)
(1,N)
Usuário
pagamento
Gerente
evento_sessão
horário
(0,N)
id
nome
email
(0,N)
inscrição
(1,1)
cpf
tipo
(1,1)
cadastro_evento
senha
nome
vagas_restantes
escopo
preço
login
Administrador
Participante
Recepcionista
duraçãohoras
(0,N)
descrição
(0,N)
preço
sala
vagasrestantes
Sessão
comparecimento
(0,N)
(0,N)
partic_cartao
retirada
sessão_material
vagastotais
(1,1)
Palestra
(0,1)
Sessão Técnica
(1,N)
apresentacao
Cartão
(0,N)
id
Material
(1,N)
Palestrante
descrição
telefone
Minicurso
tec_resp
(1,1)
assunto
tec_aux
responsável assunto
id
infos
nome email especialidades
id
Projeto Lógico Relacional
Tabela: evento
campo
id_evento
nome
data
duracao_dias
vagas_totais
vagas_restantes
preco
escopo
descricao
gerente
Tipo de dado
Int
Tinytext
Date
Int
Int
Int
Float
Tinytext
Tinytext
Int
Restrição de integridade
PK
NN
NN
NN
NN
FK da tabela “usuario”
Projeto Lógico Relacional
Tabela: sessao
campo
id_sessao
nome
data_horario
duracao_horas
descricao
vagas_totais
vagas_restantes
sala
preco
id_evento
Tipo de dado
Int
Tinytext
Timestamp
Int
Int
Int
Int
Int
Float
Int
Restrição de integridade
PK
NN
NN
NN
FK da tabela “evento”
Projeto Lógico Relacional
Tabela: sessao_tecnica
campo
id_sessao
tecnico_responsavel
tecnico_auxiliar
Tipo de dado
Int
Tinytext
Tinytext
Restrição de integridade
PK, FK da tabela “sessão”
NN
Projeto Lógico Relacional
Tabela: sessao_minicurso
campo
id_sessao
assunto
responsavel
Tipo de dado
Int
Tinytext
Tinytext
Restrição de integridade
PK, FK da tabela “sessão”
NN
Projeto Lógico Relacional
Tabela: sessao_palestra
campo
id_sessao
assunto
Tipo de dado
Int
Tinytext
Restrição de integridade
PK, FK da tabela “sessão”
NN
Projeto Lógico Relacional
Tabela: palestrante
campo
Id_palestrante
nome
telefone
email
especialidades
infosadicionais
Tipo de dado
INT
Tinytext
CHAR(10)
Tinytext
Mediumtext
Mediumtext
Restrição de integridade
PK
NN
NN
NN
Projeto Lógico Relacional
Tabela: apresentacao
campo
id_sessao
Id_palestrante
Tipo de dado
Int
Int
Restrição de integridade
PK, FK da tabela “sessao”
PK, FK da tabela “palestrante”
Projeto Lógico Relacional
Tabela: material
campo
id_material
descricao
Id_sessao
Tipo de dado
Int
Tinytext
Int
Restrição de integridade
PK
NN
FK da tabela “sessao”,NN
Projeto Lógico Relacional
Tabela: usuario
campo
id_usuario
nome
login
senha
cpf
telefone
email
tipo
Tipo de dado
Int
Tinytext
Tinytext
Tinytext
CHAR(11)
CHAR(10)
Tinytext
Tinytext
Restrição de integridade
PK
NN
NN, UU
NN
NN
Projeto Lógico Relacional
Tabela: cartao
campo
id_cartao
Id_usuario
Tipo de dado
Int
Int
Restrição de integridade
PK
FK da tabela “usuario”, NN
Projeto Lógico Relacional
Tabela: inscricao
campo
id_usuario
Id_evento
pagamento
Tipo de dado
Int
Int
Boolean
Restrição de integridade
FK da tabela “usuario”, NN
FK da tabela “evento”, NN
NN
Projeto Lógico Relacional
Tabela: comparecimento
campo
id_usuario
Id_sessao
Tipo de dado
Int
Int
Restrição de integridade
FK da tabela “usuario”, NN
FK da tabela “sessao”, NN
Projeto Lógico Relacional
Tabela: retirada
campo
id_usuario
Id_material
Tipo de dado
Int
Int
Restrição de integridade
FK da tabela “usuario”, NN
FK da tabela “material”, NN
Projeto Lógico Relacional
Classe
Usuario
Cartao
Evento
Sessao
Material
SessaoTecnica
Minicurso
Palestra
Palestrante
Tabela
usuario
cartao
evento
sessao
material
sessao_tecnica
sessao_minicurso
sessao_palestra
palestrante
Classes Persistentes x Tabelas Geradas
MySQL 5
Mais de 10 milhões de instalações;
Usuários famosos: Amo DinDin, NASA, Wikipedia, Bradesco, HP, Nokia, Sony;
Empresa responsável: Sun Microsystems.
Características
Alto desempenho e estabilidade;
Facilidade de uso;
Multiplataforma;
Software Livre com base na GPL;
Storage Engines: MyISAM, InnoDB, BDB, entre outros;
Interface gráfica: MySQL Toolkit (MySQL GUI + MySQL Administrator);
Modelagem de bancos: MySQL Workbench
Sistema de Gerenciamento de Banco de Dados
Hibernate 3.x
 Framework para Mapeamento objeto-relacional.
 Uso de Xml e annotation para estabelecer a relação entre o BD e a
aplicação.
 Software Livre e Licensa LGPL
https://www.hibernate.org/
Hibernate 3.x
Diminuir a complexidade entre os programas Java
Transformação das classes em Java para tabelas de dados (e
dos tipos de dados Java para os da SQL).
Gera as chamadas SQL e libera o desenvolvedor do trabalho
manual da conversão dos dados resultante, mantendo o programa
portável para quaisquer bancos de dados SQL
Aumento no tempo de execução.
História
Criado por desenvolvedores Java, espalhados ao redor do mundo,
e liderado por Gavin King. Posteriormente, JBoss Inc (empresa
comprada pela Red Hat) contratou os principais desenvolvedores do
programa para fazer o seu suporte.
A atual versão do Hibernate é a 3.x, que incorporou características
como a nova arquitetura Interceptor/Callback, filtros definidos pelo
usuário e anotações JDK 5.0 (Metadados do Java), que substitui os
arquivos XML.
Hibernate 3 também se aproxima das especificações EJB 3.0 e atua
como a espinha dorsal das implementações EJB 3.0 em JBoss.
HQL
HQL (Hibernate Query Language) é um dialeto SQL para o
Hibernate.
 Parece com SQL
 HQL é totalmente orientada a objeto, incluindo os paradigmas de
herança, polimorfismo e encapsulamento.
No Hibernate, você pode escolher tanto usar a SQL quanto a HQL.
 Aumenta distancia entre Banco de Dados e o programa
Quando Nao Utilizar !?
Uso extensivo de stored procedures, triggers ou que implementam
a maior parte da lógica da aplicação no banco de dados.
 Modelo de negocio Pobre.
 Perde suas funcionalidades principais.
Problemas
 Configuracao extensa e complicada.
 Muitas possibilidades
 Uso de annotation ou xml
Uma alteracao no Banco reflete em muitas alteracoes nas confs do
hibernate
Muito trabalho manual.
Plugin Hibernate Tools
 Reverse Engineering: Mapeia Classes do banco em classes java
Mapping Editor: Editor de Xml com inteligentSense
Console: Facilita montagem de queries em HQL
Aumenta produtividade
Em desenvolvimento
RoadMap – Mapeamentos em Xml diretamente
Obrigado
Download

Projeto Banco de Dados