Buscar

01 Banco de Dados e os usuários de banco de dados

Prévia do material em texto

Banco de Dados e usuários 
de Banco de Dados
Disciplina: Banco de Dados
Professor: Wandré Nunes de 
Pinho Veloso
2
Dados, informação e conhecimento
• Dados
– Fatos brutos, o fluxo infinito de coisas que estão acontecendo 
agora e que aconteceram no passado
• Informação
– Conjunto de dados aos quais seres humanos deram forma para 
torná-los significativos e úteis
• Conhecimento
– Conjunto de ferramentas conceituais e categorias usadas pelos 
seres humanos para criar, colecionar, armazenar e compartilhar 
informação
– Pode ser armazenado como um artefato em uma biblioteca ou 
em um programa de computador, por exemplo
3
Dados
• “Fatos conhecidos que podem ser registrados 
(codificados) e que têm significado implícito”
– Ex: um valor “F” pode significar sexo Feminino em um contexto, 
mas pode significar Falso em outro contexto
• Um Banco de Dados representa algum aspecto do 
mundo real
• Os dados são organizados com lógica e coerência 
(dados aleatórios, mesmo relacionados, não constituem 
um Banco de Dados)
• Uma coleção de dados relacionados entre si formam um 
Banco de Dados
4
Banco de Dados
• Banco de Dados e sistemas de informação baseados 
em Bancos de Dados são cada vez mais essenciais 
para a vida moderna
• Diversas de nossas atividades que envolvem 
relacionamento com empresas ou até com o governo 
usam alguma interação com um Banco de Dados
• O baixo custo do armazenamento de dados em meio 
digital, somado à grande estabilidade dos sistemas de 
gerenciamento de bancos de dados atuais recomenda o 
uso de BD em grande parte dos SI informatizados
5
Banco de Dados
• BD são projetados, construídos e 
populados com dados que possuem 
algum objetivo específico
• Voltados para um grupo provável de 
usuários, que o utilizarão desses dados de 
acordo com o necessário
• Banco de Dados nem precisam ser 
informatizados (ex: biblioteca, fichas)
Banco de Dados
• Para ser um Banco de Dados, as seguintes 
propriedades, normalmente, estão presentes:
– Representação de algum aspecto do mundo real, 
às vezes chamado de mini-mundo ou universo de 
discurso (UoD - Universe of Discourse)
– Coleção logicamente coerente de dados com 
algum significado inerente (dados aleatórios não 
são banco de dados)
– Um BD é projetado, construído e populado com 
dados para uma finalidade específica
6
Banco de Dados
• Exemplo: Receita Federal e Imposto de 
Renda
– 100 milhões de contribuintes
– 5 formulários por contribuinte
– 400 caracteres por formulário
• 100 * 106 * 400 * 5 caracteres (bytes)
– Se a Receita Federal mantém registro dos 3 
últimos anos de cada contribuinte, além do 
anual
• 8 * 1011 bytes (800 gigabytes)
7
Banco de Dados
• Exemplo: Amazon.com
– Mais de 20 milhões de livros, CDs, vídeos, 
DVDs, jogos, eletrônicos, roupas e outros 
itens
– Ocupa mais de 2 terabytes, armazenados em 
mais de 200 computadores diferentes
– 15 milhões de visitantes todos os dias
– Cerca de 100 pessoas são responsáveis por 
manter o BD da Amazon.com atualizado
8
9
10
Sistema de processamento de arquivos
• É a forma de armazenar os dados de uma aplicação em um arquivo
• Quem gerencia os acessos a esse arquivo é o Sistema Operacional 
(SO)
• Cada usuário define e implementa os arquivos necessários para 
uma aplicação específica, como parte da programação da aplicação
• Mudanças na estruturação dos dados exigem modificações em 
todos os programas que acessam aqueles dados
• Tende a ser utilizado por apenas um usuário, o que induz à 
redundância de informações e desperdício de espaço de 
armazenamento
• A estrutura dos arquivos pode ser mantida oculta de outros 
usuários, possibilitando a criação de arquivos e sistemas 
proprietários
11
Sistema de processamento de arquivos
• Exemplo: Faculdade
– Diversos grupos de usuários: secretaria, financeiro, 
contabilidade...
– Cada grupo mantém seus arquivos de alunos de maneira 
independente (alguns até em sua própria máquina)
– A secretaria e o financeiro guardam os dados de matrícula e dos 
cursos que cada aluno cursa (redundância)
– Qualquer pessoa que tenha acesso ao arquivo de dados, tem 
acesso irrestrito aos dados dele, sem controle de permissões
– Caso algum tesoureiro esteja realizando um pagamento e o 
sistema desligue, não há controle de que parte foi feita ou não
– Caso o funcionário da informática deseje fazer backup de todos 
os dados da Faculdade, esses não podem estar sendo utilizados
12
Banco de Dados
• Utilizando Banco de Dados é possível
– Controlar alterações em todos os Dados
• Permitindo somente aos usuários autorizados
• Garantir que um dado será corretamente alterado, senão, ele será 
restaurado ao valor anterior
• Não permitir que uma alteração de um usuário afete uma alteração de outro
– Buscar Dados de forma mais rápida, pois estão organizados e 
ordenados
– Backup realizado sem ter que esperar todos os sistemas pararem
– Independência de programas específicos; isolamento entre dados e 
programas
– Recursos para limitar a redundância
– Múltiplas aplicações de linguagens diferentes acessando o mesmo 
Banco de Dados e até os mesmos Dados
– Relacionamentos entre os dados (Exemplo: situação 
financeira-aluno-histórico)
– Concentrar todos os Dados em um local
13
SGBD
• Um Sistema Gerenciador de Banco de Dados (SGBD) é 
uma coleção de programas que permite aos usuários 
criar e manter um Banco de Dados. É um pacote de 
softwares com finalidade genérica
• Finalidades de uso de um SGBD
– Definição de BD: especificação e criação de tipos, estruturas de 
dados e restrições
– Construção de BD: armazenamento de dados de acordo com a 
estrutura definida em algum meio de armazenamento controlado 
pelo SGBD
– Manipulação de BD: realização de operações como consultas, 
alteração de dados, emissão de relatórios, etc.
– Compartilhamento de dados: permite que diversos usuários e 
programas acessem o BD simultaneamente
14
SGBD
• Exemplos:
– DB2
– MySQL
– Microsoft SQL Server
– Oracle
– Firebird
– PostgreSQL
– Microsoft Visual FoxPro
– dBASE
– SQLite
15
SBD
• SBD: Sistema de Banco de Dados
– Nome dado ao conjunto de recursos que é 
utilizado para suportar alguma aplicação 
usando apenas o BD
– Corresponde ao conjunto formado pelo 
SGBD, programas desenvolvidos para facilitar 
o acesso ao SGBD (programas de aplicação, 
consultas, etc.) e os próprios dados
16
Exemplo: Universidade
17
Tipos de Dados
• Definições
– Tabela
• Consiste em um conjunto de linhas e colunas
– Linha
• Também chamada de registro ou tupla
• É onde colocamos as informações a serem 
armazenadas nas tabelas
– Coluna
• Também chamado de atributo
• Um registro é composto de atributos
18
Tipos de Dados
Acadêmicos
Nome Sexo Altura Idade Curso
1 Mariana O. Kimo F 1,67 24 Serviço Social
2 Luis Fernando Moreno M 1,75 19
Sistemas de 
Informação
3 Maria Brígida Gomes Silva F 1,60 27 Farmácia
19
Tipos de atributos
• Numéricos: números inteiros e ponto flutuante (reais) de 
diversas precisões
• Cadeia de caracteres: conjunto de caracteres
• Cadeia de bits: conjunto de bits
• Booleano: possui os valores TRUE ou FALSE (caso não 
seja nenhum desses dois, o valor fica sendo 
UNKNOWN)
• Date e time: representam data e horário e suas 
variações
• Timestamp: engloba os campos date e time mais 6 
dígitos para fração de segundo. Exemplo: ‘2009-05-16 
14:43:12 758371’
20
Características de Banco de Dados
• Natureza autodescritiva dos dados
– O banco de dados não contém apenas os dados em si, 
mas também uma definição completa da estrutura dos 
dados e de suas restrições
– O Catálogo do sistema contém informações como: 
• a estrutura de cada arquivo• o tipo e formato de armazenamento de cada dado
• restrições porventura existentes sobre cada dado
– Os dados armazenados no catálogo são chamados de 
metadados
– O catálogo é usado pelo SGBD, mas também pode ser 
acessado por programas do usuário que necessitem obter 
informações sobre a estrutura dos dados
21
Características de Banco de Dados
• Natureza autodescritiva dos dados
– Um SGBD tem finalidade genérica, ou seja, não é 
desenvolvido para funcionar com apenas um conjunto 
de dados ou uma aplicação específica
– O SGBD precisa trabalhar com eficiência equivalente 
em situações variadas em termos do porte das 
aplicações e em termos da natureza das aplicações
– Sistemas baseados em arquivos podem implementar 
estruturas de dados otimizadas para o problema que 
pretendem resolver, o que pode ser vantajoso apesar 
de significar perda de generalidade
Exemplo de um Catálogo
22
Definições especificadas pelo Projetista 
antes da criação do BD
23
Características de Banco de Dados
• Isolamento entre programas e dados
– Como a estrutura dos dados está descrita no 
catálogo, o SGBD é desenvolvido para funcionar 
independentemente do conteúdo do banco
– Alterações na estrutura dos dados não exigem a 
reescrita de código do SGBD, embora possam exigir 
mudanças no código do aplicativo e na interface com 
o usuário
– Essa característica é usualmente chamada de 
independência de dados
24
Características de Banco de Dados
• Isolamento entre programas e dados
– Um típico usuário de Banco de Dados não está 
preocupado com a localização de cada item de dados 
dentro de um registro ou em seu tamanho, em vez disso, 
este se preocupa se o valor é retornado corretamente
– O BD abstrai operações de acesso aos dados, 
simplificando este processo
– Em BD orientados a objeto ou objeto-relacionais é 
possível associar operações às classes de objetos 
armazenadas no BD (também chamadas de funções ou 
métodos), porém a interface é separada da 
implementação
25
Características de Banco de Dados
• Suporte a múltiplas visões dos dados
– Nem todo usuário precisa ter acesso ou 
conhecer toda a estrutura do banco
– Ocasionalmente, pode ser necessário 
fornecer a um usuário uma visão particular 
dos dados, derivada dos dados armazenados: 
dados virtuais
– Os usuários não precisam saber se os dados 
que acessam são armazenados ou virtuais
– Este também é um recurso de segurança
Exemplo de uma Visão (View)
26
27
Características de Banco de Dados
• Compartilhamento de dados e processamento 
de transações multiusuário
– SGBD precisam permitir o compartilhamento de 
dados entre seus diversos usuários, e isso requer:
• Controle de concorrência
• Controle de acesso
• Processamento de transações de múltiplos usuários 
simultaneamente
– Transações simultâneas (processos ou programas 
em execução) precisam operar corretamente
• Dois ou mais usuários não podem alterar simultaneamente o 
mesmo dado
• Transações precisam ter garantia de término com execução 
integral das instruções nelas contidas
28
Usuários do Sistema
• Administrador do Banco de Dados (DBA)
– Responsável pelo autorização para o acesso 
ao banco, pela coordenação e monitoração 
de seu uso (segurança, desempenho), 
controlar modificações na estrutura de dados 
e por adquirir recursos de software e 
hardware
– Responsável por problemas como brechas de 
segurança ou tempo de resposta ruim do 
sistema
29
Usuários do Sistema
• Projetista do Banco de Dados
– Responsável pela identificação dos dados que serão 
armazenados no Banco e também por escolher as 
estruturas apropriadas para representar e armazenar 
esses dados
– Ele deve se comunicar com todos os prováveis 
usuários do Banco para conhecer suas 
necessidades e criar projetos que as atendam
– Especifica restrições de integridade para os dados
– Desenvolve visões do BD para usuários ou grupos 
específicos
30
Usuários do Sistema
• Analista de Sistemas
– Determinam as solicitações dos usuários 
finais, além de desenvolver as especificações 
das transações customizadas que atendam a 
essas solicitações
• Programador de aplicações
– Implementam essas especificações como 
programas, depois testam, documentam e 
mantém essas transações customizadas
31
Usuários do Sistema
• Usuário final
– É deles o principal conhecimento acumulado sobre o problema a ser 
resolvido
– O grau de envolvimento com o projeto e com a implementação do SBD 
variam bastante
• Casual
– Aciona o BD ocasionalmente, precisando de informações diferentes a 
cada acesso (usa uma linguagem para consulta direta ao Banco de 
Dados)
• Iniciante, leigo ou parametrizável
– É envolvido nos atos de consulta e atualização do Banco de Dados. 
Exemplo: caixa de banco que chega saldo de contas
• Sofisticado
– Tem maior familiaridade com o BD, a ponto de desenvolver aplicações 
para si
• Autônomo, individual ou isolado
– Mantém um Banco de Dados pessoal, alimentado por programas 
próprios de sua função. Exemplo: setor de contábil
32
Vantagens de se utilizar um SGBD
• Controle de redundância
– O armazenamento redundante de dados é 
considerado danoso à estabilidade de um SI
• Problemas na atualização: duplicidade de trabalho
• Desperdício de espaço de armazenamento
• Geração de inconsistências
– Redundância introduzida de forma controlada pode 
ajudar a melhorar o desempenho do BD
• Evita a navegação entre várias tabelas para se obter um 
dado
• Restrições de integridade tem que ser implementadas e 
garantidas para proibir inconsistências entre os dados
33
Vantagens de se utilizar um SGBD
• Controle de acesso
– Como parte da especificação do BD, é 
possível determinar que usuários têm ou não 
acesso a cada dado
– Alguns usuários também podem não ter 
permissão de modificar os dados, embora 
possam acessá-los
– A configuração das permissões para acesso é 
realizada pelo DBA, usando seus privilégios 
de administrador do BD
34
Vantagens de se utilizar um SGBD
• Armazenamento persistente de objetos de programa e 
estruturas de dados
– Característica da orientação a objetos, inerente aos 
SGBD OO
– Os dados de um objeto em C++ ou Java, por exemplo, 
podem ser armazenados diretamente no BD OO, sem 
necessitar de conversão
– Nem sempre é o caso em Bancos de Dados 
Relacionais, em que ocorre o problema de 
incompatibilidade por impedância, ou seja, diferenças e 
incompatibilidades entre as estruturas de dados do 
SGBD com as estruturas das linguagens de 
programação, em especial, Orientadas a Objeto
35
Vantagens de se utilizar um SGBD
• Prover estruturas de armazenamento para 
processamento eficiente de consultas
– O SGBD deve prover estruturas de dados 
especializadas para acelerar a execução de 
consultas, otimizando o acesso ao disco
– Recursos usuais: índices e buffers ou caches
– O SGBD contém um módulo de otimização de 
consultas, que determina um “plano de execução” 
baseado em critérios objetivos e em parâmetros do 
banco de dados
• Alguns SGBD permitem que o plano de execução seja 
inspecionado pelo usuário/analista e alterado
36
Vantagens de se utilizar um SGBD
• Facilidades para execução de backups e recuperação 
de dados
– Backups são essenciais ao longo da operação de 
sistemas de informação, já que os equipamentos de 
informática não possuem confiabilidade absoluta
• Garantia da existência de cópias no caso de perda de dados
– O subsistema de recuperação não apenas restaura 
os dados que foram “backupeados”, mas também é o 
responsável pela restauração do estado do sistema 
após a execução parcial de uma transação
• Garantia da possibilidade de restauração da situação do 
banco de dados a um estado consistentee íntegro
• Garantia de execução integral ou cancelamento integral de 
transações
37
Vantagens de se utilizar um SGBD
• Representação de relacionamentos complexos 
entre dados
– Recuperação de informação com base em 
relacionamentos
– 1 registro pode estar relacionado a outros 4, que 
podem estar relacionados a uma série de outros 
registros
– Exemplo: Quantas disciplinas determinado aluno 
cursa?
38
Vantagens de se utilizar um SGBD
• Imposição de restrições de integridade
– Também chamadas de regras de negócio
– Especificação de tipo para cada dado
– Especificação de domínio para cada dado
– Restrições quanto ao relacionamento com outros dados
– Restrições quanto à semântica dos dados (questões
especificamente ligadas à lógica da aplicação)
– Exemplos:
• Tipo_aluno deve ser um valor entre 1 e 5
• Cada registro de uma turma deve estar associado a uma 
disciplina (integridade referencial)
• Cada registro de uma disciplina deve ser único (restrição de 
chave ou singularidade)
39
Vantagens de se utilizar um SGBD
• Permitir inferências e ações baseadas em 
regras
– Definição de regras de dedução para inferir 
nova informação baseada nos fatos 
armazenados no SGBD
– SGBD ativos oferecem regras que podem 
automaticamente iniciar uma operação 
quando certos eventos ou condições 
ocorrerem (através de gatilhos ou triggers)
40
Tipos de Banco de Dados
• Banco de Dados Relacional
– Armazena os dados unicamente na forma de tabelas
• Banco de Dados Distribuídos
– Conjunto de vários Bancos de Dados logicamente inter-relacionados, 
distribuídos por uma rede de computadores
• Banco de Dados Geográficos
– Banco de Dados que objetiva armazenar e gerenciar informações sobre 
espaço e fenômenos que nele ocorrem
• Banco de Dados Orientado a Objetos
– Cada informação é armazenada em um objeto, facilitando a integração 
com linguagens orientadas a objeto
– Possui as mesmas propriedades das linguagens orientadas a objetos 
(herança, encapsulamento, polimorfismo, etc.)
• Banco de Dados Multimídia
– Trabalham com imagem, som e vídeo como seus dados
41
Quando não Utilizar um SGBD
• Investimentos iniciais em hardware, software e treinamento 
são incompatíveis com o projeto
– Obs.: Existem SGBDs livres/gratuitos
• Generalidade “excessiva” gera dificuldades na programação 
de aplicações muito particulares
• Custos de administração do ambiente de BD
• Os dados são simples, e não se espera que sejam alterados
• Exigências rigorosas de tempo de processamento que podem 
não ser atendidas devido a operações extras executadas pelo 
SGBD
• Não é necessário ter acesso simultâneo por múltiplos 
usuários
• Sistemas embarcados com capacidade de armazenamento 
limitada
42
Bibliografia
• Capítulo 1: Elsmari Ramez; Navathe 
Shamkant B. Sistemas de Banco de 
Dados – Fundamentos e Aplicações. 6 ed. 
Pearson, São Paulo, 2011.
• Date, C.J. Introdução a Sistema de Banco 
de Dados. 7 ed. Campus, Rio de Janeiro, 
2000.

Continue navegando