DevMedia
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.

Clique aqui para saber como acessar este post

1) Torne-se um assinante MVP e por apenas R$ 69,90 por mês você terá acesso completo a todos os posts. Assinar MVP

2) Adquira Créditos: comprando R$ 180,00 em créditos esse post custará R$ 1,20. Comprar Créditos

SQL Magazine 86 - Índice

Análise do modelo de dados do WordPress, Joomla, Drupal e Magento - Artigo SQL Magazine 86

Apresentar uma visão geral e análise de características técnicas dos modelos de dados das plataformas de produção e gestão de conteúdo WordPress, Joomla, Drupal e Magento.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você poderia comentar o que não lhe agradou?

Confirmo meu voto negativo

A popularização da Web como plataforma de publicação de conteúdo é um dos principais recursos para a disseminação e criação de novas ideias, projetos, aplicativos, comércios virtuais e outras maneiras de marcar presença on-line. Em uma época onde muitos acreditam que o conteúdo é o rei e que o meio de transmissão é a própria mensagem transmitida, muito do que se é produzido em diferentes tipos de web sites como blogs, sites institucionais, lojas on-line, aplicativos, portais e outros é suportado por um dos principais pilares tecnológicos da web: as plataformas para geração e publicação de conteúdo.

Impulsionados pelo movimento de software livre, as principais plataformas de geração e publicação de conteúdo, também conhecidas como CMS (Content Management System), vêm ganhando cada vez mais adeptos tanto por meio do catálogo de serviços fornecidos por empresas de hospedagem como por usuários que decidem montar sua própria infraestrutura de hospedagem na web. Dentre as principais características que popularizaram a adoção de CMSs, pode-se citar o modelo de licença, que segue as diretrizes do software livre, a simplicidade de uso tanto para os usuários que navegam no site como para quem cria conteúdo, o gerenciamento e disseminação do conteúdo e a quase infinita possibilidade de customizações através da inserção de componentes e templates fornecidos gratuitamente pela comunidade.

Atualmente existem diversas soluções para gerenciamento de conteúdo disponíveis gratuitamente para quem deseja publicar conteúdo na web. Para simplificar a nomenclatura, estas ferramentas serão referenciadas apenas como CMS no decorrer deste artigo. Os CMSs mais populares são o WordPress, o Joomla, o Drupal e o Magento. Estes softwares assumem a forma de frameworks prontos para serem utilizados após a customização e configuração de alguns aspectos. Os seus principais elementos são as páginas web prontas, o painel administrativo, a segurança de acesso, o editor de conteúdo textual, os arquivos de configuração, as imagens e também um modelo de dados, cuja análise é o principal objetivo deste artigo.

Conhecer o modelo de dados de um CMS é importante em diversas situações, como por exemplo, quando se pretende realizar alguma customização, aperfeiçoar o desempenho, realizar manutenção no banco de dados, migrar a plataforma, garantir que os recursos estão sendo bem utilizados e outras tarefas que suportam o web site construído com CMS. Além disso, conhecer os detalhes técnicos relacionados ao modelo de dados do CMS utilizado pode facilitar a execução de tarefas no dia a dia e também aumentar o nível de experiência e competência dos profissionais envolvidos.

Produção de conteúdo com CMS

Durante os primórdios da popularização da internet até o final da era que ficou conhecida como bolha da internet, período compreendido aproximadamente entre 1995 e 2000, as principais soluções para gerenciamento de conteúdo on-line possuíam um alto custo de utilização total (TCO – Total Cost of Ownership, ver Nota DevMan 1), que cobre tanto licenças como outros aspectos financeiros. Alguns analistas e historiadores acreditam que este alto custo de utilização tornava mais difícil a publicação de conteúdo na web e restringia esta tarefa para apenas aqueles que possuíam conhecimento técnico ou tinham recursos para utilizar um dos CMSs proprietários disponíveis na época.
Após o período da bolha da internet alguns projetos de CMS baseados nas ideias de software livre começaram a surgir. Estes projetos começaram a ganhar popularidade, pois uma vez que sejam instalados e configurados eles permitem que pessoas sem grande conhecimento técnico possam começar a publicar conteúdo. Este período foi caracterizado pelo surgimento e popularização de diversos blogs e também de empresas que prestavam serviços de hospedagem de blogs gratuitamente ou por uma pequena quantia.

Analisando o que é um CMS mais a fundo, pode-se perceber que ele é um aplicativo web relativamente simples. O conceito principal é fornecer uma plataforma que permita uma boa customização do layout da página web e que seja fácil inserir o conteúdo que será apresentado para os usuários que visitam o site. A seguir detalharemos tecnicamente como um CMS atende a estes dois objetivos.

A customização de layout é um dos principais atrativos para quem desenvolve para web, pois o CMS permite que as páginas a serem visualizadas pelos usuários do site tenham praticamente qualquer layout ou diagramação. Isso é realizado da seguinte forma: o CMS possui um layout padrão com determinadas áreas pré-definidas na página. Estas áreas contêm código fonte que vai procurar no banco de dados o conteúdo correto a ser colocado na área da página que será retornada para o usuário. Para que o novo layout possa ser utilizado no CMS basta que ele contenha estas áreas pré-definidas. Um layout com estas áreas (e com os arquivos HTML, CSS, imagens e outros) pronto para ser utilizado por um CMS recebe o nome de template. Há, inclusive, diversos repositórios na web com os mais variados templates criados pela comunidade e prontos para serem utilizados sem custo adicional. Além de templates para layouts de sites, cada CMS também conta com componentes criados e disponibilizados gratuitamente pela comunidade que estendem as funcionalidades do CMS. Estes componentes são conhecidos como extensões, plug-ins e add-ons, e são encontrados no próprio site oficial do CMS.

