Um modelo de dados corporativo é verdadeiramente viável?

5

Eu consultei várias empresas da Fortune 500 e 100 empresas que fizeram algum tipo de esforço para criar um modelo de dados "Mestre" até o ponto de tentarem que todos os aplicativos trabalhassem com um compartilhamento compartilhado. banco de dados (Imagine os problemas de gerenciamento de mudanças nesse mundo).

Eu vi empresas lançarem milhões de dólares nesses esforços e ainda estarem aquém do que imaginaram (embora em muitos casos houvesse alguns benefícios obtidos com o esforço).

A minha pergunta aqui é se alguém viu um modelo de dados mestre verdadeiramente corporativo implementado e consistentemente usado para algo maior que 100 ou mais tabelas?

Meu instinto se inclina mais para um modelo orientado por mensagens / SOA, no qual componentes individuais eram responsáveis por um subconjunto de dados e qualquer componente que precisasse de acesso a esses dados passaria pelo canal apropriado. Mas, mesmo assim, o "ideal" e a realidade tendem a ter uma diferença significativa.

    
por Michael Brown 14.01.2015 / 20:08
fonte

3 respostas

3

Cem tabelas de bancos de dados não são muito, uma vez que você considera tabelas de dados comuns, tabelas de consulta, tabelas de links muitos-para-muitos, OLAP e assim por diante.

Is an enterprise-wide data model truly feasible?

É melhor que seja. De que outra forma você vai manter e estender isso?

Em vez de pensar em um modelo de dados corporativos como uma "grande bola de lama", é mais útil pensar nisso em termos de subsistemas ou departamentos . Cada sistema de processamento de dados maior que um único aplicativo tem vários aplicativos e vários armazenamentos de dados que se comunicam entre si por meio de interfaces bem definidas. Você pode capturar facilmente essa arquitetura de alto nível com um diagrama de blocos ou diagrama de fluxo de dados e ter esquemas de banco de dados para cada armazenamento de dados pronto quando precisar executar a análise de sistemas.

    
por 14.01.2015 / 20:45
fonte
2

My instinct leans more toward a message driven/SOA model where individual components were responsible for a subset of data and any component that needs access to that data would go through the appropriate channel.

Na verdade, temos algo assim onde eu trabalho. Nossa empresa oferece serviços financeiros, então a grande maioria dos dados que queremos mostrar aos clientes se resume a "para segurança X, qual é o valor do campo Y?" A segurança pode ser ações do Google ou títulos do Tesouro dos EUA, e o campo pode ser o preço de hoje, a alta de 52 semanas ou a taxa de juros a descoberto ou o que você tem.

Na maioria das vezes, solicitar um determinado campo através da interface padrão da empresa resultará em uma chamada para algum serviço que fala com algum banco de dados. Cada equipe de programadores de backend possui um subconjunto desses campos, juntamente com os serviços e bancos de dados que eles usam para implementá-los. Qualquer uma dessas equipes pode mudar completamente sua implementação sem afetar os outros campos, e os caras do frontend como eu nem percebem a mudança. Na verdade, parte do meu novo treinamento de contratação foi reimplementar um pequeno grupo de campos relativamente simples. Eu nunca contei, mas tenho certeza de que temos centenas, se não milhares, de tabelas de banco de dados para todos os dados que suportamos.

Mas nós temos alguns dados que simplesmente não se encaixam nesse modelo, e eles são armazenados e acessados de maneira diferente. É provavelmente impossível que um único modelo de qualquer coisa se aplique a 100% das necessidades de uma empresa, mas você pode definitivamente se aproximar desse ideal.

    
por 14.01.2015 / 21:05
fonte
1

My question here is has anyone seen a truly enterprise-wide master data model implemented and consistently used for anything larger than 100 or so tables?

Mais ou menos.

Eu vi um implementado que definiu a lista principal de produtos e configurações para a empresa (~ 5k funcionário). Foi usado para vendas, manutenção, engenharia. A implementação real tinha mais de 10 anos quando a encontrei, e foi construída a partir de algo ainda mais antigo (voltando ao armazenamento não-eletrônico, pelo que eu entendi). E consistentemente serviu como fonte de verdade para todos os dados de produtos e clientes em toda a empresa.

Is an enterprise-wide data model truly feasible?

"Mas".

A razão pela qual a coisa era 100+ tabelas é porque cresceu com a empresa. Era uma bagunça insustentável, frágil e nada divertida. Ele tinha de tudo, desde resultados de testes de tolerância física até fotos dos produtos armazenados no DB. Eles acabaram precisando de processos de exportação de qualquer maneira para semear bancos de dados menores para necessidades específicas.

Então eu quero dizer ... eu não consideraria isso viável a longo prazo.

    
por 14.01.2015 / 20:34
fonte