banco de dados - douglasddp.files.wordpress.com · em sistemas operacionais. ... esta arquitetura...

97
Banco de Dados Dados Professor: Douglas Diego de Paiva

Upload: nguyenkhanh

Post on 09-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Banco de DadosDados

Professor: Douglas Diego de Paiva

Aula 01

Banco de DadosConceituação BDSGBDModelos de Bancos de DadosArquiteturas de Banco de Dados

Abordagem Entidade-RelacionamentoEntidadeRelacionamento

O termo banco de dados foi criado para indicar coleções

organizadas de dados armazenados em computadores digitais

� Porém o termo é atualmente usado para indicar tanto bancos de dados

digitais como bancos de dados disponíveis de outra forma.

� Base de dados X gerenciados por um SGBD (Sistema Gerenciador de

banco de Dados).

� Abordagem mais técnica, banco de dados é uma coleção de registros

salvos em um computador em um modo sistemático (armazenamento),

de forma que um programa de computador possa consultá-lo para

responder questões (recuperação).

� Abrangendo praticamente todo o campo dos programas de computador.

� Preferencial para aplicações multi-usuário, nas quais é

necessário haver coordenação entre vários usuários.

� Há uma grande variedade de bancos de dados, desde simples

tabelas armazenadas em um único arquivo até gigantescos

bancos de dados com muitos milhões de registros,

armazenados em salas cheias de discos rígidos.

SGBD

� Um SGBD é uma coleção de programas que

permitem ao usuário definir, construir e manipular

dados para as mais diversas finalidades.

SGBD – Regras

SGBD – Sistema Gerenciador de Banco de Dados“Sistema cujo objetivo principal é gerenciar o acesso e a correta manutenção dos dados armazenados em um banco de dados.”

Ex: Oracle, Firebird, MySQL, PostgreSQL

GA – Gerenciador de ArquivosGA – Gerenciador de Arquivos“Programa usado para criar e organizar pastas e ficheiros (arquivos)em sistemas operacionais.”

Ex: Windows Explorer, Nautilus, Konqueror

SGBD x GA

� Regra 1: AutoAuto--ContençãoContenção -- Um SGBD não contém apenas os

dados em si, mas armazena completamente toda a descrição dos

dados, seus relacionamentos e formas de acesso.Em um GA, em

algum momento ao menos, os programas aplicativos declaramalgum momento ao menos, os programas aplicativos declaram

estruturas (algo que ocorre tipicamente em C), ou geram os

relacionamentos entre os arquivos (típicos do ambiente xBase). Por

exemplo, quando você é obrigado a definir a forma do registro em

seu programa, você não está lidando com um SGBD.

� Regra 2: Independência dos Dados - Quando as aplicações

estiverem realmente imunes a mudanças na estrutura de

armazenamento ou na estratégia de acesso aos dados, podemos

dizer que esta regra foi atingida. Portanto, nenhuma definição dosdizer que esta regra foi atingida. Portanto, nenhuma definição dos

dados deverá estar contida nos programas da aplicação. Quando

você resolve criar uma nova forma de acesso, um novo índice, se

precisar alterar o código de seu aplicativo, você não está lidando

com um SGBD.

� Regra 3: Abstração dos Dados - Em um SGBD real é fornecida ao

usuário somente uma representação conceitual dos dados. O

Modelo de Dados é um tipo de abstração utilizada para fornecer

esta representação conceitual. Neste modelo, um esquema das

tabelas, seus relacionamentos e suas chaves de acesso sãotabelas, seus relacionamentos e suas chaves de acesso são

exibidas ao usuário, porém nada é afirmado sobre a criação dos

índices, ou como serão mantidos, ou qual a relação existente entre

as tabelas que deverá ser mantida íntegra. Assim se você desejar

inserir um pedido em um cliente inexistente e esta entrada não for

automaticamente rejeitada, você não está lidando com um SGBD.

� Regra 4: Visões - Um SGBD deve permitir que cada usuário

