Sei sulla pagina 1di 60

Banco de Dados I

4º Período - 2008/02
UNIPAC - Ipatinga
Prof. Christiano Colen Venancio
Ementa
■ Conceitos sobre Banco de Dados e SGBD;
■ Modelos de Bancos de Dados;
■ Modelo Entidade-Relacionamento - MER;
■ O Modelo Relacional;
■ Engenharia Reversa;
■ Álgebra Relacional; e
■ SQL.

Christiano Colen
2
Unipac - 2008
Bibliografia
■ Bibliografia Básica
SILBERSCHATZ, A; KORTH, H. Sistema de
banco de dados. São Paulo : Makron Books.
HEUSER, C. A. Projeto de Banco de Dados.
Porto Alegre : Saggra Luzzato.

■ Bibliografia Complementar
DATE, C. J. Introdução a Sistemas de Bancos
de Dados. Rio de Janeiro : Campus.
Christiano Colen
3
Unipac - 2008
Conceitos Básicos - BD
■ Processamento de Dados sem Banco de
Dados
Sistema de Sistema de Sistema de
Vendas Produção Engenharia

Arquivos de Arquivos de Arquivos de


Vendas Produção Engenharia

Dados de um Produto
Christiano Colen
4
Unipac - 2008
Conceitos Básicos - BD
■ Problemas da falta de Integração de Dados
– Redundância não controlada de dados
■inconsistência dos dados;
■dificuldade de extração de
informações;
– Redundância de rotinas;
– Dados pouco confiáveis

Christiano Colen
5
Unipac - 2008
Conceitos Básicos - BD
■ Processamento de Dados com Banco de
Dados
Sistema de
Produção
Sistema de Sistema de
Vendas Engenharia
Banco de
Dados

Dados de um Produto
Christiano Colen
6
Unipac - 2008
Dados X Informação
■ Dados são os fatos em sua forma
primária, como por exemplo um nome de
um empregado e o número de horas
trabalhadas em uma semana, números de
peças em estoque ou pedidos de vendas.

Christiano Colen
7
Unipac - 2008
Dados X Informação
■ Quando este fatos estão organizados ou
arranjados de uma maneira significativa, eles se
tornam uma informação. Informação, portanto, é
um conjunto de fatos organizados de tal forma
que adquirem um valor adicional além do valor
do fato em si. Por exemplo, um certo gerente
pode achar que o conhecimento do total de
vendas mensais é mais adequado ao seu
propósito, ou seja, tem mais valor, do que as
vendas de cada representante de vendas
individualmente. Christiano Colen
Unipac - 2008
8
Dados X Informação
■ A transformação de dados em informação é um
processo, ou uma série de tarefas logicamente
relacionadas, executadas para atingir um
resultado definido.” Por exemplo: com os dados
de peças em estoque, pedidos e vendedores pode-
se obter informações tão diferentes quanto: lista
de peças que estão em falta no estoque, a média
de venda por peça, os melhores e piores
vendedores da companhia, e ainda relacionar os
piores e melhores vendedores com as horas
trabalhadas por cada Christiano
um deles. Colen
9
Unipac - 2008
Dados X Informação
■ Os dados relevantes e que devem ser
manipulados por um determinado negócio se
mantém estáveis mesmo que o negócio em
questão modifique radicalmente sua forma de
operação, ou seja, seus processos. Logo, os
dados são mais estáveis que os processos. Por
esta razão muitos autores acreditam que o
banco de dados é uma das partes mais valiosas
e importantes de um sistema de informação.
Christiano Colen
10
Unipac - 2008
Definições de Banco de Dados
■ É uma coleção de dados relacionados. Dados,
por sua vez são uma coleção de fatos que
podem ser guardados e que tem um significado
implícito. Como exemplo, considere o nome, o
endereço e o telefone das pessoas que você
conhece. Você pode guardar esses dados num
caderno de telefone, ou pode guardar num
disquete usando um software como ACCESS ou
EXCEL. Isto é uma coleção de dados
relacionados com significado explicito
Christiano Colen
11
Unipac - 2008
Definições de Banco de Dados
■ É uma coleção organizada de fatos e
informações
■ É uma coleção de fatos registrados que
refletem o estado de certos aspectos de
interesse do mundo real.

