134
BANCO DE DADOS II Conceitos Básicos COTEMIG Gerson Borges [email protected]

BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

  • Upload
    dongoc

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

BANCO DE DADOS IIConceitos Básicos

COTEMIG

Gerson Borges

[email protected]

Page 2: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Revisão

Page 3: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

O que é um banco de dados?

Page 4: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Definições Preliminares

[Chu, 1985]

Um banco de dados é um conjunto de arquivos relacionados entre si

[Date, 2000]

Um banco de dados é uma coleção de dados operacionais armazenados usados pelas aplicações de uma determinada organização

Page 5: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Outra Definição de Banco de Dados

[Elmasri & Navathe, 2000]

Um banco de dados é uma coleção de dadosrelacionados

Representando algum aspecto do mundo real (mini-mundo ou universo de discurso)

Logicamente coerente, com algum significado

Projetado, construído e gerado (“povoado”) para uma aplicação específica

Page 6: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Sistema de Gerência de Banco de Dados

Um sistema de gerência de banco de dados (SGBD) é um conjunto de programas que permite a criar e manter um banco de dados

Um banco de dados juntamente com o SGBD que o gerência constitui um sistema de banco de dados

Page 7: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Consultas/Programas

SGBD

Bancode

Dados

Usuários/Programadores

Catálogo(Meta-Dados)

Sistema de Banco de Dados

Page 8: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Exemplo de um Banco de Dados

Mini-mundo: parte de uma universidade

Algumas entidades: Alunos

Disciplinas

Departamentos

Alguns relacionamentos: Disciplinas são oferecidas por Departamentos

Alunos estão matriculados em Disciplinas

Page 9: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Exemplo de um Banco de Dados

Page 10: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Exemplo de um Banco de Dados

Page 11: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Características da Abordagem de BD

Auto-descrição dos dados

Isolamento entre programas e dados: abstração de dados

Suporte a múltiplas visões dos dados

Compartilhamento de dados e processa-mento de transações concorrentes

Page 12: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Usuários em um Ambiente de BD

Administradores de banco de dados

Projetistas de banco de dados

Analistas de sistema e programadores

Usuários finais:

Usuários casuais

Usuários leigos

Usuários especializados

Page 13: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Vantagens da Utilização de um SGBD

Controle de redundância dos dados

Controle de acesso (segurança)

Armazenamento persistente dos dados

Existência de múltiplas interfaces para os usuários

Representação de relacionamentos complexos entre os dados

Manutenção de restrições de integridade

Recuperação de falhas

Page 14: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Implicações da Abordagem de BD

Adoção/imposição de padrões

Redução do tempo de desenvolvimento das aplicações

Flexibilidade

Atualidade da informação disponível

Economia de escala

Page 15: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Quando não Utilizar um SGBD

Aplicações simples e bem definidas onde não se espera mudanças

Aplicações de tempo-real

Aplicações onde não é necessário acesso multi-usuário

Motivos: Investimento inicial alto

Generalidade na definição e manipulação dos dados

Custo adicional para prover outras facilidades funcionais (manutenção de segurança, controle de concorrência, recuperação de falhas, etc.)

Page 16: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo de Dados, Esquema e Instância

Modelo de dados: Conjunto de conceitos usados para descrever a estrutura de um banco de dados Abstração de dados Estrutura = tipos de dados + relacionamentos +

restrições (+operações )

Esquema: Descrição (textual ou gráfica) da estrutura de um banco de dados de acordo com um determinado modelo de dados

Instância: Conjunto de dados armazenados em um banco de dados em um determinado instante de tempo

Page 17: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo de Dados, Esquema e Instância

Esquema do banco de dados de exemplo

Page 18: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo de Dados, Esquema e Instância

Instância do banco de dados de exemplo

Page 19: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Relação entre Modelo de Dados, Esquema e Instância

Modelo de Dados

Esquema InstânciaRegras para

estruturação dosdados

Regras para verificação das

instâncias

Page 20: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo de Dados, Esquema e Instância

Estado do Banco

Dados do banco em qualquer ponto do tempo

Inicialmente vazio

Muda freqüentemente

Validade parcialmente guarantida pelo SGBD

Esquema do Banco

Armazenado no catálogo

Mudanças muito menos freqüentes

Page 21: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Tipos de Modelo de Dados

Modelos conceituais Utilizados para se descrever a estrutura de um

banco de dados de uma forma mais próxima da percepção dos usuários (independente de aspectos de implementação)

Ex. Conceitos: entidades, atributos, relacionamentos

Exemplos: Modelo entidade-relacionamento (ER)

Modelo funcional

Modelo orientado a objetos (OO)

Page 22: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Tipos de Modelo de Dados

Modelos representacionais (lógicos) Utilizados para se descrever a estrutura de um banco

de dados da forma como será manipulado através de SGBD (mais dependente das estruturas físicas de armazenamento de dados)

Exemplos:

Modelo relacional

Modelo de rede (CODASYL)

Modelo hierárquico

Page 23: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Tipos de Modelo de Dados

Modelos físicos Utilizados para descrever como os dados são