visualize os dados de forma diferente daquela existente

previamente no Banco de Dados. Uma visão consiste de um

subconjunto de dados do Banco de Dados, necessariamente

derivados dos existentes no Banco de Dados, porém estes nãoderivados dos existentes no Banco de Dados, porém estes não

deverão estar explicitamente armazenados. Portanto, toda vez que

você é obrigado a replicar uma estrutura, para fins de acesso de

forma diferenciada por outros aplicativos, você não está lidando

com um SGBD.

� Regra 5: Transações - Um SGBD deve gerenciar completamente a

integridade referencial definida em seu esquema, sem precisar em

tempo algum, do auxílio do programa aplicativo. Desta forma exige-

se que o banco de dados tenha ao menos uma instrução que

permita a gravação de uma série modificações simultâneas e uma

instrução capaz de cancelar um série modificações. Por exemplo,

imaginemos que estejamos cadastrando um pedido para um cliente,imaginemos que estejamos cadastrando um pedido para um cliente,

que este deseje reservar 5 itens de nosso estoque, que estão

disponíveis e portanto são reservados, porém existe um bloqueio

financeiro (duplicatas em atraso) que impede a venda. A transação

deverá ser desfeita com apenas uma instrução ao Banco de Dados,

sem qualquer modificações suplementares nos dados. Caso você

se obrigue a corrigir as reservas, através de acessos complentares,

você não está lidando com um SGBD.

� Regra 6: Acesso Automático - Em um GA uma situação típica é o

chamado Dead-Lock, o abraço mortal. Esta situação indesejável pode

ocorrer toda vez que um usuário travou um registro em uma tabela e

seu próximo passo será travar um resgistro em uma tabela relacionada

à primeira, porém se este registro estiver previamente travado por outro

usuário, o primeiro usuário ficará paralisado, pois, estará esperando o

segundo usuário liberar o registro em uso, para que então possa travá-segundo usuário liberar o registro em uso, para que então possa travá-

lo e prosseguir sua tarefa. Se por hipótese o segundo usuário

necessitar travar o registro travado pelo primeiro usuário (!), afirmamos

que ocorreu um abraço mortal, pois cada usuário travou um registro e

precisa travar um outro, justamente o registro anteriormente travado

pelo outro! Se a responsabilidade de evitar esta ocorrência for

responsabilidade da aplicação, você não está lidando com um SGBD.

SGBD – Características

� Controle de Redundâncias – o armazenamento de uma mesma informação em

locais diferentes, provocando inconsistência;

� Compartilhamento dos Dados – controle de concorrência ao acesso dos dados;

� Controle de Acesso – selecionar a autoridade de cada usuário;

� Interfaceamento – acesso gráfico, em linguagem natural, em SQL ou ainda via

menus de acesso

� Esquematização – possibilitem a compreensão do relacionamento existente entre

as tabelas;

� Controle de Integridade – impedir que aplicações ou acessos pelas interfaces

possam comprometer a integridade dos dados.

� Backups – recuperar falhas de hardware e software

� Existem Bancos de Dados que não satisfaçam completamente

todas as características acima, o que não o invalida como Banco de

Dados.

� Banco de Dados baseado totalmente em um único servidor, e as

redundâncias podem ser aceitas em algumas situações sob

controle da aplicação.controle da aplicação.

� Compartilhamento dos Dados pode ser desconsiderada

principalmente em ambiente de desenvolvimento, ou ainda em

aplicações remotas

� O Controle de Acesso pode ser descartado em pequenas

empresas, sendo que o aplicativo em questão, mais o software de

rede, podem facilmente se incumbir desta característica.

� O Interfaceamento e a Esquematização são características sempre

disponíveis, o que varia neste caso é qualidade destes

componentes,

� De fato, quanto maior o número de pessoas envolvidas no

desenvolvimento de aplicações e gerenciamento do Banco de

Dados, mais importante tornam-se estas duas características.

