Banco de Dados. Bibliografia de Banco de Dados Livros-texto (entre muitos outros): Banco de Dados,...

Post on 18-Apr-2015

106 views 1 download

Transcript of Banco de Dados. Bibliografia de Banco de Dados Livros-texto (entre muitos outros): Banco de Dados,...

Banco de Banco de DadosDados

Bibliografia de Banco de Dados

Livros-texto (entre muitos outros):

• Banco de Dados, Uma Visão Prática,Felipe Machado e

Mauricio Abreu, Ed Érica, 1999.

• Modelagem Coceitual e Projeto de Banco de Dados,

Paulo Cougo, EdCampus, 1997.

IntroduçãoConceitos Básicos

• Conjunto de dados sobre o qual uma comunidade de usuários realiza operações de recuperação e atualização.

• Um BD representa algum aspecto do mundo real, chamado “mini-mundo” ou “universo de discurso”. As mudanças no mini-mundo são refletidas no banco de dados.

Mini-mundo Banco de

Dados

Usuários

Aplicações

Conceitos Básicos

• Um banco de dados computadorizado pode ser criado e mantido por um grupo de programas de aplicação escritos especificamente para aquela tarefa ou por um SISTEMA DE GERÊNCIA DE BANCOS DE DADOS (SGBD).

• Um SGBD é uma coleção de programas de propósito geral que facilita o processo de definir, construir e manipular bancos de dados para várias aplicações.

– Definir um banco de dados significa especificar os tipos de dados a serem armazenados juntamente com uma descrição detalhada de cada tipo.

– Construir o banco de dados é o processo de armazenar os dados em algum meio de armazenamento controlado pelo SGBD.

– Manipular um banco de dados compreende certas funções como consultar o banco de dados para recuperar dados específicos, atualizar o banco de dados para refletir mudanças percebidas no mini-mundo e produzir relatórios a partir dos dados.

• O banco de dados e o SGBD juntos são chamados genericamente de SISTEMA DE BANCOS DE DADOS.

Bancos de DadosConceitos Básicos

Coleção de programas de propósito geral que facilita o processo de definir, construir e manipular

banco de dados para várias aplicações

Coleção de programas de propósito geral que facilita o processo de definir, construir e manipular

banco de dados para várias aplicações

• SGBD

• Sistema de Banco de Dados

Sistema de Banco de DadosSistema de Banco de Dados

Definiçãodo BD

(Meta-dados)

BDarmazenado

Consultas / Programas de Aplicação

Software para processarconsultas / programas

Software para acessardados armazenados

Usuários / Programadores

Sistema de BD

SGBD

Um exemplo de banco de dados

Aluno Nome Número Área

Antonio 8 INF

Disciplina Nome Número Créditos Dept

Estruturas de DadosMatemática DiscretaBancos de Dados

INF3320MAT2410INF3380

433

INFMATINF

Pré-Requisito No_Curso

INF3380INF3320

No_Pre-Req

MAT2410INF1310

Histórico-Escolar No_Aluno No_Curso Grau

178888

INF1310MAT2410INF1310INF3320INF3380

CAABA

Sistemas de InformaçãoSistemas de Informação

• SISTEMA DE INFORMAÇÃO

– dados;

– SGBD;

– o hardware e o sistema operacional;

– as pessoas que usam e administram os dados;

– os programas de aplicação que acessam e atualizam os dados;

– os programadores que desenvolvem essas aplicações.

Programa deaplicação de BDSGBD Programa deaplicação de BD

Programa deaplicação

dadose

regras

?!Desenvolver um projeto de sistema de informação consiste em traduzir um “problema” do mundo real numa “solução” que envolve a organização, pessoas e tecnologia (hardware e software).

SISTEMA DE INFORMAÇÃO

MundoReal

Requisitosde Dados

Projeto Conceitual

Projeto Lógico

Projeto Físico

