Prática - BD Distribuído Carlos Roberto da Silva Júnior
Acessando um Banco de Dados Um servidor Oracle local Não precisa se preocupar com que tipo de conexão será utilizada 4/25/2019 © CIn/UFPE
Acessando um Banco de Dados Database Alias Um servidor remoto Deve-se determinar uma forma de realizar a conexão, de maneira fácil e eficiente Um Database Alias é um string que determina um atalho para a instância Oracle a ser acessada remotamente 4/25/2019 © CIn/UFPE
Criando um Database Alias Deve-se dar as informações necessárias para acessar a instância desejada (base de dados) O nome da instância O protocolo de comunicação desejado O host name ou endereço IP do servidor (no caso da escolha do protocolo TCP/IP) O nome que se deseja dar ao string de conexão 4/25/2019 © CIn/UFPE
Desenvolvendo uma aplicação Para desenvolver uma aplicação no Oracle é necessário seguir alguns passos. Vários deles são deveres do Administrador do banco de dados. criar um banco de dados - Administrador Criar uma instância para o banco - Administrador; Criar um usuário - Administrador ou usuário da aplicação 4/25/2019 © CIn/UFPE
Desenvolvendo uma aplicação Passos (Cont.) dar permissões ao usuário - Administrador ou usuário da aplicação criar um database alias - Administrador ou usuário da aplicação criar as tabelas do banco de dados - Administrador ou usuário da aplicação 4/25/2019 © CIn/UFPE
Desenvolvendo uma aplicação Tarefas que ficarem a cargo dos usuário da aplicação, poderão ser feitas utilizando mais uma ferramenta de apoio: SQL PLUS Menu Iniciar/programas/oracle Uma janela pedindo informações A respeito do usuário (User name) e senha (Password) Banco (Host string). Se o banco de dados estiver em uma máquina remota, preencher com o Database Alias 4/25/2019 © CIn/UFPE
Desenvolvendo uma aplicação 4/25/2019 © CIn/UFPE
Desenvolvendo uma aplicação Caso os dados preenchidos estejam de acordo, o usuário estará dentro do sistema e poderá desenvolver sua aplicação. Tudo que ele criar, estará automaticamente gravado em uma região de memória reservado para o banco que ele está conectado 4/25/2019 © CIn/UFPE
Desenvolvendo uma aplicação 4/25/2019 © CIn/UFPE
Exemplo Prático CREATE TABLE Veiculos ( codigo INTEGER NOT NULL, descricao VARCHAR2(20) NULL, marca VARCHAR2(20) NULL, preco FLOAT NULL, PRIMARY KEY (codigo) ); 4/25/2019 © CIn/UFPE
Criando um ambiente replicado O Oracle permite a criação de uma ambiente replicado Cada site contém uma cópia de dados necessários a ele Uma coleção de dados pode ser replicada em muitos sites Existem dois tipos básicos de sites, Master sites e Snapshot sites. 4/25/2019 © CIn/UFPE
Criando um ambiente replicado Um Master site deve receber uma completa cópia de todos os objetos replicados. Cada master propaga ou empurra as mudanças nos dados para todos os outros masters do grupo replicado em questão Um Snapshot site pode receber um subconjunto de objetos em um grupo replicado 4/25/2019 © CIn/UFPE
Criando um ambiente replicado Snapshots devem puxar as mudanças que ocorreram nos dados no seu master site equivalente. Um ambiente replicado consiste de Snapshots e somente um Master Site 4/25/2019 © CIn/UFPE
Propagação Síncrona x Assíncrona Numa propagação assíncrona, os dados são armazenados e depois enviados (store and forward) Numa propagação síncrona os dados não são armazenados. Eles são enviados logo que chegam, ou seja, em tempo real. É possível utilizar replicação ou distribuição de dados em um ambiente assíncrono, mas somente replicação em um ambiente síncrono 4/25/2019 © CIn/UFPE
Snapshot Através do programa SQL PLUS o usuário da aplicação poderá criar seus snapshots em um ambiente replicado Na verdade um snapshot consiste em uma visão (view) de uma tabela física definida em outro servidor .Passos Criar uma base de dados e uma instância (administrador) Criar uma Tablespace 4/25/2019 © CIn/UFPE
Snapshot Passos (Cont.) Criar um usuário, dar permissões e associá-lo a uma Tablespace (administrador) Criar um Database Link (usuário da aplicação) Criar um snapshot (usuário da aplicação) 4/25/2019 © CIn/UFPE
Criando um Database Link Trata-se de um descritor que aponta para uma instância de uma base de dados em outra máquina Manipulação de consultas DML (Database Manipulation Language) 4/25/2019 © CIn/UFPE
Criando um Database Link Sintaxe para a criação de um Database Link CREATE DATABASE LINK [nome do databse link] CONNECT TO [nome do usuário] IDENTIFIED BY [password do usuário] USING `nome do database alias’ 4/25/2019 © CIn/UFPE
Criando um Database Link Desta forma, pode-se executar qualquer comando DML remotamente Exemplos Criação de Link create database link dblink_curso connect to curso identified by curso using ‘dbalias_curso’ 4/25/2019 © CIn/UFPE
Manipulação Exemplos (Cont.) Inserção insert into alunos@dblink_curso values (123,’Vicente Beltrão’) inserção em uma tabela chamada alunos com campos codigo e nome 4/25/2019 © CIn/UFPE
Manipulação Exemplos (Cont.) Atualização update alunos@dblink_curso set nome = ‘júnior Baiano’ where codigo = 12356 Atualização em uma tabela chamada alunos com campos codigo e nome 4/25/2019 © CIn/UFPE
Manipulação Exemplos (Cont.) Deleção delete from alunos@dblink_curso where codigo = 234 Exclusão em uma tabela chamada alunos com campos codigo e nome 4/25/2019 © CIn/UFPE
Criando um snapshot Sintaxe create snapshot [nome do snapshot] refresh complete start with sysdate next sysdate + [intervalo de tempo] as select [cláusula da seleção] 4/25/2019 © CIn/UFPE
Criando um snapshot Exemplos Tabela completa create snapshot snap_curso refresh complete start with sysdate next sysdate + 1/24 as select * from alunos@dblink_curso 4/25/2019 © CIn/UFPE
Criando um snapshot Fragmentação Vertical create snapshot snap_curso refresh complete start with Sysdate next Sysdate + 1/24 as select nome from alunos@dblink_curso 4/25/2019 © CIn/UFPE
Criando um snapshot Fragmentação Horizontal create snapshot snap_curso refresh complete start with sysdate next sysdate + 1/24 as select * from alunos@dblink_curso where nome = ‘Vicente Beltrão’ 4/25/2019 © CIn/UFPE