Вы находитесь на странице: 1из 85

Banco de Dados

Parte I
PROF. PAULO HENRIQUE MAIA

Sumrio

Introduo aos Sistemas de Banco de Dados


Modelo de Entidades e Relacionamentos
Bancos de Dados Relacionais
O Modelo Relacional
Modelagem de Dados
Linguagem de Manipulao e Consulta

Projeto de Bancos de Dados Relacionais

Introduo aos Sistemas de Bancos de Dados


- Histrico Processamento de arquivo (anos 60 e 70)
Paradigma de processamento de dados
Cada aplicao
Definir e manter seus prprios dados
Programa 1

Programa 2

Programa 3

Descrio
de dados

Descrio
de dados

Descrio
de dados

Arquivo A
Arquivo B
Arquivo C
3

Introduo aos Sistemas de Bancos de Dados


- Histrico -

Dados em Arquivos

Redundncia e inconsistncia

Dificuldade de acesso aos dados


Isolamento dos dados
Problemas de integridade
Anomalias de acesso concorrente
Problemas de segurana

Introduo aos Sistemas de Bancos de Dados


Tecnologia de banco de dados
Definio e gerenciamento centralizado de dados
Independncia de dados
Alterao na organizao lgica ou fsica dos dados no implicar na alterao
de programas
Eliminar redundncia de dados
Eliminar inconsistncia de dados
Facilitar acesso a dados atravs de uma linguagem de consulta
Evitar inconsistncias produzidas pelo acesso concorrente
Recuperar estado consistente dos dados aps situao de falha

Introduo aos Sistemas de Bancos de Dados


Tecnologia de banco de dados
Programa 1

Programa 2

Programa 3

Descrio
de Dados

Banco
de Dados

Sistema de Banco de Dados


Conjunto de dados inter-relacionados (banco de dados)
Componente de software (SGBD)
Tornar transparente como os dados so
Acesso e modificao dos dados armazenados e gerenciados
Garantir uma viso abstrata dos dados
6

Introduo aos Sistemas de Bancos de Dados


- Abstrao de Dados -

Sistemas
de
Bancos
de Dados

Usurio tem uma


viso abstrata dos
dados

Nvel fsico: descreve como os dados so armazenados

Nvel lgico: descreve quais dados so armazenados e os

relacionamentos entre eles


Nvel de visualizao: descreve partes de interesse do
usurio/aplicao
7

Introduo aos Sistemas de Bancos de Dados


- Arquitetura em Trs Camadas -

Esquema
Externo 1

Esquema
Externo 2

Esquema
Externo n

Camada
Externa

Esquema Conceitual

DBMS

Camada
Conceitual

Camada
Interna (Fsica)

Esquema Interno
(Banco de Dados armazenado)
8

Introduo aos Sistemas de Bancos de Dados


- Arquitetura em Trs Camadas -

Esquema Interno - Camada Interna

Descreve como os dados esto fisicamente armazenados


Exemplo
Organizao de arquivo
seqencial-indexado, hashing, seqencial, heap
Alocao em disco
Contgua, lista encadeada, lista encadeada utilizando ndice
Tipo de registro
Fixo, varivel

Esquema Conceitual - Camada Conceitual

Descreve quais dados esto armazenados no banco de dados


Descreve os relacionamentos entre os dados armazenados

Esquema Externo - Camada Externa


Descreve parte do banco de dados
Simplificar a viso do usurio
Ver s o que interessa

Segurana

Introduo aos Sistemas de Bancos de Dados


- Ocorrncias e Esquemas -

Ocorrncias (instncias)
Coleo de informaes armazenadas na base
Altamente mutveis

Esquemas
Projeto ou estrutura da base - definio
Um esquema para cada nvel de abstrao
Esquema fsico - nvel interno
Esquema lgico - nvel conceitual
Sub-esquemas ou esquemas de visualizao - nvel
externo
10

Introduo aos Sistemas de Bancos de Dados


- Definio-

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

Armazenamento
Acesso
Controle de Concorrncia
Recuperao

11

Introduo aos Sistemas de Bancos de Dados


- Linguagem de Banco de Dados -

Finalidade

garantir a especificao do esquema de um banco de dados


permitir consultas e atualizaes sobre o banco de dados

Componentes

DDL - Data Description Language


Utilizada para especificar o esquema de um BD
Expresses da DDL
Interpretadas (compilados) gerando a especificao de um conjunto de tabelas
A especificao das tabelas armazenada no catlogo do banco de dados
Exemplo (SQL)
create table Empregado
(matr integer not null,
nome varchar(35),
salrio real,
primary key(matr))
12

Introduo aos Sistemas de Bancos de Dados


- Linguagem de Banco de Dados -

Componentes (cont.)

DML - Data Manipulation Language


Utilizada para permitir
Consultas sobre um BD
Exemplo (SQL)

select nome

from Empregado

where salario > 7000

Inseres em uma tabela

DML
Procedural
- requer a especificao de quais dados

