Introdução às Bases de Dados



Documentos relacionados
Definida pelo American National Standard Institute (ANSI) em 1986

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Desenvolvimento de uma base de dados. Relação. Modelo lógico: SGBD relacional

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

BDII SQL Junção Revisão 8

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

Álgebra Relacional. OBS: as operações Seleção e Projeção são operações unárias porque atuam em relações únicas.

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli

Disciplina: Unidade III: Prof.: Período:

Banco de Dados. Álgebra Relacional. Prof. Enzo Seraphim

select nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )

Bases de Dados. Álgebra Relacional ou Como manipular uma BD SQL. P. Serendero,

Principais Conceitos. Modelo Relacional representa o banco de dados como uma coleção de relações Tupla Atributos Relação Domínio

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Bases de Dados 2005/2006. Aula 5

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

Introdução ao SQL. Aécio Costa

Banco de dados 1. Linguagem DML SQL Select Avançado. Professor: Victor Hugo L. Lopes

Um modelo de dados é a colecção de, pelo menos, 3 componentes:

BANCO DE DADOS aula 6 álgebra relacional -

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

Banco de Dados I. SQL SELECT Parte 1 - Básico. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Universidade da Beira Interior Cursos: Engenharia Informática, Ensino da Informática, Matemática Aplicada e Matemática /Informática

Comandos de Manipulação

Tarefa Orientada 14 Subconsultas

Junções e Índices em Tabelas

Modelo Relacional. Modelo Relacional. Conceitos Gerais: Relação

Modelo Relacional. Aécio Costa

Prof.: Clayton Maciel Costa

Programação SQL. INTRODUÇÃO II parte

Projeto e Implementação

07/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Núcleo de Pós Graduação Pitágoras

SQL DML. Frederico D. Bortoloti

Banco de Dados I. Aula 9 - Prof. Bruno Moreno 20/09/2011

Projeto de Banco de Dados

NOME SEXO CPF NASCIMENTO SALARIO

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

Modelo de Dados. Modelos Conceituais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan

Banco de Dados Capítulo 2: Modelo Relacional. Bach. em Ciência da Computação UFPB/CCT Cláudio Baptista, PhD

Tarefa Orientada 10 Obter informação a partir de uma tabela

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

Tarefa Orientada 13 Agrupamento e sumário de dados

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

LINGUAGEM DE BANCO DE DADOS

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Modelo Relacional - Manipulação

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Tarefa Orientada 11 Junção Interna

1. Assinale as afirmações que são verdadeiras e as que são falsas, corrigindo-as:

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Profa. Daniela Barreiro Claro

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Tarefa Orientada 15 Manipulação de dados

Integridade dos Dados

Tarefa Orientada 16 Vistas

Bases de Dados. Parte III: O Modelo Relacional

Modelo de Dados. Modelo para organização dos dados de um BD

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

SQL UMA ABORDAGEM INTERESSANTE

MODELO RELACIONAL - UFMA

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

1. Introdução 2. Conceitos 3. Gerenciador de Banco de Dados (SGBD) 3.1. Arquitetura ANSI/SPARC Regras básicas 3.3.

Microsoft Access Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento

Modelo Relacional. 2. Modelo Relacional (Lógico)

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Introdução às Bases de Dados

Criação de Consultas e Relatórios no Access CRIAÇÃO DE CONSULTAS E RELATÓRIOS NO ACCESS

Técnicas de Normalização por Phaser

Prof. Daniela Barreiro Claro

Banco de Dados Lista de Exercícios 01

Banco de Dados. Modelo Relacional. Prof. Enzo Seraphim

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Memória de aula Aulas 11 e 12

Fernando Albuquerque - fernando@cic.unb.br. Bancos de Dados. Fernando Albuquerque fernando@cic.unb.br

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

1.264 Aula 7. Introdução ao SQL

Modelagem de Banco de Dados através do ERwin

CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 1

Prova de Fundamentos de Bancos de Dados 2 a Prova

Modelo Relacional. Modelo Relacional. Tabelas

Sistema de Informação de Licenciamento de Operações de Gestão de Resíduos

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Prof.: Clayton Maciel Costa

Lógica e Bases de Dados. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Módulo 4. Construindo uma solução OLAP

11/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Modelo Relacional. Modelo Relacional. Modelo Relacional. Banco de Dados. Modelo Relacional. Modelo Relacional

Structured Query Language (SQL)

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

Programação SQL. Introdução

SQL - Criação de Tabelas

Transcrição:

Introdução às Bases de Dados Chave primária Domínios Relação F# F Nome Estado Cidade F1 José 20 Braga F2 João 10 Faro F3 Luís 30 Lisboa F4 Rui 30 Setúbal Atributos Tuplas

Introdução às Bases de Dados Modelo Relacional Modelo de dados onde a informação se encontra representada sob a forma de relações, isto é, tabelas especiais onde os valores são atómicos e existe uma chave primária (atributo ou atributos que identificam as tuplas da relação e por isso não podem aparecer duplicados). É ainda necessário que se verifiquem duas regras: -Integridade de identidade -Integridade referencial

