147
5/14/2018 SlidesModelagem-slidepdf.com http://slidepdf.com/reader/full/slides-modelagem 1/147 Francisco Alves Carneiro Banco de Dados 1 Modelagem de Dados Parte I Francisco Alves Carneiro Faculdade Estácio do Ceará Estacio-FIC [email protected]

Slides Modelagem

  • Upload
    joarlan

  • View
    209

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 1/147

Francisco Alves Carneiro Banco de Dados 1

Modelagem de DadosParte I

Francisco Alves Carneiro 

Faculdade Estácio do Ceará

[email protected]

Page 2: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 2/147

 Francisco Alves Carneiro Banco de Dados 2

Sumário

Introdução aos Sistemas de Banco de DadosModelo de Entidades e Relacionamentos Bancos de Dados Relacionais

O Modelo RelacionalModelagem de DadosLinguagem de Manipulação e Consulta

Projeto de Bancos de Dados Relacionais

F

Page 3: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 3/147

 Francisco Alves Carneiro Banco de Dados 3

Introdução aos Sistemas de Bancos de Dados- Histórico -

Processamento de arquivo (anos 60 e 70) Paradigma de processamento de dados Cada aplicação Definir e manter seus próprios dados

Descriçãode dados

Programa 1

Descriçãode dados

Programa 2

Descriçãode dados

Programa 3

Arquivo B

Arquivo A

Arquivo C

Page 4: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 4/147

 Francisco Alves Carneiro Banco de Dados 4

Redundância e inconsistência

Dificuldade de acesso aos dados

Isolamento dos dados

Problemas de integridade

Anomalias de acesso concorrente

Problemas de segurança

Introdução aos Sistemas de Bancos de Dados- Histórico -

Dados em Arquivos

Page 5: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 5/147 Francisco Alves Carneiro Banco de Dados 5

Tecnologia de banco de dados Definição e gerenciamento centralizado de dados Independência de dados Alteração na organização lógica ou física dos dados não

implicar na alteração de programas

Eliminar redundância de dados Eliminar inconsistência de dados

Facilitar acesso a dados através de uma linguagem deconsulta

Evitar inconsistências produzidas pelo acessoconcorrente Recuperar estado consistente dos dados após situação

de falha

Introdução aos Sistemas de Bancos de Dados

Page 6: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 6/147

 Francisco Alves Carneiro Banco de Dados 6

Tecnologia de banco de dadosPrograma 1 Programa 2 Programa 3

Descriçãode Dados

Banco

de DadosSistema 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 dados

Tornar transparente como os dados sãoarmazenados e gerenciados

Introdução aos Sistemas de Bancos de Dados

Page 7: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 7/147

Francisco Alves Carneiro Banco de Dados 7

Nível físico: descreve como os dados são armazenados

Nível lógico: descreve quais dados são armazenados e osrelacionamentos entre eles

Nível de visualização: descreve partes de interesse dousuário/aplicação

Sistemas

de

Bancos

de Dados 

Usuário tem uma

visão abstrata dos

dados

Introdução aos Sistemas de Bancos de Dados- Abstração de Dados -

Page 8: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 8/147

Francisco Alves Carneiro Banco de Dados 8

Esquema

Externo 1

Esquema

Externo 2

Esquema

Externo n

Esquema Conceitual

Esquema Interno(Banco de Dados armazenado)

DBMS

CamadaConceitual

CamadaInterna (Física)

CamadaExterna

Introdução aos Sistemas de Bancos de Dados- Arquitetura em Três Camadas -

Page 9: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 9/147

Francisco Alves Carneiro Banco de Dados 9

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

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

Introdução aos Sistemas de Bancos de Dados- Arquitetura em Três Camadas -

Page 10: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 10/147

Francisco Alves Carneiro Banco de Dados 10

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ívelexterno

Introdução aos Sistemas de Bancos de Dados- Ocorrências e Esquemas -

Page 11: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 11/147

Francisco Alves Carneiro Banco de Dados 11

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 Armazenamento Acesso Controle de Concorrência

Recuperação

Introdução aos Sistemas de Bancos de Dados- Definição-

Page 12: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 12/147

Francisco Alves Carneiro Banco de Dados 12

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 Empregado(matr integer not null,

nome varchar(35),salário real,primary key(matr))

Introdução aos Sistemas de Bancos de Dados- Linguagem de Banco de Dados -

Page 13: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 13/147

 Francisco Alves Carneiro Banco de Dados 13

Componentes (cont.) DML - Data Manipulation Language  

Utilizada para permitir Consultas sobre um BD

Exemplo (SQL)   select nome from Empregado where salario > 7000 

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

DMLProcedural 

- requer a especificação de quais dados devem ser acessados e como devem ser acessados 

Nonprocedural - requer somente a especificação de quais 

dados devem ser acessados 

Introdução aos Sistemas de Bancos de Dados- Linguagem de Banco de Dados -

I d ã Si d B d D d

Page 14: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 14/147

 Francisco Alves Carneiro Banco de Dados 14

SGBD Processador de Consultas + Sistema de Armazenamento 

Processador de Consultas  Compilador DML 

Analisa sintaticamente e semanticamente comandos DML expressosem uma linguagem de consulta (ex. SQL)

Traduz estes comandos para uma das formas de representaçãointerna de consultas (ex. álgebra relacional)

Pré-Compilador DML Traduz comandos DML em chamadas a procedimentos (rotinas) na

linguagem hospedeira

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

Introdução aos Sistemas de Bancos de Dados- Definição-

I t d ã Si t d B d D d

Page 15: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 15/147

 Francisco Alves Carneiro Banco de Dados 15

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 namemória principal em forma de páginas SGBD possui uma área de buffer em memória principal

Mapeamento: Bloco  Página (disco) (buffer do SGBD)

Gerenciador de Arquivo (File System ) Responsável pelo armazenamento físico em disco Gerencia a alocação de espaço em disco

Introdução aos Sistemas de Bancos de Dados- Definição-

Definição da política de alocação do buffer MRU, LRU, FIFO, etc

I t d ã Si t d B d D d

Page 16: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 16/147

 Francisco Alves Carneiro Banco de Dados 16

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

Introdução aos Sistemas de Bancos de Dados- Definição-

Introdução aos Sistemas de Bancos de Dados

Page 17: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 17/147

 Francisco Alves Carneiro Banco de Dados 17

EsquemaConsultaPrograma Aplicativo

Gerenciadorde Transações

Mecanismode Consultas

Gerenciadorde Buffer

Gerenciadorde Arquivo

CompiladorDML

Pre-compiladorDML

Sistema de Armazenamento

Processadorde Consultas

DBMS

DBS

Código Objetoaplicativos

Arquivosde dados

índices Catálogo DB

DBAUsuário experienteProgramadores

InterpretadorDDL

Introdução aos Sistemas de Bancos de Dados- Arquitetura de SGBD’s-

I t d ã Si t d B d D d

Page 18: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 18/147

 Francisco Alves Carneiro Banco de Dados 18

Definição do esquema conceitual

Definição dos métodos de acesso e estruturasde armazenamento

Manutenção do esquema e da organização físicados dados

Definição da política de acesso aos dados

Especificação de restrições de integridade

Introdução aos Sistemas de Bancos de Dados- O Administrador de Bancos de Dados (DBA) -

Introdução aos Sistemas de Bancos de Dados

Page 19: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 19/147

 Francisco Alves Carneiro Banco de Dados 19

Programadores de aplicação

Usuários sofisticados

Usuários especializados em aplicações não-convencionais

Usuários de programas de aplicação

Introdução aos Sistemas de Bancos de Dados- Usuários de Bancos de Dados -

Introdução aos Sistemas de Bancos de Dados

Page 20: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 20/147

 Francisco Alves Carneiro Banco de Dados 20

Um modelo de dados é definido por três componentes

Uma coleção de tipos de estrutura de dados blocos de construção do banco de dados Uma coleção de operadores Podem ser aplicados a qualquer instância dos tipos de

dados definidos em 1

Uma coleção de regras de integridade Definem o conjunto de estados consistentes do banco dedados Definem o conjunto de transições consistentes de estado

do banco de dados

Representar 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 umauniversidade

Introdução aos Sistemas de Bancos de Dados- Modelo de Dados-

Introdução aos Sistemas de Bancos de Dados

Page 21: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 21/147

 Francisco Alves Carneiro Banco de Dados 21

Classificação de SBDs - 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

Introdução aos Sistemas de Bancos de Dados- Classificação de Sistemas de Bancos de Dados -

Introdução aos Sistemas de Bancos de Dados

Page 22: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 22/147

 Francisco Alves Carneiro Banco de Dados 22

Classificação de SBDs - 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 - Uma classe herda as propriedades da superclasse Comportamento de objetos de uma classe - Método

Sistema de Banco de Dados Objeto-Relacional  Modelo relacional + Modelo OO

Introdução aos Sistemas de Bancos de Dados- Classificação de Sistemas de Bancos de Dados -

Page 23: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 23/147

 Francisco Alves Carneiro Banco de Dados 23

Sumário

Introdução aos Sistemas de Banco de DadosModelo 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

F

. o e o n a e- e ac onamen o

Page 24: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 24/147

 Francisco Alves Carneiro Banco de Dados 24

. o e o n a e e ac onamen o - Conceitos Básicos -

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

Princípio básico Representar dados através Entidades Relacionamentos entre as entidades Atributos  Propriedades de entidades ou relacionamentos

. o e o n a e- e ac onamen o

Page 25: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 25/147

 Francisco Alves Carneiro Banco de Dados 25

. o e o n a e e ac onamen o- Conceitos Básicos -

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, Professores

. o e o n a e- e ac onamen o

Page 26: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 26/147

 Francisco Alves Carneiro Banco de Dados 26

