Aula 1 - Adriano Maranhão

Propaganda
SISTEMAS DE BANCO
DE DADOS
Prof. Adriano Pereira Maranhão
1
REVISÃO BANCO DE DADOS I

O que é banco de dados? Ou seja afinal o que
é um SGBD?
REVISÃO BD I
REVISÃO DE BD I

Um Sistema de Gerenciamento de Banco de Dados (SGBD) do inglês DBMS (Data Base Management System) - é o
conjunto de programas de computador (softwares)
responsáveis pelo gerenciamento de um(a) base de dados.
Seu principal objetivo é retirar da aplicação cliente a
responsabilidade de gerenciar o acesso, manipulação e
organização dos dados. O SGBD disponibiliza uma interface
para que seus clientes possam incluir, alterar ou consultar
dados previamente armazenados. Em bancos de dados
relacionais a interface é constituída pelas APIs (Application
Programming Interface) ou drivers do SGBD, que executam
comandos na linguagem SQL(Structured Query Language).
TIPOS DE SGBD
Hierárquico
 Rede
 Relacional
 Orientados a objeto

PROBLEMAS QUE UM SGBD DEVE SOLUCIONAR
Inconsistência e redundância de dados
 Dificuldade de acesso aos dados
 Isolamento de dados
 Problemas de integridade
 Problemas de atomicidade

TERMOS QUE DEVEM SER COMUNS APÓS BDI
Tupla
 Tabela
 Registro
 Célula
 Banco

SUMÁRIO



Introdução aos Sistemas de Banco de Dados SBD
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
8
INTRODUÇÃO AOS SBD - HISTÓRICO

Processamento de arquivo (anos 60 e 70)
 Paradigma
de processamento de dados
 Cada
aplicação define e mantêm seus próprios
dados
9
INTRODUÇÃO AOS SBD - 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
10
INTRODUÇÃO AOS SBD

Tecnologia de banco de dados
 Definição
e gerenciamento centralizado de dados
 Independência de dados
 Eliminar redundância de dados
 Facilitar acesso a dados através de uma
linguagem de consulta
 Evitar inconsistências produzidas pelo acesso
concorrente
 Recuperar estado consistente do dados após
situação de falha
11
INTRODUÇÃO AOS SBD

Tecnologia de banco de dados

Sistema de Banco de Dados
 Conjunto
de dados inter-relacionados (banco de
dados)
 Componente de software (SGBD)
 Acesso
 Garantir
e modificação dos dados
uma visão abstrata dos dados
12
INTRODUÇÃO AOS SBD – ABSTRAÇÃO DE
DADOS

Níveis de Abstração



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
13
SBD – ARQUITETURA EM TRÊS CAMADAS
14
SBD – ARQUITETURA EM TRÊS CAMADAS

Esquema Interno - Camada Interna
 Descreve
como os dados estão fisicamente
armazenados
 Exemplo
 Organização

seqüencial-indexado, hashing, seqüencial, heap
 Alocação

em disco
Contígua, lista encadeada, lista encadeada utilizando índice
 Tipo

de arquivo
de registro
Fixo, variável
15
SBD – ARQUITETURA EM TRÊS CAMADAS

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
16
SBD- 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
17
SBD – INDEPENDÊNCIA DE DADOS

Independência Física
 Habilidade
de modificar o esquema físico sem
causar redefinição dos programas de aplicação
 Modificações são necessárias para melhorar
desempenho

Independência Lógica
 Habilidade
de modificar o esquema lógico sem
causar redefinição dos programas de aplicação
 Modificações são necessárias quando a estrutura
lógica da base é alterada
18
SBD- 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

19
SBD – LINGUAGENS DE BD

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
20
SBD – LINGUAGENS DE BD

Componentes (cont.)

DML - Data Manipulation Language
 Utilizada

Consultas sobre um BD


Exemplo (SQL): insert into Empregado values(123, “Bárbara”,
5000.00)
Remoções em uma tabela


Exemplo (SQL): Select nome from Empregado
Inserções em uma tabela


para permitir
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
21
SBD - 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
22
SGBD- DEFINIÇÃO

SGBD- Processador de Consultas
 Interpretador
 Interpreta
DDL
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
23
SBD- 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(disco)  Página 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
24
SBD - DEFINIÇÃO

BD: Arquivos de dados + Índices + Catálogo

Arquivos de dados
 Armazena

Índices
 Estruturas

