Você está na página 1de 26

Banco de Dados

Prof. Fernando Rodrigues de Almeida Júnior


UFC – Universidade Federal do Ceará

Curso: Engenharia da Computação


e-mail: fernandorodrigues@sobral.ufc.br

 Fernando R. de A. Júnior Banco de Dados 1


Sumário

 ❑ Introdução aos Sistemas de Banco de Dados


❑ Modelo de Entidades e Relacionamentos
❑ Bancos de Dados Relacionais
➥O Modelo Relacional

➥Modelagem de Dados

➥Álgebra Relacional

➥Linguagem de Manipulação e Consulta


❑ Projeto de Bancos de Dados Relacionais
❑ Projeto Lógico de Bancos de Dados
 Fernando R. de A. Júnior Banco de Dados 2
Introdução aos Sistemas de Bancos de Dados
- Histórico -
❑ Processamento de arquivo (anos 60 e 70)
➥Paradigma de processamento de dados
➫ Cada aplicação deve Definir e manter seus próprios dados

Programa 1 Programa 2 Programa 3


Descrição
Descrição de dados Descrição
de dados de dados

Arquivo A

Arquivo B

Arquivo C

 Fernando R. de A. Júnior Banco de Dados 3


Introdução aos Sistemas de Bancos de Dados
- Histórico -
❑ Dados em Arquivos

 Redundância e inconsistência
 Dificuldade de acesso aos dados
 Isolamento dos dados
 Problemas de integridade
 Problemas de atomicidade
 Anomalias de acesso concorrente
 Problemas de segurança

 Fernando R. de A. Júnior Banco de Dados 4


Introdução aos Sistemas de Bancos de Dados
❑ Tecnologia de banco de dados

➥Definição e gerenciamento centralizado de dados


➫ Independência de dados
➱ Alteração na organização lógica ou física dos dados

não implica na alteração de programas


➫ Eliminar redundância de dados

➱ Eliminar inconsistência de dados

➫ Facilitar acesso a dados através de uma linguagem de

consulta
➫ Evitar inconsistências produzidas pelo acesso

concorrente
➫ Recuperar estado consistente dos dados após

situação de falha
 Fernando R. de A. Júnior Banco de Dados 5
Introdução aos Sistemas de Bancos de Dados
❑ Tecnologia de banco de dados
Programa 1 Programa 2 Programa 3

Descrição
de Dados

Banco de
Sistema de Banco de Dados Dados
•Conjunto de dados inter-relacionados (banco de dados)
•Componente de software (SGBD) Tornar transparente como os dados são
•Acesso e modificação dos dados armazenados e gerenciados
➫ Garantir uma visão abstrata dos dados
 Fernando R. de A. Júnior Banco de Dados 6
Introdução aos Sistemas de Bancos de Dados
- Abstração de Dados -

Sistemas
Usuário tem uma
de
visão abstrata dos
Bancos
dados
de Dados

❑ Nível físico: descreve como os dados são armazenados


❑ Nível lógico: descreve quais dados são armazenados e
os relacionamentos entre eles
❑ Nível de visualização: descreve partes de interesse
do usuário/aplicação
 Fernando R. de A. Júnior Banco de Dados 7
Introdução aos Sistemas de Bancos de Dados
- Arquitetura em Três Camadas -

Esquema Esquema Esquema


Externo 1 Externo 2 Externo n
Camada Externa

Esquema SGBD
Conceitual

Camada Conceitual

Esquema Interno
Camada Interna (Física) (Banco de Dados armazenado)
 Fernando R. de A. Júnior Banco de Dados 8
Introdução aos Sistemas de Bancos de Dados
- Arquitetura em Três Camadas -
❑ Esquema Interno - Camada Interna
➥Descreve como os dados estão fisicamente armazenados
➫ Exemplo

➱ Organização de arquivo
➧sequencial-indexado, hashing, sequencial, heap

➱ Alocação em disco

➧Contígua, lista encadeada, lista encadeada utilizando índice

➱ Tipo de registro

➧Fixo, variável

❑ Esquema Conceitual - Camada Conceitual


➥ Descreve quais dados estão armazenados no banco de dados
➥ Descreve os relacionamentos entre os dados armazenados
❑ Esquema Externo - Camada Externa
➥Descreve parte do banco de dados

➫ Simplificar a visão do usuário

➱ “Ver” só o que interessa


➫ Segurança
 Fernando R. de A. Júnior Banco de Dados 9
Introdução aos Sistemas de Bancos de Dados
- Ocorrências e Esquemas -
❑ Ocorrências (instâncias)
➥Coleção de informações armazenadas na base
➥Altamente mutáveis

❑ Esquemas (estâncias)
➥Projeto ou estrutura da base - definição
➥Um esquema para cada nível de abstração

➫ Esquema físico - nível interno

➫ Esquema lógico - nível conceitual

➫ Sub-esquemas ou esquemas de visualização -

