Banco de Dados

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

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

Baseado em teorias dos conjuntos de álgebra relacional o Modelo Relacional é
um modelo p...
Estrutura básica de uma relação


Seja
nome_cliente = {Pedro, Joaquim, Maria, Daniela}
rua_cliente = {Presidente Vargas ,...
Relações


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



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

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

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



Exemplos:
Titulo...
Domínio


Um atributo assumir um valor dentro de um conjunto de valores
possíveis, este conjunto denomina-se por Domínio ...
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), ...
Chave Primaria


Cada relação existente possui uma Chave Primaria, que é um identificador
único, que na maioria das vezes...
Exemplificação
Chave Primaria
CodigoMatricola

Data_Matricola

100

Gabriel
Carla

15/01/2002

102

Rafael

02/02/2002

10...
Relacionamento entre relações


Relacionamento de tabelas no modelo relacional.


Exemplo: como descobrir qual curso faz...
Chave Estrangeira



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



Quando uma tabela se re...
Esquema Relacional


A diversas formas de representar um esquema que representa as relações
atributos e chaves de um banc...
Restrições de Integridade


Restrições de Integridade são regras a respeito dos valores que podem
ser armazenados nas rel...
Modelo Relacional - Restrições


Restrição de UNICIDADE DE CHAVE


Uma chave primaria nunca pode ter o mesmo valor em du...
Modelo Relacional - Restrições


Restrição de INTEGRIDADE DA ENTIDADE


A chave primaria de qualquer relação não pode po...
Modelo Relacional - Restrições


Restrição de INTEGRIDADE REFERANCIAL


Esta restrição envolve duas relações ela é usada...
Linguagem de Consulta


A linguagem de consulta é a qual um o usuário pode requisitar
informações do banco de dados e man...
Álgebra Relacional


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

...
Álgebra Relacional


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

SELEÇÃO

seleciona um s...
Álgebra Relacional


SELEÇÃO

seleciona linhas conforme um condição

Curso

Aluno

CodCurso TituloCur

CodMatr

Nome

Ano...
Álgebra Relacional


PROJEÇÃO mostra atributos selecionados

Curso

Aluno

CodCurso TituloCur

CodMatr

Nome

Ano

NumCur...
Álgebra Relacional


SELEÇÃO + PREJEÇÃO

Mostra atributos selecionados de linhas selecionadas

Curso

Aluno

CodCurso Tit...
Álgebra Relacional


SELEÇÃO + PREJEÇÃO

Mostra atributos selecionados de linhas selecionadas

Curso

Aluno

CodCurso Tit...
Álgebra Relacional


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

Aluno

CodCurso TituloCur

CodMatr

Nome
...
Álgebra Relacional


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

UNIÃO

AB



INTERSEÇÃO

AB



DIFERENÇA

A–B

...
Operadores de Conjuntos


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

ALUNOS com ANO de MATRICOLA < 2013

ALUNOS c...
Operadores de Conjuntos


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

ALUNOS com Ano de matricula = 2012

ALUNO...
Operadores de Conjuntos


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

ALUNOS com Ano de matricula = 201...
Operadores de Conjuntos


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

ALUNO

DISCIPLINA

Matri

Nome

Curso...
Bibliografia


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



DATE, C.J...
Próximos SlideShares
Carregando em…5
×

Conceitos básicos, linguagem de consulta e álgebra

488 visualizações

Publicada em

Publicada em: Tecnologia
1 comentário
1 gostou
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
488
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
0
Comentários
1
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Conceitos básicos, linguagem de consulta e álgebra

  1. 1. Banco de Dados Conceitos básicos, linguagem de consulta e álgebra relacional Luan Henrique Scarparo Ciência da Computação
  2. 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. 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. 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. 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. 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. 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. 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. 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
  10. 10. 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
  11. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×