Você está na página 1de 63

Banco de Dados

Prof. Gustavo Willam Pereira

1
Introdução a Banco de Dados
 - EMENTA –
 – Conceitos em Sistemas de Banco de Dados.
 – Modelo Entidade-Relacionamento Estendido.
 – Modelo relacional. Álgebra relacional. Linguagem
 de consulta SQL.
 – Restrições de integridade. Dependência funcional.
 Triggers.
 – Projeto de banco de dados relacional. Normalização.
 – Estruturas de arquivos e meios de armazenamento.
 Indexação e Hashing.
 – Processamento de consultas. Transformações de
 expressões relacionais.
 – Transações ACID. Teoria da serializabilidade.
 – Controle de concorrência. Recuperação. Segurança.
 – Novas tecnologias. Bancos de dados objetorelacional.
 Bancos de dados orientados a objetos.

2
Introdução
 • Uso inicial dos computadores
 processamento de dados numéricos
 processamento serial
 linguagens de programação de baixo nível
 ênfase no algoritmo (fluxograma)
 dados internos ao programa

3
Introdução
 • Evolução do hardware e do software
 processamento de dados alfanuméricos
 linguagens de programação de alto nível
 grande volume de dados
 sistema de arquivos
 dados ainda cativos dos programas
 economia de tempo e memória
 usuários “on line” e “batch”

4
Introdução
 • Bancos de dados
 autonomia dos dados em relação aos
programas
 segurança de dados
 compartilhamento
 consultas complexas
 ênfase nos dados
 • BD Não Convencionais

5
Conceitos Básicos em Banco
de Dados
 • Principais Conceitos
 Banco de Dados (BD)
 Sistema de Gerência de Banco de Dados
(SGBD)
 Sistema de Banco de Dados (SBD)
 Projeto de Banco de Dados
 Modelos de Dados

6
Definindo Banco de Dados
(BD)

 “Um banco de dados é um conjunto de arquivos


relacionados entre si” (Chu, 1983)
 “Um banco de dados é uma coleção de dados

operacionais armazenados, sendo usados pelos


sistemas de aplicação de uma determinada
organização” (Date, 1985)
 “Um banco de dados é uma coleção de dados

relacionados” (Elmasri e Navathe, 1989)

7
Banco de Dados (BD)
 Um Banco de Dados é um modelo (representação)
de uma parte da realidade (mini-mundo).

 Um BD é projetado, construído e povoado com


dados para um propósito específico.

 Existe um conjunto de usuários e um conjunto de


aplicações utilizadas pelos usuários.

 Um BD pode ser gerado e mantido manualmente ou


através de um computador.
– ex.: fichas de publicações em uma biblioteca

8
Banco de Dados (BD)
 O BD contém informações que circulam pela
aplicação além de abstrações de elementos da
própria aplicação.
 – Ex.: Um BD para uma aplicação de distribuição de
energia elétrica armazena informação sobre consumo
mensal como também a descrição de cada
consumidor.

 O BD deve também respeitar, a cada instante, as


leis (regras, regulamentos, normas) da aplicação.
 – Ex.: Um BD para uma aplicação bancária não deve
permitir que uma conta-poupança fique com saldo
negativo.

9
SGBD
 • Sistema de Gerenciamento de Banco de Dados
(SGBD) é uma coleção de programas que permite
aos usuários criar e manter um banco de dados.
 • SGBD é um software de propósito geral que facilita

o processo de definição, construção e manipulação


do BD para várias aplicações.

10
SGBD
 Definição do BD:

• Especificação e descrição detalhada dos tipos,


estruturas e restrições dos dados a serem armazenados
no BD.

 Construção do BD:
• Processo de carga inicial dos dados em um meio de
armazenamento controlado pelo SGBD.

 Manipulação do BD:
• Execução de operações de consulta e recuperação de
dados.
• Atualização de dados para refletir as mudanças no
mini-mundo.
• Geração de relatórios a partir dos dados do BD.

