Introdução a Banco de Dados

Unidade 1 - Fundamentos e Arquitetura de Sistemas de Banco de Dados

Conceitos Fundamentais

O que é um Banco de Dados?

Definição Clássica

Segundo Korth, um banco de dados é uma coleção de dados inter-relacionados que representa informações sobre um domínio específico do mundo real.

Exemplos do Dia a Dia

  • Lista telefônica digital
  • Catálogo de streaming de música
  • Sistema de recursos humanos corporativo

Dados x Informação

Compreender a diferença entre dados brutos e informação processada é fundamental para trabalhar com bancos de dados eficazmente.

Dados

Dados brutos, isolados e sem contexto que não geram conhecimento por si só. Exemplo: o número "11 98765-4321" sozinho.

Informação

Dados organizados e contextualizados que geram conhecimento útil. Exemplo: "João Silva - 11 98765-4321".

Por que usar Banco de Dados?

Organização Eficiente

Estruturação lógica e segura das informações, facilitando o acesso e manutenção dos dados corporativos.

Consultas Rápidas

Recuperação ágil de informações através de mecanismos otimizados de busca e indexação.

Suporte à Decisão

Fornece dados confiáveis e atualizados para embasar decisões estratégicas nas organizações.

Sistema de Banco de Dados: Componentes Básicos

Um sistema de banco de dados é composto por diversos elementos que trabalham de forma integrada para garantir o funcionamento adequado.

Dados

Informações armazenadas de forma estruturada e organizada.

Hardware

Equipamentos físicos para armazenamento e processamento.

Software (SGBD)

Sistema que gerencia e controla o acesso aos dados.

Usuários

Pessoas que interagem com o sistema em diferentes níveis.

SGBD

O que é um SGBD?

Sistema de Gerenciamento de Banco de Dados (SGBD) é o software responsável por controlar, organizar e facilitar o acesso aos dados armazenados.

Principais SGBDs do Mercado

Oracle Database

Líder empresarial em soluções corporativas robustas.

MySQL

Popular solução open-source para web.

PostgreSQL

SGBD open-source com recursos avançados.

SQL Server

Solução Microsoft para ambientes Windows.

Objetivos do SGBD

Abstração de Dados

Isolar o usuário dos detalhes complexos sobre como e onde os dados são fisicamente armazenados no sistema.

Independência de Dados

Promover separação entre a estrutura lógica dos dados e as aplicações, permitindo mudanças sem impacto nos programas.

Vantagens do Uso de SGBD

Redução de Redundância

Minimiza duplicação de dados e inconsistências através de normalização e controles centralizados.

Compartilhamento Controlado

Permite acesso simultâneo de múltiplos usuários com controle de concorrência e transações.

Segurança e Integridade

Garante proteção dos dados através de mecanismos de autenticação, autorização e validação.

Quando NÃO usar um SGBD?

Embora os SGBDs ofereçam inúmeras vantagens, existem cenários onde sua utilização pode não ser a melhor escolha.

Aplicações Muito Simples

Sistemas com volume reduzido de dados e poucos usuários podem não justificar a complexidade e custo de um SGBD completo.

Requisitos Muito Específicos

Aplicações com necessidades particulares de desempenho ou armazenamento que não se beneficiam das funcionalidades padrão de um SGBD.

Restrições de Recursos

Ambientes com limitações severas de hardware, orçamento ou expertise técnica para manutenção.

Arquitetura

Arquitetura de Sistemas de Banco de Dados: Visão Geral

A arquitetura moderna de sistemas de banco de dados segue predominantemente o modelo cliente-servidor, com componentes distribuídos.

Cliente

Interface de aplicação que solicita serviços e apresenta resultados ao usuário final.

Servidor

Processa requisições, executa consultas e gerencia o armazenamento dos dados.

Rede

Infraestrutura de comunicação que conecta clientes e servidores.

Arquitetura de SGBD: Camadas

A arquitetura em três camadas proporciona flexibilidade e independência entre os diferentes níveis do sistema.

Nível Físico

Define como os dados são efetivamente armazenados em disco: estruturas de arquivos, índices e métodos de acesso.

Nível Lógico

Descreve quais dados são armazenados e seus relacionamentos através de esquemas, tabelas e restrições.

Nível Conceitual

Apresenta aos usuários apenas a parte relevante do banco, simplificando a complexidade e aumentando a segurança.

Independência de Dados

A independência de dados é um dos pilares fundamentais dos sistemas de banco de dados modernos, permitindo evolução sem impacto.

Independência Física

Mudanças na forma de armazenamento físico não afetam o esquema lógico nem as aplicações.

Independência Lógica

Alterações no esquema lógico não requerem modificações nas aplicações que utilizam o banco.

Abstração

Níveis de Abstração em Banco de Dados

Os três níveis de abstração trabalham juntos para proporcionar uma visão organizada e eficiente dos dados.

1
2
3
1

Visão Conceitual

Usuários

2

Lógico

Estruturas

3

Físico

