slides modelagem
TRANSCRIPT
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á
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
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
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
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
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
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 -
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 -
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 -
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 -
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-
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 -
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
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
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
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
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
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
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
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
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
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 -
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
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
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
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
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
l
BárbaraConjuntode nomes
l
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
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
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
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
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
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
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
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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
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
Sumário
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
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 -
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 -
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 -
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 -
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
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
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
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 )
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 -
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 -
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 -
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 -
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 -
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 -
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)
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
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
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 -
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)
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
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 -
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
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
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
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
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
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 -
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 -
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
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
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
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.)
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 ã
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
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
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
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
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
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
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 ã
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] -
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
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
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] -
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
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
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
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
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
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 ã
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)
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 ã )
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
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.)
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.)
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
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
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
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)
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 -
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:
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
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
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
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]
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 [β]
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