devem ser acessados e como devem ser


acessados

Nonprocedural

- requer somente a especificao de quais


dados devem ser acessados

Exemplo (SQL)

insert into Empregado values(123, Brbara, 5000.00)

Remoes em uma tabela

Exemplo (SQL)

delete from Empregado

where matr=14

Atualizar valores de atributos de uma tabela


Exemplo (SQL)

update Empregado set salrio=salrio*1.15

where salrio<1500.00
13

Introduo aos Sistemas de Bancos de Dados


- Definio-

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 representao 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 catlogo
Tabelas contendo meta-dados
Descrio do banco de dados (Esquema)

Mecanismo de Consultas
Responsvel pela otimizao e gerao de planos de execuo de consultas

14

Introduo aos Sistemas de Bancos de Dados


- Definio-

SGBD
Sistema de Armazenamento

Gerenciador de Transaes
Controle de concorrncia
Recuperao do banco de dados aps falhas

Gerenciador de Buffer
Responsvel para recuperar objetos em disco e carreg-los na memria
principal em forma de pginas
SGBD possui uma rea de buffer em memria principal

Mapeamento: Bloco

(disco)

Pgina
(buffer do SGBD)

Definio da poltica de alocao do buffer

MRU,(most recently used) LRU(least recently used), FIFO, etc

Gerenciador de Arquivo (File System)


Responsvel pelo armazenamento fsico em disco
Gerencia a alocao de espao em disco
15

Introduo aos Sistemas de Bancos de Dados


- Definio-

BD

Arquivos de dados + ndices + Catlogo


Arquivos de dados

Armazena os dados
ndices

Estruturas de ndices para os arquivos de dados


Catlogo

Armazena esquema do banco de dados (meta-dados)


Nomes das tabelas
Atributos de cada tabela
Definio de ndice para uma tabela, etc
Armazena informaes estatsticas
Exemplo
Cardinalidade de uma tabela

Utilizadas na otimizao de consultas

16

Introduo aos Sistemas de Bancos de Dados


- Arquitetura de SGBDs-

Programadores

Usurio experiente

Programa Aplicativo
Pre-compilador
DML

DBA

Consulta

Esquema

Compilador
DML

Interpretador
DDL

Mecanismo
de Consultas
Gerenciador
de Buffer

Gerenciador
de Transaes

Gerenciador
de Arquivo

Cdigo Objeto
aplicativos

ndices

Arquivos
de dados

Processador
de Consultas

Sistema de
Armazenamento

DBMS

Catlogo

DB
DBS
17

Introduo aos Sistemas de Bancos de Dados


- O Administrador de Bancos de Dados (DBA) -

Definio do esquema conceitual


Definio dos mtodos de acesso e estruturas

de armazenamento
Manuteno do esquema e da organizao fsica

dos dados
Definio da poltica de acesso aos dados

Especificao de restries de integridade

18

Introduo aos Sistemas de Bancos de Dados


- Usurios de Bancos de Dados -

Programadores de aplicao
Usurios sofisticados
Usurios especializados em aplicaes no-

convencionais
Usurios de programas de aplicao

19

Introduo aos Sistemas de Bancos de Dados


- Modelo de Dados-

Um modelo de dados definido por trs componentes


Uma coleo de tipos de estrutura de dados
blocos de construo do banco de dados

Uma coleo de operadores


Podem ser aplicados a qualquer instncia dos tipos de dados definidos acima

Uma coleo de regras de integridade


Definem o conjunto de estados consistentes do banco de dados
Definem o conjunto de transies consistentes de estado do banco de dados

Representar dados do mundo real

Capturar a semntica e incorpor-la em um banco de dados


Exemplo

Atravs do modelo relacional representar os dados de uma universidade

20

Introduo aos Sistemas de Bancos de Dados


- Classificao de Sistemas de Bancos de Dados -

Classificao de SBDs - Modelo de Dados


Sistema de Banco de Dados Relacional
Modelo Relacional
Tipo primitivo de dados
Relao (tabela)
Conjunto de tuplas (linhas)
Conjunto de Operadores
lgebra Relacional

Clculo Relacional
Restries de integridade
Integridade de chave primria
Integridade referencial

21

Introduo aos Sistemas de Bancos de Dados


- Classificao de Sistemas de Bancos de Dados -

Classificao 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
Restries de integridade
Unicidade de Objeto e identidade de objeto
Hierarquia de classes
Herana
- Uma classe herda as propriedades da superclasse
Comportamento de objetos de uma classe
- Mtodo

Sistema de Banco de Dados Objeto-Relacional


Modelo relacional + Modelo OO

22

Sumrio

Introduo 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 Manipulao e Consulta

Projeto de Bancos de Dados Relacionais


Projeto Lgico de Bancos de Dados
23

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Modelo de dados MER
No implementado por nenhum SGBD
Utilizado como modelo conceitual para projeto de BDs
Ferramenta para a modelagem de BDs

Proposto por P. Chen em 1976