� A esquematização existente no Banco de Dados é muito melhor do

que aquela mantida em alguma pasta, em algum arquivo do CPD,

que sempre está “um pouquinho” desatualizada.

� O Controle de Integridade é outra característica sempre presente

nos Bancos de Dados.

� O Backup em tempo de execução é outra característica sempre � O Backup em tempo de execução é outra característica sempre

disponível, cada Banco de Dados tem esta característica melhor ou

pior implementada, cabendo ao Administrador de Banco de Dados

escolher aquele que lhe oferecer mais segurança.

� Em uma empresa que sofre constantemente com a

perda de dados, um “técnico” sugeriu que fosse

implantado um Banco de dados, de acordo com o

mesmo após a implantação do referido banco de dados

a empresa não terá mais problemas deste tipo.

� Verdade ou Mentira?

� Um SGBD ou um BD não resolve totalmente o problema

dessa empresa porém, em um ambiente com acesso

constante ao Banco de Dados, onde a segurança seja

de vital importância e que o desempenho da aplicação

escrita estiver comprometendo a empresa,

considerando-se logicamente uma aplicação bem

escrita, sem dúvida a aquisição de um Banco de Dados

poderá ser o primeiro passo na solução do problema

Modelos de Bancos de Dados

� A maneira mais prática de classificar bancos de dados é de acordo com a

forma que seus dados são vistos pelo usuário, ou seja, seu modelo de dados.

� Modelos baseados em registros: Representam à realidade através de registros;

� Hierárquico - coleção de registros que se encontram relacionados entre si.

A estrutura hierárquica de ligação entre os registros toma o aspecto de uma

árvore invertida. Se um superior hierárquico for eliminado todos os que se

encontram abaixo dele na estrutura hierárquica serão eliminados.

� Rede – Permite que várias tabelas sejam usadas simultaneamente através do uso de

apontadores (ou referências). Algumas colunas contêm apontadores para outras

tabelas ao invés de dados.

� Relacional - O modelo relacional é uma teoria matemática que descreve como as

bases de dados devem funcionar. Embora esta teoria seja a base para o software de

bases de dados relacionais, muito poucos sistemas de gestão de bases de dados

seguem o modelo de forma restrita, e todos têm funcionalidades que violam a teoria,

desta forma variando a complexidade e o poder.

� Modelos baseados em objetos: Representam à realidade através de objetos;

� Orientado à Objeto - Na década de 90, o modelo baseado na orientação a objeto foi

aplicado também aos bancos de dados, criando um novo modelo de programação

conhecido como bancos de dados orientados a objeto. Os objetos são valores definidos

segundo classes, ou tipos de dados complexos, com seus próprios operadores (métodos).

Hierárquico Rede

Relacional

O único modelo que foi extensamente tratado de forma teórica

foi o modelo relacional.

Os modelos pré-existentes foram fruto de implementações,

enquanto os modelos subseqüentes, como o modelo orientadoenquanto os modelos subseqüentes, como o modelo orientado

a objetos, não apresentavam um campo tão rico para novas

teorias, mas apresentam grandes desafios para a

implementação eficiente das operações necessárias.

Exercícios1 – Defina:

a) Banco de Dados

b) Sistema Gerenciador de Banco de Dados

2 - Quais são as principais diferenças entre um Sistema de Banco de Dados e um sistema 2 - Quais são as principais diferenças entre um Sistema de Banco de Dados e um sistema

baseado em arquivos.

3 – Cite as principais características de um SGBD.

4 – Cite e explique os quatro modelos de bancos de dados com suas palavras.

5 – Descreva sobre três entre as seis regras que o sistema de manipulação de dados precisa

obter para ser considerado um SGBD.

Aula 02

Arquiteturas

Modelo Conceitual

Modelo Lógico

Modelo Entidade-Relacionamento

Arquiteturas

� Plataformas centralizadas - existe um computador com grande capacidade

de processamento, o qual é o hospedeiro do SGBD. Esta arquitetura tem

