Mostrando postagens com marcador Banco de Dados. Mostrar todas as postagens
Mostrando postagens com marcador Banco de Dados. Mostrar todas as postagens

Solução para conectar com SQL Server no Linux (mssql)

Hoje estive pesquisando sobre isso, para fazer um site em PHP no linux acessar banco de dados Microsoft SQL Server.

No meu caso, o servidor de banco de dados tem Windows Server 2012 com SQL Server 2012, o o servidor que terá o site PHP é um Ubuntu Server 14.04 64bits.

Na instalação do servidor Ubuntu, marquei pra deixar instalado LAMP apenas, depois, executei o seguinte comando para habilitar conexão com banco sql server:
apt-get install php-mssql php-sybase

E depois, configurei o arquivo config/database.php do CodeIgniter da seguite forma:

$db['default']['hostname'] = '172.16.***.***';
$db['default']['username'] = 'USUARIO';
$db['default']['password'] = 'SENHA';
$db['default']['database'] = 'BANCO';
$db['default']['dbdriver'] = 'mssql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

Atenção para o driver, mssql, e colocar o pconnect para FALSE.

Aulas de Computação Grátis

Essa semana o Ilvo me passou uma dica muito interessante:

Para quem não compreendeu 100% algum conteúdo ou quem queira estudar novamente o conteúdo da faculdade, segue um link muito interessante.

Obs: Envio esse pois achei a estrutura de ensino muito bem elaborada.

http://www.compcederj.com.br/aulas/

É isso ai, todo o conteúdo da faculdade em vídeo e de graça, bom proveito.

Criação de um Sistema para Controle de Viagens no Delphi com Firebird Parte II

Olá pessoal, este tutorial é bem antigo e estava perdido aqui nos meus Rascunhos, acho que não tinha terminado ele, era pra ser a continuação deste que na verdade acabou sendo continuado por este. Era pra ser um passo a passo de como montar os cadastros da nossa aplicação para controle de Viagens no Delphi, mas foi feito apenas o início da parte dos menus... #FAIL mas algo sempre se aproveita, então, boa leitura.

Abra o Delphi e crie uma nova aplicação pelo menu File → New → VCL Forms Application – Delphi for Win32, o Delphi vai abrir um Form vazio pra começarmos a trabalhar, no Object Inspector vamos alterar as seguintes propriedades deste form:

Name: FrmPrincipal
Caption: Controle de Viagens
WindowState: wsMaximized

Clique dentro do form e pressione CTRL+ALT+P, digite TMainMenu e pressione ENTER. O atalho serve para começar a filtrar os componentes da Tool Palette do lado esquerdo, note que enquanto você digitava os componentes vão sendo filtrados até sobrar apenas um, com o ENTER ele foi automaticamente inserido no formulário principal.

Este componente serve para montarmos o nosso menu, de um duplo clique nele, será aberto um novo form em branco com um menu vazio selecionado, no Object Inspector vamos procurar a propriedade Caption e digitar "Arquivo", note que vai aparecer um menu "Arquivo" no formulário, clicando em Arquivo ele abre um menu suspenso para baixo onde podem ser cadastrados mais menus, selecione um espaço em branco logo abaixo de "Arquivo" no menu e preencha a propriedade Caption como "Sair", depois vá na aba Events do Object Inspector, então dê um duplo clique no evento OnClick, o Delphi vai sair do modo Design e vai para o Code, ou código, digite a seguinte instrução para fechar a aplicação quando clicado neste menu (Sair):

procedure TFRMPRINCIPAL.Sair1Click(Sender: TObject);
begin
  Close;
end;

Agora pressione F12 para voltar para o modo Design, esta é a tecla de atalho pra alterar entre Design e Code. Bom, agora você já sabe como criar mais menus e adicionar eventos para eles, crie um menu ao lado de "Arquivo" chamado de "Manutenções" e dentro dele (menu suspenso para baixo) crie os seguintes subMenus: Cidades, Pontos Turísticos, Passageiros, Guias, Veículos e Viagens. Se quiser ainda pode criar mais um menu ao lado deste para "Ajuda" sobre o sistema mas isso vai de cada um, documentar sempre é importante, se for distribuir o sistema também é importante colocar um "Sobre" com dados para contato em caso de dúvida ou coisa assim.

Bom, temos a estrutura do nosso menu pronta, agora precisamos criar os formulários de manutenção dos dados e adicionar uma instrução no evento OnClick dos menus que vai exibir este formulários, veremos isto mais adiante.

