SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Banco de Dados

Conceitos básicos, linguagem de
consulta e álgebra relacional

Luan Henrique Scarparo
Ciência da Computação
Definição de Modelo relacional


Baseado em teorias dos conjuntos de álgebra relacional o Modelo Relacional é
um modelo para armazenamento e manutenção de banco de dados.



Os primeiros conceitos deste modelo foram desenvolvidos por Codd em 1970 e
expandidos em 1979.



Embora que o nome seja parecido, o Modelo Relacional não é o mesmo que
Modelo Entidade-Ralacionamento.



O Modelo Relacional foi o primeiro modelo que se estabeleceu para aplicações
comercias.

Acesse: www.proseando-codigos.rhcloud.com
Estrutura básica de uma relação


Seja
nome_cliente = {Pedro, Joaquim, Maria, Daniela}
rua_cliente = {Presidente Vargas ,Castelo Branco, Marginal Tiete}
cidade_cliente = {Franca, Ribeirão Preto, São Paulo}



Então
R = { (Pedro, Presidente Vargas, Franca),
(Joaquim, Castelo Branco, Ribeirão Preto),
(Maria, Castelo Branco, Ribeirão Preto),
(Daniela, Marginal Tiete, São Paulo)
}



Esta é uma relação entre:


nome_cliente x nome_rua x nome_cidade

Acesse: www.proseando-codigos.rhcloud.com
Relações


Todos os dados são representados como Relações.



Uma instância de uma relação, pode ser chamado de tabela.



Cada tabela possui um nome único em todo o banco dados

CodigoMatricola

Nome

Data_Matricola

100

Gabriel

12/01/2002

101

Carla

15/01/2002

102

Rafael

02/02/2002

103

Maria Julia

05/03/2004

104

Juliana

10/05/2005

Acesse: www.proseando-codigos.rhcloud.com
Tuplas


Em uma relação uma linha é representada uma instância da relação com
valores definidos, e recebe o nome de TUPLA.



Uma TUPLA é uma linha inteira de informações.
CodigoMatricola Nome

TUPLA

Data_Matricola

Exemplo

100

Gabriel

12/01/2002

101

Carla

15/01/2002

(Pedro da Costa, 20/06/1992, 140.222.215-10)
(Mariana da Silva, 12/10/2000, 120.255.555-06)
(Maria Clara, 03/12/1956, 989.187.111-12)

102

Rafael

02/02/2002

103

Maria Julia

05/03/2004

104

Juliana

10/05/2005

São tuplas da relação PESSOA

Acesse: www.proseando-codigos.rhcloud.com
Tupla


Uma Tupla é composta de valores, valores estes que são chamados de
ATRIBUTOS de uma relação.



Exemplos:
Titulo x Diretor x Ano_Lancamento x Duracao
são atributos da relação Filme
Nome x Data_Nascimento x CPF
são atributos da relação Pessoa

Acesse: www.proseando-codigos.rhcloud.com
Domínio


Um atributo assumir um valor dentro de um conjunto de valores
possíveis, este conjunto denomina-se por Domínio de atributo



Exemplos:


Temperatura, Atributo da relação Clima só pode assumir valores do
conjunto numérico no intervalo [-90 90]



Estado, atributo da relação Cliente, só pode assumir um valor
dentro do conjunto:
{SP, MG, PR, RJ, SC, BA,..., GO }

Acesse: www.proseando-codigos.rhcloud.com
Tuplas e Domínio


A tabela abaixo traz a relação Aluno, cada linha desta relação consistem de
um tupla-3 (a1, a2 e a3), onde:


a1 é o código de matricula do aluno que encontrar-se no domínio D1;



a2 é o nome do aluno matriculado que encontra-se no domínio D2;



a3 é a data de realização da matricula do aluno que encontra-se no
domínio D3.
CodigoMatricola

Assim sendo, Aluno é um
subconjunto dos domínios:




Nome

Data_Matricola

100

Gabriel

12/01/2002

101

Carla

15/01/2002

102

Rafael

02/02/2002

103

Maria Julia

05/03/2004

104

Juliana

10/05/2005

D1 x D2 x D3

Acesse: www.proseando-codigos.rhcloud.com
Chave Primaria


Cada relação existente possui uma Chave Primaria, que é um identificador
único, que na maioria das vezes é estabelecido por um atributo como mostra
o exemplo 1, em alguns casos específicos pode ser estabelecido por dois ou
mais atributos ilustrado no exemplo 2.



Exemplo 1:




CODIGO_ALUNO

Exemplo 2:


(CODGO_VENDA, NUMERO_PARCELA), isto significa que para identificar
uma tupla desta tabela é necessário ter o código da venda e do numero
da conta.

Acesse: www.proseando-codigos.rhcloud.com
Exemplificação
Chave Primaria
CodigoMatricola

Data_Matricola

100

Gabriel
Carla

15/01/2002

102

Rafael

02/02/2002

103

Maria Julia

05/03/2004

104

Juliana

DOMÍNIOS

12/01/2002

101

RELAÇÃO

Nome

10/05/2005

TUPLAS

ATRIBUTOS
Acesse: www.proseando-codigos.rhcloud.com
Relacionamento entre relações


Relacionamento de tabelas no modelo relacional.


Exemplo: como descobrir qual curso faz o aluno?
1

Curso

TituloCur

CodCurso

N

Faz

Aluno
Nome

CodAluno

Bloco

DataNasc

Curso

Aluno

CodCurso TituloCur

Bloco

CodAluno

Nome

DataNasc

C1

Ciência da computação Amarelo

100

Gabriel

12/01/1992

C2

Sistema de Informação

