9
Introdução: Visão Geral Histórico Antes de SGBD ... os 7 problemas Modelos de Dados Linguagens Transações Usuários de BD Histórico Década de 1950: Primeiros computadores. Programação em linguagem de máquina. Surgimento de Sistemas Operacionais e Linguagens de Programação Sistemas de arquivos com acesso não seqüencial 1959: Sistema RAMAC (Random-Access Method of Accounting and Control) - IBM 1961: CODASYL (Conference on Data Systems Languages) – Conceituação de SGBD e modelos de dados. Proposta do Modelo de Rede. 1968: Primeiro SGBD comercialmente disponível. Modelo Hierárquico. IMS – IBM SABRE – IBM + American Airlines 1970: Proposta do Modelo Relacional Surgimento de protótipos de SGBDR’s: o INGRES (UC – Berkeley) o Sistema R (IBM) 1976: Proposta do Modelo Entidade-Relacionamento. 1983: Primeiro SGBDR de grande porte disponível (Oracle). 1985: Modelos Orientados a Objetos.

Aula1_Introducao (1)

Embed Size (px)

Citation preview

Page 1: Aula1_Introducao (1)

Banco de Dados – prof. Daniel Introdução: Visão Geral Ø Histórico Ø Antes de SGBD ... os 7 problemas Ø Modelos de Dados Ø Linguagens Ø Transações Ø Usuários de BD

Histórico Década de 1950:

• Primeiros computadores. • Programação em linguagem de máquina. • Surgimento de Sistemas Operacionais e Linguagens de Programação • Sistemas de arquivos com acesso não seqüencial

1959: • Sistema RAMAC (Random-Access Method of Accounting and Control) - IBM

1961: • CODASYL (Conference on Data Systems Languages) – Conceituação de SGBD e

modelos de dados. Proposta do Modelo de Rede. 1968:

• Primeiro SGBD comercialmente disponível. Modelo Hierárquico. • IMS – IBM • SABRE – IBM + American Airlines

1970: • Proposta do Modelo Relacional • Surgimento de protótipos de SGBDR’s:

o INGRES (UC – Berkeley) o Sistema R (IBM)

1976: • Proposta do Modelo Entidade-Relacionamento.

1983: • Primeiro SGBDR de grande porte disponível (Oracle).

1985: • Modelos Orientados a Objetos.

Page 2: Aula1_Introducao (1)

SGBD Sistema Gerenciador de Banco de Dados - conjunto de dados

associados a um conjunto de programas para acesso a estes dados Ü conjunto de dados ð banco de dados

objetivo ð proporcionar um ambiente tanto conveniente quanto

eficiente para a recuperação e armazenamento das informações do banco de dados.

Antes de SGBD:

1. Inconsistência e redundância de dados 2. Dificuldade de acesso aos dados 3. Isolamento de dados 4. Problemas de integridade 5. Problemas de atomicidade 6. Anomalias no acesso concorrente 7. Problemas de segurança

Inconsistência e redundância Já que arquivos e aplicações são criados e mantidos por diferentes programadores, em geral, durante longos períodos de tempo, é comum que os arquivos possuam formatos diferentes e os programas sejam escritos em diversas linguagens de programação. Ainda mais, a mesma informação pode ser repetida em diversos lugares (arquivos). Ainda, pode originar inconsistência de dados; isto é, as várias cópias dos dados poderão divergir ao longo do tempo. Dificuldade de acesso aos dados Suponha que uma empresa precise dos nomes de todos os clientes que moram em uma área da cidade cujo CEP é 78733 Ü pede então que crie tal relação Ü como este tipo de solicitação não foi prevista no projeto do sistema, não há nenhuma aplicação disponível para atendê-la Ü mas existe uma aplicação para gerar a relação de todos os clientes da empresaÜ assim, duas alternativas: 1) separar manualmente da lista de todos os clientes aqueles que necessita 2) requisitar um programador para escrever o programa necessário.

Page 3: Aula1_Introducao (1)

Ambas alternativas são, obviamente, insatisfatórias. ...Dias depois é necessário obter quais clientes com saldo superior a R$6.000,00.