Coleta/Especificaçãode Requisitos

RequisitosFuncionais

Análise Funcional

Projeto Funcional

Programação

Programa deaplicação de BDSGBD Programa deaplicação de BD

Programa deaplicação

dadose

regras

MundoReal

Programa com dados armazenados

Programa com gerência de arquivos

Programa deaplicação de BDSGBD

Programa com gerência de arquivos

Programa com gerência de arquivos

Programa deaplicação de BD

Programa deaplicação de BD

dados

dados

Programa com dados armazenados

Programa com dados armazenados

Evolução dos Sistemas de Informação

Evolução dos Bancos de Dados(Khoshafian 1995)

Sistemas de arquivos

BD em rede BD hierárquico

BD relacional

LinguagensOO

Modelossemânticos

Objetoscomplexos

BD OO Informationretrieval

InteligênciaartificialHipermídia

BD “inteligente”

Evolução dos Bancos de DadosEvolução dos Bancos de Dados

Programa deaplicação de BD

SGBD

Programa deaplicação de BD

Programa deaplicação de BD

dados

regras

Regras permitem disvincular certos procedimentos dos programas de aplicação

Bancos de Dados CentralizadosBancos de Dados Centralizados

hardware + sistema operacional

Programa deaplicação de BD

SGBD

Programa deaplicação de BD

Programa deaplicação de BD

dados

(Década de 70)(Década de 70)

terminaislocais

modem

terminaisremotos

Redes de MicrocomputadoresRedes de Microcomputadores

microcomputadores (estações de trabalho)cada vez mais poderosos

(Década de 80)(Década de 80)

cabo da rede

Arquitetura Cliente/Servidor Arquitetura Cliente/Servidor com Servidor de Arquivoscom Servidor de Arquivos

Servidorde Arquivos

Servidorde Impressão

Programa+ SGBD Programa

+ SGBD

cabo da rede

Arquitetura Cliente/Servidor com Arquitetura Cliente/Servidor com Servidor de Bancos de DadosServidor de Bancos de Dados

Servidorde Arquivos

Servidorde Impressão

Programa

Servidor deBanco de Dados

SGBD

Programa

cabo da rede

Arquitetura Cliente/Servidor com Múltiplos Arquitetura Cliente/Servidor com Múltiplos Servidores de Bancos de Dados CooperativosServidores de Bancos de Dados Cooperativos

(Década de 90)(Década de 90)

modem

gateway

mainframe

Comunicação BDs via Web

Pessoal envolvido em grandes sistemas de Pessoal envolvido em grandes sistemas de bancos de dadosbancos de dados

• Usuários (“atores em cena”)

–projetistas do BD

–administradores do BD (ABD) :

–usuários finais

- ocasionais

- paramétricos

- sofisticados

- analistas de sistemas

- programadores de aplicação

Pessoal envolvido em grandes sistemas de Pessoal envolvido em grandes sistemas de bancos de dadosbancos de dados

•Usuários (“atores em cena”)

–projetistas do BD : responsáveis por identificar

os dados a serem armazenados no BD e por

escolher as estruturas apropriadas para

representar e armazenar esses dados.

Comunicação c/ usuários p/ identificação de

visões.

–administradores do BD (ABD) : responsáveis

pela autorização do acesso ao BD e pela

coordenação e monitoração do seu uso.

Pessoal envolvido em grandes sistemas de Pessoal envolvido em grandes sistemas de bancos de dadosbancos de dados

•Usuários (“atores em cena”)

–usuários finais

- ocasionais : tipicamente gerentes e tomadores de decisão.Utilizam-se de ling. consultas sofisticadas.

- paramétricos : usuários de transações “enlatadas”, por exemplo, caixas de bancos, funcionários de reservas em companhias aéreas.

- sofisticados : engenheiros, cientistas, analistas de negócios.Utilizam-se das facilidades do SGBD.

