Sei sulla pagina 1di 76

Banco de Dados

Eng. da Computação
UFC Sobral-Ce

Prof: Marcos Bendor


e-mail: marcosbendor@hotmail.com
Unidade 4: Modelagem de Dados
o Modelos conceituais e projeto de banco de dados
o Modelo Entidade-Relacionamento,
o Diagramas E-R
o Projeto conceitual usando E-R
o Mapeamento E-R para relacional.
o Exercícios
Tipos de Modelo de Dados

• Modelos representacionais (lógicos)


– Utilizados para se descrever a estrutura de um banco
de dados da forma como será manipulado através de
SGBD (mais dependente das estruturas físicas de
armazenamento de dados)
– Exemplos:
• Modelo relacional
• Modelo de rede (CODASYL)
• Modelo hierárquico
Tipos de Modelo de Dados

• Modelos físicos
– Utilizados para descrever como os dados são
fisicamente armazenados
Modelo Entidade-Relacionamento
Modelo ER - Conceitos

• Entidades:
– Objetos do mundo real que são de interesse
para alguma aplicação
• Atributos:
– Propriedades utilizadas para descrever uma
entidade
Name = John
Address = 2311 Kirby, Houston, TX
Age = 55
e1 Home Phone = 713-749-2630
(Employee)
Modelo ER - Conceitos
• Tipos (classes) de atributo:
– Simples ou compostos
• Ex. Endereço (Endereço da Rua (número, nome da rua,
número do apto), Cidade, Estado, CEP)
– Monovalorados ou multivalorados
• Ex. Profissão
– Armazenados ou derivados
• Data de Nascimento  Idade, Empregados trabalhando
no departamento  NumeroDeEmpregados
– Valores Null
• Não aplicável
– Ex. Número do apartamento
• Desconhecido
– Ex. Telefone de casa
Modelo ER - Conceitos
• Tipo de entidade:
– Define um conjunto de entidades que têm
os mesmos atributos (propriedades)
– Descreve o esquema para um conjunto de
entidades que compartilham a mesma
estrutura
– Exemplos:
• Employee, Company
Modelo ER - Conceitos

• Chave de um tipo de entidade:


– Atributo que possui valor único para cada entidade
(instância)
• Ex. Nome da companhia, identidade do empregado
– Chave pode ser formada por vários atributos: chave
composta
• Registro do Veiculo: Numero de Registro e Estado
• Domínio de um atributo:
– Conjunto de valores que podem ser atribuídos a um
atributo para cada entidade individualmente
– Ex. Idade do Empregado: (16,70); Nome do
Empregado:String
Figura 3.5

Tipos de entidade e suas instâncias


M

Esquema conceitual
Modelo ER - Conceitos

• Relacionamentos:
– Associações entre duas ou mais entidades
distintas (instâncias) com um significado
– Exemplo:
• Employee John Smith Works-for Department
Research
• Employee Fred Brown Manages Department
Research
• Departament Research Controls Project X
Modelo ER - Conceitos

• Tipo de Relacionamento:
– Define um conjunto de associações entre n
tipos de entidade E1, E2,...,En
– Exemplo:
• Works-for entre Employee e Department

Employee Works-for Department


Modelo ER - Conceitos

• Tipo de Relacionamento:
– Matematicamente, um tipo de relacionamento R é
um conjunto de (instâncias de) relacionamentos ri,
onde cada ri associa n (instâncias de) entidades
(e1,...,en) e cada ej pertence a um tipo de entidade
Ej
– R  E1 x E2 x ... x Em
• Grau de um Tipo de Relacionamento
– Número de tipos de entidade participantes de um
tipo de relacionamento
Aula02
Modelo de Dados Relacional
Introdução

• O modelo relacional representa um banco de


dados como um conjunto de relações

• Informalmente, uma relação é uma tabela de


valores, onde cada linha representa uma
coleção de dados relacionados

• Cada linha de uma tabela representa um “fato”


