01 - bancos de dados e usuários de banco de dados

48
Banco de dados e os usuários de banco de dados

Upload: lucas-menezes

Post on 15-Apr-2016

240 views

Category:

Documents


0 download

DESCRIPTION

bd

TRANSCRIPT

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

AVISO

No decorrer desta disciplina, fica PROIBIDO o uso da imagem do banquinho feito com

dados.

Introdução

Dados – fatos que podem ser gravados e que possuem um significado implícito. Ex:

• Nomes

• Telefones

• Endereços

Banco de Dados - Uma coleção de dados relacionados

Propriedades implícitas de um BD

1. Representa alguns aspectos do mundo real – Um BD pode às vezes ser chamado de

minimundo ou universo de discurso. – As mudanças no minimundo são refletidas em

um banco de dados. 2. É uma coleção lógica e coerente de dados com

algum significado inerente. – Uma organização de dados randômica não

pode ser interpretada como um banco de dados.

Propriedades implícitas de um BD

3. Um banco de dados é projetado, construído e povoado por dados, atendendo uma proposta específica, possuindo:

– Grupo de usuários definido

– Aplicações preconcebidas

Sistema gerenciador de banco de dados (SGBD)

• Permite realizar a definição, construção, manipulação e compartilhamento de bancos de dados entre vários usuários e aplicações.

Coleção de programas que permite aos usuários criar e manter um banco de dados.

Funções do SGBD

• Definição do BD – especificar os tipos de dados, estruturas e restrições para os dados a serem armazenados em um BD.

• Construção – armazenamento dos dados em alguma mídia apropriada, controlada pelo BD.

• Manipulação – inclui funções como pesquisas para recuperação de dados, atualização do BD para refletir as mudanças no minimundo e geração de relatórios dos dados

• Compartilhamento – função que permite que múltiplos usuários acessem, de forma concorrente, o banco de dados.

Funções do SGBD (cont.)

• Proteção – Defende o sistema contra mau funcionamento ou falhas no hardware e software, e cuida da segurança contra acessos não autorizados ou maliciosos.

• Manutenção – permite a evolução dos requisitos que se alteram ao longo do tempo.

Software SGBD

Sistema de banco de dados = BD + SGBD

Usuários/Programadores

Programas de aplicações/consultas (Queries)

Programa para processamento de Consultas/Programas

Software para acesso aos dados armazenados

Definição dos dados armazenados (metadados)

Banco de dados armazenados

Exemplo de BD: Universidade

ALUNO Nome Matricula Turma NumCurso

Wandergleison ABC111111 1 003

Washingtonildo DEF222222 1 003

Waldireneide AAC333333 2 003

Rosicleniany DGE444444 2 003

Leydedayanilva CGD555555 1 008

CURSO NomedoCurso NumCurso

Sistemas de Informação 003

Biologia 007

Nutrição 008

Matemática 009

Exemplo de BD: Universidade (cont.)

HISTÓRICO_ESCOLAR Matricula IdDisciplinas Nota

ABC111111 ACD 9

ABC111111 AGD 8

AAC333333 ACD 8

PRE_REQUISITO NumDisc NumerodoPre_requisito

AGD ACD

DISCIPLINA IdDisciplina NomeDisciplina NumCurso

AAA Teoria Geral dos Sistemas 003

AEF Arquitetura de Computadores 003

ACD Fundamentos de Banco de Dados 003

AGD Banco de Dados 003

Emprego de BD vs. Processamento de arquivos

Processamento de arquivos

Cada usuário define e implementa os arquivos necessários para uma aplicação específica, como parte da programação da aplicação.

• Isso resulta em redundância.

• Ex: Em uma empresa, são mantidos 2 cadastros de clientes: um pelo setor de vendas e um pelo setor de contabilidade.

– Quais as consequências dessa redundância?

Consequências da redundância

• Desperdício de espaço de armazenamento (Dados repetidos localizados em fontes diferentes)

• Dificuldade em manter a consistência dos dados.

– O que acontece se eu atualizar o endereço do cliente somente no setor de contabilidade? Onde serão entregues as mercadorias enviadas pelo setor de vendas?

Emprego de um banco de dados

Características:

• Natureza autodescritiva do Sistema de Banco de Dados.

• Isolamento entre os programas e dados, e Abstração dos Dados

• Suporte a múltiplas visões dos dados.

• Compartilhamento de dados e processamento de transações de multiusuários

Natureza autodescritiva do sistema de Banco de Dados

• O Sistema de Banco de Dados não possui apenas o banco de dados, mas também uma completa definição ou descrição da estrutura do banco, e suas restrições.

* No processamento de arquivos, essa definição dos dados também faz parte dos programas da aplicação

Catalogo do SGBD

