Escolar Documentos
Profissional Documentos
Cultura Documentos
BANCO DE
DADOS I
2015/01
SUMRIO
1 INTRODUO .......................................................................................................................... 3
O que so Dados? ................................................................................................................... 3
O que Informao? .............................................................................................................. 3
O que Banco de Dados? ....................................................................................................... 3
O que Transao em Banco de Dados? ................................................................................. 5
2 HISTRICO............................................................................................................................... 6
O INCIO DO ARMAZENAMENTO DE DADOS............................................................................... 6
O que um Sistema Gerenciador de Banco de Dados? ........................................................... 7
3 MODELOS DE BANCO DE DADOS ............................................................................................. 8
Modelo Hierrquico ................................................................................................................ 8
Modelo de Rede ..................................................................................................................... 9
Modelo Relacional .................................................................................................................. 9
Modelo Orientado a Objetos................................................................................................. 10
Resumo ................................................................................................................................ 10
4 MODELAGEM DE DADOS ....................................................................................................... 12
O que um Modelo de Dados? ............................................................................................. 12
MODELO CONCEITUAL ............................................................................................................. 12
MODELO LGICO ..................................................................................................................... 14
MODELO FSICO ....................................................................................................................... 15
Quais so as fases de um projeto de Banco de Dados?.......................................................... 15
Modelagem Conceitual: ........................................................................................................ 15
Modelagem Lgica:............................................................................................................... 15
Projeto Fsico: ....................................................................................................................... 15
Lista de Questes ................................................................................................................. 16
5 MODELAGEM CONCEITUAL ................................................................................................... 17
DOMNIO ................................................................................................................................. 17
Entidade .................................................................................................................................. 18
Atributo ................................................................................................................................ 19
RELACIONAMENTO .................................................................................................................. 21
CARDINALIDADE DE RELACIONAMENTOS ................................................................................ 21
Cardinalidade mxima .......................................................................................................... 21
Classificao de relacionamentos binrios ............................................................................ 22
Cardinalidade mnima ........................................................................................................... 24
Exemplo de uso de entidades e relacionamentos .................................................................. 24
Lista de Questes ................................................................................................................. 25
Entidade Associativa ............................................................................................................. 26
U N I D A D E
1 INTRODUO
O que so Dados?
Dados so itens referentes a uma descrio primria de objetos, eventos, atividades e
transaes que so gravados, classificados e armazenados, mas no chegam a ser organizados de
forma a transmitir algum significado especfico.
Os dados compreendem os fatos conhecidos em sua forma primria, que podem ser
armazenados e que servem de base para a resoluo de um problema.
Dado qualquer elemento identificado em sua forma bruta que, por si s, no conduz a uma
compreenso de determinado fato ou situao.
O que Informao?
Os dados teis o que chamamos de informao. E esses dados so o que armazenamos em
uma base de dados.
Informao um conjunto de fatos organizados de tal forma que adquirem valor adicional (o
conhecimento), alm do valor do fato em si.
Exemplos:
Dado: data de nascimento: 16/07/69.
Informao: idade: 41 anos.
Dado: soma de preo unitrio x quantidade.
Informao: valor total da fatura: R$2.500,00.
Por conveno, na rea de banco de dados, os termos dado e informao significam a
mesma coisa. Isso ocorre porque devemos armazenar apenas aquilo que til para a nossa aplicao.
Sendo assim, daqui para a frente, os dois termos sero usados como sinnimos.
O que Banco de Dados?
Alguns exemplos de banco de dados: lista telefnica, controle do acervo de uma biblioteca, sistema de controle dos
recursos humanos de uma empresa.
a). Um Banco de Dados uma coleo logicamente coerente de dados com um determinado
significado inerente. Isto significa que um conjunto aleatrio de dados no pode ser considerada um
Banco de Dados.
b). Um Banco de Dados projetado, construdo e composto por um conjunto de dados para
um propsito especfico. Existe um grupo de usurios ou algumas aplicaes pr-concebidas onde
estes dados sero utilizados.
c). Um Banco de Dados representa aspectos de uma parte restrita do mundo real, denominado
de mini-mundo. Alteraes que ocorra no mini-mundo so refletidas no Banco de Dados.
Resumindo, um BD representa uma fonte de onde informaes so derivadas, possui um nvel
de interao com eventos que ocorrem no mundo real, e uma audincia que est interessada em seu
contedo.
Alm do conceito de BD, outros esto so necessrios para se compreender o ambiente de um
BD . Um Sistema de Gerenciamento de Bancos de Dados (SGBD) uma coleo de programas que
permite ao usurio definir, construir e manipular Bancos de Dados para as mais diversas aplicaes.
Definir um BD envolve a especificao e a descrio detalhada dos tipos de dados a serem
armazenados.
Construir um BD o processo de armazenamento dos dados em si em um determinado meio
fsico que controlado pelo SGBD.
Manipular um BD inclui uma srie de funes para se realizar operaes de consulta,
atualizaes e remoes de dados do BD.
O Banco de Dados e seu software so juntos denominados de Sistema de Bancos de Dados
(SBD).
Armazenar dados em bancos de dados apresenta algumas vantagens, tais como:
Os bancos de dados armazenam dados substituindo grandes volumes de papis.
A obteno e a atualizao dos dados acontecem de forma mais rpida do que um ser humano
manipulando papis.
Os sistemas de bancos de dados realizam o trabalho repetitivo e montono.
Disponibilizam dados atualizados a qualquer momento.
A tecnologia dos bancos de dados permite a manipulao rpida e segura de grandes volumes
de dados.
No sistema de uma instituio financeira existem vrios arquivos, como, por exemplo, aquele
que armazena os dados cadastrais dos clientes (nome, endereo, cidade, UF, CEP, RG, CPF, etc.) e o
que armazena as operaes realizadas por cada cliente (depsitos, saques, aplicaes, etc.). Esse
arquivo de operaes necessita identificar o cliente que realizou determinada operao, mas no
necessrio que ele armazene todos os dados do cliente, pois aconteceria redundncia de dados. Ele
necessita somente de alguma informao que identifique o cliente (por exemplo, o nmero da conta
corrente) e, a partir dessa informao, possvel conseguir os dados do cliente acessando o outro
arquivo.
Um banco de dados compartilhado quando permite que vrios usurios acessem e
compartilhem simultaneamente os mesmos dados. Esse compartilhamento s possvel porque o
banco de dados integrado (todos os dados integrados em um nico local).
Mesmo com a integrao dos dados, pode ser que ocorra alguma redundncia de dados entre
arquivos diferentes (ou at mesmo seja desejada alguma redundncia, para efeito de segurana, em
caso de perda de dados). Aceitando o fato de que alguma redundncia possa ocorrer, o que deve ser
evitado a qualquer custo a inconsistncia dos dados, ou seja, os mesmos dados sobre determinado
assunto, armazenados em mais de um local, apresentem valores diferentes.
O que Transao em Banco de Dados?
Uma transao uma operao realizada com um banco de dados (gravao, leitura,
atualizao, excluso, etc.). Algumas questes ligadas s transaes so: atomicidade, consistncia e
durabilidade. Observe um exemplo da transferncia de materiais de um estoque para outro:
2 HISTRICO
O INCIO DO ARMAZENAMENTO DE DADOS
No incio, os dados eram armazenados em fichas de papel, escritos manualmente ou com
auxlio de mquinas de escrever. Com o passar do tempo, a quantidade de fichas aumentou muito,
dificultando a recuperao dos dados armazenados. A partir dos anos de 1960, a tecnologia dos
sistemas de computao comeou a ser usada para armazenar os dados. As primeiras aplicaes
comerciais que utilizavam banco de dados eram voltadas para determinados setores da empresa. Os
bancos de dados eram baseados diretamente nos processos realizados pelo setor. O desenvolvimento
fez vrios setores passarem pelo processo de informatizao, portanto foram construdos diversos
sistemas isolados e cada programa tinha os seus arquivos prprios e independentes, como mostra a
figura 1.
Apesar de resolver o problema da redundncia, essa integrao dos dados ocasionou outro
problema: vrias aplicaes passaram a compartilhar os mesmos dados integrados em um nico
arquivo, utilizando a mesma representao. Assim, quando uma aplicao necessitava alterar a
estrutura do arquivo compartilhado (por exemplo, acrescentar um novo campo ao arquivo), todas as
Prof. Joo Graciano
aplicaes que compartilhavam os dados do arquivo eram afetadas, e tinham de ser alteradas. Se as
aplicaes no fossem alteradas, no conseguiriam mais acessar os dados.
Como soluo para esse novo problema, surgiu a ideia de separar as aplicaes dos arquivos
de dados, colocando um gerenciador para realizar a comunicao entre ambos. Esse gerenciador
recebeu o nome de Sistema Gerenciador de Banco de Dados (SGBD), conforme ilustra a figura 3.
Os SGBDs so projetados para gerenciar grandes quantidades de dados, por isso permitem a
definio das estruturas de armazenamento dos dados e os mecanismos para manipulao desses
dados. Com isso oferecem um controle centralizado dos dados armazenados. Algumas vantagens
dessa centralizao so:
Reduzir a redundncia dos dados, apesar de que, em alguns casos, a redundncia pode ser
aceita (ou mesmo necessria) para efeito de melhoria de desempenho. Claro que para existir
redundncia necessrio um controle muito grande dela para que no exista inconsistncia.
Evitar a inconsistncia dos dados utilizando procedimentos de controle e verificao que
evitem que erros em aplicaes gerem dados conflitantes.
Compartilhamento de dados.
Manuteno da integridade dos dados, garantindo que os dados armazenados so corretos.
Por exemplo, no caso de duas pessoas acessarem um sistema de estoque simultaneamente e
solicitarem quantidades da mesma pea, o SGBD no deve permitir que as duas transaes
sejam realizadas, se no existir quantidade suficiente de peas para atender os dois pedidos.
Alm disso, os SGBDs devem manter imagens anteriores modificao, pois em caso de
falhas possvel recuperar os dados originais.
Aplicao de polticas de segurana para garantir que dados importantes no sero perdidos
por aes voluntrias ou involuntrias dos usurios ou por falhas de aplicao ou de
equipamentos. Outro aspecto relacionado segurana a privacidade dos dados
armazenados, ou seja, o SGBD deve controlar o acesso dos usurios aos dados, permitindo
somente determinadas aes ou barrando completamente o acesso aos dados.
Fornecimento de suporte a transaes, ou seja, permitir que as aplicaes ou usurios possam
realizar operaes de incluso, excluso, alterao, consulta e outras com os dados
armazenados.
com relacionamentos hierrquicos, isto e, um segmento raiz, localizado no topo da estrutura, que se
relaciona com outros segmentos de cima para baixo, da esquerda para a direita, denominado de
diagrama de estrutura de dados ou de arvore (relacionamento do topo para baixo e das folhas para
dentro).
Este modelo se tornou vivel quando a estrutura dos discos de armazenamento se tornou
enderevel, possibilitando a representao hierrquica das informaes coma utilizao do
endereamento fsico daqueles dispositivos. Todos os bancos de dados apresentam vantagens e
desvantagens em sua utilizao, e com o banco de dados modelo hierrquico no e diferente. Ele e
um modelo bastante simplificado, representa naturalmente sistemas que possuem uma hierarquia
bem definida, no representando sistemas que no possuem tais caractersticas, alm de aumentar
os ndices de redundncia (duplicidade), possuir tempos de consulta e processamento
reconhecidamente altos.
Modelo de Rede
Pode ser visto como uma extenso mais completa do modelo hierrquico, apenas livre das
dificuldades encontradas no modelo anterior. Os controles existentes quanto aos recursos de
armazenamento, estrutura e caminhos utilizados para navegar de um registro a outro tornam o
modelo de rede mais completo.
O banco de dados em rede e composto de uma estrutura mais completa, possui as
propriedades bsicas de registros, conjuntos e ocorrncias, e utiliza a linguagem de definio de
banco de dados (DDL) e a linguagem de manipulao de dados (DML), alm de permitir uma evoluo
mais eficiente do modelo.
A estrutura e formada de entidade (registros), atributos (itens de dados), tipos de registros e
ocorrncia do registro. Tanto no modelo hierrquico quanto o de rede so chamados de sistemas de
navegao, pois as aplicaes devem ser construdas para atravessar um conjunto de registros
interligados previamente.
A maior vantagem do modelo de rede frente ao hierrquico e um melhor controle sobre a
redundncia de dados.
Modelo Relacional
O banco de dados mais utilizado atualmente e o banco de dados relacional, principalmente
pelas suas fortes caractersticas de seguranas, compartilhamento e integridade dos dados, fatores
primordiais para uma administrao eficaz da informao de qualquer empresa.
Com o prprio nome diz, esse tipo de banco de dados e composto de relaes entre entidades,
denominadas tabelas, seguindo o mesmo conceito matemtico de relao. As tabelas se relacionam
por meio de chaves denominadas estrangeiras, que podem ser simples, formadas por apenas um
atributo, ou compostas, formadas por vrios atributos. Por atributo compreende-se a representao
de um tipo de informao.
Para que um modelo seja considerado relacional, os dados devem ser armazenados em
tabelas, nenhum ponteiro ou ligao deve ser visvel ao usurio, a linguagem de consulta deve ser
relacionalmente completa e as consultas podem ser expressas sem uso de iteraes ou recurses.
Cada linha da tabela, formada por um conjunto de colunas, representa um registro (ou tupla).
Os registros no precisam necessariamente conter dados em todas as colunas, ou seja, seus valores
podem ser nulos.
Prof. Joo Graciano
10
11
4 MODELAGEM DE DADOS
O que um Modelo de Dados?
Um modelo de (banco de) dados uma descrio dos tipos de informaes que esto
armazenadas em um banco de dados. Por exemplo, no caso de um sistema de vendas, o modelo de
dados poderia informar que o banco de dados armazena informaes sobre produtos e que, para cada
produto, so armazenados seu cdigo, descrio e preo. Observe que o modelo de dados no
informa quais os produtos que esto armazenados no banco de dados, mas apenas que o banco de
dados contm informaes sobre produtos.
Modelo de dados = Descrio formal da estrutura de um banco de dados.
MODELO CONCEITUAL
Representa e descreve a realidade do ambiente do problema, constituindo-se em uma viso
global dos principais dados e seus relacionamentos (estruturas de informao), completamente
independente dos aspectos de sua implementao tecnolgica. Quando falamos em modelo
Prof. Joo Graciano
12
conceitual, estamos nos referindo aquela que deve ser a primeira etapa de um projeto de um banco
de dados.
O objetivo do modelo conceitual e descrever de forma simples e facilmente compreendida
pelo usurio final as informaes de um contexto de negcios, as quais devem ser armazenadas em
um banco de dados. E uma descrio de alto nvel, mas que tem a preocupao de captar e retratar a
realidade de uma organizao, processo de negcio, setor, repartio, departamento, etc.
Devemos destacar que o modelo conceitual no retrata nem e vinculado aos aspectos ligados
a abordagem de banco de dados que ser utilizado e tampouco se preocupa com as formas de acesso
ou estruturas fsicas implementadas por SGBD especifico.
O resultado de um modelo conceitual e um esquema grfico que representa a realidade das
informaes existentes em um determinado contexto de negcios, assim como as estruturas de
dados em que esto organizadas essas informaes.
O modelo conceitual nunca deve ser construdo com consideraes sobre processos de
negcios. O foco deve ser dirigido sempre ao entendimento e representao de uma realidade de um
contexto.
Um modelo conceitual uma descrio do banco de dados de forma independente de
implementao em um SGBD. O modelo conceitual registra que dados podem aparecer no banco de
dados, mas no registra como estes dados esto armazenados em nvel de SGBD.
Modelo conceitual = Modelo de dados abstrato, que descreve a estrutura de um banco de dados de
forma independente de um SGBD particular.
Entre outras coisas, este modelo informa que o banco de dados contm dados sobre produtos
e sobre tipos de produtos. Para cada produto, o banco de dados armazena o cdigo, a descrio, o
preo, bem como o tipo de produto ao qual est associado. Para cada tipo de produto, o banco de
dados armazena o cdigo, a descrio, bem como os produtos daquele tipo.
13
MODELO LGICO
Ele somente tem o seu incio aps a criao do modelo conceitual. O modelo logico descreve
em formato as estruturas que estaro no banco de dados de acordo com as possibilidades permitidas
pela sua abordagem, mas sem considerar, ainda, nenhuma caracterstica especifica de SGBD. Isso
resulta em um esquema logico de dados sob a tica de uma das abordagens citadas, atravs do
emprego de uma tcnica de modelagem de dados orientada as restries de cada abordagem.
Um modelo lgico uma descrio de um banco de dados no nvel de abstrao visto pelo
usurio do SGBD. Assim, o modelo lgico dependente do tipo de SGBD que est sendo usado.
Modelo lgico = Modelo de dados que representa a estrutura de dados de um banco de dados
conforme vista pelo usurio do SGBD
Nesta apostila, sero tratados apenas modelos lgicos referentes a SGBD relacional. Em um
SGBD relacional, os dados esto organizados na forma de tabelas. A Figura 6 mostra um exemplo de
BD relacional projetado a partir do modelo conceitual mostrado na Figura 5
Um modelo lgico de um BD relacional deve definir quais as tabelas que o banco contm e,
para cada tabela, quais os nomes das colunas. O modelo lgico para o BD em questo o seguinte:
O modelo lgico descreve a estrutura do banco de dados, conforme vista pelo usurio do
SGBD. Detalhes de armazenamento interno de informaes, que no tm influncia sobre a
programao de aplicaes no SGBD, mas podem afetar o desempenho das aplicaes (por exemplo,
as estruturas de arquivos usadas no acesso s informaes) no fazem parte do modelo lgico. Estes
detalhes so representados no modelo fsico. Modelos fsicos no so tratados nesta apostila. Eles so
usados apenas por profissionais que fazem sintonia de banco de dados, procurando otimizar o
desempenho. As linguagens e notaes para o modelo fsico no so padronizadas e variam de SGBD
a SGBD. A tendncia em produtos mais modernos esconder o modelo fsico do usurio e transferir a
tarefa de otimizao ao prprio SGBD.
importante destacar que somente possvel construir o modelo de dados aps todos os requisitos terem sido
levantados e analisados, ou seja, aps o conhecimento de todas as expectativas dos usurios. Este processo chamado
de Levantamento e Anlise de Requisitos.
14
MODELO FSICO
O modelo fsico ser construdo a partir do modelo logico e descreve as estruturas fsicas de
armazenamento de dados, tais como:
15
A fase de modelagem a principal etapa no desenvolvimento de uma base de dados. Por isso
muito importante que se dedique tempo e esforo no desenvolvimento de uma boa modelagem da
base de dados.
Lista de Questes
1.
2.
3.
4.
5.
6.
7.
8.
Crie uma lista de dados pessoais que voc acha necessrio para se ter em uma ficha de
cadastro.
16
U N I D A D E
I I
5 MODELAGEM CONCEITUAL
A tcnica de modelagem de dados mais difundida e utilizada a abordagem entidade
relacionamento (ER). Nesta tcnica, o modelo de dados representado atravs de um modelo
entidade-relacionamento (modelo ER). Geralmente, um modelo ER representado graficamente
atravs de um diagrama entidade-relacionamento (DER). A abordagem ER foi criada em 1976 por
Peter Chen, podendo ser considerada como um padro de fato para a modelagem conceitual. Mesmo
as tcnicas de modelagem orientada a objetos, que tm surgido nos ltimos anos, como a UML,
baseiam-se nos conceitos da abordagem ER.
A abordagem relacional representa uma forma de descrever um banco de dados atravs de
conceitos matemticos simples: a teoria dos conjuntos.
Voltada, principalmente, a melhorar a viso dos dados pelos usurios, a abordagem relacional
faz com que os usurios vejam o banco de dados como um conjunto de tabelas bidimensionais,
originadas em linhas e colunas.
So conjuntos de dados vistos segundo um conjunto de TABELAS, e as operaes que as utilizam so feitas por
linguagens que o manipulam, no sendo procedurais, ou seja, manipulando conjuntos de uma s vez.
O conceito principal vem da teoria dos conjuntos atrelado a concepo de que no e relevante
ao usurio saber onde os dados esto nem como os dados esto (transparncia).
Os usurios manipulam estes objetos dispostos em linhas e colunas das tabelas que possuem
informaes sobre o mesmo assunto de forma estruturada e organizada.
Para lidar com estes objetos, o usurio conta com um conjunto de operadores e funes de
alto nvel, constantes na lgebra relacional.
A Teoria Relacional possui premissas que definem uma tabela de dados:
DOMNIO
Representa o conjunto de valores atmicos admissveis de um componente (coluna) de uma
relao (tabela).
Exemplo
Exemplo
Prof. Joo Graciano
17
Tambm, podem ser descritos pela definio de subconjuntos de tipos primitivos ou de listas
enumeradas, ou seja, listas de valores possveis de existir na coluna.
ENTIDADE
O conceito fundamental da abordagem ER o conceito de entidade.
Entidade = Conjunto de objetos do mesmo tipo do mundo real e sobre os quais se pretende
armazenar dados.
Como dito acima, cada retngulo, cada entidade representa um conjunto de objetos sobre os
quais se deseja guardar informaes. Assim, no exemplo da figura 7, o primeiro retngulo designa o
conjunto de todas as pessoas sobre as quais se deseja manter informaes no banco de dados,
enquanto o segundo retngulo designa o conjunto de todos os departamentos sobre os quais se
deseja manter informaes. Caso seja necessrio referir um objeto particular (uma determinada
pessoa ou um determinado departamento) fala-se em ocorrncia de entidade. Mais recentemente,
por influncia da programao orientada a objetos, usa-se tambm o termo "instncia" de entidade.
18
Atributo
Alm de uma entidade representar objetos do mundo real, ela tambm deve possuir um
conjunto de propriedades que a caracterize e a descreva, bem como aos seus objetos. A esse
conjunto de propriedades d-se o nome de atributos.
Atributo = Dado que associado a cada ocorrncia de uma entidade ou de um relacionamento.
Pode-se tambm representar os atributos de uma entidade apenas indicando o nome de cada
atributo, os quais so ligados a entidade atravs de uma linha, conforme mostra a figura 8.1.
Outro exemplo, para uma entidade chamada Cadeira, os possveis atributos dessa entidade
sero: nmero de pernas, cor, tamanho, peso, altura, tecido, etc.
Uma entidade deve ter ao menos dois atributos. Uma entidade que possui apenas um atributo
no entidade e esse nico atributo deveria estar em alguma outra entidade do modelo.
Todo atributo possui um tipo de dado que representa os valores permitidos para aquele
atributo. A esse tipo de dados d-se o nome de domnio do atributo. Por exemplo: o atributo "nmero
Prof. Joo Graciano
19
de pernas" da entidade "Cadeira" do tipo inteiro, ou seja, s permite que sejam armazenados
valores inteiros para esse atributo.
Os tipos de dados dependem do SGBD que o desenvolvedor est utilizando. De forma geral,
todos os SGBD disponibilizam tipos de dados como: inteiro, caracter, real (ou float), data e hora.
Quando se define o tipo de um atributo, pode-se definir inclusive o tamanho mximo que o
atributo vai permitir armazenar. Por exemplo, o atributo "nome" do tipo caracter (500), ou seja,
armazena no mximo 500 caracteres.
Os atributos podem ainda ser divididos em 6 categorias: simples, compostos, monovalorado,
multivalorado, derivado e nulo. importante ressaltar que os atributos podem pertencer a mais de
uma categoria ao mesmo tempo. Isso significa que comum um nico atributo ser simples,
monovalorado e derivado ao mesmo tempo. A seguir, ser explicada e exemplificada cada uma das
categorias.
Atributo simples: o atributo indivisvel, que no pode ou no deve ser decomposto. Por
exemplo: "CPF", "numero da matrcula", "RG", "preo do produto", etc.
Atributo composto: o atributo que pode ser decomposto em outros atributos simples. Por
exemplo, o atributo "endereo" pode ser decomposto em "nome da rua", "nmero" e
"complemento".
interessante que atributos compostos sejam decompostos ainda no primeiro diagrama ER, uma vez que isso vai ter
que ocorrer obrigatoriamente no modelo relacional. Alguns atributos como, por exemplo, "nome do aluno" pode ser
classificado como simples ou composto dependendo da aplicao. Se na aplicao forem realizadas consultas pelo
sobrenome do aluno, interessante que este atributo seja decomposto em dois atributos simples: "primeiro nome" e
"sobrenome". Isso ocorre por questo de desempenho.
Atributo nulo: o atributo que permite que seja inserido um valor nulo para ele. Valor nulo
representa a inexistncia de um valor, ou seja, significa que o usurio no precisa cadastrar um valor
para o atributo e pode deix-lo vazio. Em algumas situaes, inevitvel que permitamos valores
nulos para os atributos. Vamos usar novamente o atributo "e-mail" como exemplo. Como nem todas
as pessoas possuem e-mail, esse atributo deve permitir valores nulos, porque se ele no permitir
algumas pessoas no podero se cadastrar ou tero que criar um e-mail para poder efetivar o
cadastro. Novamente o usurio quem, muitas vezes, vai definir se um atributo obrigatrio ou no.
Prof. Joo Graciano
20
O valor nulo na base de dados pode levar o banco a ficar inconsistente e ter baixo
desempenho. Mesmo que o atributo no seja obrigatrio, interessante que ele receba um valor
padro (default) via aplicao ou via SGBD para evitar os valores nulos.
Atributo derivado: o atributo cujo valor para ele deriva de outro(s) atributo(s). Por exemplo,
suponha que a sua entidade se chame compra e que ela tenha os seguintes atributos: "nmero da
compra", "data da compra", "valor da compra", "percentual de desconto" e "valor da compra com o
desconto". O valor para este ltimo atributo calculado considerando-se o "valor da compra" e o
"percentual de desconto". Assim, esse atributo derivado porque seu valor deriva dos valores de
outros atributos e calculado automaticamente pela aplicao ou pelo SGBD.
RELACIONAMENTO
Uma das propriedades sobre as quais pode ser desejvel manter informaes a associao
entre objetos. Exemplificando, pode ser desejvel saber quais pessoas esto associadas a quais
departamentos em uma organizao. A propriedade de entidade que especifica as associaes entre
objetos o relacionamento.
Relacionamento = Conjunto de associaes entre ocorrncias de entidades.
CARDINALIDADE DE RELACIONAMENTOS
Cardinalidade (mnima, mxima) de entidade em relacionamento = Nmero (mnimo, mximo) de
ocorrncias de entidade associadas a uma ocorrncia da entidade em questo atravs do relacionamento.
21
Isso significa que uma ocorrncia de ALUNO pode estar associada a no mximo uma
ocorrncia de CURSO ou, em outros termos, que um aluno pode estar cursando no mximo um curso.
Isso significa que uma ocorrncia de CURSO pode estar associada a no mximo 35 ocorrncias
de ALUNO ou, em outros termos, que um curso pode ter nele cursando no mximo 35 alunos.
Para o projeto de banco de dados, especialmente de bancos de dados relacionais, no
necessrio distinguir entre diferentes cardinalidades mximas maiores que um. Por este motivo,
apenas duas cardinalidades mximas so geralmente consideradas:
22
instncia de pessoa pode estar associada via relacionamento a no mximo uma instncia de pessoa
no papel de marido.
23
Cardinalidade mnima
Alm da cardinalidade mxima, outra informao que pode ser representada por um modelo
ER o nmero mnimo de ocorrncias de entidade associadas a uma ocorrncia de uma entidade
atravs de um relacionamento. Para fins de projeto de BD, consideram-se apenas duas cardinalidades
mnimas: a cardinalidade mnima 0 e a cardinalidade mnima 1.
A cardinalidade mnima 1 tambm recebe a denominao de "associao obrigatria", j que
ela indica que o relacionamento deve obrigatoriamente associar uma ocorrncia de entidade a cada
ocorrncia da entidade em questo. Com base na mesma linha de raciocnio, a cardinalidade mnima 0
recebe a denominao "associao opcional".
A cardinalidade mnima anotada no diagrama junto cardinalidade mxima, conforme
mostrado na figura 14. Nesta figura, aparece novamente o exemplo da alocao de empregados a
mesas. Aqui, a cardinalidade mnima usada para especificar que cada empregado deve ter a ele
alocada obrigatoriamente uma mesa (cardinalidade mnima 1) e que uma mesa pode existir sem que
a ela esteja alocado um empregado (cardinalidade mnima 0).
24
Lista de Questes
1.
2.
3.
Crie uma entidade que mantenha o cdigo, descrio, unidade, preo unitrio e fornecedor
para PRODUTO
Generalizao/Especializao
Alm de relacionamentos e atributos, propriedades podem ser atribudas a entidades atravs
do conceito de generalizao/especializao. A partir deste conceito possvel atribuir propriedades
particulares a um subconjunto das ocorrncias (especializadas) de uma entidade genrica. No DER, o
smbolo para representar generalizao/especializao um tringulo issceles, conforme mostra a
Prof. Joo Graciano
25
Figura 16. A generalizao/especializao mostrada nesta figura expressa que a entidade CLIENTE
dividida em dois subconjuntos, as entidades PESSOA FSICA e PESSOAJURDICA, cada uma com
propriedades prprias.
Figura 16 Generalizao/especializao
Suponha que seja necessrio modificar este modelo da seguinte forma. necessrio saber que
medicamentos existem e que medicamentos foram prescritos em cada consulta. Para saber que
medicamentos existem, cria-se uma nova entidade, MEDICAMENTO. A questo agora : com que
entidade existente deve estar relacionada a nova entidade? Se MEDICAMENTO fosse relacionado a
MDICO, ter-se-ia apenas a informao de que mdico prescreveu que medicamentos, faltando a
informao do paciente que os teve prescritos. Por outro lado, se MEDICAMENTO fosse relacionado
PACIENTE, faltaria a informao do mdico que prescreveu o medicamento. Assim, deseja-se
relacionar o medicamento consulta, ou seja, deseja-se relacionar uma entidade (MEDICAMENTO) a
Prof. Joo Graciano
26
um relacionamento (CONSULTA), o que no est previsto na abordagem ER. Para tal, foi criado um
conceito especial, o de entidade associativa. Uma entidade associativa nada mais que a redefinio
de um relacionamento, que passa a ser tratado como se fosse tambm uma entidade. Graficamente,
isso feito como mostrado na figura 18. O retngulo desenhado ao redor do relacionamento
CONSULTA indica que este relacionamento passa a ser visto como uma entidade (associativa, j que
baseada em um relacionamento). Sendo CONSULTA tambm uma entidade, possvel associ-la
atravs de relacionamentos a outras entidades, conforme mostra a figura.
No modelo da figura, o relacionamento foi substitudo por uma entidade homnima, junto
com dois relacionamentos. Para manter a equivalncia com o modelo anterior (figura 18), uma
consulta est relacionada com exatamente um mdico e exatamente um paciente (a cardinalidade
mnima e mxima um). Uma consulta identificada pelo paciente e pelo mdico a ela ligados. Tendo
substitudo o relacionamento CONSULTA pela entidade, basta relacionar a entidade CONSULTA com a
entidade MEDICAMENTO.
Observe-se que o diagrama da figura 19 equivalente ao diagrama da figura 18. Equivalente
aqui significa que ambos geram o mesmo banco de dados relacional.
27