1 / 18

Conceitos de aplicações que acessam banco de dados

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...

domani
Download Presentation

Conceitos de aplicações que acessam banco de dados

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Luiz Carlos d´Oleronlcadb@cin.ufpe.brSJCP Java Avançado Conceitos de aplicações que acessam banco de dados

  2. 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... • Nas aplicações de hoje em dia, se sobressai o uso de banco de dados relacionais, que são aquele que conhecem e fazem valer leis que regem as relações entre os dados

  3. O que é um Banco de Dados? • Um BD relacional é constituído de várias databases, que são espécie de ilhas de dados • DataBases são compostas de tabelas, view e podem ser acessadas por vários usuários (de formas diferentes!) • Quando JDBC se conecta a um banco de dados relacional, ele faz isso acessando especificamente uma determinada database • No nosso curso, usaremos um banco de dados relacional MySQL

  4. O que é uma tabela? • Tabela, ou entidade, é uma estrutura que define como os dados serão armazenados • Por exemplo, nossa tabela Tab_Clientes

  5. O que é uma tabela? • Tabelas possuem nomes únicos dentro da database • Ela é composta de campos (conhecidos também como atributos) • Esses campos possuem características. Essas características dependem do tipo do campo • Deve existir, em toda tabela, um campo especial, chamado de Chave Primária (primary key)

  6. O que é uma tabela? • Costumamos dizer que uma tabela possui vários registro, cada registro possui dados no formato dos campos da tabela

  7. Chave Primária – Primary Key • Conceito essencial para o entendimento do funcionamento e uso de banco de dados • Dentro de uma tabela, não poderá haver dois registro com o mesmo valor de PK • Uma PK identifica unicamente um registro • Podem ser simples ou composta

  8. Chave Primária – Primary Key • Valores de negócio, como nº de CPF, RG ou telefone não devem ser usados como PK, mesmo que sejam “Chaves de Negócio” • No nosso exemplo, a PK é o campo código • Assim, não existe dois clientes com o mesmo código • Campos auto-increment são ótimas chaves • Chaves primárias otimizam as consultas ao banco, simplificando o trabalho da aplicação e do BD • Toda tabela deve ter uma!

  9. Relacionamentos • Uma tabela pode se relacionar com outra • Por exemplo, podemos armazenar todos os números de telefone dos nossos clientes • Como um cliente pode possuir vários números 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

  10. Relacionamentos • A tab_telefone é uma tabela como outra qualquer • Seus campos podem ser de qualquer tipo • Entretanto, o banco precisa saber como relacionar um determinado telefone a um determinado cliente • Isto é feito através das Chaves Estrangeiras (Forein Key - FK)

  11. Chave Estrangeira • É um campo de um registro que identifica um outro registro de outra tabela. • Em uma tabela, é possível ter vários registros com o mesmo valor para uma chave estrangeira • Um tabela pode possuir várias FK • O valor de uma FK é o valor da PK do registro associado na outra tabela

  12. Chave Estrangeira 1 N

  13. Relacionamentos • Existem relacionamentos do tipo um-para-um, um-para-muitos e muitos-para-muitos • O banco pode ter ferramentas para garantir a “Integridade Referencial” • Por exemplo, o banco pode garantir que não exista nunca um telefone associado a um cliente que não exista • Existem umas ferramentas de cascade que devem ser usadas com cuidados • Isto pode ser feito também na aplicação, pode ser feito no BD e na aplicação (ruim), ou em nenhum dos dois (péssimo)

  14. Exemplo: TesteRelacionamento.java • A principal diferença desse exemplo par ao anterior está na consulta SQL: • A diferença aqui é a cláusula INNER JOIN

  15. TesteRelacionamento.java • INNER JOIN serve para avisar ao banco de dados como ele deve relacionar a tabela tab_clientes à tabela tab_telefone • Várias tabelas podem ser relacionadas dentro de uma mesma instrução • INNER JOIN deteriora enormemente a performance do banco, use com cuidado • Normalmente, é possível quebra uma instrução com INNER JOIN em várias outras, melhorando a performance da aplicação

  16. TesteRelacionamento.java • A forma de acessar os campos do registro permaneceu inalterada • Obviamente, aumentamos a quantidade de campos

  17. TesteRelacionamento.java • Criamos um método também somente para conectar. Isto é uma boa prática e facilitará nosso trabalho daqui para frente

  18. TesteRelacionamento.java • Atente para a exceção java.sql.SQLException • Os métodos da API JDBC normalmente lançam java.sql.SQLException para avisar sobre problemas na infra-estrutura ou na forma da aplicação acessar o banco • Podemos lançar também java.sql.SQLException, de forma a deixar o código mais homogêneo.

More Related