banco de dados - bruno morenobrunomoreno.com/wordpress/wp-content/uploads/2012/05/bd_aula2.pdf ·...
TRANSCRIPT
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
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 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 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
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 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 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 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