Você está na página 1de 30

SBD I

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

1.3. A INFORMAÇÃO COMO RECURSO DA EMPRESA

Sistemas de Bancos de Dados I - 4


2. ORGANIZAÇÕES BÁSICAS DE ARQUIVOS
2.1. CONCEITOS
 Estruturas de Dados: define a forma como os dados estão organizados, como se relacionam e como
serão manipulados pelos programas. Ex: vetores e matrizes, registros, filas, pilhas, árvores, grafos,
etc.
 Arquivo: coleção de registros lógicos, cada um deles representando um objeto ou entidade. Na prática
os arquivos geralmente estão armazenados na memória secundária (fitas e discos) e são usados para
armazenar os resultados intermediários de processamento ou armazenar os dados de forma
permanente.
 Registro lógico (registro) : seqüência de itens, cada item sendo chamado de campo ou atributo,
correspondendo a uma característica do objeto representado. Os registros podem ser de tamanho fixo
ou de tamanho variável.
 Campo: item de dados do registro, com um nome e um tipo associados
 Bloco: unidade de armazenamento do arquivo em disco, também denominado registro físico. Um
registro físico normalmente é composto por vários registros lógicos. Cada bloco armazena um número
inteiro de registros.
 Chave: é uma seqüência de um ou mais campos em um arquivo
 Chave primária: é uma chave que apresenta um valor diferente para cada registro do arquivo. É
usada para identificar, de forma única, cada registro.
 Chave secundaria: é uma chave que pode possuir o mesmo valor em registro distintos. É
normalmente usada para identificar um conjunto de registros.
 Chave de acesso: é uma chave usada para identificar o(s) registro(s) desejado(s) em uma operação de
acesso ao arquivo.

2.2. ESTRUTURAS DE ARQUIVOS

2.2.1. ARQUIVO SEQÜENCIAL


Nos arquivos seqüenciais a ordem lógica e física dos registros armazenados é a mesma. Os
registros podem estar dispostos seguindo a seqüência determinada por uma chave primária (chamada
chave de ordenação), ou podem estar dispostos aleatoriamente.

# Numero Nome Idade Salario


0 1000 ADEMAR 25 600
1 1050 AFONSO 27 700
2 1075 CARLOS 28 500
3 1100 CESAR 30 1000
4 1150 DARCI 23 1500
5 1180 EBER 22 2000
6 1250 ENIO 27 750
7 1270 FLAVIO 28 600
8 1300 IVAN 30 700
9 1325 MIGUEL 34 1000
10 1340 MARIA 35 1500
11 1360 RAMON 32 2000
12 1400 SANDRA 29 700
13 1450 TATIANA 30 500

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.

Sistemas de Bancos de Dados I - 5


O acesso aleatório se caracteriza pela utilização de um “argumento de pesquisa” (chave de
acesso), que indica qual o registro desejado. Neste caso, a ordem em que os registros são acessados pode
ser diferente da ordem em que eles estão armazenados fisicamente. Se o arquivo está ordenado e a chave
de acesso coincide com a chave de ordenação, podemos utilizar a pesquisa binária. Caso contrário, deve
ser realizada uma pesquisa seqüencial no arquivo.
b) Inserção de um registro
Se o arquivo não está ordenado, o registro pode ser simplesmente inserido após o último registro
armazenado.
Se o arquivo está ordenado, normalmente é adotado o seguinte procedimento:
Dado um arquivo base B, é construído um arquivo de transações T, que contem os registros a
serem inseridos, ordenado pela mesma chave que o arquivo B. Os arquivos B e T são então intercalados,
gerando o arquivo A, que é a versão atualizada de B.

Arquivo B Arquivo T Arquivo A


# Num Nome Idade # Num Nome Idade # Num Nome Idade
0 1000 ADEMAR 25 0 1070 ANGELA 25 0 1000 ADEMAR 25
1 1050 AFONSO 27 1 1120 CLAUDIA 27 1 1050 AFONSO 27
2 1075 CARLOS 28 2 1280 IARA 28 2 1070 ANGELA 25
3 1100 CESAR 30 3 1310 LUIS 30 3 1075 CARLOS 28
4 1150 DARCI 23 4 1420 SONIA 23 4 1100 CESAR 30
5 1180 EBER 22 5 1120 CLAUDIA 27
6 1250 ENIO 27 6 1150 DARCI 23
7 1270 FLAVIO 28 7 1180 EBER 22
8 1300 IVAN 30 8 1250 ENIO 27
9 1325 MIGUEL 34 9 1270 FLAVIO 28
10 1340 MARIA 35 10 1280 IARA 28
11 1360 RAMON 32 11 1300 IVAN 30
12 1400 SANDRA 29 12 1310 LUIS 30
13 1450 TATIANA 30 13 1325 MIGUEL 34
14 1340 MARIA 35
15 1360 RAMON 32
16 1400 SANDRA 29
17 1420 SONIA 23
18 1450 TATIANA 30

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.