Princpio bsico
Representar dados atravs
Entidades
Relacionamentos entre as entidades
Atributos
Propriedades de entidades ou relacionamentos

24

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Entidade
Representao 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 bancria, uma disciplina

Conjunto de entidades (tipo de entidade)


Entidades que apresentam caractersticas semelhantes
Exemplo
Estudantes, Empregados, Professores

25

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Atributos de uma entidade
Propriedades que caracterizam uma entidade
Exemplos
Atributos de empregados
matrcula, nome, endereo, rg, cpf, data-nasc, salrio, lotao, data-admisso
Atributos de estudantes
matrcula, nome, curso, rg, cpf, data-ingresso

Cada atributo de uma entidade deve estar associado um valor

26

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Atributos de uma entidade (cont.)

Um atributo pode ser ainda definido como


Uma funo que associa um elemento do conjunto de entidades a um elemento de um conjunto de valores do
atributo (domnio do atributo)
l
Conjunto
l
de matrculas
l l

Empregados

matrcula

l 13

l l
l l l
l l

Brbara

nome

endereo

l
l l
l

l
l
l
l

Conjunto
de nomes

Conjunto
de endereos

R. X, 9
27

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Atributos de uma entidade (cont.)
Atributos chave de uma entidade
Conjunto de atributos que identificam univocamente um elemento ou objeto da entidade
Seja f um atributo chave para um conjunto de entidades D, xD

e f(x)=v, ento

"dD e dx, f(d)v


Exemplo
Matrcula atributo chave para Estudante

Tipos de atributos
Atributo atmico
Atributo que no pode ser subdividido:cargo
Atributo composto
Atributo formado por vrios atributos
Endereo, local

endereo

local
rua

cep cidade

nmero
28

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos 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 vrios valores
Funo que associa um elemento do conjunto de entidades a um subconjunto de um conjunto de valores
Exemplo
Para o atributo telefone podem estar associados vrios valores, como telefone residencial, comercial e celular
Atributo derivado
Atributo cujo valor derivado com base no valor de um outro atributo (atributo base)
Exemplo
Atributo idade pode ser derivado do atributo data_nasc

29

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Relacionamento
Abstrao que representa associaes entre diferentes conjuntos de entidades
Exemplo
Pode-se definir um relacionamento que associa o empregado Brbara com o departamento Cincia da Computao

Conjunto de relacionamentos (tipo de relacionamento)


Grupo de relacionamentos que representam o mesmo tipo de associao
Exemplo
Conjunto de relacionamentos lotao
- Contm todos os relacionamentos entre empregado e .departamento
Seja R um conjunto de relacionamentos representando associaes entre os conjuntos de entidade E1, E2, ... En,

30

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Relacionamento (cont.)

Conjunto de relacionamentos (cont)


Seja R um conjunto de relacionamentos, representando associaes entre os conjuntos de
entidades E1, E2, ... En, ento R E1 x E2 x En
Seja rR, ento r=(e1, e2, , en), onde e1E1, e2E2, , enEn,
Exemplo
Considere o conjunto de relacionamentos lotao
lotao Departamento x Empregado
(Brbara, Cincia da Computao) lotao

Papel (role)
Funo que uma entidade desempenha no relacionamento
Exemplo
Papel de empregado
lotado (Bbara lotada em Cincia da Computao)
Papel de departamento
Lota (Cincia da Computao lota Brbara)

31

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Relacionamento (cont.)

Grau de Relacionamento
Nmero de entidades participantes no relacionamento
Relacionamento binrio
Relacionamento de grau 2
Exemplo: Relacionamento aluno-disciplina
Relacionamento ternrio
Relacionamento de grau 3
Exemplo
Relacionamento Agncia-Conta-Cliente

l
l l
l l
l l

Cliente
l

l l
l l l
l l

Agncia_Conta-Cliente

Conta

l
l l
l ll
l l

Agncia

32

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Relacionamento (cont.)

Auto-relacionamento (relacionamento recursivo)


Relacionamento envolvendo um nico conjunto de entidades
O conjunto de entidades apresenta diferentes papis
Considere o seguinte cenrio:
Cada departamento possui vrios supervisores
responsveis por um subconjunto de empregados do departamento
Modelagem do relacionamento entre empregado e supervisor
Um supervisor tambm uma entidade do tipo Empregado
Relacionamento supervisiona

Empregado desempenha dois papis


- -supervisionado-por (1)
- -supervisor-de (2)

l
l
l
l
l

1
4
5

Empregado

2
3
Supervisiona
33

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Relacionamento (cont.)

Atributos de relacionamento
Propriedades que descrevem um relacionamento
Exemplo
Considere o atributo data-lotao
Representa a data em que um empregado foi lotado em um determinado departamento
data-lotao um atributo do relacionamento lotao
Considere o atributo nota na modelagem de dados da FIC
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

34

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Restries estruturais de relacionamentos
Cardinalidade de relacionamento

