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

Projeto de Banco De Dados - Upcoming Events

Embed Size (px)

DESCRIPTION

http://code.google.com/p/upcomingevents/ Apresentação de Engenharia de Software: Projeto de Banco de Dados do projeto Upcoming Events.

Citation preview

Page 1: Projeto de Banco De Dados - Upcoming Events

Projeto de Banco de Dados

Leandro Moles de MatosRafael Barbolo LopesThiago Bosco LeiteThiago Dias Pastor

Page 2: Projeto de Banco De Dados - Upcoming Events

Diagrama Entidade Relacionamento

Page 3: Projeto de Banco De Dados - Upcoming Events

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 - Upcoming Events

Projeto Lógico Relacional

Page 5: Projeto de Banco De Dados - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

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 - Upcoming Events

Obrigado