Amarelo

101

Carla

15/01/1990

C3

Engenharia Civil

Lilás

102

Rafael

02/02/1985

C4

Administração

Vermelho

103

Maria Julia

05/03/1993
Acesse: www.proseando-codigos.rhcloud.com
Chave Estrangeira



Refere-se ao relacionamento de tabelas diferentes em uma banco de dados.



Quando uma tabela se relaciona com outra inclui-se a chave primaria da outra tabela .
Esta coluna é chamada CHAVE ESTRANGEIRA.



Exemplo: NumCurso é chave estrangeira de alunos, que é referencia a chave primaria
codCurso da tabela Curso.

Curso

Aluno

CodCurso TituloCur

Bloco

CodAluno

Nome

DataNasc

NumCurso

C1

Ciência da computação Amarelo

100

Gabriel

12/01/1992

C2

C2

Sistema de Informação

Amarelo

101

Carla

15/01/1990

C4

C3

Engenharia Civil

Lilás

102

Rafael

02/02/1985

C1

C4

Administração

Vermelho

103

Maria Julia

05/03/1993

C1

Acesse: www.proseando-codigos.rhcloud.com
Esquema Relacional


A diversas formas de representar um esquema que representa as relações
atributos e chaves de um banco de dados relacional. Veja abaixo algumas
delas.



Exemplos:

Curso

Disciplina
Cod_disc

Titulo

Curso

Curso

Horas

Disciplina

# Cod_curso

# Cod_disc

Titulo

Titulo

Area_conhecimento

Curso (FK)

Duracao

Horas
Acesse: www.proseando-codigos.rhcloud.com
Restrições de Integridade


Restrições de Integridade são regras a respeito dos valores que podem
ser armazenados nas relações e que devem ser satisfeitas em todas as
relações do banco de dados.



As principais são:


Restrição de Unicidade de Chave



Restrição de Integridade da Entidade



Restrição de Integridade Referencial

Acesse: www.proseando-codigos.rhcloud.com
Modelo Relacional - Restrições


Restrição de UNICIDADE DE CHAVE


Uma chave primaria nunca pode ter o mesmo valor em duas tuplas
diferentes da mesmo relação



Exemplo: Dada uma relação Aluno, o atributo CodAluno que é a chave
primaria, não pode estar em duas tuplas diferentes pois ela perderia sua
identidade.
Aluno
CodAluno

Nome

DataNasc

100

Gabriel

12/01/1992

101

Carla

15/01/1990

102

Rafael

02/02/1985

102

Maria Julia

05/03/1993
Acesse: www.proseando-codigos.rhcloud.com
Modelo Relacional - Restrições


Restrição de INTEGRIDADE DA ENTIDADE


A chave primaria de qualquer relação não pode possuir valor nulo em
nem uma pupla da relação, pois sem valor a tupla não pode ser
identificada e por consequência disto ela não poderia ser recuperada.
Aluno
CodAluno

Nome

DataNasc

100

Gabriel

12/01/1992

101

Carla

15/01/1990

null

Rafael

02/02/1985

Acesse: www.proseando-codigos.rhcloud.com
Modelo Relacional - Restrições


Restrição de INTEGRIDADE REFERANCIAL


Esta restrição envolve duas relações ela é usada para manter a
consistência entre os dados de tabelas distintas.



Ela especifica que o valor de uma chave estrangeira DEVE EXISTIR na
relação que ela faz referencia.

Exemplo:
Curso


Aluno

CodCurso TituloCur

CodAluno

Nome

CodCurso

C1

Ciência da computação

100

Gabriel

C1

C2

Sistema de Informação

101

Carla

C2

102

Rafael

C3

“C3” não existe que se encontra
nesta tupla não existe em Curso,
infringindo a integridade referencial

Acesse: www.proseando-codigos.rhcloud.com
Linguagem de Consulta


A linguagem de consulta é a qual um o usuário pode requisitar
informações do banco de dados e manipular tais informações.



Os SGBDs disponibiliza uma linguagem de consulta que possui um
CONJUNTO DE OPERADORES chamados de comandos para manipular
as relações(tabelas).

Acesse: www.proseando-codigos.rhcloud.com
Álgebra Relacional


ÁLGEBRA RELACIONAL é uma linguagem que possui um conjunto de
operações para manipular as relações:



Operações da teoria de conjuntos(matemática): UNIÃO, INTERSEÇÃO,
DIFERENÇA E PRODUTO CARTESIANO.



Operações desenvolvidas especialmente para os bancos de dados
relacionais: SELEÇÃO, PROJEÇÃO E JUNÇÃO.

Acesse: www.proseando-codigos.rhcloud.com
Álgebra Relacional


Descrição das operações desenvolvidas para os bancos de dados
relacionais


SELEÇÃO

seleciona um subconjunto de tuplas (registros)



PROJEÇÃO

seleciona um subconjunto de atributos



JUNÇÃO

combina tabelas por atributos em comum

Acesse: www.proseando-codigos.rhcloud.com
Álgebra Relacional


SELEÇÃO

seleciona linhas conforme um condição

Curso

Aluno

CodCurso TituloCur

CodMatr

Nome

Ano

NumCurso

C1

Ciência da computação

100

Gabriel

2000

C2

C2

Sistema de Informação

101

Carla

2010

C4

C3

Engenharia Civil

102

Rafael

2013

C1

C4

Administração

103

Maria Julia

2013

C2

CodMatr

Mostra alunos que
entraram em 2013

Nome

Ano

Curso

102

Rafael

2013

C1

103

Maria Julia

2013

C2

Acesse: www.proseando-codigos.rhcloud.com
Álgebra Relacional


