INTRODUÇÃO

 

Sistemas de Bancos de dados desempenham um papel fundamental na gestão eficiente de informações em diversas aplicações. Eles são estruturas organizadas para armazenar, recuperar e manipular dados de maneira sistemática.

 

No contexto da computação, um banco de dados é um repositório centralizado de informações que permite que dados sejam organizados e facilmente acessados. Em vez de armazenar dados em arquivos separados, um banco de dados utiliza tabelas inter-relacionadas para representar e armazenar informações.

 

Essas tabelas são projetadas com base no modelo relacional, onde entidades e suas relações são representadas de maneira estruturada. A linguagem SQL (Structured Query Language) é comumente utilizada para interagir com bancos de dados relacionais, permitindo operações como consulta, inserção, atualização e exclusão de dados.

 

Bancos de dados oferecem vantagens significativas, como controle de redundância, integridade de dados, segurança, e facilidade de recuperação de informações. Eles são fundamentais para aplicações modernas em setores diversos, incluindo negócios, saúde, educação e tecnologia.

 

Observe a representação abaixo referente a um banco de dados de uma Farmácia:

 

A figura acima exemplifica o sistema de uma certa farmácia. Nesse caso, as bases de dados dos departamentos de Compra e Venda são "ilhas" isoladas de dados, ou seja, não compartilham os dados entre si. E o que isso acarreta? Acontece que, desta forma, há vários problemas, como:

 
  • Redundância de dados, pois "Nome_Produto" e "Fornecedor" se repetem nas duas bases de dados;
  •  
  • Dificuldade na manutenção dos dados: se ocorrer uma mudança no nome de um produto na base de dados de Compra, a base de dados de Venda ainda continuará com o nome antigo até que alguém o mude;
  •  
  • Falta de padronização: o nome do fornecedor, por exemplo, pode ser digitado de forma diferente em cada registro, ou seja, cada base de dados tem seu próprio padrão;
  •  
  • Inconsistência dos dados: uma mesma informação se apresenta de diferentes formas nas bases de dados, isso geralmente é causado pela falta de padronização;
  •  
  • Dificuldade de acesso aos dados: isso ocorre devido aos formatos diferentes nos quais os dados se apresentam.
  •  

Solução para esse problema:

 

No banco de dados representado na figura acima, toda informação anterior se encontra aqui contida, de forma compartilhada, assim há apenas uma ocorrência de cada informação, assim, os problemas vistos não ocorrem mais.

 

Para o gerenciamento desse banco de dados é adotado o uso de um SGBD (sistema gerenciador de banco de dados), o qual é uma coleção de programas que visa dar ao usuário a possibilidade de criar, manter, definir e manipular um banco de dados.

 

Mas afinal, o que é um banco de dados?

 

Banco de dados é uma coleção de dados armazenados em um computador, o qual é gerenciado por um SGBD.

 

Entre as vantagens que um banco de dados proporciona estão:

 
  • Controle da redundância: o mesmo dado não aparece em vários registros;
  •  
  • Controle centralizado: controle do banco de dados exercido pelo SGBD;
  •  
  • Dados compartilhados;
  •  
  • Independência dos dados: os dados, agora, pertencem ao banco de dados, e não mais aos programas;
  •  
  • Garantia de integridade (restrição de integridade);
  •  
  • Restrição a acesso não autorizado;
  •  
  • Facilidade em se fazer cópias e recuperações (backup e recovery);
  •  
  • Inconsistências são evitadas;
  •  
  • Há uma maior privacidade/proteção dos dados;
  •  
  • Há padrões em comum, o que facilita o intercâmbio e as migrações;
  •  
  • Otimização do espaço de armazenamento;
  •  
  • Facilidade de criação de novas aplicações.
  •  
 

Entretanto, em algumas situações, o uso de um banco de dados pode não ser vantajoso:

 
  • Custos iniciais elevados em hardware, software e treinamento;
  •  
  • Custos adicionais com segurança e infraestrutura;
  •  
  • Aplicações simples;
  •  
  • O acesso por múltiplos usuários aos dados não é necessário.
  •  
 

