sistemas de banco de dados - adriano maranhão · revisÃo de bd i um sistema de gerenciamento de...
TRANSCRIPT
REVISÃO DE BD I
Um Sistema de Gerenciamento de Banco de Dados (SGBD) -do inglês DBMS (Data Base Management System) - é o conjunto de programas de computador (softwares) responsáveis pelo gerenciamento de um(a) base de dados. Seu principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, manipulação e organização dos dados. O SGBD disponibiliza uma interface para que seus clientes possam incluir, alterar ou consultar dados previamente armazenados. Em bancos de dados relacionais a interface é constituída pelas APIs (Application Programming Interface) ou drivers do SGBD, que executam comandos na linguagem SQL(Structured Query Language).
PROBLEMAS QUE UM SGBD DEVE SOLUCIONAR
Inconsistência e redundância de dados
Dificuldade de acesso aos dados
Isolamento de dados
Problemas de integridade
Problemas de atomicidade
SUMÁRIO
Introdução aos Sistemas de Banco de Dados -SBD
Modelo de Entidades e Relacionamentos
Bancos de Dados Relacionais O Modelo Relacional
Modelagem de Dados
Álgebra Relacional
Linguagem de Manipulação e Consulta
Projeto de Bancos de Dados Relacionais
Projeto Lógico de Bancos de Dados
8
INTRODUÇÃO AOS SBD - HISTÓRICO
Processamento de arquivo (anos 60 e 70)
Paradigma de processamento de dados
Cada aplicação define e mantêm seus próprios
dados
9
INTRODUÇÃO AOS SBD - HISTÓRICO
Dados em Arquivos
Redundância e inconsistência
Dificuldade de acesso aos dados
Isolamento dos dados
Problemas de integridade
Problemas de atomicidade
Anomalias de acesso concorrente
Problemas de segurança
10
INTRODUÇÃO AOS SBD
Tecnologia de banco de dados
Definição e gerenciamento centralizado de dados
Independência de dados
Eliminar redundância de dados
Facilitar acesso a dados através de uma
linguagem de consulta
Evitar inconsistências produzidas pelo acesso
concorrente
Recuperar estado consistente do dados após
situação de falha
11
INTRODUÇÃO AOS SBD
Tecnologia de banco de dados
Sistema de Banco de Dados
Conjunto de dados inter-relacionados (banco de dados)
Componente de software (SGBD)
Acesso e modificação dos dados
Garantir uma visão abstrata dos dados12
INTRODUÇÃO AOS SBD – ABSTRAÇÃO DE
DADOS
Níveis de Abstração Nível físico: descreve como os dados são armazenados
Nível lógico: descreve quais dados são armazenados e os relacionamentos entre eles
Nível de visualização: descreve partes de interesse do usuário/aplicação
13
SBD – ARQUITETURA EM TRÊS CAMADAS
Esquema Interno - Camada Interna
Descreve como os dados estão fisicamente
armazenados
Exemplo
Organização de arquivo
seqüencial-indexado, hashing, seqüencial, heap
Alocação em disco
Contígua, lista encadeada, lista encadeada utilizando índice
Tipo de registro
Fixo, variável
15
SBD – ARQUITETURA EM TRÊS CAMADAS
Esquema Conceitual - Camada Conceitual
Descreve quais dados estão armazenados no banco de dados
Descreve os relacionamentos entre os dados armazenados
Esquema Externo - Camada Externa
Descreve parte do banco de dados
Simplificar a visão do usuário
“Ver” só o que interessa
Segurança
16
SBD- OCORRÊNCIAS E ESQUEMAS
Ocorrências (instâncias)
Coleção de informações armazenadas na base
Altamente mutáveis
Esquemas
Projeto ou estrutura da base – definição
Um esquema para cada nível de abstração
Esquema físico - nível interno
Esquema lógico - nível conceitual
Sub-esquemas ou esquemas de visualização – nível externo
17
SBD – INDEPENDÊNCIA DE DADOS
Independência Física
Habilidade de modificar o esquema físico sem causar redefinição dos programas de aplicação
Modificações são necessárias para melhorar desempenho
Independência Lógica
Habilidade de modificar o esquema lógico sem causar redefinição dos programas de aplicação
Modificações são necessárias quando a estrutura lógica da base é alterada
18
SBD- DEFINIÇÃO
Sistema de Bancos de Dados (SBD ou DBS)
Banco de Dados (BD ou DB)
Conjunto de dados relacionados
Sistema Gerenciador de Bancos de Dados (SGBD
ou DBMS)
Componente de software
Acesso
Controle de Concorrência
Recuperação
Armazenamento
19
SBD – LINGUAGENS DE BD Finalidade
garantir a especificação do esquema de um banco de dados
permitir consultas e atualizações sobre o banco de dados
Componentes DDL - Data Description Language
Utilizada para especificar o esquema de um BD
Expressões da DDL Interpretadas (compilados) gerando a especificação de um
conjunto de tabelas
A especificação das tabelas é armazenada no catálogo do banco de dados
Exemplo (SQL): CREATE TABLE
20
SBD – LINGUAGENS DE BD
Componentes (cont.)
DML - Data Manipulation Language
Utilizada para permitir
Consultas sobre um BD
Exemplo (SQL): Select nome from Empregado
Inserções em uma tabela
Exemplo (SQL): insert into Empregado values(123, “Bárbara”, 5000.00)
Remoções em uma tabela
Exemplo (SQL): delete from Empregado where matr=14
Atualizar valores de atributos de uma tabela
Exemplo (SQL): update Empregado set salário=salário∗1.15 where salário<1500.00
21
SBD - DEFINIÇÃO
SGBD
Processador de Consultas + Sistema de Armazenamento
Processador de Consultas
Compilador DML
Analisa sintaticamente e semanticamente comandos DML expressos em uma linguagem de consulta (ex. SQL)
Traduz estes comandos para uma das formas de representação interna de consultas (ex. álgebra relacional)
Pré-Compilador DML
Traduz comandos DML em chamadas a procedimentos (rotinas) na linguagem hospedeira
22
SGBD- DEFINIÇÃO
SGBD- Processador de Consultas
Interpretador DDL
Interpreta comandos DDL e os armazena no catálogo
Tabelas contendo meta-dados
Descrição do banco de dados Esquema
Mecanismo de Consultas
Responsável pela otimização e geração de planos de
execução de consultas
23
SBD- DEFINIÇÃO SGBD - Sistema de Armazenamento
Gerenciador de Transações
Controle de concorrência
Recuperação do banco de dados após falhas
Gerenciador de Buffer
Responsável para recuperar objetos em disco e carregá-los na memória principal em forma de páginas
SGBD possui uma área de buffer em memória principal
Mapeamento: Bloco(disco) Página buffer do SGBD)
Definição da política de alocação do buffer: MRU, LRU, FIFO, etc
Gerenciador de Arquivo (File System)
Responsável pelo armazenamento físico em disco
Gerencia a alocação de espaço em disco
24
SBD - DEFINIÇÃO
BD: Arquivos de dados + Índices + Catálogo Arquivos de dados
Armazena os dados
Índices Estruturas de índices para os arquivos de dados
Catálogo Armazena esquema do banco de dados (meta-dados): Nomes
das tabelas, atributos de cada tabela, definição de índice para uma tabela, etc…
Armazena informações estatísticas Exemplo: Cardinalidade de uma tabela
Utilizadas na otimização de consultas
25
SBD – ADMINISTRADOR DE BD (DBA)
Funções
Definição do esquema conceitual
Definição dos métodos de acesso e estruturas de
armazenamento
Manutenção do esquema e da organização física
dos dados
Definição da política de acesso aos dados
Especificação de restrições de integridade
27
SBD- USUÁRIOS DE BD
Programadores de aplicação
Usuários sofisticados
Usuários especializados em aplicações não
convencionais
Usuários de programas de aplicação
28
SBD- MODELO DE DADOS
Conjunto de ferramentas conceituais para descrever dados, seus relacionamentos, sua semântica e restrições de consistência
Modelos lógicos baseados em objetos
Modelo entidade-relacionamento
Modelo orientado a objeto
Modelos lógicos baseados em registros
Modelo relacional, Modelo Codasyl (rede) e Modelo hierárquico
Modelos físicos de dados
29
SBD- MODELO DE DADOS
Um modelo de dados é definido por três componentes 1. Uma coleção de tipos de estrutura de dados
blocos de construção do banco de dados
2. Uma coleção de operadores Podem ser aplicados a qualquer instância dos tipos de dados
definidos em 1
3. Uma coleção de regras de integridade Definem o conjunto de estados consistentes do banco de
dados
Definem o conjunto de transições consistentes de estado do banco de dados
30
SBD- MODELO DE DADOS
Representa dados do mundo real
Capturar a semântica e incorporá-la em um banco
de dados
Exemplo
Através do modelo relacional representar os dados de
uma universidade
31
SBD- MODELO DE DADOS
Sistema de Banco de Dados Relacional
Modelo Relacional
Tipo primitivo de dados
Relação (tabela)
Conjunto de tuplas (linhas)
Conjunto de Operadores
Álgebra Relacional
Cálculo Relacional
Restrições de integridade
Integridade de chave primária
Integridade referencial
32
SBD- MODELO DE DADOS
Sistema de Banco de Dados Orientado a Objeto
Modelo orientado a objeto
Tipos primitivos
Objeto, conjunto, lista, string, integer, real
Restrições de integridade
Unicidade de Objeto e identidade de objeto, Hierarquia de
classes, Herança, Método, etc
Sistema de Banco de Dados Objeto-Relacional
Modelo relacional + Modelo OO
33
CLASSIFICAÇÃO DE SBD
Classificação de SBDs – Arquitetura
Sistema de Banco de Dados Centralizados
Os componentes do SBD residem no mesmo host
Sistema de Banco de Dados Cliente-Servidor
Distribuição de funções do SGBD entre clientes e servidor
Sistema de Banco de Dados Paralelos
Distribuição do controle de funções do DBMS entre diversos
sistemas computacionais
Sistema de Banco de Dados Distribuídos
Distribuição de dados através de diversos SBDs homogêneos
34
CLASSIFICAÇÃO DE SBD
Classificação de SBDs – Arquitetura
Sistema de Banco de Dados Heterogêneos
Distribuição de dados através de SBDs heterogêneos e
autônomos
Sistema de banco de dados múltiplos (MDBS)
Sistema de banco de dados federados
Sistema de banco de dados P2P
Sistema de Banco de Dados Móvel
Distribuição de funções do SGBD entre clientes e
servidor em ambientes de computação móvel
35
SBD- GERENCIAMENTO DE TRANSAÇÕES
Transação
Coleção de operações que realizam uma única função
lógica em uma aplicação de banco de dados
Controle de acesso concorrente
Isolamento entre transações concorrentes
Tolerância a falhas
Atomicidade das operações
Persistência dos resultados das transações bem
sucedidas
36
SBD- CONTROLE DE CONCORRÊNCIA
Concorrência em um ambiente multiusuário
Entrelaçamento (interleaving) de operações
Operações de um programa podem ser executadas
entre duas operações de outro programa
Alterações inconsistentes no banco de dados
SGBD precisa monitorar e controlar a execução
concorrente de programas
Controle de Concorrência
37
MODELO ENTIDADE E RELACIONAMENTO
Modelo de dados MER
Não é implementado por nenhum SBD
Utilizado como modelo conceitual para projeto de BDs
Ferramenta para a modelagem de BDs
Proposto por P. Chen em 1976
Representar dados através
Entidades
Relacionamentos entre as entidades
Atributos
Propriedades de entidades ou relacionamentos
38
MODELO ENTIDADE E RELACIONAMENTO
Entidade
Representação abstrata de um objeto do mundo real
Exemplos de entidades do mundo real
Objeto concreto
Um empregado, um carro, um estudante
Objeto abstrato
Uma empresa, uma conta bancária, uma disciplina
Conjunto de entidades (tipo de entidade)
Entidades que apresentam características semelhantes
Exemplo: Estudantes, Empregados, Contas
39
MODELO ENTIDADE E RELACIONAMENTO
Atributos de uma entidade Propriedades que caracterizam uma entidade
Exemplos Atributos de empregados
matrícula, nome, endereço, rg, cpf, data-nasc, salário, lotação, data-admissão
Atributos de estudantes matrícula, nome, curso, rg, cpf, data-ingresso
Conjunto de entidades Grupo de entidades que apresentam mesmo conjunto de
atributos
A cada atributo de uma entidade deve estar associado um valor
40
MODELO ENTIDADE E RELACIONAMENTO
Atributos de uma entidade (cont.) Atributos chave de uma entidade
Conjunto de atributos que identificam univocamente uma entidade
Seja f um atributo chave para um conjunto de entidades D, x∈D e f(x)=v, então ∀d∈D e d≠x, f(d)≠v
Exemplo Matrícula é atributo chave para Estudante
Tipos de atributos Atributo atômico
Atributo que não pode ser subdividido
Atributo composto Atributo formado por vários atributos
41
MODELO ENTIDADE E RELACIONAMENTO
Atributos de uma entidade (cont.)
Tipos de atributos
Atributo mono-valorado
Atributo para o qual está associado um único valor
Exemplo: Nome
Atributo multi-valorado
Atributo para qual podem estar associados vários valores
Exemplo: Fones( celular, res, trab)
Atributo derivado
Atributo cujo valor poder derivado com base no valor de um outro atributo (atributo base)
Exemplo: Atributo idade pode ser derivado do atributo data-nasc
42
MER- RELACIONAMENTO
Abstração que representa associações entre diferentes conjuntos de entidades
Exemplo: O empregado Adriano com o departamento “Ciência da Computação”
Conjunto de relacionamentos)
Grupo de relacionamentos que representam o mesmo tipo de associação
Exemplo: Conjunto de relacionamentos lotação contém todos os relacionamentos entre empregado e departamento
Seja R um conjunto de relacionamentos representando associações entre os conjuntos de entidade E1, E2, ... En,
43
MER- RELACIONAMENTO
Conjunto de relacionamentos (cont)
Seja R um conjunto de relacionamentos, representando associações entre os conjuntos de entidades E1, E2, ... En, então R ⊆ E1 x E2 x Em
Seja r∈R, então r=(e1, e2, …, en), onde e1∈E1, e2∈E2, …, en∈Em
Exemplo:Considere o conjunto de relacionamentos lotação
lotação ⊆ Departamento x Empregado
(Wamberg, Ciência da Computação) ∈lotação
44
MER- RELACIONAMENTO
Conjunto de relacionamentos (cont)
Papel (role)
Função que uma entidade desempenha no
relacionamento
Exemplo
Papel de empregado
É lotado (Wamberg é lotado em Ciência da Computação)
Papel de departamento
Lota (Ciência da Computação lota Wmaberg)
45
MER- RELACIONAMENTO
Grau de Relacionamento
Número de entidades participantes no relacionamento
Relacionamento binário
Relacionamento de grau 2
Exemplo: ?
Relacionamento ternário
Relacionamento de grau 3
Exemplo
Relacionamento Agência-Conta-Cliente
46
MER – RELACIONAMENTO
Grau do relacionamento
Auto-relacionamento (relacionamento recursivo)
Relacionamento envolvendo um único conjunto de entidades
O conjunto de entidades apresenta diferentes papéis
Considere o seguinte cenário: Cada departamento possui vários supervisores responsáveis por um subconjunto de empregados do departamento
Modelagem do relacionamento entre empregado e supervisor
Um supervisor também é uma entidade do tipo Empregado
Relacionamento supervisiona
47
MER- RELACIONAMENTO
Atributos de relacionamento
Propriedades que descrevem um relacionamento
Exemplo
Considere o atributo data-lotação
Representa a data em que um empregado foi lotado em um determinado departamento
data-lotação é um atributo do relacionamento lotação
Considere o atributo nota na modelagem de dados do INTA
Descreve a nota de um aluno em uma disciplina
nota é um atributo do relacionamento cursa
Cursa representa o relacionamento entre os conjuntos de entidades Estudante e Disciplina
48
MER - RELACIONAMENTO
Cardinalidade de relacionamento
Indica o número de entidades que podem participar de um determinado relacionamento
Seja R um relacionamento binário entre os conjuntos de entidades A e B
A Cardinalidade de R deve ser uma das seguintes:
Um para um (1:1)
Um para muitos (1:N)
Muitos para um (N:1)
Muitos para muitos (N:N
49
MER- RELACIONAMENTO
Exemplos – Cardinalidade
Cardinalidade do relacionamento lotação entre
Departamento e Empregado : _______
Cardinalidade do relacionamento cursa entre
Estudante e Disciplina: _______
Cardinalidade do auto-relacionamento supervisiona
: _______
Cardinalidade do relacionamento que modela o
fato de que cada departamento : _______
50
MER - RELACIONAMENTO
Restrição de participação
Especifica a obrigatoriedade ou não de uma entidade e
participar de um relacionamento com outra entidade
Participação total
A participação de um conjunto de entidades A é total em um
relacionamento R, se toda entidade de A participa de pelo
menos um relacionamento em R
Dependência existencial
Exemplo: Considere o relacionamento lotação, para o qual
todo empregado deve estar lotado em algum departamento
A participação de Empregado em lotação é total
51
MER - RELACIONAMENTO
Restrição de Participação
Participação parcial
A participação de um conjunto de entidades A é parcial
em um relacionamento R, se apenas um subconjunto de
entidades de A participa em R
Exemplo
Relacionamento cursa entre Estudante e Disciplina
52
MER – ENTIDADE FRACA
Entidade cuja existência depende de estar associada, via um relacionamento relacionamento de identificação), com uma outra entidade (entidade forte)
Exemplo Considere o relacionamento dependência entre os
conjuntos de entidades Empregado e Dependente
Dependente contém os dependentes dos empregados da empresa
A existência de um dependente Gabriel depende da existência de um empregado Wamberg e que Gabriel esteja relacionado a Wamberg através do relacionamento dependência
53
MER – ENTIDADE FRACA
Uma entidade fraca é identificada
Por estar relacionada com uma entidade forte
Pelo atributo chave da entidade forte
Atributos da própria entidade fraca
Chave parcial
54
DIAGRAMA ER
Ferramenta de projeto
Capaz de capturar e representar graficamente
toda estrutura lógica de um banco de dados
Utilizada para modelagem de BDs
Existem ferramentas que fornecem uma interface
gráfica para o desenvolvimento de DERs
A partir do DER especificado, geram o esquema do
BD relacional
Ex: DIA - http://www.gnome.org/projects/dia/
55