PROJEÇÃO mostra atributos selecionados

Curso

Aluno

CodCurso TituloCur

CodMatr

Nome

Ano

NumCurso

C1

Ciência da computação

100

Gabriel

2000

C2

C2

Sistema de Informação

101

Carla

2010

C4

C3

Engenharia Civil

102

Rafael

2013

C1

C4

Administração

103

Maria Julia

2013

C2

CodMatr
100

Mostra CodMatr e
Nome do Aluno

Nome
Gabriel

101

Carla

102

Rafael

103

Maria Julia
Acesse: www.proseando-codigos.rhcloud.com
Álgebra Relacional


SELEÇÃO + PREJEÇÃO

Mostra atributos selecionados de linhas selecionadas

Curso

Aluno

CodCurso TituloCur

CodMatr

Nome

Ano

NumCurso

C1

Ciência da computação

100

Gabriel

2000

C2

C2

Sistema de Informação

101

Carla

2010

C4

C3

Engenharia Civil

102

Rafael

2013

C1

C4

Administração

103

Maria Julia

2013

C2

Mostra Nome e Curso
de Alunos que
começaram em 2013

Nome

NumCurso

Rafael

C1

Maria Julia

C2

Acesse: www.proseando-codigos.rhcloud.com
Álgebra Relacional


SELEÇÃO + PREJEÇÃO

Mostra atributos selecionados de linhas selecionadas

Curso

Aluno

CodCurso TituloCur

CodMatr

Nome

Ano

NumCurso

C1

Ciência da computação

100

Gabriel

2000

C2

C2

Sistema de Informação

101

Carla

2010

C4

C3

Engenharia Civil

102

Rafael

2013

C1

C4

Administração

103

Maria Julia

2013

C2

Mostra Matricola e
Nome de Alunos que o
nome comece com a
letra “G”

CodMatr

Nome

100

Gabriel

Acesse: www.proseando-codigos.rhcloud.com
Álgebra Relacional


JUNÇÃO une tabelas por meio de um atributo em comum
Curso

Aluno

CodCurso TituloCur

CodMatr

Nome

Ano

NumCurso

C1

Ciência da computação

100

Gabriel

2000

C2

C2

Sistema de Informação

101

Carla

2010

C3

C3

Engenharia Civil

102

Rafael

2013

C1

Nome

Ano

TitiloCur

Gabriel

2000

Ciência da Computação

Carla

2010

Engenharia Civil

Rafael

2013

Sistema de Informação

Mostra Nome e ano da
tabela alunos Junto com
TituloCurs da tabela
curso(para
ALUNOS.NumCurso =
CURSO.CodCurso)

Acesse: www.proseando-codigos.rhcloud.com
Álgebra Relacional


Operações da teoria de conjuntos(matemática):


UNIÃO

AB



INTERSEÇÃO

AB



DIFERENÇA

A–B



PRODUTO CARTESIANO

AxB

Acesse: www.proseando-codigos.rhcloud.com
Operadores de Conjuntos


UNIÃO A  B (esta em A ou em B – todas as linhas)

ALUNOS com ANO de MATRICOLA < 2013

ALUNOS com CURSO = Administração

Matri

Nome

Ano

Curso

Matri

Nome

Ano

Curso

100

João Silva

2012

Direito

350

Marcela Ribeiro

2013

Administração

120

José Carlos

2011

Direito

200

Carlos Gonçalves

2010

Administração

202

Pedro Ribeiro

2012

Administração

222

Maria Covas

2013

Administração

ALUNO(A)  ALUNO(B)
Matri

Mostra Alunos que
começaram antes de
2013 ou que fazem
Administração

Nome

Ano

Curso

100

João Silva

2012

Direito

120

José Carlos

2011

Direito

350

Marcela Ribeiro

2013

Administração

202

Pedro Ribeiro

2012

Administração

222

Maria Covas

2013

Administração

Acesse: www.proseando-codigos.rhcloud.com
Operadores de Conjuntos


INTERSEÇÃO A  B (esta em A e em B – linha em comum)

ALUNOS com Ano de matricula = 2012

ALUNOS com Curso Direito

Matri

Nome

Ano

Curso

Matri

Nome

Ano

Curso

100

João Silva

2012

Direito

100

João Silva

2012

Direito

200

Pedro Ribeiro

2012

Administração

120

José Carlos

2011

Direito

ALUNO (A)  Aluno(B)
Mostra Alunos que
começaram em 2012 e
que fazem Direito

Matri

Nome

Ano

Curso

100

João Silva

2012

Direito

Acesse: www.proseando-codigos.rhcloud.com
Operadores de Conjuntos


DIFERENÇA A – B (está em A e não em B – subtração de linhas)

ALUNOS com Ano de matricula = 2012

ALUNOS com Curso Direito

Matri

Nome

Ano

Curso

Matri

Nome

Ano

Curso

100

João Silva

2012

Direito

100

João Silva

2012

Direito

200

Pedro Ribeiro

2012

Administração

120

José Carlos

2011

Direito

ALUNO (A) - Aluno(B)
Mostra Alunos que
começaram em 2012 e
não fazem Direito

Matri

Nome

Ano

Curso

200

Pedro Ribeiro

2012

Administração

Acesse: www.proseando-codigos.rhcloud.com
Operadores de Conjuntos


PRODUTO CARTESIANO A x B (combinação de todas as tuplas)

ALUNO

DISCIPLINA

Matri

Nome

Curso

CodigoDisc

Titulo

100

João Silva

Direito

302

Direito Penal

120

José Carlos

Direito

303

Filosofia

ALUNO x DISCIPLINA
Matri