Indica o nmero de entidades que podem participar de um determinado relacionamento

Seja R um relacionamento binrio entre os conjuntos de entidades A e B


A Cardinalidade de R deve ser uma das seguintes:
Um para um (1:1)
Uma entidade de A s pode estar associada a uma
..entidade de B
Uma entidade de B s pode estar associada a uma
..entidade de A
Um para muitos (1:N)
Uma entidade de A pode estar associada a qualquer
..quantidade de entidades de B
Uma entidade de B s pode estar associada a uma
..entidade de A
Muitos para um (N:1)
Uma entidade de A s pode estar associada a uma
..entidade de B
Uma entidade de B pode estar associada a qualquer
..quantidade de entidades de A

35

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Restries estruturais de relacionamentos (cont.)
Cardinalidade de relacionamento (cont.)

Muitos para muitos (N:N)


Uma entidade de A pode estar associada a qualquer
..quantidade de entidades de B
Uma entidade de B s pode estar associada a qualquer
..quantidade de entidades de A
Exemplos
Cardinalidade do relacionamento lotao 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 da empresa possui um gerente

36

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Restries estruturais de relacionamentos (cont.)
Restrio de participao

Especifica a obrigatoriedade ou no de uma entidade A participar de um relacionamento com outra entidade


Participao total

A participao de um conjunto de entidades A total em um relacionamento R,


se toda entidade de A participa de pelo menos um relacionamento em R
Dependncia existencial
Exemplo
Considere o relacionamento lotao, para o qual todo empregado deve estar lotado em algum departamento
A participao de Empregado em lotao total
Participao parcial

A participao 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

37

2. Modelo Entidade-Relacionamento
- Conceitos Bsicos Entidade fraca

Entidade cuja existncia depende de estar associada, via um relacionamento (relacionamento


de identificao), com uma outra entidade (entidade forte)
Exemplo
Considere o relacionamento dependncia entre os conjuntos de entidades Empregado e Dependente
Dependente contm os dependentes dos empregados da empresa
A existncia de um dependente Brbara
Depende da existncia de um empregado Andr e que
Brbara esteja relacionada a Andr atravs do relacionamento dependncia

Uma entidade fraca identificada


Por estar relacionada com uma entidade forte
Pelo atributo chave da entidade forte
Atributos da prpria entidade fraca
Chave parcial

38

2. Modelo Entidade-Relacionamento
- Diagrama ER Ferramenta de projeto
Capaz de capturar e representar graficamente toda estrutura lgica de um
banco de dados
Utilizada para modelagem de BDs
Existem ferramentas
Fornecem uma interface grfica para o desenvolvimento de DERs
A partir do DER especificado, geram o esquema do BD relacional
ERWin
DBDesigner

39

2. Modelo Entidade-Relacionamento
- Diagrama ER Notao
Smbolo

Representao

Conjunto de entidades
Conjunto de entidades
fracas

Conjunto de relacionamentos
(relacionamento)
Relacionamento de
identificao
Nome atributo

Atributo
40

2. Modelo Entidade-Relacionamento
- Diagrama ER Notao
Smbolo

Representao

Nome atributo

Atributo chave

Nome atributo

Atributo derivado

Nome atributo

Atributo multivalorado

Nome atributo

Atributo composto
Nome atributo

Nome atributo
41

2. Modelo Entidade-Relacionamento
- Diagrama ER Notao
Smbolo

Representao

Atributo chave parcial de


uma entidade fraca

Nome atributo

E1

E1

R
(min,max)

E2

Cardinalidade 1:N

Restrio estrutural de
participao de E em R

E2

Participao total de E2
em R
42

2. Modelo Entidade-Relacionamento
- Diagrama ER Exerccio

Utilize o DER para modelar o BD para o seguinte cenrio


A empresa X tem seus dados organizados da seguinte forma:
Os empregados esto lotados em diversos departamentos. Funcionrios so
diretamente chefiados por supervisores. importante identificar o supervisor
de cada funcionrio
Todo funcionrio deve estar lotado em um departamento. Nenhum
funcionrio pode estar lotado em mais de um departamento
Um departamento possui no mnimo 5 empregados, onde um deles o
gerente do departamento.
Os dependentes dos funcionrios devem possuir como atributos: nome, datanasc. A idade limite para ser dependente de um empregado 18 anos
O salrio de um empregado calculado com base nos seus diversos
vencimentos.
Para tipo de vencimento, existe uma descrio e o valor correspondente

43

2. Modelo EntidadeRelacionamento

Quando um departamento for participar de lotao,


ter, no mnimo, cinco empregados

Cod_venc

descrio

- Diagrama ER -

Vencimento

supervisiona
-supervisionado
-supervisor

dt_lotao

(1,1)
lotao

(5,n)

(1,n)

valor

(0,n)

Empregado

(0,n)

ganha

(1,1)
(1,1)

matr

dt_nasc

dependncia
nome

(0,n)

(1,1)

idade

Departamento
(0,1)

gerncia

