A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática.

Apresentações semelhantes


Apresentação em tema: "UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática."— Transcrição da apresentação:

1 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática

2 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias2 Tópicos O Modelo de Dados Relacional (introduzido por Codd em 1970) Álgebra Relacional

3 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias3 Conceitos do Modelo Relacional... O banco de dados é representado como uma coleção de relações (tabelas) Cada linha da tabela representa um conjunto de valores de dados relacionados Estes valores podem ser interpretados como fatos descrevendo uma entidade no mundo real ou um relacionamento Os nomes escolhidos para a tabela e para as colunas devem ajudar na interpretação do significado para os valores que aparecem nas linhas

4 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias4 Todos os valores em uma coluna são do mesmo tipo de dados Terminologia do Modelo Relacional: linha (row) = tuple nome da coluna (column header) = atributo nome da tabela = relação Conceitos do Modelo Relacional...

5 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias5 tuplas Nome da relação Atributos Domínio Conceitos do Modelo Relacional...

6 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias6 Um domínio (domain) é um conjunto de valores atômicos. Exemplos de domínios: –Nomes de pessoas: combinação das letras do alfabeto –Números (locais) de telefone: o conjunto de números de telefones válidos em uma região –Departamentos: o conjunto de departamentos acadêmicos de uma universidade –Placas de carro: conjunto das placas de carro em um estado (combinação de letras e números admissíveis pelo DETRAN) –Idade dos funcionários - valores entre 16 e 70 Conceitos do Modelo Relacional...

7 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias7 Um domínio normalmente possui um nome, o qual ajudar a interpretar os seus valores. Um tipo (data type) e um format descrevem fisicamente um domínio. A descrição semântica ajuda na interpretação de seus valores. Ex.: telefone - tipo: char(9)format: (99)999-9999 Um mesmo domínio pode se aplicar a diferentes atributos Conceitos do Modelo Relacional...

8 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias8 Um Esquema de Relação R, denotado por R(A 1, A 2,..., A n ), é formado por um nome de relação R e por uma lista de atributos A 1, A 2,..., A n. Cada atributo A i é o nome de um papel desempenhado por algum domínio D no esquema de relação R. D é chamado o domínio de A i - dom(A i ) Um esquema de relação R é usado para descrever a relação R (nome da relação) O grau de uma relação é dado pelo número n de atributos em seu esquema. Esquema de uma Relação

9 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias9 Instância de Relação... Uma relação (instância de relação) r de um esquema de relação R(A 1, A 2,..., A n ), também denotado por r(R), é um conjunto de n tuplas r={t 1, t 2,..., t n }. Cada n-tupla t é uma lista ordenada de n valores t=, onde cada valor v i, 1 i n, é um elemento do dom(A i ) ou é um valor nulo (null value) especial. Valor nulo - representa atributos cujos valores são desconhecidos ou não existem para uma dada tupla. Intensão = esquema da relação Extensão (estado) = instância da relação

10 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias10 Intensão x Extensão Extensão = instância da relação Intensão = esquema da relação