Christiano Colen
12
Unipac - 2008
Banco de Dados
■ Conjunto de dados interrelacionados que
objetivam atender as necessidades de um
conjunto de usuários

Christiano Colen
13
Unipac - 2008
Banco de Dados
■ Problemas no Desenvolvimento de Aplicações de
Banco de Dados (arquivos) antes dos SGBD:
– Inconsistência e redundância de dados;
– Dificuldade de acesso aos dados;
– Isolamento de dados;
– Problemas de integridade;
– Problemas de atomicidade;
– Anomalias no acesso concorrente; e
– Problemas de segurança.
Christiano Colen
14
Unipac - 2008
Banco de Dados
■ Inconsistência e Redundância de Dados

– arquivos de formatos diferentes;


– programas desenvolvidos em diferentes
linguagens;
– informações repetidas em diferentes lugares;

Christiano Colen
15
Unipac - 2008
Banco de Dados
■ Dificuldade de Acesso aos Dados
– sistemas de processamento de arquivos
convencionais não atende às necessidades de
recuperação de informações de modo
eficiente;
– necessidade de estruturas de dados
complexas (com respostas mais rápidas e
adequadas)

Christiano Colen
16
Unipac - 2008
Banco de Dados
■ Isolamento de Dados
– dados dispersos em vários arquivos;
– dificuldades no desenvolvimento de novas
aplicações;

Christiano Colen
17
Unipac - 2008
Banco de Dados
■ Problemas de Integridade
– programas devem garantir a manutenção de
restrições de integridade.
– Restrições de Integridade: regras que
estabelecem quando uma base de dados está
correta.
Exemplo: “Um aluno não pode possuir duas
aprovações da mesma disciplina em seu histórico”

Christiano Colen
18
Unipac - 2008
Banco de Dados
■ Problemas de Atomicidade
“sistemas computacionais falham”

– Mecanismos simples como cópias não são


suficientes;
– Após falhas o banco de dados deve ser
recuperado rapidamente, em seu último
estado consistente;

Christiano Colen
19
Unipac - 2008
Banco de Dados
■ Problemas de Atomicidade

Exemplo:
transferência
Conta A Conta B

Operação Atômica : deve ocorrer por


completo ou não deve ocorrer

Christiano Colen
20
Unipac - 2008
Banco de Dados
■ Anomalias no Acesso Concorrente
– programas devem implementar controle de
acesso concorrente (programação
complexa);
Saldo Inicial - 500
Conta A
Exemplo: Saque Saque
200 100

Saldo Final - ?
Christiano Colen
21
Unipac - 2008
Banco de Dados
■ Problemas de Segurança
“Nem todos os usuários de banco de dados estão
autorizados ao acesso a todos os dados”

– Programas devem implementar controle de


acesso Funcionário Depto Pessoal

Dados Cliente

Sistema Bancário
Christiano Colen
22
Unipac - 2008
Definições de Sistema Gerenciador
de Banco de Dados (SGBD)
■É uma coleção de programas que permite ao
usuário criar e manter um banco de dados.
■É um sistema computadorizado de
armazenamento de dados , ou seja, um
sistema cujo objetivo geral é manter
informações e fazer com que estas
informações estejam disponíveis quando
solicitado
Christiano Colen
23
Unipac - 2008
Definições de Sistema Gerenciador
de Banco de Dados (SGBD)
■ É um conjunto de programas desenhado
para desempenhar determinadas funções a
fim de atingir objetivos específicos
envolvendo a formação e utilização de
banco de dados
■ É uma coleção de programas e utilitários
para organizar, armazenar, atualizar e
recuperar dados.

Christiano Colen
24
Unipac - 2008
Sistemas de Informação
■ Tipo especializado de sistema composto por
uma série de elementos ou componentes
inter-relacionados que coletam
(ENTRADA), manipulam e armazenam
(PROCESSO), disseminam (SAÍDA) dados
e informações, fornecendo um mecanismo
de feedback.