2.2.2. ARQUIVO SEQÜENCIAL-INDEXADO


Quando o volume de acessos aleatórios em um arquivo seqüencial torna-se muito grande, é
necessário utilizar uma estrutura de acesso que ofereça maior eficiência na localização de um registro
com base em uma chave de acesso.
O arquivo seqüencial-indexado é um arquivo seqüencial acrescido de uma estrutura de acesso
(índice). Um índice é formado por uma coleção de pares, associando um valor da chave de acesso a um
endereço de registro. Deve existir um índice específico para cada chave de acesso.

Índice Primário Índice Secundário Arquivo


Sistemas de Bancos de Dados I - 6
# Num End. # Num End. # Num Nome Idade
0 1300 0 0 1070 0 0 1000 ADEMAR 25
1 1605 3 1 1200 3 1 1050 AFONSO 27
2 ** 6 2 1300 6 2 1070 ANGELA 25
** Maior valor que a 3 1430 9 3 1075 CARLOS 28
chave pode assumir 4 1520 12 4 1100 CESAR 30
5 1605 15 5 1200 CLAUDIA 25
6 1710 18 6 1250 CRISTIE 26
7 1745 21 7 1275 DARCI 29
8 ** 24 8 1300 DIOGO 25
** Maior valor que a 9 1310 ELBER 27
chave pode assumir 10 1400 EDISON 25
11 1430 EDMUNDO 28
12 1470 ENIO 30
13 1510 FLAVIO 25
14 1520 GENARO 26
15 1530 GERSON 29
16 1590 HELENA 25
17 1605 IARA 27
18 1650 IVAN 25
19 1700 LUIS 28
20 1710 MARIA 30
21 1730 MIGUEL 25
22 1740 RAMON 26
23 1745 SANDRA 29
24 1800 SONIA 32
25 1905 TATIANA 34
26 2010 WILSON 20

2.2.3. ARQUIVO INDEXADO


O arquivo indexado é aquele em que os registros são acessados através de um ou mais índices,
não havendo qualquer compromisso com a ordem em que os registros estão armazenados.
Podem existir tantos índices quantas forem as chaves de acesso aos registros. As entradas no
índice são ordenadas pelo valor das chaves de acesso, sendo cada uma delas constituída por um par
(chave do registro, endereço do registro).

Í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

Sistemas de Bancos de Dados I - 7


2.2.4. ARQUIVO DIRETO
A idéia básica de um arquivo direto é o armazenamento dos registros em endereços
determinados com base no valor de uma chave primária, de modo que se tenha acesso rápido aos registros
especificados por argumentos de pesquisa, sem que haja necessidade de percorrer uma estrutura de índice.
Em um arquivo direto ao invés de um índice é usada uma função que calcula um endereço de
registro a partir do argumento de pesquisa.

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

4 1300 DIOGO 24 400


5
6
7
8 1650 IVAN 32 750
9 1730 MIGUEL 28 400
10 1250 CRISTIE 25 1500
11
12
13 1050 AFONSO 30 1500
14
15 1800 SONIA 22 750
...

O principal problema associado com os arquivos diretos é o da determinação de uma função F,


que transforme o valor C da chave de um registro no endereço E, que lhe corresponde no arquivo.
Geralmente são usadas “funções probabilísticas” que geram, para cada valor da chave, um
endereço “tão único quanto possível”, podendo gerar, para valores distintos da chave, o mesmo endereço.
Este fato é denominado “colisão”, e devem ser estabelecidos procedimentos para tratá-lo.

Sistemas de Bancos de Dados I - 8


3. BANCOS DE DADOS
3.1. BANCO DE DADOS (BD)
Um Banco de Dados (BD) pode ser definido como uma coleção de dados interrelacionados,
armazenados de forma centralizada ou distribuída, com redundância controlada, para servir a uma ou
mais aplicações.

