Recentemente, fui contratado como o único cara de TI de uma certa empresa X e tenho a tarefa de corrigir seus aplicativos e, na minha opinião, a melhor maneira de começar é entender o banco de dados.
O banco de dados atual é um banco de dados MySQL com 186 tabelas (observe que algumas tabelas estão vazias porque Deus sabe o porquê). E o aplicativo está se comunicando com o banco de dados por meio de uma interface de banco de dados do MS Access. (Eu me pergunto por que os desenvolvedores também fizeram isso)
A pergunta é: como começo a lidar com esse grande banco de dados não documentado? Sim, não está documentado porque os desenvolvedores do aplicativo não estão dispostos a me fornecer um ERD ou dicionário de dados ou qualquer outra informação sobre o banco de dados para facilitar minha vida. Como você sugeriria assumir esse empreendimento perigoso de entender todos os cantos e recantos do banco de dados bastante grande?
Pergunta relacionada: Como mergulhar em um banco de dados feio?
Respostas:
A resposta vinculada aborda o problema de baixo para cima, primeiro o banco de dados. Como suas responsabilidades abrangem os aplicativos e o banco de dados, eu estaria inclinado a atacar esse processo de cima para baixo, começando no (s) aplicativo (s).
Concentre sua atenção na compreensão dos recursos mais usados do aplicativo, consultando a base de usuários. Rastreie as interações no banco de dados desses recursos por meio de ferramentas de criação de perfil / log, para que você possa identificar as principais tabelas e procedimentos.
Dessa forma, seus esforços iniciais são restritos às "coisas importantes", em vez de perder tempo documentando tabelas e consultas que raramente ou nunca são usadas. O foco também deve destacar o Princípio de Pareto em seus esforços de correção de bugs ( assim diz a Microsoft de qualquer maneira ).
fonte
Eu provavelmente tentaria obter o MySQL Workbench e criar um modelo EER a partir do banco de dados. Isso significa que você pode ver quais links estão disponíveis e descobrir o que os desenvolvedores podem estar pensando. Tudo depende da aplicação também de como está estruturada.
fonte
Acho que o DBLint é útil para identificar problemas com o banco de dados. Possui as seguintes propriedades agradáveis:
Para identificação rápida de pontos de acesso no banco de dados MySQL, o Neor Profile SQL é um proxy que fica entre o aplicativo e o banco de dados. A beleza disso é que é rápido de configurar.
Para a descoberta das chaves primárias e estrangeiras factuais no banco de dados, que não são, no entanto, definidas no banco de dados, você pode usar o Linkifier . Para plotagem de ERD, as estimativas podem ser exportadas para yEd , que possui muitos algoritmos de layout para o posicionamento das tabelas. O BPMN é o meu favorito para ERDs.
fonte
Existe uma ferramenta do oracle (My SQl workbench) para acessar o banco de dados My Sql, é uma interface que pode fornecer o ERD do banco de dados.
fonte