os dados
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
25
ARQUITETURA DE SGBD
26
SBD – ADMINISTRADOR DE BD (DBA)

Funções
 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
27
SBD- USUÁRIOS DE BD
Programadores de aplicação
 Usuários sofisticados
 Usuários especializados em aplicações não
convencionais
 Usuários de programas de aplicação

28
SBD- 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) e Modelo
hierárquico
Modelos físicos de dados
29
SBD- MODELO DE DADOS

Um modelo de dados é definido por três
componentes
1. Uma coleção de tipos de estrutura de dados
blocos de construção do banco de dados
 2. Uma coleção de operadores

 Podem
ser aplicados a qualquer instância dos tipos de dados
definidos em 1

3. 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
30
SBD- MODELO DE DADOS

Representa 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
31
SBD- MODELO DE DADOS

Sistema de Banco de Dados Relacional
 Modelo
 Tipo
Relacional
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

32
SBD- MODELO DE DADOS

Sistema de Banco de Dados Orientado a Objeto
 Modelo
 Tipos

orientado a objeto
primitivos
Objeto, conjunto, lista, string, integer, real
 Restrições


de integridade
Unicidade de Objeto e identidade de objeto, Hierarquia de
classes, Herança, Método, etc
Sistema de Banco de Dados Objeto-Relacional
 Modelo
relacional + Modelo OO
33
CLASSIFICAÇÃO DE SBD

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
34
CLASSIFICAÇÃO DE SBD

Classificação de SBDs – Arquitetura
 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 P2P

 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
35
SBD- GERENCIAMENTO DE TRANSAÇÕES

Transação


Controle de acesso concorrente


Coleção de operações que realizam uma única função
lógica em uma aplicação de banco de dados
Isolamento entre transações concorrentes
Tolerância a falhas
Atomicidade das operações
 Persistência dos resultados das transações bem
sucedidas

36
SBD- 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
37
MODELO ENTIDADE E RELACIONAMENTO

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
Representar dados através
Entidades
 Relacionamentos entre as entidades
 Atributos

 Propriedades
de entidades ou relacionamentos
38
MODELO ENTIDADE E RELACIONAMENTO

Entidade
Representação abstrata de um objeto do mundo real
 Exemplos de entidades do mundo real

 Objeto

Um empregado, um carro, um estudante
 Objeto


concreto
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
39
MODELO ENTIDADE E RELACIONAMENTO

Atributos de uma entidade
Propriedades que caracterizam uma entidade
 Exemplos

 Atributos

matrícula, nome, endereço, rg, cpf, data-nasc, salário, lotação,
data-admissão
 Atributos


de empregados
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
40
MODELO ENTIDADE E RELACIONAMENTO

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
 Atributo

Atributo que não pode ser subdividido
 Atributo

atômico
composto
Atributo formado por vários atributos
41
MODELO ENTIDADE E RELACIONAMENTO

Atributos de uma entidade (cont.)
 Tipos
de atributos
 Atributo
mono-valorado
Atributo para o qual está associado um único valor
 Exemplo: Nome

 Atributo
multi-valorado
Atributo para qual podem estar associados vários valores
 Exemplo: Fones( celular, res, trab)

 Atributo
derivado
Atributo cujo valor poder derivado com base no valor de um
outro atributo (atributo base)
 Exemplo: Atributo idade pode ser derivado do atributo data-nasc

42
MER- RELACIONAMENTO
Abstração que representa associações entre
diferentes conjuntos de entidades
 Exemplo: O empregado Adriano com o
departamento “Ciência da Computação”
 Conjunto de relacionamentos)

Grupo de relacionamentos que representam o mesmo
tipo de associação
 Exemplo: Conjunto de relacionamentos lotação contém
todos os relacionamentos entre empregado e
departamento
 Seja R um conjunto de relacionamentos representando
associações entre os conjuntos de entidade E1, E2, ...
En,
43

MER- RELACIONAMENTO

Conjunto de relacionamentos (cont)
 Seja
R um conjunto de relacionamentos,
representando associações entre os conjuntos de
entidades E1, E2, ... En, então R ⊆ E1 x E2 x Em
 Seja r∈R, então r=(e1, e2, …, en), onde e1∈E1,
e2∈E2, …, en∈Em
 Exemplo:Considere o conjunto de relacionamentos
lotação
 lotação
⊆ Departamento x Empregado
 (Wamberg, Ciência da Computação) ∈lotação
44
MER- RELACIONAMENTO

Conjunto de relacionamentos (cont)
 Papel