Armazenamento


  • Nível Físico: Detalhes de como os dados são armazenados fisicamente em disco
  • Nível Lógico : Quais dados existem e como se relacionam
  • Nível Conceitual (Externo): Parte do banco acessível a cada tipo de usuário

Modelo Conceitual: Entidade-Relacionamento (ER)

O modelo ER é uma ferramenta fundamental para representar a estrutura lógica de um banco de dados de forma visual e intuitiva.

Entidades

Objetos do mundo real que possuem existência independente, como Aluno, Professor, Produto.

Atributos

Propriedades ou características que descrevem as entidades, como nome, matrícula, data de nascimento.

Relacionamentos

Associações significativas entre entidades, representando interações do mundo real.

Exemplo de Diagrama Entidade-Relacionamento

Vamos visualizar um caso prático de modelagem ER para um sistema acadêmico simples.

ORGANIZAÇÃO INCORRETA


ORGANIZAÇÃO CORRETA


Modelo Lógico

O modelo lógico traduz o modelo conceitual para estruturas compatíveis com o SGBD escolhido, mantendo independência do armazenamento físico.

Transformação ER → Relacional

  • Entidades tornam-se tabelas
  • Atributos tornam-se colunas
  • Relacionamentos geram chaves estrangeiras

Elementos do Modelo Lógico

Chaves Primárias

Identificam unicamente cada registro.

Chaves Estrangeiras

Estabelecem relacionamentos entre tabelas.

Restrições

Garantem integridade dos dados.


MODELO INCORRETO - SEM A TABELA ASSOCIATIVA (MATRÍCULA)


Modelo Físico

O modelo físico especifica como os dados serão efetivamente armazenados e acessados, focando em desempenho e eficiência.

Índices

Estruturas que aceleram consultas através de organização especial dos dados, permitindo acesso direto.

Arquivos e Partições

Organização física dos dados em disco, incluindo estratégias de particionamento para grandes volumes.

Otimização

Ajustes de parâmetros, buffers e configurações para maximizar performance do sistema.

Modelo Físico (DDL – SQL)

-- ========================= -- Tabela: ALUNO -- ========================= CREATE TABLE aluno ( matricula INT NOT NULL, nome VARCHAR(100) NOT NULL, CONSTRAINT pk_aluno PRIMARY KEY (matricula) ); -- ========================= -- Tabela: TURMA -- ========================= CREATE TABLE turma ( codigo INT NOT NULL, semestre VARCHAR(10) NOT NULL, CONSTRAINT pk_turma PRIMARY KEY (codigo) ); -- ========================= -- Tabela: MATRICULA -- (tabela associativa N:N) -- ========================= CREATE TABLE matricula ( aluno_matricula INT NOT NULL, turma_codigo INT NOT NULL, data DATE NOT NULL, situacao VARCHAR(20) NOT NULL, CONSTRAINT pk_matricula PRIMARY KEY (aluno_matricula, turma_codigo), CONSTRAINT fk_matricula_aluno FOREIGN KEY (aluno_matricula) REFERENCES aluno (matricula) ON UPDATE CASCADE ON DELETE RESTRICT, CONSTRAINT fk_matricula_turma FOREIGN KEY (turma_codigo) REFERENCES turma (codigo) ON UPDATE CASCADE ON DELETE RESTRICT );

Observações didáticas (importantes para os alunos)

  • O relacionamento N:N entre Aluno e Turma foi resolvido por meio da tabela MATRICULA.
  • A tabela MATRICULA possui:
  • chave primária composta (aluno_matricula, turma_codigo);
  • atributos próprios do relacionamento (data, situacao).
  • As chaves estrangeiras garantem a integridade referencial.
  • O modelo está normalizado (3FN) e pronto para implementação.
História

Modelos de Dados Clássicos

A evolução dos modelos de dados reflete a busca contínua por representações mais flexíveis e eficientes da informação.

1

Modelo Hierárquico

Década de 1960. Estrutura em árvore, usado em sistemas legados como IMS da IBM.

2

Modelo em Rede

Década de 1970. Permite relacionamentos mais complexos que o hierárquico.

3

Modelo Relacional

1970-presente. Baseado em teoria matemática, tornou-se o padrão dominante.

Modelo Relacional: Fundamentos

Proposto por Edgar F. Codd em 1970, o modelo relacional revolucionou a área de banco de dados com sua elegância matemática.

Tabelas (Relações)

Dados organizados em estruturas bidimensionais com linhas e colunas.

Tuplas (Linhas)

Cada linha representa uma instância ou registro único de dados.

Atributos (Colunas)

Cada coluna representa uma propriedade ou característica dos dados.

Exemplos de SGBDs Relacionais

O mercado oferece diversas opções de SGBDs relacionais, cada um com características e públicos específicos.

Oracle Database

Solução enterprise robusta, amplamente utilizada em grandes corporações para aplicações críticas.

MySQL

SGBD open-source popular, especialmente em aplicações web e startups.

PostgreSQL

Open-source avançado com recursos enterprise e forte conformidade com padrões SQL.

