Post on 28-Feb-2018
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