nível externo

 Fernando R. de A. Júnior Banco de Dados 10


Introdução aos Sistemas de Bancos de Dados
- Independência dos Dados -

Habilidade de modificar
Habilidade de modificar
o esquema lógico sem
o esquema físico sem
causar redefinição dos
causar redefinição dos
programas de aplicação
programas de aplicação
Modificações são
Modificações são
necessárias quando a
necessárias para
estrutura lógica da
melhorar desempenho
base é alterada

 Fernando R. de A. Júnior Banco de Dados 11


Introdução aos Sistemas de Bancos de Dados
- Definição-
❑ Sistema de Bancos de Dados (SBD ou DBS)
➥Banco de Dados (BD ou DB)

☞Conjunto de dados relacionados

➥Sistema Gerenciador de Bancos de Dados (SGBD ou


DBMS)
☞Componente de software

➱ Acesso

➱ Controle de Concorrência

➱ Recuperação

➱ Armazenamento

 Fernando R. de A. Júnior Banco de Dados 12


Introdução aos Sistemas de Bancos de Dados
- Linguagem de Banco de Dados -
❑ Finalidade
➥Garantir a especificação do esquema de um banco de dados

➥Permitir consultas e atualizações sobre o banco de dados

❑ Componentes
➥ DDL - Data Description Language
➫ Utilizada para especificar o esquema de um BD
➱ Expressões da DDL
➧ Interpretadas (compiladas) gerando a especificação de um
conjunto de tabelas
➧ A especificação das tabelas é armazenada no catálogo do banco
de dados
➱ Exemplo (SQL)
➧ create table Empregado
(matricula integer not null,
nome varchar(35),
salario real,
primary key(matricula))
 Fernando R. de A. Júnior Banco de Dados 13
Introdução aos Sistemas de Bancos de Dados
- Linguagem de Banco de Dados -
❑ Componentes (cont.)
➥ DML - Data Manipulation Language
➫ Utilizada para permitir DML
➱ Consultas sobre um BD
Procedural
Exemplo (SQL)
➧ - requer a especificação de quais dados
select nome devem ser acessados e como devem ser
Nonprocedural
from Empregado - requer somente a especificação de quais
where salario > 7000 dados devem ser acessados
➱ Inserções em uma tabela

➧ Exemplo (SQL)

insert into Empregado values(123, “Bárbara”, 5000.00)


➱ Remoções em uma tabela

➧ Exemplo (SQL)
delete from Empregado
where matricula=14
➱ Atualizar valores de atributos de uma tabela
➧ Exemplo (SQL)
update Empregado set salário=salário1.15
where salario<5000.00
 Fernando R. de A. Júnior Banco de Dados 14
Introdução aos Sistemas de Bancos de Dados
- Definição-
☛SGBD
➲ Processador de Consultas + Sistema de Armazenamento
➬ Processador de Consultas
Compilador DML
➱ Analisa sintaticamente e semanticamente comandos DML
expressos em uma linguagem de consulta (ex. SQL)
➱ Traduz estes comandos para uma das formas de representação

interna de consultas (ex. álgebra relacional)


Pré-Compilador DML
➱ Traduz comandos DML em chamadas a procedimentos
(rotinas) na linguagem hospedeira
Interpretador DDL
➱ Interpreta comandos DDL e os armazena no catálogo
➧Tabelas contendo meta-dados

➧Descrição do banco de dados ➱ Esquema

Mecanismo de Consultas
➱ Responsável pela otimização e geração de planos de
execução de consultas
 Fernando R. de A. Júnior Banco de Dados 15
Introdução aos Sistemas de Bancos de Dados
- Definição-
☛ SGBD
➲ Sistema de Armazenamento
➬ Gerenciador de Transações

Controle de concorrência

Recuperação do banco de dados após falhas
Gerenciador de Buffer
➱Responsável por recuperar objetos em disco e carregá-los
na memória principal em forma de páginas
SGBD possui uma área de buffer em memória principal

➧Mapeamento: Bloco Página


(disco) (buffer do SGBD)
➧Definição da política de alocação do buffer

➱ MRU, LRU, FIFO, etc


Gerenciador de Arquivo (File System)
➱ Responsável pelo armazenamento físico em disco
➱ Gerencia a alocação de espaço em disco

 Fernando R. de A. Júnior Banco de Dados 16


Introdução aos Sistemas de Bancos de Dados
- Definição-
☛ BD
➲ Arquivos de dados + Índices + Catálogo
➬ Arquivos de dados
➫ Armazena os dados
➬ Índices
➫ Estruturas de índices para os arquivos de dados

➬ Catálogo
➫ Armazena o esquema do banco de dados (meta-dados)
➱ Nomes das tabelas

➱ Atributos de cada tabela

➱ Definição de índice para uma tabela, etc…

➫ Armazena informações estatísticas

➱ Exemplo:
➧ Cardinalidade de uma tabela

➱ Utilizadas na otimização de consultas

 Fernando R. de A. Júnior Banco de Dados 17


Introdução aos Sistemas de Bancos de Dados
- Arquitetura de SGBD’s-
Programadores Usuário experiente DBA

Programa Aplicativo Consulta Esquema

Pre-compilador Compilador Interpretador


DML DML
DDL
Processador
de Consultas
Mecanismo
de Consultas

Gerenciador Gerenciador
de Buffer de Transações
Sistema de
Armazenamento
Gerenciador
de Arquivo
SGBD

Código Objeto BD
aplicativos índices Arquivos Catálogo
de dados
SBD
 Fernando R. de A. Júnior Banco de Dados 18
Introdução aos Sistemas de Bancos de Dados
- O Administrador de Bancos de Dados (DBA) -

❑ Definição do esquema conceitual

❑ Definição dos métodos de acesso e


estruturas de armazenamento
❑ Manutenção do esquema e da organização
física dos dados
❑ Definição da política de acesso aos dados

❑ Especificação de restrições de integridade

 Fernando R. de A. Júnior Banco de Dados 19


Introdução aos Sistemas de Bancos de Dados
- Usuários de Bancos de Dados -

❑ Programadores de aplicação

❑ Usuários sofisticados

❑ Usuários especializados em aplicações


não- convencionais

❑ Usuários de programas de aplicação

 Fernando R. de A. Júnior Banco de Dados 20


Introdução aos Sistemas de Bancos de Dados
- Modelo de Dados-

Conjunto de ferramentas conceituais para descrever dados,


seus relacionamentos, sua semântica e restrições de consistência

❑ Modelos lógicos baseados em objetos

➥ Modelo entidade-relacionamento

➥ Modelo orientado a objeto


❑ Modelos lógicos baseados em registros
➥ Modelo relacional

➥ Modelo Codasyl (rede)

➥ Modelo hierárquico
❑ Modelos físicos de dados

 Fernando R. de A. Júnior Banco de Dados 21


Introdução aos Sistemas de Bancos de Dados
- Modelo de Dados-
❑ Um modelo de dados é definido por três componentes
Uma coleção de tipos de estrutura de dados

➫ blocos de construção do banco de dados

➋ Uma coleção de operadores


➫ Podem ser aplicados a qualquer instância dos tipos de
dados definidos em 1
➌ Uma coleção de regras de integridade
➫ Definem o conjunto de estados consistentes do banco
de dados
➫ Definem o conjunto de transições consistentes de
estado do banco de dados
❑ Representar dados do mundo real
➥Capturar a semântica e incorporá-la em um banco de

dados
➥Exemplo:
➫ Através do modelo relacional, representar os
dados de uma universidade
 Fernando R. de A. Júnior Banco de Dados 22
Introdução aos Sistemas de Bancos de Dados
- Classificação de Sistemas de Bancos de Dados -
❑ Classificação de SBDs - Modelo de Dados
➥ Sistema de Banco de Dados Relacional
➫ Modelo Relacional

➱ Tipo primitivo de dados

➧Relação (tabela)

- Conjunto de tuplas (linhas)


➱ Conjunto de Operadores

➧Álgebra Relacional

➧Cálculo Relacional

➱ Restrições de integridade

➧Integridade de chave primária

➧Integridade referencial

 Fernando R. de A. Júnior Banco de Dados 23


Introdução aos Sistemas de Bancos de Dados
- Classificação de Sistemas de Bancos de Dados -
❑ Classificação de SBDs - Modelo de Dados
➥Sistema de Banco de Dados Orientado a Objeto
➫ Modelo orientado a objeto

➱ Tipos primitivos

➧Objeto, conjunto, lista, string, integer, real

➱ Restrições de integridade

➧Unicidade de objeto e identidade de objeto

➧Hierarquia de classes

➧Herança

- Uma classe herda as propriedades da superclasse


➧Comportamento de objetos de uma classe

- Método
➥Sistema de Banco de Dados Objeto-Relacional

➫ Modelo relacional + Modelo OO

 Fernando R. de A. Júnior Banco de Dados 24


Introdução aos Sistemas de Bancos de Dados
- Gerenciamento de Transações -

Coleção de operações que realizam uma única


função lógica em uma aplicação de banco de dados

❑ Controle de acesso concorrente

➥Isolamento entre transações concorrentes

❑ Tolerância a falhas
➥Atomicidade das operações

➥Persistência dos resultados das transações bem


sucedidas
 Fernando R. de A. Júnior Banco de Dados 26
Introdução aos Sistemas de Bancos de Dados
- Controle de Concorrência -
❑ Concorrência em um ambiente multiusuário
➥Entrelaçamento (interleaving) de operações

➥Operações de um programa podem ser executadas


entre duas operações de outro programa
➥Alterações inconsistentes no banco de dados

➥SGBD precisa monitorar e controlar a execução


concorrente de programas
➫ Controle de Concorrência

 Fernando R. de A. Júnior Banco de Dados 27

Você também pode gostar