como principal vantagem a de permitir que muitos usuários manipulem

grande volume de dados. Sua principal desvantagem está no seu alto custo,

pois exige ambiente especial para mainframes e soluções centralizadas

� Sistemas de Computador Pessoal – PC - Os computadores pessoais

trabalham em sistema stand-alone, ou seja, fazem seus processamentos

sozinhos. Eles utilizam o padrão Xbase e quando se trata de SGBDs, sozinhos. Eles utilizam o padrão Xbase e quando se trata de SGBDs,

funcionam como hospedeiros e terminais. A principal vantagem desta

arquitetura é a simplicidade.

� Banco de Dados Distribuídos (N camadas) - Nesta arquitetura, a informação está

distribuída em diversos servidores. Cada servidor atua como no sistema cliente-

servidor, porém as consultas oriundas dos aplicativos são feitas para qualquer

servidor indistintamente. Caso a informação solicitada seja mantida por outro

servidor ou servidores, o sistema encarrega-se de obter a informação necessária, de servidor ou servidores, o sistema encarrega-se de obter a informação necessária, de

maneira transparente para o aplicativo, que passa a atuar consultando a rede,

independente de conhecer seus servidores. Exemplos típicos são as bases de dados

corporativas, em que o volume de informação é muito grande e, por isso, deve ser

distribuído em diversos servidores.

� Banco de Dados Cliente-Servidor - Na arquitetura Cliente-Servidor, o cliente

(front_end) executa as tarefas do aplicativo, ou seja, fornece a interface do usuário

(tela, e processamento de entrada e saída). O servidor (back_end) executa as

consultas no DBMS e retorna os resultados ao cliente. Apesar de ser uma

arquitetura bastante popular, são necessárias soluções sofisticadas de software que arquitetura bastante popular, são necessárias soluções sofisticadas de software que

possibilitem: o tratamento de transações, as confirmações de transações (commits),

desfazer transações (rollbacks), linguagens de consultas (stored procedures) e

gatilhos (triggers). A principal vantagem desta arquitetura é a divisão do

processamento entre dois sistemas, o que reduz o tráfego de dados na rede.

Cliente / Servidor

� Mainframes para executar o processamento principal e de todas as funções

do sistema, incluindo os programas aplicativos, programas de interface com

o usuário, bem como a funcionalidade dos SGBDs.

� Esta é a razão pela qual a maioria dos usuários fazia acesso aos sistemas via � Esta é a razão pela qual a maioria dos usuários fazia acesso aos sistemas via

terminais que não possuíam poder de processamento, apenas a capacidade

de visualização.

� Todos os processamentos eram feitos remotamente, apenas as informações

a serem visualizadas e os controles eram enviados do mainframe para os

terminais de visualização, conectados a ele por redes de comunicação.

� Como os preços do hardware foram decrescendo, Gradualmente os SGBDs

começaram a explorar a disponibilidade do poder de processamento no lado do

usuário, o que levou à arquitetura cliente-servidor.

� A arquitetura cliente-servidor foi desenvolvida para dividir ambientes de

computação onde um grande número de PCs, estações de trabalho, servidores de

arquivos, impressoras, servidores de banco de dados e outros equipamentos são arquivos, impressoras, servidores de banco de dados e outros equipamentos são

conectados juntos por uma rede.

� A idéia é definir servidores especializados Servidores de impressão que podem

estar conectados a várias impressoras; assim, quando se desejar imprimir algo,

todas as requisições de impressão são enviadas a este servidor.

� As máquinas clientes disponibilizam para o usuário as

interfaces apropriadas para utilizar esses servidores, bem

como poder de processamento para executar aplicações

locais. Esta arquitetura se tornou muito popular por

algumas razões:

� Primeiro, a facilidade de implementação dada à clara separação das

funcionalidades e dos servidores;

� Segundo, um servidor é inteligentemente utilizado porque as tarefas

