Sei sulla pagina 1di 12

Ciclo de vida de um banco de dados relacional

  • 1. Formulação e análise de requisitos:

    • a) Relacionamentos naturais entre os dados (independentes de processo).

    • b) Requisitos de uso (dependentes de processo).

    • c) Plataforma: hardware/software: SO, SGBD

    • d) Requisitos de desempenho e integridade.

Resultado: Documento de especificação de requisitos.

Ciclo de vida de um banco de dados relacional 1. Formulação e análise de requisitos: a)
  • 2. Projeto lógico do banco de dados:

    • a) Modelo ER (projeto conceitual)

    • b) Integração dos múltiplos diagramas ER da empresa.

    • c) Transformação dos diagramas ER para tabelas relacionais.

    • d) Normalização das tabelas relacionais.

Resultado: Esquema global transformado para definições de tabelas.

a)

Ciclo de vida de um banco de dados relacional 1. Formulação e análise de requisitos: a)

c)

Ciclo de vida de um banco de dados relacional 1. Formulação e análise de requisitos: a)

d)

Ciclo de vida de um banco de dados relacional 1. Formulação e análise de requisitos: a)

3.

Projeto físico do banco de dados:

Seleção de índices e métodos de acesso.

4.

Distribuição do banco de dados (se necessário distribuir os dados em rede):

Fragmentação dos dados, replicação: Minimizar tempo de resposta, minimizar custos, maximizar disponibilidade.

5.

Implementação do banco de dados, monitoração e modificação.

Modelo Entidade-Relacionamento

  • - O modelo Entidade-Relacionamento foi proposto originalmente por Peter Pin Shan-Chen (MIT) em 1976, no

trabalho entitulado "The Entity-Relationship Model - Toward a Unified View of Data".

  • - Tem sido usado rotineiramente na análise e modelagem de sistemas.

  • - O modelo entidade-relacionamento (E-R) é baseado na percepção do mundo real como um conjunto de objetos

básicos chamados entidades e nos relacionamento entre as mesmas.

  • - Para a introdução dos conceitos associados ao modelo entidade-relacionamento e ao projeto de uma base de dados,

vamos utilizar um exemplo: A base de dados COMPANHIA.

A Base de Dados Companhia

  • - Base que armazena dados sobre funcionários, departamentos e projetos. Descrição:

Companhia organizada em departamentos. Cada departamento tem:

o

o

o

o

Um nome;

Um número que identifica o departamento;

Número de funcionários;

Uma localização;

o

Um funcionário que gerencia o departamento:

Armazena-se a data de início em que o funcionário começou a gerenciar o departamento.

Um departamento é responsável pelo controle de diversos projetos. Cada projeto tem:

o

o

o

Um nome;

Um número que identifica o projeto;

Uma localização.

Sobre o funcionário armazena-se:

o

Nome;

o

o

o

o

Número do seguro social;

 

CPF;

Endereço;

Salário;

o

Sexo;

o

o

Data de nascimento;

 

Idade.

Todo funcionário é associado a um departamento, mas pode trabalhar em diversos projetos, não necessariamente controlados pelo mesmo departamento. Todo funcionário precisa atuar em pelo menos um projeto. Armazena-se:

o

o

Número de horas que o empregado trabalha em cada projeto.

Quem é o supervisor direto de cada funcionário. Nem todo funcionário tem um supervisor.

Os dependentes de cada funcionário são armazenados para garantir os benefícios do seguro. Para cada dependente são armazenados:

o

o

o

Nome;

Sexo;

Data de nascimento;

o

Idade;

o

Relacionamento com o empregado.

Conceitos do Modelo Entidade-Relacionamento Entidades e Atributos

- Entidade: - É uma classe de objetos do mundo real que possuem uma existência independente e que possuem propriedades em comum sobre as quais deseja-se armazenar informações.

  • - Tais objetos podem ter existência física: Pessoa, Carro, Livro.

  • - Podem ainda ter apenas existência conceitual: Curso Universitário, Projeto.

- Instância de entidade: - É uma ocorrência de uma entidade. O equivalente lógico de uma instância é um registro de uma tabela. Exemplo: A entidade Funcionário possui várias instâncias: o funcionário Pedro da Costa, com CPF 123456789, que mora no endereço R. A, 23; o funcionário Paulo da Silva, com CPF 987654321, que mora no endereço R. B, 32 e assim por diante.