3.2. SISTEMA DE GERÊNCIA DE BANCO DE DADOS (SGBD)


Conjunto de software para gerenciar (definir, criar, modificar, usar) um BD e garantir a
integridade e segurança dos dados. O SGBD é a interface entre os programas de aplicação e o BD. Em
inglês é denominado DataBase Management System (DBMS).

3.2.1. PROCESSAMENTO DE DADOS SEM BANCO DE DADOS


Dados de diferentes aplicações não estão integrados, pois são projetados para atender a uma
aplicação específica.

Sistemas de Bancos de Dados I - 9


Problemas da falta de integração de dados:
 O mesmo objeto da realidade é múltiplas vezes representado na base de dados. Exemplo:
dados de um produto em uma indústria
 Redundância não controlada de dados: Não há gerência automática da redundância, o que
leva a inconsistência dos dados devido a redigitação de informações
 Dificuldade de extração de informações: os dados são projetados para atender aplicações
especificas gerando dificuldades para o cruzamento de informações
 Dados pouco confiáveis e de baixa disponibilidade

3.2.2. PROCESSAMENTO DE DADOS COM USO DE SGBD


Os dados usados por uma comunidade de usuários são integrados no Banco de Dados. Cada
informação é armazenada uma única vez, sendo que as eventuais redundâncias são controladas pelo
sistema em computador, ficando transparentes para os usuários.

3.2.3. PRINCIPAIS COMPONENTES DE UM SGBD


 Dicionário de dados (Data Dictionary): Descreve os dados e suas relações em forma conceitual e
independente de seu envolvimento nas diversas aplicações. Fornece referências cruzadas entre os
dados e as aplicações.
 Linguagem de definição de dados (DDL - Data Definition Language): Descreve os dados que
estão armazenados no BD. As descrições dos dados são guardadas em um “meta banco de dados”.
 Linguagem de acesso (DML - Data Manipulation Language): Usada para escrever as instruções
que trabalham sobre a base de dados, permitindo o acesso e atualização dos dados pelos programas de
aplicação. Geralmente integrada com a DDL.
 Linguagem de consulta (QUERY): Permite que o usuário final, com poucos conhecimentos
técnicos, possa obter de forma simples, informações do BD.
 Utilitários administrativos: Programas auxiliares para carregar, reorganizar, adicionar, modificar a
descrição do BD, obter cópias de reserva e recuperar a integridade física em caso de acidentes.

3.2.4. CARACTERÍSTICAS DE UM SGBD


Um princípio básico em BD determina que cada item de dado deveria ser capturado apenas uma
vez e então armazenado, de modo que possa tornar disponível para atender a qualquer necessidade de
acesso qualquer momento.
Alguns pontos importantes são:
 Independência dos dados: O SGBD deve oferecer isolamento das aplicações em relação
aos dados. Esta característica permite modificar o modelo de dados do BD sem necessidade
de reescrever ou recompilar todos os programas que estão prontos. As definições dos dados e
os relacionamentos entre os dados são separados dos códigos os programas. Mais de 80 % do

Sistemas de Bancos de Dados I - 10


tempo dos analistas e programadores é gasto na manutenção de programas. A principal
causa deste elevado tempo reside na falta de independência entre dados e programas.
 Facilidade uso/desempenho: Embora o SGBD trabalhe com estruturas de dados
complexas, os arquivos devem ser projetados para atender a diferentes necessidades,
permitindo desenvolver aplicações melhores, mais seguras e mais rapidamente. Deve possui
comandos poderosos em sua linguagem de acesso.
 Integridade dos dados: O SGBD deve garantir a integridade dos dados, através da
implementação de restrições adequadas. Isto significa que os dados devem ser precisos e
válidos.
 Redundância dos dados: O SGBD deve manter a redundância de dados sob controle, ou
seja, ainda que existam diversas representações do mesmo dado, do ponto de vista do usuário
é como se existisse uma única representação.
 Segurança e privacidade dos dados: O SGBD deve assegurar que estes só poderão ser
acessados ou modificados por usuários autorizados.
 Rápida recuperação após falha: Os dados são de importância vital e não podem ser
perdidos. Assim, o SGBD deve implementar sistemas de tolerância a falhas, tais como
estrutura automática de recover e uso do conceito de transação.
 Uso compartilhado: O BD pode ser acessado concorrentemente por múltiplos usuários.
 Controle do espaço de armazenamento: O SGBD deve manter controle das áreas de
