Por que fazer a Modelagem de Dados?
Dados só são valiosos quando podemos tranformarmos estes em Informações, no qual estas só serão mais valiosas ainda se forem usadas para resolver algum tipo de problema ou prever situações que vão colocar o elemento de interesse em vantagem competitiva em relação ao seu mercado.
Com isso a Modelagem de Dados assume importância significativa, já que se feita corretamente pode organizar os dados de forma que possam ser manipulados e tratados, e por fim serem tranformados em insights valiosos que vão proporcionar melhorias e adequações.
Antes de começarmos a modelar precisamos entender conceitos importantes que direcionarão nosso entendimento.
Atributos - São as propriedades de uma tabela. Serão as nossas colunas no banco de dados.
Podem ser divididos em dois tipos:
- Atributos Chaves : Possuem características funcionais, são os atributos chave (Chave-primária ou Chave-estrangeira);
- Atributos Descritores : Identificam e descrevem uma característica do projeto
Entidade - Representação de um conjunto de informações, são tabelas para nosso banco de dados.
Pode ser dividido em dois tipos :
- Entidade Fraca : Depende de outra entidade para existir, necessita de um atributo chave de outra entidade.- Entidade Forte : Pode existir separadamente de todas as entidades relacionadas, pois possuem atributos próprios.
Cardinalidade - Quantidade de ocorrências de uma entidade que estão relcionadas com outra entidade que em uma relação.
Pode ser :
- 1:1( UM-PARA-UM) : Uma instância do conjunto A se relaciona com apenas uma de B e o contrário também é verdadeiro.- 1:N(UM-PARA-MUITOS) : Uma instância de A se relaciona com várias instâncias de B, e B se relaciona com apenas uma instância de A.
- N:M(MUITOS-PARA-MUITOS) : Muitas instâncias de A se relacionam com muitas instâncias de B e o contrário também é verdaderio
Regra de negócio : A parte principal de uma boa modelagem de negócios, afinal é ela quem modela o Banco de Dados. É basicamente o que define ou restringe aspectos do negócio, se por ventura errarmos na interpretação e execução da regra de negócios o modelo de dados será incorreto e consequentemente o sistema no qual nos propusemos a fazer será incorreto também.
Mas de que forma é feito a Modelagem de Dados?
É um processo que consiste em três modelos:
- Modelo Conceitual : Podemos dizer que é um rascunho, sem nos preocuparmos com atributos ou regras de negócio, sem nenhuma chave primária, e os relacionamentos não são especificados,a penas declaramos eles, fazemos um esboço do negócio no qual estamos querendo modelar. A vantagem desse modelo é que pode ser utilizado em diversas situações, desde a modelagem que estamos buscando fazer até desenvolver projetos que precisam observar os envolvimentos de várias partes que esse projeto possui.
- Modelo Lógico : Aqui inserimos as chaves-primárias, chaves-estrangeiras e os atributos, além das relações entre as entidades, com suas respectivas cardinalidades e obrigatoriedades.
- Modelo Físico : Representa a linguagem de como o modelo será contruído no Banco de Dados.
Praticando para aprender:
Tomemos como exemplo o seguinte caso: A Mecânica AutoShow especializada somente em carros nos contatou para desenvolver um Banco de Dados já que o Excel não conseguia atender a toda demanda que estavam tendo. Fazendo nossas pesquisas para entender o negócio, o gerente nos passou que os clientes registrados podem possuir vários telefones e vários carros, enquanto os telefones e os carros devem pertencer à apenas um cliente.
Modelo Conceitual :
Modelo Lógico :
Modelo Físico :
CREATE DATABASE AUTOSHOW;
USE AUTOSHOW;
CREATE TABLE CLIENTE(
IDCLIENTE INT,
NOME VARCHAR(30) NOT NULL,
CPF VARCHAR(15) NOT NULL UNIQUE,
SEXO ENUM('M','F') NOT NULL
);
CREATE TABLE CARRO(
IDCARRO INT PRIMARY KEY AUTO_INCREMENT,
MODELO VARCHAR(20) NOT NULL,
MARCA VARCHAR(20) NOT NULL,
ANO INT(4) NOT NULL,
ID_CLIENTE INT UNIQUE,
);
CREATE TABLE TELEFONE(
IDTELEFONE INT ,
NUMERO VARCHAR(20) NOT NULL,
TIPO ENUM('RESIDENCIAL','CELULAR','COMERCIAL') NOT NULL,
ID_CLIENTE INT UNIQUE,
);
ALTER TABLE CLIENTE ADD CONSTRAINT PK_CLIENTE
PRIMARY KEY(IDCLIENTE);
ALTER TABLE CARRO ADD CONSTRAINT PK_CARRO
PRIMARY KEY(IDCARRO);
ALTER TABLE CARRO ADD CONSTRAINT FK_CLIENTE_CARRO
FOREIGN KEY(ID_CLIENTE) REFERENCES CLIENTE(IDCLIENTE);
ALTER TABLE TELEFONE ADD CONSTRAINT PK_TELEFONE
PRIMARY KEY(IDTELEFONE);
ALTER TABLE TELEFONE ADD CONSTRAINT PK_CLIENTE_TELEFONE
FOREIGN KEY(ID_CLIENTE) REFERENCES CLIENTE(IDCLIENTE);
Fizemos todo o script, começamos pela Modelagem Conceitual, entendendo quem são as entidades do negócio, quem se relaciona com o que, posteriormente adcionamos os seus respectivos atributos com suas respectivas chaves identificadoras, observe que colocamos as cardinalidades, tendo como base a regra de negócio descrita pelo gerente da AutoShow "os clientes registrados podem possuir vários telefones e vários carros, enquanto os telefones e os carros devem pertencer à apenas um cliente" atente-se as palavras chave, existe uma grande diferença entre podem e devem, e essas foram usadas para definir as cardinalidades mínima e maxima no Modelo Lógico. Por fim descrevemos através de linguagem SQL mais precisamente no MySQL os comandos para criação de Banco de Dados, Tabelas e os atributos sendo os identificadores(ID) e os descritores. Mas a respeito de como criamos no MySQL falaremos no próximo Post.
Comentários
Postar um comentário