mais simples são delegadas às máquinas clientes mais baratas;

� Terceiro, o usuário pode executar uma interface gráfica que lhe é

familiar, ao invés de usar a interface do servidor;

� Desta maneira, a arquitetura cliente-servidor foi incorporada

aos SGBDs comerciais

� As consultas e a funcionalidade transacional permanecem no

servidor.servidor.

� Cada cliente tem que formular suas consultas SQL, prover a

interface do usuário e as funções de interface usando uma

linguagem de programação

Cliente

� O sistema cliente é a parte responsável pela tarefa de requisição de pedidos

ao servidor e também por toda a parte relativa à interação com o usuário

final

� Abstraem do usuário todas as funções de rede e do servidor, fazendo � Abstraem do usuário todas as funções de rede e do servidor, fazendo

parecer que todos os processos estão rodando em um mesmo local.

� Interface Gráfica de Usuário (GUI): é o principal componente de interação

de interação com os usuários finais, pois é o que torna as aplicações serem

utilizadas de forma mais simples e intuitiva.

Servidor

� Tem a função de receber dos clientes as requisições, processá-

las e devolve-las ao mesmo os resultados.

� Vantagem desse sistema é que, por ser totalmente reativo, só é

disparado quando recebe alguma requisição do cliente.

� O SGBD: é o componente do sistema de banco de dados

responsável por todo o gerenciamento e controle centralizado

dos dados operacionais.

Vantagens

� O aumento de desempenho, através da distribuição das tarefas

de banco de dados entre computadores clientes e servidores.

reduzindo drasticamente o tráfego da rede;

� independência da estação de trabalho, que torna possível aos

usuários executarem aplicações de banco de dados em

qualquer tipo de plataforma ou sistema;

� A preservação da integridade dos dados

� Segurança dos dados reforçada

Desvantagens

� Aumento de custo com pessoal, contratação de profissional

para administração e suporte para manutenção do banco de

dados;

O aumento da quantidade de componentes de sistema pode � O aumento da quantidade de componentes de sistema pode

contribuir para aumentar a complexidade;

� Aumentar a quantidade de suporte de programação

� A necessidade de se ter controle efetivo das operações de

transação com dados.

Exercícios

� 1 - Quais são as principais diferenças entre um Sistema

de Banco de Dados e um sistema baseado em arquivos.

2 – Quais são o(s) tipo(s) de banco(s) baseado(s) em � 2 – Quais são o(s) tipo(s) de banco(s) baseado(s) em

registros?

Aula 03

Modelo Conceitual

Modelo Lógico

Modelo Entidade-Relacionamento

Modelo Conceitual

� Um modelo conceitual é a descrição do banco de dados de forma

independente da implementação em um SGBD.

� Registra que dados podem aparecer no banco de dados, mas não como estes

dados estão armazenados em nível de SGBD.

� A técnica de modelagem mais difundida é a abordagem entidade-

relacionamento (ER).

� Representado através de um diagrama, chamado diagrama entidade-

relacionamento (DER)

Modelo Lógico

� Um modelo lógico é uma representação de um banco de dados no nível de

abstração visto pelo usuário do SGBD. E dependente do tipo particular de

SGBD que esta sendo usado.

� Um modelo lógico de um BD relacional deve definir quais as tabelas que o

banco contém, e para cada tabela, quais os nomes das colunas.

� O modelo lógico descreve a estrutura do banco de dados.

� Detalhes do armazenamento interno de informações, que não tem

influência sobre a programação de aplicações no SGBD, mas podem

influenciar o desempenho da aplicação não fazem parte do modelo lógico.

Computador

Impressora

DescrTipoProd

1

2

CodTipoProd

DescrProd CodTipoProd PrecoProd CodProd

PC desktop Modelo X

PC notebook ABC

Impressora jato de Tinta X

Impressora Laser XX

DescrProd

1

1

2

2

CodTipoProd

2.500,00

3.500,00

500,00

1.500,00

PrecoProd