disco ocupadas, evitando a ocorrência de falhas por falta de espaço de armazenamento.

3.3. ABSTRAÇÃO DE DADOS


Um propósito central de um SGBD é proporcionar aos usuários uma visão abstrata dos dados,
isto é, o sistema esconde certos detalhes de como os dados são armazenados ou mantidos. No entanto, os
dados precisam ser recuperados eficientemente.
A preocupação com a eficiência leva a concepção de estruturas de dados complexas para
representação dos dados no BD. Porém, uma vez que SGBD são freqüentemente usados por pessoas sem
treinamento na área de computação, esta complexidade precisa ser escondida dos usuários. Isto é
conseguido definindo-se diversos níveis de abstração pelos quais o BD pode ser visto:

 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.4. MODELOS DE BANCOS DE DADOS


Um modelo de (banco de) dados é uma descrição dos tipos de informações que estão
armazenadas em um banco de dados, ou seja, é a descrição formal da estrutura de BD.
Estes modelos podem ser escritos em linguagens textuais ou linguagens gráficas. Cada
apresentação do modelo é denominado “esquema de banco de dados”.
Se tomarmos como exemplo uma indústria, o modelo de dados deve mostrar que são
armazenadas informações sobre produtos, tais como código, descrição e preço. Porém o modelo de dados
não vai informar quais produtos estão armazenados no Banco de Dados.
No projeto de um banco de dados, geralmente são considerados 3 modelos: conceitual, lógico e
físico.
Sistemas de Bancos de Dados I - 11
 Modelo conceitual: É uma descrição mais abstrata da base de dados. Não contém detalhes
de implementação e é independente do tipo de SGBD usado. É o ponto de partida para o
projeto da base de dados.
 Modelo Lógico: É a descrição da base de dados conforme é vista pelos usuário do SGBD
(programadores e aplicações). É dependente do tipo de SGBD escolhido, mas não contém
detalhes da implementação (uma vez que o SGBD oferece abstração e independência de
dados).
 Modelo físico (interno): Descrição de como a base de dados é armazenada internamente.
Geralmente só é alterada para ajuste de desempenho. A tendência dos produtos modernos é
ocultar cada vez mais os detalhes físicos de implementação.

3.5. INDEPENDÊNCIA DE DADOS


 Independência de dados a nível físico: a capacidade de se modificar o modelo físico, sem precisar
reescrever os programas de aplicação.
 Independência dados a nível lógico: a capacidade de se modificar o esquema lógico, sem a
necessidade de reescrever os programas de aplicação. Modificações no nível lógico são necessárias
sempre que a estrutura lógica do BD for alterada. Em alguns casos a recompilação pode ser requerida.

3.6. FUNÇÕES RELACIONADAS AO SGBD

3.6.1. ADMINISTRADOR DE DADOS


 Gerenciar o dado como um recurso da empresa.
 Planejar, desenvolver e divulgar as bases de dados da empresa.
 Permitir a descentralização dos processos, mas manter centralizado os dados.
 Permitir fácil e rápido acesso as informações a partir dos dados armazenados.
 O grande objetivo de administrador de dados é permitir que vários usuários compartilhem os mesmos
dados. Deste modo, os dados não pertencem a nenhum sistema ou usuário de forma específica, e sim,
à organização como um todo. Assim, o administrador de dados se preocupa basicamente com a
organização dos dados e não com o seu armazenamento.

3.6.2. ADMINISTRADOR DE BANCO DE DADOS


O DBA (DataBase Administrator) é pessoa ou grupo de pessoas responsável pelo controle do
SGBD. São tarefas do DBA:
 Responsabilidade pelos modelos lógico e físico (definindo a estrutura de armazenamento)
 Coordenar o acesso ao SGBD (usuários e senhas)
 Definir a estratégia de backup
 Melhorar o desempenho do SGBD
 Manter o dicionário de dados

3.6.3. PROJETISTA DA BASE DE DADOS


Constrói o modelo conceitual de uma parte da base de dados, com a participaçào do usuário.
Junto com o DBA integra as novas partes ao banco de dados global.

3.6.4. ANALISTA DE SISTEMAS


Define e projeta aplicação que irão usar a base de dados existente. Utiliza o modelo conceitual e
o modelo lógico existentes, mas não define os dados da base de dados.