. o e o n a e e ac onamen o- Conceitos Básicos -

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

2. Modelo Entidade-RelacionamentoC it Bá i

Page 27: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 27/147

 Francisco Alves Carneiro Banco de Dados 27

2. Modelo Entidade Relacionamento- Conceitos Básicos -

Atributos de uma entidade (cont.)  Um atributo pode ser ainda definido como Uma função que associa um elemento do conjunto deentidades a um elemento de um conjunto de valores do

atributo (domínio do atributo)l 

l

13

Conjuntode matrículas

l

l

l

l

BárbaraConjuntode nomes

l

l

l

l

R. X, 9

Conjuntode endereçosl

l

l

lll

l

l

l

l

l

Empregados matrícula

nome

endereço

. o e o n a e- e ac onamen o

Page 28: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 28/147

 Francisco Alves Carneiro Banco de Dados 28

Atributos de uma entidade (cont.) 

Atributos chave de uma entidade Conjunto de atributos que identificam univocamente umelemento ou objeto da entidade Seja f um atributo chave para um conjunto de entidades

D, xD 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:cargo Atributo composto Atributo formado por vários atributos

Endereço, local

- Conceitos Básicos -

endereço

local cep cidade

rua número

. o e o n a e- e ac onamen oC it Bá i

Page 29: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 29/147

 Francisco Alves Carneiro Banco de Dados 29

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 Função que associa um elemento do conjunto deentidades a um subconjunto de um conjunto de valores Exemplo Para o atributo telefone podem estar associados vários

valores, como telefone residencial, comercial e celular Atributo derivado Atributo cujo valor é derivado com base no valor de um

outro atributo (atributo base) Exemplo Atributo idade pode ser derivado do atributo data_nasc

- Conceitos Básicos -

. o e o n a e- e ac onamen oC it Bá i

Page 30: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 30/147

 Francisco Alves Carneiro Banco de Dados 30

Relacionamento 

Abstração que representa associações entre diferentesconjuntos de entidades Exemplo Pode-se definir um relacionamento que associa o

empregado Bárbara com o departamento “Ciência daComputação” 

Conjunto de relacionamentos (tipo de relacionamento) 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,

- Conceitos Básicos -

. o e o n a e- e ac onamen oC it Bá i

Page 31: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 31/147

 Francisco Alves Carneiro Banco de Dados 31

Relacionamento (cont.)  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 En Seja rR, então r=(e1, e2, …, en), onde e1E1, e2E2, …, enEn, 

Exemplo Considere o conjunto de relacionamentos lotação lotação Departamento x Empregado (Bárbara, Ciência da Computação) lotação

Papel (role ) Função que uma entidade desempenha no

relacionamento

Exemplo Papel de empregado É lotado (Bábara é lotada em Ciência da Computação)

Papel de departamento Lota (Ciência da Computação lota Bárbara)

- Conceitos Básicos -

. o e o n a e- e ac onamen oC it Bá i

Page 32: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 32/147

 Francisco Alves Carneiro Banco de Dados 32

Agência_Conta-Cliente

Relacionamento (cont.)  Grau de Relacionamento

Número de entidades participantes no relacionamento Relacionamento binário Relacionamento de grau 2 Exemplo: Relacionamento aluno-disciplina

Relacionamento ternário Relacionamento de grau 3 Exemplo Relacionamento Agência-Conta-Cliente

- Conceitos Básicos -

lll

l

l

l

l

l

Cliente

l l

l

l

l

l

l

Conta

l ll

l

l

l

l

l

Agência

. o e o n a e- e ac onamen oConceitos Básicos

Page 33: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 33/147

 Francisco Alves Carneiro Banco de Dados 33

- Conceitos Básicos -

Relacionamento (cont.)  Auto-relacionamento (relacionamento recursivo) Relacionamento envolvendo um único conjunto deentidades 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

Supervisiona

l

l

l

l

Empregado

l

l

1

12

2

11

Empregado desempenha dois papéis - é-supervisionado-por (1)- é-supervisor-de (2) 

. o e o n a e- e ac onamen oConceitos Básicos

Page 34: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 34/147

 Francisco Alves Carneiro Banco de Dados 34

- Conceitos Básicos -

Relacionamento (cont.)  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 da FIC 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

2. Modelo Entidade-Relacionamento- Conceitos Básicos -

Page 35: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 35/147

 Francisco Alves Carneiro Banco de Dados 35

- Conceitos Básicos -Restrições estruturais de relacionamentos  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)

Uma entidade de A só pode estar associada a uma 

..…

entidade de B Uma entidade de B só pode estar associada a uma ..…entidade de A

Um para muitos (1:N) Uma entidade de A pode estar associada a qualquer 

..…quantidade de entidades de B Uma entidade de B só pode estar associada a uma 

..…

entidade de A Muitos para um (N:1) Uma entidade de A só pode estar associada a uma

..…entidade de B Uma entidade de B pode estar associada a qualquer 

..…quantidade de entidades de A

2. Modelo Entidade-Relacionamento- Conceitos Básicos -

Page 36: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 36/147

 Francisco Alves Carneiro Banco de Dados 36

Conceitos Básicos Restrições estruturais de relacionamentos (cont.)  Cardinalidade de relacionamento (cont.)

Muitos para muitos (N:N) 

Uma entidade de A pode estar associada a qualquer ..…quantidade de entidades de B Uma entidade de B só pode estar associada a

qualquer ..…quantidade de entidades de A

Exemplos

Cardinalidade do relacionamento lotação entreDepartamento e Empregado

Cardinalidade do relacionamento cursa entre Estudantee Disciplina

Cardinalidade do auto-relacionamento supervisiona

Cardinalidade do relacionamento que modela o fato deque cada departamento da empresa possui um gerente

1:N

N:N

1:N

1:1

. o e o n a e- e ac onamen o- Conceitos Básicos -

Page 37: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 37/147

 Francisco Alves Carneiro Banco de Dados 37

- Conceitos Básicos - Restrições estruturais de relacionamentos (cont.)  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 menosum 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

Participação parcial 

A participação de um conjunto de entidades A é parcial em umrelacionamento R, se apenas um subconjunto de entidades de Aparticipa em R

Exemplo Relacionamento cursa entre Estudante e Disciplina

. o e o n a e- e ac onamen o- Conceitos Básicos -

Page 38: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 38/147

 Francisco Alves Carneiro Banco de Dados 38

- Conceitos Básicos -

Entidade fraca  Entidade cuja existência depende de estar associada, via

um relacionamento (relacionamento de identificação), comuma 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 daempresa A existência de um dependente Bárbara Depende da existência de um empregado André e que Bárbara esteja relacionada a André através do

relacionamento dependência

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

. o e o n a e- e ac onamen o- Diagrama ER -

Page 39: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 39/147

 Francisco Alves Carneiro Banco de Dados 39

Diagrama ER

Ferramenta de projeto

Capaz de capturar e representar graficamente todaestrutura lógica de um banco de dados Utilizada para modelagem de BDs Existem ferramentas

Fornecem uma interface gráfica para odesenvolvimento de DERs A partir do DER especificado, geram o esquema do BD

relacional

ERWin DBDesigner

2. Modelo Entidade-Relacionamento- Diagrama ER -

Page 40: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 40/147

 Francisco Alves Carneiro Banco de Dados 40

Diagrama ER Notação

Nome atributo

Símbolo Representação

Conjunto de entidades

Conjunto de entidadesfracas

Conjunto de relacionamentos(relacionamento)

Relacionamento de

identificação

Atributo

2. Modelo Entidade-Relacionamento- Diagrama ER -

Page 41: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 41/147

 Francisco Alves Carneiro Banco de Dados 41

g Notação

Nome atributo

Símbolo Representação

Atributo chave

Nome atributo Atributo derivado

Nome atributo*

Nome atributo

Nome atributo Nome atributo

Atributo multivalorado

Atributo composto

2. Modelo Entidade-Relacionamento- Diagrama ER -

Page 42: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 42/147

 Francisco Alves Carneiro Banco de Dados 42

g Notação

Símbolo Representação

E1 R E21 N

Cardinalidade 1:N

R E(min,max) Restrição estrutural de

participação de E em R

E1 R E2 Participação total de E2em R

Nome atributo Atributo chave parcial deuma entidade fraca

2. Modelo Entidade-Relacionamento- Diagrama ER -

Page 43: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 43/147

 Francisco Alves Carneiro Banco de Dados 43

g Exercício

Utilize o DER para modelar o BD para o seguinte cenário A empresa X tem seus dados organizados da seguinte forma:

Os empregados estão lotados em diversos departamentos.Funcionários são diretamente chefiados por supervisores. Éimportante identificar o supervisor de cada funcionário

Todo funcionário deve estar lotado em um departamento.Nenhum funcionário pode estar lotado em mais de umdepartamento

Um departamento possui no mínimo 5 empregados, onde um

deles é o gerente do departamento. Os dependentes dos funcionários devem possuir como

atributos: nome, data-nasc. A idade limite para ser dependentede um empregado é 18 anos

O salário de um empregado é calculado com base nos seusdiversos vencimentos.

Para tipo de vencimento, existe uma descrição e o valorcorrespondente

. o e o n a e- e ac onamen o- Diagrama ER -

Page 44: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 44/147

 Francisco Alves Carneiro Banco de Dados 44

g

Empregado(5,n)

Departamento

lotação

(1,1)

(0,n)

 Vencimento

ganha

(1,n)

supervisiona

dependência

Dependente

é-supervisionado

é-supervisor

Quando um departamento for participar de lotação,terá, no mínimo, cinco empregados

(1,1) (0,n)

(0,n)

(1,1)

matr

nome

dt_nasc

dt_lotação

dt_nasc

idade

Cod_venc descrição

valor

nomegerência

(0,1)

(1,1)