Isolamento de dados Como os dados estão dispersos em vários arquivos, e estes arquivos podem possuir diferentes formatos, é difícil escrever novas aplicações para recuperação apropriada dos dados. Problemas de integridade Os valores dos dados atribuídos e armazenados em um banco de dados devem satisfazer a certas restrições para manutenção da consistência. Exemplo: o balanço de uma conta bancária não pode cair abaixo de um determinado valor (digamos, R$5,00). Os programadores determinam o cumprimento desta restrição através da adição de código apropriado aos vários programas aplicativos. Entretanto, quando aparecem novas restrições, é difícil alterar todos os programas para incrementá-las. O problema é ampliado quando as restrições atingem diversos itens de dados em diferentes arquivos.

Problemas de atomicidade Um sistema computacional (como qualquer outro dispositivo) está sujeito a falhas. Em muitas aplicações é crucial assegurar que, uma vez detectada uma falha, os dados sejam salvos em seu último estado consistente, anterior a ela. Exemplo: um programa para transferir R$50,00 da conta A para uma conta B. Se ocorrer falha no sistema durante sua execução, é possível que os 50 reais sejam debitados da conta A sem serem creditados na conta B, criando um estado inconsistente no banco de dados. Logicamente, é essencial para a consistência do banco de dados que ambos, débito e crédito ocorram, ou nenhum deles seja efetuado. Isto é, a transferência de fundos deve ser uma operação atômica – deve ocorrer por completo, ou não ocorrer.

Page 4: Aula1_Introducao (1)

Anomalias no acesso concorrente Atualizações simultâneas nos dados para aumento do desempenho do sistema como um todo e para melhores tempos de resposta. Nestes ambientes, a interação entre atualizações concorrentes podem resultar em inconsistência de dados. Exemplo: o saldo de uma conta bancária A é de R$500,00 Ü dois clientes debitam da conta A ($50 e $100, respectivamente) Ü operações ocorrendo simultaneamente podem resultar em erro (ou gerar inconsistência). Na execução dos programas, ambos lêem o saldo antigo, retiram, cada um seu valor correspondente, sendo o resultado armazenado. Dependendo de qual deles registre seu resultado primeiro, o saldo da conta A será $450 ou $400, ao invés do valor correto de $350.

Problemas de segurança Nem todos os usuários de banco de dados estão autorizados ao acesso a todos os dados. Exemplo: num sistema bancário, os funcionários do departamento pessoal devem ter acesso apenas ao conjunto de pessoas que trabalham no banco. Eles não deveriam ter acesso às informações dos clientes do banco. Uma vez que os programas de aplicação são inseridos no sistema como um todo, é difícil garantir a efetividade das regras de segurança.

Modelo de Dados Sob a estrutura do BD está o modelo de dados, que é um conjunto de ferramentas conceituais usadas para:

• descrição de dados, • relacionamentos entre dados, • semântica de dados e • regras de consistência

Existe a seguinte classificação para os modelos de dados:

• modelos lógicos com base em objetos • modelos lógicos com base em registros • modelos físicos

Page 5: Aula1_Introducao (1)

Modelos Lógicos - base em Objetos São usados na descrição de dados no nível lógico e de visões:

w Modelo Entidade-Relacionamento w Modelo Orientado a Objeto w Modelo Semântico de Dados w Modelo Funcional de Dados

Modelo Entidade-Relacionamento Modelos Lógicos - base em Registros São usados para descrever os dados no nível lógico e de visão. O BD é estruturado através de registros de formato fixo de todos os tipos; cada registro define número fixo de campos (atributos), e cada campo possui normalmente tamanho fixo (simplifica a implementação do BD no nível físico).

• Modelo relacional • Modelo de rede • Modelo hierárquico

Modelo Relacional

• usa um conjunto de tabelas para representar tanto os dados como a relação entre eles.

• cada tabela possui múltiplas colunas e cada uma possui um nome único (ATRIBUTOS)

cliente conta depositante

nome

rua

cidade número

saldo

Page 6: Aula1_Introducao (1)

Exemplo:

Modelo de Rede

• representado por um conjunto de registros (como no Pascal) e as relações entre estes registros são representadas por links (ponteiros)

• registros são organizados no BD por um conjunto de grafos arbitrários.

Exemplo:

nome rua cidade Mário Itatiaia Rib.Preto Rui Rua XV S.Carlos Silvia Av.D.Pedro Itu