Pessoal envolvido em grandes sistemas de Pessoal envolvido em grandes sistemas de bancos de dadosbancos de dados

•Usuários (“atores em cena”)

–analistas de sistemas : determinam os

requisitos dos usuários finais, especialmente

dos ocasionais e paramétricos, e desenvolvem

especificações de transações que satisfaçam

esses requisitos.

–programadores de aplicação : implementam as

especificações das transações como

programas, testando-os, corrigindo-os e

documentando-os.

•Pessoal de suporte (“trabalhadores atrás da cena”)

–projetistas e implementadores de SGBD : projetam e implementam o SGBD como um software produto.

–projetistas e implementadores de ferramentas : projetam e implementam pacotes de software que facilitam o projeto e o uso do BD e ajudam a melhorar o desempenho do SGBD.

–operadores e pessoal de manutenção e suporte : responsáveis pelo funcionamento do ambiente de hardware e software do sistema de BD.

Pessoal envolvido em grandes sistemas de Pessoal envolvido em grandes sistemas de bancos de dadosbancos de dados

Funcionalidades de um SGBDFuncionalidades de um SGBD

• Controle de redundância

• Compartilhamento de dados

• Controle de Acesso

• Persistência p/ Objetos e Estrut. de Dados

• Inferência através de Regras de Dedução

• Múltiplas interfaces

• Representação de relacionamentos

• Cumprimento das restrições de integridade

• Capacidade de “backup” e restauração

Controle de RedundânciaControle de Redundância

• Redundância

Problemas:

• duplicação de esforço para manter os dados atualizados;

• desperdício de espaço de armazenamento;

• possibilidade de inconsistência dos dados

Quando a redundância é necessária:

SGBD deve ser capaz de controlar a redundância para evitar inconsistências.

Compartilhamento de Dados

• Sistemas multiusuários

Controle de Concorrência

Controle de AcessoControle de Acesso

Subsistema de segurança e autorização

Mecanismos usuais de controle de acesso:

• senhas para usuários e para grupos de usuários;

• restrição de acesso a parte do banco de dados;

• proibição de executar certas operações, por exemplo atualização;

• acesso de usuários paramétricos restrito apenas a transações “enlatadas”;

• proibição de uso de software privilegiado, a ex. do software de criação de contas.

Persistência p/ Objetos e Estruturas de Persistência p/ Objetos e Estruturas de DadosDados

Capacidade dos Banco de Dados de se integrarem a linguagens de programação de alto nível de forma a permitir que as estruturas criadas pelas LPs fiquem armazenadas definitivamente no BDs.

Inferência através de Regras de Inferência através de Regras de DeduçãoDedução

Capacidade de permitir a definição de regras no SGBD que permitam deduzir novas informações a partir dos fatos armazenados.

Regras:Regras:

adolescentes são todos aqueles que têm entre 14 e 18 anos

• carioca: cidadão natural do RJ

• engenheiros: todo aquele que tem diploma de curso de Engenharia

Consulta:Consulta:

“Quais os adolescentes cariocas que são engenheiros”?

Múltiplas InterfacesMúltiplas Interfaces

Um SGBD deve prover uma variedade de interfaces de usuário.

Tipos de interfaces:Tipos de interfaces:

• linguagens de consulta para usuários casuais;

• linguagens de programação para programadores de aplicações;

• formulários (telas) para usuários paramétricos;

• menus;

• linguagem natural.

Representação de RelacionamentosRepresentação de Relacionamentos

O SGBD deve ter a capacidade de representar uma variedade de relacionamentos complexos entre os dados, bem como recuperar e atualizar dados relacionados de uma maneira fácil e eficiente.

Cumprimento das Restrições de IntegridadeCumprimento das Restrições de Integridade

Restrições: Restrições:

• forma de verificação da consistência dos dados no BDs

Restrições de integridade mais complexas:Restrições de integridade mais complexas:

• Unicidade de itens de dados;