. o e o n a e- e ac onamen o- Diagrama ER -

Page 45: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 45/147

 Francisco Alves Carneiro Banco de Dados 45

g

Empregado

n

Departamento

lotação

1

n

 Vencimento

ganha

n

supervisiona

dependência

Dependente

é-supervisionado

é-supervisor

n 1

n

1

matr

nome

dt_nasc

dt_lotação

dt_nasc

idade

Cod_venc descrição

valor

nomegerência

1

1

. o e o n a e- e ac onamen o- Propriedades Avançadas -

Page 46: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 46/147

 Francisco Alves Carneiro Banco de Dados 46

p ç Especialização 

Existem conjuntos de entidades compostos de subgrupos deentidades

Cada subgrupo apresenta propriedades diferentes dos outrossubgrupos Considere o conjuntos de entidades Empregado na modelagem dos

dados de um universidade Podemos identificar os seguintes subconjuntos dentro de

Empregado Professores

Titulação Universidade de titulação Regime de trabalho (DE, 40h, 20h)

Escriturários Grau de instrução  Área de atuação (contador, secretária, etc…) 

Engenheiros Especialidade

Subconjuntos diferenciados por tipo de empregado

. o e o n a e- e ac onamen o- Propriedades Avançadas -

Page 47: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 47/147

 Francisco Alves Carneiro Banco de Dados 47

Especialização (cont.) Definição

Processo de identificação de subgrupos de entidadesdentro de um conjunto de entidades Processo de especialização pode ser recursivo Um único conjunto de entidades pode ser especializado

por mais de uma característica de diferenciação(especialização) No exemplo de Empregado em uma universidade Especialização por tipo de empregado Especialização por tipo de contrato CLT Serviços prestados

Um entidade deve pertencer às várias especializações Os subgrupos identificados em um processo de especializaçãopodem participar de relacionamentos que não se aplicam atodas entidades do conjunto de entidades de origem

. o e o n a e- e ac onamen o- Propriedades Avançadas -

Page 48: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 48/147

 Francisco Alves Carneiro Banco de Dados 48

Especialização (cont.) Notação MER

Empregado

Professor Escriturário Engenheiro

ISA

titulação uni_tit

regime_tr

especialidadeGrau_ins área_atua

is a (é um) Empregado is a Professor ouEmpregado is a Escriturário ouEmpregado is a Engenheiro

. o e o n a e- e ac onamen o- Propriedades Avançadas -

Page 49: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 49/147

 Francisco Alves Carneiro Banco de Dados 49

Especialização (cont.) Herança de propriedades  Os subgrupos de entidades herdam todas as

propriedades do conjunto de entidade de mais altonível

Empregado

Professor Escriturário Engenheiro

ISA

titulação uni_tit

regime_tr

especialidadeGrau_ins área_atua

nome

dt_nascmatr

. o e o n a e- e ac onamen o- Propriedades Avançadas -

Page 50: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 50/147

 Francisco Alves Carneiro Banco de Dados 50

Especialização (cont.) É realizada sobre um único conjunto de entidades Identificar subgrupos

Ênfase nas diferenças entre entidades de um mesmosubconjunto de entidades Através dos subgrupos mais especializados

Generalização Processo de identificação de conjuntos de entidades quepossuem características em comum Mesmos atributos e participam de mesmos

relacionamentos

Formação de um único conjunto de entidades de mais altonível É realizada sobre vários conjuntos de entidades Identificar um conjunto de entidades de mais alto nível

. o e o n a e- e ac onamen o- Propriedades Avançadas -

Page 51: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 51/147

 Francisco Alves Carneiro Banco de Dados 51

Generalização (cont.) Ênfase nas similaridades entre diversos conjuntos de

entidades Redução de redundância de representação Atributos compartilhados só serão representados no

conjunto de entidades de nível mais alto

Não serão repetidos Na prática Generalização é o processo inverso da especialização

Duas estratégias que devem ser utilizadas Especializar onde for necessário

Generalizar onde for possível

. o e o n a e- e ac onamen o- Propriedades Avançadas -

Page 52: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 52/147

 Francisco Alves Carneiro Banco de Dados 52

Especificação de restrições de generalização e especialização Sejam E1, E2, …, En conjuntos de entidades de nível mais baixo que o

conjunto de entidades E

Disjunção

" 0<i,jn, i j :  Ei  E j =   Nenhuma entidade de E pode pertencer a mais de um

subgrupo

E

E1 E2 En

ISA

......

. o e o n a e- e ac onamen o- Propriedades Avançadas -

Page 53: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 53/147

 Francisco Alves Carneiro Banco de Dados 53

Especificação de restrições de generalização eespecialização Completeza Especifica se uma entidade de E tem que pertencer

obrigatoriamente a um dos conjuntos de entidades demais baixo nível ou não

Total E= Ei 

Parcial

E   Ei

n

i=1

n

i=1

. o e o n a e- e ac onamen o- Propriedades Avançadas -

Page 54: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 54/147

 Francisco Alves Carneiro Banco de Dados 54

Agregação Abstração que representa relacionamentos como

entidades Mecanismo utilizado para representar relacionamentos de

relacionamentos Exemplo

Considere a modelagem de dados em um banco BX.Clientes do BX estão relacionados a agência e conta Estratégia 1

Agência Conta

Cliente

1 n

n

. o e o n a e- e ac onamen o- Propriedades Avançadas -

Page 55: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 55/147

 Francisco Alves Carneiro Banco de Dados 55

Agregação (cont.)

Problemas na Estratégia 1 Não representa a estrutura lógica que deve sermodelada Relacionamento de cliente com o relacionamento

agência-conta

Na prática, para acessar todas as contas de umaagência Terão que ser acessadas todas triplas

(agência,conta,cliente) Uma conta pode pertencer a vários clientes

Vários acessos redundantes

. o e o n a e- e ac onamen o- Propriedades Avançadas -

Page 56: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 56/147

 Francisco Alves Carneiro Banco de Dados 56

Agregação (cont.)

Utilizar o mecanismo de agregação

n

 Agência

Cliente

Conta

n

1 n

saldonum_contacod_ag nome gerenteender

cod_cliente

nomedata-nasc

ender

CPF

data_abertura

Page 57: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 57/147

Francisco Alves Carneiro Banco de Dados 57

Bancos de Dados I

Parte II

Francisco Alves Carneiro- FIC -

Faculdade Integrada do CearáSistemas de Informação 

[email protected]

Sumário

Page 58: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 58/147

 Francisco Alves Carneiro Banco de Dados 58

Sumário

Introdução aos Sistemas de Banco de DadosModelo de Entidades e Relacionamentos Bancos de Dados RelacionaisO Modelo Relacional

Modelagem de DadosÁlgebra RelacionalLinguagem de Manipulação e Consulta

Projeto de Bancos de Dados Relacionais Projeto Lógico de Bancos de Dados

F

Sumário

Page 59: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 59/147

 Francisco Alves Carneiro Banco de Dados 59

Sumário

Introdução aos Sistemas de Banco de Dados Projeto de Bancos de Dados Relacionais  Bancos de Dados Relacionais

O Modelo RelacionalModelagem de DadosÁlgebra RelacionalLinguagem de Manipulação e Consulta

Projeto Lógico de Bancos de Dados

F

3. Modelo Relacional- Introdução -

Page 60: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 60/147

 Francisco Alves Carneiro Banco de Dados 60

Proposto em 1970 por Codd

IBM Consolidou-se como principal modelo de dados para

aplicações comerciaisModelo de dados para Bancos de Dados Relacionais

SBDs relacionaisDB2 (IBM) InformixADABAS

SybaseOracleSQL Server (Microsoft)

3. Modelo Relacional- Estrutura de um Banco de Dados Relacional -

Page 61: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 61/147

 Francisco Alves Carneiro Banco de Dados 61

Um banco de dados relacional consisteUm conjunto de tabelasRelações

TabelasConjunto de linhasTuplas

LinhasConjunto de colunasNome das colunasAtributos

matr  nome cpf end dt-nasc

1 1 231 R X, 50 20000102

2 1 451 R Y, 1 19991001

3 1 472 R V, 502 19990510

3 2 549 R Z, 501 19980601

3 3 465 R A, 501 20000203

Estudante

3. Modelo Relacional- Conceitos Básicos -

Page 62: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 62/147

 Francisco Alves Carneiro Banco de Dados 62

DomínioConjunto de valores permitidos para um atributo

Valores são atômicosIndivisíveisExemplo: Domínio do atributo matrícula

Conjunto de todos os valores válidos de matrículadom(A) denota o domínio do atributo ATipo de dados e formato

Utilizados para especificar um domínioExemplo: telefonetipo char com formato (ddd)ddd-dddddom(telefone) representa o conjunto de valores atômicos

válidos para o tipo char e formato especificado O atributo Ai é um papel de D no esquema de R Grau de R = número de Ai

3. Modelo Relacional- Conceitos Básicos -

Page 63: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 63/147

 Francisco Alves Carneiro Banco de Dados 63

Esquema de relaçãoUtilizado para descrever uma relação

Representado por R(A1, A2, …, An), ondeR é nome de uma relação eA1, A2, …, An uma lista de atributos

3. Modelo Relacional- Conceitos Básicos -

Instância de Relação

Page 64: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 64/147

 Francisco Alves Carneiro Banco de Dados 64

Instância de RelaçãoSeja o esquema de relação R(A1, A2, …, An)Um instância de relação (ou relação) para este esquemar(R)={t1, t2, …, tk}Cada ti representa uma n-tupla de n valores

<v1, v2, …, vn>, onde cada v j  dom(A j), 0<jn r representa a extensão para Rr contém os dados

R descreve os dados armazenados em r RelaçãoSeja r uma relação com esquema R r(R) dom(A1) x dom(A2) x dom(A3) x … x dom(An)r(R) é um subconjunto do produto cartesiano dos