11 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias11 Uma relação r(R) é um subconjunto do produto Cartesiano dos domínios que definem R. r(R) (dom(A 1 ) x dom(A 2 ) x... x dom(A n ) Número de valores ou Cardinalidade de um Domínio D = D n o total de tuplas no produto cartesiano = dom(A 1 ) x dom(A 2 ) x... X dom(A n ) O estado corrente da relação reflete somente as tuplas válidas que representam um estado particular do mini- mundo. Instância de Relação (def. alternativa 1)

12 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias12 Um Esquema de Relação R = (A 1, A 2,..., A n ), é um conjunto de atributos e uma relação r(R) é um conjunto finito de mapeamentos r={t 1, t 2,..., t n }, aonde cada tupla t i é um mapeamento de R em D, e D é a união dos domínios dos atributos, isto é, D = dom(A 1 ) dom(A 2 )... dom(A n ). Nesta definição t(A i ) deve estar em dom(A i ) para 1 i n, para cada mapeamento t em r. Instância de Relação (def. alternativa 2)...

13 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias13 Uma tupla pode ser considerada como um conjunto de pares (, ), aonde cada par fornece o valor do mapeamento de um atributo A i em um valor v i, pertencente a dom(A i ). A nível lógico, a ordem dos atributos e seus valores não é importante (teoria dos conjuntos). Instância de Relação (def. alternativa 2)

14 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias14 Cada valor em uma tupla deve ser atômico Não são permitidos atributos compostos ou multi- valorados Atributos multi-valorados devem ser representados por diferentes relações Atributos compostos são representados pelos seus atributos componentes mais simples valores nulos (null) - quando o valor de um atributo é desconhecido ou não se aplica à tupla Primeira Forma Normal

15 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias15 Interpretação de uma Relação... O esquema de uma relação pode ser interpretado como uma declaração ou uma assertiva. Exemplo: Um departamento possui um nome (Dname), número (Dnumber), um gerente (Mgrssn) e uma data (Mgrstartdate) na qual passou a ser gerenciado pelo gerente.

16 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias16 Cada tupla na relação pode ser interpretada como um fato de uma instância particular da assertiva. As relações podem representar fatos sobre entidades ou sobre relacionamentos. O esquema de uma relação também pode ser interpretado como um predicado. Neste caso, os valores em cada tupla são interpretados como valores que satisfazem o predicado. Interpretação de uma Relação

17 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias17 Notação do Modelo Relacional... Um Esquema de Relação R de grau n é denotado por R(A 1, A 2,..., A n ); Uma n-tupla t na relação r(R) é denotada por t =, onde v i é o valor correspondente ao atributo A i ; t[A i ] refere-se ao valor v i em t, correspondente ao atributo A i ; t[A u, A w,..., A z ], onde A u, A w,..., A z é uma lista de atributos de R, refere-se à sub-tupla de valores de t correspondente aos atributos especificados na lista;

18 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias18 As letras Q, R e S denotam nomes de relações As letras q, r e s denotam estados de relações As letras t, u e v denotam tuplas O nome de uma relação (em maiúsculas) indica o conjunto atual de tuplas naquela relação - estado corrente da relação - ou instância; Ex.: STUDENT STUDENT(Name, SSN,...) refere-se ao esquema da relação Os nomes dos atributos são, às vezes, qualificados com o nome da relação qual pertencem; Ex.: STUDENT.Name, STUDENT.Age Notação do Modelo Relacional

19 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias19 ¶ ¶Restrições de Domínio - especifica os valores que podem ser assumidos por um atributo. · ·Restrições de Chave - especifica uma chave (conjunto de atributos) que identificam univocamente uma tupla. ¸ ¸Restrições de Integridade - servem para manter a consistência entre as tuplas das relações. ¹ ¹Restrições Semânticas - impõem restrições adicionais nas relações que representam situações no mini-mundo. Tipos de Restrições no Modelo Relacional

20 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias20 Restrições do Modelo Relacional... Restrições de Domínio - especificam que o valor de cada atributo A deve ser um valor atômico do domínio dom(A). Especifica-se um domínio através de tipos primitivos de dados, tais como integer, float, char, date, time, money, etc. Adicionalmente, através de um subconjunto de um tipo de dado ou como um tipo de dado enumerável, em que todos os valores possíveis são listados.

21 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias21 Restrições de chave - uma relação é definida como um conjunto de tuplas. Por definição, todos os elementos de um conjunto são distintos. Portanto todos as tuplas em uma relação devem ser distintas. Isto significa que não se pode ter duas tuplas com a mesma combinação de valores para todos os seus atributos. Usualmente há subconjuntos de atributos de um esquema de relação R com a propriedade que não existem tuplas, em qualquer instância da relação r de R que possuam a mesma combinação de valores para seus atributos. t 1 [SK] t 2 [SK] SK é uma super-chave (superkey) Restrições do Modelo Relacional...

22 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias22 Super-chave - conjunto de um ou mais atributos que, tomados coletivamente, nos permitem identificar de maneira unívoca uma entidade em um conjunto de entidades (tipo-entidade). Uma chave K (minimal superkey) de um esquema de relação R é uma superchave de R com a propriedade adicional de que, a remoção de qualquer atributo A de K resulta em um conjunto de atributos K´ que não é uma superchave de R. Chave candidata - é uma das chaves de um esquema de relação R. Chave primária - é uma chave candidata escolhida pelo projetista do BD para a identificação de entidades em um conjunto de entidades (por convenção são sublinhadas no esquema da relação).

23 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias23 Esquema e Instância de um BD Relacional Um Esquema de um Banco de Dados Relacional S é um conjunto de esquemas de relações S={R 1, R 2,..., R m } e um conjunto de restrições de integridade IC. Uma Instância de um Banco de Dados Relacional DB é um conjunto de relações de instância DB={r 1, r 2,..., r m }, tal que cada r i é uma instância de R i e tal que as relações r i satisfazem as relações de integridade especificadas em IC. Quando nos referimos a um Banco de Dados Relacional, implicitamente incluímos o seu esquema e a instância corrente. As restrições de integridade são especificadas em um esquema de um BD e valem para todas as suas instâncias.

24 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias24

25 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias25

26 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias26 Restrições de Integridade... Integridade de Entidade - estabelece que nenhuma chave primária pode ter valor nulo. Objetivo - garantir a identificação de todas as tuplas, uma vez que a chave primária é usada para identificar as tuplas na relação.

27 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias27 Integridade Referencial - estabelece que uma tupla em uma relação R i, que se refere a uma outra relação R j, deve obrigatoriamente referenciar uma tupla existente em R j. Objetivo - serve para manter a consistência entre as tuplas de duas relações. As restrições de integridade referencial surgem tipicamente do relacionamento entre entidades. Restrições de Integridade...

28 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias28 Chave Estrangeira Chave estrangeira - um conjunto de atributos FK em um esquema de relação R 1 é uma chave estrangeira de R 1, se satisfaz às seguintes condições: ¶Os atributos em FK têm os mesmos domínios que os atributos de uma chave primária PK de um outro esquema de relação R 2. Diz-se que os atributos de FK referenciam a relação R 2. ·Um valor de FK em uma tupla t 1 de R 1 ou ocorre como um valor de PK para alguma tupla t 2 de R 2, ou é nulo. No primeiro caso temos t 1 [FK]= t 2 [PK] e dizemos que a tupla t 1 em R 1 referencia a tupla t 2 em R 2.

29 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias29

30 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias30 Atenção no Projeto de um BD! Todas as restrições de integridade devem ser especificadas no esquema do banco de dados relacional, para que estas restrições sejam válidas em todas as instâncias da base de dados. A DDL deve prover meios para se especificar os diversos tipos de restrições, para que os SGBDs as possam impor automaticamente.

31 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias31 Operações no Modelo Relacional Retrieval (podem ser especificadas através da Álgebra Relacional) Updates - inserção, exclusão e alteração As restrições de integridade especificadas no esquema do banco de dados relacional não devem ser violadas.

32 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias32 A operação de inserção... Pode violar os quatro tipos de restrições do modelo relacional: ¶Restrições de Domínio: se o valor dado para o atributo não pertence ao domínio correspondente. ·Restrições de Chave: se um valor de chave em uma nova tupla t já existe em outra tupla na relação r(R).

33 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias33 ¸Restrições de Integridade: @Integridade de Entidade - se o valor de uma chave primária para a nova tupla t é NULL. @Integridade Referencial - se o valor de qualquer chave estrangeira em t referencia uma tupla que não existe na relação que foi referenciada. ¹Restrições Semânticas - se algum valor de atributo assume valores não permitido pelas restrições de ordem semântica. Alternativas quando restrições são violadas: i) rejeitar a inserção, informando ao usuário o motivo; ii) tentar corrigir o motivo que ocasionou a violação. A operação de inserção...

