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