Conceitos de aplicações que acessam banco de dados

  • View
    48

  • Download
    2

Embed Size (px)

DESCRIPTION

Java Avançado. Conceitos de aplicações que acessam banco de dados. O que é um Banco de Dados?. É um software capaz de armazenar, atualizar e disponibilizar, de forma segura e eficiente, conjuntos de dados Há vários tipos de BD: Relacionais, Orientado a Objetos, etc... - PowerPoint PPT Presentation

Text of Conceitos de aplicações que acessam banco de dados

  • Conceitos de aplicaes que acessam banco de dadosJava Avanado

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    O que um Banco de Dados? um software capaz de armazenar, atualizar e disponibilizar, de forma segura e eficiente, conjuntos de dadosH vrios tipos de BD: Relacionais, Orientado a Objetos, etc...Nas aplicaes de hoje em dia, se sobressai o uso de banco de dados relacionais, que so aquele que conhecem e fazem valer leis que regem as relaes entre os dados

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    O que um Banco de Dados?Um BD relacional constitudo de vrias databases, que so espcie de ilhas de dadosDataBases so compostas de tabelas, view e podem ser acessadas por vrios usurios (de formas diferentes!)Quando JDBC se conecta a um banco de dados relacional, ele faz isso acessando especificamente uma determinada databaseNo nosso curso, usaremos um banco de dados relacional MySQL

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    O que uma tabela?Tabela, ou entidade, uma estrutura que define como os dados sero armazenadosPor exemplo, nossa tabela Tab_Clientes

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    O que uma tabela?Tabelas possuem nomes nicos dentro da databaseEla composta de campos (conhecidos tambm como atributos)Esses campos possuem caractersticas. Essas caractersticas dependem do tipo do campoDeve existir, em toda tabela, um campo especial, chamado de Chave Primria (primary key)

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    O que uma tabela?Costumamos dizer que uma tabela possui vrios registro, cada registro possui dados no formato dos campos da tabela

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    Chave Primria Primary KeyConceito essencial para o entendimento do funcionamento e uso de banco de dadosDentro de uma tabela, no poder haver dois registro com o mesmo valor de PKUma PK identifica unicamente um registroPodem ser simples ou composta

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    Chave Primria Primary KeyValores de negcio, como n de CPF, RG ou telefone no devem ser usados como PK, mesmo que sejam Chaves de NegcioNo nosso exemplo, a PK o campo cdigoAssim, no existe dois clientes com o mesmo cdigoCampos auto-increment so timas chavesChaves primrias otimizam as consultas ao banco, simplificando o trabalho da aplicao e do BDToda tabela deve ter uma!

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    RelacionamentosUma tabela pode se relacionar com outraPor exemplo, podemos armazenar todos os nmeros de telefone dos nossos clientesComo um cliente pode possuir vrios nmeros de telefone, temos um relacionamento do tipo 1-para-N (ou 1-para-muitos)Como exemplo, implementamos isso com uma tabela nova chamada tab_telefone

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    RelacionamentosA tab_telefone uma tabela como outra qualquerSeus campos podem ser de qualquer tipoEntretanto, o banco precisa saber como relacionar um determinado telefone a um determinado clienteIsto feito atravs das Chaves Estrangeiras (Forein Key - FK)

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    Chave Estrangeira um campo de um registro que identifica um outro registro de outra tabela.Em uma tabela, possvel ter vrios registros com o mesmo valor para uma chave estrangeiraUm tabela pode possuir vrias FKO valor de uma FK o valor da PK do registro associado na outra tabela

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    Chave Estrangeira1N

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    RelacionamentosExistem relacionamentos do tipo um-para-um, um-para-muitos e muitos-para-muitosO banco pode ter ferramentas para garantir a Integridade ReferencialPor exemplo, o banco pode garantir que no exista nunca um telefone associado a um cliente que no existaExistem umas ferramentas de cascade que devem ser usadas com cuidadosIsto pode ser feito tambm na aplicao, pode ser feito no BD e na aplicao (ruim), ou em nenhum dos dois (pssimo)

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    Exemplo: TesteRelacionamento.javaA principal diferena desse exemplo par ao anterior est na consulta SQL:A diferena aqui a clusula INNER JOIN

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    TesteRelacionamento.javaINNER JOIN serve para avisar ao banco de dados como ele deve relacionar a tabela tab_clientes tabela tab_telefoneVrias tabelas podem ser relacionadas dentro de uma mesma instruoINNER JOIN deteriora enormemente a performance do banco, use com cuidadoNormalmente, possvel quebra uma instruo com INNER JOIN em vrias outras, melhorando a performance da aplicao

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    TesteRelacionamento.javaA forma de acessar os campos do registro permaneceu inalteradaObviamente, aumentamos a quantidade de campos

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    TesteRelacionamento.javaCriamos um mtodo tambm somente para conectar. Isto uma boa prtica e facilitar nosso trabalho daqui para frente

    Luiz Carlos dOleron lcadb@cin.ufpe.br

    TesteRelacionamento.javaAtente para a exceo java.sql.SQLExceptionOs mtodos da API JDBC normalmente lanam java.sql.SQLException para avisar sobre problemas na infra-estrutura ou na forma da aplicao acessar o bancoPodemos lanar tambm java.sql.SQLException, de forma a deixar o cdigo mais homogneo.