Produto cartesiano:
combinação entre todos
os alunos e todas as
disciplinas

Nome

Curso

CodigoDisc

Titulo

100

João Silva

Direito

302

Direito Penal

100

João Silva

Direito

303

Filosofia

120

José Carlos

Direito

302

Direito Penal

120

José Carlos

Direito

303

Filosofia

Acesse: www.proseando-codigos.rhcloud.com
Bibliografia


SILBERSCHATZ, . Modelo Relacional (capítulo 3). Em: Sistema de
Banco de Dados, Makron: 1999.



DATE, C.J. Introdução a Sistemas de Banco de Dados, tradução da
7.ed, Campus: 2000.



TAKAI,O.K.; ITALIANO,I.C.; FERREIRA,J.E. O Modelo de Dados
Relacional (capítulo 5). Em: Introdução a Banco de Dados (apostila).
DCC-IME-USP, 2005



BIAJIZ, M. Modelo Relacional (capítulo 3). Em: Banco de Dados
(apostila). DC-UFSCar, 2001.

Acesse: www.proseando-codigos.rhcloud.com

Weitere ähnliche Inhalte

Andere mochten auch

Formulario historia medica
Formulario historia medicaFormulario historia medica
Formulario historia medicaevelynecopetrol
 
Caso de reabsorción fórum rpc
Caso de reabsorción fórum rpcCaso de reabsorción fórum rpc
Caso de reabsorción fórum rpcSérgio Quaresma
 
27 consulta orientada pelo problema - meu prontuario
27   consulta orientada pelo problema  - meu prontuario27   consulta orientada pelo problema  - meu prontuario
27 consulta orientada pelo problema - meu prontuarioLeonardo Alves
 
Consulta
ConsultaConsulta
Consultamireya
 
Consulta rápida (usando modelos)
Consulta rápida (usando modelos)Consulta rápida (usando modelos)
Consulta rápida (usando modelos)Leonardo Alves
 
Ambulatório
AmbulatórioAmbulatório
AmbulatórioSTI
 
Manual de Psicologia Hospitalar
Manual de Psicologia HospitalarManual de Psicologia Hospitalar
Manual de Psicologia HospitalarMaylu Souza
 
A consulta em 7 passos trabalho de alunos
A consulta em 7 passos trabalho de alunosA consulta em 7 passos trabalho de alunos
A consulta em 7 passos trabalho de alunosCarla Couto
 
Consultar um dicionário
Consultar um dicionárioConsultar um dicionário
Consultar um dicionárioBescas
 
Consulta MéDica O Que Você Deve Saber Perguntar1
Consulta MéDica   O Que Você Deve Saber Perguntar1Consulta MéDica   O Que Você Deve Saber Perguntar1
Consulta MéDica O Que Você Deve Saber Perguntar1chirlei ferreira
 
Consulta Enfermagem Doente Respiratório
Consulta Enfermagem Doente RespiratórioConsulta Enfermagem Doente Respiratório
Consulta Enfermagem Doente RespiratórioBelmiro Rocha
 
Cultura e interacao paciente-profissional
Cultura e interacao paciente-profissionalCultura e interacao paciente-profissional
Cultura e interacao paciente-profissionalLuís Fernando Tófoli
 
Gocs trabalho
Gocs trabalhoGocs trabalho
Gocs trabalhoRui Alves
 
Acreditação Hospitalar
Acreditação HospitalarAcreditação Hospitalar
Acreditação HospitalarDenise Selegato
 
Enferagem em clinica médica em clínica médica
Enferagem em clinica médica em clínica médica Enferagem em clinica médica em clínica médica
Enferagem em clinica médica em clínica médica Jackson Silva
 
Materiais médicos hospitalares 2
Materiais médicos hospitalares 2Materiais médicos hospitalares 2
Materiais médicos hospitalares 2cristianoafranca
 

Andere mochten auch (20)

Formulario historia medica
Formulario historia medicaFormulario historia medica
Formulario historia medica
 
Caso de reabsorción fórum rpc
Caso de reabsorción fórum rpcCaso de reabsorción fórum rpc
Caso de reabsorción fórum rpc
 
27 consulta orientada pelo problema - meu prontuario
27   consulta orientada pelo problema  - meu prontuario27   consulta orientada pelo problema  - meu prontuario
27 consulta orientada pelo problema - meu prontuario
 
Consulta
ConsultaConsulta
Consulta
 
Consulta rápida (usando modelos)
Consulta rápida (usando modelos)Consulta rápida (usando modelos)
Consulta rápida (usando modelos)
 
Ambulatório
AmbulatórioAmbulatório
Ambulatório
 
Manual de Psicologia Hospitalar
Manual de Psicologia HospitalarManual de Psicologia Hospitalar
Manual de Psicologia Hospitalar
 
A consulta em 7 passos trabalho de alunos
A consulta em 7 passos trabalho de alunosA consulta em 7 passos trabalho de alunos
A consulta em 7 passos trabalho de alunos
 
Consultar um dicionário
Consultar um dicionárioConsultar um dicionário
Consultar um dicionário
 
Consulta MéDica O Que Você Deve Saber Perguntar1
Consulta MéDica   O Que Você Deve Saber Perguntar1Consulta MéDica   O Que Você Deve Saber Perguntar1
Consulta MéDica O Que Você Deve Saber Perguntar1
 
Consulta Enfermagem Doente Respiratório
Consulta Enfermagem Doente RespiratórioConsulta Enfermagem Doente Respiratório
Consulta Enfermagem Doente Respiratório
 
Cultura e interacao paciente-profissional
Cultura e interacao paciente-profissionalCultura e interacao paciente-profissional
Cultura e interacao paciente-profissional
 
