Programação Modular, Módulos e Bancos de Dados

Classificado em Computação

Escrito em em português com um tamanho de 10,03 KB

Programação modular

Programação modular é um paradigma de desenvolvimento que divide um programa em módulos ou applets para tornar o código mais legível e administrável. A programação modular permite decompor um problema em subproblemas independentes, mais fáceis de resolver e tratar separadamente. Graças à modularização, subprogramas ou módulos podem ser testados e depurados de forma independente antes de sua inclusão no programa principal e armazenados para uso posterior.

Na programação modular, o programa consiste em várias seções que interagem através de chamadas de procedimento. O programa principal coordena as chamadas aos módulos secundários e passa os dados necessários como parâmetros. Cada módulo pode conter seus próprios dados e chamar outros módulos ou funções, conforme necessário.

Módulo

Um módulo é uma das partes de um programa que resolve um dos subproblemas do problema original. Cada módulo tem uma tarefa bem definida e possivelmente alguns pré-requisitos para operar corretamente.

Sub-rotina

Um dos elementos principais na representação de cada módulo é a sub-rotina: um conjunto de instruções que executa uma tarefa. Um módulo pode ser um segmento, rotina, algoritmo ou procedimento que realiza uma tarefa específica e pode ser chamado a partir do algoritmo principal quando necessário. Os módulos costumam ter entradas e saídas. Decisões tomadas em um módulo podem impactar o fluxo geral, mas os saltos devem retornar apenas ao programa principal.

Quando a modularização é útil

  • Quando existe um conjunto de instruções ou uma tarefa específica que precisa ser executada em mais de uma ocasião.
  • Quando o problema é complexo ou extenso: a solução pode ser dividida em peças ou módulos que executam tarefas específicas.

Benefícios da programação modular

  • Módulos independentes: um módulo pode ser modificado sem afetar os outros.
  • Melhor compreensão: o uso de módulos facilita a concepção e a compreensão da lógica tanto para o programador quanto para o usuário.
  • Facilidade de manutenção: manutenção e modificação são simplificadas quando o sistema é projetado de forma modular.
  • Testes isolados: permite identificar as principais tarefas e projetar e testar procedimentos individuais.

Duração e escopo de dados (variáveis)

Dependendo da declaração, as variáveis podem ter diferentes durações e escopos:

  • Globais: permanecem ativas durante todo o programa.
  • Locais: são criadas quando o programa atinge a função ou procedimento em que são definidas; após a execução, desaparecem da memória.
  • Parâmetros formais: tipo especial de variável declarada no cabeçalho de um procedimento e que recebe valores vindos de fora.

Parâmetros por valor: recebem o valor do argumento real, mas não podem alterá-lo. A variável local recebe apenas uma cópia do valor, sem vínculo posterior com a variável global.

Parâmetros por referência (ou por variável): permitem que o procedimento receba e retorne valores. A variável local e a variável global ficam ligadas por referência; alterações na local afetam a global.

Funções e procedimentos

Procedimentos são subprogramas ou módulos que realizam uma tarefa específica. Podem ter suas próprias variáveis (locais), acessíveis apenas no corpo do procedimento.

Funções são semelhantes a procedimentos, mas retornam um único valor de um tipo de dado simples. As funções podem ser:

  • Padrão: fornecidas pela linguagem de programação (por exemplo, funções aritméticas ou de texto).
  • Definidas pelo usuário: criadas pelo programador para realizar cálculos ou operações específicas reutilizáveis.

Semelhanças entre procedimentos e funções

  • Ambos possuem um cabeçalho e um corpo com declarações e instruções.
  • Ambos são unidades independentes de programa; parâmetros, constantes e variáveis declaradas são locais e acessíveis apenas dentro da subunidade.
  • O número e os tipos de parâmetros reais devem corresponder aos parâmetros formais (há exceções conceituais em algumas linguagens, por exemplo, conversão implícita entre inteiro e real).