Com o início da aplicação ok vamos salvar nossa aplicação, como é a primeira vez temos que ir no menu File → Save Project As... para que seja salvo um projeto com executável e tudo o mais, caso contrário o Delphi salvará apenas o formulário o que nos trará alguns problemas mais adiante, este procedimento deve ser feito na primeira vez que vamos salvar, depois um CTRL+S serve pra nós, continuando, ao clicar em Save Project As... o Delphi abriu uma janela pedindo local e nome do arquivo da Unit1, utilize a mesma pasta que já tem o diagrama e tudo mais, renomeie para UntPrincipal e clique em Salvar, agora ele vai abrir uma nova janela para salvar o Projeto, de o nome de CONTROLEDEVIAGENS ou algo assim e clique em Salvar.

Anotações Aula Banco de Dados Oracle

Deixo aqui minhas anotações das aulas do prof. Ackermann, acredito que possam ser úteis, um primeiro post sobre isto já foi escrito e pode ser acessado aqui.

 --- O QUE FAZER SE VOCE ESQUECEU DE CRIAR O CAMPO PRIMARY KEY E JÁ

INSERIU DADOS? cRIA O CAMPO PK E MANTÉM A CONSTRAINT DISABLE, INSERIR
OS VALORES NO NOVO CAMPO NOS REGISTROS JÁ INSERIDOS E DEPOIS PASSA A
CONSTRAINT PARA ENABLE, ATIVA ELA.

ALTER TABLE TABELA ADD CAMPOCHAVENOVO NUMBER(4) CONSTRAINT
TABELA_PK_CAMPOCHAVENOVO PRIMARY KEY DISABLE;

--- COMO EXCLUIR UMA TABELA
DROP TABLE TABELA;
--- REDO: GRAVAM FISICAMENTE OS REGISTROS, INSEREM NO BANCO E GRAVAM NO DISCO.
--- TRUNCATE LIMPA/EXCLUI REGISTROS DA TABELA, DELETE TAMBÉM FAZ ISSO
MAS ANTES ELE FAZ BKP E PODE-SE USAR ROLLBACK, JÁ O TRUNCATE LIMPA
TUDO E JÁ ERA.

---------------- COMANDOS ----------------------------------

- Criar novo usuário:
CREATE USER NOMEUSUARIO IDENTIFIED BY SENHAAQUI DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
- Dar permissões para este usuário se logar e criar tabela etc:
GRANT CONNECT, RESOURCE TO NOMEUSUARIO;
- Criar tabela:
CREATE TABLE TABELATESTE (CAMPONUMERO NUMBER, CAMPOTEXTO VARCHAR(50));
- Exluir tabela:
DROP TABLE TABELA;
- Deletar usuário:
DELETE FROM TABELA WHERE CAMPO = VALOR;
- Criar chave primária em tabela que já contem registros:
ALTER TABLE TABELA ADD CAMPOCHAVENOVO NUMBER(4) CONSTRAINT  TABELA_PK_CAMPOCHAVENOVO PRIMARY KEY DISABLE;
- Inserir dados:
INSERT INTO TABELA VALUES (VALOR);
- Alterar dados:
UPDATE TABELA SET CAMPO=VALOR, CAMPO2=VALOR WHERE CAMPO3=VALOR;
- Listar tabelas criadas:
SELECT * FROM CAT;
- Listar dados da lixeira:
select object_name,original_name,type,ts_name from recyclebin;
- Ver lixeira:
SHOW RECYCLEBIN;- Recuperar tabela dropada da lixeira:
FLASHBACK TABLE NOMETABELA TO BEFORE DROP;
- Opções para limpar a Lixeira:
PURGE TABLE tablename; Tabela específica.
PURGE INDEX indexname; Índice específico.
PURGE TABLESPACE ts_name; Todas a tabelas de um tablespace.
PURGE TABLESPACE ts_name USER username; Idem para um usuário específico.
PURGE RECYCLEBIN; Apenas do usuário corrente.
PURGE DBA_RECYCLEBIN; Toda a Lixeira.
 
Dia 12/05
// LOGAR COM DBA, COMANDO MAIS SENHA USUARIO

CONNECT SYS AS SYSDBA
// PARAR BANCO, (O BD NAO PARA ENQUANTO TODOS NAO SE DESCONECTAREM)
SHUTDOWN
// PARAR BANCO SEM ROLLBACK, DEIXA PRA FAZER QUANDO INICIAR NOVAMENTE
SHUTDOWN ABORT
// PARAR BANCO JÁ COM ROLLBACK DOS COMANDOS NÃO "COMITADOS"
SHUTDOWN IMMEDIATE
// ARQUIVOS DO BANCO ESTÃO EM "C:\app\hardware\oradata"
// PRA FAZER BKP FRIO BASTA PARAR O BANCO E COPIAR OS ARQUIVOS DESTE DIRETÓRIO
// VOLTAR O BANCO
STARTUP
// PRA FAZER bkp quente, precisA dizer ANTES pra tabela que vai ser feito bkp com seguinteS comandoS
SELECT 'ALTER TABLESPACE 'TABLESPACE_NAME' BEGIN BACKUP' FROM DBA_TABLESPACES;
// EXEMPLO...
ALTER TABLESPACE SYSTEM BEGIN BACKUP;
// VAI PRO DIRETÓRIO E COPIA ARQUIVO DA TABELA, DEPOIS EXECUTA SQL ABAIXO PRA FINALIZAR BKP QUENTE
ALTER TABLESPACE SYSTEM END BACKUP;
// no final copia os redo log e control files