domínios dos atributos que definem Rcada tupla de r(R) relaciona valores dos vários domíniosr é uma relação (matemática)

r(R) representa um conjunto de tuplas

3. Modelo Relacional- Conceitos Básicos -

Esquema de um banco de dados relacional

Page 65: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 65/147

 Francisco Alves Carneiro Banco de Dados 65

Esquema de um banco de dados relacional Conjunto de esquemas de relação mais um conjunto de restrições de

integridade IC

S={R1, R2, …, Rn} e um conjunto de restrições de integridade IC Instância de um banco de dados relacional

Seja o esquema S Uma instância DB para o esquema S

DB={r1, r2, …, r n} , ondeCada r

ié uma instância de relação de R

ie

Cada ri satisfaz as restrições de integridade especificadas em IC Exercício

Considere uma banco de dados relacional DBR com as relaçõesEmpregado e Departamento

Construa um esquema S e mostre uma possível instância para DBR

3. Modelo Relacional- Conceitos Básicos -

R t i õ d d l l i l

Page 66: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 66/147

 Francisco Alves Carneiro Banco de Dados 66

Restrições do modelo relacional  Restrição de domínio

O valor de cada atributo ATem que ser um valor atômico de dom(A) Restrição de Chave

Uma relação é definida como um conjunto de tuplasElementos de um conjunto são distintos entre si

Tuplas de uma relação têm que serem distintas entre si 

Duas tuplas em uma relação não podem ter a mesmacombinação de valores para seus atributosGeralmente existe um subconjunto SC de atributos em um

esquema de relação RTodas as tuplas de qualquer instância r(R) apresentam uma

combinação diferente de valores para os atributos de SC " t

i

, t j

  r 0<i,jn, i j : ti

[SC] t j

[SC]Super chave (superkey) 

3. Modelo Relacional- Conceitos Básicos - Restrições do modelo relacional (cont )

Page 67: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 67/147

 Francisco Alves Carneiro Banco de Dados 67

Restrições do modelo relacional (cont.) Restrição de Chave (cont.)

Super chave pode apresentar atributos redundantes

Empregado(matr,nome,ender,cpf)matr e cpf são atributos da super chaveApenas matr ou apenas cpf

- condição necessária e suficiente para garantir a nãoexistência de tuplas repetidas

Chave (key) Super chave sem atributos redundantesPara Empregado existem duas possíveis chavesmatr ou cpf

Chave candidata (candidate key) Atributos da super chave que podem funcionar como chave da

relaçãoChave primária (primary key)

Chave candidata escolhida como chave da relaçãoIdentifica tuplas em uma relaçãoGarante a unicidade de uma tupla na relação

3. Modelo Relacional- Conceitos Básicos -

Page 68: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 68/147

 Francisco Alves Carneiro Banco de Dados 68

Restrições do modelo relacional (cont.)Restrição de Integridade de EntidadeEspecifica que nenhuma chave primária pode ter valor

nulo (null )Garante que a chave primária identifique tuplas em uma

relaçãoRestrição de Integridade Referencial

Sejam dois esquemas de relação R e SUm conjunto de atributos FK de um esquema de relação

R é chave estrangeira (foreign key) em R seOs atributos em FK têm o mesmo domínio que a chave

primária PK de um outro esquema de relação S, e 

Um valor de FK em uma tupla t1 de r(R)Ou ocorre em como valor de PK para uma tupla t2 em s(S)t1[FK] = t2[PK]

ou é nulo t1 referencia a tupla t2 

3. Modelo Relacional- Conceitos Básicos -

Page 69: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 69/147

 Francisco Alves Carneiro Banco de Dados 69

Restrições do modelo relacional (cont.)Restrição de Integridade Referencial (cont.)Exemplo: Considere o seguinte esquema de banco de

dadosDepartamento(cod_depart, nome, ender)Empregado(matr, nome, ender, cpf, lotação)

Se lotação referenciar cod_depart, então lotação é chave

estrangeira em EmpregadoDeve ser garantido que o valor de lotação ou seja nulo oureferencie um valor existente em DepartamentoIntegridade referencialAtualmente é garantida automaticamente pelos SGBD

existente no mercado

3. Modelo Relacional- Conceitos Básicos -

Page 70: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 70/147

 Francisco Alves Carneiro Banco de Dados 70

Restrições do modelo relacional (cont.)Restrição de Integridade Referencial (cont.)Exemplo: Considere o seguinte esquema de banco dedados

Departamento(cod_depart, nome, ender)Empregado(matr, nome, ender, cpf, lotação)

Create table Departamento(cod_depart integer not null,nome varchar(30) not null,ender varchar(30),primary key (cod_depart))

Create table Empregado(matr integer not null,nome varchar(30) not null,ender varchar(30),cpf integer not null,lotação integer not null,primary key (matr),

unique key (cpf),foreign key (lotação) referencesDepartamento on delete cascade)

3. Modelo Relacional- Operações de Atualização -

Page 71: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 71/147

 Francisco Alves Carneiro Banco de Dados 71

Insere t em r(R)Lista de valoresPode violar:

Restrição de domínioRestrição de chaveIntegridade existencialIntegridade referencial

TratamentoRejeitar a inclusãoSolicitar novas informações

Inclusão

3. Modelo Relacional- Operações de Atualização -

Page 72: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 72/147

 Francisco Alves Carneiro Banco de Dados 72

Exclui t em r(R)Condição sobre valores de atributosPode violar:

Integridade referencialTratamento

Rejeitar a exclusãoPropagação em cascata

Mudar fk em R‟ que referencia R 

Exclusão

3. Modelo Relacional- Operações de Atualização -

Page 73: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 73/147

 Francisco Alves Carneiro Banco de Dados 73

Modifica t[A1,A2,...,Ak] em r(R)Condição sobre valores de atributosAlguns SGBDs: update=delete+insert 

Violação + tratamento:Depende do atributo modificadoDomínio para qualquer atributoPK = exclusão + inclusão

FK = verificar integridade referencial

Modificação

4. Projeto de Bancos de Dados- Fases -Mini-mundo(mundo real)

Page 74: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 74/147

 Francisco Alves Carneiro Banco de Dados 74

Análise deRequisitos

ProjetoConceitual

Projeto Lógico(mapeamento demodelo de dados)

Projeto Físico

Requisitos de dados

Esquema Conceitual (MER)

Esquema Conceitual representadono modelo de dados do SGBD

Análise

Funcional

Projeto(Software)

Implementação

Independentedo SGBD

Específico paracada SGBD

Implementação

Estruturas de armazenamentoe caminhos de acesso (índices)

Expressões DDL e carga do BD

4. Projeto de Bancos de Dados- Fases -

Análise (especificação) de requisitos

Page 75: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 75/147

 Francisco Alves Carneiro Banco de Dados 75

Análise (especificação) de requisitosProjetista de banco de dados deve realizar entrevista com

usuários prospectivos do banco de dadosEntender e documentarRequisitos de dados

Projeto conceitualCom base nos requisitos de dados

Criar um esquema conceitual para o banco de dadosModelo de dados conceitualMERConstruir um DER

Projeto lógicoCom base no DER definido na fase anteriorCriar um diagrama relacionalRepresentação gráfica de um esquema relacional

4. Projeto de Bancos de Dados- Fases - Projeto Físico

Definir estruturas de armazenamento

Page 76: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 76/147

 Francisco Alves Carneiro Banco de Dados 76

Definir estruturas de armazenamentoComo e onde devem ser armazenadas as tabelasUma tabela em um arquivo

Várias tabelas em um único arquivo Definir caminhos de acessoDefinir índicesDefinir tipo de índiceOrdenado

PrimárioSecundário

Hash Utilizar critérios de performanceEspecífico por SGBD

Implementação Com base no DR definido na fase 3 e as estruturas de armazenamento

e caminhos de acesso definidos na fase anteriorCriar o banco de dadosExpressões DDL

Carregar o BD

4. Projeto de Bancos de Dados- Mapeamento do MER para um Banco de Dados Relacional -

Page 77: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 77/147

 Francisco Alves Carneiro Banco de Dados 77

Ferramentas CASE

Modelagem ER gráficaGeração automática de esquema (DDL)

Algoritmo de mapeamentoSete passos

4. Projeto de Bancos de Dados- Mapeamento do MER para um Banco de Dados Relacional -

Diagrama relacional (DR)

Page 78: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 78/147

 Francisco Alves Carneiro Banco de Dados 78

Diagrama relacional (DR)Ferramenta gráfica utilizada para representar um

esquema de banco de dados relacional A partir de um DER, pode-se construir um DR comodescrito a seguirPasso 1Para cada conjunto de entidades E, deve ser criada

uma tabela como todos os atributos de EEscolher uma chave candidata para ser a chave primáriada tabelaApenas os componentes atômicos de atributos

compostos devem ser incluídosNotação de tabela no DR

Nome daTabela

4. Projeto de Bancos de Dados- Mapeamento do MER para um Banco de Dados Relacional -

Passo 2

Page 79: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 79/147

 Francisco Alves Carneiro Banco de Dados 79

Passo 2Para cada relacionamento binário 1:1 entre os

conjuntos de entidades E1 e E2Escolher uma das tabelas, por exemplo E2, e incluir

como chave estrangeira em E2 a chave primária da outratabela (E1)Critério de escolha

>> Entidade com participação total no relacionamentoAtributos de relacionamentos devem ser incluídos na

tabela com chave estrangeiraNotação

E1 E2

PK

PK

Passo 3

4. Projeto de Bancos de Dados- Mapeamento do MER para um Banco de Dados Relacional -

Page 80: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 80/147

 Francisco Alves Carneiro Banco de Dados 80

Passo 3Para cada relacionamento binário 1:N entre os