- Atributos: - Propriedades particulares de uma entidade (ou relacionamento). Exemplo:

o Idade; o Relacionamento com o empregado. Conceitos do Modelo Entidade-Relacionamento Entidades e Atributos - Entidade:

e1

Nome=João da Silva

Endereço = R. Goiás, 711 São Paulo, SP, 1301100 Idade = 55 Telefone residencial = 713-3345

Classificação de Atributos:

c1

o Idade; o Relacionamento com o empregado. Conceitos do Modelo Entidade-Relacionamento Entidades e Atributos - Entidade:

Nome = Cooper Sugar

Sede = Ribeirão Preto

Presidente = João da Silva

Atributos compostos: Podem ser divididos em subpartes com significados independentes. Exemplo: O endereço da entidade e1 pode ser subdividido em Rua e número, Cidade, Estado e CEP. São úteis quando há a necessidade de se referenciar os mesmos como um todo, mas algumas vezes, apenas alguns de seus componentes.

Atributos simples: Em contraposição aos atributos compostos, são aqueles que não são divisíveis em partes. Exemplo: O atributo idade.

Atributos multivalorados: São aqueles que podem assumir múltiplos valores para uma dada instância da entidade. Exemplo: É comum que uma pessoa tenha vários números de telefone ou vários endereços comerciais.

Atributos monovalorados: Em contraposição aos atributos multivalorados, são aqueles que assumem um único valor para cada instância de uma entidade. Exemplo: Nome, CPF, data de aniversário são todos exemplos de atributos que, para uma dada pessoa, assumem um único valor.

Atributos opcionais: Quando uma entidade não possui valor para determinado atributo ou quando seu valor é desconhecido, um valor especial chamado null é usado neste caso. Exemplo: O atributo Apartamento só se aplicaria para aqueles funcionários que residissem em algum prédio.

Atributos derivados: Aqueles cujos valores que assumem podem ser obtidos a partir de outro atributo ou a partir de relacionamentos entre entidades. Exemplo: O atributo idade pode ser obtido a partir da data de nascimento de uma pessoa.

Atributo-Chave: Atributo ou conjunto de atributos que identificam de modo único cada instância de uma entidade. Exemplo: O número do seguro social do funcionário. O CPF do funcionário.

- Chave-Primária: Pode ser escolhida dentre quaisquer um dos atributos chave, devendo-se evitar usar chaves- primárias compostas.

- Relacionamento: Classe de associações entre duas ou mais entidades. Exemplo: Há um relacionamento “Trabalha-Para” entre a entidade Funcionário e a entidade Departamento.

• Atributo-Chave: Atributo ou conjunto de atributos que identificam de modo único cada instância de uma

- Instância de relacionamento: Ocorrência particular de um relacionamento, envolvendo instâncias específicas de cada uma das entidades envolvidas. Exemplo: O Funcionário João da Silva “trabalha para” o Departamento de Desenvolvimento de Produtos.

Símbolos Utilizados

• Atributo-Chave: Atributo ou conjunto de atributos que identificam de modo único cada instância de uma

Retângulos – Representam entidades. Elipses – Representam atributos. Losângulos – Representam relacionamentos. Linhas – Ligam atributos a entidades e entidades a relacionamentos.

Atributos de Relacionamentos

  • - Os relacionamentos também podem ter atributos, da mesma forma que as entidades. Exemplo: Necessidade de se registrar o número de horas que um funcionário dedica a um determinado projeto.

O grau de um relacionamento

  • - Relacionamentos classificam-se quanto ao número de entidades envolvidas em:

Binários: Envolvem duas entidades.

• Binários: Envolvem duas entidades. • Binários recursivos: Envolvem a associação entre duas instâncias de uma

Binários recursivos: Envolvem a associação entre duas instâncias de uma única entidade as quais participam do relacionamento assumindo diferentes papeis.

• Binários: Envolvem duas entidades. • Binários recursivos: Envolvem a associação entre duas instâncias de uma

Ternários: Envolvem três entidades.

Retângulos – Representam entidades. Elipses – Representam atributos. Losângulos – Representam relacionamentos. Linhas – Ligam atributos