fisicamente armazenados

Page 24: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Linguagens

Linguagem de definição de dados (LDD) Usada para definir esquemas

Linguagem de manipulação de dados(LMD) Recuperação, inserção, remoção, modificação

do BD

Linguagem de consulta LMD de alto nivel usada em modo “stand-

alone”

Exemplo: SQL

Page 25: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Utilitários

Carregamento

Backup

E.g. dumps do banco de dados

(Re-)Organização de arquivos

Monitoramento da performance

Page 26: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Classificação dos SGBDs Quanto ao modelo de dados adotado:

Relacionais De rede Hierárquicos Orientados a objetos Objeto-relacionais

Quanto ao número de usuários suportados: Mono-usuários Multi-usuários

Quanto à localização dos dados: Centralizados Distribuídos

Page 27: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Exemplo de um BD Relacional

NumEmp NomeEmp Salário Dept

032 J Silva 380 21

074 M Reis 400 25

089 C Melo 520 28

092 R Silva 480 25

112 R Pinto 390 21

121 V Simão 905 28

130 J Neves 640 28

NumDept NomeDept Ramal

21 Pessoal 142

25 Financeiro 143

28 Técnico 144

Empregado

Departamento

Page 28: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Exemplo de um BD de Rede

21 Pessoal 142

25 Financeiro 143

28 Técnico 144

032 J Silva 380

112 R Pinto 390

121 V Simão 905

130 J Neves 640

092 R Silva 480

089 C Melo 520

074 M Reis 400

Departamento

Empregado

Page 29: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Exemplo de um BD Hierárquico

21 Pessoal 142 25 Financeiro 143 28 Técnico 144

032 J Silva 380

112 R Pinto 390 121 V Simão 905

130 J Neves 640

092 R Silva 480

089 C Melo 520074 M Reis 400

Departamento

Empregado

Page 30: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo Entidade-Relacionamento

Page 31: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Processo de Projeto de Bancos de Dados

Mini-Mundo

Análise de

Requisitos

Requisitos do BD

Projeto Conceitual

Esquema Conceitual

(em um modelo de dados de alto nível)

Projeto Lógico

Esquema Lógico

(em um modelo de dados lógico)

Projeto Físico

Esquema Físico

(para um SGBD específico)

Requisitos Funcionais

Análise Funcional

Especificação das Transações

(em alto nível)

Projeto das Aplicações

Implementação

Programas

Independente de SGBD

Específico para um SGBD

Page 32: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Aplicação exemplo

Banco de Dados de uma companhia

Organizada em departamentos que têm um nome e umnúmero únicos e um empregado que gerencia odepartamento. A data de quando o empregadocomeçou a gerenciar o departamento deve serregistrada. Um departamento pode ter variaslocalizações

Um departamento controla um número de projetos,cada qual com um nome e número únicos e uma únicalocalização

Page 33: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Aplicação exemplo

Banco de Dados de uma companhia Nós armazenamos para cada empregado seu

nome, identidade, endereço, salário, sexo, e datade nascimento. Um empregado é assinalado a umdepartamento mas pode trabalhar em diversosprojetos, os quais não são necessariamentecontrolados pelo mesmo departamento. Nosregistramos o número de horas por semana que oempregado trabalha em cada projeto e osupervisor direto de cada empregado

Nós mantemos registro para cada empregado, donumero de dependentes (para seguro) e paracada dependente o primeiro nome, sexo, data denascimento e relacionamento com o empregado.

Page 34: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Esquema conceitual

M

Page 35: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo ER - Conceitos

Entidades:

Objetos do mundo real que são de interessepara alguma aplicação

Atributos:

Propriedades utilizadas para descrever umaentidade

Name = John

Address = 2311 Kirby, Houston, TXAge = 55

Home Phone = 713-749-2630e1

(Employee)

Page 36: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo ER - Conceitos Tipos (classes) de atributo:

Simples ou compostos Ex. Endereço (Endereço da Rua (número, nome da rua,

número do apto), Cidade, Estado, CEP)

Monovalorados ou multivalorados Ex. Profissão

Armazenados ou derivados Data de Nascimento Idade, Empregados trabalhando

no departamento NumeroDeEmpregados

Valores Null Não aplicável

Ex. Número do apartamento

Desconhecido Ex. Telefone de casa

Page 37: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo ER - Conceitos

Tipo de entidade:

Define um conjunto de entidades que têmos mesmos atributos (propriedades)

Descreve o esquema para um conjunto deentidades que compartilham a mesmaestrutura

Exemplos:

Employee, Company

Page 38: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo ER - Conceitos

Chave de um tipo de entidade: Atributo que possui valor único para cada entidade

(instância) Ex. Nome da companhia, identidade do empregado

Chave pode ser formada por vários atributos: chavecomposta Registro do Veiculo: Numero de Registro e Estado

Domínio de um atributo: Conjunto de valores que podem ser atribuídos a um

atributo para cada entidade individualmente

Ex. Idade do Empregado: (16,70); Nome doEmpregado:String

Page 39: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Figura 3.5

