Slide 1 - WordPress.com

Propaganda
SGBD
Introdução
Exemplos de Banco de Dados:
É
uma
coleção
de
dados
inter-relacionados,
representando
informações
sobre
um
domínio
específico.[Navathe]
INTERNET
BIBLIOTECA
SUPERMERCADO
LOCADORA DVD
AGÊNCIA BANCÁRIA
Exemplo de um banco de dados
Compartilhamento dos dados:
A redundância controlada de dados acontece quando o software
tem conhecimento da múltipla representação da informação e
garante a sincronia entre as diversas representações. Do ponto
de vista do usuário externo ao sistema em computador, tudo
acontece como se existisse uma única representação
da informação. Essa forma de redundância é utilizada para
melhorar a performance global do sistema. Um exemplo é um
sistema distribuído, onde uma mesma informação é armazenada
em vários computadores, permitindo acesso rápido a partir de
qualquer um deles.
A redundância não controlada de dados acontece quando a
responsabilidade
pela manutenção da sincronia entre as
diversas representações de uma informação está com o usuário
e não com o software.
Redigitação
A mesma informação é digitada várias vezes. No caso do exemplo da
indústria, os dados de um produto são digitados no setor de vendas, no
setor de produção e no setor de compras. Além de exigir trabalho
desnecessário, a redigitação pode resultar em erros de transcrição de
dados.
Inconsistências de dados
A responsabilidade por manter a sincronia entre as informações é do
usuário. Por erro de operação, pode ocorrer que uma representação de
uma informação seja modificada, sem que as demais representações o
sejam. Exemplificando, uma alteração na estrutura de um determinado
produto pode ser informada através do sistema de produção e deixar de
ser informada nos demais sistemas. A estrutura do produto passa a
aparecer de forma diferente nos vários sistemas. O banco de dados
passa a ter informações inconsistentes.
A solução para evitar a redundância não controlada de informações é o
compartilhamento de dados.
Definição
Sistema Gerenciamento de Banco de Dados
Com
o
tempo,
foram
sendo
identificadas
funcionalidades comuns a muitos programas. Por
exemplo, hoje em dia, a grande maioria dos programas
comunica-se com os usuários através de interfaces
gráficas de janelas.
Entretanto, normalmente, os programas não contém
todo código referente a exibição dos dados na interface,
mas utilizam gerenciadores de interface de usuário,
conjuntos de rotinas que incluem as funcionalidades
que um programador vai necessitar frequentemente, ao
construir uma interface de usuário. Da mesma forma,
para comunicar-se com processos remotos, usam
gerenciadores de comunicação. Para manter grandes
repositórios compartilhados de dados, ou seja, para
manter bancos de dados, são usados sistemas de
gerência de banco de dados (SGBD).

Sistema de Gerenciamento de Bancos de Dados
(SGBD)

É uma coleção de programas que permite aos usuários criar e
manter um Banco de Dados. [Navathe]

É constituído por um conjunto de dados (BD) associados a um
conjunto
de
programas
para
acesso
a
esses
dados.[Silberschatz]
DADOS
SGBD

Exemplos
Vantagens dos SGBD
X




Velocidade
Facilidade de acesso
Redução da redundância
Evita-se inconsistência
Vantagens
1. A manutenção de programas torna-se mais
simples, pois uma separação clara de funções
torna
programas
mais
facilmente
compreensíveis.
2. A produtividade de programadores também
aumenta, já que os programas ficam menores,
pois usam funções já construídas.
Classificação dos usuários de um
SGBD

Administrador de BD: pessoa que tem o controle
sobre o funcionamento do BD. Funções:




definição do esquema
modificação da organização física e do esquema
(relativamente raras)
concessão de autorização para acesso a dados (diferentes
permissões para diferentes usuários)
especificação de restrições de integridade
AO
nota
secretária
>= 0 epode...
pode...
<= 10
gerente
salario_professor
Os alunos
>= 1000
clientesnão
nãopodem....
podem....
Usuários
Classificação dos usuários de um
SGBD

Programadores de aplicação: profissionais da área
de computação que interagem usando comandos
para desenvolver programas de aplicação.
Classificação dos usuários de um
SGBD

Usuários sofisticados (ou ocasionais): interagem
com o SGBD através da linguagem de consulta para
atender às requisições.
Classificação dos usuários de um
SGBD

Usuários simples (ou ingênuos): não sofisticados,
interagem via os programas de aplicação existentes
objetivos
Objetivos dos SGBD

Prover um ambiente que seja conveniente e
eficiente para recuperar e armazenar
informações de Banco de Dados

Eliminar ou reduzir




Redundância ou inconsistência de dados
Dificuldade de acesso aos dados
Problemas de segurança
Eliminar ou reduzir