Sistemas de Bancos de Dados I - 12


3.7. ARQUITETURAS PARA USO DO SGBD

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.7.2. MULTI-USUÁRIO COM PROCESSAMENTO CENTRAL


 BD está no mesmo computador que as aplicações
 Múltiplos usuários acessando através de terminais
 Típico de ambientes com mainframe

3.7.3. ARQUITETURA EM REDE COM SERVIDOR DE ARQUIVOS


 Multi-usuário
 Servidor de arquivos contém todos os arquivos do banco de dados
 As estações clientes executam as aplicações e o software de BD
 Gera alto tráfego na rede
 Típico de redes pequenas (peer-to-peer)

3.7.4. ARQUITETURA CLIENTE/SERVIDOR


 Multi-usuário
 Servidor dedicado ao Banco de Dados, executando o SGBD
 As estações clientes executam apenas as aplicações
 Tráfego na rede é menor
 Arquitetura atualmente em uso

3.8. FASES DO PROJETO DE BD

3.8.1. CONSTRUIR O MODELO CONCEITUAL


 Modelo de alto nível, independente da implementação
 Etapa de levantamento de dados
 Uso de uma técnica de modelagem de dados
 Abstração do ambiente de hardware/software

3.8.2. CONSTRUIR O MODELO LÓGICO


 Modelo implementável, dependente do tipo de SGBD a ser usado
 Considera as necessidades de processamento
 Considera as características e restrições do SGBD
 Etapa de normalização dos dados

3.8.3. CONSTRUIR O MODELO FÍSICO


 Modelo implementável, com métodos de acesso e estrutura física
 Considera necessidades de desempenho
 Considera as características e restrições do SGBD
 Dependente das características de hardware/software

Sistemas de Bancos de Dados I - 13


3.8.4. AVALIAR O MODELO FÍSICO
 Avaliar o desempenho das aplicações
 Avaliar os caminhos de acesso aos dados e estruturas utilizadas

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. TIPOS DE ABSTRAÇÃO

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.

4.3. REQUISITOS PARA MODELAGEM DE DADOS


 Entender a realidade em questão, identificando os objetos que compõe a parte da realidade que vai ser
modelada..
 Representar formalmente a realidade analisada, construindo um modelo de dados.
 Estruturar o modelo obtido e adequá-lo ao SGBD a ser usado, transformando o modelo conceitual em
modelo lógico.

4.4. MODELOS CONCEITUAIS


São usados para descrição de dados no nível conceitual. Proporcionam grande capacidade de
estruturação e permitem a especificação de restrições de dados de forma explícita. Exemplos:
 Modelo Entidade-Relacionamento (M.E.R.)
Sistemas de Bancos de Dados I - 14
 Modelo de Semântica de dados
 Modelo Infológico
 Modelos Orientados para Objetos (OO)

4.5. MODELOS LÓGICOS


São usados na descrição dos dados no nível lógico. Em contraste com modelos conceituais,
esses modelos são usados para especificar tanto a estrutura lógica global do BD como uma descrição em
alto nível da implementação.

4.5.1. MODELO HIERÁRQUICO


Um BD hierárquico é uma coleção de árvores de registros. Os registros são usados para
representar os dados e ponteiros são usados para representar o relacionamento entre os dados, numa
ligação do tipo pai-filho. A restrição é que um determinado registro somente pode possuir um registro pai.

Sistemas de Bancos de Dados I - 15


4.5.2. MODELO DE REDE
O BD em rede é um grafo, onde os nós representam os registros e os arcos representam os
relacionamentos entre os registros, através de ligações pai-filho. Diferente do modelo hierárquico, um
registro pode possuir diversos registros pai.

4.5.3. MODELO RELACIONAL


Um BD relacional possui apenas um tipo de construção, a tabela. Uma tabela é composta por
linhas (tuplas) e colunas (atributos). Os relacionamentos entre os dados também são representados ou por
tabelas, ou através da reprodução dos valores de atributos.

Sistemas de Bancos de Dados I - 16


Sistemas de Bancos de Dados I - 17
4.6. MODELO DE DADOS FÍSICO
Usados para descrever os dados em seu nível mais baixo. Capturam os aspectos de
implementação do SGBD.

Sistemas de Bancos de Dados I - 18