11
Programa de Aplicação
 • Realiza as funções da aplicação.
 – Ex: cálculo do consumo mensal de energia elétrica,
a partir dos dados de leitura dos medidores.
 • Garante as restrição de integridade (RI) que não

podem ser controladas pelo SGBD.


 • Implementa interface e relatórios específicos.

 – Ex: Emissão de extrato de consumo.

 • Acessa o BD através do SGBD para consulta e

atualização dos dados da aplicação.

12
Programa de Aplicação

13
Sistema de Banco de Dados
(SBD)
 • Sistema de software composto pelos
programas de aplicação, pelo SGBD e
pelo BD, para um determinado conjunto
de aplicações.

14
Sistema de Banco de Dados
(SBD)

15
Sistema de Banco de Dados
(SBD)
 Vantagens do uso de SBD
 Diminui a redundância dos dados.
 Padroniza a definição e o acesso aos dados, através
da DDL (linguagem de definição de dados) e da
DML (linguagem de manipulação de dados).
 Assegura independência física dos dados.
 Garante independência lógica dos dados.
 Garante a consistência dos dados em caso de falhas
de hardware ou software (S.O., SGBD, programas
de aplicação).

16
Sistema de Banco de Dados
(SBD)
 Garante a consistência dos dados em ambiente
multiusuário, onde mais de um programa pode
acessar, de forma concorrente, os mesmos dados.
 Auxilia na manutenção das restrições de integridade
da aplicação, evitando que testes de consistência
sejam repetidos em programas de aplicação.
 O usuário tem uma visão abstrata dos dados, onde
detalhes do meio de armazenamento são escondidos.

17
Sistema de Banco de Dados
(SBD)

18
Independência de Dados
 Independência lógica de dados
 modificações na definição dos dados (esquema
lógico), na maioria das vezes, não afetam os
programas de aplicação.
 capacidade de mudar o esquema lógico sem
necessidade de modificar programas de aplicação e
esquemas externos.
 apenas definição de visões e mapeamentos devem
ser alterados.
 Exemplo:
 acrescentar um campo a um registro
 acrescentar uma definição de tipo de registro

19
Independência de Dados
 Independência física de dados
 alterações em estruturas de armazenamento
(esquema físico/interno) não afetam os
programas de aplicação.
 capacidade de mudar o esquema interno sem
necessidade de alterar o esquema lógico (ou
externos)
 Exemplo:
 reorganização física de arquivos
 criação de estruturas de acesso adicionais

20
Sistema de Banco de Dados
(SBD)
 O que se espera de um SBD:
 Compartilhamento de dados por aplicações
diversas
 Controle de autorização de acesso a dados
 Redundância de dados controlada
 evita duplicação de esforços
 reduz espaço de armazenamento

21
Sistema de Banco de Dados
(SBD)
 O que se espera de um SBD (Cont.)
 Acesso a dados através de diferentes interfaces
 Modelagem de relacionamentos complexos entre
dados
 Garantia de restrições de integridade da aplicação
 Garantia de consistência física dos dados
 Transações devem seguir as propriedades ACID
 Atomicidade, Consistência, Isolamento e Durabilidade

22
Sistema de Banco de Dados
(SBD)
 O que se espera de um SBD (Cont.)
 Existência de mecanismos de reconstrução
 Potencial para imposição de padrões (modelagem
e programação)
 Flexibilidade para definir e alterar a definição dos
dados
 Redução do tempo de desenvolvimento de
aplicações
 Desvantagens do uso de SGBD
 Overhead para prover segurança, controle de
concorrência, recuperação e funções de integridade.

23
Sistema de Banco de Dados
(SBD)
 Usuários do SBD: Atores e Papéis
 Administrador do Banco de Dados (DBA):
Responsável pelos esquemas físico e lógico
do BD. Gerencia o controle de acesso aos
dados. Monitora a performance do SBD.
 Projetista de Banco de Dados (DB Designer)