nome

Dependente

dt_nasc
44

2. Modelo EntidadeRelacionamento

Cod_venc

descrio

- Diagrama ER Vencimento

supervisiona
-supervisionado
-supervisor

dt_lotao

n
lotao

valor

1
n

Empregado

ganha

1
1

matr

dt_nasc

dependncia
nome

Departamento
1

gerncia

nome

idade

Dependente

dt_nasc
45

2. Modelo EntidadeRelacionamento
Especializao

Existem conjuntos de entidades compostos de subgrupos de entidades


- Propriedades
Avanadas
- diferentes dos outros subgrupos
Cada
subgrupo apresenta
propriedades
Considere o conjuntos de entidades Empregado na modelagem dos dados de um
universidade
Podemos identificar os seguintes subconjuntos dentro de Empregado
Professores
Titulao
Universidade de titulao
Regime de trabalho (DE, 40h, 20h)

Escriturrios
Grau de instruo
rea de atuao (contador, secretria, etc)

Engenheiros

Especialidade

Subconjuntos diferenciados por tipo de empregado

46

2. Modelo EntidadeRelacionamento
- Propriedades Avanadas Especializao (cont.)
Definio

Processo de identificao de subgrupos de entidades dentro de um conjunto de entidades

Processo de especializao pode ser recursivo


Um nico conjunto de entidades pode ser especializado por mais de uma
caracterstica de diferenciao (especializao)
No exemplo de Empregado em uma universidade
Especializao por tipo de empregado
Especializao por tipo de contrato
CLT
Servios prestados
Um entidade deve pertencer s vrias especializaes

Os subgrupos identificados em um processo de especializao


podem participar de relacionamentos que no se aplicam a todas
entidades do conjunto de entidades de origem

47

2. Modelo EntidadeRelacionamento
- Propriedades Avanadas Especializao (cont.)
Notao MER

Empregado

is a ( um)
Empregado is a Professor ou
Empregado is a Escriturrio ou
Empregado is a Engenheiro

ISA
regime_tr

Professor
titulao

uni_tit

Escriturrio
Grau_ins

rea_atua

Engenheiro
especialidade

48

2. Modelo EntidadeRelacionamento
- Propriedades Avanadas Especializao (cont.)
Herana de propriedades
Os subgrupos de entidades herdam todas as propriedades do conjunto de entidade de mais alto
nvel

Empregado

nome

dt_nasc
matr

ISA
regime_tr

Professor
titulao

uni_tit

Escriturrio
Grau_ins

rea_atua

Engenheiro
especialidade
49

2. Modelo EntidadeRelacionamento
- Propriedades Avanadas Especializao (cont.)
realizada sobre um nico conjunto de entidades
Identificar subgrupos

nfase nas diferenas entre entidades de um mesmo subconjunto de entidades


Atravs dos subgrupos mais especializados

Generalizao
Processo de identificao de conjuntos de entidades que possuem
caractersticas em comum
Mesmos atributos e participam de mesmos relacionamentos

Formao de um nico conjunto de entidades de mais alto nvel


realizada sobre vrios conjuntos de entidades
Identificar um conjunto de entidades de mais alto nvel

50

2. Modelo EntidadeRelacionamento
- Propriedades Avanadas Generalizao (cont.)
nfase nas similaridades entre diversos conjuntos de entidades
Reduo de redundncia de representao
Atributos compartilhados s sero representados no conjunto de entidades de nvel mais alto
No sero repetidos

Na prtica
Generalizao o processo inverso da especializao

Duas estratgias que devem ser utilizadas


Especializar onde for necessrio
Generalizar onde for possvel

51

2. Modelo EntidadeRelacionamento

Especificao de restries de generalizao e especializao

- Propriedades
Avanadas
- de nvel mais baixo que o conjunto de
Sejam
E1, E2, , En conjuntos
de entidades
entidades E
E

ISA
E1

E2

...
...

En

Disjuno
" 0<i,jn, ij : Ei Ej =
Nenhuma entidade de E pode pertencer a mais de um
subgrupo
52

2. Modelo EntidadeRelacionamento
- Propriedades Avanadas Especificao de restries de generalizao e especializao
Completeza
Especifica se uma entidade de E tem que pertencer obrigatoriamente a um dos conjuntos de
entidades de mais baixo nvel ou no
Total

E=

Parcial
E

Ei

i=1
Ei

n
i=1

53

2. Modelo EntidadeRelacionamento

Agregao

- Propriedades
Abstrao
que representaAvanadas
relacionamentos-como entidades
Mecanismo utilizado para representar relacionamentos de relacionamentos
Exemplo
Considere a modelagem de dados em um banco BX. Clientes do BX esto relacionados a agncia e conta
Estratgia 1

Agncia

Conta

n
Cliente
54

2. Modelo EntidadeRelacionamento

Agregao (cont.)

- Propriedades
Problemas
na Estratgia 1Avanadas

No representa a estrutura lgica que deve ser modelada