Mapeamento de Restrições

  • - O mundo real pode impor certas restrições que são refletidas nos relacionamentos. Exemplo: Uma regra segundo a qual um empregado trabalha apenas para um departamento.

  • - Dois tipos principais de restrições de relacionamentos são a razão de cardinalidade de um relacionamento e a dependência de existência (restrição de participação).

Razão de Cardinalidade

  • - A cardinalidade expressa o número de instâncias de uma entidade às quais uma instância de outra entidade pode estar associada por meio de um relacionamento e é, obviamente, dependente das situações reais que estão sendo modeladas pelo relacionamento.

-

Para um relacionamento binário entre as entidades A e B, a razão de cardinalidade pode ser:

Um para um (1:1): Uma instância da entidade A está associada a no máximo uma instância da entidade B, e uma instância da entidade B está associada a no máximo uma instância da entidade A. Exemplo:

 

Funcionário – Gerencia - Departamento

- Para um relacionamento binário entre as entidades A e B , a razão de cardinalidade

Um para muitos (1:N): Uma instância da entidade A está associada a várias instâncias da entidade B, e uma instância da entidade B está associada a no máximo uma instância da entidade A. Exemplo: Funcionário – Trabalha Para – Departamento

 
- Para um relacionamento binário entre as entidades A e B , a razão de cardinalidade

Muitos para muitos (N:M): Uma instância da entidade A está associada a várias instâncias da entidade B, e uma instância da entidade B está associada a várias instâncias da entidade A. Exemplo: Funcionário – AtuaEm - Projeto

 
- Para um relacionamento binário entre as entidades A e B , a razão de cardinalidade

Restrição de Participação

Esta restrição especifica se a existência de uma instância de uma entidade depende de ela estar relacionada com uma instância de outra entidade através de um relacionamento.

-

-

Existem dois tipos de restrição de participação:

Total: Também chamada de dependência existencial. Ocorre quando a existência de uma instância de uma dada entidade depende da participação da mesma em um relacionamento.

Exemplo:

  • - Se uma companhia estabelece a regra de que todo funcionário deve trabalhar para um departamento, então uma

instância da entidade funcionário só pode existir se participar de um relacionamento Trabalha-Para.

  • - A participação de Funcionário em Trabalha-Para é total.

  • - A entidade Departamento é chamada de entidade dominante ou forte e a entidade Funcionário de entidade

dependente ou subordinada.

Parcial: Ocorre quando a existência das instâncias de uma dada entidade é independente de sua participação em qualquer relacionamento.

Exemplo:

  • - Não é esperado que todo funcionário gerencie um departamento, assim a participação de Funcionário no

relacionamento Gerencia é parcial.

  • - Não necessariamente todas as instâncias da entidade Funcionário estarão relacionadas a instâncias da entidade

Departamento via Gerencia.

Entidades Fracas

  • - Algumas entidades podem não ter quaisquer atributos-chave. Isto implica que podem haver instâncias cuja combinação dos valores dos atributos são idênticas.

  • - A identificação destas instâncias ocorre por estarem associadas a instâncias de uma outra entidade, em combinação com algum ou alguns de seus atributos.

  • - Esta outra entidade é dita ser proprietária da identificação e o relacionamento que relaciona uma entidade fraca com a proprietária da identificação é chamado relacionamento de identificação.

  • - Uma entidade-fraca sempre tem uma restrição de participação total (dependência existencial) com relação ao seu relacionamento de identificação.

Exemplo: Entidade Dependente, relacionada a Funcionario. Trata-se de um relacionamento 1:N. Os atributos de Dependente são Nome, DataNasc, Sexo e Relação com o funcionário (esposa, marido, filho, etc).

Dependentes de funcionários diferentes podem ter os mesmos valores para os atributos, e ainda assim tratam-se de entidades distintas. Os dependentes serão identificados como entidades distintas após a determinação da entidade funcionário com a qual cada um está relacionado.

  • - Uma entidade fraca possui uma chave parcial, que é um atributo ou conjunto de atributos que pode univocamente identificar instâncias da entidade fraca relacionadas à mesma instância da entidade proprietária.

Exemplo: Considerando que os dependentes de um mesmo funcionário terão nomes diferentes, então o atributo Nome de Dependente será a chave parcial.