conjuntos de entidades E1 e E2Identificar o conjunto de entidades que participa do lado

N (suponha que seja E2)Incluir como chave estrangeira na tabela E2 a chave

primária da outra tabela (E1)

Atributos de relacionamentos devem ser incluídos natabela com chave estrangeira

Notação

E1 E2PK

4. Projeto de Bancos de Dados- Mapeamento do MER para um Banco de Dados Relacional -

Passo 4

Page 81: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 81/147

 Francisco Alves Carneiro Banco de Dados 81

Passo 4Para cada relacionamento binário N:N entre os

conjuntos de entidades E1 e E2Criar uma nova tabela auxiliar tab-aux para representar o

relacionamentoIncluir como chaves estrangeiras na tabela tab-aux as

chaves primárias de E1 e E2Estes dois atributos comporão a chave primária de tab-aux

Atributos de relacionamentos devem ser incluídos natabela tab-aux

Notação

E1 E2Tab-aux

PK-E1 PK-E2

PK-E1PK-E2

4. Projeto de Bancos de Dados- Mapeamento do MER para um Banco de Dados Relacional -

Passo 5

Page 82: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 82/147

 Francisco Alves Carneiro Banco de Dados 82

Para relacionamento de grau maior que 2

Criar uma nova tabela auxiliar tab-aux para representar orelacionamento

Incluir como chaves estrangeiras na tabela tab-aux as chavesprimárias das tabelas que participam do relacionamentoEstes atributos comporão a chave primária de tab-aux

Passo 6Para cada conjunto de entidades fracas F

Cria uma tabela TFr com todos os atributos de FIncluir como chave estrangeira de TF a chave primária da

tabela correspondentes ao conjunto de entidades fortes RA chave primária de TFr será a chave parcial de F mais a

chave primária de R

4. Projeto de Bancos de Dados- Mapeamento do MER para um Banco de Dados Relacional -

Passo 7

Page 83: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 83/147

 Francisco Alves Carneiro Banco de Dados 83

Para cada atributo multivalorado A de um conjunto de

entidades E1Criar uma tabela T com o atributo AIncluir como chave estrangeira em T a chave primária de

E1A chave primária de T será composta do atributo A mais

a chave primária de E1

4. Projeto de Bancos de Dados- Mapeamento do MER para um Banco de Dados Relacional -

Exercício

Page 84: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 84/147

 Francisco Alves Carneiro Banco de Dados 84

Construa o DR para o seguinte DER

n

 Agência

Cliente

Conta

n

1 n

saldonum-contacod-ag nome gerenteender

cod-cliente

nomedata-nasc

ender

CPF

data_abertura

4. Projeto de Bancos de Dados- Mapeamento do MER para um Banco de Dados Relacional -cod-ag nome gerenteender saldonum-conta

Page 85: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 85/147

 Francisco Alves Carneiro Banco de Dados 85

 Agência Conta

data-abert

Cliente

cod-cliente

nomedata-nasc

ender

CPF

cod_ag

AG_CC

Cliente_Conta

cod-ag, num-contatipo-conta

cod-ag num-conta

cod-cliente

3. Modelo Relacional- Estudo de caso -

Page 86: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 86/147

 Francisco Alves Carneiro Banco de Dados 86

A cada pedido está associado um ou mais produtos e pertence asomente um cliente;

Os produtos são adquiridos em mais de um fornecedor; Há fornecedores cadastrados que poderão não estar fornecendo

produtos;

Os fornecedores poderão ser locais ou estaduais; Para os fornecedores estaduais faz-se necessário indicar o estado de

origem, a taxa de ICMS do estado, o tempo previsto para entrega e o tipode transporte utilizado (aéreo, terrestre ou marítimo).

Elabore o projeto lógico da aplicação acima descrita,considerando que cada entidade tem no mínimo 4 atributosfundamentais e execute o mapeamento para implementação emum BD relacional.

Controle de Fornecimento – Semântica da aplicação

3. Modelo Relacional- Álgebra Relacional -

Page 87: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 87/147

 Francisco Alves Carneiro Banco de Dados 87

O resultado de uma operaçãoop(r‟)  r‟‟ 

Grupos de operaçõesOperações relacionaisSeleção; projeção; junção

Operações de conjunto

União; interseção; diferença; produto cartesianoOperações especiais

Coleção de operações usadas para manipular relações

3. Modelo Relacional- Álgebra Relacional -

Linguagem de consulta para bancos de dadosl i i

Page 88: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 88/147

 Francisco Alves Carneiro Banco de Dados 88

relacionais

Relação Consulta Relação

Coleção de operadores sobre relações Desenvolvida por Codd Linguagem procedimental Operações básicasSeleção (s)

Projeção (P)União ()Diferença (-)Produto cartesiano (x)

Operações unárias

Operações binárias

3. Modelo Relacional- Álgebra Relacional [Operações Básicas] -

Operação de seleção Seleciona um subconjunto de tuplas de uma relação

Page 89: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 89/147

 Francisco Alves Carneiro Banco de Dados 89

j p çCom base em um predicado

Notação

sP (r)r é uma relação eP representa um predicado (condição de seleção)

Predicados são construídos através de átomosÁtomost[Ai  ] q t[Ak  ] , t   r e Ai  e Ak  são atributos de r.

t[Ai  ] q k, onde k é uma constanteO símbolo q denota um operador de comparação

=, , >, , <,  Átomos podem ser conectados por (and),  (or),  (not)

Regras para construção de fórmulasTodo átomo é uma fórmulaSe P1 e P2 são fórmulas

 P1  P2, P1 P2 e P1 também são fórmulas

Os atributos devem possuir domínios iguais

3. Modelo Relacional- Álgebra Relacional [Operações Básicas] -

Operação de seleção (cont.)Exemplo

Page 90: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 90/147

 Francisco Alves Carneiro Banco de Dados 90

ExemploConsidere a relação EmpregadoEmpregado(matr, nome, ender, cpf, salário, lotação)

Listar todos os empregados que ganham salário maiorque 5000 ssalário>5000 (Empregado)

Listar todos os empregados do departamento com

código igual a 002 e que ganham salários maior que5000

Listar todos os empregados não lotados no

departamento com código igual a 002 e que ganhamsalários entre 5000 e 10000

3. Modelo Relacional- Álgebra Relacional [Operações Básicas] -

Operação de seleção (cont.)

Page 91: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 91/147

 Francisco Alves Carneiro Banco de Dados 91

Propriedade da seleção

sq1q2(r)  sq1(sq2(r))

sq1(sq2(r))  sq2(sq1(r))Comutatividade da operação de seleção

3. Modelo Relacional- Álgebra Relacional [Operações Básicas] -

Operação de ProjeçãoS l i b j t d t ib t d l ã

Page 92: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 92/147

 Francisco Alves Carneiro Banco de Dados 92

Seleciona um subconjunto de atributos de uma relação

NotaçãoPAi1, Ai2,…, Ain 

(r)r é uma relação com esquema R(A1, A2, …, An){Ai1

, Ai2, …, Ain

} {A1, A2, …, An}Projeção de R sobre os atributos Ai

1

, Ai2

, …, Ain

 ExemploListar o nome e salário de todos os funcionáriosPnome, salário

 (Empregado)

Listar nome e salário de todos os empregado queganham salário maior que 9000

ProjeçãoFiltro de atributosSeleção Filtro de tuplas

3. Modelo Relacional- Álgebra Relacional [Operações Básicas] -

Operação de União

Page 93: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 93/147

 Francisco Alves Carneiro Banco de Dados 93

Executa a união de duas relações compatíveisDuas relações com esquemas R(A1, A2, …, An) e

S(B1, B2, …, Bn) são compatíveis Apresentam o mesmo número de atributosdom(Ai)= dom(Bi), 0<in

Notaçãor s

ExemploConsidere as seguintes relaçõesEmpregado(matr, nome, ender, dt-nasc, cpf, salário, lotação)Dependente(nome-dep, data-nasc, matr-resp)

Liste o nome e data de nascimento de todos osfuncionários e dependentes existentes na empresa

Pnome, dt-nasc (Empregado) Pnome-dep, data-nasc

 (Dependente)

3. Modelo Relacional- Álgebra Relacional [Operações Básicas] -

Operação de Diferença

Page 94: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 94/147

 Francisco Alves Carneiro Banco de Dados 94

O resultado da operação r - s é uma relação que contém

todas as tuplas de r que não pertencem a sr e s são relações compatíveis

ExemploConsiderando que na empresa só existam as relações

Empregado e Dependente que referem-se a pessoas,execute a seguinte consulta. Listar nomes deempregados, desde que não existam dependentes commesmo nomePnome

 (Empregado) - Pnome-dep

 (Dependente)

3. Modelo Relacional- Álgebra Relacional [Operações Básicas] -

Operação de Produto CartesianoSejam r e s relações com esquemas R(A A A ) e

Page 95: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 95/147

 Francisco Alves Carneiro Banco de Dados 95

Sejam r e s relações com esquemas R(A1, A2, …, An) e

S(B1, B2, …, Bm), respectivamenteResultado da operação r x s é uma relaçãoT(r.A1, r.A2, …, r.An, s.B1, s.B2, …, s.Bm)com n+m atributoscada tupla de T é uma combinação entre uma tupla de

r e uma tupla de stT  $v r e $u s, tal que t[Ai]=v[Ai], 0<in, e

t[B j]=u[B j], 0<jmSe a cardinalidade de r é nr tuplas e a cardinalidade s é

ns tuplas

A cardinalidade de T é nr* ns 

3. Modelo Relacional- Álgebra Relacional [Operações Básicas] - Operação de Produto Cartesiano (cont.)ExemploSejam r e s mostradas abaixo Calcule r x s

Page 96: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 96/147

 Francisco Alves Carneiro Banco de Dados 96

