BD_05_06_T3

download BD_05_06_T3

of 21

description

gratis

Transcript of BD_05_06_T3

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata

    Modelos de Dados 1 - Introduo

    2 - Modelo Relacional

    2.1. Estrutura de Dados Relacional

    2.1.1. Modelo Conceptual de Dados

    Um modelo conceptual de dados a representao de um conjunto de

    objectos e das suas associaes

    Como qualquer representao o resultado de um processo de abstraco.

    . Durante esse processo de abstraco, objectos relevantes, associaes

    entre eles e caractersticas (atributos) de objectos e associaes so

    seleccionadas.

    . A relevncia de um objecto, de uma associao ou de um atributo

    determinada pelos objectivos do modelo.

    . Atributos de objectos e correspondentes associaes tm valores

    especficos que pertencem a conjuntos denominados domnios.

    . Um valor de um dado atributo pode variar ao longo do tempo mas

    pertencendo sempre ao domnio desse atributo.

    _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    40

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata

    O modelo relacional baseia-se no pressuposto de que os dados (que

    obedecem a certas restries) podem ser tratados da mesma forma que as

    relaes matemticas.

    2.1.2. Entidades, Atributos e Domnios

    Objectos e respectivas associaes so chamados ENTIDADES

    Um conjunto E de entidades do mesmo tipo caracterizado por um

    conjunto de ATRIBUTOS, A1, A2, ... , An e denotado por

    E (A1, A2, ... , An )

    onde

    Ai : E Di uma funo cujo contradomnio Di denominado DOMNIO do atributo Ai

    Dado e em E, Ai (e) em Di denominado o valor do atributo Ai da

    entidade e .

    _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    41

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata 2.1.3. Exemplo de um tipo de entidade

    Seja o tipo de entidade Pessoa cujos atributos relevantes so:

    Nmero de segurana social Primeiro nome ltimo nome

    Idade

    Pessoa ( NSS, P_nome, U_nome, Idade)

    Onde os domnios dos atributos so:

    NSS o conjunto, S, dos nmeros de segurana social

    P_nome o conjunto, A, de sequncias finitas de letras

    U_nome o conjunto, A, de sequncias finitas de letras

    Idade o conjunto, N, dos inteiros positivos

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata

    (A1, A2, ... , An ) : E D1 D2 ... Dn (i)

    onde D1 D2 ... Dn , denota o produto cartesiano dos conjuntos D1 , D2 , ..., Dn

    (isto , o conjunto de todos os n-uplos ( d1, d2, ... dn ) onde di Di para i = 1,2,..n )

    A funo (A1, A2, ... , An ) definida como:

    (A1, A2, ... , An ) (e) = ( A1(e), A2(e), ... , An(e) ) (ii)

    onde para quaisquer duas entidades e1 e e2 do tipo E se verifique que

    (A1, A2, ... , An ) (e1) != (A1, A2, ... , An ) (e2) (iii)

    A condio (iii) verifica-se se existir um j = 1,2,..n para o qual

    Aj (e1) != Aj (e2)

    Diferentes entidades so representadas por tuplos diferentes.

    Dois tuplos so diferentes se tm valores diferentes em pelo menos um

    atributo. _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    43

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata

    2.1.5. Exemplo da representao de um tipo de entidade por um conjunto de tuplos

    A notao

    Pessoa (NSS, P_nome, U_nome, Idade) interpretada como a funo

    (NSS, P_nome, U_nome, Idade) : Pessoa S A A N

    Esta funo determina para cada pessoa p um 4-uplo (n de segurana

    social, primeiro nome, ltimo nome, idade) que representa essa pessoa.

    Diferentes pessoas p1 e p2 determinam diferentes tuplos.

    Mesmo que tenham os mesmos primeiro e ltimo nomes, o NSS

    seguramente diferente.

    Entidade Atributos Domnios

    Idade U_nome

    P_nome

    NSS

    conjunto dos inteiros no negativos

    Conjunto dos nmeros da segurana social

    Conjunto da sequncias de letras

    Conjunto de pessoas

    _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    44

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata

    Num dado instante, um conjunto de pessoas pode ser representado pela

    seguinte tabela:

    NSS P_nome U_nome Idade

    941 Pedro Silva 31

    385 Mrio Sousa 24

    102 Joana Ferreira 64

    243 Maria Andrade 52

    860 Joo Almeida 24

    543 Alice Fonseca 45

    2.1.6. Relao (ver pgina 31) R uma relao nos conjuntos D1, D2, ...Dn se e s se

    R D1 D2 ... Dn A estrutura da relao R descrita pela notao R( A1, A2, ...An) onde

    Ai: R Di uma atributo de R e Di o seu domnio para i=1,2,...,n

    2.1.7. Base de dados relacional e esquema relacional Uma base de dados relacional uma coleco de relaes cujo contedo varia ao longo do tempo. Um esquema relacional a descrio da estrutura das relaes numa base de dados relacional.

    _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    45

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata 2.1.8. Exemplo de um esquema relacional

    Departamento (Dep, Nome, Local)

    Empregado (Emp, Nome, Categoria, Dep)

    Projecto (Proj, Designao, Fundos)

    Atribuio ( Emp, Proj, Funo)

    O esquema descreve 4 tipos de entidades: Departamento, Empregado, Projecto, e Atribuio de empregados a

    projectos.

    Atributos de entidades do tipo Departamento so:

    Dep nmero de departamento Nome nome do departamento Local localizao do departamento

    Atributos de entidades do tipo Empregado so:

    Emp n de segurana social do empregado Nome nome do empregado Categoria Categoria do empregado Dep nmero do departamento a que pertence o empregado

    Atributos de entidades do tipo Projecto so:

    Proj Cdigo do projecto Designao designao do projecto Fundos fundos atribudos ao projecto _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    46

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata

    Atributos de entidades do tipo Atribuio

    Emp nmero de segurana social do empregado Proj cdigo do projecto Funo funo que o empregado desempenha no projecto

    So assumidas as seguintes restries

    - um empregado pertence a um nico departamento

    - um empregado pode ser designado para vrios projectos e um

    projecto tem vrios empregados atribudos

    Representao do Modelo de dados (a estudar posteriormente):

    M

    N1

    Atribuio

    PProjecto

    Empregado Departamento

    Como obteramos resposta seguinte interrogao:

    Quais os nomes dos empregados cuja categoria Programador e que

    pertencem a Departamentos localizados em Lisboa ?

    (Com o que j sabemos de lgebra relacional)

    (E em SQL?) _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    47

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata

    2.2. lgebra Relacional Um modelo por si prprio no pode realizar qualquer unidade de trabalho

    til. apenas uma representao da realidade.

    Para realizar interrogaes acerca das propriedades das entidades

    representadas no modelo precisamos de uma linguagem apropriada. Diviso, Unio, Diferena e Produto Cartesiano.

    Existem vrias linguagens eficientemente implementadas a amplamente

    aceites. Do ponto de vista conceptual todas tiveram origem numa

    linguagem formal denominada lgebra Relacional.

    Para aprofundar as linguagens base do modelo relacional ver Captulo IV - Relacional lgebra and Relacional Calculus de [Connolly99], [Connolly99] Connolly, Thomas, Carolyn Begg and Anne Strachan, Database Systems, A Pratical Approach to Design, Implementation and Management, Addison-Wesley 2nd Edition, 1999. Biblioteca da UBI: I-6.2-53 A lgebra relacional consiste numa coleco de operadores sobre relaes: Operaes usuais sobre conjuntos:

    - Unio - Interseco - Diferena - Produto cartesiano

    Outras operaes:

    - Projeco - Restrio - Juno - Diviso

    1 - Projeco _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    48

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. PrataSeja R(X,Y) com X = A1, A2, ... , Ak

    Y = Ak+1, ... , An Projeco de R sobre os atributos X: (R)= { x : existe um y tal que (x,y) R(X,Y) }

    Se a relao R representada como uma tabela, a operao de projeco

    de R sobre o conjunto de atributos X interpretada como a seleco das

    colunas de R que correspondem aos atributos de X e a eliminao das

    linhas duplicadas na tabela obtida.

    ////////////// ////////////// ////////////// //////////////

    (R)

    X Representao grfica: R Exemplo:

    Empregado (Emp#, Nome, Categoria, Dep#)

    _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    49

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata. Emp# chave da relao empregado

    Empregado Emp# Nome Categoria Dep# e1 n1 c1 d1 e2 n2 c2 d2 e3 n3 c3 d1 e4 n4 c1 d2 e5 n5 c2 d3 e6 n6 c2 d3 e7 n7 c1 d1 Projeco da tabela Empregado sobre os atributos Dep# e Categoria,

    (Empregado) d origem tabela: Dep# Categoria d1 c1 d1 c3 d2 c1 d2 c2 d3 c2

    (Empregado)

    Dep#, Categoria Representao grfica:

    Empregado 2- Restrio (ou seleco) _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    50

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. PrataSeja a relao R (A1, A2, ... , An ) e p uma expresso lgica definida sobre

    D1 D2 , ..., Dn, com Di domnio de Ai

    A restrio de R a respeito da condio p, < p > (R) = { z: z tuplo de R e p(z) verdadeiro} Sendo R representada como uma tabela a operao de restrio pode ser

    interpretada como a eliminao das linhas da tabela R que no satisfazem a

    condio p.

    //////////// ////////// /////////// //////////// ////////// ///////////

    < p > (R)

    Representao grfica: p R Exemplo: Restrio da tabela Empregado tal que Categoria= c2

    < Categoria=c2 > (Empregado) _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    51

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata d origem tabela,

    Emp# Nome Categoria Dep# e2 n2 c2 d2 e5 n5 c2 d3 e6 n6 c2 d3

    < Categoria=c2 > (Empregado)

    Representao grfica: Categoria=c2 Empregado 3 Juno (equijuno) Seja A(Z,X) e B(Y,W) Com Z,X,Y,W conjuntos de atributos tais que

    - X e Y tm o mesmo nmero de atributos e atributos correspondentes

    tm o mesmo domnio

    Juno das relaes A e B sobre os atributos X e Y: _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    52

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata A X=Y B = { (z,x,w) : (z,x) A and (y,w) B and x = y }

    O resultado uma relao cujo conjunto de atributos a unio dos

    conjuntos Z, X (ou Y) e W.

    Os tuplos da tabela so obtidos pela concatenao dos tuplos de A com os

    tuplos de B sempre que os valores dos atributos de X so iguais aos valores

    dos atributos de Y.

    Atributos duplicados (X ou Y) so eliminados.

    Exemplo:

    Empregados (Emp#, Nome, Categoria, Dep#)

    Departamento (Dep#, Nome, Local)

    A Expresso:

    ( Empregado Dep# = Dep# Departamento ) denota a composio de duas operaes:

    - A juno das relaes Empregado e Departamento sobre os atributos

    Dep#

    - A projeco do resultado da juno sobre os atributos Nome do

    empregado e Local

    _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    53

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. PrataEmpregado Emp# Nome Categoria Dep# e1 n1 c1 d1 e2 n2 c2 d2 e3 n3 c3 d1 e4 n4 c1 d2 e5 n5 c2 d3 e6 n6 c2 d3 e7 n7 c1 d1 Departamento Dep# Nome Local d1 N1 l1 d2 N2 l1 d3 N3 l2 Representao grfica:

    Nome Local n1 l1 n2 l1 n3 l1 n4 l1 n5 l2 n6 l2 n7 l1

    Dep# Dep#

    E.Nome, D.Local

    Empregado E Departamento D - Qual a pergunta a que esta operao responde?

    _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    544 Diviso

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata Seja as relaes A(X,Y) e B(Z) com X,Y, Z conjuntos de atributos.

    Y e Z contm igual nmero de atributos e os domnios correspondentes so

    iguais .

    A diviso de A por B sobre Y e Z A B = { x : z B, (x,z) A} Valores de x tais que o par (x,z) ocorre em A para todos os valores de z

    que ocorrem em B.

    Representao grfica:

    A B

    A B

    Exemplo: Atribuio ( (Projecto) ) Denota a diviso da relao Atribuio pela projeco da relao Projecto

    sobre o atributo Proj#

    Dadas as relaes, _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    55

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata Projecto

    Proj# Designao Fundos p1 t1 f1 p2 t2 f2 p3 t3 f3

    Atribuio Emp# Proj# Funo e1 p1 r1 e2 p3 r1 e2 p2 r2 e3 p2 r1 e3 p3 r1 e4 p1 r1 e5 p3 r2 e6 p1 r3 e6 p2 r3 e6 p3 r3 e7 p1 r1 O resultado de (Projecto)

    Proj# p1 p2 p3

    O resultado da diviso :

    Emp# Funo e6 r3

    - Qual a pergunta a que esta operao responde? Exerccio: dadas as tabelas,

    _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    56

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. PrataD S P s1 p1 s1 p2 s1 p3 s1 p4 s1 p5 s1 p6 s2 p1 s2 p2 s3 p2 s4 p2 s4 p4 s4 p5 d1 P p1 d2 P p2 p4 d3 P p1 p2 p3 p4 p5 p6 - Calcule 1 - Dd1 , 2 - Dd2, 3 - Dd3 Unio, Interseco e Diferena _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    57

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata Dados R1 e R2 tais que tm igual nmero de atributos e os domnios dos

    atributos correspondentes so os mesmos (esquemas relacionais

    compatveis)

    5 - Unio R1 R2 o conjunto dos tuplos de R1 r R2 R1 R2

    R1 R2

    6 Interseco R1 R2 o conjunto de tuplos comuns a R1 e R2. R1 R2

    R1 R2

    7 Diferena _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    58

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. PrataR1 R2 o conjunto de tuplos de R1 que no pertencem a R2 R1 R2

    R1 R2

    Para 5, 6 e 7 a relao resultado tem os mesmos atributos que o 1 operando 8 Produto Cartesiano Dadas R1 e R2 com qualquer esquema, R1 R2 concatenao dos atributos de R1 e R2.

    Cada tuplo de R1 concatenado com cada tuplo de R2.

    R1 R2

    -

    R1 R2

    Comparar com a juno ... A representao grfica permite construir uma rvore para exprimir questes Base de Dados. _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    59

  • Universidade da Beira Interior Cursos: Engenharia Informtica, Ensino da Informtica, Matemtica Aplicada e Matemtica /Informtica

    Base de Dados I H. Proena, J. Muranho, P. Prata Seja a base de dados exemplo (pgina 32) e as questes I1: Quem forneceu o material M1 para a obra O1?

    I2: Que materiais (nomes) forneceu o fornecedor F2 e para que obras

    (nomes)?

    - Construir a resposta em lgebra relacional. Exerccio: A juno no a uma operao essencial, podendo ser definida em termos

    de operaes mais primitiva. O mesmo vlido para a interseco e diviso

    (As primitivas da linguagem so: Unio, Diferena, Produto, Seleco e

    Projeco)

    - Definir juno, interseco e diviso em termos dessas 5 primitivas.

    _______________________________________________________________________________________ http://www.di.ubi.pt/~pprata/bd.htm

    Apontamentos de BD I

    60