1 00:00:07,757 --> 00:00:12,200 Você já se deparou com o desafio de desenvolver um banco de dados 2 00:00:12,200 --> 00:00:15,115 para um sistema de informação para negócios? 3 00:00:15,115 --> 00:00:16,816 Esse é o nosso assunto agora. 4 00:00:16,816 --> 00:00:18,993 Eu sou o professor Renato Jardim Parducci, 5 00:00:18,993 --> 00:00:21,721 professor da FIAP há diversos anos, 6 00:00:21,721 --> 00:00:26,362 sou também profissional de mercado há mais de 30 anos, 7 00:00:26,362 --> 00:00:28,528 sou gestor de tecnologia 8 00:00:28,528 --> 00:00:29,966 e estou aqui para conversar com você 9 00:00:29,966 --> 00:00:32,725 sobre engenharia de dados, 10 00:00:32,725 --> 00:00:37,758 mais especificamente, sobre modelagem de bancos de dados. 11 00:00:37,758 --> 00:00:42,201 A modelagem de banco de dados é feita em três etapas. 12 00:00:42,201 --> 00:00:45,665 Temos três modelos diferentes que são complementares. 13 00:00:45,665 --> 00:00:49,377 O primeiro modelo é o modelo chamado Conceitual, 14 00:00:49,377 --> 00:00:54,130 em que eu vou conceber as ideias sobre quais objetos, 15 00:00:54,130 --> 00:00:56,003 quais coisas do mundo real 16 00:00:56,003 --> 00:00:59,354 eu pretendo guardar alguma informação em banco de dados. 17 00:00:59,354 --> 00:01:01,561 O segundo modelo 18 00:01:01,561 --> 00:01:06,566 é o modelo de especificação e desenho de entidades 19 00:01:06,566 --> 00:01:10,268 e relacionamentos, também chamado modelo Lógico. 20 00:01:10,268 --> 00:01:13,889 Nesse modelo, eu vou transformar o modelo conceitual 21 00:01:13,889 --> 00:01:18,592 em um formato de tabelas com colunas de dados, 22 00:01:18,592 --> 00:01:21,034 explicando os conteúdos informacionais 23 00:01:21,034 --> 00:01:23,049 que eu quero armazenar em banco de dados 24 00:01:23,049 --> 00:01:26,308 sobre cada uma das entidades do mundo real que eu mapeei. 25 00:01:26,308 --> 00:01:29,364 Por fim, eu tenho a modelagem física, 26 00:01:29,364 --> 00:01:33,370 em que eu vou refinar o desenho dessas tabelas de dados, 27 00:01:33,370 --> 00:01:36,496 colocando informações complementares mais técnicas, 28 00:01:36,496 --> 00:01:39,007 como o formato desses dados, se são numéricos, 29 00:01:39,007 --> 00:01:42,174 se são alfanuméricos, tamanhos desses dados 30 00:01:42,174 --> 00:01:45,038 e outras informações importantes que explicam esses dados 31 00:01:45,038 --> 00:01:46,539 para que eu possa, logo em seguida, 32 00:01:46,539 --> 00:01:49,142 partir para a construção da aplicação, 33 00:01:49,142 --> 00:01:51,962 a construção do banco de dados que a gente chama físico, 34 00:01:51,962 --> 00:01:54,861 a implementação dele em uma linguagem de programação. 35 00:01:54,861 --> 00:01:56,182 Após essa modelagem, 36 00:01:56,182 --> 00:01:59,486 eu faço a geração das tabelas de banco de dados. 37 00:01:59,486 --> 00:02:00,753 Essa geração de tabelas, 38 00:02:00,753 --> 00:02:04,692 ela é feita através de uma linguagem de comandos chamada SQL. 39 00:02:04,692 --> 00:02:08,261 É uma linguagem declarativa, uma linguagem sequencial, 40 00:02:08,261 --> 00:02:09,746 de instruções sequenciais, 41 00:02:09,746 --> 00:02:11,231 para que a gente possa criar 42 00:02:11,231 --> 00:02:14,596 cada uma das tabelas das estruturas do nosso banco de dados. 43 00:02:14,596 --> 00:02:19,105 Esse processo de desenho, que parte do modelo conceitual, 44 00:02:19,105 --> 00:02:22,067 passa pelo modelo lógico, vai para o modelo físico 45 00:02:22,067 --> 00:02:23,854 e daí gera-se o código, 46 00:02:23,854 --> 00:02:26,453 geram-se os programas de aplicação que criam os códigos, 47 00:02:26,453 --> 00:02:31,017 e esse processo, esse fluxo, é chamado de Engenharia Direta. 48 00:02:31,017 --> 00:02:34,963 Existe o processo contrário, chamado Engenharia Reversa, 49 00:02:34,963 --> 00:02:37,147 em que, ao invés de eu seguir desenhando 50 00:02:37,147 --> 00:02:40,402 evolutivamente o meu banco de dados para depois gerar as tabelas, 51 00:02:40,402 --> 00:02:41,573 o código-fonte, 52 00:02:41,573 --> 00:02:43,553 eu faço o contrário. 53 00:02:43,553 --> 00:02:47,297 Eu parto de um código-fonte e faço a engenharia reversa, 54 00:02:47,297 --> 00:02:50,732 tentando descobrir e desenhar o modelo de dados 55 00:02:50,732 --> 00:02:54,424 a partir das tabelas já prontas no banco de dados. 56 00:02:54,424 --> 00:02:57,410 Qual a vantagem de um e de outro modelo, 57 00:02:57,410 --> 00:02:59,913 Engenharia Direta e Engenharia Reversa? 58 00:02:59,913 --> 00:03:02,855 A Engenharia Direta é o caminho natural que a gente segue 59 00:03:02,855 --> 00:03:06,143 quando está fazendo um projeto de banco de dados novo. 60 00:03:06,143 --> 00:03:10,232 Já a Engenharia Reversa é muito útil quando eu geralmente assumo 61 00:03:10,232 --> 00:03:14,899 o gerenciamento de um banco de dados legado, antigo, 62 00:03:14,899 --> 00:03:17,630 que não tinha nenhum tipo de documentação. 63 00:03:17,630 --> 00:03:18,965 Então, nesse caso, 64 00:03:18,965 --> 00:03:22,503 eu não tenho outra opção a não ser partir das tabelas que já existem 65 00:03:22,503 --> 00:03:25,104 na estrutura do banco de dados que está rodando lá na empresa. 66 00:03:26,472 --> 00:03:28,184 E a partir dessas tabelas de banco de dados 67 00:03:28,184 --> 00:03:29,918 já instaladas e funcionando, 68 00:03:29,918 --> 00:03:31,844 eu gero a documentação 69 00:03:31,844 --> 00:03:34,847 para que eu possa compreender de uma forma mais simples 70 00:03:34,847 --> 00:03:37,550 todas as relações entre os dados 71 00:03:37,550 --> 00:03:40,624 que a companhia tem dentro do seu sistema de informação. 72 00:03:40,624 --> 00:03:43,389 É hora de a gente conhecer um pouco mais sobre isso 73 00:03:43,389 --> 00:03:46,883 e você estudar um pouco mais sobre essa engenharia de dados, 74 00:03:46,883 --> 00:03:49,644 que é parte da engenharia de software 75 00:03:49,644 --> 00:03:52,376 e de soluções de tecnologia para negócios.