Projeto da Base de Dados Companhia Utilizando o Modelo Entidade-Relacionamento

  • - Podemos especificar os seguintes tipos de relacionamentos extraídos da descrição sobre a companhia:

    • a) Gerencia (1:1) entre Funcionário e Departamento. A participação de Empregado é parcial. A participação de Departamento é total. O atributo DataInício é associado a esse relacionamento.

    • b) Trabalha-Para (1:N) entre Departamento e Empregado. Ambos têm participação total.

    • c) Controla (1:N) entre Departamento e Projeto. A participação de Projeto é total e de Departamento é parcial.

    • d) Supervisiona (1:N) entre Funcionário (no papel de supervisor)

e

Funcionário

(no

papel

de

supervisionado). A participação de ambos é parcial, pois nem todo funcionário é supervisor e nem todo funcionário é supervisionado.

  • e) Trabalha-Em (M:N) entre Funcionário e Projeto. Ambos têm participação total. O atributo Horas é associado a este relacionamento.

  • f) Dependente-de (1:N) entre Funcionário e Dependente. É um tipo de relacionamento de identificação para a entidade-fraca Dependente. A participação de Funcionário é parcial e de Dependente é total.

f) Dependente-de (1:N) entre Funcionário e Dependente. É um tipo de relacionamento de identificação para a

Mais sobre relacionamentos ternários

  • - Muitas vezes é difícil decidir se um relacionamento deve ser representado como sendo ternário ou se não pode ser representado por vários relacionamentos binários entre as entidades participantes. O projetista da base de dados deve se guiar pelo significado da situação particular que estiver representando para decidir qual alternativa adotar.

Exemplo1:

País N Vende M P Companhia Produto
País
N
Vende
M
P
Companhia
Produto
  • - Para um dado par (companhia, produto) há vários países para os quais o produto é vendido por aquela companhia.

  • - Para um dado par (país, produto) há várias companhias exportando aquele produto para aquele país.

  • - Para um dado par (companhia, país) há vários produtos exportados por aquela companhia para aquele país.

Companhia Produto País A abóbora Alemanha A abóbora Bélgica B abóbora Alemanha A pepino Alemanha C
Companhia Produto País
A
abóbora
Alemanha
A
abóbora
Bélgica
B
abóbora
Alemanha
A
pepino
Alemanha
C
pepino
Bélgica
N
Exporta
M
País
Companhia
N
Produz
M
Produto
Companhia País
Companhia Produto
A
Alemanha
A
abóbora
A
Bélgica
A
pepino
C
Bélgica
C
pepino
B
Alemanha
B
abóbora
M
Exporta
N
Companhia Produto País A abóbora Alemanha A abóbora Bélgica B abóbora Alemanha A pepino Alemanha C
  • - Notar que no nosso exemplo hipotético A não exporta pepino para a Bélgica.

  • - Não conseguiríamos representar este fato através do seguinte diagrama ER, a partir do qual a leitura que se faz é de que uma companhia manufatura vários produtos e exporta todos para um número de diferentes países.

Uma companhia

produz

muitos

produtos e exporta

todos os produtos que produz para um

número

de

diferentes países.

  • - Também não conseguiríamos representar este fato através do DER abaixo:

Companhia

N

Produz
Produz
País M Compra
País
M
Compra
M Produto N
M
Produto
N

Companhia

País

A

Alemanha

A

Bélgica

C

Bélgica

B

Alemanha

Exemplo 2: Relacionamento ternário 1:N:M

Companhia

Produto

A

abóbora

A

pepino

C

pepino

B

abóbora

País

Produto

Alemanha

abóbora

Alemanha

pepino

Bélgica

abóbora

Bélgica

pepino

Gerente 1 Gerencia N Engenheiro
Gerente
1
Gerencia
N
Engenheiro

M

Projeto
Projeto

Para um dado par (Engenheiro, Projeto): Há apenas 1 gerente. Isto é, cada engenheiro trabalhando em um projeto particular tem exatamente um gerente. Para um dado par (Gerente, Projeto): Há vários engenheiros. Isto é, cada gerente de um projeto pode gerenciar muitos engenheiros. Para um dado par (Gerente, Engenheiro): Há vários projetos. Isto é, cada gerente de um engenheiro pode gerenciar aquele engenheiro em vários projetos.

Exemplo 3: Relacionamento ternário 1:1:N

Projeto 1 DesignadoA 1 N Local Funcionário
Projeto
1
DesignadoA
1
N
Local
Funcionário