34 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias34 A operação de exclusão Só pode violar restrições de integridade referencial nos casos em que a tupla excluída é referenciada por chaves estrangeiras de outras tuplas do banco de dados. Alternativas - o SGBD deve permitir ao usuário escolher entre: ¶rejeitar a exclusão da tupla; ·tentar propagar (to cascade) a exclusão, procurando excluir todas as tuplas no banco de dados que referenciam a tupla que se pretende excluir; ¸modificar o valor do atributo de referência que causa a violação:i) torná-lo NULL; ii) referenciar outra tupla válida.

35 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias35 A operação de alteração FInicialmente, é necessário especificar uma condição sobre os atributos da relação R, para selecionar-se a(s) tupla(s) a ser(em) modificada(s). FA modificação de um atributo que não seja uma chave primária ou uma chave estrangeira usualmente não causa problemas. FA alteração de uma chave primária é equivalente a excluir uma tupla e inserir uma outra. FSe o valor de uma chave estrangeira é alterado, o SGBD deve ter certeza de que o novo valor refere-se a uma tupla que realmente exista na relação referenciada.

36 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias36 O Projeto do Schema da Base de Dados... ¶Dar um nome para o esquema do banco de dados relacional (relational database schema) ·Declarar os domínios necessários para os atributos ¸Definir as relações individuais

37 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias37 ¶... DECLARE SCHEMA COMPANY; ·... DECLARE DOMAIN PERSON_SSNS TYPE FIXED_CHAR(9); DECLARE DOMAIN PERSON_NAMES TYPE VARIABLE_CHAR(15); DECLARE DOMAIN PERSON_INITIALS TYPE ALPHABETIC_CHAR(1); DECLARE DOMAIN DATES TYPE DATE; DECLARE DOMAIN ADDRESSES TYPE VARIABLE_CHAR(35); DECLARE DOMAIN PERSON_SEX TYPE ENUMERATED {M,F}; DECLARE DOMAIN PERSON_SALARIES TYPE MONEY; DECLARE DOMAIN DEPT_NUMBERS TYPE INTEGER_RANGE[1,10]; DECLARE DOMAIN DEPT_NAMES TYPE VARIABLE_CHAR(20); O Projeto do Schema da Base de Dados...

38 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias38 ¸... DECLARE RELATION EMPLOYEE FOR SCHEMA COMPANY ATTRIBUTES FNAMEDOMAIN PERSON_NAMES, MINITDOMAIN PERSON_INITIALS, LNAME DOMAIN PERSON_NAMES, SSNDOMAIN PERSON_SSNS, BDATEDOMAIN DATES, ADDRESSDOMAIN ADDRESSES, SEXDOMAIN PERSON_SEX, SALARY DOMAIN PERSON_SALARIES, SUPERSSNDOMAIN PERSON_SSNS, DNODOMAIN DEPT_NUMBERS O Projeto do Schema da Base de Dados...

