Upload
rafael-barbolo
View
1.121
Download
1
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
Projeto de Banco de Dados
Leandro Moles de MatosRafael Barbolo LopesThiago Bosco LeiteThiago Dias Pastor
Diagrama Entidade Relacionamento
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)
Projeto Lógico Relacional
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
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”
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
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
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
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
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”
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
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
Projeto Lógico Relacional
Tabela: cartao
campo Tipo de dado Restrição de integridadeid_cartao Int PKId_usuario Int FK da tabela “usuario”, NN
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
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
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
Classes Persistentes x Tabelas Geradas
Classe TabelaUsuario usuarioCartao cartaoEvento eventoSessao sessaoMaterial materialSessaoTecnica sessao_tecnicaMinicurso sessao_minicursoPalestra sessao_palestraPalestrante palestrante
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
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 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.
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
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 xmlUma alteracao no Banco reflete em muitas alteracoes nas confs do hibernateMuito trabalho manual.
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
Obrigado