Gocs trabalho
Gocs trabalhoGocs trabalho
Gocs trabalho
 
Acreditação Hospitalar
Acreditação HospitalarAcreditação Hospitalar
Acreditação Hospitalar
 
Abordagem Centrada na Pessoa
Abordagem Centrada na PessoaAbordagem Centrada na Pessoa
Abordagem Centrada na Pessoa
 
Clínica Médica l
Clínica Médica lClínica Médica l
Clínica Médica l
 
Enferagem em clinica médica em clínica médica
Enferagem em clinica médica em clínica médica Enferagem em clinica médica em clínica médica
Enferagem em clinica médica em clínica médica
 
Comunicação com o paciente
Comunicação com o pacienteComunicação com o paciente
Comunicação com o paciente
 
Materiais médicos hospitalares 2
Materiais médicos hospitalares 2Materiais médicos hospitalares 2
Materiais médicos hospitalares 2
 
EQUIPAMENTOS E MATERIAIS HOSPITALARES 2
EQUIPAMENTOS E MATERIAIS HOSPITALARES 2EQUIPAMENTOS E MATERIAIS HOSPITALARES 2
EQUIPAMENTOS E MATERIAIS HOSPITALARES 2
 

Ähnlich wie Conceitos básicos, linguagem de consulta e álgebra

Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo RelacionalJoel Santos
 
aula2_algebra_calculo.pdf
aula2_algebra_calculo.pdfaula2_algebra_calculo.pdf
aula2_algebra_calculo.pdfLeonardo Neves
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 2/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 2/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 2/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 2/8Emiliano Barbosa
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquicorosimaracorsino
 
diagrama-classes definição para curso professional
diagrama-classes definição para curso professionaldiagrama-classes definição para curso professional
diagrama-classes definição para curso professionalJoaquina30
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoDaniel Brandão
 
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - CachéApresentação Banco de Dados - Caché
Apresentação Banco de Dados - CachéRenzo Petri
 
Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptJoberthSilva
 
MODELOS DE DADOS - Parte 3 Bancos de Dados
MODELOS DE DADOS - Parte 3 Bancos de DadosMODELOS DE DADOS - Parte 3 Bancos de Dados
MODELOS DE DADOS - Parte 3 Bancos de DadosUlrich Schiel
 
Álgebra Linear e SQL Banco de Dados.pdf
Álgebra Linear e  SQL Banco de Dados.pdfÁlgebra Linear e  SQL Banco de Dados.pdf
Álgebra Linear e SQL Banco de Dados.pdfgabriel-colman
 
Banco de Dados (parte 01)
Banco de Dados (parte 01)Banco de Dados (parte 01)
Banco de Dados (parte 01)Alex Camargo
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de DadosDaniel Brandão
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Miguel Aquino
 
Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Emiliano Barbosa
 
Bancos de Dados para Bibliotecários
Bancos de Dados para BibliotecáriosBancos de Dados para Bibliotecários
Bancos de Dados para BibliotecáriosLuciano Ramalho
 

Ähnlich wie Conceitos básicos, linguagem de consulta e álgebra (20)

Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
aula2_algebra_calculo.pdf
aula2_algebra_calculo.pdfaula2_algebra_calculo.pdf
aula2_algebra_calculo.pdf
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 2/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 2/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 2/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 2/8
 
Diagrama de E-R.pptx
Diagrama de E-R.pptxDiagrama de E-R.pptx
Diagrama de E-R.pptx
 
Bd ii material
Bd ii   materialBd ii   material
Bd ii material
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
 
diagrama-classes definição para curso professional
diagrama-classes definição para curso professionaldiagrama-classes definição para curso professional
diagrama-classes definição para curso professional
 
Introdução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel BrandãoIntrodução ao Banco de dados - Prof. Daniel Brandão
Introdução ao Banco de dados - Prof. Daniel Brandão
 
Apresentação Banco de Dados - Caché
Apresentação Banco de Dados - CachéApresentação Banco de Dados - Caché
Apresentação Banco de Dados - Caché
 
Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.ppt
 
Sistema acadêmico
Sistema acadêmicoSistema acadêmico
Sistema acadêmico
 
MODELOS DE DADOS - Parte 3 Bancos de Dados
MODELOS DE DADOS - Parte 3 Bancos de DadosMODELOS DE DADOS - Parte 3 Bancos de Dados
MODELOS DE DADOS - Parte 3 Bancos de Dados
 
Álgebra Linear e SQL Banco de Dados.pdf
Álgebra Linear e  SQL Banco de Dados.pdfÁlgebra Linear e  SQL Banco de Dados.pdf
Álgebra Linear e SQL Banco de Dados.pdf
 
Banco de Dados (parte 01)
Banco de Dados (parte 01)Banco de Dados (parte 01)
Banco de Dados (parte 01)
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de Dados
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]
 
Bd02 banco de dados
Bd02 banco de dadosBd02 banco de dados
Bd02 banco de dados
 
Banco de Dados Relacional Estendido
Banco de Dados Relacional EstendidoBanco de Dados Relacional Estendido
Banco de Dados Relacional Estendido
 
Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8
 
Bancos de Dados para Bibliotecários
Bancos de Dados para BibliotecáriosBancos de Dados para Bibliotecários
Bancos de Dados para Bibliotecários
 