39 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias39 CONSTRAINTS PRIMARY_KEY (SSN), FOREIGN_KEY (SUPERSSN) REFERENCES EMPLOYEE; FOREIGN_KEY (DNO) REFERENCES DEPARTMENT; DECLARE RELATION DEPARTMENT FOR SCHEMA COMPANY ATTRIBUTES DNAME DOMAIN DEPT_NAMES, DNUMBER DOMAIN DEPT_NUMBERS, MGRSSN DOMAIN PERSON_SSNS, MGRSTARTDATE DOMAIN DATES CONSTRAINTS PRIMARY_KEY (DNUMBER), KEY (DNAME), FOREIGN_KEY (MGRSSN) REFERENCES EMPLOYEE; O Projeto do Schema da Base de Dados

40 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias40 Álgebra Relacional Coleção de operações que são utilizadas para manipular relações inteiras. permite: –selecionar tuplas de relações individuais –combinar tuplas relacionadas de várias relações com o propósito de especificar uma consulta (query) –o resultado de cada operação é uma nova relação, que também pode ser manipulada 2 categorias de operações: –as matemáticas, da Teoria dos Conjuntos (UNIÃO, INTERSECÇÃO, DIFERENÇA e PRODUTO CARTESIANO –as especificamente desenvolvidas para bancos de dados relacionais (SELECT, PROJECT, JOIN, etc.)

41 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias41 A Operação SELECT... Função: utilizada para selecionar um subconjunto de tuplas de uma relação, que satisfazem uma condição de seleção. Notação: ( ) Exemplos: DNO=4 (EMPLOYEE) SALARY>30000 (EMPLOYEE)

42 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias42 => é o operador de seleção (sigma) A condição de seleção é uma expressão Booleana especificada sobre os atributos da relação. A expressão Booleana compreende uma série de cláusulas da forma: ou O a { =, <,,,, } A Operação SELECT...

43 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias43 Cláusulas podem ser conectadas pelos operadores Booleanos AND, OR e NOT, para formar uma condição de seleção. Ex.: (DNO=4 AND SALARY>25000) OR (DNO=5AND SALARY>30000 ) (EMPLOYEE) A Operação SELECT...

44 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias44 Se o domínio de um atributo é um conjunto de valores não ordenados aplicam-se apenas os operadores a {=, }. Domínios de cadeias (strings) de caracteres são ordenados baseados na collating sequence. Alguns domínios permitem tipos adicionais de operadores de comparação (ex.: SUBSTRING_OF). A Operação SELECT...

45 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias45 O operador SELECT é unário. A operação de seleção aplica-se a cada tupla individualmente. A relação resultante de um SELECT tem o mesmo grau da relação original. Conceito de seletividade da condição. A operação SELECT é comutativa ( (R)) = ( (R)) Uma cascata de SELECTs pode ser combinado em um único SELECT ( (... ( R))...)) = AND AND...AND (R) A Operação SELECT

46 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias46 Função: utilizada para selecionar determinadas colunas de uma relação. Notação: ( ) Exemplos: SEX, SALARY (EMPLOYEE) FNAME, LNAME, BDATE (EMPLOYEE) A Operação PROJECT...

47 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias47 => é o operador de seleção (pi) A relação resultante possui somente os atributos especificados na. O seu grau é o número de atributos na. Tuplas duplicatas, resultante de PROJECT são automaticamente removidas, de forma a se ter uma relação válida (duplicate elimination). ( (R)) = (R), sempre que lista_1 lista_2 A Operação PROJECT...

48 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias48 Ex.: LNAME, FNAME, SALARY (EMPLOYEE) A Operação PROJECT...

49 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias49 As operações na Álgebra Relacional podem estar aninhadas em uma única expressão ou pode-se aplicar uma operação de cada vez, criando relações com os resultados intermediários. Neste caso devemos nomear as relações que guardam os resultados intermediários. Pode-se, inclusive, renomear os seus atributos. Consulta_02_c06 LNAME, FNAME, SALARY (EMPLOYEE) R(SOBRENOME, NOME, SALÁRIO) LNAME, FNAME, SALARY (EMPLOYEE) A Operação PROJECT

50 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias50 Operações da Teoria dos Conjuntos Aplicam-se ao Modelo Relacional porque uma relação é definida como um conjunto de tuplas. operações fundamentais: - UNIÃO, INTERSECÇÃO, DIFERENÇA São operações binárias. As relações a que se aplicam devem ter o mesmo tipo de tuplas, i. e., serem UNIÃO-compatíveis. - PRODUTO CARTESIANO