Introdução às Bases de Dados Integridade de identidade - estabelece que os campos que são chave primária não podem ter valores nulos. Integridade referencial - estabelece que um atributo que seja chave estrangeira só pode ter valores que apareçam na tabela onde é chave primária ou então valores nulos. Chave estrangeira é um atributo que aparece numa tabela mas que é chave primária de uma outra tabela

Introdução às Bases de Dados No Modelo Relacional definem-se também operações - álgebra relacional - que permitem trabalhar com as relações e é através dessas operações que se pode extrair e manipular a informação armazenada.

Modelo Relacional Codd definiu originalmente oito operadores em 2 grupos: Operadores de conjunto tradicionais União Union Intersecção Intersect Diferença Difference Produto Cartesiano Product

Modelo Relacional Codd definiu originalmente oito operadores em 2 grupos: Operadores relacionais especiais Seleccionar Projectar Junção Divisão Select Project Join Divide

Introdução às Bases de Dados Vamos estudar apenas: Operadores de conjunto tradicionais União Union Intersecção Intersect Diferença Difference Operadores relacionais especiais Seleccionar Select Projectar Project Junção Join

União constrói uma relação que possui todas as tuplas que aparecem em qualquer das relações específicas que estão sendo unidas ou a ambas. Para que seja possível aplicar o operador UNIÃO a duas tabelas é necessário que elas sejam compatíveis com união, isto é, as duas relações devem ser do mesmo grau n e o atributo de n.º i (i=1,2,..., n) de cada relação deve basear-se no mesmo domínio (não têm que ter o mesmo nome).

Com esta operação podemos realizar a inserção de novas tuplas numa relação. Dependentes UNION (Nome = Leila, Parentesco = esposa, N.º Func. = 0301) Dependentes Nome Parentesco Mariana filha Judite mãe Ivan filho N.º Func. 0502 2001 0301 Dependentes Nome Parentesco Mariana filha Judite mãe Ivan filho Leila esposa N.º Func. 0502 2001 0301 0301

Seja A o conjunto de tuplas de dependentes cujo parentesco é filha e B o conjunto de tuplas de dependente cujo parentesco seja filho A UNION B é o conjunto de tuplas de todos os dependentes que são filhos de algum funcionário A= [Mariana, filha, 0502] B= [Ivan, filho, 0301] A UNION B = Mariana filha 0502 Ivan filho 0301

Caso as tabelas não tivessem os mesmos nomes para os atributos podemos convencionar que o resultado do operador união teria os nomes dos atributos retirados do primeiro operando. Esquematicamente esta operação pode ser visualizada como:

Intersecção constrói uma relação consistindo em todas as tuplas que aparecem em ambos os pares de relação específicas. Para que se possa aplicar o operador INTERSECT é necessário que as relações sejam compatíveis com UNIÃO

A F# 1 3 4 5 Cidade Lisboa Porto Braga Lisboa Peça P1 P1 P2 P2 B F# 2 5 1 Cidade Lisboa Lisboa Lisboa Peça P3 P2 P1 A INTERSECT B F# 1 5 Cidade Lisboa Lisboa Peça P1 P2

Também aqui se define o resultado de uma operação INTERSECT de forma a ter os mesmos nomes de atributo como o primeiro operando. Esquematicamente:

Diferença - constrói uma relação consistindo em todas as tuplas que aparecem na primeira mas não na segunda, do par de relações específicas. Para que se possa aplicar este operador é necessário que as relações específicas envolvidas sejam compatíveis com a UNIÃO.

A F# 1 3 4 5 Cidade Lisboa Porto Braga Lisboa Peça P1 P1 P2 P2 B F# 2 5 1 Cidade Lisboa Lisboa Lisboa Peça P3 P2 P1 A MINUS B F# Cidade Peça 3 4 Porto Braga P1 P2

Novamente se define o resultado de uma operação MINUS de forma a ter os mesmos nomes de atributo como o primeiro operando. Esta operação pode ser usada para retirar tuplas a uma relação. Esquematicamente:

Selecção: Extrai determinadas tuplas de uma relação específica Seja theta um operador de comparação escalar válido (= > <...) a selecção theta da relação R sobre os atributos x e y será: R WHERE R.x THETA R.y Ou seja o conjunto de todas as tuplas t de R para que a comparação t.x theta t.y seja verdadeira x e y devem ter o mesmo Domínio; theta deve fazer sentido para esse Domínio; quer no lugar do atributo x como no de y podemos indicar uma constante pertence ao Domínio

Da forma como foi definida a operação permite apenas uma comparação simples na cláusula WHERE. No entanto, é possível estender a definição para que a comparação seja uma composição booleana arbitrária destas comparações simples R WHERE C1 AND C2 R WHERE C1 OR C2 R WHERE NOT C = (R WHERE C1) INTERSECT (R WHERE C2) = (R WHERE C1) UNION (RWHERE C2) = R MINUS (RWHERE C)

Não confundir a operação Selecção com o operador SELECT de SQL, pois este último inclui na sua funcionalidade todas as 8 operações algébricas e ainda mais algumas. Para evitar esta confusão alguns autores referem-se à Selecção como Restrição.