Nota-se que o conteúdo dinâmico, e também algumas configurações do próprio CMS, inicialmente eram armazenadas em arquivos texto. Posteriormente adotou-se um banco de dados para o armazenamento, o que garantiu acesso dinâmico, rápido e adequado para o gerenciamento de dados de conteúdo e para as configurações do CMS.

A produção de conteúdo em si é fornecida por uma área administrativa do CMS que é acessada por meio de um login. Este conteúdo pode variar, mas geralmente se baseia em texto ou imagens inseridas através de um editor com diversos recursos de formatação de texto (negrito, alinhamento, inserção de links, etc.). Para os CMSs que suportam recursos de comércio eletrônico, o conteúdo assume a forma de produtos, categorias, formas de pagamento, preços e outros elementos comuns de uma loja virtual. De qualquer maneira, a simplificação e facilidade da inserção de conteúdo é a chave para que usuários não técnicos possam não apenas publicar conteúdo na web, mas também gerenciar este conteúdo e interagir com os usuários por meio da resposta de comentários e outras formas de diálogo com o visitante do site.

Tanto o conteúdo inserido pelos administradores do site quanto as configurações do CMS e as interações dos usuários são gravadas nas tabelas do modelo de dados do CMS. Há também outros tipos de informação armazenadas no banco de dados, tais como imagens utilizadas nas propagandas do site (banners), informações de acesso, dados de compra e cadastros que tornam o modelo de dados mais complexo e extenso.

Em geral, a utilização de um CMS não requer a manipulação direta do banco de dados, pois a plataforma foi criada para simplificar a produção de conteúdo e minimizar o conhecimento técnico necessário para sua utilização. No entanto, isso não quer dizer que é preciso esquecer-se do banco de dados. Quando surge uma necessidade que não é atendida diretamente pelo CMS ou por suas extensões é preciso alterar o código fonte das páginas e também manipular o banco de dados. Nota-se que como o CMS gera HTML dinamicamente através de linguagens como PHP, ASP.NET e outras, é possível realizar diversas customizações que vão além da modificação do layout da página. E nestas situações é preciso conhecer bem o modelo de dados utilizado pelo CMS.

Além da necessidade de modificação do CMS, também é preciso conhecer o banco de dados quando há um volume de dados considerável a ser armazenado e quando é preciso otimizar o desempenho do CMS. Há também diversas tarefas administrativas que devem ser realizadas em qualquer banco de dados que trabalhe com dados oficiais de produção, tais como realização de backups, monitoria de recursos, re-indexação, acompanhamento de crescimento de arquivos de dados e de log, expurgo, replicação, implementação de tolerância a falhas, etc. Estas atividades típicas do cargo de um DBA também devem ser realizadas nos servidores de bancos de dados utilizados por um CMS. O foco deste artigo é no estudo apenas dos modelos de dados, porém o leitor que se interessar pelas tarefas administrativas comuns a um banco de dados pode consultar o acervo digital da revista SQL Magazine e encontrar diversos artigos que abordam o planejamento e a execução das principais tarefas administrativas necessárias a um banco de dados.

As próximas seções deste artigo discutem em detalhes os modelos de dados dos CMS WordPress 2.9, Joomla 1.6, Drupal 7 e Magento 1.12, pois estes quatro CMSs são os softwares livres mais utilizados para a publicação de conteúdo na web atualmente. Em seguida o artigo apresenta seções contendo uma comparação técnica entre os CMSs e seus modelos de dados.

Antes de começar a comentar sobre os detalhes dos modelos, é preciso destacar que eles foram gerados com a ferramenta de modelagem MySQL Workbench, porém a escolha desta ferramenta foi puramente pela sua praticidade. Qualquer ferramenta CASE pode ser utilizada desde que ela consiga trabalhar com o modelo de dados de forma adequada. Os modelos apresentados nas figuras deste artigo contêm apenas as tabelas sem seus relacionamentos, visando facilitar a visualização das entidades. Os arquivos com os modelos de dados gerados na ferramenta de software livre MySQL Workbench assim como as imagens em alta resolução e os scripts de criação das entidades serão disponibilizados no site da SQL Magazine.

O modelo de dados do WordPress

O WordPress é o CMS mais popular atualmente e pode ser utilizado basicamente de duas formas: 1) Através do domínio wordpress.com, onde é possível criar um blog gratuitamente e sem muito conhecimento técnico de seu funcionamento interno; e 2) Através do download e instalação do WordPress disponível no site oficial http://wordpress.org/.

Um detalhe importante é que durante a instalação do WordPress pode-se escolher qual será o prefixo das tabelas do modelo de dados, sendo que o prefixo wp_ é sugerido automaticamente pelo instalador. Nota-se também que oficialmente o WordPress só pode ser utilizado com o MySQL. A Figura 1 apresenta o modelo de dados utilizado na versão 2.9 do Wordpress que conta com 11 tabelas.

 

"

A exibição deste artigo foi interrompida

Este post está disponível para assinantes MVP.



Mauro Pichiliani é bacharel em Ciência da Computação, Mestre e doutorando em computação pelo ITA (Instituto Tecnológico de Aeronáutica). Trabalha há mais de 10 anos utilizando diversos bancos de dados e ferramentas de programação. [...]

O que você achou deste post?
Publicidade
Serviços

Mais posts