Anomalias de acesso concorrente
Isolamento dos dados
Linguagens
Linguagens de Base de Dados
• Linguagem de Definição de Dados (“Data Definition
Language” - DDL): é utilizada pelo DBA e projetistas de base
de dados para definir seus esquemas. O SGBD tem um
compilador para processar descrições em DDL e construir a
descrição do esquema armazenado no catálogo;
• Linguagem de Manipulação de Dados (“Data Manipulation
Language” - DML): uma vez que o esquema é compilado e a base de
dados preenchida com dados, os usuários têm que ter algum modo de
manipular os dados. Manipulações comuns como recuperação,
inserção, remoção e modificação de dados são realizadas pela DML.

Linguagem de Consulta

Porção da linguagem de manipulação
envolve o resgate de informações
que
Arquitetura
Arquitetura e Independência de Dados de SGBD’s

Objetivo

Separar o usuário da aplicação do banco de dados físico.
A arquitetura mais difundida na literatura é a Arquitetura “Three-Schema” (também
conhecida como arquitetura ANSI/SPARC), proposta por Tsichritzis & Klug em 1978.
1. O nível interno tem um esquema interno que descreve a estrutura de
armazenamento físico da base de dados. O esquema interno usa um modelo de
dados físico e descreve todos os detalhes de armazenamento de dados e
caminhos de acesso à base de dados;
2. O nível conceitual tem um esquema conceitual que descreve a estrutura de toda
a base de dados. O esquema conceitual é uma descrição global da base de dados,
que omite detalhes da estrutura de armazenamento físico e se concentra na
descrição de entidades, tipos de dados, relacionamentos e restrições. Um modelo
de dados de alto-nível ou um modelo de dados de implementação podem ser
utilizados neste nível.
3. O nível externo ou visão possui esquemas externos ou visões de usuários. Cada
esquema externo descreve a visão da base de dados de um grupo de usuários da
base de dados.
Arquitetura Three-Schema
A arquitetura “three-schema” pode ser utilizada para explicar conceitos de
independência de dados, que podem ser definidos como a capacidade de alterar o
esquema de um nível sem ter que alterar o esquema no próximo nível superior. Dois
tipos de independência de dados podem ser definidos:
Independência Lógica de Dados: É a capacidade de alterar o esquema conceitual sem
ter que mudar os esquemas externos ou programas de aplicação. Pode-se mudar o
esquema conceitual para expandir a base de dados, com a adição de novos tipos de
registros (ou itens de dados), ou reduzir a base de dados removendo um tipo de
registro. Neste últimocaso, esquemas externos que se referem apenas aos dados
remanescentes não devem ser afetados;
• Independência Física de Dados: É a capacidade de alterar o esquema interno sem ter
que alterar o esquema conceitual externo. Mudanças no esquema interno podem ser
necessárias devido a alguma reorganização de arquivos físicos para melhorar o
desempenho nas recuperações e/ou modificações. Após a reorganização, se nenhum
dado foi adicionado ou perdido, não haverá necessidade de modificar o esquema
conceitual.
Modelo de Dados
Objetivo

Transformar aspectos do Mundo Real em um Modelo de Dados
Formal

Exemplos:

Toda pessoa tem um nome e uma data de nascimento (MUNDO REAL)
nome
nasc
Pessoa

Toda conta em um banco tem um número e um saldo
numero
saldo
Conta
(MUNDO REAL)
Modelo Conceitual
Um modelo conceitual é uma descrição do banco de dados de
forma independente de implementação em um SGBD. O modelo
conceitual registra que dados podem aparecer no banco de
dados, mas não registra como estes dados estão armazenados a
nível de SGBD.
modelo conceitual
=
modelo de dados abstrato, que descreve a
estrutura de um banco de dados de forma
independente de um SGBD particular
Modelos Conceituais
Modelos de alto nível
 Possuem conceitos que descrevem os dados
como os usuários os percebem
 Não são implementados em SGBD



UML
Entidade-Relacionamento (E-R)

Toda conta em um banco tem um número e um saldo
numero
saldo
Conta
(MUNDO REAL)
A técnica mais difundida de modelagem conceitual é a abordagem entidaderelacionamento (ER). Nesta técnica, um modelo conceitual é usualmente
representado através de um diagrama, chamado diagrama entidaderelacionamento (DER).
Exemplo de modelo conceitual
Um modelo lógico é uma descrição de um banco de dados no nível de
abstração visto pelo usuário do SGBD. Assim, o modelo lógico é
dependente do tipo particular de SGBD que está sendo usado.
Um modelo lógico para o BD acima deve definir quais as tabelas que o
banco contém e, para cada tabela, quais os nomes das colunas. Abaixo é
apresentado o modelo lógico (de forma textual)
TipoDeProduto(CodTipoProd,DescrTipoProd)
Produto(CodProd,DescrProd,PrecoProd,CodTipoProd)
CodTipoProd referencia TipoDeProduto
Modo textual
Modelos Lógicos