1

2

3

4

CodProd

TipoDeProd(CodTipoProd,

DescrTipoProd)DescrTipoProd)

Produto(CodProd, DescrProd, PrecoProd,

CodTipoProd)

CodTipoProd referência TipoDeProduto

Aula 04

Entidade

Relacionamento

Cardinalidade

Atributo

Atributo Identificador

Entidade - Relacionamento

� Entidade: São elementos relevantes, abstratos ou concretos,

sobre os quais é necessário guardar informação.

� Pessoas ( Fornecedores, Empregados, Clientes, Alunos, etc...)

� Organizações ( Empresas, Hospitais, Escolas, Farmácias,

etc...)

� Objetos ( Carro, Fatura, Produtos, Boletim de Inscrição, etc...)

� Representação:

PESSOA DEPARTAMENTO

� Retângulo;

� Quando se referir a uma única pessoa, chamamos de instância de entidade.

Tipos de Entidade

� Forte: não depende de nenhuma outra entidade;

� Fraca: só existe quando relacionada a outra entidade;� Fraca: só existe quando relacionada a outra entidade;

� Obs.: Os termos “forte” e “fraca” não são propriedades de umaentidade e sim uma entidade em um relacionamento, visto que umaentidade pode ser fraca em um relacionamento e forte em outro.

� Relacionamento: Uma propriedade sobre as quais pode ser desejável manter informações é a associação entre objetos.

� um conjunto de objetos classificados por pessoas(entidade PESSOA),

� um conjunto de objetos classificados como departamentos(entidade DEPARTAMENTOS),

� um conjunto de associações, cada uma ligando um departamento a uma pessoa(relacionamento LOTAÇÃO).

� Auto-relacionamento: é quando uma entidade se relaciona com

ela mesmo. Neste caso, é necessário explicitar o papel da entidade

no relacionamento

� Papel: função que uma instância da entidade cumpre dentro de uma

instância do relacionamento.

• Binário: Tipo de relacionamento mais comum

� Ternário: é o relacionamento que ocorre com mais de duas entidades em um mesmo relacionamento.

Cardinalidade

� Uma propriedade importante de um relacionamento é a de quantasocorrências de uma entidade podem estar associadas a umadeterminada ocorrência através do relacionamento.

Cardinalidade Máxima

Existem dois tipo de cardinalidade máxima a serem consideradas:

� a cardinalidade máxima um (1)� a cardinalidade máxima um (1)

� a cardinalidade máxima ilimitada, usualmente chamada de

cardinalidade máxima “muitos” e referida pela letra n.

A cardinalidade é anotada sempre “do outro lado” do

relacionamento a qual se refere.

Cardinalidade Mínima

Apenas duas cardinalidades mínimas são consideradas:

� a cardinalidade mínima 0 ;

� a cardinalidade mínima 1.

A cardinalidade mínima 1 também recebe a denominação de

associação obrigatória, já que ela indica que o relacionamento deve

obrigatoriamente associar uma ocorrência de entidade a cada

ocorrência de entidade em questão. E a cardinalidade mínima 0

recebe a denominação de associação opcional.

Atributo

� Atributo é uma característica específica (propriedade) de umadeterminada Entidade. Um atributo é usado para associarinformações a ocorrências de entidades ou de relacionamentos.

� Um atributo pode possuir uma cardinalidade, de maneira idêntica auma entidade em um relacionamento.

� A cardinalidade de um atributo define quantos valores podem estar

associados a uma ocorrência de entidade/relacionamento a qual ele

pertence. No caso de a cardinalidade ser (1,1), ela pode ser omitida

no diagrama e é um atributo simples (não pode ser subdividido.).

Mas é importante salientar que esse atributo será obrigatório.Mas é importante salientar que esse atributo será obrigatório.

� Já em cardinalidades (0,n) ou (1,n), o “n” significa que o atributo em

questão é multivalorado (Pode ser dividido gerando dois ou mais

atributos elementares), Ou ainda um composto, onde ira subdividir o