51 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias51 Relações UNIÃO-compatíveis Duas relações R(A 1, A 2,..., A n ) e S(B 1, B 2,..., B n ) são ditas UNIÃO-compatíveis se elas têm o mesmo grau n e se dom(A i )=dom(B i ), para 1 i n. Significa que possuem o mesmo número de atributos e que cada par de atributos correspondentes possuem o mesmo domínio.

52 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias52 Operações Fundamentais UNIÃO: R S = {t | t R t S} INTERSEÇÃO: R S = {t | t R t S} DIFERENÇA: R S = {t | t R t S} PRODUTO CARTESIANO: R x S = {t | t[A 1,...,A n ] R t [A n+1,...,A n+m ] S}

53 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias53 RESULT = RESULT_1 RESULT_2 Salary < 30000 Salary > 35000 (Salary 35000)

54 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias54 RESULT_A = RESULT_3 RESULT_4 Salary < 40000 Salary > 30000 30000 < Salary < 40000

55 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias55 RESULT_B = RESULT_3 RESULT_4 Salary < 40000 Salary > 30000

56 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias56 Propriedades das operações A UNIÃO e a INTERSECÇÃO são comutativas R S = S R A UNIÃO e a INTERSECÇÃO são associativas R (S T) = (R S) T (R S) T = R (S T) Atenção! A DIFERENÇA não é comutativa R S S R (em geral)

57 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias57 Produto Cartesiano (X)... Definição: R(A 1, A 2,..., A n ) X S(B 1, B 2,..., B m ) é uma relação Q (A 1, A 2,..., A n, B 1, B 2,..., B m ) com n+m atributos e nesta ordem. Q possui uma tupla para cada combinação de tuplas, uma de R e outra de S. Se R possui n r tuplas e S, n s tuplas, então Q possui n r *n s tuplas.

58 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias58 Operação binária sobre conjuntos. As relações sobre as quais se aplicam não precisam ser UNIÃO-compatíveis. CARTESIAN PRODUCT=CROSS JOIN=CROSS PRODUCT Produto Cartesiano (X)...

59 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias59 Exemplo: recuperar, para cada empregado do sexo feminino, a lista de seus dependentes FEMALE_EMPS SEX=F (EMPLOYEE) EMPNAMES FNAME, LNAME, SSN ( FEMALE_EMPS ) EMP_DEPENDENTS EMPNAMES X DEPENDENT ACTUAL_DEPENDENTS SSN=ESSN (EMP_DEPENDENTS) RESULT FNAME, LNAME, DEPENDENT_NAME (ACTUAL_DEPENDENTS) Produto Cartesiano (X)

60 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias60 Exemplo... FEMALE_EMPS SEX=F (EMPLOYEE) EMPNAMES FNAME, LNAME, SSN ( FEMALE_EMPS )

61 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias61 EMP_DEPENDENTS EMPNAMES X DEPENDENT Exemplo...

62 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias62 ACTUAL_DEPENDENTS SSN=ESSN (EMP_DEPENDENTS) RESULT FNAME, LNAME, DEPENDENT_NAME (ACTUAL_DEPENDENTS) Exemplo...

63 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias63 A operação JOIN ( )... JOIN = CARTESIAN PRODUCT + SELECT Possibilita processar relacionamentos entre relações Exemplo: Desejamos recuperar o nome do gerente de cada departamento. Para obtermos o nome do gerente de cada dept o, necessitamos combinar a tupla de cada dept o com a tupla do empregado cujo valor de SSN é idêntico ao valor de MGRSSN na tupla do dept o. DEPT_MGR DEPARTMENT MGRSSN=SSN EMPLOYEE RESULT DNAME, LNAME,FNAME, ( DEPT_MGR )

64 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias64 DEPT_MGR DEPARTMENT MGRSSN=SSN EMPLOYEE RESULT DNAME, LNAME,FNAME, ( DEPT_MGR ) A operação JOIN ( )...

65 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias65 A forma geral da operação JOIN sobre duas relações R(A 1, A 2,..., A n ) e S(B 1, B 2,..., B m ) é: R S. O resultado de JOIN é uma relação Q com m+n atributos Q (A 1, A 2,..., A n, B 1, B 2,..., B m ), nesta ordem. Q tem uma tupla para cada combinação de tuplas - uma de R e uma de S - sempre que a condição JOIN é satisfeita ( do produto Cartesiano). A operação JOIN ( )...

66 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias66 A operação JOIN ( )... THETA JOIN - quando a condição JOIN é da forma: AND AND.... AND, onde cada condição é do tipo A i B j, A i é um atributo de R e B j é um atributo de S, A i e B j têm o mesmo domínio e é um dos operadores de comparação {=, <,,,, }. EQUIJOIN - quando o único operador de comparação utilizado é =. No resultado de um EQUIJOIN sempre temos um ou mais pares de atributos com o mesmo valor.

