Buscar

BC0005_aula_07_Banco_de_Dados_2009-1e

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

BC0005
Bases Computacionais da 
Ciência
Bases Computacionais da 
Ciência
Aula 07
Noções de Banco de Dados
Santo André, abril de 2009
Equipe de professores de Bases Computacionais
Noções de Banco de Dados
Roteiro da Aula 7
PARTE I – Parte Teórica 
• Definições e conceitos elementares (SGBD, SBD, ...)
• Modelo Relacional• Modelo Relacional
PARTE II – Parte Prática
• Programa: BrOffice Base
• Exemplo: Banco de dados para um consultório médico
PARTE III – Exercícios para casaPARTE III – Exercícios para casa
• Aprimoramento do exemplo: 
registro de pacientes, consultas e médicos numa clínica
Motivação 1: limitações das planilhas
Planilhas = “Estruturadas em Tabelas”
CONTUDO, não proporcionam:CONTUDO, não proporcionam:
� recursos para manipulação de banco de dados complexos 
(grandes quantidades de variáveis e tabelas)
� Acesso eficiente
�Menor tempo de desenvolvimento de aplicações
� Integridade e segurança dos dados
Acessos concorrentes� Acessos concorrentes
� Recuperação em caso de quedas do sistema
DAÍ a necessidade de um software especializado!
3
Motivação 2: exemplos de aplicações
Pergunta: Como o site de buscas na web “google” 
consegue encontrar uma página?
Alguns desafios envolvidos nessa tarefa:Alguns desafios envolvidos nessa tarefa:
� Existem bilhões de páginas distribuídas pelo mundo 
�Milhares de páginas podem satisfazer algum critério de busca 
específico
�O tempo de resposta da busca deve ser da ordem de segundos
�Milhares de pessoas acessam o buscador simultaneamente
Uma planilha consegue operar eficientemente nesse cenário? 
(Resp.: Não!)
4
Motivação 3: exemplos de aplicações
� Quando alguém pede visto de entrada nos EUA, 
um funcionário cadastra sua impressão digital e foto.
� Essas informações são armazenadas em grandes 
bancos de dados de imagens.bancos de dados de imagens.
� Toda vez que alguém solicita o visto, sua foto e impressão digital são 
comparadas com outras presentes em outros bancos de dados, 
de pessoas procuradas pela justiça norte americana. 
� O resultado dessas comparações deve ser fornecido em poucos segundos.
� Os bancos de dados de pessoas procuradas pela justiça dos EUA contêm 
milhares de registros e eles são atualizados a todo momento.milhares de registros e eles são atualizados a todo momento.
� Milhares de vistos são solicitados diariamente.
Será que uma planilha daria conta dessa tarefa? (Não.)
5
Motivação 4: exemplos de aplicações
� Desde a década de 1990, o homem domina a técnica de 
sequenciamento de DNA.
� Atualmente, dezenas de espécies já têm seu DNA seqüenciado e 
armazenado em grandes bancos de dados de bioseqüencias.
� O DNA de uma única espécie pode conter bilhões de bases nitrogenadas. 
Ex.: DNA humano tem aproximadamente 3 bilhões de bases.
� Milhares de pesquisadores acessam (consultando e atualizando) a todo 
momento, simultaneamente, esses bancos de dados.
� Em cada um desses acessos, podem-se solicitar operações exigindo a 
realização de bilhões de comparações, base por base.
Será que uma planilha tem recursos que permitam a 
realização desse serviço? (Não.)
6
Como implementamos um Banco 
de Dados complexo?
Resp.: É preciso que, antes, façamos o seu planejamento.
Deve-se escolher a ferramenta de software:
- Qual SGBD (definido mais adiante) usaremos?
- Quais modelos de dados ele suporta?
Também, faz-se necessário conhecer o problema:
- Quais dados serão armazenados?- Quais dados serão armazenados?
- Quais informações os usuários devem acessar?
- Quais tarefas devem ser automatizadas?
Planejamento de um Banco de Dados
Qual SGBD usar?
- BrOffice Base
- É uma implementação do Modelo Relacional (detalhado mais adiante)- É uma implementação do Modelo Relacional (detalhado mais adiante)
Um exemplo didático: 
A secretária de um médico anota os dados e informações das 
consultas dos pacientes numa agenda.
Atualmente, o serviço é manual.
Deseja-se um programa de aplicação para:
- armazenar dados dos pacientes e das consultas
- listar as consultas marcadas
- automatizar a entrada dos dados
Conceituação e Definições 
em Bancos de Dados
Para que possamos:
- usar eficientemente os recursos oferecidos 
pelo SGBD escolhido (BrOffice Base) 
- fazer corretamente o planejamento e a 
implementação do banco de dados do exemplo 
didático didático 
é preciso antes que façamos algumas definições.
Definições preliminares
� Dados = “elementos de interesse coletados” 
(números, caracteres, imagens etc.)
� Informação = “conhecimento proveniente dos dados”� Informação = “conhecimento proveniente dos dados”
� Banco de Dados (BD) = “coleção de dados”
potencialmente muito grande e logicamente relacionados (integrados)
� Sistema Gerenciador de Bancos de Dados (SGBD) =
“software de propósito geral” 
facilita a definição, a criação e a manipulação do BD 
Exs.: Access, DB2, Oracle, BrOfficeBase, etc.
facilita a definição, a criação e a manipulação do BD 
� Exs.: Access, DB2, Oracle, BrOfficeBase, etc.
• Sistema de Banco de Dados (SBD) = “BD + SGBD + programas 
aplicativos”
� Exs.: Sistemas de BD Genômicos, Sistemas bancários, 
telefônicos etc.
10
Sistema de Banco de Dados (SBD)
Usuários/Programadores
Consulta/Programas de Aplicações
SBD
Software p/ processar consultas/programas
Software p/ acessar o banco de dados
SGBD
11
Objetivos: armazenar e recuperar informações
com segurança, eficiência e flexibilidade
Banco de Dados
Modelo Relacional: conceitos fundamentais
• Noção fundamental: a relação (formalização 
matemática da idéia informal de tabela)
• BD relacional = “conjunto de relações”
• Relação = “conjunto de tuplas” ( linhas da tabela)
� Não ordenada, sem linhas repetidas (é conjunto)Não ordenada, sem linhas repetidas (é conjunto)
� Cada tupla é uma lista de valores de atributos 
(campos ou colunas da tabela)
� O BrOffice Base é uma implementação do Modelo 
Relacional
Modelo Relacional: exemplo de relação
Grau = 4
Cardinalidade = 4
Modelo Relacional: conceitos básicos
• Esquema de uma relação: especifica o nome da relação 
(tabela), mais o nome e o tipo de cada atributo (coluna).
Ex.: Alunos(num_aluno: string, nome: string, login: string, 
idade: integer, media: real)
• Grau: número de colunas.
• Instância de uma relação: o conteúdo da tabela.
• Cardinalidade: número de tuplas (linhas).
• Esquema do banco de dados: conjunto de esquemas • Esquema do banco de dados: conjunto de esquemas 
das relações mantidas no BD.
• Instância do banco de dados: conjunto das 
instâncias das relações mantidas no BD.
• Maioria dos SGBD suportam o Modelo Relacional.
Modelo Relacional: Chave Primária
Definição informal: 
“conjunto de atributos que permite identificar de 
maneira unívoca uma entidade dentro de um conjunto 
de entidades” de entidades” 
Definição mais precisa:
• É uma coluna ou combinação de colunas cujos valores 
distinguem uma linha das demais dentro de uma tabela.
• Obedece à restrição de integridade para a chave: • Obedece à restrição de integridade para a chave: 
unicidade do conjuto de valores nas colunas que 
compõem a chave.
• Deve ser mínima: todas colunas são estritamente 
necessárias para garantir o requisito de unicidade. 
(I.e., se excluir uma coluna, deixa de ser chave!)
Chave Primária: exemplo
• Campo que identifica um registro como único na 
tabela
– Tal valor nunca pode se repetir
– Este campo nunca pode ficar em branco– Este campo nunca pode ficar em branco
Qual(is) do(s) CAMPO(S) abaixo poderia(m) ser 
chave primária?
Código Nome Endereço Telefone
Chave primária
CódigoCódigo Nome Endereço Telefone
1 João da Silva Av. Mauro 
Ramos, 200
234-1232
2 Pedro Santos Rua Lauro 
Linhares, 152334-4567
Código
Chave Estrangeira
Vôo→ chave-primária 
de Tabela de Vôosde Tabela de Vôos
→Código→ chave-primária de Tabela de Cias Aéreas
Chave estrangeira - é um atributo (ou vários) usado para referenciar 
entidades de outras tabelas. Possui valores da chave primária da tabela 
referenciada. 
Ex.: O campo “Cia” da tabela de voos.
Técnica de Modelagem dos Dados
Faz Contém
PEDIDO
Suponha que queremos criar um modelo de alto nível para 
os dados envolvidos no situação acima, isto é, uma forma de 
representação para esses dados.
CLIENTE PRODUTO
Técnica de Modelagem de Dados: Entidades
Exemplo: O retângulo CLIENTE
representa o conjunto de todas 
as pessoas sobre as quais se 
CLIENTE
as pessoas sobre as quais se 
deseja manter informações no 
BD (corresponde a uma 
tabela/relação). 
Vamos chamar
um retângulo de
Entidade
Este objeto particular (um dos 
clientes) é chamado de 
OCORRÊNCIA.
Entidade
Técnica de Modelagem de Dados: Entidades
• As ocorrências não são visualizadas numa entidade, mas 
devemos entendê-la como uma tabela de dados, onde 
cada linha corresponde a uma tupla de uma relação.cada linha corresponde a uma tupla de uma relação.
FUNCIONÁRIO
Matrícula Nome Data AdmissãoMatrícula Nome Data Admissão
4456 João Carlos da Silva 29/04/91
6689 Sílvia de Oliveira 30/02/92
1203 Carla Martinez 14/04/92
Técnica de Modelagem: Relacionamentos
• Conjunto de associações entre entidades
DEPARTAMENTO PESSOALOTAÇÃO
• Um conjunto de objetos classificados como pessoa• Um conjunto de objetos classificados como pessoa
• (Entidade PESSOA) ;
• Um conjunto de objetos classificados como departamento 
(Entidade DEPARTAMENTO);
• Um conjunto de ASSOCIAÇÕES, cada uma ligando um
departamento a uma pessoa (relacionamento LOTAÇÃO);
Relacionamentos: Cardinalidade
• Cardinalidade ⇒ é o número máximo de ocorrências de 
uma entidade associadas a uma ocorrência de outra entidade 
• Consideram-se apenas duas cardinalidades:• Consideram-se apenas duas cardinalidades:
“1” ⇒ indica que uma ocorrência de uma determinada 
entidade pode estar associada a no máximo UMA
ocorrência da entidade relacionada a ela cuja 
cardinalidade é “1”
“n” ⇒ indica que uma ocorrência de uma determinada 
entidade pode estar associada a muitas ocorrências 
da entidade relacionada a ela cuja cardinalidade é “n”
Relacionamentos: Cardinalidade
EMPREGADO DEPARTA-
MENTO
LOTAÇÃO
n 1
Uma ocorrência de 
departamento pode 
estar associada a
muitas (“n”) ocorrências de 
EMPREGADO
MENTO
LOTAÇÃO
n 1
Uma ocorrência de 
empregado pode estar 
associada a no máximo 
uma (“1”) ocorrência de muitas (“n”) ocorrências de empregado, isto é, 
Departamento tem 
cardinalidade máxima n
no relacionamento Lotação
uma (“1”) ocorrência de 
departamento, isto é, 
empregado tem 
cardinalidade máxima 1
no relacionamento Lotação
Diagrama Entidade-Relacionamento (DER)
• Quando o projeto do SBD envolver muitos tipos de dados, 
relacionados de maneira complexa, é conveniente representar o 
modelo de dados através de um diagrama.
• Um DER é um desenho (diagrama) representando as entidades 
(tabelas) de dados e seus relacionamentos. 
• Exemplo:
DEPARTAMENTO LOTAÇÃO PESSOA
Parte 
PráticaPrática
Planejamento de um BD: 
Retomando o exemplo didático
Necessário conhecer o problema:
- Quais dados serão armazenados?
- Quais informações os usuários devem acessar?- Quais informações os usuários devem acessar?
- Quais tarefas devem ser automatizadas?
Por exemplo: 
A secretária de um médico anota os dados e informações das 
consultas dos pacientes numa agenda.
Atualmente, o serviço é manual.Atualmente, o serviço é manual.
Deseja-se um programa para
- armazenar dados dos pacientes e das consultas
- listar as consultas marcadas
- automatizar a entrada dos dados
Fases do Planejamento
1 – Definição dos Dados
No exemplo, há duas CATEGORIAS de dados:
Dados dos Pacientes → TABELA PACIENTES (TPacientes)
Campos: Nome, Telefone, Peso, Altura
Dados das Consultas → TABELA CONSULTAS (TConsMed)
Campos: Data, Hora, Minuto
Cada TABELA é um TEMA (ASSUNTO) distinto.
2 – Refinamento dos Campos
Juntar ou separar TABELAS
Eliminar campos desnecessários 
Fases do Planejamento
Eliminar campos desnecessários 
Criar campos adicionais
Definir campo Chave
O exemplo fica assim:
TPacientes:TPacientes:TPacientes:TPacientes:TPacientes:TPacientes:TPacientes:TPacientes:
CodPacCodPacCodPacCodPac, Nome, Sobrenome, Telefone, Altura, Peso, Nome, Sobrenome, Telefone, Altura, Peso, Nome, Sobrenome, Telefone, Altura, Peso, Nome, Sobrenome, Telefone, Altura, Peso
TConsMed:TConsMed:TConsMed:TConsMed:
CodConsCodConsCodConsCodCons, Data, Hora, Data, Hora, Data, Hora, Data, Hora
3 – Tipos de Dados e Tamanho dos Campos
No exemplo:
Nome, Sobrenome = tipo texto, 50 caracteres
Fases do Planejamento
Nome, Sobrenome = tipo texto, 50 caracteres
Peso, Altura = tipo decimal, 10 dígitos
CodPac, CodCons = tipo inteiro, numeração automática
Data = tipo data
Hora = tipo hora
Outros tipos disponíveis no BrOffice Base: Memorando, Booleano 
(Sim/Não), Hiperlink, Imagem, ...
4 – Relacionamentos entre as Tabelas
Relacionamento 1:n (“um para muitos”)
Fases do Projeto do BD
No exemplo, 
cada paciente pode ter várias consultas 
e 
cada consulta envolve um único paciente
Necessário: incluir campo CodPac na TConsMedNecessário: incluir campo CodPac na TConsMed
e
estabelecer o relacionamento entre
CodPac (na TPacientes) ↔ CodPac (na TConsMed)
1 – Abrir o Base. (Iniciar >> BrOffice >> BrOffice.org Base)
2 – Criar um banco de dados vazio, preencha as janelas do “Assistente 
de Bancos de Dados”. 
Passos no BrOffice Base
de Bancos de Dados”. 
• Na 1a. janela, assinale:
e pressione Próximo.
• Na 2a. janela, faça as opções:
e pressione Concluir.
Na 3a. janela, salvar como BDaula7.
3 – Criar uma tabela:
• Na janela principal do Base, clique em Tabelas e escolha Criar 
tabela na exibição de design:
Passos no BrOffice Base
• Preencha a Janela de desenho de tabelas exibida:
Nome, Sobrenome:Nome, Sobrenome:Nome, Sobrenome:Nome, Sobrenome: <Entrada Obrigatória>: Sim | <Tamanho>: 50
Telefone:Telefone:Telefone:Telefone: <Entrada Obrigatória>: Não | <Tamanho>: 10
Peso, Altura:Peso, Altura:Peso, Altura:Peso, Altura: <Tamanho>: 10 | <Decimais>: 2
CodPac:CodPac:CodPac:CodPac: <Auto Valor>: Sim
• Na primeira coluna da linha CodPacCodPacCodPacCodPac, clique com o botão
direito do mouse e defina CodPacCodPacCodPacCodPac como “Chave Primária”.
Passos no BrOffice Base
Salvar essa tabela sob o nome TPacientesTPacientesTPacientesTPacientes
• Feche a janela de desenho de tabela, voltando para a janela 
principal 
• Criar a TABELA DAS CONSULTAS MÉDICAS
conforme especificado abaixo
Passos no BrOffice Base
Data:Data:Data:Data: <Entrada Obrigatória>: Sim 
Hora:Hora:Hora:Hora: <Entrada Obrigatória>: Sim | <Formato>: HH:MM 
CodCons:CodCons:CodCons:CodCons: <Auto Valor>: Sim
CodPac:CodPac:CodPac:CodPac: <Auto Valor>: Não | <Entrada Obrigatória>: Sim
Salvar a tabela como TConsMedSalvar a tabela como TConsMed
• Feche a janela de desenho de tabela, voltando para a janela principal. 
(caso queira voltar a fazer alterações na tabela, basta clicar com o botão 
direito do mouse em TConsMed e escolher <Editar>.)
4 – Criar o relacionamento:
• Na janela principal, menu: <Ferramentas> | <Relações>
• Aparece a janela de projeto de relacionamentos
- Selecione TPacientes e clique em [Adicionar]
- Selecione TConsMed e clique em [Adicionar]
- Clique em [Fechar]
Passos no BrOffice Base
- Clique em [Fechar]
-Clique no campo CodPac (da TPacientes) e arraste até o 
campo de mesmo nome na TConsMed
Aparece o relacionamento 
1:n1:n
• Salvar e fechar a janela de projeto de relacionamentos
5 – Criar um formulário:
• Na janela principal do Base, clique em Formulários
e escolha Usar assistente para criar formulário
Passos no BrOffice Base
• Escolher TPacientes, 
incluir todos os campos
Passos no BrOffice Base
e avançar ...
• Escolher Adicionar sub-formulário, 
Sub-formulário baseado em relação existente
Passos no BrOffice Base
e Avançar ...
• Incluir todos os campos 
Passos no BrOffice Base
e Concluir. 
Fechar a janela que aparece, voltando à janela principal.
Abrir o formulário criado para entrar dados.
Exercício para Casa
1. Uma clínica possui vários médicos que atendem pacientes, 
individualmente, nos seus respectivos consultórios. Partindo do 
exemplo dado em sala de aula, crie um BD no BrOffice que 
contenha:
exemplo dado em sala de aula, crie um BD no BrOffice que 
contenha:
a) As tabelas do exemplo mais uma tabela com dados dos médicos 
(nomes, sobrenome, código de identificação do médico).
b) Além do relacionamento entre Paciente e Consulta, mais um 
relacionamento entre Médico e Consulta. (Dica: adicionar uma 
chave estrangeira com o código do médico na tabela de 
consultas médicas.)consultas médicas.)
c) Formulário para entrada dos dados referentes aos pacientes e 
respectivas consultas, devendo ser possível definir o médico 
envolvido.
d) Algumas entradas de dados fictícios dos pacientes, consultas e 
médicos. (Confira se os dados digitados no formulário são 
corretamente registrados nas tabelas.)
Exercícios para Casa (Cont.)
2. Considere o BD para a clínica visto na questão anterior.
a) Qual a cardinalidade de cada um dos relacionamentos? a) Qual a cardinalidade de cada um dos relacionamentos? 
Justifique a sua resposta.
b) Faça um DER do BD implementado.
c) No DER, qual a cardinalidade da relação entre a entidade 
Pacientes e a entidade Médicos? Justifique.Pacientes e a entidade Médicos? Justifique.
BD = “Banco de Dados”
DER = “Diagrama Entidade-Relacionamento”

Outros materiais