BDatos_Tema6_2016

download BDatos_Tema6_2016

of 47

Transcript of BDatos_Tema6_2016

  • 7/25/2019 BDatos_Tema6_2016

    1/47

    Docente:

    Ing. Joel Jara LLajaruna

    Base de Datos

    BASEBASE

    DATOSDATOS

    ResultadosResultados

    ResultadosResultados

    RequerimientosRequerimientos

    RequerimientosRequerimientosInternet

    UNIVERSIDAD SAN PEDRO

    ESCUELA DE ING. INDUSTRIAL

  • 7/25/2019 BDatos_Tema6_2016

    2/47

    Base de DatosBase de Datos

    Tema 6:

    El Lenguaje Estndar SL

  • 7/25/2019 BDatos_Tema6_2016

    3/47

    Temario:

    Introduccin Sublenguaje de Defnicin de Datos

    Sublenguaje de Manipulacin de Datos

  • 7/25/2019 BDatos_Tema6_2016

    4/47

    Introduccin I

    Caractersticas ms importantes del lenguaje: structuras de datos simples !peradores potentes

    "eriodos de aprendi#aje inicial cortos Mejora de la independencia de datos Modo de uso dual $interacti%o o inmerso& !ptimi#acin

  • 7/25/2019 BDatos_Tema6_2016

    5/47

    Introduccin II

    'as sentencias S(' pueden di%idirse en tres tipos: Sublenguaje de defnicin de datos $DD'&:

    proporciona rdenes para defnir es)uemas derelacin* eliminar relaciones* crear ndices +modifcar es)uemas de relacin

    Sublenguaje de manipulacin de datos $DM'&: Sublenguaje de control de datos $DC'&: inclu+e

    rdenes )ue permiten especifcar controles deseguridad a los datos almacenados comoespecifcacin de pri%ilegios de acceso + controlde concurrencia,

    'enguaje procedural $"'& para la creacin deprocedimientos almacenados

  • 7/25/2019 BDatos_Tema6_2016

    6/47

    Introduccin III

  • 7/25/2019 BDatos_Tema6_2016

    7/47

    Sublenguaje de Defnicin deDatos

    Defnicin de una relacin:

    C-.T T./' -$.0 D0* .1 D1* ,,,* .n Dn&donde -: nombre de la relacin .i: nombre de un atributo del es)uema de relacin

    Di: tipo de datos de los %alores en el dominio del atributo.i

    'a especifcacin de un es)uema de relacin tambi2n puede incluir:el conjunto de ndices )ue se %a a mantener para cada relacinla in3ormacin de seguridad + autori#acin para cada relacinciertos lmites de integridad

    la estructura 3sica de almacenamiento de cada relacinliminacin de una relacin: D-!" T./' -.dicin de nue%os atributos a una relacin:.'T- T./' - .DD . D

  • 7/25/2019 BDatos_Tema6_2016

    8/47

    Creacin de tablas

    Tipos de Datos

    Carcter: char(n), varchar(n) Nu!rico: integer, "oat, decial(n,) #bstracto: date, one$

    Condiciones de integridad para colunas(restriccion%coluna) : 45I(4

    "-IM.-6 76 -8-5CS tabla 9$ columna & 9!5 D'T opc 9!5

    4"D.T opc C;C7 $ expresin_booleana &

    Condiciones de integridad para tablas(restriccion%tabla) :

    45I(4 $ columna < * columna = & "-IM.-6 76 $ columna < * columna = & 8!-I>5 76 $ columna < * columna = & -8-5CS tabla 9$ columna < * columna = & 9!5 D'T opcion 9!5 4"D.T opcion

    C;C7 $ expresin_booleana &

  • 7/25/2019 BDatos_Tema6_2016

    9/47

    Sublenguaje de Defnicin deDatos

    C-.T T./' /anco $

    banco?id int 5!T 54''* ra#onSocial %arc@ar$1A& 5!T 54''&go

    .'T- T./' /anco

    .DD "-IM.-6 76 $banco?id&go

    C-.T T./' Ciudad $ ciudad?id int 5!T 54''*

    nombre %arc@ar$1A& 5!T 54''&go

    .'T- T./' Ciudad .DD "-IM.-6 76 $ciudad?id&

    go

  • 7/25/2019 BDatos_Tema6_2016

    10/47

    Sublenguaje de &anipulacin deDatos

    "ermite acceder a la in3ormacin contenida en labase de datos para su consulta + actuali#acin* atra%2s de sus cuatro %erbos de manipulacin:S'CT* I5S-T* 4"D.T + D'T

    'a estructura bsica de una consulta S('4sa una me#cla de estructuras del lgebrarelacional + del clculo relacionalConsta de tres clusulas:

    S'CT: corresponde a la operacin depro+eccin del lgebra relacional, Se utili#a paralistar los atributos )ue se desean en el resultadode una consulta

  • 7/25/2019 BDatos_Tema6_2016

    11/47

    Sublenguaje de &anipulacin deDatos

    S'CT: corresponde a la operacin de pro+eccin dellgebra relacional, Se utili#a para listar los atributos)ue se desean en el resultado de una consulta'a lista de atributos puede sustituirse por B paraseleccionar todos los atributos de todas las relaciones

    )ue aparecen en la clusula from8-!M: corresponde a la operacin de productocartesiano del lgebra relacional, 'ista las relaciones)ue se %an a eaminar en la e%aluacin de la epresin

    ;-: corresponde al predicado de seleccin dellgebra relacional, Consta de un predicado )ue inclu+eatributos de las relaciones )ue aparecen en la clusulafrom

  • 7/25/2019 BDatos_Tema6_2016

    12/47

    Sublenguaje de &anipulacin deDatos

  • 7/25/2019 BDatos_Tema6_2016

    13/47

    S(': lenguaje relacionalmente completo + mspoderoso )ue el lgebra relacional $poseecapacidades no incluidas en los lenguajes

    3ormales: ordenacin* 3unciones deagregacin* etc,,&

    4na epresin S(' se puede con%ertir en una

    epresin e)ui%alente de 3orma )ue puedaprocesarse mas efcientemente$'ptiiacin&

    Sublenguaje de &anipulacin de Datos

  • 7/25/2019 BDatos_Tema6_2016

    14/47

    1. Condiciones o criterios"or medio de ciertos modifcadores* llamados clusulas* seconsigue generar criterios con el fn de defnir los datos )ue sedesea seleccionar o manipular

    Sublenguaje de &anipulacin de Datos

  • 7/25/2019 BDatos_Tema6_2016

    15/47

    2. Operadores Lgicos

    Sublenguaje de &anipulacin de Datos

  • 7/25/2019 BDatos_Tema6_2016

    16/47

    3 Operadores de Comparacin

    Sublenguaje de &anipulacin de Datos

  • 7/25/2019 BDatos_Tema6_2016

    17/47

    4 Funciones de Agregado'as 3unciones de agregado se usan dentro de unaclusula S'CT en grupos de registros para de%ol%erun Enico %alor )ue se aplica a un grupo de registros

    Sublenguaje de &anipulacin de Datos

  • 7/25/2019 BDatos_Tema6_2016

    18/47

    Consultas de Seleccin (S*CT)

    Consultas de seleccin bsicas'a sintais ms sencilla de una consulta deseleccin es la siguiente:

    S'CT Campos 8-!M Tabla

    Donde campos es la lista de campos )ue se deseenrecuperar + tabla es el origen de los mismos, "orejemplo* la consulta

    S'CT Nombre* Telefono 8-!M ClientesFde%uel%e una tabla temporal con los camposnombre + telfono de la tabla clientes

    l d l i

  • 7/25/2019 BDatos_Tema6_2016

    19/47

    Consultas de Seleccin(S*CT)

    Ordenar los registros (OR!R "#$.dicionalmente se puede especifcar el orden en )uese desean recuperar los registros de las tablasmediante la clusula !-D- /6 Lista-Campos, Donde

    Lista-campos representa los campos a ordenar, "orejemplo* la consulta

    S'CT CodigoPostal* Nombre* Telefono 8-!MClientes !-D- /6 Nombre

  • 7/25/2019 BDatos_Tema6_2016

    20/47

    Consultas de Seleccin (S*CT)

    Ordenar los registros (OR!R "#$Se pueden ordenar los registros por ms de un campo,

    "or ejemplo:S'CT CodigoPostal* Nombre* Telefono 8-!MClientes !-D- /6 CodigoPostal* Nombre

    Incluso se puede especifcar el orden de losregistros: ascendente mediante la clusula .SC$%alor por de3ecto& o descendente DSC, "or

    ejemplo:

    S'CT CodigoPostal* Nombre* Telefono 8-!MClientes !-D- /6 CodigoPostal DSC * Nombre.SC

  • 7/25/2019 BDatos_Tema6_2016

    21/47

    Consultas de Seleccin(S*CT)

    Consultas con %redicado (ALL& 'O%& )'*C'$n cuanto al conjunto de registros seleccionados* estosmodifcadores* )ue se inclu+en entre S'CT + el primernombre del campo a recuperar* pro%ocan las siguientesacciones:

    C lt d S l i

  • 7/25/2019 BDatos_Tema6_2016

    22/47

    Consultas de Seleccin(S*CT)

    #** +

    s el %alor por de3ecto, l Motor de base de datosselecciona todos los registros )ue cumplen lascondiciones de la instruccin S(',

    S'CT .'' 8-!M Empleados

    S'CT B 8-!M Empleados

    C lt d S l i

  • 7/25/2019 BDatos_Tema6_2016

    23/47

    Consultas de Seleccin(S*CT)

    T'-De%uel%e un cierto nEmero de registros )uecorresponden al principio o al fnal de un rangoespecifcado por una clusula !-D- /6,

    S'CT T!" 1G Nombre*Apellido 8-!M Estudiantes!-D- /6 Nota DSC

    Supongamos )ue* en lugar de los 1G primerosestudiantes* deseamos el 0A por ciento del curso:

    S'CT T!" 0A "-C5T Nombre*Apellido 8-!MEstudiantes !-D- /6 Nota DSC

    C lt d S l i

  • 7/25/2019 BDatos_Tema6_2016

    24/47

    Consultas de Seleccin(S*CT)

    D.ST.NCT

    !mite los registros )ue contienen datosduplicados en los campos seleccionados,

    S'CT DISTI5CTApellido 8-!M EmpleadosF

    Con otras palabras* el predicado DISTI5CTde%uel%e a)uellos registros cu+os camposindicados en la clusula S'CT posean uncontenido di3erente,

    C lt d S l i

  • 7/25/2019 BDatos_Tema6_2016

    25/47

    Consultas de Seleccin(S*CT)

    D.ST.NCT/'0

    De%uel%e los registros di3erentes de una tablaF +*a di3erencia del predicado anterior )ue slo sefjaba en el contenido de los campos

    seleccionados* 2ste lo @ace en el contenido delregistro completo

    S'CT DISTI5CT-!Apellido 8-!M Empleados

    Consultas de Seleccin

  • 7/25/2019 BDatos_Tema6_2016

    26/47

    Consultas de Seleccin(S*CT)

    #lias (#S)

    n determinadas circunstancias es necesarioasignar un nombre nue%o a alguna columnadeterminada de un conjunto de registros

    de%uelto por una consulta,

    S'CT DISTI5CT-!Apellido .S Empleado8-!M EmpleadosF

  • 7/25/2019 BDatos_Tema6_2016

    27/47

    Criterios de Seleccin

    Operadores Lgicos..lgunos operadores lgicos soportados por S(' son: .5D* !-+ 5!T, 'os dos primeros poseen la sintais:Hexpresin1 operador Hexpresinn donde expresin1 + expresin son las condiciones ae%aluar* el resultado de la operacin %ara en 3uncin del

    operador lgico

    "or ejemplo* consid2rense las consultas:

    S'CT B 8-!M Empleados ;- Edad 1G .5D Edad H GA

    S'CT B 8-!M Empleados ;- 5!T Estado J KSolteroK

    S'CT B 8-!M Empleados ;- $!ueldo 0AA .5D !ueldoH GAA& !- $Pro"incia J LTrujilloK .5D Estado J KCasadoK&

  • 7/25/2019 BDatos_Tema6_2016

    28/47

    Inter%alos de alores

    nter+alos de ,alores ("!'-!!*$"ara indicar )ue deseamos recuperar los registros segEnel inter%alo de %alores de un campo emplearemos eloperador /T5 cu+a sintais es:campo 95ot /etNeen %alor0 .nd %alor1 $la condicin5ot es opcional&

    "or ejemplo:

    S'CT B 8-!M Pedidos ;- CodPostal /T51OAAA .5D 1OPPPF

    S'CT B 8-!M Pedidos ;- CodPostal 5!T/T5 1OAAA .5D 1OPPPF

  • 7/25/2019 BDatos_Tema6_2016

    29/47

    l !perador 'iQe

    !l Operador L!

    Se utili#a para comparar una epresin de cadena con unmodelo en una epresin S(', Su sintais es:expresin 'I7 modelo

    "or ejemplo* si se introduce 'I7 LCR en una consulta S('*

    la consulta de%uel%e todos los %alores de campo )uecomiencen por la letra C,

    l ejemplo siguiente de%uel%e los datos )ue comien#an conla letra " seguido de cual)uier letra entre . + 8 + de tresdgitos:

    'I7 K"9.8???K

    ste ejemplo de%uel%e los campos cu+o contenido empiececon una letra de la . a la D seguidas de cual)uier cadena,

    'I7 K9.DBK

  • 7/25/2019 BDatos_Tema6_2016

    30/47

    l !perador I5

    !l Operador *

    ste operador de%uel%e los registros cu+o campoindicado coincide con alguno de los dados en unalista, Su sintais es:

    expresin 95!T I5 $"alor1* "alor* , , ,&

    "or ejemplo:

    S'CT B 8-!M Pedidos ;- Pro"incia I5 $LTrujilloK*

    KC@ep2nK* LirEK&

  • 7/25/2019 BDatos_Tema6_2016

    31/47

    l !perador I5

    !l cuanti/cador e0istencial (!)')$

    'a epresin siguiente:;- UISTS $S'CT #$ 8-!M ,,,,&es %erdadera si + slo si el resultado de e%aluar la

    consulta especifcada por

    S'CT #$ 8-!M ,,,, no es el conjunto %aco,

    S'CT 5!M/-"-!"IT.-I!* ."''ID!"-!"IT.-I!

    8-!M "-!"IT.-I!S?.5TI>VD.DS;- UISTS $S'CT B 8-!M .5TI>VD.DS;- "-!D4CT! J KSillaK&

  • 7/25/2019 BDatos_Tema6_2016

    32/47

    'a clusula @ere

    La clusula -!R!

    Como @emos %isto* la clusula ;- se usa paradeterminar )u2 registros de las tablas enumeradas enla clusula 8-!M aparecern en los resultados de lainstruccin S'CT, . continuacin se listan algunosejemplos:

    S'CTApellidos* !alario 8-!M Empleados ;- !alario 10AAS'CTApellidos* Nombre 8-!M Empleados ;-Apellidos'iQe KSRK

    S'CTApellidos* !alario 8-!M Empleados ;- !alario/etNeen 1AA .nd WAAS'CTApellidos* !alario 8-!M Empl ;-Apellidos /etNeenK'aoL .nd KTorresKS'CT %d_Pedido* &ec'a_Pedido 8-!M Pedidos ;-&ec'a_Pedido /etNeen A0XA0X1AAO .nd WAXAYX1AAO

    # i t d / i t

  • 7/25/2019 BDatos_Tema6_2016

    33/47

    #grupaiento de /egistros $1unciones agregadas

    RO% "#Combina los registros con %alores id2nticos* en la lista decampos especifcados* en un Enico registro, Su sintais es:

    !ELECTcampos 8-!M tabla ;- criterio >-!4" /6

    campos del grupo

    >-!4" /6 es opcional, 'os %alores de resumen se omitensi no eiste una 3uncin S(' agregada en la instruccinS'CT, Se utili#a la clusula ;- para ecluir a)uellas

    flas )ue no desea agrupar* + la clusula ;.I5> parafltrar los registros una %e# agrupados,

    S'CT %d_&amilia* Sum$!toc(&8-!M Productos >-!4" /6%d_&amilia

  • 7/25/2019 BDatos_Tema6_2016

    34/47

    Lenguaje de Manipulacin de Datos

    # i t d / i t

  • 7/25/2019 BDatos_Tema6_2016

    35/47

    #grupaiento de /egistros $1unciones agregadas

    A,

    Calcula la media aritm2tica de un conjunto de%alores contenidos en un campo especifcado

    de una consulta, Su sintais es: .%g$expr&

    S'CT .%g$)astos& .S Promedio 8-!MPedidos ;- )astos 0AA

    # i t d / i t

  • 7/25/2019 BDatos_Tema6_2016

    36/47

    #grupaiento de /egistros $1unciones agregadas

    CountCalcula el nEmero de registros de%ueltos por unaconsulta, Su sintais es la siguiente: Count$expr& ,Donde expr contiene el nombre del campo )ue deseacontar, 'os operandos de expr pueden incluir elnombre de un campo de una tabla* una constante ouna 3uncin $la cual puede ser intrnseca o defnidapor el usuario pero no otras de las 3uncionesagregadas de S('&, "uede contar cual)uier tipo dedatos incluso teto,

    S'CT Count$B& .S Total 8-!M Pedidos

    # i t d / i t

  • 7/25/2019 BDatos_Tema6_2016

    37/47

    #grupaiento de /egistros $1unciones agregadas

    5a0& 5inDe%uel%en el mnimo o el mimo de un conjunto de%alores contenidos en un campo especifco de unaconsulta, Su sintais es:Min$expr&Ma$expr&Donde expr es el campo sobre el )ue se deseareali#ar el clculo, Expr puede incluir el nombre de uncampo de una tabla* una constante o una 3uncin

    S'CT Min$)astos& .S El*in 8-!M Pedidos ;- PaisJ L"erEKS'CT Ma$)astos& .S El*ax 8-!M Pedidos ;- PaisJ L"erEK

    # i t d / i t

  • 7/25/2019 BDatos_Tema6_2016

    38/47

    #grupaiento de /egistros $1unciones agregadas

    )umDe%uel%e la suma del conjunto de %alores contenidoen un campo especfco de una consulta, Su sintaises:

    Sum$expr&Donde expr representa el nombre del campo )uecontiene los datos )ue desean sumarse o unaepresin )ue reali#a un clculo utili#ando los datosde dic@os campos,

    S'CT Sum$Precio+nidad B Cantidad& .S Total 8-!M,etallePedidoF

  • 7/25/2019 BDatos_Tema6_2016

    39/47

    Lenguaje de Manipulacin de Datos

    'enguaje de Manipulacin de

  • 7/25/2019 BDatos_Tema6_2016

    40/47

    'enguaje de Manipulacin deDatos

  • 7/25/2019 BDatos_Tema6_2016

    41/47

    'MD: Insertar -egistros

    Eje!"lo

    Insert #nto Art#$ulo%$od#go&des$r#"$#on&sto$'&"$o!"ra&"(enta)

    Values %*+,-&/ogurt Glor#a + l#tro& 011&0.2&1.1)

  • 7/25/2019 BDatos_Tema6_2016

    42/47

    'MD: Insertar -egistros

  • 7/25/2019 BDatos_Tema6_2016

    43/47

    'MD: /orrado de -egistros

    'MD: Modifcacin de

  • 7/25/2019 BDatos_Tema6_2016

    44/47

    'MD: Modifcacin de-egistros

    j i i 0

  • 7/25/2019 BDatos_Tema6_2016

    45/47

    jercicio 0

    4na empresa de pla#a posee un sistema paramanejar los pro+ectos )ue reali#a + el personalasignado a los mismos, ste sistema usa lassiguientes tablas:

    -/'2CT'S $cod?pro+* nom?pro+* 3ec@a?inicio* tipo&-/S'N#* $cod?3unc* nombre* 3ec@a?ingreso&T#/#S $cod?tarea* descripcin* tipo&

    #S.3N#C.'N $cod?3unc* cod?pro+* cod?tarea* 3ec@a*

    cant?@oras&&ediante el transact S4* resolver:

    j i i 0

  • 7/25/2019 BDatos_Tema6_2016

    46/47

    jercicio 0

    Se pide:0, Insertar 1 registros en cada tabla,1, !btener ordenados al3ab2ticamente los nombres de todoel personal de a)uellos )ue ingresaron el aZo 1A0[,W, !btener $de dos maneras distintas& los datos de lospro+ectos )ue se reali#aron el mes de \unio del 1A0W,

    [, !btener el nEmero total de pro+ectos por tipo,G, !btener el nEmero total de personal ingresaron entre losaZos 1A0W al 1A0GY, !btener la suma total de @oras )ue se trabajaron el aZo1A0[

    ], !btener la suma de @oras del pro+ecto de cdigo "A]Modifcar el nombre del personal de cdigo W[GO, !btener la suma de @oras por pro+ectoP, !btener el nombre del pro+ecto )ue tiene la 3ec@a deinicio mas reciente,

  • 7/25/2019 BDatos_Tema6_2016

    47/47

    8I5