Sejam r e s mostradas abaixo. Calcule r x s

A B

a1 b1a1 b2

a2 b1

A B C

a1 b1 c1a2 b3 c3

a2 b1 c4

r.A r.B s.A s.B s.C

a1 b1 a1 b1 c1

a1 b1 a2 b3 c3

a1 b1 a2 b1 c4a1 b2 a1 b1 c1

a1 b2 a2 b3 c3

a1 b2 a2 b1 c4

a2 b1 a1 b1 c1

a2 b1 a2 b3 c3

a2 b1 a2 b1 c4

r s r x s

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] -

Operação de junção theta (theta-join )Sejam r e s relações com esquemas R(A A A ) e

Page 97: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 97/147

 Francisco Alves Carneiro Banco de Dados 97

r condição s = scondição (r x s)condição de junção é da formar.Ag q s.Bi r.Ah q s.Bk... r.Am q s.BL  Para cada r.Ai q s.B j, dom(r.Ai) = dom(s.BJ) eq{=, , >, , <, } 

Sejam r e s relações com esquemas R(A1, A2, …, An) e

S(B1, B2, …, Bm), respectivamenteO resultado da operação junção theta entre r e s é uma

relação T(r.A1, r.A2, …, r.An, s.B1, s.B2, …, s.Bm) definidapor

cada tupla de T é uma combinação entre uma tupla der e uma tupla de s, sempre que a combinação satisfaçacondição de junção

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] - Operação de junção theta (cont.)ExemploSejam r e s mostradas abaixo Calcule T= r s

Page 98: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 98/147

 Francisco Alves Carneiro Banco de Dados 98

Sejam r e s mostradas abaixo. Calcule T= r s

A B

a1 b1a1 b2

a2 b1

A B C

a1 b1 c1a2 b3 c3

a2 b1 c4

r.A r.B s.A s.B s.C

a1 b1 a2 b3 c3

a1 b2 a1 b1 c1

a1 b2 a2 b3 c3

a1 b2 a2 b1 c4

a2 b1 a2 b3 c3

r s T

r.B s.B

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] -

Operação de Junção de Igualdade (Equijoin )O ã d j ã th t j d d ã

Page 99: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 99/147

 Francisco Alves Carneiro Banco de Dados 99

Operação de junção theta, cujo operador de comparação

é a igualdade (=)Sejam r e s relações com esquemas R(A1, A2, …, An) e

S(B1, B2, …, Bm), respectivamenteO resultado da operação junção de igualdade entre r e s é

uma relação T(r.A1, r.A2, …, r.An, s.B1, s.B2, …, s.Bm)definida porr condição s = scondição (r x s)condição de junção é da formar.Ag = s.Bi r.Ah = s.Bk  …  r.Am = s.BL  Para cada r.Ai=s.BJ, dom(r.Ai) = dom(s.BJ)

Operação de Junção de Igualdade (cont.)Exemplo

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] -

Page 100: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 100/147

 Francisco Alves Carneiro Banco de Dados 100

pConsidere as relações Departamento (d) e Empregado (e) mostradas

abaixo. Calcule a seguinte junção de igualdadeDepartamento Empregado

cod-dep nome ender  gerente 

1 Informática R. X,10 21

2 R. Humanos R. Y,5 113 Financeiro R. Z. 2 40

DepartamentoMatr  Nome cpf salário lotação

11 Bárbara 231 8000 2

21 André 451 9000 133 Sofia 472 3000 2

35 Lucas 549 500 2

37 Rebeca 465 400 3

40 Caio 555 800 1

57 Yasmin 800 400 1

Empregado

d.cod-dep=e.lotação

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] -

Operação de Junção de Igualdade (cont.)Exemplo

Page 101: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 101/147

 Francisco Alves Carneiro Banco de Dados 101

p

Para cada empregado, listar seu nome e onome do departamento onde está lotado. 

e.matr e.nome e.cpf e.salário e.lotação

21 André 451 9000 1

40 Caio 555 800 1

57 Yasmin 800 400 1

11 Bárbara 231 8000 2

33 Sofia 472 3000 235 Lucas 549 500 237 Rebeca 465 400 3

d.cod-dep d.nome d. ender d. gerente 

1 Informática R. X,10 21

1 Informática R. X,10 21

1 Informática R. X,10 21

2 R. Humanos R. Y,5 11

2 R. Humanos R. Y,5 112 R. Humanos R. Y,5 11

3 Financeiro R. Z. 2 40

Departamento Empregadod.cod-dep=e.lotação

Pe.nome,d.nome (Departamento Empregado)d.cod-dep=e.lotação

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] - Operação de Junção Natural (Natural Join )

Operação de junção de igualdadeTodos os com o mesmo nome nas duas relações

Page 102: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 102/147

 Francisco Alves Carneiro Banco de Dados 102

çParticipam obrigatoriamente da condição de junção

Envolvidos no operador de comparação (=)Aparecem só uma vez na relação resultado

Sejam r e s relações com esquemasR(A1, A2, …, An, B1, B2, …, Bi) e

S(B1, B2, …, Bi, C1, C2, …, Cm), respectivamente O resultado da operação junção natural entre r e s é uma relação T(r.A1,

r.A2, …, r.An,B1, B2, …, Bi,s.C1, s.C2, …,s.Cm) definida por

r condição s = scondição (r x s)

condição de junção é da formar.B1 = s.B1 r.B2 = s.B2  …  r.Bi = s.BiNotaçãor s

Operação de Junção Natural (cont.)Exemplo

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] -

Page 103: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 103/147

 Francisco Alves Carneiro Banco de Dados 103

Considere as relações Departamento (d) e Empregado (e) mostradas

abaixo. Calcule a seguinte junção de igualdadeDepartamento Empregado

cod-dep nome ender  gerente 

1 Informática R. X,10 21

2 R. Humanos R. Y,5 113 Financeiro R. Z. 2 40

DepartamentoMatr  Nome cpf salário cod-dep

11 Bárbara 231 8000 2

21 André 451 9000 133 Sofia 472 3000 2

35 Lucas 549 500 2

37 Rebeca 465 400 3

40 Caio 555 800 1

57 Yasmin 800 400 1

Empregado

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] -

Operação de Junção de Igualdade (cont.)Exemplo

Page 104: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 104/147

 Francisco Alves Carneiro Banco de Dados 104

e.matr e.nome e.cpf e.salário 

21 André 451 9000

40 Caio 555 800

57 Yasmin 800 400

11 Bárbara 231 8000

33 Sofia 472 300035 Lucas 549 50037 Rebeca 465 400

d.cod-dep d.nome d. ender d. gerente 

1 Informática R. X,10 21

1 Informática R. X,10 21

1 Informática R. X,10 21

2 R. Humanos R. Y,5 11

2 R. Humanos R. Y,5 112 R. Humanos R. Y,5 11

3 Financeiro R. Z. 2 40

Departamento Empregado

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] -

Operação de Semi-Junção (Semi-join )Definida por

Page 105: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 105/147

 Francisco Alves Carneiro Banco de Dados 105

Definida por

r s = PR (r s)q

Operação de InterseçãoO resultado da operação r s é uma relação que contémtodas as tuplas de r e que pertencem a sr e s são relações compatíveis

O resultado de r s é definido por

r s= r - (r-s)

q representa uma condição de junção qualquer

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] -

Operação de divisãoSejam r e s relações com esquemas

R(A A A B B B ) e

Page 106: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 106/147

 Francisco Alves Carneiro Banco de Dados 106

R(A1, A2, …, An, B1, B2, …, Bm) e

S(B1, B2, …, Bm), respectivamenteResultado da operação r s É uma relação T(A1, A2, …, An), onde, para uma tupla v

pertencer a T, todos os valores de v precisam aparecerem R em associação com toda tupla de S

Exemplo 1

A B C

a1 b1 c1a1 b3 c1

a1 b3 c2a1 b3 c3

a2 b2 c3

r

C

c1

c2c3

s

A B

a1 b3

r s

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] - Operação de divisão (cont.)Exemplo 2

r

Page 107: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 107/147

 Francisco Alves Carneiro Banco de Dados 107

A B Ca1 b1 c1a1 b3 c1

a2 b3 c1

a2 b3 c2

a2 b1 c1a2 b1 c2

r

C

c1c2

s A B

a2 b3a2 b1

r s

Exemplo 3Considere a relação r do exemplo 2 e a relação s abaixo.

Calcule r s

B C

b3 c1

s A

a1a2

r s 

3. Modelo Relacional- Álgebra Relacional [Operações Derivadas] - Operação de divisão (cont.)ExemploConsidere as tabelas Emp-Desc(matr,cod-desc) e

Page 108: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 108/147

 Francisco Alves Carneiro Banco de Dados 108

Co s de e as tabe as p esc( at ,cod desc) e

Desconto(cod-desc,valor,descrição), ondeA tabela Emp-Desc relaciona os empregados com osdiversos descontos que é obrigado a pagar

matr Cod-desc

11 2

11 315 1

15 2

15 3

17 2

Emp-Desc

Exercício:Utilizando a definição de divisão, mostrar passo a passo como éencontrado os empregados que têm descontados de seu salário todosos tipos de descontos possíveis

Cod-desc Valor descrição

1 10 IR2 8 INSS

3 5 seguro

Desconto

3. Modelo Relacional- Álgebra Relacional [Outras Operações] - Funções Agregadas

Funções aplicadas sobre uma coleção de valores do banco de dados sum

R t tó i d l d l ã

Page 109: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 109/147

 Francisco Alves Carneiro Banco de Dados 109

Retorna o somatório dos valores de uma coleção avg

Retorna a média dos valores de uma coleção max

Retorna o maior valor de uma coleção de valores min

Retorna o menor valor de uma coleção

countRetorna o número de elementos de uma coleção