67 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias67 NATURAL JOIN (*) - quando abandonamos o segundo atributo em uma condição EQUIJOIN. A definição padrão de NATURAL JOIN requer que os dois atributos JOIN(ou cada par de atributos JOIN) tenham o mesmo nome. Em alguns casos é necessário renomear-se um dos atributos. Ex.: DEPT (DNAME, DNUM, MGRSSN, MGRSTARTDATE) DEPARTMENT PROJ_DEPT PROJECT * DEPT O atributo DNUM é o atributo de junção (join atribute). A operação NATURAL JOIN (*)...

68 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias68 Definição mais geral de NATURAL JOIN: Q R* ( ), ( ) S especifica uma lista de i atributos de R e,, uma lista de i atributos de S. Estas listas são usadas para condições de comparação de igualdade entre os pares de atributos correspondentes em R e S. Efetua-se então, um AND entre as condições. Somente os atributos de list1 são mantidos no resultado Q. A operação NATURAL JOIN (*)

69 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias69 Conjunto Completo de Operações da AR O conjunto das operações da Álgebra Relacional {,,,, } é um conjunto completo, no sentido de que qualquer outra operação da AR pode ser expressa como uma seqüência de operações deste conjunto. R S = (R S) ((R S) (S R)) R S = (R S) NATURAL JOIN = PRODUTO CARTESIANO + SELECT + PROJECT

70 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias70 A operação DIVISION... Query: recuperar o nome dos empregados que trabalham em todos os projetos em que John Smith trabalha. ¶Recuperar a lista de números de projetos em que John Smith trabalha em uma lista intermediária SMITH FNAME=John AND LNAME=Smith (EMPLOYEE) SMITH_PNOS PNO (WORKS_ON* ESSN=SSN SMITH) ·Criar uma relação SSN_PNOS que inclui uma tupla, sempre que o empregado cujo security social number é ESSN trabalhar em um projeto de número PNO SSN_PNOS PNO, ESSN (WORKS_ON)

71 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias71 ¸Aplicar a operação de DIVISÃO às duas relações SSNS(SSN) SSN_PNOS SMITH_PNOS RESULT FNAME, LNAME (SSNS*EMPLOYEE) A operação de DIVISÃO aplica-se a duas relações R(Z) S(X), onde X Z. Seja Y=Z X, i.e., seja Y o conjunto de atributos de R que não sejam atributos de S. O resultado da divisão é a relação T(Y) que inclui a tupla t se a tupla t r, cuja t r [Y] = t aparece em R, com t r [X]=t s para cada tupla t s em S. Significa que para uma tupla t aparecer no resultado T da DIVISÃO, os valores em t devem paarecer em R em combinação com toda tupla em S. A operação DIVISION...

72 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias72 A operação DIVISION... R(Z) S(X) X Z Y

73 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias73 A operação DIVISION...

74 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias74 Pode ser expressa como uma seqüência das operações, e ¶T 1 = Y (R) ·T 2 = Y ((S T 1 ) R) ¸T = T 1 T 2 A operação DIVISION

75 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias75 Operações Relacionais Adicionais... Funções agregadas: SUM, AVERAGE, MAXIMUM, MINIMUM, COUNT Grupar um n o de tuplas da relação, segundo o valor de algum de seus atributos e, então, aplicar uma função agregada independente a cada grupo. ( )

76 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias76 Exemplo: recuperar, para cada n 0 de dept 0, o n 0 de empregados no dept 0 e o seu salário médio. R(DNO, NUMBER_OF_EMPLOYEES, AVERAGE_SAL) DNO COUNT SSN, AVERAGE SALARY (EMPLOYEE) Operações Relacionais Adicionais...

77 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias77 Recursive Closure Operations Em geral não podem ser especificadas na AR Ex. recuperar todos os supervisionados de um empregado em todos os níveis. Nível_1 - todos os empregados diretamente supervisionados por James Borg. BORG_SSN SSN ( FNAME=James AND LNAME=Borg (EMPLOYEE)) SUPERVISION(SSN1, SSN2) SSN, SUPERSSN (EMPLOYEE)) RESULT1(SSN) SSN1 (SUPERVISION SSN2=SSN BORG_SSN) Nível_2 - RESULT2(SSN) SSN1 (SUPERVISION SSN2=SSN RESULT1) FINAL_RESULT = (RESULT1 RESULT2)

78 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias78 Outer Join e Outer Union Extensões das operações JOIN e UNIÃO Usadas quando desejamos guardar todas as tuplas de R ou S ou ambas no resultado, independentemente de haver tuplas correlacionadas na outra relação. LEFT OUTER JOIN - Exemplo: desejamos uma lista com o nome de todos os empregados e também do nome dos dept os que eles gerenciam, no caso de gerenciarem um dept o. TEMP (EMPLOYEE SSN=MGRSSN DEPARTMENT) RESULT FNAME, MINIT, LNAME, DNAME (TEMP) RIGHT OUTER JOIN -

