47
Banco de Dados Aula 2 - Prof. Bruno Moreno 19/08/2011

Banco de Dados - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/05/BD_Aula2.pdf · •Usuários finais casuais ... mudar o esquema externo (programas) –Exemplo: adição

  • Upload
    vulien

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Banco de Dados

Aula 2 - Prof. Bruno Moreno

19/08/2011

Aula passada..

• Apresentação do professor e disciplina

• Definição de Banco de Dados

• Sistema de BD vs Tradicional

• Principais características de BD– Natureza autodescritiva de um sistema de BD

– Isolamento entre programas e dados, e abstração de dados

– Suporte a múltiplas visões dos dados

– Compartilhamento de dados e processamento de transação multiusuário

15:29

Roteiro

• PostgreSQL• Profissionais de BD• Vantagens do uso de BD• Modelagem de Dados• Esquema de Banco de Dados• Arquitetura de Banco de Dados• Independência de Dados• Linguagens SGBD• Utilitários do sistema de BD• Classificação de SGBDs• Modelo de Dados Relacional e OO

15:29

POSTGRESQLBanco de Dados I

15:29

PostgreSQL

• É objeto-relacional

• Padrão SQL 92/99

• Um dos mais avançados SGBDs livres

• Open source

– Flexibilidade

– Confiabilidade

– Robustez

• Compatível com diversos SOs

15:29

PostgreSQL

• Acesso ao banco de dados

– psql

• Linha de comando

– PGadmin

• Ferramenta gráfica

– ODBC (Open Data Base Connectivity)

• Padrão para que aplicações acessem SGBDs

15:29

PROFISSIONAIS DE BDBanco de Dados I

15:29

Profissionais de BD

• Administrador de banco de dados (DBA)

• Projetistas de banco de dados

• Usuários finais

• Analistas de sistemas

• Programadores de aplicações

15:29

Profissionais de BD

• Administrador de banco de dados (DBA)

– Autoriza o acesso ao banco de dados

– Coordena e monitora seu uso

– Adquire recursos de software e hardware

• Projetistas de banco de dados

– Identificam os dados a serem armazenados

– Escolhem estruturas apropriadas para representar e armazenar esses dados

15:29

Profissionais de BD

• Usuários finais– Pessoas cujas funções exigem acesso ao banco de

dados

– Tipos• Usuários finais casuais

– Acionam o banco de dados ocasionalmente

– Usam uma linguagem de consulta de BD

– Normalmente são gerentes de nível médio

• Usuários finais iniciantes ou paramétricos– Usuários de aplicações que já foram programadas com

consultas pré-definidas

15:29

Profissionais de BD

• Usuários finais– Pessoas cujas funções exigem acesso ao banco de

dados

– Tipos• Usuários finais sofisticados

– Engenheiros, cientistas ou analistas que implementam aplicações que atendam a solicitações complexas

• Usuários isolados– Autônomos que mantêm um BD pessoal

– Utilizam de pacotes de programas prontos com interfaces gráficas baseadas em menus fáceis de usar.

15:29

Profissionais de BD

• Analistas de sistemas

– Identificam as necessidades dos usuários finais

• Programadores de aplicações

– Implementam essas especificações como programas

15:29

VANTAGENS DO USO DE BDBanco de Dados I

15:29

Vantagens do uso de BD

• Controle de redundância

– Normalização de dados

– Desnormalização

– Às vezes é necessário usar a redundância controlada para melhorar o desempenho das consultas

15:29

Id Nome convenio convenio_tel diagnóstico

1 Carlos ABC 222-2222 Dor pericordial

1 Carlos ABC 222-2222 Hipoglicemia

2 Flávia XYZ 333-3333 Dor pericordial

2 Flávia XYZ 333-3333 Hipoglicemia

Id Nome convenio

1 Carlos ABC

2 Flávia XYZ

convenio convenio_tel

ABC 222-2222

XYZ 333-3333

Id_pac diagnóstico

1 Dor pericordial

1 Hipoglicemia

2 Dor pericordial

2 Hipoglicemia

Vantagens do uso de BD

• Restrição de acesso não autorizado

– Subsistema de segurança e autorização

– PostgreSQL

• Arquivos pg_hba e postresql

• Definição de usuários

15:29

Vantagens do uso de BD

• Oferta de armazenamento persistente para objetos do programa– Objeto complexo em C++ ou Java

• Oferta de estruturas de armazenamento e técnicas de pesquisa para o processamento eficiente de consulta– Índices