Dia 20/05/2010
exp - exportar dados no formato oracle

imp - importa o arquivo de formato oracle
NO CMD# DIGITE
exp help=yes
PARA OBTER AJUDA SOBRE O COMANDO EXP OU DIGITE
imp help=yes
PARA OBTER AJUDA SOBRE O IMP

exportar somente do usuário scott logando com usuario SYSTEM e senha SETREM

EXP USERID=SYSTEM/SETREM OWNER=SCOTT FILE=D:\SCOTT.DAT
exportar todo o banco e gravar LOG
EXP USERID=SYSTEM/SETREM FULL=Y FILE=D:\SCOTT.DAT LOG=D:\LOGFILEEXPFULL.TXT
importar o arquivo recém gerado do usuário scott para um novo usuário chamado jeronimo
IMP USERID=SYSTEM/SETREM FILE=D:\SCOTT.DAT FROMUSER=SCOTT TOUSER=JERONIMO

**OBSERVAÇÕES E **DICAS IMPORTANTES


Para executar import e export de outros usuários o usuário precisa ter atribuição de DBA.

Quando temos bancos de dados de diferentes owners e as tabelas destes bancos possuem relacionamentos pode-se importar sem criar os relacionamentos usando os seguintes parametros:

imp userid=bolivar/senha file=C:\bolivar.dat fromuser=bolivar touser=spock ignore=y constraints=no

e depois executar o import novamente com os seguintes parametros:

imp userid=bolivar/senha file=C:\bolivar.dat fromuser=bolivar touser=spock ignore=y constraints=yes rows=no

Na primeira vez vai importar sem os relacionamentos, na segunda vez vai importar apenas os relacionamentos e as linhas não, isso evita que de problemas na importação em casos que temos muitos usuários com tabelas que se relacionam e dependem uma das outras...
 
 Bom pessoal, até hoje foi isso, quando tiver mais algumas anotações interessantes/básicas/úteis talvez eu escreva novamente.

Criação de um Sistema no Delphi com Firebird

Olá, após um bom período de férias, as aulas da faculdade estão de volta e me lembrei que ficou tarefa do semestre passado pra fazer aqui no blog, mostrar como fazer um sistema utilizando Firebird no Delphi, rapidamente vou explicar como fazer uma tela de manutenção de uma tabela de Cidades, não é o mesmo BD do sistema de viagens mas o processo é o mesmo para todas as tabelas.

- Primeiramente abra o Delphi e crie um File -> New -> VCL Forms Application.


- Depois em File -> Save Project As ..., salve como "untPrincipal" e de um nome para o projeto, pode ser "Cidades", salve.
- Altere o Caption do Form para "Manutenção de Cidades" e o name para frmCidades. CTRL + S para salvar.
- Crie um Data Module em File -> New -> Other ..., selecione Data Module, OK.
 
 
- Neste Data Module, adicione o componente SQLConnection da paleta dbExpress para conectarmos ao nosso banco Firebird (como criar foi ensinado no outro post).
 
 
- Dê um duplo clique sobre o componente para abrir as opções.
- No driver name selecione Interbase.
- Na Key DataBase você coloca o caminho até o seu arquivo *.fdb, o banco de dados, se você salvar a aplicação no mesmo diretório que está o banco de dados pode colocar apenas o nome do arquivo.fdb, isto vai evitar problemas quando você for tentar usar o sistema em outro computador (terá que ter o banco no mesmo caminho).
- Na key ServerCharSet coloque "WIN1252" para que o sistema aceite acentos do português.
- Verifique se o User_Name, Password e SQLDialect estão corretos.
 
 
- Se quiser pode testar a conexão clicando no quarto botão bem em cima, vai pedir a senha (masterkey), se tudo der certo vai receber a mensagem "Successfully Connected".
 
- Clique em OK, altere a propriedade LoginPrompt do SQLConnection para false, isso faz com que ele deixe de perguntar a senha toda vez que você for abrir uma conexão com o banco.
- Altere a propriedade Name do DataModule para "DM".
- CTRL+ S para salvar, chame a Unit de "untDM".

Até aqui criamos um novo projeto, um formulário para a manutenção de cidades, um data module para separar a parte de conexão com o banco das telas de manutenção e criamos a conexão. Agora vamos fazer o processo que será igual para todos as "tabelas básicas" do banco que precisam apenas uma tela para inserir, alterar, excluir e consultar os dados (que eu chamo de manutenção).