distinctAlgumas vezes, torna-se necessário eliminar repetições para o

cálculo das funções agregadasConcatena-se a palavra distinct após o nome da função

3. Modelo Relacional- Álgebra Relacional [Outras Operações] - Funções Agregadas (cont.)

ExemplosConsidere a relaçãoEmpregado(matr nome ender salário cpf lotação)

Page 110: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 110/147

 Francisco Alves Carneiro Banco de Dados 110

Empregado(matr, nome, ender, salário, cpf, lotação)

matr é a chave primária de EmpregadoEncontre o número de empregados lotados no departamento 001count(Pmatr(slotação=001 (Empregado)))

Encontre o maior salário da empresamax(Psalário(Empregado))

Encontre o salário médio da empresaavg-distinct(Psalário(Empregado))

Encontre a quantidade de salários distintos no departamento001count-distinct(Psalário(slotação=001 (Empregado)))

Encontre o primeiro e segundo maiores salários da empresa

3. Modelo Relacional- Álgebra Relacional [Outras Operações] -

Operação de Junção Externa (outer-join)Considere as seguintes relaçõesV d d ( t d lá i f l t ã )

Page 111: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 111/147

 Francisco Alves Carneiro Banco de Dados 111

Vendedor(matr, nome, ender, salário, cpf, lotação)Vendas(matr-vend,cod-item,quantidade, pr-venda)

Considere a seguinte consultaListar o histórico de vendas de cada vendedorEsquema do resultadoRes(matr,nome,cod-item,quantidade,pr-venda)

PRes(Vendedor Vendas)

Consulta com perda de informaçãoNão aparecerão no resultadoVendedores que não efetuaram vendas

Definir uma operação que evite esta perda de informaçãoOuter join Adicionar tuplas extras ao resultado de uma junção

natural

3. Modelo Relacional- Álgebra Relacional [Outras Operações] -

Operação de outer-join (cont.)Tipos

Page 112: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 112/147

 Francisco Alves Carneiro Banco de Dados 112

Junção externa à esquerda (left outer join)Junção externa à direita (right outer join)Junção externa completa (full outer join)

left outer join Notação

A  BCalcula o resultado da junção de A com BAdiciona ao resultado da junçãoTuplas da relação à esquerda (A) que não satisfazem a

condição de junção

Atribui valores nulos aos atributos não definidos para estastuplas

3. Modelo Relacional- Álgebra Relacional [Outras Operações] -

Operação de outer-join (cont.) left outer join (cont.)

Page 113: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 113/147

 Francisco Alves Carneiro Banco de Dados 113

Considere as seguintes relaçõesVendedor(matr, nome, salário)Vendas(matr,cod-item,qtde, pr-venda)

Listar o histórico de vendas de cada vendedor

matr nome salário11 Bárbara 500014 André 7000

15 Sofia 3000

17 Caio 500

19 Lucas 70021 Camila 900

Vendedor

matr cod-item qtde pr-venda

11 72727 160 2.0011 545 50 15.50

14 545 87 15.50

21 13 10 8.75

Vendas

3. Modelo Relacional- Álgebra Relacional [Outras Operações] -

Operação de outer-join (cont.) left outer join (cont.) 

Page 114: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 114/147

 Francisco Alves Carneiro Banco de Dados 114

Listar o histórico de vendas de cada vendedorVendedor Vendas

matr nome salário cod-item qtde pr-venda

11 Bárbara 5000 72727 160 2.0011 Bárbara 5000 545 50 15.50

14 André 7000 545 87 15.50

15 Sofia 3000 Null Null Null  

17 Caio 500 Null Null Null  

19 Lucas 700 Null Null Null  

21 Camila 900 13 10 8.75

3. Modelo Relacional- Álgebra Relacional [Outras Operações] -

Operação de outer-join (cont.) right outer join Notação

Page 115: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 115/147

 Francisco Alves Carneiro Banco de Dados 115

NotaçãoA B

Calcula o resultado da junção de A com BAdiciona ao resultado da junçãoTuplas da relação à direita (B) que não satisfazem a

condição de junçãoAtribui valores nulos aos atributos não definidos para estas

tuplas full outer join NotaçãoA B

Calcula o resultado da junção de A com B

Adiciona ao resultado da junçãoTuplas das relações A e B que não satisfazem a condiçãode junção

Atribui valores nulos aos atributos não definidos para estastuplas

5. SQL- Histórico -

Structured Query Language - SQLDesenvolvida pela IBM

Page 116: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 116/147

 Francisco Alves Carneiro Banco de Dados 116

Structured English Query Language - SequelLinguagem de consulta para o sistema RPrimeiro protótipo de SBD relacional

Especificar consultas de forma interativa

ad hoc queries PadrãoANSISQL 86SQL 89

SQL 92SQL 99Propriedade de SBDs objeto-relacional

5. SQL- Definição de Esquemas em SQL -

Esquema de um banco de dados relacionalConjunto de esquemas de relação mais um conjunto de

restrições de integridade IC

Page 117: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 117/147

 Francisco Alves Carneiro Banco de Dados 117

ç g

Expressões DDL do SQL permitem especificarEsquema de relações(tabelas)Domínio de valores associados a cada atributoRestrições de integridade

Conjunto de índices a serem mantidos para cada relaçãoEstrutura de armazenamento físico de cada relação em

discoAutorização de acesso para cada relação

5. SQL- Definição de Esquemas em SQL -

Criando tabelas (cont.)Alguns tipos de dados suportados pelo SQL 92char(n)

Page 118: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 118/147

 Francisco Alves Carneiro Banco de Dados 118

string de caracteres de tamanho fixo nvarchar(n)string de caracteres de tamanho variável (máximo n)

Integer (Int)smallint

decimal(p,d)numérico com p dígitosDos p dígitos, d dígitos representam casas decimais

após a vírgularealnumérico ponto flutuante

datedata de calendário

•Alphabetic date formats ( „April 15, 1998‟)•Numeric date formats ( „4/15/1998‟, „April 15, 1998‟)•Unseparated string formats („19981207‟,

„December 12, 1998‟)

Criando ObjetoEstrutura básicaCREATE <nome do Objeto> [Caracteristicas]

5. SQL- Definição de Esquemas em SQL -

Page 119: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 119/147

 Francisco Alves Carneiro Banco de Dados 119

CREATE <nome do Objeto> [Caracteristicas]Ex: CREATE DATABASE <nome do banco>CREATE TABLE< nome-tabela>

(nome-coluna tipo-de-dados [not null],[nome-coluna tipo-de-dados [not null] … ], [CONSTRAINT nome-restrição]

UNIQUE nome-coluna| PRIMARY KEY(nome-coluna {, nome-coluna})| FOREIGN KEY (nome-coluna {, nome-coluna})

REFERENCES nome-tabela[ON DELETE CASCADE | SET NULL | NO ACTION ],

[ON UPDATE CASCADE],| CHECK (predicado)

)

Definição

de restrições

Especificachavescandidatas

5. SQL- Definição de Esquemas em SQL -

Criando tabelas (cont.)Exemplo: Considere o seguinte esquema de banco de

dados fornecimento:

Page 120: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 120/147

 Francisco Alves Carneiro Banco de Dados 120

pedido(codigo, data, cod_cli)Restrição: codigo>0

cliente(cod_cli, nome)produto (codigo_prod, nome, quant)

Restrição:quant>=5ped_prod (cod_ped, cod_prod, quant)

Restrição: quant>0

5. SQL- Definição de Esquemas em SQL -

Removendo tabelasEstrutura básicaDROP TABLE nome-tabela

Page 121: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 121/147

 Francisco Alves Carneiro Banco de Dados 121

Remove todas as tuplas da tabela e a definição databela do catálogo

Alterando tabelasEstrutura básicaALTER TABLE nome-tabela

[ADD nome-coluna tipo de dados][ADD CONSTRAINT nome-restrição][DROP CONSTRAINT nome-restrição][DROP nome da coluna][ repetir ADD ou DROP em qualquer ordem]

5. SQL- Conjunto de Operações para Manipulação de Dados -

INSERINDO DADOS NA TABELA

INSERT INTO <nome da tabela> VALUES (<valores dos

Page 122: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 122/147

 Francisco Alves Carneiro Banco de Dados 122

atributos>)

ALTERANDO DADOSUPDATE <nome da tabela> SET <nome da coluna>

WHERE <condição>

EXCLUINDO DADOSDELETE FROM < nome da tabela> WHERE <condição

para determinas as linhas a serem excluidas>

5. SQL- Conjunto de Operações para Manipulação de Dados -

Consultas simples sobre o banco de dados

Estrutura básica para recuperar dados de uma ou mais tabelas

Page 123: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 123/147

 Francisco Alves Carneiro Banco de Dados 123

SELECT- especifica as colunas a serem recuperadas (*=todas)

FROM – especifica a(s) tabela(s)

WHERE – especifica o criterio de seleção

GROUP BY – agrupa dados por coluna

HAVING – especifica criterios para consultas agregadas

ORDER BY - especifica a ordem dos valores retornados

5. SQL- Conjunto de Operações para Manipulação de Dados -

Consultas simples sobre o banco de dados Estrutura básicaSELECT [ALL | DISTINCT] {* | expr [[AS] c_alias]

Page 124: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 124/147

 Francisco Alves Carneiro Banco de Dados 124

{, expr [[AS] c_alias] … }} FROM nome-tabela [[AS] qualificador]{, nome-tabela [[AS] qualificador] …} 

WHERE predicado ALLRetorna todas as tuplas, inclusive repetidas (default)

DISTINCTRetorna apenas tuplas não repetidas

*Retorna todos os atributos da(s) tabela(s)

exprRepresenta um atributo ouExpressão matemática envolvendo atributos das tabelas

salario*1.40