Diferenças entre procedimentos e funções

  • Um procedimento é chamado por uma instrução de chamada; uma função é chamada pelo nome dentro de uma expressão.
  • Uma função deve retornar um valor e, portanto, tem um tipo de retorno explícito; um procedimento não retorna necessariamente um valor.
  • Funções normalmente retornam um único valor; procedimentos podem retornar múltiplos valores via parâmetros ou não retornar nenhum valor se apenas executarem efeitos colaterais (por exemplo, operações de saída).
  • Em procedimentos, valores são frequentemente devolvidos por parâmetros; em funções, o valor é retornado através do identificador da função.

Aplicações de banco de dados

Um banco de dados é um conjunto de dados relacionados pertencentes ao mesmo contexto e armazenados sistematicamente para uso posterior. Programas chamados Sistemas de Gestão de Banco de Dados (SGBD ou DBMS) são usados para armazenar e acessar os dados de forma rápida e estruturada.

Definição de banco de dados

Um banco de dados é um conjunto de dados organizados em tabelas e inter-relacionados, coletados e utilizados pelos sistemas de informação de uma empresa ou organização para produzir informações.

Características de um SGBD

  • Independência lógica e física dos dados.
  • Redução da redundância e acesso por múltiplos usuários simultâneos.
  • Integridade dos dados e suporte a consultas complexas.
  • Segurança, auditoria, backup e recuperação.
  • Acesso via linguagens de programação e interfaces padrão.

Os SGBDs são um tipo específico de software que fornece uma interface entre o banco de dados, os usuários e as aplicações. Eles incluem uma linguagem de definição de dados, uma linguagem de manipulação de dados e uma linguagem de consulta.

Vantagens dos bancos de dados

  • Controle de redundância: os arquivos são integrados para evitar múltiplas cópias do mesmo dado.
  • Consistência de dados: a redução da redundância diminui o risco de inconsistências; o sistema pode garantir que cópias permaneçam consistentes.
  • Compartilhamento de dados: o banco de dados pertence à organização e pode ser compartilhado por usuários autorizados.
  • Padronização: facilita o cumprimento de padrões sobre o formato dos dados para interconexão e intercâmbio.
  • Integridade melhorada: por meio de restrições e regras que não podem ser violadas.
  • Segurança aprimorada: proteção contra acessos não autorizados.
  • Acessibilidade: muitos SGBDs oferecem linguagens de consulta ou geradores de relatórios que permitem aos usuários consultar dados sem necessidade de programador.
  • Maior produtividade: o SGBD fornece funções padrão que reduzem o esforço do programador, permitindo foco nas funcionalidades específicas exigidas pelos usuários.
  • Manutenção facilitada: recursos como concorrência, backups e serviços melhorados.

Desvantagens dos bancos de dados

  • Complexidade: os SGBDs são conjuntos de programas com funcionalidades extensas que podem tornar seu uso complexo; é necessário um bom entendimento dessas funcionalidades para aproveitá-las.
  • Custo: exigem equipamentos e investimentos adicionais.
  • Vulnerabilidade: podem ser vulneráveis a falhas se não forem bem gerenciados.

Tipos de banco de dados

Entre os diferentes SGBDs populares estão: MySQL, PostgreSQL, Oracle.

Structured Query Language (SQL)

SQL (Structured Query Language) é uma linguagem declarativa para acessar bancos de dados relacionais. Permite especificar vários tipos de operações, incluindo consultas para recuperar informações de interesse e operações para alterar os dados. A SQL incorpora conceitos da álgebra relacional e do cálculo relacional para facilitar consultas.

Principais componentes/funcionalidades:

  • Data Manipulation Language (DML): usada para acessar, inserir, modificar ou excluir dados em uma estrutura de banco de dados existente.
  • Data Definition Language (DDL): usada para criar, modificar ou excluir objetos do banco de dados e gerenciar privilégios.
  • Controle de transações: assegura a consistência dos dados, organizando instruções SQL em transações que são concluídas como uma unidade.
  • Controle de sessão: permite controlar propriedades de uma sessão de usuário, que começa ao conectar-se ao banco de dados e termina ao desconectar.

Referências e recursos:

Entradas relacionadas: