Você está na página 1de 33

Bancos de Dados I

Parte I

Francisco Alves Carneiro


Faculdade Integrada do Ceará
FIC
alvesfa@fic.br

 Francisco Alves Carneiro Banco de Dados 1


Sumário

F ü 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

 Francisco Alves Carneiro 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
§ Definir e manter seus próprios dados
Programa 1 Programa 2 Programa 3

Descrição Descrição Descrição


de dados de dados de dados

Arquivo A

Arquivo B

Arquivo C

 Francisco Alves Carneiro 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

 Francisco Alves Carneiro 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
implicar 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
 Francisco Alves Carneiro 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 Dados
Sistema de Banco de Dados
•Conjunto de dados inter-relacionados (banco de dados)
•Componente de software (SGBD) Tornar
Tornartransparente
transparentecomo
comoos
osdados
dadossão
são
•Acesso e modificação dos dados armazenados e gerenciados
armazenados e gerenciados
• Garantir uma visão abstrata dos dados
 Francisco Alves Carneiro 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
 Francisco Alves Carneiro 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 Conceitual DBMS


Camada
Conceitual

Camada Esquema Interno


Interna (Física) (Banco de Dados armazenado)
 Francisco Alves Carneiro 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
§ seqüencial-indexado, hashing, seqüencial, 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
 Francisco Alves Carneiro 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
§ 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

 Francisco Alves Carneiro 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

 Francisco Alves Carneiro 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

 Francisco Alves Carneiro 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 (compilados) 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
(matr integer not null,
nome varchar(35),
salário real,
primary key(matr))
 Francisco Alves Carneiro 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 DML
Procedural
Procedural
§ Exemplo (SQL) --requer
requeraaespecificação
especificaçãode
dequais
quais dados
dados
§ select nome devem
devem ser acessados e como devemser
ser acessados e como devem ser
§ acessados
from Empregado Nonprocedural
acessados
§ where salario > 7000Nonprocedural
- requer somente a especificação de quais
- requer somente a especificação de quais
§ Inserções em uma tabela dados
dados devem
devemser
seracessados
acessados
§ Exemplo (SQL)
§ insert into Empregado values(123, “Bárbara”, 5000.00)
§ Remoções em uma tabela
§ Exemplo (SQL)
§ delete from Empregado
§ where matr=14
§ Atualizar valores de atributos de uma tabela
§ Exemplo (SQL)
§ update Empregado set salário=salário∗1.15
§ where salário<1500.00

 Francisco Alves Carneiro 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

 Francisco Alves Carneiro 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 para 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
 Francisco Alves Carneiro 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 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

 Francisco Alves Carneiro 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
DBMS

Código Objeto Arquivos DB


aplicativos índices Catálogo
de dados
DBS
 Francisco Alves Carneiro 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

 Francisco Alves Carneiro 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

 Francisco Alves Carneiro Banco de Dados 20


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

Conjunto
Conjuntode deferramentas
ferramentasconceituais
conceituaispara
paradescrever
descreverdados,
dados,
seus
seusrelacionamentos,
relacionamentos,sua
suasemântica
semânticaeerestrições
restriçõesde
deconsistência
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

 Francisco Alves Carneiro 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
 Francisco Alves Carneiro 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

 Francisco Alves Carneiro 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
 Francisco Alves Carneiro Banco de Dados 24
Introdução aos Sistemas de Bancos de Dados
- Classificação de Sistemas de Bancos de Dados -
Ø Classificação de SBDs - Arquitetura
§ Sistema de Banco de Dados Centralizados
§ Os componentes do SBD residem no mesmo host
§ Sistema de Banco de Dados Cliente-Servidor
§ Distribuição de funções do SGBD entre clientes e servidor
§ Sistema de Banco de Dados Paralelos
§ Distribuição do controle de funções do DBMS entre diversos
sistemas computacionais
§ Sistema de Banco de Dados Distribuídos
§ Distribuição de dados através de diversos SBDs homogêneos
§ Sistema de Banco de Dados Heterogêneos
§ Distribuição de dados através de SBDs heterogêneos e
§ autônomos
§ Sistema de banco de dados múltiplos (MDBS)
§ Sistema de banco de dados federados
§ Sistema de Banco de Dados Móvel
§ Distribuição de funções do SGBD entre clientes e servidor em
ambientes de computação móvel
 Francisco Alves Carneiro Banco de Dados 25
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

 Francisco Alves Carneiro 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
§ DBMS precisa monitorar e controlar a execução
§ concorrente de programas
§ Controle de Concorrência

 Francisco Alves Carneiro Banco de Dados 27


Sumário
Ø Introdução aos Sistemas de Banco de Dados

F Ø 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

 Francisco Alves Carneiro Banco de Dados 28


2. Modelo Entidade-Relacionamento
- Conceitos Básicos -
Ø Modelo de dados MER
§ Não é implementado por nenhum SBD
§ Utilizado como modelo conceitual para projeto de BDs
§ Ferramenta para a modelagem de BDs
§ Proposto por P. Chen em 1976
§ Princípio básico
§ Representar dados através
§ Entidades
§ Relacionamentos entre as entidades
§ Atributos
§ Propriedades de entidades ou relacionamentos

 Francisco Alves Carneiro Banco de Dados 29


2. Modelo Entidade-Relacionamento
- Conceitos Básicos -
§ Entidade
§ Representação abstrata de um objeto do mundo real
§ Exemplos de entidades do mundo real
§ Objeto concreto
§ Um empregado, um carro, um estudante
§ Objeto abstrato
§ Uma empresa, uma conta bancária, uma disciplina
§ Conjunto de entidades (tipo de entidade)
§ Entidades que apresentam características semelhantes
§ Exemplo
§ Estudantes, Empregados, Contas

 Francisco Alves Carneiro Banco de Dados 30


2. Modelo Entidade-Relacionamento
- Conceitos Básicos -
§ Atributos de uma entidade
§ Propriedades que caracterizam uma entidade
§ Exemplos
§ Atributos de empregados
§ matrícula, nome, endereço, rg, cpf, data-nasc, salário,
lotação, data-admissão
§ Atributos de estudantes
§ matrícula, nome, curso, rg, cpf, data-ingresso
§ Conjunto de entidades
§ Grupo de entidades que apresentam mesmo conjunto
de atributos
§ A cada atributo de uma entidade deve estar associado um
valor

 Francisco Alves Carneiro Banco de Dados 31


2. Modelo Entidade-Relacionamento
- Conceitos Básicos -
§ Atributos de uma entidade (cont.)
§ Um atributo pode ser ainda definido como
§ Uma função que associa um elemento do conjunto de
entidades a um elemento de um conjunto de valores do
atributo (domínio do atributo)
λ
λ
Conjunto
λ λ de matrículas
Empregados matrícula
13 ∀E
∀Ei∈ Empregados
i∈ Empregados
λ
λ
Nome:
Nome:EEi iξξ∧∧nnkk,,onde
onde
λ λ λ
nnk∈∈conjunto
conjuntonomes
nomes
Bárbara k
λ λ λ nome
λ
λ
λ λ
Conjunto
λ de nomes
λ

λ
λ
Conjunto
endereço λ
λ
de endereços
λ
R. X, 9
 Francisco Alves Carneiro Banco de Dados 32
2. Modelo Entidade-Relacionamento
- Conceitos Básicos -
§ Atributos de uma entidade (cont.)
§ Atributos chave de uma entidade
§ Conjunto de atributos que identificam univocamente
uma entidade
§ Seja f um atributo chave para um conjunto de entidades
D, x∈D e f(x)=v, então
§ ∀d∈D e d≠x, f(d)≠v
§ Exemplo
§ Matrícula é atributo chave para Estudante
§ Tipos de atributos
endereço
§ Atributo atômico
§ Atributo que não pode ser subdividido
§ Atributo composto local cep cidade
§ Atributo formado por vários atributos
rua número

 Francisco Alves Carneiro Banco de Dados 33