Baixe o app para aproveitar ainda mais
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”
Compartilhar