CC0 DCC011 Introdução a Banco de Dados Introdução a Banco de Dados Álgebra Relacional Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais [email protected]Programa • Introdução • Conceitos básicos, características da abordagem de banco de dados, modelos de dados, esquemas e instâncias, arquitetura de um sistema de banco de dados, componentes de um sistema de gerência de banco de dados. • Modelos de dados e linguagens • Modelo entidade‐relacionamento (ER), modelo relacional, álgebra relacional , SQL. • Projeto de bancos de dados • Projeto de bancos de dados • Fases do projeto de bancos de dados, projeto lógico de bancos de dados relacionais, normalização. • Novas Tecnologias e Aplicações de Banco de Dados DCC011 ‐ profa. Mirella M. Moro 2 Modelos de Dados • Modelo Conceitual • Modelo Entidade‐Relacionamento • Modelo Lógico • Modelo Relacional • TODOS OS DADOS SÃO RELAÇÕES (“tabelas”) i ál b ífi i l dd d l õ • Possui uma álgebra específica para manipular os dados das relações • Álgebra Relacional • Modelo Físico Modelo Físico DCC011 ‐ profa. Mirella M. Moro 3 Álgebra Relacional 1. Introdução 2 Problemas 2. Problemas 3. Seleção 4. Projeção 5 S i 5. Sequencia 6. Conjunto 7. Produto Cartesiano 8. Junções Introdução • Linguagens de consultas: Permitem manipulação e recuperação de dados de um BD • O modelo relacional suporta LCs simples e poderosas: • Forte fundamentação teórica baseada em lógica • Permite otimizações • Ling. de consulta ling. de programação • LCs não tem a intenção de suportar cálculos complexos • LCs suportam acesso fácil e eficiente a grandes conjuntos d dd de dados Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento) DCC011 ‐ profa. Mirella M. Moro 5 LCs relacionais formais Duas LCs matemáticas formam a base para as LCs “reais” (p.ex., SQL), e p/ implementação: 1. Álgebra relacional: Predominantemente operacional, útil para representar planos de execução 2. Cálculo Relacional : Permite usuários descreverm o que querem, ao invés de como querem (não operacional, declarativa) Entender álgebra e cálculo é uma chave para entender SQL e processamento de consultas. Database Management Systems, R. Ramakrishnan (tradução, autorizada, de Anna & Mario Nascimento) DCC011 ‐ profa. Mirella M. Moro 6
8
Embed
DCC011 IntroduçãoaBancodeDadosIntrodução a …homepages.dcc.ufmg.br/~mirella/DCC011/aula11.pdf · relacional, SQL. •ProjetodebancosdedadosProjeto de bancos de dados ... Resumo
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
CC0DCC011Introdução a Banco de DadosIntrodução a Banco de Dados
Álgebra RelacionalMirella M. Moro
Departamento de Ciência da ComputaçãoUniversidade Federal de Minas Gerais
• Introdução• Conceitos básicos, características da abordagem de banco de dados, modelos de dados, esquemas e instâncias, arquitetura de um sistema de banco de dados, componentes de um sistema de gerência , p gde banco de dados.
• Modelos de dados e linguagens• Modelo entidade‐relacionamento (ER), modelo relacional, álgebra relacional, SQL.
• Projeto de bancos de dados• Projeto de bancos de dados• Fases do projeto de bancos de dados, projeto lógico de bancos de dados relacionais, normalização.
• Novas Tecnologias e Aplicações de Banco de Dados
• Linguagens de consultas: Permitem manipulação e g g p çrecuperação de dados de um BD
•O modelo relacional suporta LCs simples e O ode o e ac o a supo ta Cs s p es epoderosas:
• Forte fundamentação teórica baseada em lógica• Permite otimizações
• Ling. de consulta ling. de programação• LCs não tem a intenção de suportar cálculos complexos• LCs suportam acesso fácil e eficiente a grandes conjuntos d d dde dados
Database Management Systems, R. Ramakrishnan(tradução, autorizada, de Anna & Mario Nascimento)
DCC011 ‐ profa. Mirella M. Moro 5
LCs relacionais formais
Duas LCs matemáticas formam a base para as LCs p“reais” (p.ex., SQL), e p/ implementação:
1. Álgebra relacional: Predominantemente geb a e ac o a edo a te e teoperacional, útil para representar planos de execução
2. Cálculo Relacional : Permite usuários descreverm o que querem, ao invés de como querem (não operacional, declarativa)Entender álgebra e cálculo é uma chave para entender SQL e processamento de consultas.
Database Management Systems, R. Ramakrishnan(tradução, autorizada, de Anna & Mario Nascimento)
DCC011 ‐ profa. Mirella M. Moro 6
Consultas
Uma consulta é aplicada para instâncias de relação, e p p ç ,o resultado de uma consulta é também uma instância de relação
• Esquemas de consumo relações para uma consulta são fixadas (mas consultas rodarão independente de exemplos!)exemplos!)
• O esquema para o resultado de uma propensa consulta é também fixada! Determinada por definição de construção de linguagem de consulta
Database Management Systems, R. Ramakrishnan(tradução, autorizada, de Anna & Mario Nascimento)
DCC011 ‐ profa. Mirella M. Moro 7
Álgebra Relacional: Resumo
• Dadas duas relações R1 e R2• Operações Básicas
• Selection () Seleciona em sub‐conjunto de tuplas da relação• Projection () Apaga colunas indesejadas da relação• Cross‐product () Permite combinar R1 e R2• Set difference ( ) Tuplas em R1 mas não em R2• Set‐difference () Tuplas em R1, mas não em R2• Union () Tuplas em R1 e em R2
7. Nome (Matr=4) (ALUNOS)7a (M t 4) N (ALUNOS)7 . (Matr=4) Nome (ALUNOS)7b. Nome (Matr=4) Nome,Matr (ALUNOS)
8. Nome(Matr>4 AND Sexo = F) OR (Cr = MC) (ALUNOS)( ) ( )
8a. (Matr>4 AND Sexo = F) OR (Cr = MC) Nome(ALUNOS)8b (ALUNOS)8b. Nome(Matr>4 AND Sexo = F)OR(Cr = MC)(ALUNOS)8c. Nome(Matr>4) (Sexo = F) (Cr = MC) (ALUNOS)8d. Nome(Matr>4) AND (Sexo = F) AND (Cr = MC) (ALUNOS)
DCC011 ‐ profa. Mirella M. Moro 12
ProblemasALUNOS
1. Nome das meninas de todos os cursosN (S F) (ALUNOS)Nome (Sexo=F) (ALUNOS)
2. Nome das meninas da ComputaçãoNome (Sexo=F AND Cr=CC) (ALUNOS)
3. Nome e curso de todas as meninasNome, CR (Sexo=F) (ALUNOS)
4 Quantidade de meninas por curso4. Quantidade de meninas por curso
5. Curso com número máximo de meninas
DCC011 ‐ profa. Mirella M. Moro 13
Mais ProblemasALUNOS
1. Nomes de todos os alunos acompanhados dos nomes de seus cursos
2. Nomes de todos os alunos acompanhados das disciplinas matriculadas neste semestre
14DCC011 ‐ profa. Mirella M. Moro
Mais Problemas
1. Nomes de todos os alunos acompanhados dos nomes de seus cursospa. Nome,Nome (ALUNOS, CURSOS)b. ALUNOS Nome CURSOS Nome (ALUNOS, CURSOS)ALUNOS.Nome,CURSOS.Nome ( , )c. ALUNOS.Nome,CURSOS.Nome (ALUNOS CURSOS)
15DCC011 ‐ profa. Mirella M. Moro
ALUNOS.Nome,CURSOS.Nome (ALUNOS CURSOS)
O l d d d i éO resultado do produto cartesiano éMatr Nome Sexo Cr Cod Nome Depto Coord1 A F CC CC Ciência da
Computação DCC RG1 A F CC MC Matemática
Computacional DCC TN1 A F CC SI Sistemas de
Informação DCC CDJ1 A F CC ECA Engenharia de
Controle e Automação ENG XYZCiência daQ l é 2 B M CC CC Ciência da
Computação DCC RG2 B M CC MC Matemática
Computacional DCC TN2 B M CC SI Sistemas de DCC CDJ
Qual é o problema
???? 2 B M CC SI Informação DCC CDJ2 B M CC ECA Engenharia de
Controle e Automação ENG XYZ3 C M CC CC Ciência da
C ã DCC RG
agora????
3 C M CC CC Computação DCC RG3 C M CC MC Matemática
Matr Nome Sexo Cr Cod Nome Depto Coord1 A F CC CC Ciência da
Computação DCC RG2 B M CC CC Ciência da
Computação DCC RG3 C M CC CC Ciência da
Computação DCC RG4 D F MC MC Matemática
Computacional DCC TNMatemátical d 5 E M MC MC Matemática
Computacional DCC TN6 F M SI MC Matemática
Computacional DCC TN7 G F SI SI Sistemas de DCC CDJ
Resolvendo
7 G F SI SI Informação DCC CDJ8 H F SI SI Sistemas de
Informação DCC CDJ9 I M SI SI Sistemas de
I f ã DCC CDJ9 I M SI SI Informação DCC CDJ10 J M ECA ECA Engenharia de
Controle e Automação ENG XYZ
18DCC011 ‐ profa. Mirella M. Moro
Mais Problemas
2. Nomes de todos os alunos acompanhados das disciplinas matriculadas neste semestre a. Nome Disc (ALUNOS MATRICULAS)a. Nome,Disc (ALUNOS MATRICULAS)b. Nome,Disc (ALUNOS.Matr=MATRICULAS.Matr)
ACTUAL DEPENDENTS SSN ESSN (EMP DEPENDENTS)ACTUAL_DEPENDENTS SSN = ESSN (EMP_DEPENDENTS)
RESULT (ACTUAL DEPENDENTS)RESULT FNAME,LNAME,DEPENDENT_NAME (ACTUAL_DEPENDENTS)
DCC011 ‐ profa. Mirella M. Moro 35
Operação de Junção
•Combina as tuplas de duas relações que satisfazem uma•Combina as tuplas de duas relações que satisfazem uma determinada condição
•Permite processar relacionamentos entre relações•Permite processar relacionamentos entre relações•Notação: R <cond> S•A condição de junção é geralmente da forma
<cond1> AND <cond2> AND ... AND <condn>,onde <condi> é uma expressão A B, sendo A um atributo de R, B um atributo de S e um dos operadores { ≤ ≥ }{=,<, ≤,>, ≥, ≠}
DCC011 ‐ profa. Mirella M. Moro 36
Operação de JunçãoBase de Dados:
Operação de Junção
DCC011 ‐ profa. Mirella M. Moro 37
Operação de Junção
•Exemplo:p• DEPT_MGR DEPARTMENT MGRSSN=SSN EMPLOYEE
• Uma operação de junção que envolva apenas condições deUma operação de junção que envolva apenas condições de igualdade é chamada de eqüi‐junção
• Uma junção natural é uma eqüi‐junção na qual o segundo atributo de cada condição de igualdade é eliminado da relação resultante (uma junção natural é geralmente definida sobre atributos de mesmo nome)mesmo nome)
• DEPT LOCS DEPARTMENT DEPT LOCATIONSDEPT_LOCS DEPARTMENT DEPT_LOCATIONS
DCC011 ‐ profa. Mirella M. Moro 39
Exemplos de Junção Base de Dados:Natural
DCC011 ‐ profa. Mirella M. Moro 40
Outras Operações de ConjuntoOutras Operações de Conjunto
DCC011 ‐ profa. Mirella M. Moro 41
Operações de Conjunto
•União: Efetua a união de duas relações compatíveis•União: Efetua a união de duas relações compatíveis•Notação: R S
•Diferença: Efetua a diferença entre duas relações compatíveis•Notação: R S
• Interseção: Efetua a interseção de duas relações ç ç çcompatíveis•Notação: R Sç
DCC011 ‐ profa. Mirella M. Moro 42
Operações de ConjuntoOperações de Conjunto
D l õ R(A1 A2 A ) S(B1 B2 B ) ã ( iã )• Duas relações R(A1,A2,..., An) e S(B1,B2,..., Bn) são (união) compatíveis quando tiverem o mesmo grau e dom(Ai) = dom(Bi)( )
1 Obter os títulos dos artigos seguidos do nome seus autores1. Obter os títulos dos artigos seguidos do nome seus autores.2. Obter os nomes dos autores que publicaram artigos em 1998 e 1999.