A primeira coisa que os desenvolvedores devem saber sobre bancos de dados é: para que servem os bancos de dados ? Não como eles funcionam, nem como você constrói um, nem como você escreve código para recuperar ou atualizar os dados em um banco de dados. Mas para que servem?
Infelizmente, a resposta para este é um alvo em movimento. No auge dos bancos de dados, da década de 1970 ao início da década de 90, os bancos de dados eram para o compartilhamento de dados. Se você estava usando um banco de dados e não estava compartilhando dados, estava envolvido em um projeto acadêmico ou estava desperdiçando recursos, inclusive você. Configurar um banco de dados e domesticar um DBMS eram tarefas tão monumentais que o retorno, em termos de dados explorados várias vezes, tinha que ser enorme para corresponder ao investimento.
Nos últimos 15 anos, os bancos de dados passaram a ser usados para armazenar os dados persistentes associados a apenas um aplicativo. A criação de um banco de dados para MySQL , Access ou SQL Server se tornou tão rotineira que os bancos de dados se tornaram quase uma parte rotineira de um aplicativo comum. Às vezes, essa missão limitada inicial é empurrada para cima pela fluência da missão, à medida que o valor real dos dados se torna aparente. Infelizmente, os bancos de dados projetados com um único objetivo em mente frequentemente falham drasticamente quando começam a ser empurrados para uma função que é essencial para toda a empresa e de missão crítica.
A segunda coisa que os desenvolvedores precisam aprender sobre bancos de dados é toda a visão centrada em dados do mundo. A visão de mundo centrada em dados é mais diferente da visão de mundo centrada em processos do que qualquer coisa que a maioria dos desenvolvedores já aprendeu. Comparado a essa lacuna, a lacuna entre programação estruturada e programação orientada a objetos é relativamente pequena.
A terceira coisa que os desenvolvedores precisam aprender, pelo menos em uma visão geral, é a modelagem de dados, incluindo modelagem conceitual de dados, modelagem lógica de dados e modelagem física de dados.
A modelagem de dados conceitual é realmente uma análise de requisitos do ponto de vista centralizado em dados.
A modelagem de dados lógicos geralmente é a aplicação de um modelo de dados específico aos requisitos descobertos na modelagem de dados conceitual. O modelo relacional é usado muito mais do que qualquer outro modelo específico, e os desenvolvedores precisam aprender o modelo relacional com certeza. Projetar um modelo relacional poderoso e relevante para um requisito não trivial não é uma tarefa trivial. Você não pode criar boas tabelas SQL se não entender bem o modelo relacional.
A modelagem de dados físicos geralmente é específica do DBMS e não precisa ser aprendida com muitos detalhes, a menos que o desenvolvedor também seja o construtor de banco de dados ou o DBA. O que os desenvolvedores precisam entender é até que ponto o design do banco de dados físico pode ser separado do design lógico do banco de dados e até que ponto a produção de um banco de dados de alta velocidade pode ser realizada apenas aprimorando o design físico.
A próxima coisa que os desenvolvedores precisam aprender é que, embora a velocidade (desempenho) seja importante, outras medidas de qualidade do design são ainda mais importantes , como a capacidade de revisar e estender o escopo do banco de dados mais adiante ou a simplicidade da programação.
Finalmente, qualquer pessoa que mexa com os bancos de dados precisa entender que o valor dos dados geralmente ultrapassa o sistema que os capturou .
Uau!