A F# 1 3 4 5 Cidade Lisboa Porto Braga Lisboa Peça P1 P1 P2 P2 A WHERE CIDADE = LISBOA F# 1 5 Cidade Lisboa Lisboa Peça P1 P2

Esquematicamente a visualização desta operação seria:

Introdução às Bases de Dados Selecção - Permite escolher tuplas de uma relação de acordo com uma condição dada. O resultado de uma operação de selecção sobre uma tabela é uma outra tabela que tem os mesmos atributos que a tabela inicial mas cujas linhas tornam verdadeira a condição dada.

Introdução às Bases de Dados PESSOAS NºContribuint NOMEP NIF 12345678901 LÚCIA 3212345678 23456754123 HELENA 1423536467 87365342331 LEONARDO 6356627883 PESSOAS WHERE (NOMEP= LUCIA ) NºContribuint NOMEP NIF 12345678901 LÚCIA 3212345678

Projecção - Extrai atributos determinados de uma relação específica. A projecção da relação R nos atributos X, Y,..., Z é o conjunto de todas as tuplas (x, y,..., z) de forma que a tupla t aparece em R[X, Y,..., Z] com o valor x em X o valor y em Y,... e o z em Z e representa-se por: R [X, Y,..., Z] No caso de ao seleccionar as colunas resultarem tuplas duplicadas estas serão eliminadas.

Dependentes Nome Parentesco Judite filha Judite mãe Ivan filho N.º Func. 0502 2001 0301 Dependentes [Nome] Dependentes [Nome, N.º Func.] Nome Judite Ivan Nome Judite Judite Ivan N.º Func. 0502 2001 0301

Esquematicamente a visualização desta operação seria: -Como esta operação se aplica a uma relação não existem problemas de atribuição do nome aos atributos da relação resultado; -Nenhum atributo pode ser especificado mais de uma vez na lista de atributos da operação de projecção.

Introdução às Bases de Dados Projecção - Permite reduzir o número de atributos de uma relação. O resultado de uma operação de projecção sobre uma tabela é uma outra tabela que tem apenas os atributos indicados na operação de projecção e sem tuplas repetidas.

Introdução às Bases de Dados PESSOAS NºContribuint NOMEP NIF 12345678901 LÚCIA 3212345678 23456754123 HELENA 1423536467 87365342331 LEONARDO 6356627883 Projecção de pessoas emnomep NOMEP LÚCIA HELENA LEONARDO

Junção - constrói uma relação a partir de duas relações específicas consistindo em todas as possibilidades de combinação de tuplas concatenadas, uma de cada uma das relações específicas, de forma que em cada par as duas tuplas satisfaçam uma condição específica. Este operador é um dos mais importantes do modelo relacional pois permite construir relações de acordo com as ligações que possam existir entre relações de menor grau.

Seja theta um operador de comparação escalar válido: A junção-theta da relação A no atributo X com a relação B no atributo Y é o conjunto de todas as tuplas t de forma que t seja a concatenação de uma tupla pertencente a A a e de uma tupla pertencente a B b e o predicado a.x theta b.y seja avaliado como verdadeiro; Os atributos A.X e B.Y devem ser definidos no mesmo domínio; Theta deve fazer sentido nesse domínio; A junção-theta não é uma operação primitiva pois equivale a realizar uma restrição adequada sobre o produto cartesiano das duas relações.

Exemplo de junção-maior: Álgebra Relacional S Nome João José Maria Num 1994 1993 1982 Nome João Ana P Peso 10 20 Num 1982 1995 (S TIMES P) WHERE S.NUM > P.NUM S.nome João José S.Num P.Nome P.Peso 1994 João 10 1993 João 10 P.Num 1982 1982

Se theta equivaler à igualdade e se retirarmos um dos 2 atributos iguais então a junção é chamada de junção NATURAL ou equi-join Como este tipo de junção é a mais importante na prática usa-se junção para significar junção Natural e representa-se abreviadamente: S JOIN R Daqui em diante junção refere-se à junção Natural

Introdução às Bases de Dados PESSOAS NºContribuint NOMEP NIF 12345678901 LÚCIA 3212345678 23456754123 HELENA 1423536467 87365342331 LEONARDO 6356627883 EMPRESAS NIF NOME END 3212345678 EMP ABC LX 6356627883 EMP XYZ Porto 1423536467 EMP ZKL LX PESSOAS JOIN EMPRESAS NºContribuint NOMEP NIF 12345678901 LÚCIA 3212345678 23456754123 HELENA 1423536467 87365342331 LEONARDO 6356627883 NOME EMP ABC EMP ZKL EMP XYZ END LX LX Porto

Introdução às Bases de Dados Conceitos a saber: Modelo Relacional Restrições de integridade Álgebra Relacional Como criar uma Base de Dados em ACCESS Como criar tabelas em ACCESS Como definir chave primária de uma tabela em ACCESS Como garantir a integridade referencial em ACCESS Como incluir ou modificar dados em tabelas do ACCESS