Tipos de entidade e suas instâncias

Page 40: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Esquema conceitual

M

Page 41: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo ER - Conceitos

Relacionamentos:

Associações entre duas ou mais entidadesdistintas (instâncias) com um significado

Exemplo:

Employee John Smith Works-for DepartmentResearch

Employee Fred Brown Manages DepartmentResearch

Departament Research Controls Project X

Page 42: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo ER - Conceitos

Tipo de Relacionamento:

Define um conjunto de associações entre ntipos de entidade E1, E2,...,En

Exemplo:

Works-for entre Employee e Department

Employee Works-for Department

Page 43: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo ER - Conceitos

Tipo de Relacionamento:

Matematicamente, um tipo de relacionamento R éum conjunto de (instâncias de) relacionamentos ri,onde cada ri associa n (instâncias de) entidades(e1,...,en) e cada ej pertence a um tipo de entidadeEj

R E1 x E2 x ... x En

ri = (e1,...,en)

Grau de um Tipo de Relacionamento

Número de tipos de entidade participantes de umtipo de relacionamento

Page 44: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Instâncias de um tipo de relacionamento binário

Page 45: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Instâncias de um tipo de relacionamento ternário

Page 46: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Esquema conceitual

M

Page 47: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo ER - Conceitos Restrições sobre tipos de relacionamento:

Limitam as possiveis combinações de entidades quepodem participar no conjunto de relacionamentos

Cardinalidade: Especifica o número de instâncias deum tipo de relacionamento do qual uma entidade podeparticipar

Participação: Especifica se a existência de umaentidade depende de seu relacionamento com outraentidade através de um tipo de relacionamento

parcial ou total Ex. Todo empregado deve trabalhar para um departamento

(total) Ex. Nem todo empregado gerencia um departamento (parcial)

Cardinalidade + Participação RestriçõesEstruturais

Page 48: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Cardinalidade 1:1

Page 49: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Cardinalidade M:N

Page 50: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Esquema conceitual

M

Page 51: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo ER - Conceitos

Papéis e relacionamentos recursivos Entidades atuam com um determinado papel

Significado do papel é dado por um nome,atribuído a cada tipo de entidade

Nomes só são necessários em tipos derelacionamento que envolvam mais de uma vezo mesmo tipo de entidade relacionamentosrecursivos

Exemplo: Supervision, onde Employee tem ospapéis de Supervisor e Supervisee

Page 52: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Figure 3.11

1 – Supervisor2 - Supervisee

Page 53: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Esquema conceitual

M

Page 54: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo ER - Conceitos

Tipos de Entidade Fraca

Tipos de entidade que não têm chave própria

As instâncias são identificadas através dorelacionamento com entidades de outro tipo,chamado de dono ou identificador, juntamentecom os valores de alguns atributos (chaveparcial)

Exemplo: Dependent

Page 55: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Esquema conceitual

M

Page 56: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Notação ER(Resumo)

Page 57: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo de Dados Relacional

Page 58: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Introdução

O modelo relacional representa um banco dedados como um conjunto de relações

Informalmente, uma relação é uma tabela devalores, onde cada linha representa umacoleção de dados relacionados

Cada linha de uma tabela representa um “fato”que tipicamente corresponde a uma entidadeou relacionamento do mundo real

Page 59: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Conceitos Básicos As linhas de uma relação (tabela) são chamadas

de tuplas

Ao cabeçalho de cada coluna dá-se o nome deatributo

O conjunto de valores que pode aparecer em cadacoluna é chamado de domínio

Page 60: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Conceitos Básicos Esquema de relação

Descreve a relação

R(A1,A2, ...,An), onde: R Nome da relação

Ai Nome de um atributo

n Grau da relação

Cada Atributo Ai e’ o nome de um papeldesempenhado por algum dominio D no Esquema darelação R

Exemplo: Student(Name, SSN, HomePhone, Address,

OfficePhine, Age,GPA)

Page 61: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Conceitos Básicos Relação r(R)

Conjunto de tuplas: r = {t1,t2, ..., tm}

Cada tupla é uma lista ordenada de valores: t =<v1,v2, ..., vn>

Page 62: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Características de uma Relação As tuplas de uma relação não são

ordenadas

Registros em um arquivo são ordenados deacordo com a posição em que sãoarmazenados no disco

Benjamin Bayer 305-61-2425 373-1616 2918 Bluebonnet Lane null 19 3.21

Page 63: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Características de uma Relação

Uma tupla é uma lista ordenada de valores

O valor de cada atributo em uma tupla é atômico

Atributos compostos e multivalorados não sãopermitidos

O valor especial null é utilizado para representar valoresnão conhecidos ou não aplicáveis a uma determinadatupla

Page 64: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrições de Integridade Restrições de domínio

Especificam que o valor de cada atributo A de umarelação deve ser um valor atômico do domínio dom(A)

Restrições de chave

Por definição todas as tuplas sao distintas

Um conjunto de atributos SK de um esquema derelação R tal que, para duas tuplas quaisquer t1 e t2 der(R), t1[SK] t2[SK] é uma super-chave de R