Alguns conceitos também são importantes para se entender um banco de dados:

 
  • Campos: são espaços reservados para ser inserido um dado. Exemplo: um campo de uma tabela;
  • Chave: sequência de um ou mais campos, usado(s) para pesquisa em uma tabela;
  •  
     
  • Chave primária (PK): coluna ou combinação de colunas de uma tabela cujos valores distinguem uma linha das demais, enquanto individualiza cada registro. Logo, a chave primária precisa ser única e não nula. Um bom exemplo de chave primária seria uma coluna chamada "cpf" de uma tabela de funcionários, já que não existem duas ou mais pessoas com um mesmo cpf. Considere agora a tabela abaixo:
      Nesse caso, a coluna cod_funcionario não pode ser chave primária, uma vez que há valores que se repetem, não permitindo distinguir unicamente cada linha. Na coluna num_dependente ocorre a mesma situação, logo esta também não pode ser a chave primária. A coluna nome não é uma boa candidata à chave primária, já que existem várias pessoas com um mesmo nome. A solução nesse caso é combinar as colunas cod_funcionario e num_dependente para criar uma única chave primária.
  •  
  • Chave secundária: chave que pode referenciar um conjunto de registros, ou seja, ela não precisa ter um valor diferente para cada registro (como a chave primária);
  •  
  • Chave de ordenação: chave usada para a ordenação dos registros de um arquivo;
  •  
  • Chave de acesso: Chave usada para pesquisa em um arquivo;
  •  
  • Chave estrangeira (FK): coluna ou combinação de colunas, cujos valores são obrigatoriamente chaves primárias em outras ou na própria tabela. Ela representa uma ligação (relacionamento) entre tabelas. Não há limite de quantidade para chave estrangeira.
  •  
  • Chave candidata (ou alternativa): Quando duas ou mais colunas podem ser chave primária, se uma delas for escolhida como tal, as outras serão chaves candidatas. Resumindo, chave candidata é um atributo que poderia ser chave primária. Exemplo:  
      Nesse caso, há duas opções para a chave primária (cpf e rg). Ao designar o rg como a chave primária (PK) da tabela, o cpf passa a ser considerado uma chave candidata. é importante observar que, na escolha da chave primária em um contexto de banco de dados, critérios como unicidade e estabilidade são fundamentais. No exemplo anterior, a escolha do rg como chave primária é justificada por critérios técnicos, evitando potenciais problemas relacionados à busca, digitação e otimização do espaço de armazenamento, em vez de considerações relacionadas ao número de caracteres.
  •  
  • Argumento de pesquisa: campo que se quer procurar, ou seja, é o valor da chave de acesso em uma pesquisa;
  •  
  • Dicionário de dados: O dicionário de dados nada mais é que um banco de dados que contém informações sobre os dados da empresa, como atributos, relacionamentos, restrições, chaves, entidades etc.
  •  
  • Entidade: Objeto do mundo real distinguível de outros objetos.
  •  
  • Relacionamento: É uma associação (ligação) entre entidades. Pode ser classificado como:
  •  
    • Binário: Associação entre duas entidades. Exemplo:
    •  
       
    • Ternário: Associação entre duas ou mais entidades. Exemplo:
    •  
     
 

As pessoas que manipulam um banco de dados recebem denominações especiais. São elas:

 
  • Administrador de dados (AD): É a pessoa que conhece bem a empresa e, por isso, é ele quem cria e mantém o dicionário de dados, entre outras funções;
  •  
  • Administrador de banco de dados (DBA): É o especialista em SGBD que controla os dados e aplicativos que acessam o banco de dados. Também é de sua responsabilidade: elaborar o projeto físico do banco de dados, auxiliar na construção do modelo lógico, fazer manutenções, modificar a estrutura física etc;
  •  
  • Projetista de banco de dados: Pessoa que entende bem de engenharia de software e é responsável por identificar os dados que serão armazenados, além de escolher a estrutura para representar e armazenar os dados, ouvir o usuário para obter suas necessidades etc.
  •  
  • Usuário final: Esta classificação se divide em quatro categorias:
  •  
    • Casual: Raramente acessa o banco de dados, porém pode necessitar de informações diferentes a cada vez;
    • Leigos ou paramétricos: Faz acessos constantes ao banco de dados, mas utiliza consultas padronizadas testadas anteriormente;
    •  
    • Sofisticados: Conhece o SGBD e o utiliza;
    •  
    • Individual: Possui banco de dados pessoal e utiliza programas já prontos.
    •  

