Palestra: PEAR::MDB2_Schema - Banco de Dados portáveis em XML

MDB2_Schema é uma extensão do MDB2, ambos pacotes do
PEAR (PHP Extension and Application Repository). A
principal idéia por trás do MDB2_Schema é interfacear
um banco de dados físico e um arquivo XML. Como uma
ponte de duas vias, pode-se armazenar bases de dados
inteiras em um arquivo XML, assim como, em caminho
inverso, sincronizar um banco de dados com sua versão
em XML. As principais operações são criar, alterar e
excluir entidades (operações denominadas de DDL, do
inglês Data Definition Language) e também inserir,
atualizar e excluir dados (operações denominadas de
DML, do inglês Data Manipulation Language).
O desafio está em desenvolver uma forma de facilmente se definir o esquema de banco de dados para uma primeira instalação, mas também garantir que não sejam perdidos dados no caso de se estar atualizando um banco já existente.
Exemplo:
Suponha que temos uma tabela de usuários com uma única coluna de número de telefone. Na próxima versão do nosso aplicativo queremos permitir que cada contato possa ter um número indeterminado de telefones, criando para isso uma nova tabela.
CREATE TABLE telefones (...); INSERT INTO telefones (SELECT Codigo, Telefone from usuarios); ALTER TABLE usuarios drop COLUMN Telefone;
Se o XML não considerar uma forma dinâmica de lidar com dados, a segunda instrução não será executada e, portanto, o processo de atualização ocasionará perda de dados. Note que nesse caso não nos basta inserir informações estáticas, dado que nosso aplicativo poderá estar funcionando em diversos lugares e seria inviável a criação de um arquivo de atualização para cada um.
Por outro lado, também não podemos simplesmente criar um elemento no XML para armazenar uma instrução SQL propriamente dita, pois teríamos problemas de portabilidade. Visto que o MDB2_Schema se propõe a criar arquivos independentes de um sistema gerenciador de banco de dados, idealmente deve haver no XML uma representação completa das instruções DML.
Embora nosso problema inicial, aqui apresentado, ainda permaneça sem solução, o MDB2_Schema traz em sua versão 0.7.0 beta um grande avanço na manipulação de instruções DML. De modo geral as principais modificações foram o aprimoramento da instrução INSERT e adição das instruções UPDATE e DELETE. A palestra "PEAR::MDB2_Schema - Banco de Dados portáveis em XML" tem como proposta apresentar e demonstrar as principais características do MDB2_Schema. Será apresentada também a nova definição XML, onde o foco estará nas adições DML. Por fim teremos um exemplo de um código básico para utilizar esse aplicativo, mostrado passo a passo.
Igor Feghali