– Buffering

– Processamento e otimização de consulta

15:29

Vantagens do uso de BD

• Oferta de backup e recuperação

• Oferta de múltiplas interfaces do usuário

• Representação de relacionamentos complexos entre dados

– Pode incluir muitas variedades de dados que estão inter-relacionados de diversas maneiras

15:29

Vantagens do uso de BD

• Imposição de restrições de integridade– Restrição de integridade de tipo

– Restrição de integridade referencial • Um PROFESSOR para uma ou muitas TURMAS

– Restrição de chave ou singularidade• Cada registro de DISCIPLINA deverá ter um valor

exclusivo para Numero_disciplina

– Regras de negócio• Um ALUNO deve estar matriculado em no mínimo 2

DISCIPLINAS e no máximo 4

15:29

Vantagens do uso de BD

• Dedução e ações usando regras

– Sistemas de banco de dados dedutivos

• Oferecem capacidades para definir regras de dedução

• Deduzir novas informações com base nos fatos armazenados no banco de dados

– Gatilhos

• Regra ativada por atualizações na tabela

– Procedimentos armazenados

• Procedimentos mais elaborados para impor regras

15:29

MODELAGEM DE DADOSBanco de Dados I

15:29

Modelo de dados

• Característica fundamental de BDs: abstração de dados

• Modelo de dados descrevem a estrutura de um banco de dados

– Fornece significado necessário para permitir abstração

Estrutura de um banco de dados:

Tipos de dados

Relacionamentos

Restrições

Operações básica para atualização e recuperação

15:29

Modelo de dados

Modelos de dados

Conceituais

Modelos

representacionais

Modelos de

dados físicos

15:30

Modelos de alto nível

Descrevem os dados como os usuários os percebem.

Modelos de baixo nível

Descrevem os detalhes de armazenamento

Conceitos entendidos por usuários finais

Sem detalhes de armazenamento de dados mas podem ser implementados de maneira direta

Modelo de dados

• Modelo de dados conceituais– Entidade

• Representa um objeto do mundo real ou um conceito

• Ex: entidade funcionário e projeto

– Atributo• Propriedade de interesse que descreve uma entidade

• Ex: atributo nome da entidade funcionário

– Relacionamento• Representa a associação entre duas ou mais entidades

• Ex: Relacionamento entre funcionário e projeto

15:30

Modelo de dados

• Modelo de dados representacionais (implementação)– Mais utilizados em SGBDs comerciais tradicionais

– Modelo de dados relacional

– Modelo de rede

– Modelo hierárquico

• Modelos de dados orientados a objetos– Mais alto nível, próximo aos modelos conceituais

– Utilizam paradigma OO para armazenar dados

15:30

Modelo de dados

• Modelo de dados físicos

– Representam como os dados estão armazenados em arquivos no computador

– Registro, ordem de registro, rotas de acesso

– Uma rota de acesso torna a consulta em um banco de dados mais eficiente

15:30

Esquemas

• Descrição de banco de dados é diferente do banco de dados de fato

• Esquemas podem ser representados em diagramas

• Apresentam a estrutura das entidades– Sem tipos, nem restrições

15:30

Estado do banco de dados

• Dados do banco de dados em um determinado momento

– Snapshot

– Conjunto corrente de ocorrências ou instâncias

• Cada inserção, atualização ou exclusão de dados altera o estado do banco de dados

• Ao se definir um esquema de banco de dados o estado correspondente é vazio

15:30

Estado do banco de dados

• Teremos um estado inicial quando o banco for populado ou carregado com dados iniciais

• A cada operação: um novo estado corrente

• O SGBD deve garantir que cada estado é um estado válido

– Satisfaz estruturas e restrições definidas no esquema

15:30

ARQUITETURA DE TRÊS ESQUEMASBanco de Dados I

15:30

Arquitetura de três esquemas

• Características importantes da abordagem com uso de BD

(1) Separação de programa e dados

(2) Suporte a múltiplas visões de usuários

(3) Uso de catálogo para armazenar a descrição do Banco de Dados

Arquitetura três esquemas

15:30

Arquitetura de três esquemas

• Objetivo: separar o usuário da aplicação do banco de dados físico

• Esquemas são definidos em três níveis

(1) Nível interno: esquema interno

(2) Nível conceitual: esquema conceitual

(3) Nível externo: esquema externo ou visões de usuários

15:30

Arquitetura de três esquemas