Relacionamento de cliente com o relacionamento agncia-conta
Na prtica, para acessar todas as contas de uma agncia
Tero que ser acessadas todas triplas (agncia,conta,cliente)
Uma conta pode pertencer a vrios clientes
Vrios acessos redundantes

55

2. Modelo EntidadeRelacionamento

Agregao (cont.)

- Propriedades
Avanadas
Utilizar
o mecanismo de agregao
cod_ag

nome

Agncia

ender gerente

num_conta

saldo

Conta

n
data_abertura

cod_cliente
CPF

nome

ender

Cliente
data-nasc
56

Bancos de Dados I
Parte II
FRANCISCO ALVES CARNEIRO
- FIC -

FACULDADE INTEGRADA DO CEAR


SISTEMAS DE INFORMAO
ALVESFA@FIC.BR

57

Sumrio

Introduo 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 Manipulao e Consulta

Projeto de Bancos de Dados Relacionais


Projeto Lgico de Bancos de Dados

58

Sumrio
Introduo aos Sistemas de Banco de Dados

Projeto de Bancos de Dados Relacionais


Bancos de Dados Relacionais
O Modelo Relacional
Modelagem de Dados
lgebra Relacional
Linguagem de Manipulao e Consulta
Projeto Lgico de Bancos de Dados

59

3. Modelo Relacional
- Introduo Proposto em 1970 por Codd
IBM

Consolidou-se como principal modelo de dados para aplicaes comerciais


Modelo de dados para Bancos de Dados Relacionais
SBDs relacionais

DB2 (IBM)
Informix
ADABAS
Sybase
Oracle
SQL Server (Microsoft)

60

3. Modelo Relacional
- Estrutura de um Banco de Dados Relacional Um banco de dados relacional consiste
Um conjunto de tabelas
Relaes

Tabelas
Conjunto de linhas
Tuplas

Linhas

matr nome
1
2
3
3
3

Estudante
cpf
1
1
1
2
3

231
451
472
549
465

end
R X, 50
R Y, 1
R V, 502
R Z, 501
R A, 501

dt-nasc
20000102
19991001
19990510
19980601
20000203

Conjunto de colunas
Nome das colunas
Atributos

61

3. Modelo Relacional
- Conceitos Bsicos Domnio

Conjunto de valores permitidos para um atributo


Valores so atmicos
Indivisveis
Exemplo: Domnio do atributo matrcula
Conjunto de todos os valores vlidos de matrcula
dom(A) denota o domnio do atributo A
Tipo de dados e formato
Utilizados para especificar um domnio
Exemplo: telefone
tipo varchar com formato (ddd)ddd-dddd
dom(telefone) representa o conjunto de valores atmicos vlidos para o tipo
char e formato especificado

O atributo Ai um papel de D no esquema de R


Grau de R = nmero de Ai
62

3. Modelo Relacional
- Conceitos Bsicos -

Esquema de relao
Utilizado para descrever uma relao
Representado por R(A1, A2, , An), onde
R nome de uma relao e
A1, A2, , An uma lista de atributos

63

3. Modelo Relacional
- Conceitos Bsicos Instncia de Relao

Seja o esquema de relao R(A1, A2, , An)


Um instncia de relao (ou relao) para este esquema
r(R)={t1, t2, , tk}
Cada ti representa uma n-tupla de n valores
<v1, v2, , vn>, onde cada vj
dom(Aj), 0<jn
r representa a extenso para R
r contm os dados
R descreve os dados armazenados em r

Relao

Seja r uma relao com esquema R


r(R) dom(A1) x dom(A2) x dom(A3) x x dom(An)
r(R) um subconjunto do produto cartesiano dos domnios dos atributos que
definem R
cada tupla de r(R) relaciona valores dos vrios domnios
r uma relao (matemtica)
r(R) representa um conjunto de tuplas
64

3. Modelo Relacional
- Conceitos Bsicos Esquema de um banco de dados relacional
Conjunto de esquemas de relao mais um conjunto de restries de integridade IC
S={R1, R2, , Rn} e um conjunto de restries de integridade IC

Instncia de um banco de dados relacional

Seja o esquema S
Uma instncia DB para o esquema S
DB={r1, r2, , rn} , onde
Cada ri uma instncia de relao de Ri e
Cada ri satisfaz as restries de integridade especificadas em IC

Exerccio
Considere uma banco de dados relacional DBR com as relaes Empregado e
Departamento
Construa um esquema S e mostre uma possvel instncia para DBR

65

3. Modelo Relacional
- Conceitos Bsicos Restries do modelo relacional
Restrio de domnio
O valor de cada atributo A
Tem que ser um valor atmico de dom(A)
Restrio de Chave
Uma relao definida como um conjunto de tuplas
Elementos de um conjunto so distintos entre si
Tuplas de uma relao tm que ser distintas entre si
Duas tuplas em uma relao no podem ter a mesma combinao de
valores para seus atributos
Geralmente existe um subconjunto SC de atributos em um esquema de
relao R
Todas as tuplas de qualquer instncia r(R) apresentam uma combinao
diferente de valores para os atributos de SC
" ti, tj r 0<i,jn, ij : ti[SC] tj[SC]
Super chave (superkey)

