banco de dados

Propaganda
Banco
Banco de
de Dados
Dados // 11
Banco
Banco de
de Dados
Dados // 22
Conceitos Bá
Básicos
Engenharia da Computaç
Computação
UNIVASF
BANCO DE DADOS
Aula 1
Introduç
Introdução a Banco de Dados
Campo – representaç
representação informatizada de um
dado real / menor unidade de informaç
informação com
valor significativo para o usuá
usuário
Dado – conteú
conteúdo do campo
Registro – conjunto de campos
Arquivo – conjunto de registros
Banco de Dados – armazenamento fí
físico dos
arquivos
Sistema Gerenciador de Banco de Dados (SGBD)
– software responsá
responsável pelo armazenamento e
recuperaç
recuperação dos dados do BD.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 33
Banco
Banco de
de Dados
Dados // 44
Breve Histó
Histórico
Probl
Problemas dos Sistemas de Arquivos
Tradicionais
Computadores com capacidade de
armazenamento surgimento de Sistemas
Operacionais mais completos
Redundância
Inconsistência
Dificuldade no acesso a dados
Isolamento dos dados
Múltiplos usuá
usuários
Seguranç
Segurança
Integridade
Atomicidade
SO contendo sistemas de arquivos armazenamento e recuperaç
recuperação de informaç
informações
mais otimizados.
Necessidade de maior eficiência (tempo e
espaç
espaço) SGBD
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 55
Banco
Banco de
de Dados
Dados // 66
Probl
Problemas dos Sistemas de Arquivos
Tradicionais
Probl
Problemas dos Sistemas de Arquivos
Tradicionais
Redundância
– Arquivos e aplicações criados e mantidos por diferentes
programadores arquivos com formatos diferentes e
programas escritos em diversas linguagens de
programação.
– Informação repetida em diversos lugares (arquivos).
Inconsistência
– Decorrência da redundância.
– Várias cópias dos dados poderão divergir ao longo do
tempo.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Dificuldade no acesso aos dados
– Necessidade de construir programas para obter qualquer
informação solicitada.
Exemplo
Uma empresa precisa dos nomes de todos os clientes que fazem
aniversá
aniversário no mês de fevereiro, mas esta solicitaç
solicitação não foi prevista no
projeto do sistema existe somente uma aplicaç
aplicação para gerar a relaç
relação
de todos os clientes da empresa.
Alternativas:
1) separar manualmente da lista de todos os clientes aqueles que
necessita
2) requisitar um programador para escrever o programa necessá
necessário.
Ambas alternativas são insatisfató
insatisfatórias.
...Mais tarde a empresa precisa saber os clientes que têm saldo negativo.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
1
Banco
Banco de
de Dados
Dados // 77
Banco
Banco de
de Dados
Dados // 88
Probl
Problemas dos Sistemas de Arquivos
Tradicionais
Probl
Problemas dos Sistemas de Arquivos
Tradicionais
Isolamento dos dados
– Dados dispersos em vários arquivos e arquivos em
diferentes formatos difícil escrever novas aplicações para
recuperação apropriada dos dados.
Múltiplos usuá
usuários
– Atualizações concorrentes podem resultar em
inconsistências.
Exemplo
Conta corrente com saldo = R$500,00
Dois clientes debitam da conta A simultaneamente ($50 e $100,
respectivamente)
Na execuç
execução dos programas, ambos lêem o saldo antigo,
retiram, cada um seu valor correspondente, sendo o resultado
armazenado.
Dependendo de qual deles registre seu resultado primeiro, o
saldo da conta A será
será $450 ou $400, ao invé
invés do valor correto de
$350.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 99
Banco
Banco de
de Dados
Dados // 10
10
Probl
Problemas dos Sistemas de Arquivos
Tradicionais
Probl
Problemas dos Sistemas de Arquivos
Tradicionais
Seguranç
Segurança
– Definir autorizações de acesso a diferentes usuários.
Atomicidade
– Algumas operações devem ser feitas de forma única,
atômica, a fim de assegurar a integridade e consistência
dos dados.
Integridade
– Valores dos dados armazenados devem satisfazer a certas
restrições para manutenção da consistência.
• O valor da nota final de um aluno deve estar entre 0 e 10.
10. Os
programadores determinam o cumprimento desta restriç
restrição
atravé
através da adiç
adição de có
código apropriado aos vá
vários
Exemplo
programas aplicativos.
• Entretanto, quando aparecem novas restriç
restrições, é difí
difícil
alterar todos os programas para incrementá
incrementá-las. O
problema é ampliado quando as restriç
restrições atingem diversos
itens de dados em diferentes arquivos.
♦ um programa para transferir R$50,00 da conta A para uma
conta B. Se ocorrer falha no sistema durante sua execuç
execução,
é possí
possível que os 50 reais sejam debitados da conta A sem
Exemplo serem creditados na conta B, criando um estado
inconsistente no banco de dados.
♦É essencial para a consistência do banco de dados que
ambos, dé
débito e cré
crédito ocorram, ou nenhum deles seja
efetuado. Isto é, a transferência de fundos deve ser uma
operaç
operação atômica – deve ocorrer por completo, ou não
ocorrer.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 11
11
Banco
Banco de
de Dados
Dados // 12
12
Regras para que um sistema de manipulaç
manipulação
de dados seja um SGBD
Caracterí
Características de um SGBD
AutoAuto-contenç
contenção – conter dados, suas descriç
descrições,
relacionamentos e formas de acesso.
Independência dos Dados – aplicaç
aplicações imunes a
mudanç
mudanças na estrutura de armazenamento e à estraté
estratégia
de acesso a dados.
Abstraç
Abstração dos Dados – usuá
usuário não precisa saber
detalhes sobre armazenamento real.
Visões – formas diferentes de ver os dados de acordo
com necessidade dos usuá
usuários.
Transaç
Transações – gerenciar integridade sem precisar de
aplicativos.
Controle automá
automático de acesso – vários usuá
usuários,
travamento eficiente.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Controle de Redundâncias – informaç
informações armazenadas em
um único lugar.
Compartilhamento dos Dados – garantir concorrência ao
acesso dos dados, sem erro.
Controle de Acesso – seleç
seleção de permissões por usuá
usuário.
Interfaceamento – facilidade para recuperaç
recuperação de
informaç
informação.
Esquematizaç
Esquematização – mecanismos que possibilitem a
compreensão do relacionamento entre as tabelas e sua
manutenç
manutenção.
Controle de Integridade – aplicaç
aplicações e acessos não podem
comprometer integridade dos dados.
Backups – facilidade para recuperar falhas de hardware e
software.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
2
Banco
Banco de
de Dados
Dados // 13
13
Banco
Banco de
de Dados
Dados // 14
14
Abstraç
Abstração de Dados
Abstraç
Abstração de Dados
SGBD: estruturas complexas para a representaç
representação
dos dados no banco de dados.
Complexidade precisa ser escondida dos
usuá
usuários.
Níveis de abstraç
abstração: grande vantagem dos SGBD
Visão 1
Visão 2
...
Visão N
Nível Conceitual
– Nível físico: mais baixo – descreve como os dados são
armazenados
– Nível conceitual ou lógico: quais dados são
armazenados e quais relacionamentos entre eles.
– Nível visão: se expõe apenas parte do banco de dados.
Nível Fí
Físico
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 15
15
Banco
Banco de
de Dados
Dados // 16
16
Abstraç
Abstração de Dados
Abstraç
Abstração de Dados
Analogia com o conceito de tipos de dados em
linguagens de programaç
programação
Além de cliente, BD pode ter diversos tipos de registro,
como:
Type cliente = record
cliente-nome: string;
cliente-CPF: string;
Exemplo
cliente-endereco: string;
cliente-cidade: string
end;
Este có
código define um novo registro chamado
cliente com quatro campos.
Cada campo tem um nome e um tipo a ele
associado.
• conta, com os campos numero-conta e saldo
• empregado, com campos numero-empregado
e salário
nível físico registro cliente é um bloco consecutivo de
memória (por exemplo, palavra ou bytes). O compilador
esconde este nível de detalhes dos programadores.
nível conceitual ou lógico registro é descrito por um
tipo definido, como ilustrado no segmento de código visto.
É definida também inter-relação entre estes tipos de
registros.
nível de visão usuários do computador vêem um
conjunto de programas de aplicação que escondem os
detalhes dos tipos de dados.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 17
17
Banco
Banco de
de Dados
Dados // 18
18
Instâncias e Esquemas
Instâncias e Esquemas
instância conjunto de informaç
informações contidas em
determinado BD em um dado momento.
esquema projeto geral do BD mudados com
pouca freqü
freqüência.
Sistemas de BD possuem diversos esquemas, referentes aos
níveis de abstraç
abstração.
– nível mais baixo = esquema físico
– nível intermediário = esquema lógico
– nível mais alto = subesquemas.
sistemas de BD dão suporte a um esquema fí
físico, um
esquema ló
lógico e vá
vários subesquemas.
subesquemas.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Analogia: definiç
definição do registro cliente na
declaraç
declaração de seu tipo, não definimos qualquer
variá
variável.
Definiç
Definição de variá
variável: var clientenovo:
clientenovo: cliente;
cliente;
clientenovo área de memória que contém um registro
tipo cliente.
esquema de BD definição do tipo em linguagem de
programação.
instância do esquema variável de um dado tipo tem um
valor em particular em dado instante. Assim, este valor
corresponde a uma instância do esquema do BD.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
3
Banco
Banco de
de Dados
Dados // 19
19
Banco
Banco de
de Dados
Dados // 20
20
Independência de Dados
Modelos de Dados
capacidade de modificar a definiç
definição dos
esquemas em determinado ní
nível, sem afetar o
esquema do ní
nível superior
Coleç
Coleção de ferramentas conceituais para
descriç
descrição dos dados,
dados, relacionamento entre os
dados, semântica e restriç
restrições dos dados.
Independência de dados fí
física:
sica: modifica o esquema
físico sem que, com isso, qualquer programa aplicativo
precise ser reescrito (ocasionais para aumento de
desempenho).
Independência de dados ló
lógica:
gica: modifica o esquema
lógico sem que, com isso, qualquer programa aplicativo
precise ser reescrito (sempre que uma estrutura ló
lógica
do BD é alterada) mais díficil de ser atingida.
Três grupos:
Modelos lógicos baseados em objetos
Modelos lógicos baseados em registros
Modelos de dados físicos
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 21
21
Banco
Banco de
de Dados
Dados // 22
22
Modelos Ló
Lógicos Baseados em Objetos
Exemplo: Modelo EntidadeEntidadeRelacionamento
Usados na descriç
descrição dos dados nos ní
níveis
Visão
Visão
...
conceitual e visão.
1
2
Visão
N
rua
Exemplos:
Ní vel
Conceitual
nome
número
cidade
Modelo Entidade-Relacionamento
saldo
Modelo Orientado a Objeto
Modelo Semântico de Dados
cliente
conta
cliente
Ní vel
Físico
conta
Modelo Funcional de Dados
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 23
23
Banco
Banco de
de Dados
Dados // 24
24
Modelos Ló
Lógicos Baseados em
Registros
Modelo Relacional
També
Também usados na descriç
descrição dos dados nos ní
níveis
conceitual e visão.
Dados e relacionamentos representados por uma
coleç
coleção de tabelas.
Usados para especificar a estrutura ló
lógica do BD.
Tabelas com uma quantidade de colunas (atributos)e
nomes únicos.
BD estruturado atravé
através de registros de formato fixo
de todos os tipos
Cada registro define nú
número fixo de campos
(atributos), e cada campo possui tamanho fixo
(simplifica a implementaç
implementação do BD no ní
nível fí
físico)
modelo relacional
modelo de rede
modelo hierárquico
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Exemplo
Nome Endereço
Cidade
Luís
Marília
Número
Conta
900
Heitor Av. Antonio, 865
Bauru
556
Heitor Av. Antonio, 865
Bauru
647
Rua X, 123
Joana Rua da Curva, 89
São Paulo
801
Joana Rua da Curva, 89
São Paulo
647
Número
Conta
900
Saldo
556
458,98
647
561,89
801
654,12
678,00
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
4
Banco
Banco de
de Dados
Dados // 25
25
Banco
Banco de
de Dados
Dados // 26
26
Modelo de Rede
Modelo Hierá
Hierárquico
Dados representados por coleç
coleções de registros.
Relacionamentos representados por ligaç
ligações
(ponteiros).
Registros organizados como coleç
coleções arbitrá
arbitrárias de
grafos.
Dados representados por coleç
coleções de registros.
Relacionamentos representados por ligaç
ligações.
Registros organizados como coleç
coleções arbitrá
arbitrárias de
árvores.
Exemplo
Exemplo
Luís
Rua X, 123
Marília
Heitor
Av. Antonio, 865
Adamantina
Joana
Rua da Curva, 89
São Paulo
900
6 7 8 ,0 0
556
4 5 8 ,9 8
647
5 6 1 ,8 9
801
6 5 4 ,1 2
Luís
Rua X, 123
Marília
Heitor
900
6 7 8 ,0 0
556
4 5 8 ,9 8
Joana
Av. Antonio, 865
647
647
Rua da Curva, 89
5 6 1 ,8 9
801
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 27
27
Banco
Banco de
de Dados
Dados // 28
28
Diferenç
Diferenças entre os modelos
Linguagem de Definiç
Definição de Dados
(DDL)
relaciona os registros por valores pró
próprios a eles.
conseqü
conseqüência possibilidade do desenvolvimento de
fundamentos matemá
matemáticos para sua definiç
definição e
manipulaç
manipulação.
6 5 4 ,1 2
5 6 1 ,8 9
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
modelo relacional não usa ponteiros e links São Paulo
Adamantina
datadata-definition language (DDL)
Especificaç
Especificação do esquema de dados
resultado da compilaç
compilação de instruç
instruções DDL conjunto de tabelas que constituem o dicioná
dicionário
de dados ou diretó
ó
rio
de
dados
diret
dicioná
dicionário de dados:
dados: arquivo de metadados
(dados a respeito de dados) no SGBD o
diretó
diretório é consultado antes que o dado real seja
modificado
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 29
29
Banco
Banco de
de Dados
Dados // 30
30
Linguagem de Definiç
Definição de Dados
(DDL)
Linguagem de Manipulaç
Manipulação de Dados
(DML)
datadata-manipulation language (DML)
Exemplos
manipulaç
manipulação de dados:
create table
alter table
drop table
create view,
view, drop view
recuperação das informações armazenadas no BD
inserção de novas informações no BD
remoção de informações do BD
modificação das informações do BD
Objetivo proporcionar eficiente interaç
interação
humana com o sistema.
DML viabiliza o acesso (manipulaç
(manipulação) dos dados
organizados por um modelo de dados apropriado.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
5
Banco
Banco de
de Dados
Dados // 31
31
Banco
Banco de
de Dados
Dados // 32
32
Linguagem de Manipulaç
Manipulação de Dados
(DML)
Gerenciador do Banco de Dados
(SGBD)
Dois tipos bá
básicos:
– Procedimental o usuário deve especificar quais
dados são desejados e como chegar até eles.
– Não Procedimental o usuário deve especificar
quais dados são desejados, sem especificar como
chegar até eles geralmente mais fácil, mas menos
eficiente.
Linguagens de consulta (query
(query)) SQL
BD grandes quantidades de espaç
espaço de
armazenamento
Dados transportados entre discos e memó
memória
principal, conforme a necessidade Sistema
de BD deve minimizar necessidade de
movimentaç
movimentação
Performance (tempo de resposta) depende
da eficiência das estruturas de dados usadas e
das operaç
operações entre elas.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 33
33
Banco
Banco de
de Dados
Dados // 34
34
Gerenciador do Banco de Dados
Administrador do Banco de Dados
(DBA)
controle centralizado dos dados e dos
programas que acessam os dados
Responsá
Responsável administrador de dados
Funç
Funções:
Responsabilidades do Gerenciador:
Interação com o gerenciador de arquivos
(tradução instruções DML para baixo nível)
Garantia de integridade
Garantia de segurança
Recuperação e backup
Controle de concorrência
•
•
•
•
•
Definição do esquema
Definição da estrutura de dados e método de acesso
Modificações da organização física do esquema
Concessão de autorização para acesso aos dados
Especificação de regras de integridade
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Banco
Banco de
de Dados
Dados // 35
35
Banco
Banco de
de Dados
Dados // 36
36
Usuá
Usuários do Banco de Dados
Estrutura Geral do Sistema
Programadores de aplicaç
aplicações interagem com o
sistema atravé
através de chamadas DML, envolvidas por
programas escritos na linguagem hospedeira (por exemplo,
Pascal, C, Delphi).
Delphi).
USUÁRIOS
Usuários
simples
Programadores de
aplicação
Usuários
ocasionais
Administrador
do BD
Programas
de aplicação
Chamadas
de rotinas
Consultas
Esquema de
Banco de Dados
Usuá
Usuários ocasionais sofisticados, que interagem sem
escrever programas. Formulam suas solicitaç
solicitações ao BD
atravé
através de linguagens de consultas.
Usuá
Usuários simples interagem com o sistema atravé
através de
programas de aplicaç
aplicação.
Usuá
Usuários especializados escrevem aplicaç
aplicações
especializadas de BD que não podem ser classificadas como
aplicaç
aplicações tradicionais em processamento de dados esquemas CAD, bases de conhecimento, sistemas
especialistas, que armazenam dados com tipos complexos
(grá
(gráficos e som, por exemplo)
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
Pré-compilador da
linguagem de
manipulação de
dados
Código objeto dos
programas de
aplicação
Processador
de consultas
Gerenciador do
Banco de Dados
Compilador da
linguagem de
definição de dados
Sistema gerenciador
do banco de dados
Gerenciador
de arquivos
memória
de disco
Arquivos
de dados Dicionário
de dados
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
6
Banco
Banco de
de Dados
Dados // 37
37
Exercí
Exercícios
1. Quais são as principais diferenças entre um
sistema de processamento de arquivos e um
SGBD?
2. Foram listadas algumas vantagens mais
importantes de um sistema de banco de dados. Há
alguma desvantagem?
3. Explique a diferença entre a independência de
dados física e lógica.
Prof.
ª FFátima
átima Nunes
Prof
Prof.Edmundo
Edmundo Spoto
Spoto ee Profª
Profª
Nunes Marques
Marques
7
Download