Super-chave default: todos os atributos

Uma chave de R é uma super-chave com a propriedadeadicional de que nenhum de seus subconjuntostambém seja uma super-chave de R

{SSN,Name,Age} = super-chave; {SSN} = chave

Page 65: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrições de Integridade Restrições de chave

Um esquema de relação pode ter mais de uma chave

chaves candidatas

Dentre as chaves candidatas de um esquema derelação, uma delas é indicada como chave primária e asdemais constituem as chaves alternativas

Page 66: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrições de Integridade

Restrições em valores null

Especifica se a um atributo é permitido ter valores null

Exemplo. Todo Estudante deve ter um nome válido,não-null

Page 67: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Esquema de um BD Relacional

Page 68: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrições de Integridade

Além das restrições de domínio e dechave as seguintes restrições deintegridade são parte do modelorelacional:

Restrição de integridade de entidade

Nenhum componente de uma chave primáriapode ser nulo

Page 69: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrições de Integridade Restrição de integridade referencial

Usada para manter a consistencia entre tuplas deduas relacoes

Uma tupla em uma relação que se refere a outrarelação deve referenciar uma tupla existente nestaoutra relação

Aparecem devido aos relacionamentos entreentidades

Seja FK um conjunto de atributos de um esquemade relação R1 definido sobre o mesmo domínio dosatributos da chave primária PK de outro esquema R2.Então, para qualquer tupla t1 de R1: t1[FK] = t2[PK], onde t2 é uma tupla de R2 ou t1[FK] é nulo

Page 70: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrições de integridade referencial

Page 71: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

A restrição de integridade referencial pode serexpressa pela notação

R1[FK] R2[PK],

onde PK é a chave primária de R2 e FK é a chaveestrangeira de R1

Exemplos:

EMPLOYEE[DNO] DEPARTMENT[DNUMBER]

WORKS_ON[ESSN] EMPLOYEE[SSN]

WORKS_ON[PNO] PROJECT[PNUMBER]

Restrições de Integridade

Page 72: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Instância de um BD Relacional

1

4

5

5

5 Houston

Page 73: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Instância de um BD Relacional

Page 74: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Opções de Remoção da RIR

A cada RIR R1[FK] R2[PK] é possível associar umaopção de remoção que especifica como a remoçãode uma tupla de R2 é executada em relação a R1

As opções de remoção possíveis são:

bloqueio

propagação

substituição por nulos

Notação:

R1[FK] R2[PK],

onde op {b, p, n}

op

Page 75: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Exemplos de RIR

EMPLOYEE(FNAME,MINT,LNAME,SSN,BDATE,ADDRESS,SEX,SALARY,SUPERSSN,DNO)

EMPLOYEE[SUPERSSN] EMPLOYEE[SSN]

EMPLOYEE[DNO] DEPARTMENT[DNUMBER]

DEPARTMENT[DNAME,DNUMBER,MGRSSN,MGRDATE]

DEPARTMENT[MGRSSN] EMPLOYEE[SSN]

DEPT_LOCATIONS(DNUMBER,LOCATION)

DEPT_LOCATIONS[DNUMBER]

DEPARTMENT[DNUMBER]

n

b

b

p

Page 76: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrições de integridade referencial com opções de remoção

n

p

p

bb

bb

b

Page 77: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Operações sobre Relações

As operações sobre um BD relacional podem serclassificadas em:

Operações de recuperação (consulta)

Operações de atualização

Operações de atualização (sobre tuplas):

Inserção (insert)

Remoção (delete)

Modificação (modify)

Page 78: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Operações sobre Relações

Operações de atualização

Restrições de integridade não podem servioladas

Inserção

Restrição de Dominio: valor fora do dominio

Restrição de Chave: valor ja’ existe

Restrição de integridade de entidade: se chave for null

Restrição de integridade referencial: se chave estrangeirareferencia tupla inexistente

Ação default: rejeitar inserção (com explicação)

Page 79: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Operações sobre Relações

Operações de atualização

Restrições de integridade não podem servioladas

Remoção

Restrição de integridade referencial: tupla deletada e’referenciada por chaves estrangeiras

Ação default: rejeitar inserção (com explicação)

Segunda opção: propagar remoção de tuplas que violemuma restrição de integridade referencial

Terceira Opcao: Modificar o valor da chave estrangeirapara nulo

Page 80: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Operações sobre Relações

Operações de atualização

Restrições de integridade não podem servioladas

Modificação

Modificar o valor de um atributo que nao e’ chave primariaou estrangeira não causa problemas (se o valor for dodominio, e, se for null, que este valor seja permitido)

Modificar a chave primaria e’ igual a remover uma tupla einserir outra

Modificar chave estrangeira: SGBD deve verificar se novovalor do atributo referencia tupla existente

Page 81: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

A Linguagem SQL

Page 82: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Introdução

Originalmente proposta para o System Rdesenvolvido nos laboratórios da IBM na décadade 70 SEQUEL (Structured English QUEry

Language)

Objeto de um esforço de padronizaçãocoordenado pelo ANSI/ISO:

SQL1 (SQL-86)

SQL2 (SQL-92)

SQL3 (SQL:1999)

Page 83: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Introdução SQL = LDD + LMD + LCD Principais comandos:

LDD: CREATE SCHEMA / TABLE / VIEW DROP SCHEMA / TABLE / VIEW ALTER TABLE

LMD: SELECT, INSERT, UPDATE, DELETE

LCD: GRANT, REVOKE

Conceitos: Table = Relação Row = tupla Column = atributo

Page 84: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Definição de Dados em SQL

Comando CREATE SCHEMA

CREATE SCHEMA COMPANY AUTHORIZATION JS;

Comando CREATE TABLE

CREATE TABLE <nome da tabela>

(<definições de colunas>

<definição da chave primária>

<definições de chaves alternativas>

<definições de chaves estrangeiras>);

Page 85: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Definição de Dados em SQL Exemplo de um comando CREATE TABLE

CREATE TABLE EMPLOYEE

(FNAME VARCHAR(15) NOT NULL,

MINIT CHAR,

LNAME VARCHAR(15) NOT NULL,

SSN CHAR(9) NOT NULL,

SUPERSSN CHAR(9),

DNO INT NOT NULL,

PRIMARY KEY (SSN),

FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE (SSN)

ON DELETE SET NULL,

FOREIGN KEY (DNO) REFERENCES DEPARTMENT (DNUMBER));

Page 86: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Definição de Dados em SQL

Opções de remoção (cláusula ON DELETE):

CASCADE (propagação)

SET NULL (substituição por nulos)

SET DEFAULT (substituição por um valor default)

Opção default: bloqueio (RESTRICT)

As mesmas opções se aplicam à cláusula ON

UPDATE

Page 87: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrição de Integridade Referencial em SQL

FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE(SSN)

ON DELETE SET NULL

FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNUMBER)

FOREIGN KEY (DNUM) REFERENCES DEPARTMENT(DNUMBER)

FOREIGN KEY (ESSN) REFERENCES EMPLOYEE(SSN) FOREIGN KEY (PNO) REFERENCES PROJECT(PNUMBER)

FOREIGN KEY (ESSN) REFERENCES EMPLOYEE(SSN)

ON DELETE CASCADE

FOREIGN KEY (DNUMBER) REFERENCES DEPARTMENT(DNUMBER)

ON DELETE CASCADE

FOREIGN KEY (MGRSSN) REFERENCES EMPLOYEE(SSN)

Page 88: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrição de Integridade Referencial em SQL

Page 89: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Definição de Dados em SQL Comandos DROP SCHEMA e DROP TABLE

DROP SCHEMA COMPANY CASCADE (RESTRICT);

RESTRICT: APENAS SE NAO TEM ELEMENTOS

DROP TABLE DEPENDENT CASCADE (RESTRICT);

RESTRICT: SE A TABELA NAO E’ REFERENCIADA EMQUALQUER RESTRICAO

Comando ALTER TABLE

ALTER TABLE COMPANY.EMPLOYEEADD JOB VARCHAR(12);

Inicialmente Null para todas as tuplas

ALTER TABLE COMPANY.EMPLOYEEDROP ADDRESS CASCADE (RESTRICT); RESTRICT: SE NENHUMA VISAO OU RESTRICAO

REFERENCIA A COLUNA

Page 90: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Consultas Básicas em SQL

Formato básico do comando SELECT:

SELECT <lista de atributos>FROM <lista de tabelas>WHERE <condição>;

Exemplo:

SELECT BDATE, ADDRESSFROM EMPLOYEEWHERE FNAME=‘John’ AND

MINIT=‘B’ ANDLNAME=‘Smith’;

Page 91: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Consultas Básicas em SQL

SELECT FNAME, LNAME, ADDRESSFROM EMPLOYEE, DEPARTMENTWHERE DNAME=‘Research’ AND DNO=DNUMBER;

SELECT PNUMBER, DNUM, LNAME, ADDRESS, BDATEFROM PROJECT, DEPARTMENT, EMPLOYEEWHERE PLOCATION=‘Stafford’ AND

DNUM=DNUMBER AND MGRSSN=SSN;

condição de seleção condição de junção

Page 92: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Consultas Básicas em SQL

Atributos ambíguos e pseudônimos (alias)

SELECT DNAME, DLOCATION

FROM DEPARTMENT, DEPT_LOCATIONSWHERE DEPARTMENT.DNUMBER =

DEPT_LOCATIONS.DNUMBER;

SELECT E.FNAME, E.LNAME, S.FNAME, S.LNAME

FROM EMPLOYEE AS E, EMPLOYEE AS SWHERE E.SUPERSSN=S.SSN;

Page 93: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Consultas Básicas em SQL

Consultas sem a cláusula WHERE

SELECT SSN, LNAME, SALARY

FROM EMPLOYEE;

SELECT LNAME, DNAMEFROM EMPLOYEE, DEPARTMENT

Atenção! Esta consulta corresponde a um produto cartesiano das tabelas EMPLOYEE e DEPARTMENT