Conceitos básicos, linguagem de consulta e álgebra

  • 1. Banco de Dados Conceitos básicos, linguagem de consulta e álgebra relacional Luan Henrique Scarparo Ciência da Computação
  • 2. Definição de Modelo relacional  Baseado em teorias dos conjuntos de álgebra relacional o Modelo Relacional é um modelo para armazenamento e manutenção de banco de dados.  Os primeiros conceitos deste modelo foram desenvolvidos por Codd em 1970 e expandidos em 1979.  Embora que o nome seja parecido, o Modelo Relacional não é o mesmo que Modelo Entidade-Ralacionamento.  O Modelo Relacional foi o primeiro modelo que se estabeleceu para aplicações comercias. Acesse: www.proseando-codigos.rhcloud.com
  • 3. Estrutura básica de uma relação  Seja nome_cliente = {Pedro, Joaquim, Maria, Daniela} rua_cliente = {Presidente Vargas ,Castelo Branco, Marginal Tiete} cidade_cliente = {Franca, Ribeirão Preto, São Paulo}  Então R = { (Pedro, Presidente Vargas, Franca), (Joaquim, Castelo Branco, Ribeirão Preto), (Maria, Castelo Branco, Ribeirão Preto), (Daniela, Marginal Tiete, São Paulo) }  Esta é uma relação entre:  nome_cliente x nome_rua x nome_cidade Acesse: www.proseando-codigos.rhcloud.com
  • 4. Relações  Todos os dados são representados como Relações.  Uma instância de uma relação, pode ser chamado de tabela.  Cada tabela possui um nome único em todo o banco dados CodigoMatricola Nome Data_Matricola 100 Gabriel 12/01/2002 101 Carla 15/01/2002 102 Rafael 02/02/2002 103 Maria Julia 05/03/2004 104 Juliana 10/05/2005 Acesse: www.proseando-codigos.rhcloud.com
  • 5. Tuplas  Em uma relação uma linha é representada uma instância da relação com valores definidos, e recebe o nome de TUPLA.  Uma TUPLA é uma linha inteira de informações. CodigoMatricola Nome TUPLA Data_Matricola Exemplo 100 Gabriel 12/01/2002 101 Carla 15/01/2002 (Pedro da Costa, 20/06/1992, 140.222.215-10) (Mariana da Silva, 12/10/2000, 120.255.555-06) (Maria Clara, 03/12/1956, 989.187.111-12) 102 Rafael 02/02/2002 103 Maria Julia 05/03/2004 104 Juliana 10/05/2005 São tuplas da relação PESSOA Acesse: www.proseando-codigos.rhcloud.com
  • 6. Tupla  Uma Tupla é composta de valores, valores estes que são chamados de ATRIBUTOS de uma relação.  Exemplos: Titulo x Diretor x Ano_Lancamento x Duracao são atributos da relação Filme Nome x Data_Nascimento x CPF são atributos da relação Pessoa Acesse: www.proseando-codigos.rhcloud.com
  • 7. Domínio  Um atributo assumir um valor dentro de um conjunto de valores possíveis, este conjunto denomina-se por Domínio de atributo  Exemplos:  Temperatura, Atributo da relação Clima só pode assumir valores do conjunto numérico no intervalo [-90 90]  Estado, atributo da relação Cliente, só pode assumir um valor dentro do conjunto: {SP, MG, PR, RJ, SC, BA,..., GO } Acesse: www.proseando-codigos.rhcloud.com
  • 8. Tuplas e Domínio  A tabela abaixo traz a relação Aluno, cada linha desta relação consistem de um tupla-3 (a1, a2 e a3), onde:  a1 é o código de matricula do aluno que encontrar-se no domínio D1;  a2 é o nome do aluno matriculado que encontra-se no domínio D2;  a3 é a data de realização da matricula do aluno que encontra-se no domínio D3. CodigoMatricola Assim sendo, Aluno é um subconjunto dos domínios:   Nome Data_Matricola 100 Gabriel 12/01/2002 101 Carla 15/01/2002 102 Rafael 02/02/2002 103 Maria Julia 05/03/2004 104 Juliana 10/05/2005 D1 x D2 x D3 Acesse: www.proseando-codigos.rhcloud.com
  • 9. Chave Primaria  Cada relação existente possui uma Chave Primaria, que é um identificador único, que na maioria das vezes é estabelecido por um atributo como mostra o exemplo 1, em alguns casos específicos pode ser estabelecido por dois ou mais atributos ilustrado no exemplo 2.  Exemplo 1:   CODIGO_ALUNO Exemplo 2:  (CODGO_VENDA, NUMERO_PARCELA), isto significa que para identificar uma tupla desta tabela é necessário ter o código da venda e do numero da conta. Acesse: www.proseando-codigos.rhcloud.com
  • 11. Relacionamento entre relações  Relacionamento de tabelas no modelo relacional.  Exemplo: como descobrir qual curso faz o aluno? 1 Curso TituloCur CodCurso N Faz Aluno Nome CodAluno Bloco DataNasc Curso Aluno CodCurso TituloCur Bloco CodAluno Nome DataNasc C1 Ciência da computação Amarelo 100 Gabriel 12/01/1992 C2 Sistema de Informação Amarelo 101 Carla 15/01/1990 C3 Engenharia Civil Lilás 102 Rafael 02/02/1985 C4 Administração Vermelho 103 Maria Julia 05/03/1993 Acesse: www.proseando-codigos.rhcloud.com
  • 12. Chave Estrangeira  Refere-se ao relacionamento de tabelas diferentes em uma banco de dados.  Quando uma tabela se relaciona com outra inclui-se a chave primaria da outra tabela . Esta coluna é chamada CHAVE ESTRANGEIRA.  Exemplo: NumCurso é chave estrangeira de alunos, que é referencia a chave primaria codCurso da tabela Curso. Curso Aluno CodCurso TituloCur Bloco CodAluno Nome DataNasc NumCurso C1 Ciência da computação Amarelo 100 Gabriel 12/01/1992 C2 C2 Sistema de Informação Amarelo 101 Carla 15/01/1990 C4 C3 Engenharia Civil Lilás 102 Rafael 02/02/1985 C1 C4 Administração Vermelho 103 Maria Julia 05/03/1993 C1 Acesse: www.proseando-codigos.rhcloud.com
  • 13. Esquema Relacional  A diversas formas de representar um esquema que representa as relações atributos e chaves de um banco de dados relacional. Veja abaixo algumas delas.  Exemplos: Curso Disciplina Cod_disc Titulo Curso Curso Horas Disciplina # Cod_curso # Cod_disc Titulo Titulo Area_conhecimento Curso (FK) Duracao Horas Acesse: www.proseando-codigos.rhcloud.com
  • 14. Restrições de Integridade  Restrições de Integridade são regras a respeito dos valores que podem ser armazenados nas relações e que devem ser satisfeitas em todas as relações do banco de dados.  As principais são:  Restrição de Unicidade de Chave  Restrição de Integridade da Entidade  Restrição de Integridade Referencial Acesse: www.proseando-codigos.rhcloud.com
  • 15. Modelo Relacional - Restrições  Restrição de UNICIDADE DE CHAVE  Uma chave primaria nunca pode ter o mesmo valor em duas tuplas diferentes da mesmo relação  Exemplo: Dada uma relação Aluno, o atributo CodAluno que é a chave primaria, não pode estar em duas tuplas diferentes pois ela perderia sua identidade. Aluno CodAluno Nome DataNasc 100 Gabriel 12/01/1992 101 Carla 15/01/1990 102 Rafael 02/02/1985 102 Maria Julia 05/03/1993 Acesse: www.proseando-codigos.rhcloud.com
  • 16. Modelo Relacional - Restrições  Restrição de INTEGRIDADE DA ENTIDADE  A chave primaria de qualquer relação não pode possuir valor nulo em nem uma pupla da relação, pois sem valor a tupla não pode ser identificada e por consequência disto ela não poderia ser recuperada. Aluno CodAluno Nome DataNasc 100 Gabriel 12/01/1992 101 Carla 15/01/1990 null Rafael 02/02/1985 Acesse: www.proseando-codigos.rhcloud.com
  • 17. Modelo Relacional - Restrições  Restrição de INTEGRIDADE REFERANCIAL  Esta restrição envolve duas relações ela é usada para manter a consistência entre os dados de tabelas distintas.  Ela especifica que o valor de uma chave estrangeira DEVE EXISTIR na relação que ela faz referencia. Exemplo: Curso  Aluno CodCurso TituloCur CodAluno Nome CodCurso C1 Ciência da computação 100 Gabriel C1 C2 Sistema de Informação 101 Carla C2 102 Rafael C3 “C3” não existe que se encontra nesta tupla não existe em Curso, infringindo a integridade referencial Acesse: www.proseando-codigos.rhcloud.com
  • 18. Linguagem de Consulta  A linguagem de consulta é a qual um o usuário pode requisitar informações do banco de dados e manipular tais informações.  Os SGBDs disponibiliza uma linguagem de consulta que possui um CONJUNTO DE OPERADORES chamados de comandos para manipular as relações(tabelas). Acesse: www.proseando-codigos.rhcloud.com
  • 19. Álgebra Relacional  ÁLGEBRA RELACIONAL é uma linguagem que possui um conjunto de operações para manipular as relações:  Operações da teoria de conjuntos(matemática): UNIÃO, INTERSEÇÃO, DIFERENÇA E PRODUTO CARTESIANO.  Operações desenvolvidas especialmente para os bancos de dados relacionais: SELEÇÃO, PROJEÇÃO E JUNÇÃO. Acesse: www.proseando-codigos.rhcloud.com
  • 20. Álgebra Relacional  Descrição das operações desenvolvidas para os bancos de dados relacionais  SELEÇÃO seleciona um subconjunto de tuplas (registros)  PROJEÇÃO seleciona um subconjunto de atributos  JUNÇÃO combina tabelas por atributos em comum Acesse: www.proseando-codigos.rhcloud.com
  • 21. Álgebra Relacional  SELEÇÃO seleciona linhas conforme um condição Curso Aluno CodCurso TituloCur CodMatr Nome Ano NumCurso C1 Ciência da computação 100 Gabriel 2000 C2 C2 Sistema de Informação 101 Carla 2010 C4 C3 Engenharia Civil 102 Rafael 2013 C1 C4 Administração 103 Maria Julia 2013 C2 CodMatr Mostra alunos que entraram em 2013 Nome Ano Curso 102 Rafael 2013 C1 103 Maria Julia 2013 C2 Acesse: www.proseando-codigos.rhcloud.com
  • 22. Álgebra Relacional  PROJEÇÃO mostra atributos selecionados Curso Aluno CodCurso TituloCur CodMatr Nome Ano NumCurso C1 Ciência da computação 100 Gabriel 2000 C2 C2 Sistema de Informação 101 Carla 2010 C4 C3 Engenharia Civil 102 Rafael 2013 C1 C4 Administração 103 Maria Julia 2013 C2 CodMatr 100 Mostra CodMatr e Nome do Aluno Nome Gabriel 101 Carla 102 Rafael 103 Maria Julia Acesse: www.proseando-codigos.rhcloud.com
  • 23. Álgebra Relacional  SELEÇÃO + PREJEÇÃO Mostra atributos selecionados de linhas selecionadas Curso Aluno CodCurso TituloCur CodMatr Nome Ano NumCurso C1 Ciência da computação 100 Gabriel 2000 C2 C2 Sistema de Informação 101 Carla 2010 C4 C3 Engenharia Civil 102 Rafael 2013 C1 C4 Administração 103 Maria Julia 2013 C2 Mostra Nome e Curso de Alunos que começaram em 2013 Nome NumCurso Rafael C1 Maria Julia C2 Acesse: www.proseando-codigos.rhcloud.com
  • 24. Álgebra Relacional  SELEÇÃO + PREJEÇÃO Mostra atributos selecionados de linhas selecionadas Curso Aluno CodCurso TituloCur CodMatr Nome Ano NumCurso C1 Ciência da computação 100 Gabriel 2000 C2 C2 Sistema de Informação 101 Carla 2010 C4 C3 Engenharia Civil 102 Rafael 2013 C1 C4 Administração 103 Maria Julia 2013 C2 Mostra Matricola e Nome de Alunos que o nome comece com a letra “G” CodMatr Nome 100 Gabriel Acesse: www.proseando-codigos.rhcloud.com
  • 25. Álgebra Relacional  JUNÇÃO une tabelas por meio de um atributo em comum Curso Aluno CodCurso TituloCur CodMatr Nome Ano NumCurso C1 Ciência da computação 100 Gabriel 2000 C2 C2 Sistema de Informação 101 Carla 2010 C3 C3 Engenharia Civil 102 Rafael 2013 C1 Nome Ano TitiloCur Gabriel 2000 Ciência da Computação Carla 2010 Engenharia Civil Rafael 2013 Sistema de Informação Mostra Nome e ano da tabela alunos Junto com TituloCurs da tabela curso(para ALUNOS.NumCurso = CURSO.CodCurso) Acesse: www.proseando-codigos.rhcloud.com
  • 26. Álgebra Relacional  Operações da teoria de conjuntos(matemática):  UNIÃO AB  INTERSEÇÃO AB  DIFERENÇA A–B  PRODUTO CARTESIANO AxB Acesse: www.proseando-codigos.rhcloud.com
  • 27. Operadores de Conjuntos  UNIÃO A  B (esta em A ou em B – todas as linhas) ALUNOS com ANO de MATRICOLA < 2013 ALUNOS com CURSO = Administração Matri Nome Ano Curso Matri Nome Ano Curso 100 João Silva 2012 Direito 350 Marcela Ribeiro 2013 Administração 120 José Carlos 2011 Direito 200 Carlos Gonçalves 2010 Administração 202 Pedro Ribeiro 2012 Administração 222 Maria Covas 2013 Administração ALUNO(A)  ALUNO(B) Matri Mostra Alunos que começaram antes de 2013 ou que fazem Administração Nome Ano Curso 100 João Silva 2012 Direito 120 José Carlos 2011 Direito 350 Marcela Ribeiro 2013 Administração 202 Pedro Ribeiro 2012 Administração 222 Maria Covas 2013 Administração Acesse: www.proseando-codigos.rhcloud.com
  • 28. Operadores de Conjuntos  INTERSEÇÃO A  B (esta em A e em B – linha em comum) ALUNOS com Ano de matricula = 2012 ALUNOS com Curso Direito Matri Nome Ano Curso Matri Nome Ano Curso 100 João Silva 2012 Direito 100 João Silva 2012 Direito 200 Pedro Ribeiro 2012 Administração 120 José Carlos 2011 Direito ALUNO (A)  Aluno(B) Mostra Alunos que começaram em 2012 e que fazem Direito Matri Nome Ano Curso 100 João Silva 2012 Direito Acesse: www.proseando-codigos.rhcloud.com
  • 29. Operadores de Conjuntos  DIFERENÇA A – B (está em A e não em B – subtração de linhas) ALUNOS com Ano de matricula = 2012 ALUNOS com Curso Direito Matri Nome Ano Curso Matri Nome Ano Curso 100 João Silva 2012 Direito 100 João Silva 2012 Direito 200 Pedro Ribeiro 2012 Administração 120 José Carlos 2011 Direito ALUNO (A) - Aluno(B) Mostra Alunos que começaram em 2012 e não fazem Direito Matri Nome Ano Curso 200 Pedro Ribeiro 2012 Administração Acesse: www.proseando-codigos.rhcloud.com
  • 30. Operadores de Conjuntos  PRODUTO CARTESIANO A x B (combinação de todas as tuplas) ALUNO DISCIPLINA Matri Nome Curso CodigoDisc Titulo 100 João Silva Direito 302 Direito Penal 120 José Carlos Direito 303 Filosofia ALUNO x DISCIPLINA Matri Produto cartesiano: combinação entre todos os alunos e todas as disciplinas Nome Curso CodigoDisc Titulo 100 João Silva Direito 302 Direito Penal 100 João Silva Direito 303 Filosofia 120 José Carlos Direito 302 Direito Penal 120 José Carlos Direito 303 Filosofia Acesse: www.proseando-codigos.rhcloud.com
  • 31. Bibliografia  SILBERSCHATZ, . Modelo Relacional (capítulo 3). Em: Sistema de Banco de Dados, Makron: 1999.  DATE, C.J. Introdução a Sistemas de Banco de Dados, tradução da 7.ed, Campus: 2000.  TAKAI,O.K.; ITALIANO,I.C.; FERREIRA,J.E. O Modelo de Dados Relacional (capítulo 5). Em: Introdução a Banco de Dados (apostila). DCC-IME-USP, 2005  BIAJIZ, M. Modelo Relacional (capítulo 3). Em: Banco de Dados (apostila). DC-UFSCar, 2001. Acesse: www.proseando-codigos.rhcloud.com