atributo (endereço, pode se composto por rua, bairro, cidade, ...)

� O atributo Sexo será um

Analisemos o exemplo abaixo teremos:

� O atributo Nome é um atributo simples e obrigatório;

� O atributo Telefone é um atributo composto porque ele é composto por

mais de um valor, pode ter telefone residencial, comercial, celular;

atributo multivalorado porque

existem somente duas

possibilidades de

preenchimento, o sexo é

Masculino ou Feminino;

Composto é diferente de multivalorado

� Multivalorado: um valor de vários ,

multi: muitos

valor: o que uma coisa vale; importância; ....

ex: sexo (Feminino ou Masculino); Estado Civil (Solteiro ou Separado

ou Casado ou Divorciado)ou Casado ou Divorciado)

� Composto: muitos valores, muitas opções

composto: que é formado por mais que um elemento;

ex: Endereço (Rua + Número + Bairro)

(Dicionário da Língua Portuguesa)

Atributo Identificador

� É utilizado para identificar uma ocorrência de entidade das demais, é um valor que nunca se repetirá.

� Toda entidade deve obrigatoriamente possuir no mínimo uma atributo

identificador, mesmo que a entidade possua somente um atributo.

� Se for necessário a entidade pode possuir mais de um código

identificador.

A secretaria de uma determinada universidade precisa gerenciarinformações sobre suas disciplinas, estudantes e professores.Um aluno pode estar cursando uma ou mais disciplinas, quepor sua vez é ministrada por um professor. Existem disciplinasque exigem pré-requisito.

Construa um diagrama ER para a secretaria acima.

Aula 05

Generalização / Especialização

Entidade Associativa

Generalização / Especialização

� Com a generalização/especialização é a atribuição de propriedades particulares a um subconjunto de ocorrências (especializadas).

� Associada ao conceito de generalização/especialização está a idéia

de herança de propriedades.

� Herdar propriedades significa que cada ocorrência da entidade

especializada possui, além de suas próprias propriedades todas

as propriedades de entidade genérica correspondente.

� A generalização/especialização pode ser dividida em tipos, sendo :

� Generalização/Especialização total ou parcial - dependerá da

obrigatoriedade ou não de cada ocorrência da entidade genérica;

� Em uma generalização/especialização total para cada

ocorrência da entidade genérica existe sempre uma ocorrência da entidade genérica existe sempre uma

ocorrência em uma das entidades especializadas ( t );

� Uma generalização/especialização parcial, nem toda

ocorrência genérica possui uma ocorrência correspondente

em uma entidade especializada ( p );

� Generalização/Especialização exclusiva ou compartilhada –dependerá da quantidade de vezes que a ocorrência de entidade se repetirá;

� Generalização/especialização exclusiva significa que uma

ocorrência de entidade genérica é poderá no máximo

assumir um valor em sua entidade correspondente ( e );assumir um valor em sua entidade correspondente ( e );

� Generalização/especialização compartilhada indica que

uma ocorrência de entidade genérica pode aparecer em

várias entidades ( c );

� Uma entidade genérica, por sua vez, pode ser entidade genérica de uma outra generalização/especialização (herança múltipla). Isto significa, que esse entidade genérica possuirá propriedades de todas generalizações/especializações.

Entidade Associativa

� É uma entidade querepresenta (agrega)

uma associação entre entidades. Um relacionamento é uma associação entre entidades.

� No modelo ER não foi previsto a associação entre dois

relacionamentos. Assim sendo, é necessário que o

relacionamento CONSULTA se torne uma entidade associativa

(que nada mais que a redefinição de um relacionamento), caso

isto não ocorra é necessário transformar o relacionamento

CONSULTA em uma entidade, que então pode se relacionar

com a entidade MEDICAMENTOS. Neste caso essa nova

entidade CONSULTA se torna uma entidade fraca em relação

às outras duas entidades que estavam ligadas diretamente.