- Adicione três componentes no DM (Data Module), um SQLDataSet, um DataSetProvider e um ClientDataSet, para cada tabela terá que ter estes 3 componentes.
- Selecione o SQLDataSet e altere a propriedade SQLConnection, selecione nosso componente de conexão SQLConnection1.
- Na propriedade CommandText vai aparecer "..." quando colocar o cursor do mouse dentro, clique nos pontinhos (...) para abrir o CommandText Editor, nele vão aparecer as tabelas do banco de dados e os campos de cada tabela, selecione a tabela que você está fazendo a manutenção, aqui é "CIDADE" e clique no botão "Add Table to SQL", depois em "Add Field do SQL", isso vai montar uma SQL de consulta dos dados, ex.: "select * from CIDADE", depois clique em OK.


- Selecione o DataSetProvider1 e altere a propriedade DataSet, selecione o SQLDataSet1.
- Selcione o ClientDataSet1 e altere a propriedade ProviderName, selecione o DataSetProvider1.
- Ative o ClientDataSet1 (propriedade Active = true).
- Duplo clique no ClientDataSet1 para abrir o Fields Editor, clique com o botão direito dentro do field Editor e depois em "Add all fields" ou "CTRL + F" para adicionar todos os campos da tabela.


- É interessante renomear os componentes para ficar fácil a identificação quando tiver que fazer pra todas as tabelas, de preferência antes de começar alterar as propriedades dos componentes, neste caso só vou fazer de uma então pulei esta parte.
- Deixe o Fields Editor do ClientDataSet1 aberto e volte para o frmCidades (untPrincipal).
- Selecione todos os fields e arraste eles para dentro do frmCidades, vai pedir uma confirmação para usar o form DM ou algo semelhante, clique em "Yes". Vão ser criados os Edits e Labels conforme os fields da tabela e um DataSource.


- Adicione no formulário o componente DBNavigator e altere a propriedade DataSource, selecione DataSource1.
- Adicione também o componente DBGrid e também altere sua propriedade DataSource para DataSource1. Neste momento já deve trazer os dados do banco (se tiver algo cadastrado), caso não traga nada e estes componentes fiquem "desativados", sem as funções, verifique no DM se o ClientDataSet está com a propriedade Active = true.
- Adicione também um Button, pode ser ao lado do DBNavigator, altere a propriedade Caption para "Salvar" ou "Gravar", de um duplo clique sobre o Button e então vamos digitar o código responsável por fazer com que os dados alterados ou inseridos realmente sejam salvos no banco, antes adicione nas uses o DM, para isso pressione "Alt + F11", selecione a unitDM e OK, agora sim o código para salvar:


procedure TfrmCidades.Button1Click(Sender: TObject);

begin
   DM.ClientDataSet1.ApplyUpdates(0);
end;


- Pressione "F12" para voltar ao modo Design.

Pronto, a tela deve ter ficado parecida com a imagem abaixo.

  
- CTRL + Shift + S para salvar tudo.
- CTRL + F9 para compilar.
- F9 para compilar e executar a aplicação com Debbuger, ou
- CTRL + Shift + F9 para compilar e executar sem Debug (mais rápido)

A aplicação funcionando.


Bom pessoal, minha aula está acabando e vou ficando por aqui, no futuro escreverei um post mostrando como fazer um menu na aplicação e também telas de manutenção em tabelas que tem chaves estrangeiras (usar lookup).

Até.

Primeiros Comandos no Oracle

Primeiras aulas de BD (Oracle), achei interessante os comandos de criar usuário e dar permissão.


- Criar novo usuário: CREATE USER NOMEUSUARIO IDENTIFIED BY SENHAAQUI DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
- Dar permissões para este usuário se logar e criar tabela etc: GRANT CONNECT, RESOURCE TO NOMEUSUARIO;
- Criar tabela: CREATE TABLE TABELATESTE (CAMPONUMERO NUMBER, CAMPOTEXTO VARCHAR(50));

Ok, daqui uns dias faço algum post decente, no momento se contentem com isso e com este outro post sobre JDeveloper, agora ando meio ocupado estudando 14 horas por dia (PROVA ANCOR PELA FRENTE + FACULDADE = LOGO_DESCOBRIREMOS).

Até!

Criação de um Sistema para Controle de Viagens no Delphi com Firebird

Olá pessoal, este é um resumo/tutorial da criação de um sistema para controle de Viagens feito durante as aulas de Programação Comercial do prof. Fauzi Shubeita, durante o desenvolvimento serão usados as ferramentas Case Studio 2.25, IB Expert, Delphi 2007 e o Banco de Dados Firebird 1.5, ele está dividido em duas partes, nesta primeira vamos modelar e criar o banco de dados, na segunda parte será o desenvolvimento no Delphi, talvez não tudo, mas o principal.

