sistemas de banco de dados - adriano maranhão · revisÃo de bd i um sistema de gerenciamento de...

58
SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1

Upload: trankiet

Post on 06-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

SISTEMAS DE BANCO DE DADOS

Prof. Adriano Pereira Maranhão

1

REVISÃO BANCO DE DADOS I

O que é banco de dados? Ou seja afinal o que

é um SGBD?

REVISÃO BD I

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).

TIPOS DE SGBD

Hierárquico

Rede

Relacional

Orientados a objeto

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

TERMOS QUE DEVEM SER COMUNS APÓS BDI

Tupla

Tabela

Registro

Célula

Banco

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

14

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

ARQUITETURA DE SGBD

26

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

DER- NOTAÇÃO

56

DER - NOTAÇÃO

57

DER - NOTAÇÃO

58