(1) Nível interno

– Esquema Interno

– Descreve a estrutura de armazenamento físico do banco de dados

– Utiliza um modelo de dados físico

– Descreve detalhes completos do armazenamento de dados e caminhos de acesso ao banco de dados

15:30

Arquitetura de três esquemas(2) Nível conceitual

– Esquema Conceitual: modelo de dados representacional

– Descreve toda a estrutura do banco de dados para a comunidade de usuários

– Oculta detalhes das estruturas de armazenamento físico, concentrando-se na descrição de• Entidades• Tipos de dados• Conexões• Operações de usuários• Restrições

15:30

Arquitetura de três esquemas

(3) Nível externo

– Esquemas externos ou visões de usuários

– Cada esquema externo descreve a parte do banco que um dado grupo de usuários tem interesse

• Oculta o restante

– Implementado utilizando um modelo representacional

15:30

Arquitetura de três esquemas• Os três esquemas são

apenas descrições dos dados

• O dado existe somente no nível físico

• Nessa arquitetura, um usuário refere-se somente ao seu próprio esquema externo

• O SGBD é responsável por transformar essa solicitação em cada nível posterior

15:30

Independência de dados

• Capacidade de mudar de esquema sem que ocorram alterações no próximo nível de esquema

• A arquitetura 3-esquemas auxilia na independência de dados

• Existem dois tipos de independência de dados

(1) Independência lógica de dados

(2) Independência física de dados

15:30

Independência de dados

(1) Independência lógica– Capacidade de alterar o esquema conceitual sem

mudar o esquema externo (programas)

– Exemplo: adição de novos registros ou item, variar restrições, redução de banco de dados

(2) Independência física– Capacidade de mudar o esquema interno sem

alterar o esquema conceitual

– Exemplo: reorganização de arquivos físicos, criação de estruturas de dados diferenciadas

15:30

LINGUAGENS DE SGBDBanco de Dados I

15:30

Linguagens de SGBD

• Linguagem de definição de dados (DDL)– Data Definition Language– Define os dois esquemas

• Linguagem de definição de armazenamento (SDL)– Storage Definition Language– Especifica o esquema interno

• Linguagem de definição de visão (VDL)– View Definition Language– Especificar visões do usuário e seus mapeamentos ao esquema

conceitual

• Linguagem de manipulação de dados (DML)– Data Manipulation Language– Incluem recuperação, inserção, exclusão e modificação dos

dados

15:30

Linguagens de SGBD

• Tipos de DML

– Alto nível (não procedural)

• Pode ser utilizada para especificar operações de banco de dados complexas de forma concisa

• Um conjunto de cada vez ou orientadas a conjunto

– Baixo nível (procedural)

• Deve ser embutida em uma linguagem de programação de uso geral

• Um registro de cada vez

15:30

Utilitários do sistema de BD

• Carga– Carrega os arquivos de dados existentes

• Backup– Cria uma cópia de segurança do banco de dados

• Reorganização do armazenamento do banco de dados– Reorganiza um conjunto de arquivos do banco de

dados em diferentes organizações de arquivo

• Monitoração de desempenho– Monitora o uso do banco de dados e oferece

estatísticas ao DBA

15:30

CLASSIFICAÇÃO DE SGBDSBanco de Dados I

15:30

Classificação de SGBDs

(1) Número de usuários

– Monousuário

– Multiusuário

(2) Distribuição

– Centralizado

– Distribuído

15:30

Classificação de SGBDs

(3) Custo– Código aberto

– Diferentes tipos de licença

(4) Modelo de dados– Relacional

– Objeto

– Hierárquico e rede (legado)

– SGBDs XML nativos

– Objeto-relacional

15:30

Modelo de Dados Relacional

• Banco de Dados é representado como uma coleção de tabelas (relações)

• Cada relação pode ser armazenada como um arquivo separado

• A maioria utiliza uma linguagem de consulta de alto nível

– SQL

15:30

Modelo de Dados de Objetos

• Banco de dados em termos de objetos, suas propriedades e operações

• Paradigma OO– Objetos com a mesma estrutura e comportamento

pertencem a uma classe

– Classes são organizadas em hierarquias

– Operações são especificadas e pré-definidas no banco: métodos

• SGBDs relacionais estenderam os OOs– Objeto Relacional ou Relacional Estendido

15:30

Lista de discussão e freqüência!

Aula 2 - BD - Prof. Bruno Moreno

19/08/2011