79 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias79 LEFT OUTER JOIN - Exemplo: desejamos uma lista com o nome de todos os empregados e também do nome dos dept os que eles gerenciam, no caso de gerenciarem um dept o. TEMP (EMPLOYEE SSN=MGRSSN DEPARTMENT) RESULT FNAME, MINIT, LNAME, DNAME (TEMP)

80 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias80 Exemplos de queries em AR... ¶Recuperar os nomes e endereços de todos os empregados que trabalham para o dept o Research RESEARCH_DEPARTMENT DNAME=RESEARCH (DEPARTMENT) -- RESEARCH_DEPARTMENT_EMPS (RESEARCH_DEPARTMENT DNUMBER=DNO EMPLOYEE ) -- RESULT FNAME, LNAME, ADDRESS (RESEARCH_DEPARTMENT_EMPS)

81 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias81 ·Para cada projeto localizado em Stafford, recupere o n o do projeto, o n o do dept o que o controla e o sobrenome, endereço e data de nascimento do gerente deste dept o. STAFFORD_PROJS PLOCATION=STAFFORD (PROJECT) -- CONTR_DEPT STAFFORD_PROJS DNUM=DNUMBER DEPARTMENT -- PROJ_DEPT_MGR CONTR_DEPT MGRSSN=SSN EMPLOYEE -- RESULT PNUMBER, DNUM, LNAME, ADDRESS, BDATE (PROJ_DEPT_MGR) Exemplos de queries em AR...