Identifica os requisitos da aplicação e com
auxílio do usuário, cria o modelo conceitual
do BD. Junto com o DBA, estende e modifica
o modelo lógico.

24
Sistema de Banco de Dados
(SBD)
 Usuários do SBD: Atores e Papéis
 Analista/Programador de Aplicação (Analista de Sistemas)
Define e projeta a informatização da aplicação,
incluindo seu conjunto de programas. Usa os
esquemas conceitual e lógico do BD.
 Usuário Final
 Ocasional - acessa ocasionalmente o SBD, mas pode necessitar
de diferentes informações por vez. Escreve suas consultas
diretamente em linguagem de consulta.
 Comum - acessa o BD para incluir novos dados e consultar
dados armazenados através de procedimentos padrão. Ex.
caixa de banco

25
Projeto de Banco de Dados
 Objetivo:
 Trabalho de engenharia para modelar e
definir a estrutura de um banco de dados
que satisfaça as necessidades de
informação dos usuários de uma
organização, tendo em vista um conjunto
específico de aplicações a serem
desenvolvidas.

26
Projeto de Banco de Dados
 • Características Básicas:
 – Complexidade
 Requer a divisão do problema em sub-
partes.
 – Multiplicidade de Tarefas
 Requer a utilização de uma metodologia de
projeto.

27
28
29
Modelo de Dados
 Modelo de Dados
 Conjunto de ferramentas conceituais usadas para
a descrição dos dados, relacionamentos entre os
dados e regras de consistência.
 Representa:
 tipos de dados
 relacionamentos
 restrições que devem ser mantidas sobre os dados

30
Modelo de Dados
 Vários modelos que vêm sendo
desenvolvidos são classificados em três
diferentes grupos:
 Modelos lógicos com base em objetos
 Modelos lógicos com base em registros
 Modelos físicos

31
Modelos de Dados
 Modelos lógicos com base em objetos
 São usados na descrição dos dados no nível lógico
e de visões.
 São caracterizados por dispor de recursos de
estruturação bem mais flexíveis e por viabilizar a
especificação explícita das restrições dos dados
 Existem vários modelos nessa categoria
 Modelo Entidade Relacionamento
 Modelo Orientado a Objetos

32
Modelo
Entidade-Relacionamento
 Tem por base a percepção do mundo real
como um conjunto de objetos básicos,
chamados de entidades e do relacionamento
entre eles.
 Um entidade é uma “coisa” ou um “objeto”
do mundo real que pode ser identificado por
outros objetos.
 Ex: cada pessoa é uma entidade
 As contas dos clientes de um banco também
podem ser consideradas como entidades

33
Modelo
Entidade-Relacionamento
 As entidades são descritas no banco por meio
de seus atributos.
 Um relacionamento é uma associação entre
entidades.
 Ex: um relacionamento depositante associa um
cliente a cada conta que ele possui.
 Alem das entidades dos relacionamentos, o
modelo E-R representa certas regras, as
quais o conteúdo do banco precisa respeitar
34
Modelo
Entidade-Relacionamento
 Um regra importante é o mapeamento das
cardinalidades, as quais expressam o número
de entidades às quais as outras entidade se
relaciona por meio daquele conjunto de
relacionamentos.
 Toda a estrutura lógica do BD pode ser
expressa graficamente por meio do diagrama
E-R, cujos construtores dos seguintes
componentes são:
35
Modelo
Entidade-Relacionamento
 Retângulos:
 Representam os conjuntos de entidades
 Elipses
 Representam os atributos
 Losangos
 Representam os relacionamentos entre os
conjuntos de entidades
 Linhas
 Unem os atributos aos conjuntos de entidades e o
conjunto de entidades aos seus relacionamentos

36
Modelo
Entidade-Relacionamento
 Para ilustrar, considere parte de um sistema
de banco de dados de uma instituição
bancária, consistindo em clientes e contas
que eles possuem. O diagrama ER
correspondente é mostrado na figura abaixo.

37
Modelo
Orientado a Objetos
 Tem por base um conjunto de objetos
 Um objeto contem valores armazenados em
variáveis instâncias dentro do objeto.
 Um objeto também contem conjuntos de
códigos que operam esses objetos
 Esses conjuntos de códigos são chamados de
métodos.
 Os objetos que contém os mesmos tipos de
valores e os mesmos métodos são agrupados
em classes.

38
Modelos
Lógicos com Base em Registros
 São assim chamados porque o BD é
estruturado por meio de registros de formato
fixo de todos os tipos
 Cada registro define um número fixo de
campos e atributos e cada campo possui
normalmente tamanho fixo
 Os três modelos de dados com base em
registros mais utilizados são:
 Modelo Relacional
 Modelo de Rede
 Modelo Hierárquico
39
Modelo Relacional
 Utiliza um conjunto de tabelas para
representar tanto os dados como a
relação entre eles
 Cada tabela possui múltiplas colunas e
cada uma possui um único nome.

40
Modelo Relacional

41
Modelo de Rede
 São representados por um conjunto de
registros
 As relações entre estes registros são
representadas por links (ligações), as
quais podem ser vistas pelos ponteiros

42
Modelo de Rede

43
Modelo Hierárquico
 Similar ao modelo de rede, pois os dados e
suas relações são representados por registros
e links.
 A diferença e que no modelo hierárquico os
registros estão organizados em árvores.

44
Modelo Hierárquico

45
Esquema e Instância
 Os bancos de dados mudam através do
tempo à medida que informações são
inseridas ou apagadas.
 A coleção de informações armazenadas no
banco de dados em um determinado
momento é chamada de instância do banco
de dados.
 O projeto geral do banco de dados é
chamado de esquema de banco de dados.
Os esquemas não mudam com freqüência.
46
Esquema e Instância
 Uma analogia com os conceitos de tipos de
dados, variáveis e valores nas linguagens de
programação é útil aqui.
 Voltamos à definição do tipo de registro
cliente:
type cliente = record
nome: string;
rua: string;
cidade: string;
end;
47
Esquema e Instância
 Note que declarando o tipo cliente, não declaramos
nenhuma variável.
 Para declarar tais variáveis numa linguagem do tipo
Pascal, escrevemos:
 var cliente1: cliente;
 O conceito de um esquema de banco de dados
corresponde à noção de declaração de tipo em
linguagens de programação.
 Uma variável de um dado tipo tem um valor
particular em um determinado instante do tempo.
 Assim o conceito de valor de uma variável na
linguagem de programação corresponde ao conceito
de uma instância de um esquema de banco de
dados.
48
Esquema e Instância
 Os sistemas de bancos de dados possuem diversos
esquemas subdivididos de acordo com os níveis de
abstração discutidos anteriormente.
 No nível mais baixo, está o esquema físico;
 No nível intermediário, o esquema conceitual
(lógico);
 No nível mais alto, um subesquema (visões).
 Em geral, os sistemas de bancos de dados suportam
um esquema físico, um esquema conceitual e
diversos subesquemas.

49
Esquema e Instância

50
Linguagem e Interface de BD

 Linguagens de Banco de Dados


 Um Sistema de Banco de Dados
proporciona dois tipos de linguagens:
 Linguagem de definição de dados - DDL
 Usada pelo DBA para definir o esquema lógico.
 Linguagem de manipulação de dados - DML
 Usada para popular e alterar o BD.

51
Linguagem de Definição de
Dados (DDL)
 O esquema de dados é especificado por um
conjunto de definições expressas por uma
linguagem chamada DDL (Data-Definition
Languagem)
 O resultado da compilação dos parâmetros
DDLs é armazenado em um conjunto de
tabelas que constituem um arquivo especial
chamado dicionário de dados ou diretório de
dados
52
Linguagem de Definição de
Dados (DDL)
 Um dicionário de dados é um arquivo
de metadados – isto é, dados a respeito
de dados
 Em um sistema de banco de dados,
esse arquivo é consultado antes que o
dado real seja modificado.

53
Linguagem de Manipulação
dos Dados (DML)
 Por manipulação de dados entendemos:
 A recuperação das informações
armazenadas no banco de dados
 Inserção de novas informações no banco
de dados
 A remoção de informações do banco de
dados
 A modificação das informações do banco
de dados

54
Linguagem de Manipulação
dos Dados (DML)
 A linguagem de manipulação de dados
(Data Manipulation Language, DML) é a
linguagem que permite aos usuários fazer o
acesso aos dados ou manipulá-los, conforme
modelo de dados apropriado. Existem
basicamente dois tipos:
 DMLs procedurais requerem do usuário a
especificação de qual dado é necessário e de
como obtê-lo;
 DMLs não-procedurais requerem do usuário a
especificação de qual dado é necessário sem
especificar como obtê-lo.

55
Linguagem de Manipulação
dos Dados (DML)
 DMLs não-procedurais são usualmente mais
fáceis de aprender e usar do que DMLs
procedurais.
 Entretanto, se um usuário não necessita
especificar como obter os dados, estas
linguagens podem gerar código não tão
eficiente como o produzido por linguagens
procedurais.
 Esta dificuldade pode ser remediada por meio
de várias técnicas de otimização.
56
Linguagem de Manipulação
dos Dados (DML)
 Uma consulta (query) é um comando
requisitando a busca de uma informação.
 A porção de uma DML que envolve busca de
informações é chamada linguagem de
consulta. Embora tecnicamente incorreto, é
comum utilizar os termos linguagem de
consulta e linguagem de manipulação
de dados como sinônimos.

57
Estrutura geral do sistema
 Um sistema de banco de dados é dividido em
módulos que tratam de cada uma das
responsabilidades do sistema geral.
 Na maioria dos casos, o sistema operacional
do computador fornece apenas os serviços
mais básicos e o sistema de banco de dados
precisa ser construído sobre essa base.
 Portanto, o projeto do sistema de banco de
dados precisa incluir considerações sobre a
interface entre o sistema de banco de dados
e o sistema operacional.
58
Estrutura geral do sistema
 Os componentes funcionais de um sistema de
banco de dados incluem:
 Gerenciador de arquivos, que gerencia a
alocação do espaço na armazenagem do disco e
as estruturas de dados usadas para representar a
informação armazenada no disco.
 Gerenciador do banco de dados, que fornece a
interface entre os dados de baixo nível
armazenados no disco e os programas aplicativos
e de consulta submetidos ao sistema.

59
Estrutura geral do sistema
 Componentes funcionais de um sistema de
banco de dados:
 Processador de consultas, que traduz os
comandos numa linguagem de consulta para
instruções de baixo nível que o gerenciador do
banco de dados pode interpretar. Além disso, o
processador de consultas tenta transformar uma
requisição do usuário em uma forma compatível e
mais eficiente com respeito ao banco de dados,
encontrando uma boa estratégia para a executar a
consulta.

60
Estrutura geral do sistema
 Componentes funcionais de um sistema de
banco de dados:
 Pré-compilador da DML, que converte
comandos da DML embutidos em um aplicativo
para chamadas de procedimento normal na
linguagem hospedeira. O pré-compilador precisa
interagir com o processador de consultas pra
gerar o código apropriado.
 Compilador da DDL, que converte comandos da
DDL em um conjunto de tabelas contendo
metadados ou "dados sobre dados".

61
Estrutura geral do sistema
 Adicionalmente, diversas estruturas de dados são
requeridas como parte da implementação do sistema
físico, incluindo:
 Arquivos de dados, que armazenam o banco de dados
propriamente dito.
 Dicionário de dados, que armazena metadados sobre a
estrutura do banco de dados. O dicionário de dados é usado
com freqüência. Assim, deve-se dar grande ênfase no
desenvolvimento de um bom projeto e implementação
eficiente do dicionário.
 Índices, que fornecem acesso rápido aos itens de dados
guardando determinados valores.

62
63

Você também pode gostar