WHERE DNO=DNUMBER;

Page 94: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Consultas Básicas em SQL Manipulando tabelas como conjuntos

SELECT SALARYFROM EMPLOYEE;

SELECT DISTINCT SALARYFROM EMPLOYEE;

(SELECT PNUMBERFROM PROJECT, DEPARTMENT, EMPLOYEEWHERE DNUM=DNUMBER AND MGRSSN=SSN AND

LNAME=‘Smith’)UNION(SELECT PNUMBERFROM PROJECT, WORKS_ON, EMPLOYEEWHERE PNUMBER=PNO AND ESSN=SSN AND

LNAME=‘Smith’);

Não elimina linhas (tuplas) duplicatas

Page 95: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Consultas Complexas em SQL

Consultas aninhadas

SELECT FNAME, LNAME, ADDRESSFROM EMPLOYEEWHERE DNO IN (SELECT DNUMBER

FROM DEPARTMENTWHERE DNAME=‘Research’);

é equivalente à consulta

SELECT FNAME, LNAME, ADDRESSFROM EMPLOYEE, DEPARTMENTWHERE DNO=DNUMBER AND DNAME=‘Research’;

Page 96: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Consultas Complexas em SQL Comparação de conjuntos

SELECT DISTINCT PNUMBERFROM PROJECTWHERE PNUMBER IN (SELECT PNUMBER

FROM PROJECT, DEPARTMENT,EMPLOYEE

WHERE DNUM =DNUMEBR ANDMGRSSN=SSN ANDLNAME=‘Smith’)

ORPNUMBER IN (SELECT PNO

FROM WORKS_ON, EMPLOYEEWHERE ESSN=SSN AND

LNAME=‘Smith’);

Page 97: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Consultas Complexas em SQL Comparação de conjuntos

SELECT DISTINCT ESSNFROM WORKS_ONWHERE (PNO, HOURS) IN (SELECT PNO, HOURS

FROM WORKS_ONWHERE ESSN=‘123456789’);

SELECT LNAME, FNAMEFROM EMPLOYEEWHERE SALARY > ALL (SELECT SALARY

FROM EMPLOYEEWHERE DNO=5);

Page 98: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Consultas Complexas em SQL Uso da função EXISTS

SELECT E.FNAME, E.LNAMEFROM EMPLOYEE AS EWHERE EXISTS (SELECT *

FROM DEPENDENTWHERE E.SSN=ESSN AND

E.SEX=SEX ANDE.FNAME=DEPENDENT_NAME);

SELECT FNAME, LNAMEFROM EMPLOYEEWHERE NOT EXISTS (SELECT *

FROM DEPENDENTWHERE SSN=ESSN);

Page 99: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Consultas Complexas em SQL Uso do operador CONTAINS

SELECT FNAME, LNAMEFROM EMPLOYEEWHERE ((SELECT PNO

FROM WORKS_ONWHERE SSN=ESSN)CONTAINS(SELECT PNUMBERFROM PROJECTWHERE DNUM=5));

Page 100: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Facilidades Adicionais

Uso do operador JOIN

SELECT FNAME, LNAME, ADDRESSFROM (EMPLOYEE JOIN DEPARTMENT

ON DNO=DNUMEBR)WHERE DNAME=‘Research’;

SELECT DNAME, DLOCATION

FROM (DEPARTMENT NATURAL JOIN DEPT_LOCATIONS);

SELECT FNAME, LNAME, DEPENDENT_NAMEFROM (EMPLOYEE LEFT OUTER JOIN DEPENDENT

ON SSN=ESSN);

Page 101: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Facilidades Adicionais

Agrupamento

SELECT DNO, COUNT(*), AVG(SALARY)FROM EMPLOYEEGROUP BY DNO;

Page 102: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Facilidades Adicionais

Agrupamento com a cláusula HAVING

SELECT PNUMBER, PNAME, COUNT(*)FROM PROJECT, WORKS_ONWHERE PNUMBER=PNOGROUP BY PNUMBER, PNAMEHAVING COUNT(*) > 2;

Page 103: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,
Page 104: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

3

3

3

3

Page 105: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Atualizações em SQL

Comando INSERT

INSERT INTO EMPLOYEE

VALUES (‘Richard’,‘K’,‘Marini’,‘653258653’,‘1962-12-30’,’98 Oak Forest, Katy, TX’,37000,’987654321’,4);

INSERT INTO EMPLOYEE(FNAME, LNAME, SSN, DNO)VALUES (‘Richard’,‘Marini’,‘653258653’,4);

INSERT INTO EMPLOYEE(FNAME, LNAME, SSN, DNO)SELECT * FROM INPUT;

Page 106: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Atualizações em SQL

Comando DELETE

DELETE FROM EMPLOYEEWHERE LNAME=‘Brown’;

DELETE FROM EMPLOYEEWHERE DNO IN (SELECT DNUMBER

FROM DEPARTMENTWHERE DNAME=‘Research’);

DELETE FROM EMPLOYEE;

Page 107: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Atualizações em SQL