que tipicamente corresponde a uma entidade
ou relacionamento do mundo real
Conceitos Básicos
• As linhas de uma relação (tabela) são chamadas
de tuplas
• Ao cabeçalho de cada coluna dá-se o nome de
atributo
• O conjunto de valores que pode aparecer em cada
coluna é chamado de domínio
Conceitos Básicos
• Esquema de relação
– Descreve a relação
– R(A1,A2, ...,An), onde:
• R  Nome da relação
• Ai  Nome de um atributo
• n  Grau da relação
• Cada Atributo Ai e’ o nome de um papel
desempenhado por algum dominio D no Esquema da
relação R
– Exemplo:
• Student(Name, SSN, HomePhone, Address,
OfficePhine, Age,GPA)
Conceitos Básicos
• Relação r(R)
– Conjunto de tuplas: r = {t1,t2, ..., tm}
– Cada tupla é uma lista ordenada de valores: t =
<v1,v2, ..., vn>
Características de uma Relação
• As tuplas de uma relação não são
ordenadas

Benjamin Bayer 305-61-2425 373-1616 2918 Bluebonnet Lane null 19 3.21

• Registros em um arquivo são ordenados


de acordo com a posição em que são
armazenados no disco
Características de uma Relação

 Uma tupla é uma lista ordenada de valores


 O valor de cada atributo em uma tupla é atômico
 Atributos compostos e multivalorados não são permitidos
 O valor especial null é utilizado para representar valores
não conhecidos ou não aplicáveis a uma determinada
tupla
Restrições de Integridade
• Restrições de domínio
– Especificam que o valor de cada atributo A de uma
relação deve ser um valor atômico do domínio dom(A)
• Restrições de chave
– Por definição todas as tuplas sao distintas
– Um conjunto de atributos SK de um esquema de
relação R tal que, para duas tuplas quaisquer t1 e t2 de
r(R), t1[SK]  t2[SK] é uma super-chave de R
• Super-chave default: todos os atributos
– Uma chave de R é uma super-chave com a
propriedade adicional de que nenhum de seus
subconjuntos também seja uma super-chave de R
• {SSN,Name,Age} = super-chave; {SSN} = chave
Restrições de Integridade
• Restrições de chave
– Um esquema de relação pode ter mais de uma chave
 chaves candidatas
– Dentre as chaves candidatas de um esquema de
relação, uma delas é indicada como chave primária e
as demais constituem as chaves alternativas
Restrições de Integridade

• Restrições em valores null


– Especifica se a um atributo é permitido ter valores null
– Exemplo. Todo Estudante deve ter um nome válido,
não-null
Esquema de um BD Relacional
Restrições de Integridade
• Além das restrições de domínio e de
chave as seguintes restrições de
integridade são parte do modelo
relacional:
– Restrição de integridade de entidade
• Nenhum componente de uma chave primária
pode ser nulo
Restrições de Integridade
• Restrição de integridade referencial
– Usada para manter a consistencia entre tuplas de
duas relacoes
– Uma tupla em uma relação que se refere a outra
relação deve referenciar uma tupla existente nesta
outra relação
– Aparecem devido aos relacionamentos entre
entidades
– Seja FK um conjunto de atributos de um esquema
de relação R1 definido sobre o mesmo domínio dos
atributos da chave primária PK de outro esquema
R2. Então, para qualquer tupla t1 de R1:
• t1[FK] = t2[PK], onde t2 é uma tupla de R2 ou
• t1[FK] é nulo
Restrições de integridade referencial
Projeto Lógico de Bancos de
Dados Relacionais
Aula 07
Tópicos

• Processo de Projeto de Bancos de Dados


• Exemplo Preliminar
• Representação Relacional de Esquemas ER
• Implementação Usando SQL
• Referências Bibliográficas
Processo de Projeto de
Bancos de Dados
• Caracterização
– Complexidade
– Multiplicidade de tarefas
• Fases
– Coleção e análise de requisitos
– Projeto conceitual
– Escolha de um sistema gerenciador de banco de
dados
– Projeto lógico (ou mapeamento para o modelo de
dados do SGBD escolhido)
– Projeto físico
– Implementação e “tuning”
Exemplo de um Diagrama ER

NEmp NomeEmp Salário NDept NomeDept Ramal