nro-conta saldo 1234 55,00 1333 600,00 5512 350,00 7556 3.000,00

nome nro-conta Mário 1234 Rui 1333 Rui 7556 Silvia 5512 Silvia 7556

1234 55,00

1333 600,00

5512 350,00

7556 3.000,00

Mário Itatiaia Rib.Preto

Rui Rua XV S.Carlos

Silvia Av.D.Pedro Itu

Cliente Conta

Cliente_conta

Page 7: Aula1_Introducao (1)

Modelo Hierárquico • similar ao modelo em rede - dados e suas relações serem representadas

por registros e links. • Diferença: no modelo hierárquico os registros estão organizados em árvores

ao invés de grafos arbitrários Exemplo: Diferença entre os modelos O modelo relacional difere por não usar nem ponteiros nem links (relaciona os registros por valores próprios a eles) Como não é necessário uso de ponteiros, houve a possibilidade do desenvolvimento de fundamentos matemáticos para sua definição. Modelos Físicos de Dados Usados para descrever os dados no nível mais baixo

• Modelo unificado (unifying model) • Modelo de partição de memória (frame-memory model)

Esses modelos tratam dos aspectos de implementação dos SGBDs.

Mário Itatiaia Rib.Preto

Rui Rua XV S.Carlos

Silvia Av.D.Pedro Itu

1234 55,00

1333 600,00

7556 3.000,00

7556 3.000,00

5512 350,00

Page 8: Aula1_Introducao (1)

Linguagens de Banco de Dados Existem dois tipos de linguagens: 1. Específica para os esquemas do BD (Linguagens de Definição de Dados) 2. Para expressar consultas e atualizações (Linguagem de Manipulação de

Dados) Linguagem de Definição de Dados – DDL Utilizadas para expressar a especificação do esquema de dados (DDL: Data Definition Language) O resultado da compilação dos parâmetros das DDL’s é armazenado em tabelas especiais que constituem o dicionário de dados ou diretório de dados do BD.

• Dicionário de dados: é um arquivo de metadados (dados a respeito de dados)- no SGBD, esse arquivo é consultado antes que o dado real seja modificado.

Exemplo de comandos DDL: create table alter table drop table create view, drop view Linguagem de Manipulação dos Dados - DML DML: data-manipulation language. Por manipulação de dados, entende-se:

• recuperação das informações armazenadas no BD • inserção de novas informações no BD • remoção de informações do BD • modificação das informações do BD

A DML viabiliza o acesso (manipulação) dos dados de forma compatível ao modelo de dados apropriado. Existem dois tipos de DML:

• Procedurais: exigem que o usuário especifique quais dados são

necessários, e como obtê-los. • Não Procedurais: exigem que se especifique quais dados são

necessários, sem especificar como obtê-los.

Page 9: Aula1_Introducao (1)

A parte de uma DML responsável pela recuperação das informações é chamada de linguagem de consultas (query language). Exemplo de comados DML: select insert update

Transações Muitas operações em um BD devem constituir uma única unidade lógica de trabalho:

• atomicidade • consistência • isolamento • durabilidade (persistência)

Transação é uma coleção de operações que desempenha uma função lógica única dentro de uma aplicação do sistema de BD.

Administrador de Banco de Dados Tem o controle centralizado tanto dos dados quanto dos programas de acesso a estes dados – denominado DBA (Data Base Administrator). Suas funções são:

• Definição do esquema • Definição da estrutura de dados e método de acesso • Esquema e modificações na organização física • Fornecer autorização de acesso ao sistema • Especificação de regras de integridade

Usuários de Banco de Dados São diferenciados pelas expectativas de interação com o sistema:

• Programadores de aplicações - interagem com o sistema através de chamadas DML, envolvidas por programas escritos na linguagem hospedeira (por exemplo, Pascal, C, Delphi)

• Usuários sofisticados - interagem sem escrever programas. Formulam suas solicitações ao BD através de linguagens de consultas

• Usuários especialistas - escrevem aplicações especializadas de BD que não podem ser classificadas como aplicações tradicionais em processamento de dados (ex: sistemas de dados geográficos)

• Usuários navegantes - interagem chamando aplicativos já escritos (exemplo: utilizam um formulário de cadastro).