5. MODELO ENTIDADE-RELACIONAMENTO (M.E.R.)
5.1. INTRODUÇÃO
 Apresentado por Peter Chen, em 1976
 É a técnica mais difundida para construir modelos conceituais de bases de dados
 É o padrão para modelagem conceitual, tendo sofrido diversas extensões
 Está baseado na percepção de uma realidade constituída por um grupo básico de objetos chamados
ENTIDADES e por RELACIONAMENTOS entre estas entidades
 Seu objetivo é definir um modelo de alto nível independente de implementação
 O modelo é representado graficamente por um Diagrama de Entidade-Relacionamento (DER), que é
simples e fácil de ser entendido por usuários não técnicos
 Conceitos centrais do MER: entidade, relacionamento, atributo, generalização/especialização,
agregação (entidade associativa)

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

Sistemas de Bancos de Dados I - 19


 Diagrama de ocorrências de relacionamentos:

5.3.1. AUTO-RELACIONAMENTO
Relacionamento entre ocorrências da mesma entidade.

PESSOA

marido esposa
CASAMEN
TO

Diagrama de ocorrências no auto-relacionamento:

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.

Sistemas de Bancos de Dados I - 20


5.3.2. CARDINALIDADE DE RELACIONAMENTOS
A cardinalidade de uma entidade em um relacionamento expressa o número de instâncias da
entidade que podem ser associadas a uma determinada instância da entidade relacionada.
Devem ser consideradas duas cardinalidades:
 Cardinalidade mínima de uma entidade é o número mínimo de instâncias da entidade
associada que devem se relacionar com uma instância da entidade em questão.
 Cardinalidade máxima de uma entidade é o número máximo de instâncias da entidade
associada que devem se relacionar com uma instância da entidade em questão.

5.3.3. CARDINALIDADE MÁXIMA


No projeto para BD relacional (como neste curso) não é necessário distinguir as cardinalidades
que sejam maiores que 1. Assim, são usados apenas as cardinalidades máximas 1 e n (muitos).

5.3.4. CLASSIFICAÇÃO DE RELACIONAMENTOS BINÁRIOS


A cardinalidade máxima é usada para classificar os relacionamentos binários (aqueles que
envolvem duas entidades).

Sistemas de Bancos de Dados I - 21


a) Relacionamentos 1:1 (um-para-um)

b) Relacionamentos 1:N (um-para-muitos)

c) Relacionamentos N:N (muitos-para-muitos)

Sistemas de Bancos de Dados I - 22


5.3.5. RELACIONAMENTO TERNÁRIO
É o relacionamento formado pela associação de três entidades

Cardinalidade em relacionamentos ternários:

5.3.6. CARDINALIDADE MÍNIMA


A cardinalidade mínima é usada para indicar o tipo de participação da entidade em um
relacionamento. Esta participação pode ser:

 Parcial ou Opcional: quando uma ocorrência da entidade pode ou não participar de


determinado relacionamento; é indicado pela cardinalidade mínima = 0 (zero).
 Total ou Obrigatória: quando todas as ocorrências de uma entidade devem participar de
determinado relacionamento; é indicado pela cardinalidade mínima > 0 (zero).
Exemplos:

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.

5.4. NOTAÇÕES ALTERNATIVAS

 Notação Heuser: semântica associativa


(1,
(0,N)
1)
DEPTO ALOCA EMPREGADO

 Notação Santucci/MERISE: semântica participativa

(0,N
(1,1)
DEPTO ) ALOCA EMPREGADO

 Notação Setzer: semântica associativa

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

Sistemas de Bancos de Dados I - 24


5.5.1. DOMÍNIO
É o conjunto de valores válidos que um atributo pode assumir.
Ex: Estado civil: solteiro, casado, divorciado, viúvo

5.5.2. TIPOS DE ATRIBUTOS

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

5.5.3. ATRIBUTO DE RELACIONAMENTO


Assim como as entidades, os relacionamentos também podem possuir atributos.

5.5.4. IDENTIFICADOR DE ENTIDADES


 Conjunto de atributos que tem a propriedade de identificar univocamente cada ocorrência de uma
entidade
 Toda entidade deve possuir um identificador
 O identificador deve ser mínimo, único, monovalorado e mandatório

Sistemas de Bancos de Dados I - 25


5.5.5. RELACIONAMENTO IDENTIFICADOR (ENTIDADE FRACA)
Existem casos em que uma entidade não pode ser identificada apenas com seus próprios
atributos, mas necessita de atributos de outras entidades com as quais se relaciona. Este relacionamento é
denominado Relacionamento Identificador. Alguns autores denominam uma entidade nesta situação de
Entidade Fraca.

