Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias...

27
Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor

Transcript of Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias...

Page 1: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto de Banco de Dados

Leandro Moles de MatosRafael Barbolo LopesThiago Bosco LeiteThiago Dias Pastor

Page 2: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Diagrama Entidade Relacionamento

Page 3: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Sessão Técnica

Minicurso

Palestra

Sessão

nomeid

horárioduraçãohoras

descrição

vagastotais

vagasrestantessala

preço

Materialid

descrição

sessão_material

tec_resp tec_aux

responsável assunto

assunto

apresentacao

Evento

nome

id data duraçãodias descriçãovagas_totais

vagas_restantesescopopreço

Palestrante

email especialidadesnome

telefone

infosid

(1,1) (0,1)

(1,N)(1,N)

Usuário

Gerente Administrador

Participante Recepcionista

nome

id login senha cpf email

tipo

Cartão

id

cadastro_evento(0,N) (1,1)

inscrição(1,N) (0,N)

pagamento

retirada

evento_sessão

(1,1)

(0,N)

comparecimento(0,N) (0,N) partic_cartao

(0,N)

(1,1)

(0,N)

(0,N)

Page 4: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Page 5: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

campo Tipo de dado Restrição de integridadeid_evento Int PKnome Tinytext NNdata Date NNduracao_dias Intvagas_totais Int NNvagas_restantes Intpreco Float NNescopo Tinytextdescricao Tinytextgerente Int FK da tabela “usuario”

Tabela: evento

Page 6: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: sessao

campo Tipo de dado Restrição de integridadeid_sessao Int PKnome Tinytext NNdata_horario Timestamp NNduracao_horas Intdescricao Intvagas_totais Int NNvagas_restantes Intsala Intpreco Floatid_evento Int FK da tabela “evento”

Page 7: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: sessao_tecnica

campo Tipo de dado Restrição de integridadeid_sessao Int PK, FK da tabela “sessão”tecnico_responsavel Tinytext NNtecnico_auxiliar Tinytext

Page 8: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: sessao_minicurso

campo Tipo de dado Restrição de integridadeid_sessao Int PK, FK da tabela “sessão”assunto Tinytext NNresponsavel Tinytext

Page 9: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: sessao_palestra

campo Tipo de dado Restrição de integridadeid_sessao Int PK, FK da tabela “sessão”assunto Tinytext NN

Page 10: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: palestrante

campo Tipo de dado Restrição de integridadeId_palestrante INT PKnome Tinytext NNtelefone CHAR(10) NNemail Tinytext NNespecialidades Mediumtextinfosadicionais Mediumtext

Page 11: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: apresentacao

campo Tipo de dado Restrição de integridadeid_sessao Int PK, FK da tabela “sessao”Id_palestrante Int PK, FK da tabela “palestrante”

Page 12: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: material

campo Tipo de dado Restrição de integridadeid_material Int PKdescricao Tinytext NNId_sessao Int FK da tabela “sessao”,NN

Page 13: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: usuario

campo Tipo de dado Restrição de integridadeid_usuario Int PKnome Tinytext NNlogin Tinytext NN, UUsenha Tinytext NNcpf CHAR(11)telefone CHAR(10)email Tinytexttipo Tinytext NN

Page 14: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: cartao

campo Tipo de dado Restrição de integridadeid_cartao Int PKId_usuario Int FK da tabela “usuario”, NN

Page 15: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: inscricao

campo Tipo de dado Restrição de integridadeid_usuario Int FK da tabela “usuario”, NNId_evento Int FK da tabela “evento”, NNpagamento Boolean NN

Page 16: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: comparecimento

campo Tipo de dado Restrição de integridadeid_usuario Int FK da tabela “usuario”, NNId_sessao Int FK da tabela “sessao”, NN

Page 17: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Projeto Lógico Relacional

Tabela: retirada

campo Tipo de dado Restrição de integridadeid_usuario Int FK da tabela “usuario”, NNId_material Int FK da tabela “material”, NN

Page 18: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Classes Persistentes x Tabelas Geradas

Classe TabelaUsuario usuarioCartao cartaoEvento eventoSessao sessaoMaterial materialSessaoTecnica sessao_tecnicaMinicurso sessao_minicursoPalestra sessao_palestraPalestrante palestrante

Page 19: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Sistema de Gerenciamento de Banco de Dados

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

Page 20: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

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/

Page 21: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Hibernate 3.x

Diminuir a complexidade entre os programas JavaTransformaçã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 SQLAumento no tempo de execução.

Page 22: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

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.

História

Page 23: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

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

Page 24: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

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.

Page 25: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Problemas

Configuracao extensa e complicada. Muitas possibilidades Uso de annotation ou xmlUma alteracao no Banco reflete em muitas alteracoes nas confs do hibernateMuito trabalho manual.

Page 26: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Plugin Hibernate Tools

Reverse Engineering: Mapeia Classes do banco em classes javaMapping Editor: Editor de Xml com inteligentSenseConsole: Facilita montagem de queries em HQLAumenta produtividadeEm desenvolvimentoRoadMap – Mapeamentos em Xml diretamente

Page 27: Projeto de Banco de Dados Leandro Moles de Matos Rafael Barbolo Lopes Thiago Bosco Leite Thiago Dias Pastor.

Obrigado