Trabalha-para 1
N
Empregado Departamento
1 1 1 1
Gerencia

Possui M Controla

N N
Participa-de N
Dependente Projeto

NomeDep DataNasc HsTrab NProj NomeProj Local


Representação de Tipos de Entidade
(sem atributos multivalorados)

NEmp

Empregado NomeEmp

Salário

Empregado (NEmp(nn),NomeEmp,Salário)
Representação de Tipos de Entidade
(com atributos multivalorados)

NDept

NomeDept
Departamento

Ramal

Departamento (NDept(nn),NomeDept)

Ramal-Departamento (NDept(nn), Ramal(nn))


Ramal-Departamento [NDept]p  Departamento [NDept]
Representação de Tipos de
Entidade Fraca

N
Empregado 1 Possui Dependente

NEmp NomeDep DataNasc

Empregado (NEmp(nn),...)

Dependente (NEmp(nn),NomeDep(nn), DataNasc)


Dependente [NEmp] p Empregado [NEmp]
Representação de Tipos de
Relacionamento N:1
(mapeamento 1-1)
N 1
Empregado Trabalha-para Departamento

NEmp NDept

Empregado (NEmp(nn),...)
Departamento (NDept(nn),...)
Trabalha-para (NEmp(nn),NDept(nn))
p
Representação de Tipos de Relacionamento N:1
(mapeamento otimizado)

N 1
Empregado Trabalha-para Departamento

NEmp NDept

Empregado (NEmp(nn),...,NDept(nn))
Departamento (NDept(nn),...)
Empregado [NDept]b Departamento [NDept]
Representação de Tipos de Relacionamento 1:1
(mapeamento otimizado)

1 1
Empregado Gerencia Departamento

NEmp NDept

Empregado (NEmp(nn),...)
Departamento (NDept(nn),...,NEmp(nn))
Chave alternativa
Departamento [NEmp]b  Empregado [NEmp]
Representação de Tipos de
Relacionamento M:N

M N
Empregado Participa-de Projeto

NEmp HsTrab NProj

Empregado (NEmp(nn),...)
Projeto (NProj(nn), ...)
Participa-de (NEmp(nn),NProj(nn), HsTrab)
Participa-de [NEmp]p  Empregado [NEmp]
Participa-de [NProj]p  Projeto [NProj]
2.1 Modelo Entidade Relacionamento
Relacionamentos Simples

Entidade1 Relacionamento Entidade2

41
2.1 Modelo Entidade Relacionamento
Relacionamentos Múltiplos

Entidade1 Relacionamento Entidade2

Entidade3

42
2.1 Modelo Entidade Relacionamento
Mapeamento de Restrições
Expressa o numero de entidades as
Cardinalidade quais outra entidade poder estar
associada via um conjunto de
A B relacionamentos. A B
a1 b1 a1
b1
a2 b2 a2
A B b2
a3 b3 a3
b3
a4 b4 b1 a4
b4
a1 b2
1:1 N:N
a2 b3
a3 b4
b5
1:N 43
2.1 Modelo Entidade Relacionamento
Mapeamento de Restrições

Dependência Se a existência da entidade x


de depende da existência da entidade y,
Existência então x é dito dependente da
existência da entidade y.

Empréstimo -
Empréstimo Pagamento
Pagamento

num num data total


Entidade dominante Entidade subordinada
44
2.1 Modelo Entidade Relacionamento
Atributos de Relacionamento

Modelar o relacionamento que associe os materiais


de insumo de uma empresa com os fornecedores.
Os materiais possuem os seguintes atributos:
código, nome e descrição.
Os fornecedores possuem os seguintes atributos:
CGC, nome e endereço.

45
Entidades Fracas

Conjunto de entidades que não possuem


atributos suficientes para formar uma chave
primária.

Empréstimo -
Empréstimo Pagamento
Pagamento

num num data total


Entidade dominante Entidade subordinada
46
Auto-Relacionamento

Dado um conjunto de entidades E, onde os


elementos de E se relacionam entre si, existe
auto-relacionamento.

Funcionário Material