5. SQL- Conjunto de Operações para Manipulação de Dados -

Consultas simples sobre o banco de dados (cont.) FROMRepresenta o produto cartesiano das tabelas referenciadas

Page 125: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 125/147

 Francisco Alves Carneiro Banco de Dados 125

WHERECorresponde ao predicado de seleção da álgebra relacional Exemplos: Considere o seguinte esquema de banco de dados

Departamento(cod-depart, nome, ender)Empregado(matr, nome, ender,

cpf,salário,lotação)Listar os funcionários com salario maior que 3000Listar funcionários com salários maior que 1000 e menor

que 2000Listar nome dos funcionários com o nome de seu

departamento de lotaçãoListar nome dos funcionários com o nome de seu

departamento de lotação e uma simulação de seu saláriocom um aumento de 15%

Visões

Tabelas virtuais

Derivadas de tabelas base através de comandos SQL

Page 126: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 126/147

 Francisco Alves Carneiro Banco de Dados 126

Limitações de atualização

Interessantes para consultas freqüentes

Especificação de Visões

CREATE VIEW INFO_DEP (DNome, NEmp, SalTotal)

Page 127: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 127/147

 Francisco Alves Carneiro Banco de Dados 127

AS SELECT DNome, COUNT(*), SUM(Salario)FROM Departamentos, EmpregadosWHERE Departamentos.Codigo = Empregados.DCodGROUP BY DNome

SELECT DNomeFROM Info_DepWHERE NEmp < 10

Recupere o nome dos departamentosque têm menos de 10 empregados

CHECK

Page 128: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 128/147

 Francisco Alves Carneiro Banco de Dados 128

CREATE TABLE Empregados

( ....salario DECIMAL(6,2),....sexo CHAR,....

CHECK (salario <= 11000.00),CHECK (sexo IN ( „M‟, „F‟ ) ) )

O salário de um empregado não podeser maior do que R$11000,00 e ele sópode ser homem ou mulher

Definição de Novos Domínios

Page 129: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 129/147

 Francisco Alves Carneiro Banco de Dados 129

SQL-92 permite a definição de novos domínios paraos atributos. Ex.s:create domain salario-hora numeric(5,2) constraint 

test-val-pag check(value >= 4.00)

create domain numero-conta char(10)constraint test-null-num-conta check(value not null)create domain sexo-pessoa char(1)

constraint test-sex-pessoa check(value in(“M”, “F”)) 

Definição de Novos Domínios-1

Page 130: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 130/147

 Francisco Alves Carneiro Banco de Dados 130

CREATE TABLE Empregado( Mat: CHAR(5) NOT NULL,Nome: VARCHAR(40) NOT NULL,Sal-hor: salario-hora NOT NULL,CDep: CHAR(3),

CONSTRAINT pk PRIMARY KEY (Mat),CONSTRAINT depart_fk

FOREIGN KEY (CDep) REFERENCESDepartamento (Codigo)

)

Definição de Novos Domínios-2

Page 131: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 131/147

 Francisco Alves Carneiro Banco de Dados 131

CREATE TABLE Cliente( CPF: CHAR(11) NOT NULL,Nome_Cli: VARCHAR(40) NOT NULL,Num_Conta: numero-conta NOT NULL,Sexo: sexo-pessoa,

CONSTRAINT pk PRIMARY KEY (CPF),)

Asserções

Page 132: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 132/147

 Francisco Alves Carneiro Banco de Dados 132

CREATE ASSERTION SalEmp

CHECK ( NOT EXISTS (SELECT *FROM Departamentos D,Empregados E,

Empregados GWHERE E.Salário > G.Salario AND

E.CDep = D.Codigo ANDD.Gerente = G.CPF) )

O salário de um empregado não podeser maior do que o salário do gerentedo departamento em que ele trabalha

Stored Procedures

Coleção denominada de comandosSQL

Aplicação 

Page 133: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 133/147

 Francisco Alves Carneiro Banco de Dados 133

Mecanismo semelhante ao RPC Código sob o controle do SGBD Passagem de parâmetros 1 chamada n procedures

Diminui tráfego de rede

Stored

Procedures 

exec

procedure 

retornaresultado 

Stored Procedures

Funções 

Page 134: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 134/147

 Francisco Alves Carneiro Banco de Dados 134

Regras de negócio e integridade dos dados no SGBDAdministração do sistemaLado “servidor” da lógica da aplicação 

Características Comandos SQL compartilhados por aplicaçõesMelhor desempenho em ambientes C/SMelhora autonomia de sítio

Stored Procedures

Page 135: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 135/147

 Francisco Alves Carneiro Banco de Dados 135

Menor flexibilidade

Pode piorar desempenho se o plano de execução não

for periodicamente refeito Cada procedure é por default uma transação separada

Falta de padronização!!! 

Stored Procedures

Microsoft SQL Server

Page 136: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 136/147

 Francisco Alves Carneiro Banco de Dados 136

CREATE PROCEDURE mathtutor

@m1 smallint,@m2 smallint,@result smallint OUTPUT

ASSELECT @result = @m1 * @m2

GO

> EXEC livro_res 7498, „sistema%‟ 

Stored Procedures

Microsoft SQL Server 

Page 137: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 137/147

 Francisco Alves Carneiro Banco de Dados 137

DECLARE @guess smaliintSELECT @guess = 50EXECUTE mathtutor 5, 6, @guess OUTPUTSELECT „O resultado é „, @guessGO

Triggers

insert 

update Eventos

Page 138: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 138/147

 Francisco Alves Carneiro Banco de Dados 138

update delete 

Eventos

ComandoSQL

StoredProcedureReação automática a

eventos monitorados

Triggers

Usar 650 parafusos

Page 139: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 139/147

 Francisco Alves Carneiro Banco de Dados 139

“estoque de parafusos: 850” 

parafusos 1500850

Se quantidade de parafusos em 

estoque é menor que 1000, então “acordar” comprador  

= > comprar 1000

SGBD Ativo

Trigger - Exemplo

Notificar o gerente se qualquer empregado do seu

departamento tem o salário maior do que o seu

Page 140: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 140/147

 Francisco Alves Carneiro Banco de Dados 140

DEFINE TRIGGER Departamentos D,Empregados E,Empregados G:

WHERE E.Salario > G.Salario ANDE.CDep = D.Codigo ANDD.Gerente = G.CPF

ACTION_PROCEDURE(NOTIF_GERENTE(D.Gerente);

departamento tem o salário maior do que o seu

Triggers (Gatilhos)

Microsoft SQL Server

Page 141: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 141/147

 Francisco Alves Carneiro Banco de Dados 141

l Um trigger é um tipo especial de stored procedure queé invocado (disparado) quando ocorre uma tentativade modificação nos dados da tabela (relação) à qualele está associado (vinculado). Isto ocorre quandomodificações são feitas na tabela usando-se ascláusulas (operações) INSET, UPDATE ou DELETE. 

Triggers (Gatilhos)

l Os triggers são usados para garantir regras de negócio

Microsoft SQL Server

Page 142: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 142/147

 Francisco Alves Carneiro Banco de Dados 142

l Os triggers são usados para garantir regras de negócioe integridade dos dados, ou para ações complexas, taiscomo automaticamente atualizar um resumo dos dados.

l Caso a execução de um trigger possa violar algumarestrição então ele não será executado.

l São automaticamente disparados pelo SQL Serverl Não podem ser executados diretamente por um usuário 

Triggers (Gatilhos)

Microsoft SQL Server

Page 143: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 143/147

 Francisco Alves Carneiro Banco de Dados 143

CREATE TRIGGER update_usuarioON usuarioFOR UPDATEAS

IF UPDATE (num_usuario)BEGINRAISERROR(„Tabela não pode ser atualizada‟) ROLLBACK TRANSACTION

END 

Triggers (Gatilhos)

CREATE TRIGGER insert reserva

Microsoft SQL Server

Page 144: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 144/147

 Francisco Alves Carneiro Banco de Dados 144

CREATE TRIGGER insert_reservaON reservaFOR INSERTAS

IF (SELECT COUNT(*)FROM usuario, inserted

WHERE usuario.num_usuario = inserted. num_usuario) =0BEGIN

PRINT „A atualização não pode ser executada‟ PRINT „Nenhuma entidade USUÁRIO para esta RESERVA‟ ROLLBACK TRANSACTION

END

Triggers (Gatilhos)

C GG

Microsoft SQL Server

Page 145: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 145/147

 Francisco Alves Carneiro Banco de Dados 145

CREATE TRIGGER delete_usuarioON usuario FOR DELETEAS

IF (SELECT COUNT(*)FROM emprestimo, deleted

WHERE emprestimo.num_usuario = deleted. num_usuario) > 0BEGIN

PRINT „A transação não pode ser executada.‟ PRINT „Este usuário possui livro não devolvido‟ ROLLBACK TRANSACTION

END

Triggers (Gatilhos)

ELSE

Microsoft SQL Server

Page 146: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 146/147

 Francisco Alves Carneiro Banco de Dados 146

ELSEDELETE reservaFROM reserva, deletedWHERE reserva.num_usuario = deleted.num_usuario

Dependências Funcionais

É uma generalização da noção de Chave; Notação: (α ⊆ R e β ⊆ R)

α → β acontece em R se para todo par de tuplas t1 e t2R l [ ] t [ ] tã t [β] t [β]

Page 147: Slides Modelagem

5/14/2018 Slides Modelagem - slidepdf.com

http://slidepdf.com/reader/full/slides-modelagem 147/147

 Francisco Alves Carneiro Banco de Dados 147

α → β acontece em R, se para todo par de tuplas t e t  em R tal que t1[α] = t2[α], então t1[β] = t2[β] 

Usando a notação de dependência funcionalK é uma superchave de R se K → R 

F é o conjunto das dependências funcionais