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).
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.
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?
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
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.
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.
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.
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
�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
�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.
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.
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.