Comando UPDATE

UPDATE PROJECTSET PLOCATION=‘Bellaire’, DNUM=5WHERE PNUMBER=10;

UPDATE EMPLOYEESET SALARY=SALARY*1.1WHERE DNO IN (SELECT DNUMBER

FROM DEPARTMENTWHERE DNAME=‘Research’);

Page 108: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Projeto Lógico de Bancos de Dados Relacionais

Page 109: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Tópicos

Processo de Projeto de Bancos de Dados

Exemplo Preliminar

Representação Relacional de Esquemas ER

Implementação Usando SQL

Referências Bibliográficas

Page 110: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Processo de Projeto de

Bancos de Dados

Caracterização Complexidade Multiplicidade de tarefas

Fases Coleção e análise de requisitos Projeto conceitual Escolha de um sistema gerenciador de banco de dados Projeto lógico (ou mapeamento para o modelo de

dados do SGBD escolhido) Projeto físico Implementação e “tuning”

Page 111: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Fases do Processo de Projeto de

Bancos de Dados

Mini-Mundo

Análise de

Requisitos

Requisitos do BD

Projeto Conceitual

Esquema Conceitual

(em um modelo de dados de alto nível)

Projeto Lógico

Esquema Lógico

(em um modelo de dados lógico)

Projeto Físico

Esquema Físico

(para um SGBD específico)

Requisitos Funcionais

Análise Funcional

Especificação das Transações

(em alto nível)

Projeto das Aplicações

Implementação

Programas

Independente de SGBD

Específico para um SGBD

Page 112: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Abordagem ER para Projeto Lógico de

Bancos de Dados Relacionais

Mini-Mundo

Análise de

Requisitos

Requisitos do BD

Projeto Conceitual

Esquema Conceitual

(em um modelo de dados de alto nível)

Projeto Lógico

Esquema Lógico

(em um modelo de dados

lógico)

Projeto Físico

Esquema Físico

(para um SGBD específico)

Requisitos Funcionais

Análise Funcional

Especificação das Transações

(em alto nível)

Projeto das Aplicações

Implementação

Programas

Independente de SGBD

Específico para um SGBD

Modelo ER

Modelo

Relacional

SGBD

Relacional

Page 113: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Aplicação exemplo

Banco de Dados de uma companhia

Organizada em departamentos que têm um nome e umnúmero únicos e um empregado que gerencia odepartamento. A data de quando o empregadocomeçou a gerenciar o departamento deve serregistrada. Um departamento pode ter variaslocalizações

Um departamento controla um número de projetos,cada qual com um nome e número únicos e uma únicalocalização

Page 114: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Aplicação exemplo

Banco de Dados de uma companhia Nós armazenamos para cada empregado seu

nome, identidade, endereço, salário, sexo, e datade nascimento. Um empregado e’ assinalado a umdepartamento mas pode trabalhar em diversosprojetos, os quais não são necessariamentecontrolados pelo mesmo departamento. Nosregistramos o número de horas por semana que oempregado trabalha em cada projeto e osupervisor direto de cada empregado

Nós mantemos registro para cada empregado, donumero de dependentes (para seguro) e paracada dependente o primeiro nome, sexo, data denascimento e relacionamento com o empregado.

Page 115: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

M

Page 116: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,
Page 117: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,
Page 118: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

EMPLOYEE[SUPERSSN] EMPLOYEE[SSN]

EMPLOYEE[DNO] DEPARTMENT[DNUMBER]

DEPARTMENT[MGRSSN] EMPLOYEE[SSN]

DEPT_LOCATIONS[DNUMBER] DEPARTMENT[DNUMBER]

PROJECT[DNUM] DEPARTMENT[DNUMBER]

WORKS_ON[ESSN] EMPLOYEE[SSN]

WORKS_ON[PNO] PROJECT[PNUMBER]

DEPENDENT[ESSN] EMPLOYEE[SSN]

n

b

b

b

b

b

p

p

Page 119: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Representação Relacional de Esquemas ER

Estratégias de representação

Mapeamento 1-1: cada tipo de entidade ou derelacionamento é representado por um esquema derelação separado

Mapeamento otimizado: tipos de relacionamentofuncionais (1:1 e N:1) e subtipos de entidade sãocolapsados e representados através de atributos em

outro esquema de relação

Page 120: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Modelo RelacionalNotação

Esquema de relação

R (A1,A2,…,An), onde A1 é a chave primária de R

Restrição de integridade referencial

R1 [X] R2 [Y], onde X é um conjunto de atributosde R1 que referencia a chave Y de R2

Restrições estruturais

<expr1> op <expr2>, onde <expr1> e <expr2> sãoexpressões da álgebra relacional e op é um dosoperadores , , ou

Page 121: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Exemplo de um Diagrama ER

Empregado

ProjetoDependente

Departamento

Trabalha-para

Gerencia

Participa-de

Controla

N 1

1 11 1

N NN

M

NEmp NomeEmp Salário

NomeDep DataNasc

NDept NomeDept Ramal

NProj NomeProj LocalHsTrab

Possui