Sobre as ferramentas utilizadas:

Case Studio: utilizado principalmente para modelagem de banco de dados, permite a criação de Diagramas de Fluxo de Dados e Diagramas de Entidades e Relacionamentos, tem suporte aos principais banco de dados relacionais. Mais Informações.

IB Expert: segundo Wikipedia, "O IB Expert é um poderoso gerenciador de banco de dados que permite realizar todas as tarefas necessárias para o suporte e manutenção do banco tanto local como remotamente. Com ele é possível administrar o banco criando tabelas, modificando campos, índices, executando scripts SQL e outras funções. O IB Expert realiza a geração do modelo de entidade relacionamento para bancos de dados Interbase e Firebird.". Mais informações e link para download da versão Costumer.

Delphi: segundo próprio site do desenvolvedor, Embarcadero: "Delphi é um dos mais respeitados e amplamente utilizado ambiente Rapid Application Development (RAD). Mais de 1,7 milhões de desenvolvedores em todo o mundo escolheram o Delphi sobre outras ferramentas porque Delphi muda radicalmente as velocidades de trabalho em desktop, workstation, touch, kiosk, e desenvolvimento de aplicações Web sem sacrificar muito tempo de programação ou controle. Os aplicativos criados com o Delphi são rápidos, compacto, fornecem interfaces (UIs) ricas e podem conectar-se a praticamente qualquer fonte de dados ou dados "out-of-the-box". Atualmente já temos a versão 2010, mas neste tutorial estaremos utilizando a 2007.

Firebird: é um banco de dados relacional muito utilizado por ser leve, rápido e de fácil utilização, também roda no Linux, Windows e plataformas Unix. Mais Informações, download Baixaki.

Obs.: Neste resumo não mostrarei passos de como instalar os softwares, apenas utilizar.

Fusion Tables: Novo Banco de Dados da Google

A Google disponibilizou mais uma ferramenta no Google Labs, um banco de dados online para os usuários poderem compartilhar grandes quantidades de dados rapidamente, segundo o Discovery Google, o Google Fusion Tables oferece uma plataforma para visualização de grandes conjunto de dados, uma nova opção para empresas que tentam interesse no compartilhamento de banco de dados na nuvem computacional do Google.



Fiz um teste importando um arquivo do Excel e funcionou muito bem, veja as imagens abaixo da sequência de passos.

- Criei o arquivo no Excel pois é possível importar arquivos *xls, *csv e tabelas já armazendas no Google Spreadsheets.



- Importando para o Fusion Tables.



- Permite a seleção das colunas a serem importadas, em seguida pede um nome e descrição para a nova tabela e pronto, todo o processo segue o padrão NNF.



Tabela importada, feito isso, podemos visualizar e editar os dados em diferentes formas, desde formatos bidimensionais até gráficas e em formas de mapas, podendo configurar filtros (WHERE), agrupar dados (GROUP BY) ordenar (ORDER BY) e até podendo contar (COUNT) os dados, tudo muito rápido e fácil. É possível ainda criar as Views e compartilhar com outros usuários na rede, isso o torna muito útil em grandes empresas facilitando o compartilhamento das informações, também pode-se compartilhar os mapas e gráficos em outros Blogs e sites.



Nesta versão de testes, o novo BD suporta até 100MB por tabela e 250MB por usuário, esperamos pra ver novas funções e serviços da Google, quero só ver como vai ser daqui uns 10 anos. Até.


ERBD: Data Warehouses: Fundamentos, Ferramentas e Tendências Atuais

Prof. Renato Fileto
Departamento de Informática e Estatística (INE)
Universidade Federal de Santa Catarina (UFSC)

Tópicos
 Conceitos básicos
 Sistemas de Suporte à Decisão
 Data Warehouses (DWs)
 OLTP vs. OLAP
 Modelo Dimensional e operadores OLAP (drill-down, roll-up, etc.)
 Planejando, projetando e implementando DWs
 Diretrizes gerais, fases do desenvolvimento e tarefas envolvidas
 Estudo de Caso: DWs para a agricultura
 Padrões e ferramentas para a implementação de DWs
 Principais componentes e padrões para DWs
 Ferramentas abertas e proprietárias para DWs
 Alguns temas de pesquisa atuais em DWs
 DWs com extensões espaciais e temporais
 Semântica em DWs
 Conclusões e referências para estudos adicionais

Pessoal, quem tiver interesse nesta área, baixa este arquivo, é muito bom.

Desenvolvimento de uma aplicação utilizando SOA: um estudo de caso

Minhas anotações sobre a apresentação do artigo "Desenvolvimento de uma aplicação utilizando SOA: um estudo de caso" por Roberto Felipe Caliendo e Daniel Luís Notari durante o V ERBD em Ijuí.

---