São implementados em SGBD






Hierárquico
Em Rede
Relacional 
Binário
Funcional
Orientados a Objetos
Modelo de tabelas em um banco de dados relacional
O modelo lógico descreve a estrutura do banco de dados, conforme vista
pelo usuário do SGBD.
modelo lógico
=
modelo de dados que representa a estrutura
de dados de um banco de dados conforme
vista pelo usuário do SGBD
Modelos Físicos
Modelos de baixo nível
 Contém
conceitos que descrevem os
detalhes de como os dados estão
armazenados no computador

Projeto de Banco de Dados
O projeto de um novo BD dá-se em duas fases:
1 Modelagem conceitual
Nesta primeira fase, é construído um modelo conceitual, na
forma de um diagrama entidade-relacionamento. Este modelo
captura as necessidades da organização em termos de
armazenamento de dados de forma independente de
implementação.
2 Projeto lógico
A etapa de projeto lógico objetiva transformar o modelo
conceitual obtido na primeira fase em um modelo lógico. O
modelo lógico define como o banco de dados será
implementado em um SGBD específico.
evolução
Sistemas de Arquivos
Evolução
SISTEMA DE ARQUIVO
SGBD HIERÁRQUICOS
Modelo Hierárquico

Dados são representados como um conjunto de árvores, com raiz e seus
ramos

Prós:


Os desenvolvedores deste sistema estão entre os primeiros a tratarem características
como concorrência, recuperação, integridade e processamento eficiente de consultas.
Contras:


Complexidade dos diagramas de estrutura de árvore
Consultas complexas
Evolução
SISTEMA DE ARQUIVO
SGBD HIERÁRQUICOS
SGBD EM REDE
Modelo em Redes

Os dados são representados por uma coleção de registros e os
relacionamentos entre dados são representados por meio de links
Acesso aos dados através dos relacionamentos

Exemplo:



Suponha os registros cliente e conta;
Suponha que o cliente Hayes possui a conta A-102, Johnson
possui as contas A-101 e A-201, e Turner possui a conta A-305.
A-102
Hayes
Johnson
Turner
Main
Alma
400
Harrison
A-101
500
A-201
900
A-305
350
Palo Alto
Putnam Stamford
Modelo em Redes

As consultas são complicadas: o programador é forçado a
pensar em termos de links e, em como percorrê-los para obter
as informações de que necessita.
A-102
Hayes
Johnson
Turner
Main
Alma
400
Harrison
A-101
500
A-201
900
A-305
350
Palo Alto
Putnam Stamford
Evolução
SISTEMA DE ARQUIVO
SGBD HIERÁRQUICOS
SGBD EM REDE
Modelo Relacional

Surgiu em 1970, por Codd, tendo por base a teoria
dos Conjuntos

Contribuiu decisivamente para a massificação da
utilização da tecnologia de bases de dados
Evolução
SISTEMA DE ARQUIVO
SGBD HIERÁRQUICOS
Banco de Dados
Avançados
Evolução

1ª Geração - Pré-relacional



2ª Geração - Relacional


Modelo Hierárquico
Modelo em Rede
Modelo Relacional
3ª Geração - Pós-relacional

Novos modelos
Novos modelos na área
SGBD ORIENTADOS A
OBJETO
DATA WAREHOUSE
SGBD
OBJETO-RELACIONAL
DATA MINING
Novos modelos na área
Vídeo
Som
Texto
BANCO DE DADOS
MÓVEIS
BANCO DE DADOS
MULTIMÍDA
BANCO DE DADOS
ESPACIAIS
“Novos” modelos na área

Alguns não são nem tão novos assim, mas são considerados
avançados por serem não-convencionais
CREATE TRIGGER empregado-salario
ON INSERT empregado
IF empregado.salario >
(SELECT ... )
THEN abort
BANCO DE DADOS
ATIVOS
BANCO DE DADOS
TEMPORAIS
BANCO DE DADOS
DEDUTIVOS
EXERCÍCIOS
Exercício 1.1: Enumere as principais diferenças entre o processamento
de dados com arquivos convencionais e o processamento de dados com
SGBD.
Exercício 1.2: Descreva alguns fatores que levam alguém a preferir o
uso de arquivos convencionais ao uso de SGBD. Descreva alguns fatores
que levam alguém a preferir o uso de SGBD ao uso de arquivos
convencionais.
Exercício 1.3: Defina, os seguintes conceitos:
banco de dados, sistema de gerência de banco de dados, modelo de dados,
modelo conceitual, modelo lógico, modelagem conceitual e projeto lógico.
Exercício 1.4: Qual a diferença entre a redundância de dados
controlada e a redundância de dados não controlada? Dê exemplos de
cada uma delas.
Download