Christiano Colen
25
Unipac - 2008
Sistemas de Informação
Envolvem:
■ dados
■ o hardware e o sistema operacional
■ as pessoas que usam e administram os
dados
■ os programas de aplicação que acessam e
atualizam os dados
■ os programadores que desenvolvem essas
aplicações
Christiano Colen
26
Unipac - 2008
Sistema Gerenciador de Banco de
Dados
Aplicação

SGBD
SGBD

Banco de
Dados

Christiano Colen
27
Unipac - 2008
SGBD X Sistemas de
Gerenciamento de Arquivos
Sistemas de Gerenciamento de
Arquivos
A melhor maneira de entender a natureza geral e as
características dos bancos de dados de hoje é olhar
para as características dos sistemas que
antecederam o uso da tecnologia de banco de
dados:
■ Cada usuário define e implementa os arquivos
necessários para uma aplicação específica,
acarretando repetição dos dados gerando
inconsistência nas informações.
Christiano Colen
29
Unipac - 2008
Sistemas de Gerenciamento de
Arquivos
■ O acesso aos dados está escrito nos
programas que o manipulam,
subordinando os programas aos
arquivos.

Christiano Colen
30
Unipac - 2008
SGBD X Sistemas de
Gerenciamento de Arquivos
■ A manipulação dos dados contidos nos
arquivos pelas aplicações específicas
dificulta o desenvolvimento de novos
sistemas e torna a manutenção dos
aplicativos difícil e cara. Tomemos como
exemplo a necessidade de inclusão de um
novo campo em um arquivo, esta alteração
implica na alteração de todos os programas
que utilizam este arquivo. dados separados
e isolados; Christiano Colen
Unipac - 2008
31
SGBD X Sistemas de
Gerenciamento de Arquivos
O sistema possibilita uma redundância não
controlada de dados e inconsistência ao
permitir que em um sistema um dado seja
alterado e esse mesmo dado não seja
alterado em outro.
A responsabilidade sobre os procedimentos
de backup e recuperação esta a cargo da
aplicação.
Christiano Colen
32
Unipac - 2008
SGBD
■ Um arquivo (tabela) é definido uma única vez
e atende a várias aplicações.
■ Armazena-se junto com os dados toda as
informações referentes à forma como foram
estruturados os dados e onde eles estão
armazenados fisicamente. Essas informações
estão armazenadas em um catálogo que é
chamado de meta-data.
Christiano Colen
33
Unipac - 2008
SGBD
■ Há separação entre programas e dados. No
SGBD os acessos são escritos no banco de
dados e os programas enviam comandos
solicitando o acesso aos dados. Esse
conceito é chamado de abstração de dados,
que caracteriza-se por uma independência
entre programas e dados e entre programas
e operações de manipulação de dados.

Christiano Colen
34
Unipac - 2008
SGBD
■ São permitidas visões diferenciadas sobre a
mesma base de dados para aplicações
diferentes.
■ É permitido acesso simultâneo de vários
usuários ao mesmo dado. Essa
simultaneidade é tratada através do
gerenciamento da concorrência.

Christiano Colen
35
Unipac - 2008
Evolução dos Bancos de Dados

Christiano Colen
36
Unipac - 2008
Usuários de BD
■ Administrador de dados (AD):
responsáveis por identificar os dados a
serem armazenados no BD e por escolher as
estruturas apropriadas para representar e
armazenar esses dados. Comunicação c/
usuários p/ identificação de visões
(esquemas conceituais), desenvolve e
mantém o dicionário de dados, garante as
necessidade corporativas de dados
Christiano Colen
37
Unipac - 2008
Usuários de BD
■ Administradores do BD (DBA) : desenvolve
os esquemas internos através da construção das
tabelas, índices, etc., autoriza o acesso ao
banco de dados, de modo a coordenar e
monitorar seu uso, garante a segurança dos
dados, bem como seu backup e recuperação em
caso de falhas, garante a performance do banco
de dados e desenvolve visões que atendam ao
esquema externo
Christiano Colen
38
Unipac - 2008
Usuários de BD
■ Analistas de sistemas: determinam os
requisitos dos usuários finais e
desenvolvem especificações de transações
que satisfaçam esses requisitos.
■ Programadores de aplicação :
implementam as especificações das
transações como programas, testando-os,
corrigindo-os e documentando-os.
Christiano Colen
39
Unipac - 2008
Usuários de BD
■ Usuários finais: utilizam os sistemas
projetados pelo analista de sistemas cuja base
de dados é mantida e monitorada pelo DBA e
cuja integração com o conjunto da corporação
é garantido pelo esquema conceitual mantido
pelo AD.
■ Pessoal de suporte