Tipos de banco de dados

 
  • Banco de dados em rede (ou reticular)
 

Os dados são colocados em registros, os quais são agrupados em classes. Exemplo de banco de dados em rede: Adabas e IDMS.

 
  • Banco de dados hierárquico
  •  
 

É representado por uma árvore hierárquica, onde todos os relacionamentos são do tipo 1:N.

 

Exemplo de banco de dados hierárquico: Arquivos e diretórios em sistemas operacionais tipo Unix.

 
 
  • Banco de dados textual ou multimídia
  •  
 

Esse tipo de banco de dados difere dos demais, na medida em que neste os dados como "texto corrido" ou "som" são tratados como qualquer outro campo chave. Desta forma, qualquer informação pode ser encontrada, até mesmo um pequeno trecho de um texto!

 

Exemplo de banco de dados textual ou multimídia: PostgreSQL, BrSearch, Oracle, LightBase etc.

 
  • Banco de dados orientado a objetos
  •  
 

Como nas linguagens de programação orientadas a objetos, a unidade de armazenamento também é o objeto, porém aqui os objetos continuam a existir após a finalização do programa, é essa característica dá-se o nome de persistência de objetos.

 

O sistema é organizado como uma coleção de objetos que definem estruturas de dados e comportamento.

 

Uma das grandes qualidades desse tipo de banco de dados é o reuso, onde grandes programas são construídos a partir de outros pré-fabricados.

Exemplo de banco de dados orientado a objetos: Jasmine, PostgreSQL etc.

 
 
  • Banco de dados relacional
  •  
 

O banco de dados relacional é uma abordagem estruturada para armazenar e gerenciar dados, fundamentada no uso de tabelas inter-relacionadas. Cada tabela representa uma entidade específica, e as relações entre essas entidades são estabelecidas por meio de chaves.

Banco de dados que utiliza tabelas para representar suas relações. Cada linha da tabela é chamada de registro e cada coluna chama-se campo. O domínio é o conjunto de valores do banco de dados.

 

Tabelas: São estruturas organizadas que armazenam dados, onde cada linha é um registro e cada coluna representa um atributo ou campo. Essas tabelas são projetadas para serem normalizadas, minimizando redundâncias e mantendo a consistência dos dados.

Registros: Cada linha em uma tabela é chamada de registro e contém informações específicas relacionadas à entidade que a tabela representa. Por exemplo, em uma tabela de clientes, cada registro pode representar um cliente individual.

Campos: As colunas em uma tabela, conhecidas como campos, representam atributos ou características dos registros. Por exemplo, em uma tabela de clientes, os campos podem incluir nome, endereço e número de telefone.

O modelo relacional representa uma tentativa de descrever um banco de dados através de conceitos matemáticos simples e conhecidos (Álgebra relacional).

 

Exemplo de banco de dados relacional: Oracle, PostgreSQL, MySQL etc.

 
 

Na disciplina, exploraremos casos práticos e desafios que envolvem a implementação e manipulação de bancos de dados relacionais. A aplicação desses conhecimentos proporcionará uma base sólida para lidar com situações do mundo real, onde a eficiência na gestão de dados é crucial.

 

Estamos empolgados com a jornada que nos aguarda e confiantes de que o entendimento do banco de dados relacional será fundamental para o sucesso em projetos e na compreensão mais profunda do vasto campo de Sistemas de Gerenciamento de Banco de Dados.

 

Atividade de Fixação

 

No intuito de fixar a aprendizagem iniciada por meio deste módulo e verificar como está sua compreensão sobre o mesmo, são sugeridos alguns exercícios de fixação para serem resolvidos. Clique no link de exercícios ao lado, pois será por meio dele iniciada a lista de exercícios sobre os conteúdos estudados até este momento. Boa revisão sobre os mesmos!!