Modelagem de banco de dados para e-commerce
Assim, em desenvolvimento de sistemas, temos que arquitetar soluções para cenários específicos de acordo com a necessidade de cada projeto, desde soluções de pequeno porte, até plataformas mais robustas, como um MarketPlace, por exemplo.
Nesse artigo, trataremos desde os fundamentos e conceitos de modelagem de dados, até a aplicação prática direcionada ao desenvolvimento de um sistema básico de comércio eletrônico, utilizando abordagens corporativas de alta escalabilidade e flexibilidade de modelo de negócios.
Em termos conceituais, a teoria e fundamentos relativos às formas normais, modelos entidade-relacionamento, modelo relacional, diagramas relacionais e demais técnicas apresentadas nesse artigo são essenciais a qualquer modelagem de dados. Neste artigo aplicaremos na prática os conceitos passados usando o SGBD MySQL, o client MySQL Workbench 6 e faremos toda a estruturação das tabelas utilizando o padrão SQL ANSI.
Mas antes de iniciarmos este estudo prático, iremos repassar alguns conceitos básicos quanto à modelagem de banco de dados relacionais. Modelar dados é o ato de se identificar em um cenário de negócios, um problema a ser resolvido e através de alguns conceitos, técnicas e diagramas, mapear a solução, sua estrutura e componentização.
Em termos de bancos de dados, existem três tipos de modelagem de dado. A modelagem conceitual busca sintetizar em nível mais abstrato, a estrutura de um banco de dados, levando em consideração apenas premissas básicas dos negócios, sem entrar em minúcias tecnológicas da abordagem a ser utilizada. É a primeira etapa da modelagem de dados, aonde é necessário somente mapear a estrutura macro do BD, levando como base, as especificações básicas do plano de negócios. Nessa etapa, pode-se representar textualmente a modelagem ou ainda, usando um diagrama entidade relacionamento simplificado, assim como mostra a Figura 1.
A Representação textual seria:
Tabela Clientes (ID Cliente, Nome, CPF, RG, Email, etc)
Já na etapa de modelo lógico devemos entrar em detalhes técnicos sobre cada entidade a ser mapeada e relacionada, tais como nomenclaturas, padrões e definições de chaves (primárias e estrangeiras). Nesse modelo, representamos graficamente a estrutura lógica de entidades e seus relacionamentos entre si, como mostra a Figura 2.
Por fim, no modelo físico devemos definir a estrutura final que será utilizada, levando em considerações limitações do SGBD, tipagem de dados a ser utilizada, e as definições campo por campo (atributo). Como resultado, temos a representação do esquema de armazenamento físico das informações, assim como mostra a Figura 3.
Modelo Entidade-Relacionamento
O modelo entidade-relacionamento, ou simplesmente MER, é um modelo de alto nível que mapeia uma arquitetura de relacionamentos entre entidades, que componham uma solução em um determinado cenário. Ele pode ser representado através de um diagrama entidade relacionamento (DER), no qual as entidades são identificadas pelos retângulos e os relacionamentos, pelos losangos.
As entidades de um banco de dados são as estruturas que armazenarão os dados (propriedades/atributos) a respeito de um objeto ou evento do mundo real. Cada entidade no banco de dados é utilizada convencionalmente como tabela, cujo termo será usado adiante neste artigo. As tabelas (relações de tuplas/registros, no modelo relacional) são referenciadas entre si através de relacionamentos entre chaves primárias e estrangeiras.
Grau do relacionamento
Os relacionamentos podem ter diferentes graus. No relacionamento unário (Grau 1) a entidade se relaciona consigo mesma (Figura 4). Já o relacionamento binário (Grau 2) é um relacionamento que liga duas entidades distintas, sendo o mais utilizado (Figura 5). Por fim, o relacionamento ternário (Grau 3) define uma ligação em que três entidades estão relacionadas. No exemplo d ...