5.5.6. IDENTIFICADOR DE RELACIONAMENTOS


Uma ocorrência de relacionamento diferencia-se das demais pelas ocorrências das entidades que
participam do relacionamento. No exemplo

No exemplo, uma ocorrência de ALOCAÇÃO é identificada pela ocorrência de Engenheiro e


pela ocorrência de Projeto. Ou seja, para cada par (engenheiro, projeto) há no máximo um relacionamento
de alocação.
Em certos casos, será necessário o uso de atributos identificadores de relacionamentos. Por
exemplo:

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

Sistemas de Bancos de Dados I - 26


 A entidade genérica é denominada superclasse e as entidades especializadas são as subclasses. A
superclasse armazena os dados gerais de uma entidade, as subclasses armazenam os dados
particulares
 Este conceito está associado à idéia de herança de propriedades. Isto significa que as subclasses
possuem, além de seus próprios atributos, os atributos da superclasse correspondente.
 Usada quando é necessário caracterizar entidades com atributos próprios ou participação em
relacionamentos específicos

Uma generalização/especialização pode ser total ou parcial:


 É total quando, para cada ocorrência da entidade genérica, existe sempre uma ocorrência
em uma das entidades especializadas.
 É parcial quando nem toda ocorrência da entidade genérica possui uma ocorrência
correspondente em uma entidade especializada.

Sistemas de Bancos de Dados I - 27


5.7. ENTIDADE ASSOCIATIVA (AGREGAÇÃO)
 O uso desta abstração é necessário quando um relacionamento deve ser representado como uma
entidade no modelo conceitual. Isto ocorre quando é necessário estabelecer um relacionamento entre
uma entidade e um relacionamento.
 Para atender a esta situação foi criado o conceito de Entidade Associativa ou Agregação. A agregação
é simplesmente um relacionamento que passa a ser tratado como entidade.
 Considerando o exemplo

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.

Outra forma alternativa de se representar a entidade associativa é

Sistemas de Bancos de Dados I - 28


5.8. RELACIONAMENTO MUTUAMENTE EXCLUSIVO
Neste tipo de relacionamento uma ocorrência de um entidade pode estar associada com
ocorrências de outras entidades, mas não simultaneamente.

TRANSPORT
AVIÃO CARGA
E

TRANSPORT
E

PASSAGEIRO

5.9. RESTRIÇÃO DE PERSISTÊNCIA NO RELACIONAMENTO


Um relacionamento é persistente quando, depois de criado, ele não puder ser removido
indiretamente pela remoção de uma ocorrência de uma das entidades associadas.

1 N
EMPRÉS
ALUNO LIVRO
-TIMO

Sistemas de Bancos de Dados I - 29


5.10. ESQUEMA TEXTUAL DO MER
Um esquema ER pode ser um texto. Abaixo é definida uma sintaxe para uma linguagem textual
para definição de esquemas ER. Nesta sintaxe, são usadas as seguintes convenções: colchetes indicam
opcionalidade, o sufixo LISTA denota uma seqüência de elementos separados por vírgulas e o sufixo
NOME denota os identificadores.

ESQUEMA → Esquema: ESQUEMA_NOME


SEÇÃO_ENTIDADE
SEÇÃO_GENERALIZAÇÃO
SEÇÃO_AGREGAÇÃO
SEÇÃO_RELACIONAMENTO

SEÇÃO_ENTIDADE → (DECL_ENT)
DECL_ENT → Entidade: ENTIDADE_NOME
{SEÇÃO_ATRIBUTO}
{SEÇÃO_IDENTIFICADOR}

SEÇÃO_ATRIBUTO → Atributos: {DECL_ATRIB}


DECL_ATRIB → [(MIN_CARD, MAX_CARD)] ATRIBUTO_NOME [: DECL_TIPO]

MIN_CARD → 0 | 1
MAX_CARD → 1 | N
DECL_TIPO → inteiro|real|boolean|texto(inteiro)|enum(LISTA_VALORES)|data

SEÇÃO_IDENTIFICADOR → Identificadores: {DECL_IDENT}


DECL_IDENT → (IDENTIFICADOR)
IDENTIFICADOR → ATRIBUTO_NOME

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

Sistemas de Bancos de Dados I - 30