66

3. Modelo Relacional
- Conceitos Bsicos Restries do modelo relacional (cont.)
Restrio de Chave (cont.)
Super chave pode apresentar atributos redundantes
Empregado(matr,nome,ender,cpf)
matr e cpf so atributos da super chave
Apenas matr ou apenas cpf
- condio necessria e suficiente para garantir a no existncia de tuplas repetidas

Chave (key)
Super chave sem atributos redundantes
Para Empregado existem duas possveis chaves
matr ou cpf

Chave candidata (candidate key)


Atributos da super chave que podem funcionar como chave da relao
Chave primria (primary key)
Chave candidata escolhida como chave da relao
Identifica tuplas em uma relao
Garante a unicidade de uma tupla na relao

67

3. Modelo Relacional
- Conceitos Bsicos Restries do modelo relacional (cont.)
Restrio de Integridade de Entidade
Especifica que nenhuma chave primria pode ter valor nulo (null)
Garante que a chave primria identifique tuplas em uma relao

Restrio de Integridade Referencial


Sejam dois esquemas de relao R e S
Um conjunto de atributos FK de um esquema de relao R chave estrangeira (foreign key)
em R se
Os atributos em FK tm o mesmo domnio que a chave primria PK de um outro esquema
de relao S, e
Um valor de FK em uma tupla t1 de r(R)
Ou ocorre em como valor de PK para uma tupla t2 em s(S)
t1[FK] = t2[PK]
ou nulo

68

3. Modelo Relacional
- Conceitos Bsicos Restries do modelo relacional (cont.)
Restrio de Integridade Referencial (cont.)
Exemplo: Considere o seguinte esquema de banco de dados
Departamento(cod_depart, nome, ender)
Empregado(matr, nome, ender, cpf, lotao)
Se lotao referenciar cod_depart, ento lotao chave estrangeira em
Empregado
Deve ser garantido que o valor de lotao ou seja nulo ou referencie um valor
existente em Departamento
Integridade referencial
Atualmente garantida automaticamente pelos SGBD existente no mercado

69

3. Modelo Relacional
- Conceitos Bsicos Restries do modelo relacional (cont.)
Restrio de Integridade Referencial (cont.)
Exemplo: Considere o seguinte esquema de banco de dados
Departamento(cod_depart, nome, ender)
Empregado(matr, nome, ender, cpf, lotao)

Create table Departamento


(cod_depart integer not null,
nome
varchar(30) not null,
ender
varchar(30),
primary key (cod_depart))

Create table Empregado


(matr integer not null,
nome
varchar(30) not null,
ender
varchar(30),
cpf
integer
not null,
lotao
integer
not null,
primary key (matr),
unique key (cpf),
foreign key (lotao) references
Departamento on delete cascade)

70

3. Modelo Relacional
- Operaes de Atualizao Incluso
Insere t em r(R)
Lista de valores
Pode violar:
Restrio de domnio
Restrio de chave
Integridade existencial
Integridade referencial
Tratamento
Rejeitar a incluso
Solicitar novas informaes

71

3. Modelo Relacional
- Operaes de Atualizao Excluso
Exclui t em r(R)
Condio sobre valores de atributos
Pode violar:
Integridade referencial
Tratamento
Rejeitar a excluso
Propagao em cascata
Mudar fk em R que referencia R

72

3. Modelo Relacional
- Operaes de Atualizao Modificao

Modifica t[A1,A2,...,Ak] em r(R)


Condio sobre valores de atributos
Alguns SGBDs: update=delete+insert
Violao + tratamento:
Depende do atributo modificado
Domnio para qualquer atributo
PK = excluso + incluso
FK = verificar integridade referencial

73

4. Projeto de Bancos de
Dados
Mini-mundo
(mundo real)

- Fases Anlise de
Requisitos
Requisitos de dados

Independente
do SGBD

Anlise
Funcional

Projeto
Conceitual
Esquema Conceitual (MER)

Projeto Lgico
(mapeamento de
modelo de dados)

Especfico para
cada SGBD

Esquema Conceitual representado


no modelo de dados do SGBD

Projeto
(Software)

Projeto Fsico
Estruturas de armazenamento
e caminhos de acesso (ndices)

Implementao
Implementao

Expresses DDL e carga do BD


74

4. Projeto de Bancos de Dados


- Fases Anlise (especificao) de requisitos
Projetista de banco de dados deve realizar entrevista com usurios prospectivos
do banco de dados
Entender e documentar
Requisitos de dados

Projeto conceitual

Com base nos requisitos de dados


Criar um esquema conceitual para o banco de dados
Modelo de dados conceitual
MER
Construir um DER

Projeto lgico
Com base no DER definido na fase anterior
Criar um diagrama relacional
Representao grfica de um esquema relacional