SOA: organizar o desenvolvimento de software com base nas regras de negócio da empresa com acesso de forma distribuída.

SOAP: Simple Object Acess Protocol

WSDL: Web Service Description Language

Repositório UDDI: Universal Description, Discovery and Integration

MOTIVAÇÃO

os sistemas existentes hoje não estão aptos a trocar informações automaticamente pois são feitos em linguagens diferentes, com formas de armazenamento diferentes etc.

OBJETIVO

implementar alguns serviços nque pudessem ser reutilizados utilizando RSS (realy simple syndication??), web services abertos ao publico que queira se cadastrar e selecionar suas preferencias de leitura, web service de email e outro de operações diversas...

ARQUITETURA Microsoft
- SQL Server
- turbo delphi for dotnet
- IIS

DESENVOLVIMENTO EM CAMADAS: aplicação - webservice - negócio - BD

CONCLUSÕES

- SOA: necessidade de planejar, definir corretamente interface do serviço, diferentes aplicações consomem o mesmo serviço, trocar informações.
- Dificuldades técnicas para montagem de ambiente de desenvolvimento
- Disponibilidade webservice: CEP - Correios, era grátis passou a ser pago.
- Precisa ser testado em larga escala, viabilidade, problemas com muitos acessos...

E-mails: rfcaliendo@gmail.com, daniel.notari@ucs.br

Até.

Banco de Dados para o Núcleo de Pesquisa e Aplicações de Geotecnologias em desastres naturais e eventos extremos

Fica aqui minhas anotações, ainda do V ERBD, sobre a apresentação de artigos técnicos sobre BDs, a primeira apresentação foi sobre banco de dados para o núcleo de pesquisa e aplicações de geotecnologias em desatres naturais e eventos extremos, com Jolvani Morgan - INPE - CRS.

OBJETIVOS
- Mapeamento de áreas de riscos com imagens de satélites
- Criação de mapas e cartas para monitormanento dinamico

Utilizam PostgreSQL suporta dados espaciais de forma nativa utilizando em conjunto a extenção PostGis

Ferramentas SIG (sistemas de informação geográfica??) para visualização de multipolígonos gravados no banco: quantum GIS

Utilizaram uma ferramenta pra gerar PHP pra desenvolver um sistema web para obter informações de pessoas ao redor do mundo sobre desastres e ver imagens, mapas e dados do banco.

I3Geo - ferramenta para geração de mapas dinâmicos

Home page: http://www.inpe.br/crs/geodesastres
E-mail: jmorgan@inf.ufsm.br

Logo mais resumos dos outros artigos técnicos, até.

ERBD 2009: Funções de similaridade e suas aplicações

Minhas anotações sobre o mini-curso "Funções de similaridade e suas aplicações" ministrado pela Carina F. Dorneles (dorneles@upf.br), durante o V ERBD.

FUNÇÕES DE SIMILARIDADE

- Como calcular a similaridade?
Similaridade é uma coisa subjetiva e o computador te muita dificuldade de definir se é ou não.

- Consulta
Executar consultas sobre várias bases de dados

- Integração
Efetuar integração dos dados

- Data Cleaning
Efetuar a impeza dos dados antes de inserir em uma nova base como por exemplo DWs

Exemplo de consulta SQL utiliazando a função de similaridade levenshtein

select artigo from bdbcomp where levenshtein (autor, 'agma machado traina') > 0,75

// vai buscar artigos de autores com 75% de similaridade no nome 'agma machado traina'.


Exemplo da mesma função para integração...

levenshtein ("league of ... Action","League of ... Sci-Fi") >= 0.78

// integrar aquilo cujo linar de similaridade maior que 78

É bastante usado Data WareHouses na parte de Data Cleaning, limpeza de dados, exemplo:

levenstein('ijuí - RS','ijuí - RGS')
// pra elimiar inconsistências, erros de digitação etc, vai trocar os RGS por RS se não me engano :D

Avaliaçao de uma função
- Revocação
- Precisão
- Discernabilidade

SIMILARIDADE X DISTÂNCIA

A função de similaridade tem dois parametros e retorna um valor, um escore entre 0 e 1, quanto maior for mais similar são entre si.

A função de distância tem dois parametros e retorna um valor, mas o escore vai de zero até o infinito, quanto menor o valor do escore, maior a similariedade.

Fórmula para transformar distância em similaridade:

similaridade = 1 - (valor de distância normalizado)

Ferramenta
- Similarity Metrics Testing Suite

* valores atomicos: strings
- baseadas em caracter
- baseadas em Token

* valores agregados
- uso em expressões algébricas
- uso em algoritmos

SVM - Inteligência artificial - tuplas - faz algoritmos para testar com funções de distancias partes de atributos para saber se os dados sao similares, criando vetores de valores que sao enviados para SVM fazer a comparação e dizer se os dados sao duplicados ou não.