• Integridade referencial (um registro em uma tabela que referencia outra tabela deve referenciar um registro existente na outra tabela)

• Restrições derivadas da semântica dos dados (exemplo: um aluno não pode fazer a mesma disciplina mais de uma vez).

Capacidade de Backup e RestauraçãoCapacidade de Backup e Restauração

O SGBD deve prover facilidades para restaurar o banco de dados em caso de falha de hardware ou de software.

sub-sistema de backup e restauração: responsável por assegurar que o banco de dados é restaurado para seu estado anterior à execução do programa.

Benefícios adicionais dos Bancos de DadosBenefícios adicionais dos Bancos de Dados

• Potencial para o estabelecimento e o cumprimento de padrões

• Flexibilidade de mudanças

• Redução no tempo de desenvolvimento de novas aplicações

• Disponibilidade de informação atualizada

• Economia de escala

Bancos de dados não são sempre a soluçãoBancos de dados não são sempre a solução

• SobrecustosSobrecustos

– Alto investimento inicial e possível necessidade de hardware adicional.

– Custo da generalidade do SGBD para definição e processamento dos dados.

– “Overhead” para garantir segurança, controle de concorrência, recuperação e integridade.

• Quando NÃO usar BDsQuando NÃO usar BDs

– O volume de dados é pequeno e as aplicações são simples, bem definidas. Mudanças não são esperadas.

– Existem requisitos estritos de tempo real que não podem ser satisfeitos por causa do “overhead” do SGBD.

– Acessos múltiplos e concorrentes não são necessários.

Modelo, Esquema, InstânciaModelo, Esquema, Instância

Modelo

Instância

Esquema

Percepçãoabstrata da realidade

Percepção daestrutura darealidade

Descrição darealidade num dadomomento

regras para estruturar dados

regras para verificar validade

(Intensão)(Intensão)

(Extensão)(Extensão)

estático, invariante no tempo

dinâmico,variante no tempo

Aluno Nome Número Área

Antonio 8 INF

Disciplina Nome Número Créditos Dept

Estruturas de DadosMatemática DiscretaBancos de Dados

INF3320MAT2410INF3380

433

INFMATINF

Pré-Requisito No_Curso

INF3380INF3320

No_Pre-Req

MAT2410INF1310

Histórico-Escolar No_Aluno No_Curso Grau

178888

INF1310MAT2410INF1310INF3320INF3380

CAABA

Modelo, Esquema, InstânciaModelo, Esquema, Instânciamodelo relacional

(tabelas)

esquema

instância

A Arquitetura de Três Esquemas

VisãoExterna 1

VisãoExterna 1

VisãoExterna n

VisãoExterna n

Esquema ConceitualEsquema Conceitual

Esquema InternoEsquema Interno

Usuários finais

. . .NÍVEL EXTERNONÍVEL EXTERNO

NÍVEL CONCEITUALNÍVEL CONCEITUAL

NÍVEL INTERNONÍVEL INTERNO

mapeamento externo/conceitual

mapeamento conceitual/interno

Arquitetura de Banco de Dados

• Nível Interno: descreve as estruturas de acesso e armazenamento do BD;

• Nível Conceitual: decreve toda a estrutura do BD a nível de propriedades, relacionamentos, restrições etc, sem os detalhes de implementação física. Um modelo conceitual (por ex. ERE) é utilizado nessa etapa.

• Nível externo: corresponde às visões específicas dos usuários.

VisõesVisões

exemploexemplo: : companhia aéreacompanhia aérea

1- Empregados(nome, cpf, end, tel, filiação, dep)

2- Equipamentos(n0 avião,marca,tipo,capac,tripulação, revisão)

3- Funções(nomefunção,salário,qualificação,serviço, tipo_equipam)

4-Vôo(linha, tipo_equipam, n0horas, serviço_bordo, horário)

Aplicações:

•Folha pagamento (1,3)•Equipe tripulação (1,2,3)•Manutenção equip (1, 2)•Reserva vôo (2,4)•Escala manutenção (1,2,3)

Independência de Dados

Capacidade de mudar o esquema num nível de um sistema de banco de dados sem ter que mudar o esquema no nível seguinte mais alto.

Independência lógica de dados:

Independência física de dados:

Linguagens de Bancos de Dados

• Linguagem de definição dos dados (LDD)

• Linguagem de definição do armazenamento (LDA)

• Linguagem de definição das visões (LDV)– (Usualmente a LDD incorpora a LDA e a LDV)

• Linguagem de manipulação dos dados (LMD)– Alto nível ou não procedural : orientada a conjuntos

– Baixo nível ou procedural : orientada a registros

– (Às vezes, a LDD e a LMD confundem-se na mesma linguagem. Exemplo : SQL)

• Linguagem hospedeira– Linguagem de programação na qual comandos da LMD são embutidos.

Interfaces de Bancos de DadosInterfaces de Bancos de Dados• Interfaces baseadas em menus (listas de opções)

• Interfaces gráficas

• Interfaces baseadas em formulários (telas)

• Interfaces de linguagem natural

• Interfaces para usuários paramétricos

• Interfaces para o ABD

Componentes de um SGBD

Comandos em LDD

Comandos privilegiados

Consulta dealto nível

Programas deaplicação

Comandos em LMD

TransaçõescompiladasCompilador

da LDDCompilador

da LMD

Processadorde consultas

Processadordo BD em tempo

de execução

Compiladorda linguagemhospedeira

Subsistema de controle deconcorrência / backup / restauração

Gerenciadordos dados

armazenados

Banco de dados armazenado

Catálogo/Dicionáriode Dados

ABD e equipe usuáriosocasionais

programadoresde aplicações

usuáriosparamétricos

Pré-compilador

Classificação dos SGBDsClassificação dos SGBDs

• Critério principal de classificação: modelo de dados

Relacional, Redes, Hierárquico, Relacional Objeto

e Orientado a Objetos.

• Outros critérios:

– Número de usuários

Monousuário, Multiusuário

– Número de locais (“sites”)

Centralizado, Distribuído (homogêneo, heterogêneo)

– Preço (US$)

100 a 3.000 (monousuários, PC), 10.000 a 100.000 (a maioria), 100.000 a 300.000 (alguns mais elaborados)

– Propósito

Geral, Específico

PROJETO DE BANCOS DE DADOSPROJETO DE BANCOS DE DADOS

Requisitos de Dados

Projeto Conceitual

Projeto Lógico

Projeto Físico

Esquema Conceitual

Esquema Físico

Esquema Lógico

Coleta e Análisede Requisitos

Mini-Mundo

Independentede SGBD

Específico paraum SGBD

Foco : dados

Banco de Dados Hierárquicos Banco de Dados Hierárquicos

Segue o estilo de um organograma empresarial (Diretoria-Divisão-Seção-Setor) ou de biblioteca (Exata-Matemática-Algebra Linear-Vetores). Este modelo é capaz de representar este tipo de organização de forma direta, mas apresenta inconvenientes quando esta situação não aparece claramente com relações de hierarquia.

Fábrica Financeiro Comercial

Injeção Extrusão Pagar Receber Contábil Vendas Marketing

Paulo Vinícius Vilma Sílvia Dagoberto Juracy RichardPedro Carlos Ernesto Sandra Paula Pedrinho João

Sabemos que Paulo é "filho" da Injeção que por sua vez é "filha" da Fábrica.

Banco de Dados em Rede Banco de Dados em Rede

Neste modelos os dados são dispostos em registros, previamente classificados em classes que descrevem a estrutura de determinado tipo de registro. Os registros são descritos em relações de conjuntos onde são estabelecidas as ligações lógicas entre eles.

Informática

André

Paulo

Carla