Computação Instrumental
Engenharia Ambiental 2º Semestre de 2016
José da Silva Rua B 37 Vila Aurora 18045-587 Sorocaba São Paulo Brasil
Carlos Petronio Rua B 48 Vila Aurora 18045-587 Sorocaba São Paulo Brasil
Lídia Reali Rua B 68 Vila Aurora 18045-587 Sorocaba São Paulo Brasil
Paulo Cruz Rua B 128 Vila Aurora 18045-587 Sorocaba São Paulo Brasil
José da Silva
Carlos Petronio
Lídia Reali
Paulo Cruz
Rua B Vila Aurora 18045-587 Sorocaba 37
48
68
128
São Paulo Brasil
Redundância de Dados
Integridade Relacional
CLIENTE: CONTA:
Marcos 2234
Silvia 8745
Uso de planilhas e arquivos
• Falta de padronização.
• Subordinação de programas a arquivos. • Redundância e inconsistência dos dados. • Falta de integridade.
• Segurança inexistente.
Abordagem de Banco de Dados
• Redução de redundância ou redundância controlada.
• Maior controle sobre a integridade dos dados.
• Maior controle sobre a segurança dos dados.
• Transparência dos dados quanto às aplicações.
Dados – Matéria bruta de que é feita a informação. Valores
fisicamente registrados no banco de dados.
Informação – Dado que significa alguma coisa para alguém e é
utilizado em algum contexto.
12 dado
Idade de uma criança matriculada na escola X.
Sistema Gerenciador de Banco
de Dados (SGBD)
• Entre o banco de dados físico, isto é, os dados
armazenados, e os usuários do sistema,
encontra-se o sistema gerenciador de banco de dados.
• O sistema de gerenciamento de banco de dados
compõe-se de uma coleção de arquivos inter-relacionados e de um conjunto de
programas que permitem aos usuários acessar
Gerenciador de Banco de Dados Interface
Princípios de um SGBD
• Garantia de integridade dos dados
• Segurança de dados: A segurança dos dados está ligada à acessibilidade dos dados. O objetivo é o de garantir o acesso ao banco de dados ou à parte deste apenas por pessoas devidamente autorizadas.
– Acesso identificado (login + senha). – Arquivos de auditoria
Princípios de um SGBD
•Controle de concorrência: Em sistemas multiusuários é necessário preservar a consistência dos dados quando diversos usuários estão
manipulando os mesmos concomitantemente.
Exemplo:
Transação A: Transferir R$500,00 da conta de Marcos para a de Silvia. Transação B: Subtrair 10% da conta de todos.
Marcos 1000,00 A Marcos 500,00 B Marcos 450,00 Silvia 300,00 A Silvia 800,00 B Silvia 720,00 Marcos 1000,00 A Marcos 500,00 B Marcos 450,00 Silvia 300,00 B Silvia 270,00 A Silvia 770,00
Profissionais e Atividades
Envolvidas
Usuário final: Precisa ter acesso à base de dados para
consultar, modificar e gerar relatórios.
• Interage com o sistema por meio de programas de
aplicação ou através de interfaces integrantes do
próprio sistema.
• A maioria dos sistemas fornece pelo menos uma
aplicação embutida, ou seja, um processador de
linguagem de consulta interativo, com o qual o usuário é capaz de emitir instruções de alto nível para o SGBD.
Outros possuem ainda interfaces adicionais através das quais os usuários operam escolhendo itens de menus ou preenchendo formulários.
Profissionais e Atividades
Envolvidas
Projetista da base de dados:
• Decide o conteúdo do banco de dados: Identifica os dados a serem armazenados e escolhe estruturas
apropriadas para representar e armazenar tais dados, ou seja, fazer o projeto conceitual do banco de dados.
Programador de aplicações:
• Responsável pelo desenvolvimento dos programas que
utilizam o banco de dados, caracteristicamente escritos
em linguagens de terceira geração (Cobol, PL/I, C, Pascal, Java, etc).
• Tais programas operam sobre os dados de todas as
formas usuais: recuperação, inserção, deleção e
atualização de dados são executadas pelo envio de solicitações apropriadas ao SGBD.
Profissionais e Atividades
Envolvidas
Administrador de banco de dados (DBA):
• É a pessoa, ou grupo de pessoas, responsável pelo controle do sistema, tendo as seguintes
responsabilidades:
– Servir de elo de ligação com os usuários: Garantir a disponibilidade dos dados de que eles necessitam.
– Definir os controles de segurança e de integridade: Estes podem ser considerados como parte do esquema conceitual.
– Definir estratégias de recuperação: Na eventualidade de danos a partes do banco de dados, causados seja por erro humano, por falha no hardware ou no sistema operacional, é importante
recuperar os dados o mais rapidamente possível e com o mínimo de conseqüências para o restante do sistema.
– Monitorar o desempenho e atender as necessidades de modificações.
Abstração de Dados
Uma vez que muitos dos usuários debancos de dados não são treinados em
computação, complexidades relacionadas a como os dados são armazenados e
mantidos fica escondida dos mesmos
através de diversos níveis de abstração
que simplificam a interação do usuário com o sistema
Abstração de Dados
• Nível interno: Nível mais baixo de abstração que descreve como os
dados são realmente armazenados:
– Tipos de registros armazenados, índices existentes, seqüência física dos registros.
• Nível conceitual: A visão conceitual é a visão do conteúdo total do
banco de dados, em termos:
– Da descrição das entidades e relacionamentos e
– Aspectos relacionados a controle de segurança e integridade. No modelo relacional, os objetos visíveis neste nível são tabelas relacionais.
• Nível visual (externo): Descreve a forma como os dados são vistos
pelos usuários individuais, de qualquer grau de sofisticação que tanto podem ser programadores de aplicações como usuários de terminais. Cada usuário tem uma linguagem a sua disposição: Linguagem de programação ou interface baseada em formulários e sistemas de menu.
Sistemas Relacionais
Um sistema relacional é aquele no qual:
• Os dados são percebidos pelos usuários como tabelas;
• Os operadores à disposição dos usuários são operadores que geram novas tabelas a partir das antigas.
N O M E R U A C I D A D E N Ú M E R O C O N T A J o ã o R i a c h u e l o S o r o c a b a 9 0 0 A n a G a l O s ó r i o I t ú 5 5 6 S a n d r a A c á c i a s S o r o c a b a 8 0 0 M a r c o s A p a r e c i d a S ã o R o q u e 6 4 7 N Ú M E R O C O N T A S A L D O 9 0 0 5 5 , 0 0 5 5 6 1 0 0 0 0 0 , 0 0 8 0 0 4 2 6 7 , 0 0 6 4 7 3 5 8 , 0 0 as linhas são os registros
as colunas são os campos
Os campos de uma tabela separam os tipos de informações contidos naquela tabela
Tipos de campos
• Texto (alfa-numérico) • Numérico
• Datas e horas • Lógicos
• Memos (armazena informações de tamanhos variáveis)
• Binários
Os campos de datas e horas são armazenados como números e
convertidos para formatos específicos no momento da apresentação.
Os campos lógicos são usados para armazenar informações que são intrinsecamente binárias: sim/não, masculino/feminino.
BLOB (Binary Large Objects) é um tipo de campo que pode armazenar imagens,
Chaves
Cada registro em um banco de dados deve ter um campo cujo valor seja único,
possibilitando a identificação deste
registro e certificando-se que não existam registros iguais.
Formulários (FORMS)
São telas personalizadas que permitem a interação com os dados, possibilitando inserções, deleções e exibição. Um
formulário pode estar vínculado a uma única ou várias tabelas.
Existem ferramentas que permitem a criação de diversas interfaces para a
entrada de dados, como caixas de texto, de verificação e grupo de opções.
Vinculando Tabelas de Banco de
Dados
Em um banco de dados são usadas
diversas tabelas para se armazenar as diferentes informações. Exemplos: tabela de clientes tabela de fornecedores tabela de produtos tabela de funcionários
Vinculando Tabelas de Banco de
Dados
Embora existam várias tabelas, os dados contidos nelas podem ser relacionados,
como por exemplo: quais os fornecedores de materiais para cada produto.
Os SGBDs que permitem que se trabalhe com várias tabelas são chamados de
Conceitos do Modelo
Entidade-Relacionamento
- O modelo Entidade-Relacionamento foi proposto originalmente por Peter Pin Shan-Chen (MIT) em
1976, no trabalho entitulado "The
Entity-Relationship Model - Toward a Unified View of Data".
- Tem sido usado rotineiramente na análise e modelagem de sistemas.
- O modelo entidade-relacionamento (E-R) é
baseado na percepção do mundo real como um conjunto de objetos básicos chamados
entidades e nos relacionamento entre as mesmas.
Entidade
- É uma classe de objetos do mundo real que possuem uma existência independente e que possuem propriedades em comum sobre as quais deseja-se armazenar informações.
- Tais objetos podem ter existência física: Pessoa, Carro, Livro.
- Podem ainda ter apenas existência conceitual: Curso Universitário, Projeto.
Instância de entidade:
É uma ocorrência de uma entidade. O equivalente lógico de uma instância é um registro de uma tabela. Exemplo: A
entidade Funcionário possui várias
instâncias: o funcionário Pedro da Costa,
com CPF 123456789, que mora no
endereço R. A, 23; o funcionário Paulo da Silva, com CPF 987654321, que mora no endereço R. B, 32 e assim por diante.
Atributos
Propriedades particulares de uma entidade (ou relacionamento).
36
Classificação de Atributos:
Atributos compostos: Podem ser divididos em
subpartes com significados independentes.
Exemplo: O endereço da entidade e1 pode ser
subdividido em Rua e número, Cidade, Estado e CEP. São úteis quando há a necessidade de se referenciar os mesmos como um todo, mas
algumas vezes, apenas alguns de seus
componentes.
Atributos simples: Em contraposição aos atributos compostos, são aqueles que não são
Classificação de Atributos:
Atributos monovalorados: Em contraposição aos
atributos multivalorados, são aqueles que
assumem um único valor para cada instância de uma entidade. Exemplo: Nome, CPF, data de aniversário são todos exemplos de atributos que, para uma dada pessoa, assumem um único valor.
Atributos multivalorados: São aqueles que
podem assumir múltiplos valores para uma dada instância da entidade. Exemplo: É comum que uma pessoa tenha vários números de telefone ou vários endereços comerciais.
Classificação de Atributos:
Atributos opcionais: Quando uma entidade não
possui valor para determinado atributo ou quando seu valor é desconhecido, um valor especial chamado null é usado neste caso.
Exemplo: O atributo Apartamento só se
aplicaria para aqueles funcionários que
Classificação de Atributos:
Atributos derivados: Aqueles cujos valores que
assumem podem ser obtidos a partir de outro atributo ou a partir de relacionamentos entre entidades. Exemplo: O atributo idade pode ser obtido a partir da data de nascimento de uma pessoa.
Atributo-Chave: Atributo ou conjunto de atributos que identificam de modo único cada instância de uma entidade. Exemplo: O número do seguro social do funcionário. O CPF do funcionário.
Chave-Primária
Pode ser escolhida dentre quaisquer um dos atributos chave, devendo-se evitar usar chaves-primárias compostas.
Relacionamento
Classe de associações entre duas ou mais entidades. Exemplo: Há um
relacionamento “Trabalha-Para” entre a entidade Funcionário e a entidade
Instância de relacionamento
Ocorrência particular de um relacionamento, envolvendo instâncias específicas de cada uma das entidades envolvidas.
Exemplo: O Funcionário João da Silva
“trabalha para” o Departamento de
Símbolos Utilizados
• Retângulos – Representam entidades. • Elipses – Representam atributos.
• Losângulos – Representam relacionamentos. • Linhas – Ligam atributos a entidades e
Atributos de Relacionamentos
Os relacionamentos também podem ter
atributos, da mesma forma que as
entidades. Exemplo: Necessidade de se registrar o número de horas que um funcionário dedica a um determinado projeto.
O grau de um relacionamento
• Binários: Envolvem duas entidades.
• Binários recursivos: Envolvem a associação entre duas instâncias de uma única entidade as quais participam do relacionamento
O grau de um relacionamento
Mapeamento de Restrições
- O mundo real pode impor certas restrições que são refletidas nos relacionamentos. Exemplo: Uma regra segundo a qual um empregado trabalha apenas para um departamento.
- Dois tipos principais de restrições de
relacionamentos são a razão de cardinalidade de um relacionamento e a dependência de existência (restrição de participação).
Razão de Cardinalidade
A cardinalidade expressa o número de instâncias de uma entidade às quais uma instância de outra entidade pode estar associada por meio de um relacionamento
e é, obviamente, dependente das
situações reais que estão sendo
Para um relacionamento binário entre as
entidades A e B, a razão de cardinalidade
pode ser:
• Um para um (1:1)
• Um para muitos (1:N)
Um para um (1:1): Uma instância da entidade A
está associada a no máximo uma instância da
entidade B, e uma instância da entidade B está
associada a no máximo uma instância da
entidade A.
Exemplo:
Um para muitos (1:N): Uma instância da entidade
A está associada a várias instâncias da
entidade B, e uma instância da entidade B está
associada a no máximo uma instância da
entidade A.
Exemplo: Funcionário – Trabalha Para – Departamento
Muitos para muitos (N:M): Uma instância da
entidade A está associada a várias instâncias da
entidade B, e uma instância da entidade B está
associada a várias instâncias da entidade A.
Ciclo de vida de um banco de
dados relacional
1. Formulação e análise de requisitos: 2. Projeto lógico do banco de dados: 3. Projeto físico do banco de dados:
4. Distribuição do banco de dados (se necessário distribuir os dados em rede): 5. Implementação do banco de dados,
a) Relacionamentos naturais entre os dados (independentes de processo).
b) Requisitos de uso (dependentes de
processo).
c) Plataforma: hardware/software: SO, SGBD d) Requisitos de desempenho e integridade.
Resultado: Documento de especificação de
requisitos.
a) Modelo ER (projeto conceitual)
b) Integração dos múltiplos diagramas ER da empresa.
c) Transformação dos diagramas ER para
tabelas relacionais.
d) Normalização das tabelas relacionais.
Resultado: Esquema global transformado para definições de tabelas.
a) Modelo ER
a) Transformação dos diagramas ER para tabelas relacionais.
3. Projeto físico do banco de dados:
• Métodos de acesso.
4. Distribuição do banco de dados (se necessário distribuir os dados em rede):
• Fragmentação dos dados, replicação:
Minimizar tempo de resposta, minimizar custos, maximizar disponibilidade.
5. Implementação do banco de dados, monitoração e modificação.