(role)
 Função que uma entidade desempenha no
relacionamento
 Exemplo
 Papel

É lotado (Wamberg é lotado em Ciência da Computação)
 Papel

de empregado
de departamento
Lota (Ciência da Computação lota Wmaberg)
45
MER- RELACIONAMENTO

Grau de Relacionamento
 Número
de entidades participantes no
relacionamento
 Relacionamento binário
 Relacionamento
 Exemplo:
de grau 2
?
 Relacionamento
 Relacionamento
ternário
de grau 3
 Exemplo

Relacionamento Agência-Conta-Cliente
46
MER – RELACIONAMENTO

Grau do relacionamento
Auto-relacionamento (relacionamento recursivo)
 Relacionamento envolvendo um único conjunto de
entidades
 O conjunto de entidades apresenta diferentes papéis
 Considere o seguinte cenário: Cada departamento
possui vários supervisores responsáveis por um
subconjunto de empregados do departamento
 Modelagem do relacionamento entre empregado e
supervisor

 Um
supervisor também é uma entidade do tipo Empregado
 Relacionamento supervisiona
47
MER- RELACIONAMENTO

Atributos de relacionamento


Propriedades que descrevem um relacionamento
Exemplo

Considere o atributo data-lotação
 Representa
a data em que um empregado foi lotado em um
determinado departamento
 data-lotação é um atributo do relacionamento lotação

Considere o atributo nota na modelagem de dados do
INTA
 Descreve
a nota de um aluno em uma disciplina
 nota é um atributo do relacionamento cursa
 Cursa representa o relacionamento entre os conjuntos de
entidades Estudante e Disciplina
48
MER - RELACIONAMENTO

Cardinalidade de relacionamento

Indica o número de entidades que podem participar de
um determinado relacionamento
Seja R um relacionamento binário entre os
conjuntos de entidades A e B
 A Cardinalidade de R deve ser uma das seguintes:

Um para um (1:1)
 Um para muitos (1:N)
 Muitos para um (N:1)
 Muitos para muitos (N:N

49
MER- RELACIONAMENTO

Exemplos – Cardinalidade
 Cardinalidade
do relacionamento lotação entre
Departamento e Empregado : _______
 Cardinalidade do relacionamento cursa entre
Estudante e Disciplina: _______
 Cardinalidade do auto-relacionamento supervisiona
: _______
 Cardinalidade do relacionamento que modela o
fato de que cada departamento : _______
50
MER - RELACIONAMENTO

Restrição de participação
Especifica a obrigatoriedade ou não de uma entidade e
participar de um relacionamento com outra entidade
 Participação total

A
participação de um conjunto de entidades A é total em um
relacionamento R, se toda entidade de A participa de pelo
menos um relacionamento em R
 Dependência existencial
 Exemplo: Considere o relacionamento lotação, para o qual
todo empregado deve estar lotado em algum departamento
 A participação de Empregado em lotação é total
51
MER - RELACIONAMENTO

Restrição de Participação
 Participação
parcial
A
participação de um conjunto de entidades A é parcial
em um relacionamento R, se apenas um subconjunto de
entidades de A participa em R
 Exemplo

Relacionamento cursa entre Estudante e Disciplina
52
MER – ENTIDADE FRACA


Entidade cuja existência depende de estar
associada, via um relacionamento relacionamento
de identificação), com uma outra entidade
(entidade forte)
Exemplo



Considere o relacionamento dependência entre os
conjuntos de entidades Empregado e Dependente
Dependente contém os dependentes dos empregados
da empresa
A existência de um dependente Gabriel depende da
existência de um empregado Wamberg e que Gabriel
esteja relacionado a Wamberg através do
relacionamento dependência
53
MER – ENTIDADE FRACA

Uma entidade fraca é identificada
 Por
estar relacionada com uma entidade forte
 Pelo
atributo chave da entidade forte
 Atributos
 Chave
da própria entidade fraca
parcial
54
DIAGRAMA ER

Ferramenta de projeto
 Capaz
de capturar e representar graficamente
toda estrutura lógica de um banco de dados
 Utilizada para modelagem de BDs
 Existem ferramentas que fornecem uma interface
gráfica para o desenvolvimento de DERs
 A partir do DER especificado, geram o esquema do
BD relacional
 Ex: DIA - http://www.gnome.org/projects/dia/
55
DER- NOTAÇÃO
56
DER - NOTAÇÃO
57
DER - NOTAÇÃO
58
Download