Professional Documents
Culture Documents
SISTEMAS
DE
BANCO DE DADOS I
Versão 2000/2
Sistemas de Bancos de Dados I
Índice
1. Introdução...................................................................................................................................4
1.1. Dado.....................................................................................................................................4
1.2. Informação...........................................................................................................................4
1.3. A Informação como Recurso da Empresa...........................................................................4
2. Organizações Básicas de Arquivos............................................................................................5
2.1. Conceitos.............................................................................................................................5
2.2. Estruturas de Arquivos.........................................................................................................5
2.2.1. Arquivo seqüencial.......................................................................................................5
2.2.2. Arquivo seqüencial-indexado.......................................................................................6
2.2.3. Arquivo indexado..........................................................................................................7
2.2.4. Arquivo direto...............................................................................................................8
3. Bancos de Dados.......................................................................................................................9
3.1. Banco de Dados (BD)..........................................................................................................9
3.2. Sistema de Gerência de Banco de Dados (SGBD).............................................................9
3.2.1. Processamento de Dados sem Banco de Dados........................................................9
3.2.2. Processamento de dados com uso de SGBD...........................................................10
3.2.3. Principais Componentes de um Sgbd........................................................................10
3.2.4. Características de um Sgbd.......................................................................................10
3.3. Abstração de Dados..........................................................................................................11
3.4. Modelos de Bancos de Dados...........................................................................................11
3.5. Independência de Dados ................................................................................................12
3.6. Funções relacionadas ao Sgbd.........................................................................................12
3.6.1. Administrador de Dados.............................................................................................12
3.6.2. Administrador de Banco de Dados............................................................................12
3.6.3. Projetista da Base de Dados......................................................................................12
3.6.4. Analista de Sistemas..................................................................................................12
3.7. Arquiteturas para uso do Sgbd..........................................................................................13
3.7.1. Mono-usuário.............................................................................................................13
3.7.2. Multi-Usuário com Processamento Central...............................................................13
3.7.3. Arquitetura em Rede com Servidor de Arquivos.......................................................13
3.7.4. Arquitetura Cliente/Servidor.......................................................................................13
3.8. Fases do Projeto de Bd.....................................................................................................13
3.8.1. Construir o Modelo Conceitual..................................................................................13
3.8.2. Construir o Modelo Lógico.........................................................................................13
3.8.3. Construir o Modelo Físico .........................................................................................13
3.8.4. Avaliar o Modelo Físico .............................................................................................14
3.8.5. Implementar o BD......................................................................................................14
4. MODELAGEM DE DADOS......................................................................................................14
4.1. Conceitos...........................................................................................................................14
4.2. Tipos de Abstração............................................................................................................14
4.2.1. Classificação..............................................................................................................14
4.2.2. Agregação..................................................................................................................14
4.2.3. Generalização............................................................................................................14
4.3. Requisitos para Modelagem de Dados.............................................................................14
4.4. Modelos Conceituais..........................................................................................................14
4.5. Modelos Lógicos................................................................................................................15
4.5.1. Modelo Hierárquico....................................................................................................15
4.5.2. Modelo de Rede.........................................................................................................16
4.5.3. Modelo Relacional......................................................................................................16
4.6. Modelo de Dados Físico....................................................................................................18
5. MODELO ENTIDADE-RELACIONAMENTO (M.E.R.).............................................................19
5.1. Introdução..........................................................................................................................19
5.2. Entidade.............................................................................................................................19
5.3. Relacionamento.................................................................................................................19
5.3.1. Auto-relacionamento..................................................................................................20
5.3.2. Cardinalidade de Relacionamentos...........................................................................21
5.3.3. Cardinalidade Máxima...............................................................................................21
5.3.4. Classificação de Relacionamentos Binários..............................................................21
5.3.5. Relacionamento ternário............................................................................................23
5.3.6. Cardinalidade mínima................................................................................................23
5.4. Notações Alternativas........................................................................................................24
5.5. Atributo ..............................................................................................................................24
5.5.1. Domínio......................................................................................................................25
5.5.2. Tipos de Atributos......................................................................................................25
5.5.3. Atributo de Relacionamento ......................................................................................25
5.5.4. Identificador de Entidades..........................................................................................25
5.5.5. Relacionamento Identificador (Entidade Fraca)........................................................26
5.5.6. Identificador de Relacionamentos..............................................................................26
5.6. Generalização/Especialização...........................................................................................26
5.7. Entidade Associativa (Agregação).....................................................................................28
5.8. Relacionamento Mutuamente Exclusivo...........................................................................29
5.9. Restrição de Persistência no Relacionamento..................................................................29
5.10. Esquema Textual do MER...............................................................................................30
Sistemas de Bancos de Dados I
1. INTRODUÇÃO
1.1. DADO
Representação de um evento do mundo físico, de um fato ou de uma idéia
Representação de uma propriedade ou característica de um objeto real
Não tem significado por si só
Ex.: quantidade de Kwh consumidos em uma residência.
1.2. INFORMAÇÃO
Organização e agregação dos dados, permitindo uma interpretação
Informação ➱ interpretação dos dados
Ex.: Consumo de energia comparado com a capacidade geradora da usina.
Identificados
Dados Organizados geram
Agrupados Informação
Armazenados
Recuperados
a) Acesso a um registro
Podemos considerar dois tipos de acesso: seqüencial ou aleatório.
O acesso seqüencial consiste em acessar os registros na ordem em que estão armazenados, ou
seja, o registro obtido é sempre o posterior ao último acessado. Como os registros são armazenados em
sucessão contínua, acessar o registro “n” de um arquivo requer a leitura dos “n-1” registros anteriores.
c) Exclusão de um registro
Normalmente é implementada como a inserção, com a criação de um arquivo de transações que
contém os registros a serem excluídos, que é processado posteriormente.
Pode ainda ser implementada através de um campo adicional no arquivo que indique o estado
(status) de cada registro. Na exclusão, o valor deste campo seria alterado para “excluído”. Posteriormente,
é feita a leitura seqüencial de todos os registros, sendo que os registros que não estiverem marcados como
“excluídos” são copiados para um novo arquivo.
d) Alteração de um registro
Consiste na modificação do valor de um ou mais atributos de um registro. O registro deve ser
localizado, lido e os campos alterados, sendo gravado novamente, na mesma posição.
A alteração é feita sem problemas, desde que ela não altere o tamanho do registro nem modifique
o valor de um campo usado como chave de ordenação.
Índice Arquivo
Num End. # Num Nome Idade Salário
1000 1 0 2010 WILSON 26 1000
1050 13 1 1000 ADEMAR 32 250
1070 2 2 1070 ANGELA 28 300
1075 16 3 1200 CLAUDIA 25 750
1100 22 4 1300 DIOGO 24 400
1200 3 5 1400 EDISON 22 1500
1250 10 6 1510 FLAVIO 30 250
1275 19 7 1590 HELENA 26 300
1300 4 8 1650 IVAN 32 750
1310 14 9 1730 MIGUEL 28 400
1400 5 10 1250 CRISTIE 25 1500
1430 17 11 1520 GENARO 24 750
1470 23 12 1740 RAMON 22 400
1510 6 13 1050 AFONSO 30 1500
1520 11 14 1310 ELBER 26 250
1530 20 15 1605 IARA 32 300
1590 7 16 1075 CARLOS 28 750
1605 15 17 1430 EDMUNDO 26 400
1650 8 18 1700 LUIS 32 1500
1700 18 19 1275 DARCI 26 750
1710 24 20 1530 GERSON 26 400
1730 9 21 1745 SANDRA 32 400
1740 12 22 1100 CESAR 28 1500
1745 21 23 1470 ENIO 25 750
1800 25 24 1710 MARIA 24 400
1905 26 25 1800 SONIA 22 750
2010 0 26 1905 TATIANA 30 400
Arquivo
# Num Nome Idade Salário
0 2010 WILSON 26 1000
1
2 1070 ANGELA 28 300
C=’CLAUDIA’ E=F(C) E=3 3 1200 CLAUDIA 25 750
NÍVEL FÍSICO: É o nível mais baixo de abstração, no qual se descreve como os dados
são armazenados. Estruturas complexas, de baixo nível, são descritas em detalhe.
NÍVEL CONCEITUAL: É o nível que descreve quais os dados são realmente
armazenados no BD e quais os relacionamentos existentes entre eles. Este nível descreve o
BD como um pequeno número de estruturas relativamente simples. Muito embora a
implementação de estruturas simples no nível conceitual possa envolver estruturas
complexas no nível físico, o usuário do nível conceitual não precisa saber disto.
NÍVEL VISÃO: Este é o nível mais alto de abstração, no qual se expõe apenas parte do
BD. Na maioria das vezes os usuários não estão preocupados com todas as informações do
BD e sim com apenas parte delas (Visões dos Usuários)
3.7.1. MONO-USUÁRIO
BD está no mesmo computador que as aplicações
Não há múltiplos usuários
Recuperação geralmente através de backup
Típico de computadores pessoais
3.8.5. IMPLEMENTAR O BD
Etapa de carga (load) dos dados
Gerar as interfaces com outras aplicações
4. MODELAGEM DE DADOS
4.1. CONCEITOS
Abstração: processo mental através do qual selecionamos determinadas propriedades ou
características dos objetos e excluímos outras, consideradas menos relevantes para o problema sendo
analisado.
Modelo: é uma abstração, uma representação simplificada, de uma parcela do mundo real, composta
por objetos reais.
Modelagem: atividade através da qual se cria um modelo.
Modelo de dados: Um modelo de dados é uma descrição das informações que devem ser
armazenadas em um banco de dados, ou seja, é a descrição formal da estrutura de BD (descrição dos
dados, dos relacionamentos entre os dados, da semântica e das restrições impostas aos dados).
4.2.1. CLASSIFICAÇÃO
Os objetos do mundo real são organizados segundo suas propriedades ou características comuns,
formando classes de objetos. Um objeto pode pertencer simultaneamente a várias classes.
4.2.2. AGREGAÇÃO
Uma classe é definida a partir de um conjunto de outras classes, que representam suas partes
componentes.
4.2.3. GENERALIZAÇÃO
Define uma nova classe a partir de características comuns de outras classes. A classe genérica
que reúne as características comuns é denominada superclasse e as classes que herdam estas
características são denominadas subclasses.
5.2. ENTIDADE
Conjunto de objetos da realidade modelada sobre os quais deseja-se manter informações no Banco de
Dados
Uma entidade pode representar objetos concretos da realidade (pessoas, automóveis, material, nota
fiscal) quanto objetos abstratos (departamentos, disciplinas, cidades)
A entidade se refere a um conjunto de objetos; para se referir a um objeto em particular é usado o
termo instância (ou ocorrência)
No DER, uma entidade é representada através de um retângulo que contém o nome da entidade
PESSOA DEPARTAMENTO
5.3. RELACIONAMENTO
É toda associação entre entidades, sobre a qual deseja-se manter informações no Banco de Dados.
Os relacionamentos representam fatos ou situações da realidade, onde as entidades interagem de
alguma forma
Um dado por si só não faz uma informação, pois não tem sentido próprio; é necessário que haja uma
associação de dados para que a informação seja obtida.
Exemplos:
Fornecimento: entre as entidades FORNECEDOR e MATERIAL
Matrícula: entre as entidades ALUNO e DISCIPLINA
Financiamento: entre as entidades PROJETO e AGENTE FINANCEIRO
No DER, os relacionamentos são representados por losangos, ligados às entidades que participam do
relacionamento
LOTAÇ
DEPARTAMENTO PESSOA
ÃO
5.3.1. AUTO-RELACIONAMENTO
Relacionamento entre ocorrências da mesma entidade.
PESSOA
marido esposa
CASAMEN
TO
O papel da entidade no relacionamento indica a função que uma ocorrência de uma entidade
cumpre em uma ocorrência de um relacionamento.
1 REALIZ N
CLIENTE PEDIDO
A
Um cliente pode fazer pedidos ou não, mas todos os pedidos devem estar associados a um cliente.
1 N
DEPTO ALOCA EMPREGADO
Sistemas de Bancos de Dados I - 23
Todos os departamentos devem possuir pelo menos um empregado alocado, e todos os
empregados devem estar alocados em um departamento.
1 N
DEPTO ALOCA EMPREGADO
1
0
Parcialidade mínima: para um departamento ser criado, devem existem pelo menos 10
empregados alocados.
(0,N
(1,1)
DEPTO ) ALOCA EMPREGADO
1 N
DEPTO ALOCA EMPREGADO
5.5. ATRIBUTO
É um dado que é associado a cada ocorrência de uma entidade ou relacionamento.
Os atributos não possuem existência própria ou independente - estão sempre associados a uma
entidade ou relacionamento
Exemplos:
Funcionário: Matrícula, Nome, Endereço
Material: Código, Descrição
Financiamento: Valor total, Meses
Fornecedor: Nome, Endereço
a) Opcional/Mandatório
130. Opcional: o atributo pode possuir um valor nulo (vazio). Ex: número de telefone
131. Mandatório: o atributo deve possuir um valor válido, não nulo. Ex: nome do cliente
b) Monovalorado/Multivalorado
132. Monovalorado: o atributo assume um único valor dentro do domínio. Ex: data de
nascimento
133. Multivalorado: o atributo pode assumir um número qualquer de valores dentro do
domínio. Ex: Telefone para contato
c) Atômico/Composto
134. Atômico: o atributo não pode ser decomposto em outros atributos. Ex: Idade
135. Composto: o atributo é composto por mais de um atributo. Ex: Endereço
Como o mesmo médico pode consultar o mesmo paciente em diversas ocasiões, é necessário o
uso de um atributo que diferencie uma consulta da outra.
5.6. GENERALIZAÇÃO/ESPECIALIZAÇÃO
A generalização é um processo de abstração em que vários tipos de entidade são agrupados em uma
única entidade genérica, que mantém as propriedades comuns
A especialização é o processo inverso, ou seja, novas entidades especializadas são criadas, com
atributos que acrescentam detalhes à entidade genérica existente
Se for necessário adicionar a informação que, a cada consulta um ou mais medicamentos podem
ser prescritos ao paciente, será necessário criar uma nova entidade (MEDICAMENTO). Esta entidade
deve se relacionar com as consultas, mas CONSULTA é um relacionamento. Deve ser criada então uma
entidade associativa.
TRANSPORT
AVIÃO CARGA
E
TRANSPORT
E
PASSAGEIRO
1 N
EMPRÉS
ALUNO LIVRO
-TIMO
SEÇÃO_ENTIDADE → (DECL_ENT)
DECL_ENT → Entidade: ENTIDADE_NOME
{SEÇÃO_ATRIBUTO}
{SEÇÃO_IDENTIFICADOR}
MIN_CARD → 0 | 1
MAX_CARD → 1 | N
DECL_TIPO → inteiro|real|boolean|texto(inteiro)|enum(LISTA_VALORES)|data
SEÇÃO_GENERALIZAÇÃO → {DECL_HIERARQUIA_GEN}
DECL_HIERARQUIA_GEN → Generalização[(CORBERTURA)]; NOME_GEN
PAI: NOME_ENTIDADE
FILHO: LISTA_NOME_ENTIDADE
COBERTURA → t | p
SEÇÃO_AGREGAÇÃO →{DECL_ENT_ASSOC}
DECL_ENT_ASSOC → EntidadeAssociativa: NOME_RELACIONAMENTO
SEÇÃO_RELACIONAMENTO → {DECL_RELACIONAMENTO}
DECL_RELACIONAMENTO → Relacionamento: NOME_RELACIONAMENTO
Entidades: {DECL_ENT-RELACIONADA}
[ Atributos: {DECL_ATRIB} ]
[ Identificadores: {DECL_IDENT}]
DECL_ENT-RELACIONADA → [(MIN_CARD,MAX_CARD)] NOME_ENTIDADE
Exemplo:
Esquema: EMPRESA
Entidade: DEPARTAMENTO
Atributos: código: inteiro;
Nome: texto(20);
Ativo: boolean;
Identificador: código
Entidade: EMPREGADO
Atributos: matrícula: inteiro;
Nome: texto(50);
DataNasc : data;
Identificador: matrícula
Relacionamento: ALOCA
Entidades: (0,N) DEPARTAMENTO
(1,1) EMPREGADO