1 N N N
gerencia gerenciado é componente tem como
por de componente
Gerenciamento Composições
de Pessoal
47
Restrições de Integridade em SQL

• Restrições de unicidade (unique constraints)


que indicam a chave primária e as chaves
alternativas de uma tabela
• Restrições de integridade referencial (referential
constraints) que especificam as chaves
estrangei-ras de uma tabela
• Restrições de verificação (check constraints)
que especificam condições que devem ser
satisfeitas por coluna/linhas de uma tabela ou
entre tabelas
Restrições de Unicidade

• Chave primária
primary key (<attribute list>)
• Chaves alternativas
unique (<attribute list>)
create table Departamento
( ...
primary key (NDept),
unique (NomeDept),
...)
Restrições de Integridade Referencial

foreign key (<attribute list>)


references <table name> [(<attribute list>)]
[on delete cascade | set null | set default]
[on update cascade | set null | set default]
create table Participa-de
(...
foreign key NEmp references Empregado
on delete cascade)
Modelo Relacional

Atributos
(Nomes
das colunas)
Nome Fabricante
Tuplas
Winterbrew Pete’s
(linhas) Bud Lite Anheuser-Busch

Cervejas
Nome
da Relação
Esquemas

• Esquema de Relação = nome da relação


+ lista de atributos.
– Opcionalmente: tipos dos atributos.
– Exemplo:
• Cerveja(nome, fabr) ou
• Cerveja(nome: string, fabr: string)
• Banco de Dados = coleção de relações.
• Esquema de Banco de Dados = conjunto
de todos os esquemas de relação em um
banco de dados.
Por que utilizar relações ?

• Modelo muito simples.


• Frequentemente corresponde à maneira como
pensamos sobre os dados.
• Modelo abstrato por trás da linguagem SQL
(Structured Query Language), a linguagem de
consultas de dados mais importante atualmente.
• Permite ver um Banco de Dados como uma
Teoria da Lógica de Primeira Ordem
(E.F.Codd)
Histórico do Modelo Relacional

• Criado em 1970 por Edgar Frank Codd


• Matemático de Oxford (Inglaterra)
• Desenvolveu o Modelo Relacional de
dados quando trabalhava na IBM Almaden
• Ganhou a Medalha Turing (o “Prêmio
Nobel da Ciência da Computação”)

http://pt.wikipedia.org/wiki/Edgar_Frank_Codd
Exemplo

Cervejas(nome, fabr)
Bares(nome, end, licença)
Consumidores(nome, end, tel)
Gosta(consumidor, cerveja)
Vend(bar, cerveja, preço)
Frequenta(consumidor, bar)
• Sublinhado = chave (tuplas não podem ter o
mesmo valor em todos os atributos-chave).
– Um ótimo exemplo de Restrição de Dados
Os 3 níveis de abstração de um SGBD

• Nível Físico: como os dados são


armazenados e estruturados em disco.
• Nível Conceitual: como modelar uma
situação real através de um esquema de
banco de dados relacional – criação dos
esquemas relacionais.
• Nível Externo: quais partes do modelo
serão acessíveis por cada grupo de
usuários.
Modelos de Dados, Esquemas e Instâncias

Definição 1: Um modelo de dados é uma


norma que pode ser usada para representar
dados do mundo real em forma abstrata. Ele é
composto por um conjunto de objetos ou
entidades, um conjunto de operadores e um
conjunto de regras de integridade.

Um modelo de dados é usado para especificar


(descrever) os objetos do mundo real, os
relacionamentos entre eles e as restrições sobre
eles.

57
Modelos de Dados, Esquemas e Instâncias

2.sem.2008 Aqueo Kamada 58


Modelos de Dados, Esquemas e Instâncias

59
Arquitetura de BD
• Arquitetura em 3 níveis

• Esquema Conceitual - Logicamente descreve todos


os dados no BD

Esquema Interno (Esquema Físico) - Descreve


como os dados estão armazenados no BD

Esquema Externo - Visão do usuário – Descreve


uma porção lógica dos dados no BD

60
Arquitetura de BD
Conceittual
Funcionário: Registro char(6)
NumDepto char(4)
Salário Numeric(5)