ROTEIRO
- consultas por similaridade
- integração de dados
- data cleaning
- mineração de dados


SGBDs que implemetam funções de similaridade

POSTGRESQL
MYSQL
DB2
ORACLE


FUNÇÕES NO POSTGRESQL

- levenshtein
- soundex
- dmetaphone (fonético tbm)

APLICATIVO WEKA - FREE

www.CS.WAIKATO.AC.NZ/WEKA
Ferramenta de mineração, vários algoritmos para técnicas mais conhecidas, extensível, algoritmos podem ser usados para compor outras aplicações, é necessário

DEMOSTRAÇÃO
queens.db.toronto.edu/project/spider/demo

FERRAMENTA QUE LEVA EM CONSIDERAÇÃO SINONIMOS -> WORDNET??

Classificação

- Funções para valores atomicos

*Lenshtein
*Soundex
*Achronimous

- Função Token, quebra as strings em partes antes de comparar...

*Jaccard

Bom, minhas anotações ficaram meio desconexas porque eram muitas informações e não dava tempo de prestar atenção e anotar tudo ao mesmo tempo, mas o assunto é interessante e pode ter várias aplicações como, antes de cadastrar uma pessoa, verificar se o nome já existe através da fonética e ai por diante, o problema é que isso pode diminuir muito a performance da aplicação, mas fica a dica e é uma área que ainda existem poucas pesquisas...

Link para material do V ERBD.

Até.

Da teoria a prática da tecnologia XML


Resumo da oficina sobre XML ministrada pela Profa. Jiani Cardoso (jiani@pucrs.br) durante o V ERBD, breve descrição do assunto e material para download.

A eXtensible Markup Language (XML) é uma meta linguagem de marcação criada pela W3C com o objetivo de trocar e/ou transportar dados de uma aplicação para outra, integrando sistemas de informação.

Por meio de uma estrutura para documentos utilizando tags, a XML oferece ao usuário a oportunidade de criar uma linguagem de marcação específica, de acordo com a sua necessidade.

Estou postando somente agora o material dessa oficina pois estou com pouco tempo livre, ainda tenho mais alguns materiais disponibilizados durante o evento (V ERBD) que pretendo organizar melhor antes de publicar aqui, mas, se você tiver interesse/curiosidade sobre XML este é um bom material.

Clique aqui para baixar todo material da oficina.

ERBD 2009: Integração de Dados: Resumo Palestra

Olá pessoal, como já havia comentado em outro post estou participando esta semana do V Escola Regional de Banco de Dados, em Ijuí - RS. Por enquanto vou deixar aqui minhas anotações de uma excelente palestra que tivemos esta noite sobre integração de dados com Bernadette Farias Lóscio.

MOTIVAÇÃO

- Distribuição
- Heterogeneidade
- Autonomia
- Transparência

SISTEMAS DE INTEGRAÇÃO DE DADOS

Ficam entre a aplicação e as fontes de dados

FONTES DE DADOS (governamentais, núcleos de pesquisas, ...) <-> CAMADA DE INTEGRAÇÃO DE DADOS (mediação, data warehouses, p2p, web services, ...) <-> APLICAÇÃO...APLICAÇÃO

- O número de fontes pode aumentar.
- As fontes de dados podem ser estruturados ou não
- Heterogeneidade em diferentes níveis

A área de integração de dados vem evoluindo a muito tempo, passando por vários tipos de sistemas.
1. Aplicação de banco de dados
2. Sistemas de banco de dados multiplos
3. sistemas de mediação
4. sistemas baseados em agentes
5. sistemas baseados em ontologias
6. integração de dados usando web services
7. dataspaces
8. ...

INTEGRAÇÃO DE DADOS É UM PROCESSO

1. Entender: Entender os dados, as propriedades, valores e significados. Metadados são fundamentais.
2. Padronizar: Defniir terminologias, como lidar com objetos e valores inconsistentes, definir esquema integrado.
3. Especificar: Configurar o mecanismo de integração, definir as fontes a serem integradas, mapeamentos entre as fontes locais e o sistema integrado.
4. Executar: Integrar!!!! (materialização x mediação) Os dados são extraídos das fontes, tratados e armazenados em um repositório.

Um esquema integrado é definido pelos requisitos do usuário, por isso fica em constantes atualizações, fontes podem ser adicionadas ou removidas.

O objetivo da área de integração de dados não é criar uma aplicação que automatize todo o processo, mas sim sistemas que facilitem esse trabalho.

ARQUITETURAS DE MEDIADORES

O mediador explora o conhecimento representado em um conjunto ou subconjunto de dados e gera informações para aplicações residentes em uma camada superior. Também podem ter tradutores entre os mediadores e base de dados, que hoje pode ser o XML extraído diretamente das bases de dados relacionais que são heterogeneas, isso facilita para que o sistema de integração seja mais simples e use apenas o XML.