Christiano Colen
40
Unipac - 2008
Visão dos Dados - Abstração de
Dados
Nível de visão (externo)
mais alto nível de abstração; visão de cada usuário;
descreve apenas parte do banco de dados.

Nível lógico (conceitual)


nível médio de abstração; visão da comunidade dos administradores do
banco de dados; quais dados estão armazenados no banco de dados, e quais
os inter-relacionamentos entre eles.

Nível físico (interno)


mais baixo nível de abstração; como os dados estão de
fato armazenados

Christiano Colen
41
Unipac - 2008
Visão dos Dados - Exemplo:
Type cliente = record
nome-cliente : string;
seguro-social : string;
rua-cliente : string;
cidade-cliente : string
end;

Christiano Colen
42
Unipac - 2008
Visão dos Dados
Aplicação Visão Externa

SGBD
SGBD Visão Lógica

Banco de
Visão Interna
Dados
Christiano Colen
43
Unipac - 2008
Modelos de Banco de Dados
■ Modelo de (Banco de) Dados : descrição
das informações que estão armazenadas em
um banco de dados.
Modelo de Dados
=
descrição formal da estrutura de um
banco de dados
Christiano Colen
44
Unipac - 2008
Modelos de Banco de Dados
■ Pode ser modelado a vários níveis de abstração:
– Modelo Conceitual: não contém detalhes sobre a
representação em meio físico das informações;
– Modelo Lógico: descrição de como as informações
estão organizadas internamente, visão do usuário do
SGBD; e
– Modelo Físico: descreve os dados no nível mais
baixo (interno); trata dos aspectos de implementação
do SGBD.
Christiano Colen
45
Unipac - 2008
Modelos de Banco de Dados
■ Modelo Conceitual

Modelo Conceitual
=
modelo de dados abstrato, que
descreve a estrutura de um banco de
dados de forma independente de
um SGBD particular

Christiano Colen
46
Unipac - 2008
Modelos de Banco de Dados
■ Modelo Conceitual
– Também conhecido como Modelo Lógico com
Base em Objetos;
– Registra que dados podem aparecer no banco
de dados, mas não registra como estes dados
estão armazenados a nível de SGBD;
– Existem vários técnicas de modelagem
conceitual:
■ Abordagem Entidade-Relacionamento; e
■ Abordagem orientada a objetos.

Christiano Colen
47
Unipac - 2008
Modelos de Banco de Dados

Diagrama Entidade-Relacionamento (DER)

Endereço Nome
Código Código
Cliente Mora Cidade

Christiano Colen
48
Unipac - 2008
Modelos de Banco de Dados
■ Modelo Lógico

Modelo Lógico
=
modelo de dados que representa a
estrutura de dados de um banco de
dados conforme vista pelo usuário
do SGBD

Christiano Colen
49
Unipac - 2008
Modelos de Banco de Dados
■ Modelo Lógico
– Também conhecido como Modelo Lógico com
Base em Registros;
– Dependente do tipo particular de SGBD que
está sendo usado;

Christiano Colen
50
Unipac - 2008
Modelos de Banco de Dados
■ Os três modelos lógicos mais conhecido são:
– Modelo de Rede: representado por um conjunto de
registros; sendo as relações através de ponteiros;
– Modelo Hierárquico: similar ao modelo de rede; a
diferença é gráfica, sendo os registros organizados
em árvores;
– Modelo Relacional: usa um conjunto de tabelas
para representar os dados, compostas por linhas e
colunas.
Christiano Colen
51
Unipac - 2008
Modelos de Banco de Dados
Modelo de Rede
01 Ana da Silva Rua XXXX 01 Santa Maria