Para um dado par (Funcionário, Projeto): Há apenas um local de trabalho. Isto é, cada funcionário designado para um projeto trabalha em apenas um local naquele projeto (mas pode estar em diferentes locais para diferentes projetos). Para um dado par (Funcionário, Local): Há apenas um projeto. Isto é, em um particular local um funcionário trabalha apenas em um projeto. Para um dado par (Projeto, Local): Há vários funcionários. Isto é, em um particular local podem haver muitos funcionários designados para um projeto.

Atenção: Este DER não implica que um funcionário participe de um só projeto.

Exemplo 4: Relacionamento ternário 1:1:1

Professor 1 Usa 1 1 Livro Curso
Professor
1
Usa
1
1
Livro
Curso

Um professor usa um livro para um dado curso. Nenhum professor usa o mesmo livro para diferentes cursos. Mas diferentes professores podem usar o mesmo livro em diferentes cursos.

Extensões do Modelo E-R

- Apesar de ser possível modelar a maioria dos bancos de dados apenas com os conceitos básicos do E-R, alguns aspectos de um banco de dados podem ser expressos de modo mais conveniente por meio de algumas extensões como especialização e generalização.

Especialização

  • - Uma entidade pode conter subgrupos de instâncias que são, de alguma forma, diferentes de outras instâncias do conjunto.

  • - O processo de projetar subgrupos de uma entidade é chamado especialização e é representado graficamente por um triângulo.

Exemplo:

Especialização - Uma entidade pode conter subgrupos de instâncias que são, de alguma forma, diferentes de
  • - Estas entidades de nível inferior podem possuir atributos, ou mesmo participar de relacionamentos que não podem ser aplicados a todas as instâncias da entidade de nível superior.

  • - O uso do mecanismo de especialização evita que se tenha entidades com muitos atributos opcionais.

Exemplo:

Especialização - Uma entidade pode conter subgrupos de instâncias que são, de alguma forma, diferentes de
TipoFuncionário Nome (0,1) DataExpiracaoCarteiraHabilitacao Funcionário Código (0,1) (0,1) (0,1) NumeroCarteiraHabilitacao CREA CRM
TipoFuncionário
Nome
(0,1)
DataExpiracaoCarteiraHabilitacao
Funcionário
Código
(0,1)
(0,1)
(0,1)
NumeroCarteiraHabilitacao
CREA
CRM
Nome
Nome

Esta situação fica melhor modelada assim:

NumeroCarteiraHabilitacao
NumeroCarteiraHabilitacao
Código
Código

Funcionário

Especialização - Uma entidade pode conter subgrupos de instâncias que são, de alguma forma, diferentes de

Médico

CRM
CRM
Funcionário
Funcionário

Engenheiro

CREA
CREA
DataExpiracaoCarteiraHabilitacao
DataExpiracaoCarteiraHabilitacao

Generalização

  • - Generalização é o processo de sintetizar várias entidades em uma entidade de nível superior, com base em atributos comuns.

  • - Na prática, a generalização é simplesmente o inverso da especialização.

  • - Em termos do diagrama E-R propriamente dito, não faremos distinção entre a especialização e a generalização.

Herança de Atributos e Relacionamentos

  • - Os atributos das entidades de nível superior são herdados pelas entidades de nível inferior.

  • - As entidades de nível inferior (ou subclasses) também herdam a participação em relacionamentos dos quais participam as entidades de nível superior (ou superclasses).

Refletindo o aspecto temporal

  • - A modelagem do banco de dados deve refletir o fato de que existem:

Atributos cujos valores sofrem modificações ao longo do tempo.

Exemplo:

Empregado salário O banco de dados contém apenas o salário atual.
Empregado
salário
O
banco
de
dados
contém
apenas
o
salário atual.
Empregado Recebe Salário valor data O banco de dados contém o histórico dos salários.
Empregado
Recebe
Salário
valor
data
O
banco
de dados
contém o histórico dos
salários.

Relacionamentos sofrem modificações ao longo do tempo.

Exemplo:

Funcionário Alocação Mesa O banco de dados contém apenas a alocação atual.
Funcionário
Alocação
Mesa
O
banco
de
dados
contém
apenas
a
alocação atual.
Funcionário Alocação data Mesa O banco de dados contém o histórico das alocações.
Funcionário
Alocação
data
Mesa
O
banco
de dados
contém o histórico das
alocações.

12