Entidade Associativa

Transformando em entidade fraca

Aula 06

Determinando Construções

Atributo x Entidade

Atributo x Entidade

� Caso o objeto cuja modelagem está em discussão esteja vinculado a outros objetos, ou seja, caso o objeto tenha propriedades(atributos, relacionamentos, entidades genéricas ou especializadas), o objetos deve ser modelado como uma entidade, já que um atributo não pode ter atributos, nem estar relacionado com entidades, nem ser generalizado ou especializado. Caso contrário, o objeto pode ser modelado como atributo.

Atributo x Entidade

� Quando o conjunto de valores de um determinado objeto é fixo durante toda a vida do sistema, ele pode ser modelado como atributo, visto que o domínio de valores de um atributo é imutável. Quando existem transações no sistema, que alteram o conjunto de valores do objeto, o mesmo não deve ser modelado como atributo.

Atributo x Especialização

Atributo x Especialização

�Uma especialização deve ser usada quando sabe-se que as classes especializadas de entidades possuem propriedades(atributos, relacionamentos, generalizações, especializações) particulares, no exemplo acima o empregado só deve especializar categoria funcional, se a mesma necessitar de características especificas..

Entidade X Especialização

Entidade x Especialização

�Um objetos somente pode ser tratado como especializado de outro, quando o objeto especializado herdar a chave primária do objeto genérico. Isso significa também que para cada ocorrência do objeto genérico pode existir no máximo uma ocorrência na especialização.

Aula 07

Verificação Modelo

Modelo Correto

� Um modelo está correto quando não contém erros de modelagem. Pode-se distinguir entre dois tipos de erros, os erros sintáticos e os erros semânticos.

� Erros sintáticos ocorrem quando o modelo não respeita as � Erros sintáticos ocorrem quando o modelo não respeita as

regras de construção de um modelo ER.

Modelo Correto

� Exemplos:

� Associar atributos a atributos;

� Associar relacionamentos a atributos; � Associar relacionamentos a atributos;

� Associar relacionamentos através de outros

relacionamentos;

� Especializar relacionamentos ou atributo;.

Modelo Correto

� Erros semânticos ocorrem quando o modelo apesar de obedecer as regras de construção de modelos ER (estar sintaticamente correto) reflete a realidade de forma inconsistente.

Modelo Correto� Exemplos:

� Estabelecer associações incorretas – associar a uma

entidade um atributo que na realidade pertence a outra

entidade;

� Usar uma entidade do modelo com atributo de outra

entidade – Cada objeto da realidade modelada deve

aparecer uma única vez no modelo ER;

� Usar o numero incorreto de entidades em um

relacionamento – fundir em um único relacionamento

Modelo Completo

� Um modelo completo deve fixar todas as propriedades desejáveis do banco de dados. Isso somente pode ser verificado por alguém que conhece profundamente o sistema a ser implementado. Uma boa forma de verificar se o modelo é completo é verificar se todos os dados que devem ser obtidos do banco de dados estão presentes e se todas as transações de modificação do banco de dados podem ser executadas sobre o modelo.

Modelo sem redundância

� Um modelo deve ser mínimo, isto é, não deve conter conceitos redundantes. Um tipo de redundância que pode aparecer é a de relacionamentos redundantes. Relacionamentos redundantes são relacionamentos que são resultado da combinação de outros relacionamentos entre as mesmas entidades.

Modelo sem redundância

Modelo sem redundância

Aspecto Temporal

� Certas aplicações exigem que o banco guarde o histórico de alterações de informações. O modelo de um banco de dados que armazena somente os valores atuais de uma informação é diferente do modelo do banco de dados que armazena o histórico da informação.

� Alguns atributos de uma entidade, normalmente aqueles que não são

identificadores da entidade, podem ter seus valores alterados ao

longo do tempo.

Aspecto Temporal

Exercícios

� Caderno de Exercícios Entidade e

Relacionamento

�1 ao 6