Page 122: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Representação de Tipos de Entidade (sem atributos multivalorados)

Empregado

NEmp

NomeEmp

Salário

Empregado (NEmp(nn),NomeEmp,Salário)

Page 123: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Representação de Tipos de Entidade (com atributos multivalorados)

Departamento

NDept

NomeDept

Ramal

Departamento (NDept(nn),NomeDept)

Ramal-Departamento (NDept(nn), Ramal(nn))

Ramal-Departamento [NDept] Departamento [NDept]p

Page 124: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Representação de Tipos de Entidade Fraca

Empregado (NEmp(nn),...)

Dependente (NEmp(nn),NomeDep(nn), DataNasc)

Dependente [NEmp] Empregado [NEmp]p

Empregado Dependente1 N

NEmp NomeDep DataNasc

Possui

Page 125: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Representação de Tipos de Relacionamento N:1(mapeamento 1-1)

Empregado Departamento1N

NEmp NDept

Trabalha-para

Empregado (NEmp(nn),...)

Departamento (NDept(nn),...)

Trabalha-para [NEmp] Empregado [NEmp]p

Trabalha-para (NEmp(nn),NDept(nn))

Trabalha-para [NDept] Departamento [NDept]b

NEmp(Empregado) = NEmp(Trabalha-para)

Page 126: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Representação de Tipos de Relacionamento N:1(mapeamento otimizado)

Empregado Departamento1N

NEmp NDept

Trabalha-para

Empregado (NEmp(nn),...,NDept(nn))

Departamento (NDept(nn),...)

Empregado [NDept] Departamento [NDept]b

Page 127: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Representação de Tipos de Relacionamento 1:1(mapeamento otimizado)

Empregado Departamento11

NEmp NDept

Gerencia

Empregado (NEmp(nn),...)

Departamento (NDept(nn),...,NEmp(nn))

Departamento [NEmp] Empregado [NEmp]b

Chave alternativa

Page 128: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Representação de Tipos de Relacionamento M:N

Empregado ProjetoNM

NEmp NProj

Participa-de

HsTrab

Empregado (NEmp(nn),...)

Projeto (NProj(nn), ...)

Participa-de [NEmp] Empregado [NEmp]

Participa-de (NEmp(nn),NProj(nn), HsTrab)

Participa-de [NProj] Projeto [NProj]

p

p

Page 129: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Implementação usando SQL

SQL

Composta de três sublinguagens: LDD, LMD e LCD

Objeto de padronização pelo ANSI/ISO

Comando básico de definição de dados:

create table <table name>

(<column definitions>

<primary key definition>

<alternate key definitions>

<foreign key definitions>)

Page 130: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Definição de um Esquema de Relação em SQL

create table Empregado

(NEmp char(3) not null,

NomeEmp char(30) not null,

Salario decimal(6,2),

NDept char(2) not null,

primary key (NEmp),

foreign key (NDept) referencesDepartamento)

Page 131: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrições de Integridade em SQL

Restrições de unicidade (unique constraints) queindicam a chave primária e as chaves alternativasde uma tabela

Restrições de integridade referencial (referentialconstraints) que especificam as chaves estrangei-ras de uma tabela

Restrições de verificação (check constraints) queespecificam condições que devem ser satisfeitaspor coluna/linhas de uma tabela ou entre tabelas

Page 132: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrições de Unicidade

Chave primária

primary key (<attribute list>)

Chaves alternativas

unique (<attribute list>)

create table Departamento

( ...

primary key (NDept),

unique (NomeDept),

...)

Page 133: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Restrições de Integridade Referencial

foreign key (<attribute list>)

references <table name> [(<attribute list>)]

[on delete cascade | set null | set default]

[on update cascade | set null | set default]

create table Participa-de

(...

foreign key NEmp references Empregado

on delete cascade)

Page 134: BANCO DE DADOS II Conceitos Básicos - gersonborges.com.brgersonborges.com.br/disciplina/banco_de_dados/artigos/2016-1... · Outra Definição de Banco de Dados [Elmasri & Navathe,

Referências

Batini, C.; Ceri, S.; Navathe, S.B. Conceptual Database Design: An Entity-Relationship Approach. Benjamin/Cummings, Redwood City, CA, 1992.

Elmasri, R.; Navathe, S.B. Fundamentals of Database Systems, 3rd ed.,Addison-Wesley, MA, 2000.

Laender, A.H.F.; Casanova, M.A.; Carvalho, A.P.; Ridolfi, L.F. An Analysis ofSQL Integrity Constraints from an Entity-Relationship Model Perspective.Information Systems 4, 3(1994), 423-464.

Silva, A.S.; Laender, A.H.F.; Casanova, M.A. An Approach to MaintainingOptimizing Relational Representations of Entity-Relationship Schemas. InThalheim, B. (ed.). Conceptual Modeling -ER’96. Springer-Verlag, Berlin, 1996,pp. 242-256.

Silva, A.S.; Laender, A.H.F.; Casanova, M.A. On the Relational Representationof Specialization Structures. Information Systems 25, 6(2000), 399-415.