75

4. Projeto de Bancos de Dados


- Fases Projeto Fsico
Definir estruturas de armazenamento
Como e onde devem ser armazenadas as tabelas
Uma tabela em um arquivo
Vrias tabelas em um nico arquivo
Definir caminhos de acesso
Definir ndices
Definir tipo de ndice
Ordenado
Primrio
Secundrio
Hash
Utilizar critrios de performance
Especfico por SGBD
Implementao
Com base no DR definido na fase 3 e as estruturas de armazenamento e caminhos de acesso
definidos na fase anterior
Criar o banco de dados
Expresses DDL
Carregar o BD
76

4. Projeto de Bancos de Dados


- Mapeamento do MER para um Banco de Dados Relacional Ferramentas CASE
Modelagem ER grfica
Gerao automtica de esquema (DDL)

Algoritmo de mapeamento
Sete passos

77

4. Projeto de Bancos de
Dados
- Mapeamento do MER para um Banco de Dados
Relacional Diagrama relacional (DR)
Ferramenta grfica utilizada para representar um esquema de banco de dados
relacional

A partir de um DER, pode-se construir um DR como descrito a seguir


Passo 1
Para cada conjunto de entidades E, deve ser criada uma tabela como todos os
atributos de E
Escolher uma chave candidata para ser a chave primria da tabela
Apenas os componentes atmicos de atributos compostos devem ser
includos
Notao de tabela no DR
Nome da
Tabela

78

4. Projeto de Bancos de
Dados
- Mapeamento do MER para um Banco de Dados
Relacional Passo 2
Para cada relacionamento binrio 1:1 entre os conjuntos de entidades E1 e E2
Escolher uma das tabelas, por exemplo E2, e incluir como chave estrangeira
em E2 a chave primria da outra tabela (E1)
Critrio de escolha
>> Entidade com participao total no relacionamento
Atributos de relacionamentos devem ser includos na tabela com chave
estrangeira
Notao

E1

PK

E2

PK
79

4. Projeto de Bancos de
Dados
- Mapeamento do MER para um Banco de Dados
Relacional Passo 3
Para cada relacionamento binrio 1:N entre os conjuntos de entidades E1 e E2
Identificar o conjunto de entidades que participa do lado N (suponha que
seja E2)
Incluir como chave estrangeira na tabela E2 a chave primria da outra tabela
(E1)
Atributos de relacionamentos devem ser includos na tabela com chave
estrangeira
Notao

E1

PK

E2

80

4. Projeto de Bancos de
Dados
- Mapeamento do MER para um Banco de Dados
Relacional Passo 4
Para cada relacionamento binrio N:N entre os conjuntos de entidades E1 e E2
Criar uma nova tabela auxiliar tab-aux para representar o relacionamento
Incluir como chaves estrangeiras na tabela tab-aux as chaves primrias de E1
e E2
Estes dois atributos comporo a chave primria de tab-aux
Atributos de relacionamentos devem ser includos na tabela tab-aux
Notao

E1
PK-E1

PK-E1

Tab-aux

PK-E2

E2
PK-E2
81

4. Projeto de Bancos de
Dados
- Mapeamento do MER para um Banco de Dados
Relacional Passo 5
Para relacionamento de grau maior que 2
Criar uma nova tabela auxiliar tab-aux para representar o
relacionamento
Incluir como chaves estrangeiras na tabela tab-aux as chaves
primrias das tabelas que participam do relacionamento
Estes atributos comporo a chave primria de tab-aux

Passo 6
Para cada conjunto de entidades fracas F
Cria uma tabela TFr com todos os atributos de F
Incluir como chave estrangeira de TF a chave primria da tabela
correspondentes ao conjunto de entidades fortes R
A chave primria de TFr ser a chave parcial de F mais a chave
primria de R

82

4. Projeto de Bancos de
Dados
- Mapeamento do MER para um Banco de Dados
Relacional Passo 7
Para cada atributo multivalorado A de um conjunto de entidades E1
Criar uma tabela T com o atributo A
Incluir como chave estrangeira em T a chave primria de E1
A chave primria de T ser composta do atributo A mais a chave
primria de E1

83

4. Projeto de Bancos de Dados


- Mapeamento do MER para um Banco de Dados Relacional Exerccio
Construa o DR para o seguinte DER
cod-ag

nome

Agncia

ender gerente

num-conta

saldo

Conta

n
data_abertura

cod-cliente
CPF
nome

ender

Cliente
data-nasc
84

4. Projeto de Bancos de
Dados
cod-ag-

nome ender gerente


Mapeamento
do MER para um Banconum-conta
de Dados
Relacional -

cod_ag

Agncia

saldo

Conta

num-conta

cod-ag

AG_CC

tipo-conta

cod-ag, num-conta

Cliente_Conta

data-abert

cod-cliente
ender

cod-cliente
CPF
nome

Cliente
data-nasc
85

Вам также может понравиться