Teóricamente, o mediador recebe uma consulta, repassa na forma correta para os tradutores, cada tradutor vai precisar entender a linguagem da base de dados que estará obtendo as informações para que na hora em que venha uma consulta ele possa consultar na base e retornar os dados em XML para o mediador fazer a integração com os dados recebidos das outras fontes de dados e passar para a aplicação.

Um sistema de integração de dados baseado em mediadores é uma trpla G, S, M onde:
- G é o esquema global: requisitos dos usuários...
- S é o esquema fonte: as fontes de dados...
- M é o mapeamento entre G e S: um mapeamento é necessário para que possa ser transformada uma consulta feita ao mediador em subconsultas para as fontes de dados, são fundamentais para o processo de integração de dados.

Geração dos mapeamentos semanticos
1. identificação de correspondencias (matchings)
2. geração das expressões de mapeamento (mappings)

Após a identificar os dados da consulta nas fontes locais, ou seja, traduzir a consulta original feito na fonte global para que possa ser entedido nas subconsultas e feito essas consultas, surge outro problema, como saber se os dados vindos das fontes locais são equivalentes? Pedro da fonta A é o mesmo Pedro da fonte B?

GAV: Os mapeamentos são feitos das fontes globais para as fonteis locais, facilitando nas consultas.

LAV: Agora você tem os elementos das fontes locais que são associados as visões da fonte global, neste caso é mais fácil a remoção e inserção de fontes mas complica para as consultas.

Exemplos de Soluções/Aplicações

- Projeto Integra (Grupo de Pesquisa em Banco de Dados - UFPE)
Projeto feito para estudos...

- Projeto Speed (Grupo de Pesquisa em Banco de Dados - UFPE)
Super rede p2p com vários mediadores, ontologias para distribuição, evolução do Integra mas virou praticamente outro sistema.

- Projeto FlagelLink (Grupo de Pesquisa em Banco de Dados - UFC & NUGEN - UECE)

INTEGRAÇÃO SEMÂNTICA

Agrupar e combinar dados de diferentes fontes considerando uma semântica explícita

ONTOLOGIAS

As ontologias vem como uma informaçao a mais pra deixar explícita a informação de determinada fonte de dados.

Com as ontologias você pode modelar um domínio através de classes e propriedades e você pode fazer inferência, definido restrições (regras) para criar a estrutura das bases de conhecimentos, onde você pode fazer novas inferências e descobrir informações a partir das informações já conhecidas, isso que diferencia as ontologias das bases de dados relacionais.

Exemplo: CEARA -> faz parte -> BRASIL; BOLÍVAR -> é namorado -> DILÉIA

Abordagens da integração semântica

- uma única ontologia
ontologia global -> fontes de dados

- múltiplas ontologias
(ontologia local -> fonte de dados) <-> (ontologia local -> fonte de dados) <-> (ontologia local -> fonte de dados)

- abordagem híbrida
vocabulário compartilhado -> ontologias locais -> bases de dados

CONTRIBUIÇÕES

- RelOnto: um sistema para geração de ontologias a partir de banco de dados relacionais [Lopes, 2009]
- MeMo: uma estratégia para merging múltiplo de ontologias considerando a similaridade [Araújo, 2009]

DATASPACES

Tentativa de solucionar os problemas de integração de dados de uma forma diferente, com tempos e custo menor.

Utilizar um mecanismo de busca para realizar consultas podem retornar muitas coisas que não correspondem ao que sua consulta realmente queria... google... solução: utilizar um sistema de integração de dados, problema é muito trabalho... um meio termo, ter um sistema não tão preciso que vá aprendendo com o tempo, isso é um dataspace, com resultados desde o início, no início a qualidade é mais baixa mas tende a aumentar com o passar do tempo e p feedback dos usuários... google quando guarda os links mais clicados para determinada consulta...

Diferenças dos dataspaces para outros modelos de sistemas

- mapeamentos semânticos e esquema de mediação serão criados automaticamente (porém podem ser aproximadas)
- diferentes mecanismos de consulta (respostas aproximadas ou parciais)

CONCLUSÕES

- Integração de dados está em todo lugar, é um problema que está em diversas aplicações.
- É um problema antigo.
- Soluções existentes são adaptadas para novos contextos, com a evolução das tecnologas as soluções precisam ser adequadas.
- Difícil prover soluções "automáticas"
- Prover soluções "aproximadas"(???)
- Novos desafios... sempre

Divulgação: evento na área de banco de dados em Fortaleza, de 05 a 09 de Outubro. mais informações no site www.sbbd-sbes2009.ufc.br

Profa. Dra. Bernadette Farias Lóscio
Site pessoal: http://www.lia.ufc.br/~bernafarias
E-mail: bernafariaslia.ufc.br