SQL Server

Solução Microsoft integrada ao ecossistema Windows e Azure cloud.

Linguagens de Banco de Dados

As linguagens de banco de dados são categorizadas conforme sua função específica no gerenciamento dos dados.

DDL - Data Definition Language

Linguagem de Definição de Dados usada para criar e modificar a estrutura do banco: CREATE, ALTER, DROP.

DML - Data Manipulation Language

Linguagem de Manipulação de Dados para inserir, atualizar, deletar e consultar: SELECT, INSERT, UPDATE, DELETE.

DCL - Data Control Language

Linguagem de Controle de Dados para gerenciar permissões e acessos: GRANT, REVOKE.

Usuários de Banco de Dados

Diferentes tipos de usuários interagem com o banco de dados em diversos níveis de complexidade e responsabilidade.

DBA

Administradores que gerenciam e mantêm o sistema.

Desenvolvedores

Programam aplicações que acessam o banco.

Usuários Finais

Utilizam aplicações para interagir com dados.

Analistas

Projetam e modelam estruturas de dados.

Segurança

Segurança e Integridade em Banco de Dados

A proteção dos dados é fundamental para garantir confiabilidade, privacidade e conformidade regulatória.

Controle de Acesso

  • Autenticação de usuários
  • Autorização baseada em papéis
  • Auditoria de operações
  • Criptografia de dados sensíveis

Restrições de Integridade

  • Integridade de entidade (chaves primárias)
  • Integridade referencial (chaves estrangeiras)
  • Restrições de domínio (tipos e valores válidos)
  • Regras de negócio customizadas

Redundância e Consistência

O gerenciamento adequado da redundância é essencial para manter a consistência e qualidade dos dados.

Problemas da Redundância Excessiva

Desperdício de Espaço

Armazenamento duplicado aumenta custos com infraestrutura.

Inconsistência

Mesmos dados em locais diferentes podem ter valores conflitantes.

Complexidade de Atualização

Mudanças precisam ser replicadas em múltiplos locais.

Prática

Exemplo Prático: Consulta Simples em SQL

Vamos explorar os comandos básicos para recuperar informações de um banco de dados relacional.

Estrutura Básica de uma Consulta

SELECT nome, email FROM clientes WHERE cidade = 'São Paulo';

SELECT

Especifica quais colunas deseja recuperar dos dados.

FROM

Indica de qual tabela os dados serão extraídos.

WHERE

Define condições para filtrar os registros retornados.

Exercício

Exercício Prático: Criando uma Tabela

Aprenda a definir a estrutura de uma nova tabela utilizando o comando CREATE TABLE.

Comando DDL

CREATE TABLE alunos ( matricula INT PRIMARY KEY, nome VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE, data_nascimento DATE, curso VARCHAR(50) );

Elementos da Definição

  • PRIMARY KEY: Identifica unicamente cada registro
  • NOT NULL: Campo obrigatório
  • UNIQUE: Não permite valores duplicados
  • Tipos de dados: INT, VARCHAR, DATE
Exercício

Exercício Prático: Inserindo Dados

Após criar a estrutura, utilize o comando INSERT para popular a tabela com registros.

Comando DML para Inserção

INSERT INTO alunos (matricula, nome, email, data_nascimento, curso) VALUES (1001, 'Maria Silva', 'maria@email.com', '2000-05-15', 'Sistemas de Informação'), (1002, 'João Santos', 'joao@email.com', '1999-08-22', 'Ciência da Computação'), (1003, 'Ana Costa', 'ana@email.com', '2001-03-10', 'Engenharia de Software');
Recapitulação

Recapitulando a Unidade 1

Vamos revisar os principais conceitos abordados nesta unidade sobre fundamentos de banco de dados.

Conceitos Fundamentais

Banco de dados, diferença entre dados e informação, componentes de um sistema de BD.

SGBD e Arquitetura

Papel do SGBD, modelo cliente-servidor, arquitetura em três camadas, independência de dados.

Níveis de Abstração

Modelo conceitual (ER), modelo lógico (tabelas relacionais), modelo físico (armazenamento).

Próximos Passos

Continue sua jornada no mundo dos bancos de dados aprofundando-se nos tópicos avançados.

Modelagem Detalhada

Aprofunde-se em técnicas de modelagem ER avançada, normalização e otimização de esquemas.

SQL Avançado

Explore joins complexos, subconsultas, funções agregadas, procedures e triggers.

Prática com Sistemas Reais

Trabalhe com SGBDs em projetos práticos, desenvolvendo aplicações completas.

Obrigado!

Perguntas?

Este é o momento para esclarecer dúvidas, compartilhar ideias e aprofundar os conceitos apresentados.


Recursos para Estudo Adicional

  • Documentação oficial dos SGBDs (MySQL, PostgreSQL, Oracle)
  • Livros: "Sistemas de Banco de Dados" - Elmasri & Navathe
  • Plataformas online: SQLZoo, HackerRank SQL, LeetCode Database
Made with