02 Antônio Souza Rua YYYY 02 Porto Alegre


Modelo Hierárquico

02 Antônio Souza Rua YYYY 01 Ana da Silva Rua XXXX

02 Porto Alegre 01 Santa Maria

Modelo Relacional
Cod Nome Endereço Cidade Codigo Nome
01 Ana da Silva Rua XXXXX 01 01 Santa Maria
02 Antônio Souza Rua YYYYY 02 02 Porto Alegre

Christiano Colen
52
Unipac - 2008
Linguagens de Banco de Dados
■ Dois tipos de linguagens:

– Específica para os esquemas de banco de dados


(Linguagens de Definição de Dados); e
– Para expressar consultas e atualizações
(Linguagem de Manipulação de Dados).

Christiano Colen
53
Unipac - 2008
Linguagens de Banco de Dados
■ Linguagem de Definição de Dados
(Data Definition Language - DDL)
“Linguagem que define as aplicações, arquivos e
campos que irão compor o banco de dados
(comandos de criação e atualização da estrutura dos
campos dos arquivos).”
Exemplo:
Create Table (comando SQL que cria tabela)
Create Index (comando SQL que cria índice em uma
tabela)
Christiano Colen
54
Unipac - 2008
Linguagens de Banco de Dados
■ Linguagem de Manipulação de Dados
(Data Manipulation Language - DML)

“Linguagem que permite aos usuários acessar ou


manipular dados organizados por um modelo
de dados apropriado.”

Christiano Colen
55
Unipac - 2008
Linguagens de Banco de Dados
■ Linguagem de Manipulação de Dados
(Data Manipulation Language - DML)

Manipulação de Dados
– Recuperação da informação armazenada no banco de
dados.
– Inserção de novas informações no banco de dados.
– Remoção de informações do banco de dados; e
– Modificação de informações do banco de dados.
Christiano Colen
56
Unipac - 2008
Linguagens de Banco de Dados
■ Linguagem de Manipulação de Dados
(Data Manipulation Language - DML)
Tipos:
– Procedimental ou Procedural: especificação de
quais dados são desejados e como chegar até eles
(EX: Álgebra Relacional).
– Não-Procedimental ou Não-Procedural:
especificação de quais dados são desejados, sem
especificar como chegar até eles (EX: Cálculo
Relacional). Christiano Colen
57
Unipac - 2008
Estrutura Geral de um SGBD
■ Alguns Componentes Funcionais de um SGBD:
– Compilador DML: traduz os comandos DML da
linguagem de consulta em instruções de baixo nível;
– Componentes para o tratamento de consultas:
executam as instruções de baixo nível geradas pelo
compilador DML;
– Interpretador DDL: converte comandos DDL em um
conjunto de tabelas contendo metadados, que são
armazenados no Dicionário de Dados;
Christiano Colen
58
Unipac - 2008
Estrutura Geral de um SGBD
■ Alguns Componentes Funcionais de um
SGBD:
– Gerenciador de autorizações e integridade: testa o
cumprimento das regras de integridade e a
permissão ao usuário no acesso ao dado;
– Gerenciador de transações: garante a consistência
dos dados, independente de falhas do sistema;
– Gerenciador de arquivos: gerencia a alocação de
espaço de armazenamento e estruturas de dados
usadas para representação.
Christiano Colen
59
Unipac - 2008
Estrutura Geral de um SGBD
■ Algumas Estruturas de Dados de um SGBD:
– Arquivo de Dados: armazena o próprio banco de
dados (os dados);
– Dicionário de Dados: armazena informações sobre a
estrutura do banco de dados.
– Índices: proporcionam acesso rápido aos itens de
dados com valores específicos.

Christiano Colen
60
Unipac - 2008

Potrebbero piacerti anche