Interno Funcionário lenhgth=21


Header Type = byte(6)
#Registro Type = byte(6), offset = 6, index = FUNCX
#Depto Type = byte(4), offset = 12
Salário Type = byte(5), offset = 16

Externo
Visão do usuário 1 Visão do usuário 2
NumFunc char(6) NumeroFuncionário char(6)
NumDepto char(4) Salário integer(5)
61
4.1 Introdução
▫ Integridade: a linguagem Sequel o System R
inclui comandos para verificação de restrições de
integridade complexas. O padrão ANSI(86) limitou
estas restrições. Porém, novos padrões tipo SQL-
99 incorporam várias formas de expressar
restrições de integridade (Assertivas e Triggers).

▫ Controle de Transação: algumas implementações


de SQL permitem fazer tratamento de controle de
concorrência e tolerância à falhas (locks
explícitos, commit, rollback).
Modelos de Banco de Dados

• Modelo de (Banco de) Dados: descrição


das informações que estão armazenadas
em um banco de dados.
Modelos de Banco de Dados

• Pode ser modelado a vários níveis de


abstração:
 Modelo Conceitual: não contém detalhes sobre a
representação em meio físico das informações;
 Modelo Lógico: descrição de como as informações estão
organizadas internamente, visão do usuário do SGBD; e
 Modelo Físico: descreve os dados no nível mais baixo
(interno); trata dos aspectos de implementação do
SGBD.
Modelos de Banco de Dados

• Modelo Conceitual
Modelos de Banco de Dados

• Modelo Conceitual
 Também conhecido como Modelo Lógico com Base em
Objetos;
 Registra que dados podem aparecer no banco de dados,
mas não registra como estes dados estão armazenados a
nível de SGBD;
 Existem vários técnicas de modelagem conceitual:
- Abordagem Entidade-Relacionamento; e
- Abordagem orientada a objetos.
Outras formas de representar o
DER
Modelos de Banco de Dados

• Modelo Lógico
Modelos de Banco de Dados

• Modelo Lógico
 Também conhecido como Modelo Lógico com Base
em Registros;
 Dependente do tipo particular de SGBD que está
sendo usado;
Modelos de Banco de Dados

• Os três modelos lógicos mais conhecido


são:
 Modelo de Rede: representado por um conjunto de
registros; sendo as relações através de ponteiros;
 Modelo Hierárquico: similar ao modelo de rede; a
diferença é gráfica, sendo os registros organizados em
árvores;
 Modelo Relacional: usa um conjunto de tabelas para
representar os dados, compostas por linhas e colunas.
Exercícios

Em uma companhia têm-se Empregados


trabalhando em Projetos e utilizando
Máquinas nestes projetos.

Fazer o DER
Resposta

Empregado Está-Vinculado Projeto

Máquina
Construa o Modelo E-R
• Uma empresa de venda de automóveis pretende implementar um sistema para gerir
a informação relativa às reparações de oficina efetuadas nos veículos dos seus
clientes.
• O sistema de informação deverá permitir manter um histórico de todas as reparações
efetuadas. A empresa pretende manter dos clientes a seguinte informação: código
de identificação, nome, endereço e telefone.
• A empresa pretende também saber os veículos que um dado cliente teve ou tem e
as datas em que foram adquiridos. Dos funcionários da oficina a empresa pretende
manter a seguinte informação: código de identificação, nome, endereço, telefone e
categoria. O custo horário de mão de obra depende da categoria do funcionário e é
definido através de uma tabela que é atualizada regularmente.
• A empresa pretende saber para cada reparação: qual o veículo, qual o cliente, a data
em que foi efetuada e o custo total da reparação.
• A empresa pretende também armazenar para cada reparação as peças que foram
utilizadas e o seu preço, bem como o tempo de mão de obra gasto por cada
funcionário e o respectivo custo.
• A empresa pretende manter para as peças em armazém a seguinte informação:
código de identificação, designação, custo unitário e quantidade em armazém.
Construa o Modelo E-R
Faça o mapeamento ER para Relacional

Potrebbero piacerti anche