Download presentation
Presentation is loading. Please wait.
1
Luiz Carlos d´Oleron lcadb@cin.ufpe.br SJCP Java Avançado Conceitos de aplicações que acessam banco de dados
2
Luiz Carlos d´Oleron – 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 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
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br 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
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br O que é uma tabela? Tabela, ou entidade, é uma estrutura que define como os dados serão armazenados Por exemplo, nossa tabela Tab_Clientes
5
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br 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
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br O que é uma tabela? Costumamos dizer que uma tabela possui vários registro, cada registro possui dados no formato dos campos da tabela
7
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br 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
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br 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
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br 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
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br 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
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br 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
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br Chave Estrangeira 1 N
13
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br 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
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br 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
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br 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
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br TesteRelacionamento.java A forma de acessar os campos do registro permaneceu inalterada Obviamente, aumentamos a quantidade de campos
17
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br TesteRelacionamento.java Criamos um método também somente para conectar. Isto é uma boa prática e facilitará nosso trabalho daqui para frente
18
Luiz Carlos d´Oleron – lcadb@cin.ufpe.br 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.
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.