Estive lendo o livro Projeto e modelagem de bancos de dados e resolvi anotar alguns conceitos aqui que podem ser úteis.
Cobrirei as seguintes questões nesse artigo:
- O que é um banco de dados?
- O que é um SGDB?
- Como é o ciclo de vida de um banco de dados?
Recomendo a leitura do livro para mais detalhes.
O que é um banco de dados?
Um banco de dados é uma coleção de dados relacionados e guardados em algum sistema, servindo às necessidades dos usuários em uma organização.
Um dado (item de dado) é a menor unidade de dado que tem significado na vida real, e quando agrupado com outros itens de dados temos um registro numa aplicação.
Uma coleção de registros é chamada de arquivo e sistemas de bancos de dados possuem um conjunto de arquivos.
O que é um SGDB?
SGDB significa sistema gerenciador de banco de dados, ou seja, um software que nos permite manipular bancos de dados.
Com um SGDB podemos ter uma visão lógica dos dados, usar uma linguagem de manipulação dos mesmos, como o SQL, usar utilitários para verificar integridade, controlar transações, entre outros.
Um exemplo muito conhecido de SGDB é o MySQL, amplamente utilizado no mundo.
Como é o ciclo de vida de um banco de dados?
Temos basicamente quatro etapas:
- Análise de requisitos
- Projeto lógico
- Projeto físico
- Implementação, monitoramento e modificação
Vamos analisar cada uma, mas para ter uma ideia prévia, dê uma olhada na imagem abaixo:
Análise de requisitos
Para saber os requisitos do banco de dados fazemos uma série de entrevistas com o cliente e com os usuários para criar uma especificação. Tal especificação contém quais dados serão processados, quais os relacionamentos entre os dados, qual o software onde iremos implementar os banco, etc.
Por relacionamento entre dados você pode entender como, por exemplo, a relação entre um email de um cliente e um pedido.
Projeto lógico
Utilizando técnicas como ER (entidade-relacionamento) e UML (unified modeling language), podemos construir um esquema global, que basicamente é um diagrama onde temos todos os dados necessários e seus relacionamentos.
Essa etapa do ciclo de vida pode ser dividida em quatro momentos.
Modelagem conceitual de dados
É aqui que, usando a especificação, aplicamos o ER e o UML para modelar o banco.
Integração da visão
É natural que quanto mais pessoas envolvidas na análise de requisitos, mais visões diferentes teremos sobre quais dados são necessários, quais os nomes para os dados, etc. Essas visões precisam ser unificadas para a modelagem do nosso banco.
Transformação do modelo de dados conceitual em tabelas SQL
Após unificar as visões e montar nosso modelo conceitual, é hora de transformá-lo em tabelas SQL (structured query language). O SQL é uma linguagem de consulta, ou seja, nos permite consultar dados em algum tipo de banco de dados. Além disso, é através do SQL que nós tradicionalmente criamos as tabelas, o famoso CREATE TABLE
.
Normalização de tabelas
De forma simplificada, normalizar tabelas nesse processo é decompor ou dividir tabelas em outras menores, além de eliminar redundâncias (repetições), sem macular a integridade dos dados.
Veja na imagem o exemplo:
Podemos utilizar o termo modelo lógico para nos referirmos ao modelo de dados conceitual, e modelo físico para o modelo de implementação do SGBD, como uma tabela SQL ou NoSQL.
Projeto físico
Podemos utilizar o termo modelo lógico para nos referirmos ao modelo de dados conceitual, e modelo físico para o modelo de implementação do SGBD, como uma tabela SQL.
O objetivo do projeto físico é otimizar o desempenho do projeto e dos dados através de, por exemplo, a clusterização de dados (agrupamento de dados com base em uma classificação).
Nessa etapa faremos análises que podem acarretar em correções do esquema global. Algumas atividades que podem acontecer aqui:
Implementação, monitoramento e modificação
Finalizado o projeto, podemos começar a implementar com a linguagem de definição e o SGDB escolhido, por exemplo, implementar nosso esquema com SQL no MySQL.
Iniciada o operação do SGDB, precisamos monitorá-lo para saber se os requisitos de desempenho estão sendo atendidos. Caso os requisitos dos usuários mudem, podemos reprojetar e modificar o banco, e assim continua o ciclo.
Fontes:
TEORY, Toby; LIGHTSTONE, Sam; NADEAU, Tom; JAGADISH, H.V.. Projeto e modelagem de banco de dados. São Paulo: Elsevier, 2014.
Esse texto não tem intenção de esgotar o tema. Acrescente nos comentários, e também aponte erros quando os identificar.
Top comments (1)
Eu sempre tive uma curiosidade mais técnica de entender como os SGBD salvam e organizam essas informações no disco, como o motor do Postgress, MySQL ou qualquer outro funcionam em si. Alguém pode indicar um post ou um livro?