82 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias82 ¸Encontre o nome de todos os empregados que trabalham em todos os projetos controlados pelo dept o de n o 5. DEPT5_PROJS(PNO) PNUMBER ( DNUM=5 (PROJECT)) -- EMP_PROJ(SSN, PNO) ESSN, PNO (WORKS_ON) -- RESULT_EMP_SSNS (EMP_PROJ DEPT5_PROJS -- RESULT LNAME, FNAME (RESULT_EMP_SSNS * EMPLOYEE) Exemplos de queries em AR...

83 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias83 ¹Faça uma lista de n o de projetos para aqueles projetos em que trabalham um empregado cujo sobrenome é Smith, seja como empregado, seja como gerente, do dept 0 que controla o projeto. SMITHS(ESSN) SSN ( LNAME=Smith (EMPLOYEE)) -- SMITH_WORKER_PROJS PNO (WORKS_ON * SMITHS) -- MGRS LNAME, DNUMBER (EMPLOYEE SSN=MGRSSN DEPARTMENT) -- SMITH_MGRS LNAME=Smith (MGRS) -- Exemplos de queries em AR...

84 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias84 ¹... SMITH_MANAGED_DEPTS(DNUM) DNUMBER (SMITH_MGRS) -- SMITH_MGR_PROJS(PNO) PNUMBER (SMITH_MANAGED_DEPTS * PROJECT) -- RESULT (SMITH_WORKER_PROJS SMITH_MGR_PROJS) Exemplos de queries em AR...

85 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias85 ºListe os nomes de todos os empregados que tenham um ou mais dependentes. Obs. Não pode ser resolvido com as operações padrões da AR. Devemos usar as operações adicionais FUNCTION e COUNT. T 1 (SSN, NO_OF_DEPS) ESSN COUNT DEPENDENT_NAME (DEPENDENT) -- T 2 NO_OF_DEPS=2 ( T 1 ) -- RESULT LNAME, FNAME ( T 2 * EMPLOYEE) Exemplos de queries em AR...

86 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias86 »Recupere os nomes de todos os empregados que não tenham dependentes. ALL_EMPS SSN (EMPLOYEE) -- EMPS_WITH_DEPS(SSN) ESSN (DEPENDENT) -- EMPS_WITHOUT_DEPS (ALL_EMPS EMPS_WITH_DEPS) -- RESULT LNAME, FNAME (EMPS_WITHOUT_DEPS * EMPLOYEE) Exemplos de queries em AR...

87 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias87 ¼Liste os nomes dos gerentes que tenham pelo menos um dependente. MGRS(SSN) MGRSSN (DEPARTMENT) -- EMPS_WITH_DEPS(SSN) ESSN (DEPENDENT) -- MGRS_WITH_DEPS (MGRS EMPS_WITH_DEPS) -- RESULT LNAME, FNAME (MGRS_WITH_DEPS * EMPLOYEE) Exemplos de queries em AR...

88 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias88 Um esquema de Banco de Dados Relacional pode ser derivado de um Modelo Conceitual que utilize o Modelo Entidade-Relacionamento Propriedade incorporada em ferramentas CASE e usadas pelos projetistas de BD A conversão de um modelo em outro é automática, fundamentada em um algoritmo Mapeamento ER Relacional

89 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias89 Algoritmo ER Relacional... Passo 1: (incluir as Relações Entidades) Para cada tipo entidade E regular do esquema ER, crie uma tabela R que inclua todos os atributos simples de E. – Inclua somente os componentes simples de um atributo composto. –Escolha um dos atributos chaves de E como uma chave primária para R. Se a chave escolhida for composta, o conjunto de atributos simples que a formam definirão a chave primária de R. Atenção! Não incluir (ainda) chaves-estrangeiras e atributos de relacionamento.

90 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias90 Após o passo 1: Algoritmo ER Relacional...

91 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias91 Passo 2: (incluir as Relações Tipo-Entidades Fracas) Para cada tipo-entidade fraco W, com tipo-entidade proprietária E do esquema ER, crie uma tabela R e inclua todos os atributos simples (ou componentes simples de atributos compostos) de W como atributos de R. Inclua como chave estrangeira de R a chave primária da tabela que corresponde ao tipo-entidade proprietário E (de W). Isto corresponde ao relacionamento de identificação (identifying relationship). A chave primária de R é a combinação da(s) chave(s) primária(s) do(s) proprietário(s) de W e da chave parcial da entidade fraca W. Algoritmo ER Relacional...

92 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias92 Após o passo 2 : Algoritmo ER Relacional...

93 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias93 Passo 3: (trata dos relacionamentos 1:1 do esquema ER) Para cada relacionamento binário R (1:1) do esquema ER, identifique as tabelas S e T que correspondem aos tipos-entidades que participam de R. Escolha uma das tabelas, p. ex. S, e inclua, como chave estrangeira de S, a chave primária de T (para o papel de S é melhor escolher o tipo-entidade com participação total em R) Inclua todos os atributos simples (ou componentes simples de atributos compostos) do relacionamento R (1:1) como atributos de S. Algoritmo ER Relacional...

94 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias94 Após o passo 3 : Algoritmo ER Relacional...

95 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias95 Observe que um mapeamento alternativo para um relacionamento 1:1 é possível, incluindo-se os dois tipos- entidades e o relacionamento em uma única tabela. É indicado quando ambas as participações são totais e quando as entidades-tipos não participam de outros relacionamentos Algoritmo ER Relacional...

96 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias96 Passo 4: (trata dos relacionamentos 1:N do esquema ER) Para cada relacionamento binário regular (não-fraco) R (1:N) do esquema ER, identifique a tabela S que representa o tipo- entidade que participa no lado N do relacionamento. Inclua, como chave estrangeira em S a chave primária da tabela T que representa o outro tipo-entidade participante de R. Inclua qualquer atributo simples (ou componentes simples de atributos compostos) do relacionamento 1:N como atributos de S. Algoritmo ER Relacional...

97 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias97 Após o passo 4: Algoritmo ER Relacional...

98 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias98 Passo 5: (trata dos relacionamentos M:N do esquema ER) Para cada relacionamento binário R (M:N) crie uma nova tabela S para representar R. Inclua, como chaves estrangeiras em S, as chaves primárias das tabelas que representam os tipo-entidades participantes do relacionamento. A combinação destas chaves estrangeiras formará a chave primária de S. Inclua qualquer atributo simples do relacionamento M:N como atributo de S. Algoritmo ER Relacional...

99 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias99 Após o passo 5: Algoritmo ER Relacional...

100 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias100 Passo 6: (trata dos atributos multi-valorados no esquema ER) Para cada atributo multi-valorado A crie uma nova tabela R que inclua um atributo correspondente de A mais a chave primária K (como chave estrangeira em R) da tabela que representa o tipo- entidade ou relacionamento que possua A como atributo. A chave primária de R é a combinação de A e K. Se o atributo A é composto deve-se incluir todos os seus componentes simples. Algoritmo ER Relacional...

101 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias101 Após o passo 6: Algoritmo ER Relacional...

102 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias102 Passo 7: (trata dos relacionamentos de grau n no esquema ER) Para cada relacionamento R de grau n, n > 2, crie uma nova tabela S para representar R. Inclua como chaves estrangeiras em S as chaves primárias das tabelas que representam as entidades-tipos participantes. Inclua também qualquer atributo simples do relacionamento n-ário (ou componentes simples de atributos compostos) como atributos de S. A chave primária de S usualmente é uma combinação de todas as chaves estrangeiras que referenciam as tabelas que representam os tipos-entidades participantes. Algoritmo ER Relacional...

103 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias103 Passo 7: (trata dos relacionamentos de grau n no esquema ER) Se a restrição de participação (min, max) de um dos tipos- entidades E participantes em R possui max=1, então a chave primária de S pode ser a única chave estrangeira que referencia a tabela E´ correspondente a E, porque, neste caso, cada entidade e em E participará com no máximo uma instância no relacionamento R e assim pode identificar univocamente aquela instância do relacionamento. Algoritmo ER Relacional...

104 UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias104 Algoritmo ER Relacional... Exemplo:


Carregar ppt "UERJ - Agosto 2000© Oscar Luiz Monteiro de Farias1 Bancos de Dados Mestrado em Engenharia de Computação área de concentração Geomática."

Apresentações semelhantes


Anúncios Google