bases de datos parte 610 lgebra relacional3277

Upload: fernando-martinez

Post on 25-Feb-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    1/31

    Sistemas de Informacin II

    Tema6. lgebra

    relacionalBibliografa:Elmasri y Navathe:Fundamentosde Sistemasde Basesde

    Datos

    3 edii!n"#$$# %&a'tulo ()*

    +aria,-olina".llman y /idom: Database systems: the

    om'leteboo0* 1rentie,2all %&a'tulo )*

    CarlosCastillo

    .1F 4 #$$(

    5

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    2/31

    #

    Operaciones

    1royetar %)

    Seleionar

    %)

    1roduto artesiano%)

    6oin! 7eunir % )

    8'eraionesde on9untos

    .nir %)

    Intersectar()

    : Restar()

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    3/31

    ~

    .I~I,.\;I.

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    4/31

    3

    n

    Proyeccin()

    Seleionael valorde iertosatributosde todas lastu'lasde una relai!n

    A1,A2,...,A

    (R)={

    t[A1,A

    2,...,A

    n]:tR }

    Seleionaolumnasom'letas

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    5/31

    ID_Pelcula Nombre Ao1 Laguerradelasgalaxias 1!!" #lseorde losanillos1 "$$1% &arAdentro "$$'' #lia)ede*+i+iro "$$1

    ID_Actor Nombre A,ellido1 &ar- .amill

    " *risto,+er Lee% /aier 0ardem' .ugo 1eaing

    Proyeccin() ejemplosPelcula Actor

    Ao

    (Pelcula)2

    341!!564"$$1564"$$'564"$$157

    ID_Pelcula6Ao(Pelcula)2

    34161!!564"6"$$1564%6"$$'564'6"$$157

    Nombre(Actor)2

    34&ar-564*risto,+er564/a(ier564.ugo57

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    6/31

    n

    Proyeccin() en S!

    A1,A2,...,A

    (R)

    SELECT A1,A2,...,An FROM R

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    7/31

    ;

    Seleccin ()

    Seleionael valorde iertastu'las

    condicin(R)={tR: condicin(t)es

    cierto}

    Seleionafilas om'letas

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    8/31

    ID_Pelcula Nombre Ao1 Laguerradelasgalaxias 1!!" Lacomunidaddelanillo "$$1% &arAdentro "$$'' #lia)ede*+i+iro "$$1

    ID_Actor Nombre A,ellido1 &ar- .amill

    " *risto,+er Lee% /aier 0ardem' .ugo 1eaing

    (

    Seleccin () ejemplosPelcula Actor

    A,ellido2Lee(Actor)2

    34"6*risto,+er6Lee57

    Ao5"$$$(Pelcula)2

    34"6Lacomunidad delanillo6"$$1564'6#liaede*+i+iro6"$$157

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    9/31

    Seleccin () en S!

    condicin

    (R

    )

    SELECT * FROM R WHERE condicin

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    10/31

    ID_Pelcula Nombre Ao1 Laguerradelasgalaxias 1!!" Lacomunidaddelanillo "$$1% &arAdentro "$$'' #lia)ede*+i+iro "$$1

    ID_Actor Nombre A,ellido1 &ar- .amill" *risto,+er Lee% /aier 0ardem' .ugo 1eaing

    Composicinde seleccin yproyeccin,?

    Pelcula Actor

    Nombre(A,ellido2Lee(Actor))2

    34*risto,+er57

    Nombre(Ao5"$$$(Pelcula))2

    34Lacomunidad delanillo56

    4#liaede*+i+iro57

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    11/31

    5$

    n

    Composicin(y ?) en S!

    A1,A2,...,A

    (condicin

    (R))

    SELECT A1,A2,...,An FROM R WHERE condicin

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    12/31

    ID_Pelcula Nombre Ao ID_#studio1 Laguerradelasgalaxias 1!! %" Lacomunidaddelanillo "$$1 "% &aradentro "$$' '' #lia)ede *+i+iro "$$1 1

    "liminar d#plicados ()

    Elimina tu'las

    du'liadasen una

    relai!n

    (R)

    Pelcula

    (?Ao(Pelcula)231!6"$$16"$$' 7

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    13/31

    Operacindelta en S!

    (R)

    SELECT DISTINCT * FROM R

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    14/31

    Prod#ctocartesiano()

    A

    B = {(a,b):a A b B}

    E9em'lo:

    < = >s"t?

    B = >u"v"@?

    s"t?>u"v"@?

    > %s"u)"%s"v)"%s"@)"%t"u)"%t"v)"%t"@) ?

    Aaardinalidades B

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    15/31

    Prod#ctocartesiano()

    ID_Pelcula Nombre Ao ID_#studio1 Laguerradelasgalaxias 1!! %" Lacomunidaddelanillo "$$1 "% &aradentro "$$' '' #lia)ede *+i+iro "$$1 1

    Pelcula

    ejemplosEstudio

    ID_

    #stud

    io Nombre

    1 8+ibli" Ne9Line*inema% Lucas:ilms' ;ogecine

    PelculaEstudio2

    3

    416Laguerradelasgalaxias61!!6%6168+ibli56

    416Laguerradelasgalaxias61!!6%6"6Ne9Line*inema56

    416Laguerradelasgalaxias61!!6%6%6Lucas:ilms56

    416Laguerradelasgalaxias61!!6%6'6;ogecine56

    4"6Lacomunidaddelanillo6"$$16"6168+ibli56

    4"6Lacomunidaddelanillo6"$$16"6"6Ne9Line*inema56

    4"6Lacomunidaddelanillo6"$$16"6%6Lucas:ilms56

    4"6Lacomunidaddelanillo6"$$16"6'6;ogecine56

    4%6&aradentro6"$$'6'6168+ibli56

    4%6&aradentro6"$$'6'6"6Ne9Line*inema56

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    16/31

    5

    Prod#ctocartesiano() enS!

    R1

    R2

    SELECT * FROM R1,R2

    S l i bi i

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    17/31

    Seleccionarcombinaciones

    ID_Pelcula Nombre Ao ID_#studio1 Laguerradelasgalaxias 1!! %" Lacomunidaddelanillo "$$1 "% &aradentro "$$' '' #lia)ede *+i+iro "$$1 1

    ID_#studio Nombre1 8+ibli" Ne9Line*inema% Lucas:ilms' ;ogecine

    5;

    correctasPelcula Estudio

    Pelcula.!"estudio=#studio.!"#studio(Pelcula#studio)2

    3

    416Laguerradelasgalaxias61!!6%6%6Lucas:ilms56

    4"6Lacomunidaddelanillo6"$$16"6"6Ne9Line*inema56

    4%6&

    aradentro6"$$'6'6'6;ogecine5

    64'6#lia)ede*+i+iro6"$$1616168+ibli5

    7

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    18/31

    correctasen S!

    R1.$=R2.$

    (R1R

    2)

    SELECT * FROM R1,R2WHERE R1.k=R2.k

    $ t i i

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    19/31

    $otacin% operacin&e#nir (JOIN)

    R1.$=R2.$

    (R1R

    2)

    R1 $

    R2

    5

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    20/31

    Operacin'OI$ en S!

    R1 $

    R2

    SELECT * FROM R1,R2WHERE R1.k=R2.k

    5

    Op ra in 'OI$

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    21/31

    Operacin'OI$en (yS!

    R1 $

    R2

    SELECT * FROM R1 JOIN R2 USIN!k"

    #$

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    22/31

    'OI$ nat#ral

    R1

    R2

    8mitir el subndiesignifia:

    .nir segFn todos los atributos Gue tenganel mismo nombre en las dos tablas

    #5

    Operacin $)T*&)! 'OI$

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    23/31

    Operacin$)T*&)! 'OI$en (yS!

    R1

    R2

    SELECT * FROM R1

    NATURAL JOIN R2

    Nota: esto usa todos los atributos Gue se llamen de lamisma manera" a vees no es lo Gue nosotros Gueremos

    Co#$ni%&%! id'co#$ni%&%, no# "M$nici(i! id'#$nici(i, id'co#$ni%&%, no# "

    Hueremos unir idIomunitat'ero no nom ##

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    24/31

    "jemplode $)T*&)! 'OI$#)+,- ,c% co#$ni%&%.no#, #$nici(i.no#, #$nici(i.*$(/0ici0/o# co#$ni%&% n&%$/&oin #$nici(i33334 no# 4 no# 4 *$(/0ici 433334 C$%& 4 C$%& 4 15.62 44 Mi& 4 Mi& 4 17.58 4

    33332 /o9 in % !:.1; *c"#)+,- ,c% co#$ni%&%.no#, #$nici(i.no#,#$nici(i.*$(/0ici 0/o# co#$ni%&%oin #$nici(i$*in

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    25/31

    !"+T 'OI$

    68JNeliminaalgunosdatosAos Gue no estKn en las dos tablas

    AEFL 68JNreem'laMalos eliminados'or

    valoresnulosen latablade laiMGuierda

    #C

    Operacin !"+T 'OI$

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    26/31

    #

    Operacin!"+T 'OI$en (yS!

    R1 $

    R2

    SELECT * FROM R1 LEFT JOIN R2 USIN!k"

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    27/31

    #;

    ID_Pelcula Nom

    bre Ao ID_#studio1 Laguerradelasgalaxias 1!! %" Lacomunidaddelanillo "$$1 "% &aradentro "$$' '' #lia)ede *+i+iro "$$1 1

    *N= Nombre1 8+ibli1 Ne9Line*inema1 Lucas:ilms1 ;ogecine

    *N= Nombre1 8+ibli1 Ne9Line*inema1 Lucas:ilms1 ;ogecine$ Nue(o #studio

    "jemplo!"+T 'OI$Pelcula

    Estudio

    ID_#studio Nombre1 8+ibli" Ne9Line *inema% Lucas:ilms' ;ogecine> Nue(o #studio

    SELECT co$n%!id'(ic$&"AS CNTFROM *%$dio JOIN (ic$&

    USIN !id'*%$dio"

    SELECT co$n%!id'(ic$&"AS CNTFROM *%$dio LEFT JOIN (ic$&

    USIN !id'*%$dio"

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    28/31

    #(

    id_salida id_llegada

    1 "1 '> %> '

    > "> 1" '

    id_ciudad Nombre1 0arcelona" 0erlin% Roma' Paris> 0uda,est

    Nombre *N=0arcelona "0erlin 10uda,est 'Paris $

    Rom

    a $

    Otro ejemplo!"+T 'OI$Ciudad

    Viaje

    SELECTci$d&d.no#>/,COUNT!@i&.id'*&id&"

    FROMci$d&d LEFT JOIN @i& ON!ci$d&d.id'ci$d&d=@i&.id'*&id&"

    ROU Bci$d&d.no#>/

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    29/31

    #

    id_salida id_llegada1 "1 '> %> '

    > "> 1" '

    Nombre Nombre0arcelona 0erlin0arcelona Paris0uda,est Roma

    0uda,est Paris0uda,est 0erlin0uda,est 0arcelona0erlin Paris

    "jemplom,ltiples'OI$

    Ciudad

    Viaje

    id_ciudad Nombre1 0arcelona" 0erlin% Roma' Paris> 0uda,est

    SELECT c*.no#>/, c.no#>/FROM @i&

    JOIN ci$d&d AS c ON!@i&.id'*&id&=c*.id'ci$d&d" JOINci$d&d AS c, ON!@i&.id'

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    30/31

    #

    &es#men

    1royetar %): elegirolumnas

    Seleionar%): riterio'ara las

    filas 1roduto artesiano%):

    'rodutotablas

    6oin! 7eunir % )?combinartablas

  • 7/25/2019 Bases de Datos Parte 610 Lgebra Relacional3277

    31/31

    ~

    .I~I,.\;I.