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: