Вы находитесь на странице: 1из 18

cap1

Bancos de dados (BD)


• No decorrer do dia, a maioria de nós se depara com atividades que
envolvem alguma interação com os BD’s
– banco
– reservas em um hotel
– compra de passagens aéreas
– acesso ao catálogo de uma biblioteca informatizada
– compra de produtos

As aplicações incluem uma atualização automática do BD que mantém


o “controle de estoque” disponível

• Estas são aplicações chamadas tradicionais de BD

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Bancos de dados (BD)


• Aplicações inovadoras:
– BD de multimídia
• armazenamento de figuras, videoclipes e mensagens sonoras
– sistemas de informações geográficas (SIG)
• armazenamento e análise de mapas, dados do tempo e imagens de satélite
– data warehouses
• extração e análise de informações úteis para a tomada de decisões
• BD
– pode ser de qualquer tamanho e de complexidade variável
• uma agenda telefônica
• catálogo computadorizado de uma grande biblioteca
• BD mantido pelo IRS do USA
– órgão responsável pelo controle dos formulários de impostos preenchidos pelos
contribuintes dos USA
– caracteres de informações por formulário por contribuinte
» ordem de terabytes (1012)
– estas informações devem ser organizadas e gerenciadas para pesquisa, recuperação
e atualização

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

1
cap1

Introdução
• Banco de dados (BD)
– é uma coleção de dados relacionados

• Dados
– são fatos que podem ser gravados e que possuem um significado implícito

• BD
– é projetado e construído para dados e povoado por dados
– possui um grupo definido de usuários e algumas aplicações pré-
concebidas

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Introdução
• Banco de dados computadorizado
– pode ser criado e mantido:
• por um grupo de aplicativos
• por um Sistema Gerenciador de Banco de Dados (SGBD)

• SGBD
– é uma coleção de programas que permite aos usuários criarem e manterem
um banco de dados
– é um sistema de software que facilita os processos de
• definição: especificação dos tipos de dados, das estruturas e das restrições
para os dados
• construção: processo de armazenamento dos dados em alguma mídia
apropriada

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

2
cap1

Introdução
• SGBD
• manipulação: consultas, pesquisas, atualização e geração de relatórios
• compartilhamento: acesso de múltiplos usuários e de programas
• proteção: contra o mau funcionamento ou crashes no HW ou SW
• segurança: contra acessos não autorizados ou maliciosos

• chama-se o BD e o SGBD, juntos, de sistema de banco de dados

• a Figura 2 a seguir mostra a configuração de um sistema de banco de


dados simplificado e ilustra alguns dos conceitos apresentados

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

3
cap1

Um exemplo
• BD de uma universidade com informações do meio acadêmico
– alunos, cursos e notas

• A Figura 3 a seguir mostra a estrutura do BD e fornece uma pequena


amostra dos dados:
– cinco arquivos: ALUNO, CURSO, DISCIPLINA, HISTORICO_ESCOLAR, PRE_REQUISITO
– é preciso definir os elementos dos arquivos e também especificar os tipos
de dados para cada elemento (string, integer ou um esquema de código
para representar esses elementos: turma no arquivo ALUNO)
– observa-se que os registros de diferentes arquivos podem estar
relacionados
• o registro para “Smith” (de ALUNO) está relacionado a 2 registros em
HISTORICO_ESCOLAR

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Um exemplo

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

4
cap1

Um exemplo
• A manipulação do BD envolve
– consultas (queries)
• listar todos os cursos e notas de Smith (ALUNOS / PAIS)
• relação dos nomes dos alunos que fizeram as disciplinas do curso de BD do
segundo semestre de 1999 (PROFESSORES / ASSISTENTES)
• quais os pré-requisitos do curso de BD (ALUNOS).....

– atualizações
• mudar a turma de Smith para veteranos
• mudar o instrutor da disciplina 102......

– estas consultas e atualizações devem ser especificadas na linguagem de


consulta (query language) do SGBD

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Características do emprego de BD
• abordagem que utiliza processamento de arquivos
– informações de cada aplicação são mantidas em arquivos separados
• redundâncias na definição e no armazenamento dos dados
• desperdício de armazenamento
• dificuldade de manter os dados comuns armazenados

• abordagem que utiliza BD


– um único repositório de dados é definido uma única vez, mantido e então
acessado por vários usuários
• isolamento entre aplicação e dados
• compartilhamento de dados
• processamento de transações de multiusuários
• suporte para múltiplas visões dos dados

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

5
cap1

Por que usar BD?


• Natureza autodescritiva do sistema de BD

– possui uma completa definição e descrição da estrutura do BD e suas


restrições

• está armazenada no catálogo do SGBD


• a informação de estrutura do arquivo, de tipo e formato do dado e das restrições
armazenada no catálogo é chamada de metadados (Figura 2)
• ao desenvolver uma aplicação será necessário acessar esse catálogo para
conhecer a estrutura dos arquivos do BD

– no processamento tradicional de arquivos, a definição dos dados faz parte dos


próprios programas de aplicação, ou seja, a estrutura do arquivo e a localização exata
de um campo dentro de um registro está codificada no programa

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Por que usar BD?


• Isolamento entre os programas e dados e abstração de dados
– no processamento tradicional de arquivos, qualquer mudança na estrutura
de um arquivo pode exigir alterações de todos os programas que acessam
esse arquivo

– se for necessário adicionar outro campo ao registro do arquivo ALUNO,


com BD basta alterar a descrição no catálogo para refletir a inclusão do
novo item

– a característica que permite a independência programa-dados chama-se


abstração de dados

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

6
cap1

Por que usar BD?


• Suporte para as múltiplas visões dos dados
– um BD típico tem muitos usuários e cada qual pode solicitar diferentes visões
(consultas) desse BD
– uma visão é um subconjunto de um BD, derivada dos dados dos arquivos
– é um arquivo virtual criado dinamicamente a partir de arquivos reais
• usuário 1: acessar e imprimir o histórico de cada aluno
• usuário 2: checar se os alunos cumpriram todos os pré-requisitos de cada curso

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Por que usar BD?


• Compartilhamento de dados e o processamento de transação
multiusuários

– um SGBD permite que diversos usuários acessem o BD ao mesmo tempo


• usa um controle de concorrência para garantir que os resultados das
atualizações sejam corretos
– reserva de um lugar em um vôo / reserva de apenas um passageiro
– processamento de transações on-line

• as operações de uma transação devem ocorrer atomicamente, ou seja, ou todas


funcionam ou nada funciona (baixa do estoque, lançamento do valor a receber)

• cada transação deve executar um acesso ao BD sem a interferência de outras


transações

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

7
cap1

Atores
• Para um BD pessoal, uma pessoa em geral define, constrói e manipula
o BD
• Para projeto, uso e manutenção de um grande BD tem-se
– Administrador de Banco de Dados (Database Administrator – DBA)
• autoriza o acesso ao banco
• coordena e monitora o seu uso e aquisição de novos recursos
• cuida dos problemas de segurança
• cuida do tempo de resposta ruim do sistema
– Projetista de Banco de Dados
• identificação dos dados que serão armazenados
• escolha das estruturas apropriadas para representá-los e armazená-los
• implementação do BD
• desenvolvimento de visões que atendam os requisitos de todos os usuários

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Atores
– Usuário final
• consultam, atualizam e emitem relatórios no acesso ao BD
• casuais: precisam de informações diferentes a cada acesso, constroem as suas
próprias consultas
• parametrizáveis: fazem consultas e atualizações padronizadas
• sofisticados: implementam aplicações para atender suas solicitações com as
facilidades oferecidas pelo SGBD
• autônomos: usam pacotes de programas específicos prontos
– Analistas de sistemas e Engenheiros de software
• familiarizados com toda a gama de capacidades oferecidas pelo SGBD, eles
atendem às solicitações dos usuários e desenvolvem aplicações para atender
estas solicitações (muitas vezes faz a parte do projetista)
– Implementadores de sistemas SGBD
• implementam módulos (catálogo, query language...) e interfaces (SO,
compiladores) do SGBD

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

8
cap1

Modelos de dados e esquemas

• Modelos de dados
– usados para descrever a estrutura do BD
– conceituais: descrevem os dados como os usuários os
percebem
• utilizam conceitos como entidades, atributos e relacionamentos
– entidade: um objeto do mundo real ou um conceito
» um funcionário, um projeto
– atributo: propriedade ou característica que ajuda a descrever uma
entidade
» nome do funcionário, seu salário
– relacionamento: mostra uma associação entre duas ou mais
entidades
» funcionário que trabalha em um projeto

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Modelos de dados e esquemas

• Modelos de dados
– conceitual: modelo entidade-relacionamento (cap.2)

– representacionais: oferecem conceitos que podem ser entendidos


pelos usuários e contêm detalhes de armazenamento dos dados
• mais usados em SGBD’s
• modelo de dados relacional
• modelos de rede e hierárquicos (usados no passado)

– físicos: descrevem os detalhes de como os dados estão


armazenados

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

9
cap1

Modelos de dados, esquemas e instâncias

• Esquema do banco de dados


– a descrição do BD
– em geral, espera-se que não seja alterado freqüentemente
– a próxima figura apresenta o diagrama esquemático de um BD
apresenta a estrutura de cada entidade
• mostra os nomes das entidades e dos atributos
• não apresenta as instâncias reais das entidades
• não exibe o tipo do dado
• não representa restrições
• não exibe relacionamento entre as entidades

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Modelos de dados, esquemas e instâncias

• Diagrama esquemático para um BD

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

10
cap1

Arquitetura de três-esquemas

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Arquitetura de três-esquemas
• Objetivo
– separar o usuário da aplicação do BD físico
– realização das 3 características importantes da abordagem com uso de BD:
• separação dos programas e dos dados
• suporte a múltiplas visões
• uso de catálogo para descrever o BD

• Três níveis:
– interno: utiliza o modelo de dado físico que descreve a estrutura de armazenamento
físico do BD
– conceitual: utiliza o modelo de dado representacional para descrever entidades,
atributos, tipos de dados, conexões, operações, restrições....
– externo: abrange as visões dos usuários

• SGBD transforma uma solicitação definida no nível externo em uma solicitação


do nível conceitual, para então, transformá-la em uma solicitação do nível
interno, a fim de processar o BD armazenado

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

11
cap1

Independência dos dados


• Processos de transformação de solicitações e resultados entre os níveis são
chamados de mapeamentos

• Independência dos dados: capacidade de mudar o esquema em um nível sem


que ocorram alterações do esquema no próximo nível mais alto
– lógica: capacidade de alterar o esquema conceitual sem mudar o esquema externo
ou os programas
• adicionar entidades e/ou atributos novos
– física: capacidade de mudar o esquema interno sem ter de alterar o esquema
conceitual
• reorganização de arquivos físicos
• criação de rotas de acesso para melhorar o desempenho da recuperação ou atualização dos
dados

• Apenas o mapeamento entre os dois níveis é modificado para atender essas


alterações
– os dois níveis de mapeamentos podem criar overhead durante a compilação ou a
execução de uma consulta ou um programa caso haja muitas alterações nos
esquemas
Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)
Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Linguagens de SGBD

• Em um projeto de BD primeiro se especifica os esquemas


conceitual e interno e os mapeamentos entre os dois
– linguagem de definição dos dados (DDL Data Definition Language)
usada pelo DBA para definir os 2 esquemas
• compilador DDL para processar os comandos DDL
– identificar as entidades e
– armazenar a descrição do esquema no catálogo do SGBD
• Quando os esquemas do BD estiverem compilados e o BD
populado com os dados
– os usuários devem ter meios para manipular este banco
• recuperação, inserção, remoção e modificação dos dados
• são feitas através da linguagem de manipulação dos dados (DML Data
Manipulation Language)

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

12
cap1

Linguagens de SGBD
• DML (Data Manipulation Language)
– não procedural
• usada para especificar suas próprias operações
• os comandos podem ser introduzidos interativamente de um monitor
• podem estar embutidos em uma linguagem de programação
– procedural
• precisa estar embutida em uma linguagem de programação (chamada de
linguagem hospedeira)
• recupera os registros de forma individual e os processa separadamente

• Uma linguagem de BD mais abrangente é a linguagem relacional, SQL


(Structure Query Languagem)
– representa uma combinação das linguagens DDL e DML
– comandos de especificação de restrições, evolução de esquema e outros
recursos
Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)
Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Interfaces do SGBD
• Baseadas em Menus para os clientes WEB ou Navegação (Browsing)
– listas de opções, chamadas menus, que o guiam durante a formulação de uma
pesquisa

• Baseadas em Formulários
– exibe um formulário projetado e programado para o usuário iniciante

• Gráficas para os Usuários


– através de uma interface gráfica (GUI Graphical User Interface) o usuário especifica
uma consulta manipulando um diagrama

• Usuários Parametrízáveis
– os programadores projetam e implementam uma interface para cada classe de
usuários
• um pequeno conjunto de operações/comandos é disponibilizado
• Interface para o DBA
– comandos privilegiados: criação de contas, ajuste de parâmetros, mudança de
esquemas, etc

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

13
cap1

Módulos componentes de um SGBD e suas interações

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Módulos componentes do SGBD


• O BD e o catálogo de SGBD são armazenados em disco
– o acesso aos discos é controlado pelo sistema operacional (SO)
– o SGBD interage com o SO quando precisa acessar os discos

• Os círculos identificados A, B, C, D e E
– acessos controlados pelo gerenciador de dados armazenados
– executam as transferências de dados entre o disco e a memória principal

• O compilador DDL processa as definições do esquema


– armazena as descrições dos esquemas (metadados) no catálogo do SGBD

• O processador de BD em tempo de execução controla o acesso ao


banco em tempo de execução
– executa os comandos para recuperação ou atualização no BD
Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)
Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

14
cap1

Módulos componentes do SGBD


• O compilador de pesquisa (query) analisa a sintaxe das consultas
– gera as chamadas ao processador em tempo de execução para executar o
código

• O pré-compilador extrai os comandos DML escritos em uma linguagem


de programação hospedeira
– os comandos são compilados pelo compilador DML
– os códigos de acesso ao BD são gerados
– o restante do programa é enviado ao compilador da linguagem hospedeira
– códigos-objetos dos comandos DML e do programa são acoplados
– transação customizada inclui as chamadas para o processador em tempo
de execução

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Utilitários dos Sistema de BD


• Existem utilitários que auxiliam o DBA no gerenciamento do sistema de
BD
– carregamento / loading / ferramentas de conversão
• dadas a fonte existente e as descrições de armazenamento do BD destino, o
utilitário formata os dados e os armazena no BD
– backup
• cria uma cópia do BD para uma eventual necessidade de restauração do banco
• backup incremental
– reorganização de arquivos
• reorganizar de uma outra forma para melhorar seu desempenho
– monitoramento de desempenho
• fornece estatísticas para o DBA tomar decisões
– outros: para classificação, execução de compressão de dados,
monitoramento de acesso, etc
Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)
Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

15
cap1

Arquiteturas para os SGBD’s


• Arquitetura centralizada
– os grandes computadores centrais processavam todas as funções do
sistema
• programas de aplicação, interface com os usuários e funcionalidades do SGBD

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Arquiteturas para os SGBD’s


• Arquitetura cliente/servidor
– evolução reflete as tendências de ter vários PC’s e workstations
– conectados via redes de comunicações a vários servidores
• WEB
• BD
• Aplicações (servidores de impressão, e-mails, de arquivos)

Arquitetura de cliente/servidor no nível lógico

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

16
cap1

Arquiteturas para os SGBD’s


• Arquitetura cliente/servidor

Arquitetura de cliente/servidor no nível físico

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Arquiteturas para os SGBD’s


• Estrutura básica de um SGBD cliente/servidor
– as funcionalidades são distribuídas: módulo cliente e módulo servidor

• módulo Cliente: PC ou workstation


– programas de aplicação
– interfaces do usuário (GUI’s)
– o padrão ODBC (Open Database Connectivity)
» fornece as interfaces para o programa de aplicação (API’s)
» permitem que os programas do lado cliente se conectem ao SGBD

• módulo Servidor
– armazenamento de dados e recuperação
– controle de acessos e de concorrência
– buferização

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

17
cap1

Classificação dos SGBD’s


• Critérios para classificar
– modelo de dados (*** principal classificação)
• relacional: atualmente bastante usado, apresenta um BD como uma coleção de
tabelas e utiliza a linguagem de consulta SQL
• objeto: define um BD em termos de objetos, suas propriedades e operações que
são organizados em classes e hierarquias
• objeto-relacional: relacional com incorporação de conceitos de BD objeto

• de rede: antigo, relacionamento 1:N, linguagem associada precisa estar


embutida em uma linguagem de programação hospedeira
• hierárquico: antigo, representa os dados em estruturas de árvores hierárquicas,
cada hierarquia representa um número de registros relacionados
• XML (eXtended Markup Language): padrão de intercâmbio de dados na Internet,
utiliza estruturas de árvores hierárquicas, assemelha-se ao de objeto mas com
terminologia diferente

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

cap1

Classificação dos SGBD’s


• Critérios para classificar

– número de usuários
• único: suportam apenas um usuário por vez (PC)
• multiusuários: auxiliam múltiplos usuários simultaneamente

– número de sites
• centralizado: pode suportar vários usuários mas o SGBD e o BD estão alocados
em um único site
• distribuído: o BD e o SGBD estão distribuídos em vários sites conectados pela
rede

Curso: Engenharia da Computação Tema: Conceituação de Banco de Dados (BD)


Disciplina: EC210 (Banco de Dados) Professora: Rosanna M. R. Silveira

18

Вам также может понравиться