• Provê ao usuário e o DBA a informação que armazena, mas é acessado principalmente pelos módulos do SGBD.

• Contém informações como a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada item de dados e várias restrições sobre os dados.

• Fortemente acoplado ao software do SGBD.

Dicionário de Dados

• Termo mais amplo que catálogo. • Repositório centralizado de metadados (informações sobre os

dados, como significados, relacionamentos entre dados, origem, uso e formatos).

• Mantém informação sobre configurações, documentação, aplicações e usuários do sistema.

• Pode interagir com os módulos do SGBD (dicionário Ativo), mas é usado principalmente por Designers, usuários e administradores do sistema (Dicionário Passivo).

• Pode ser: – Um documento descrevendo um banco ou coleção de bancos; – Um componente integral de um SGBD necessário pra determinar sua

estrutura; – Uma parte de middleware que extenda ou complete o dicionário

nativo de um SGBD.

Isolamento entre os programas e dados e Abstração de dados

• A alteração na estrutura de um SGBD não necessariamente exige uma alteração nos programas que o acessam.

• Isso é permitido graças à abstração de dados.

Independência programa – dados: A estrutura dos arquivos de dados é armazenada no catálogo do SGBD separadamente do programa de acesso.

*No processamento tradicional de arquivos, a estrutura do arquivo de dados está embutida no programa da aplicação (Uma mudança na estrutura do arquivo pode exigir mudanças nos programas que acessam o arquivo.

Suporte para as Múltiplas Visões dos Dados

• Um banco de dados possui muitos usuários

• Cada usuário pode solicitar uma diferente perspectiva (visão dos dados).

Visão: pode ser um subconjunto de um banco de dados, ou conter uma visão virtual dos dados (derivados do arquivo do banco de dados, mas não, explicitamente, armazenados).

Compartilhamento de dados e processamento de Transações

Multiusuários • SGBD multiusuário – Permite que muitos

usuários acessem o banco de dados ao mesmo tempo. – Controle de concorrência: garante que, quando

muitos usuários tentem acessar o mesmo dado, realizem isso de maneira controlada, para garantir que os resultados das atualizações sejam corretos.

– Transação: programa em execução ou processo que inclui um ou mais acessos ao banco de dados, como leituras e atualizações de registros.

Propriedades ACID

Propriedades obrigatórias a um SGBD.

• Atomicidade – Ou todas as operações em uma transação devem ser executadas, ou então nenhuma deverá ser.

• Consistência – Toda transação deve levar o BD de um estado Consistente para outro estado consistente (Sem problemas de integridade).

• Isolamento – Cada transação pode ser efetuada de forma isolada (sem interferência) de outras transações.

• Durabilidade – A informação deve ser gravada no BD de forma imutável até que alguma outra transação de atualização, ou exclusão afete-a.

Atores em BD

Atores

Pessoas envolvidas no projeto, uso e manutenção de um BD.

• Administradores de Banco de Dados

• Projetistas do Banco de Dados

• Usuários Finais

• Analistas de Sistemas e programadores de aplicações (Engenheiros de software)

Administradores de banco de Dados

• Administram o banco de dados (!)

• Responsáveis por:

– Autorização de acesso

– Coordenação e monitoração de uso do BD

– Aquisição de recursos de hardware e software, conforme necessário.

– Segurança

– Desempenho do BD

Projetistas do BD

Responsáveis por:

• Identificar os dados que serão armazenados no banco.

• Escolher estruturas apropriadas para representar e armazenar esses dados.

• Levantamento de requisitos

• Desenvolver visões de usuários

O usuário final

• Usuários finais casuais – Acessam o banco ocasionalmente, e procuram informações diferentes a cada acesso, por meio de linguagem de consulta sofisticada. Ex.: gerentes e outros profissionais com necessidades ocasionais.

• Iniciantes ou usuários finais parametrizáveis – Grande parte dos usuários. Executam consultas e atualizações frequentes no BD, geralmente padronizadas e cuidadosamente testadas. (transações “enlatadas”).

O usuário final

• Usuários finais sofisticados – engenheiros, cientistas, analistas de negócios e outros que se familiarizam com as particularidades do SGBD para implementar aplicações que atendam solicitações complexas.

• Usuários autônomos (stand-alone) – mantém um banco de dados pessoal por meio do uso de pacotes de programas prontos que possuem interfaces gráficas ou programas baseados em menus fáceis de usar. Ex: usuário de um pacote para cálculo de impostos que armazena seus dados financeiros pessoais para o pagamento de impostos.

Analistas de sistemas e programadores de aplicações (Engenheiros de

Software) • Analistas de sistemas – determinam as

solicitações dos usuários finais.

• Programadores de aplicações – implementam as especificações levantadas pelos analistas na forma de programas, então os testam, documentam e mantém essas transações customizadas.

Outros profissionais ligados ao desenvolvimento de SGBDs

• Projetistas e implementadores de SGBDs

• Desenvolvedores de ferramentas

• Pessoal de manutenção e operadores

Vantagens de utilização de SGBDs

Controle de redundância

• Redundância – armazenamento dos mesmos dados em locais diferentes. Pode causar: – Duplicação de esforços

– Desperdício de espaço

– Inconsistência

• Usar SGBDs permitem unificar as visões de diversos usuários de maneira consistente.

• Pode ser necessário o uso de redundância controlada para melhorar a performance de consultas.

Restrição de acesso Não Autorizado

• Pode ser necessário limitar o acesso/manipulação de determinados usuários a certas informações.

• O SGBD deve garantir a segurança e um subsistema de autorização usado pelo DBA para criar contas e definir as restrições de cada uma.

Armazenamento persistente para Objetos Programas

• BDs OO podem oferecer armazenamento persistente aos objetos programa e às estruturas de dados, evitando que os mesmos se percam no termino da execução (objetos persistentes).

Armazenamento de estruturas para processamento eficiente de consultas

Devido ao armazenamento em disco, o SGBD deve ser adaptado para aumentar a velocidade de pesquisa dos registros. • Arquivos auxiliares (indexados) – possuem estruturas

de dados árvores ou estruturas de dados hash adaptadas para pesquisa em disco.

• Buffering – armazenamento temporário que mantém partes do BD na memória principal

• Módulos de processamento e otimização de consulta – responsável pela escolha eficiente do plano de execução da consulta (query) baseado nas estruturas de armazenamento existentes.

Backup e restauração

• O SGBD deve prover facilidades para restauração de falhas de hardware ou de software.

• Subsistema de restauração – garante que, no caso de falha no meio de uma transação, o BD seja capaz de voltar ao estado em que estava antes do início da transação. Pode também permitir, caso viável, que a transação falha seja resumida do ponto onde foi interrompida.

Múltiplas interfaces para os Usuários

Cada usuário deve ter interfaces adequadas a seu nível técnico. • Linguagens de consulta para usuários casuais. • Interfaces de linguagens de programação para

programadores de aplicações. • Formulários e sequencias de comandos para

usuários parametrizáveis • Menus, linguagem natural, para usuários

autônomos

GUIs (Graphical User Interfaces) – Interfaces com menus e formulários, mais simples de trabalhar do que em modo texto.

Representação de relacionamentos complexos entre dados

• O SGBD deve ser capaz de representar relacionamentos entre os dados, e recuperar os dados relacionados de maneira fácil e eficiente.

Restrições de integridade

Restrições derivadas do significado (semântica) dos dados e do minimundo que representam. Ex.:

• Especificação de um tipo de dado ou de valores permitidos para cada item de dados.

• Definição de registros em um arquivo que devem estar relacionados a registros em outros arquivos.

Permitir inferências e ações usando regras

• Um BD pode gerar novas informações a partir de dados armazenados no BD.

• Ex.: Dedução de que um aluno está em recuperação à partir de suas notas.

Outras implicações do uso de BDs

• Padronização dos dados.

• Redução do tempo de desenvolvimento de aplicações

• Flexibilidade de alteração na estrutura do BD

• Disponibilidade para atualizar as informações

• Economia

Quando NÃO usar SGBDs

• SGBDs podem custar caro devido a: – Investimentos em software, hardware e treinamento – Generalidade que o SGBD fornece para definição e

processamento dos dados. – Custos elevados para oferecer segurança, controle de

concorrência, recuperação e funções de integridade.

• Indica-se uso de arquivos quando: – O BD e as aplicações são simples, bem definidos e sem

previsão de mudanças – O programa possui requisitos de tempo real difíceis de

atender devido à sobrecarga do SGBD – Não é necessário acesso de múltiplos usuários aos dados

Histórico das aplicações de BDs

Modelo de Rede

Utiliza o conceito de registros (dados) e links (relacionamentos) para representar o banco.

Modelo de Rede (cont.)

Modelo Relacional

• Representa os dados na forma de Relações, Interligadas por relacionamentos.

• Modelo mais utilizado atualmente.

• Será visto com mais detalhes ao longo da disciplina.

Modelo Relacional

EMPREGADO SECRETARIA

TECNICO

ENGENHEIRO

* CPF

Nome DataNasc Endereco

Empregado

VelocDigitacao CPF (FK)

Secretaria

TipoEng CPF(FK)

Engenheiro

TGrau CPF (FK)

Tecnico

BDs Orientados a Objetos (OO)

• Adequação dos BDs para as atuais linguagens orientadas a Objetos.