You are on page 1of 100

Programacinde ComputadorasI

Ing.DanielDeSantiago

EresLibrede: Copiar,distribuir,ycomunicar pblicamentelaobra BajolasCondicionesSiguientes: Atribucin.Debesreconocerlaautoradelaobraenlostrminos especificadosporelpropioautorolicenciante. Nocomercial.Nopuedesutilizarestaobraparafinescomerciales. LicenciamientoRecproco.Sialteras,transformasocreasunaobraa partirdeestaobra,solopodrsdistribuirlaobraresultantebajouna licenciaigualasta. Hacerobrasderivadas

ThisworkislicensedundertheCreativeCommonsAttributionNoncommercialShareAlike2.5MexicoLicense.To viewacopyofthislicense,visithttp://creativecommons.org/licenses/byncsa/2.5/mx/orsendalettertoCreative Commons,171SecondStreet,Suite300,SanFrancisco,California,94105,USA.

Tema BasedeDatos
ModelosdeDatos

IntroduccinBasedeDatos

UnaBasedeDatos(BD)esunacoleccinde datosrelacionadosquerepresentauncierto modelooabstraccindelmundoreal(algunas vecesllamadoelminimundo).Loscambiosen esteminimundosonreflejadosenlabasede datos. Unabasededatosesdiseada,construiday llenadacondatosparaunpropsitoespecfico. Tieneungrupodeusuariosparticular,y algunasaplicacionespreestablecidasenlas cualesestosusuariosestninteresados.

IntroduccinBD

ELusodelasBDescontrarioalenfoque tradicional,enquecadasistemamaneja suspropiosdatosyarchivos.AlusarBD, todoslosdatossealmacenanenforma integrada,yestnsujetosauncontrol centralizado.Lasdiversasaplicaciones operansobreesteconjuntodedatos.

IntroduccinBD

Consideremoselsiguienteejemplo:Se deseaalmacenarlainformacindelos alumnosdeestaescuela,conlosramos queinscribencadasemestreysus respectivasnotas.Estosdatossepueden almacenarenunamatriz,fijandoun mximodecursosquepuedeninscribir cadasemestre.Lasiguientetabla muestraelenfoquetradicional.

Mat 654564 353090 672680 ... 654564 353090 672680 ...

Nombre JuanPrez Luis Gonzalez JosTapia ... JuanPrez Luis Gonzlez JosTapia

Semestr Curso e 1 97/1 97/1 97/1 FI21A FI33A FI10A

Nota 1 4.5 R *

Curso 2 MA22 A MA34 A CC10 A

Nota 2 4.2 4,6 *

Curso 3 QI21A CC30 A MA11 A

Nota 3 4.3 5.5 *

.. .

97/2 97/2 97/2

MA33 A CC31 A FI10A

R 6,2 R

SD20A 5.7 MA37 A CC10 A 4,5 R

MA26 A CC31 B MA11 A

E R 4.2

IntroduccinBD

Describirlasdesventajas:

ModelosdeDatos

Unmodelodedatosesunconjuntode conceptosquepuedenserusadospara describirlaestructuradeunaBD. ConceptosdeunaEstructuradeunaBD:


tiposdedatos lasrelacionesqueexistenentrelosdatos lasrestriccionesqueexistenentrelosdatos

ModelosdeDatos

Lasiguientefiguramuestralostiposdemodelosde datos.

ModelodeDatosFsicos

Elmodelodedatosfsicoseusapara describirdatosenunnivelmsbajo Dosdelosmsconocidossonelmodelo deunificacinyelmodelodememoria demarcos Estetipodemodelosnoserntemade estudio

ModeloLgicosbasadosen Objetos

Partendemundorealdelimitandoelentorno delsistemaydentrodeesteentorno identificanlosobjetosdeinters Seutilizanparadescribirlosdatosenlos niveleslgicoydevisin,yespecifican claramentelasligadurasdeconsistenciade losdatos Comoejemplosdeestegrupoestnel modeloentidadrelacinyelmodelo orientadoaobjetos

ModeloEntidadRelacin

Sebasaenlapercepcindeunmundo realqueconsisteenunconjuntode objetosbsicosllamadosentidades,yde lasrelacionesentreestosobjetos.


ci nombre domicilio modelo ao kilometraje fecha conductor importe

persona

posee

automvil

ocurri

accidente

ModeloOrientadoaObjetos

Estbasadoenunacoleccindeobjetos agrupadosenclases. Unaclasedescribeunconjuntodeobjetosque compartenlosmismosatributos,operaciones, relacionesysemntica


Valor valorActual() historia()

CuentaCorriente tasaIeInters ValorActual()

Accin valorActual()

Bono valorActual()

Propiedad tasacin valorActual()

ModelosLgicosbasadosen Registros

Seusanparadescribirlosdatosenlos niveleslgicoydevisin Seusantantoparaespecificarlaestructura lgicacompletadelabasededatoscomo paraunadescripcindealtonivel. Adiferenciadelosmodelosbasadosen registros,nodescribenmuybienlas ligadurasdeconsistenciadelabasede datos

ModelodeRed

Serepresentaporunconjuntoderegistros ylasrelacionesentreellosporpunteros
10 5 10 25 35 Escobas 10 Sardinas Caf Pasas 10 25 25 2 1 1 2 1 20 5 1 2 10 10 10 20 20 5 1 10 10

35

ModeloJerrquico

IgualqueeldeRedperoenformaderbol

Escobas 10 Sardinas

25

Caf 35 Pasas

10

1 10

10 10 10 2 20 10

5 25

10 1 1

25 20

2 35

20 1 10 5

ElModeloRelacional

EstemodeloconsideralaBDcomouna coleccinderelaciones. Lossistemasrelacionalessonimportantes porqueofrecenmuchostiposdeprocesosde datos,como:


Simplicidad Generalidad Facilidaddeusoparaelusuariofinal Perodoscortosdeaprendizaje Lasconsultasdeinformacinseespecificande formasencilla.

ElModeloRelacional

LasTablassonunmedioderepresentar lainformacindeunaformams compactayesposibleaccesarala informacincontenidaendosoms tablas. Cadafiladelatablaseledenomina Tupla.

ElModeloRelacional

Lasbasesdedatosrelacionalesestn constituidasporunaomstablasque contienenlainformacinordenadadeuna formaorganizada


Artculos nro_art 5 10 25 35 nombre Movimientos nro_art tipo 10 10 10 10 25 25 25 35 1 2 1 1 1 2 1 1 cant 10 20 5 2 1 2 2 10 pre_unit 10 10 10 10 20 20 5 5 Escobas Sardina Caf Pasas

ElModeloRelacional

LaBDRelacionescumplenlassiguientesleyes bsicas:

Generalmente,contendrnmuchastablas.

Unatablaslocontieneunnmerofijodecampos. Elnombredeloscamposdeunatablaesdistinto. Cadaregistrodelatablaesnico. Elordendelosregistrosydeloscamposnoest determinados. Paracadacampoexisteunconjuntodevalores posible

Tema AlgebraRelacional
OperadoresyOperandosdeun ModeloRelacional

Introduccin

Unlenguajedeconsultaesunlenguajeconelqueel usuariosolicitainformacindelabasededatos:se construyeunaexpresinquecontestainterrogantes sobrelainstanciaactualdelabase. Enestetemaseestudiarlacuestindelas consultasdesdeunaperspectivaabstracta, presentandolosprincipalesoperadoresestndar quesehandefinidoenelModeloRelacional Severaunlenguajepuroqueesrgidoyformal, peroqueilustralastcnicasfundamentalesparala extraccindelainformacin:elAlgebraRelacional

ConceptosBsicos

UnaBasedeDatosRelacionalmuestralas tablasenformadefilasycolumnas
ciudad(nro_ciudadnom_ciudad)

a1 a5 a6 a9

LaPaz SantaCruz Tarija Potos

Dominio.Eselconjuntodetodoslos valorespermitidosqueunacolumnapuede tomar.SetieneD1,D2,...,Dn,sitenemosn columnas.

ConceptosBsicos

Productocartesiano.Deloanteriorsetiene v1D1,v2D2,...,vnDn,porquecada elementoesteneldominiorespectivo.En matemticaspodemosdecirquelatuplaesun elementodelproductocartesianodelos dominios: Tupla.Cadaunadelasfilasdeunatablase componedenelementos(V1,V2,..,Vn).En matemticasesteconjuntoordenadode elementossellamatupla

(v1,v2,....,vn)(D1xD2x.....xDn)=Xi=1,n(Di)

ConceptosBsicos

Relacin.Esunsubconjuntodelproducto cartesianodeunalistadedominios,no necesariamentedisjuntos


Esporestoqueenellgebrarelacionalse denominarelacinaunatablaytuplaaunfilade tabla.

SmbolosdelLenguaje

Lossmbolosbsicosdellenguajeson: smbolosdepuntuacin:parntesis"(",")"ycoma",". smbolosdevariables:serepresentanmedianteletrasminsculas delfinaldelalfabeto:r,s,t,u,v,w,x,y,z. smbolosdeconstantes:serepresentanmedianteletrasminsculas delprincipiodelalfabeto:a,b,c,d,e. smbolosdefunciones:tambinserepresentanconletras minsculas,perodelcentrodelalfabeto:f,g,h,i.. smbolosdepredicados:serepresentanmedianteletras maysculas. operadoreslgicos:(negacin),(implicacin),(conjuncin)y (disyuncin). cuantificadores: (cuantificadoruniversal)y(cuantificador existencial).

SmbolosdelLenguaje

Lajerarquaenlaprecedenciadelosoperadoresy cuantificadoreses(demayoramenor): 1), , 2) 3) 4) Dichaprecedenciasepuedealterarutilizandolos parntesis. Losoperadoresy yelcuantificador seintroducen enellenguajeporconveniencia,yaqueen realidadnosonnecesariospues: FG(F)G x(F)x(F) FG(FG)

LasOperacionesdelAlgebra Relacional

Lasoperacionesdelgebrarelacional manipulanrelaciones.Estosignificaque estasoperacionesusanunoodos relacionesexistentesparacrearunanueva relacin.Estanuevarelacinpuede entoncesusarsecomoentradaparauna nuevaoperacin

LasOperacionesdelAlgebra Relacional

Ellgebrarelacionalconstadenueve operaciones:

Unin Interseccin Diferencia Producto Seleccin Proyeccin Reunin Divisin Renombrar

LasOperacionesdelAlgebra Relacional

Unin()

Laoperacindeuninpermitecombinardatosde variasrelaciones.Supongamosqueunadeterminada empresainternacionalposeeunatabladeempleados paracadaunodelospasesenlosqueopera.Para conseguirunlistadocompletodetodoslosempleados delaempresatenemosquerealizarunauninde todaslastablasdeempleadosdetodoslospases. Nosiempreesposiblerealizarconsultasdeunin entrevariastablas,parapoderrealizarestaoperacin esnecesarioeimprescindiblequelastablasaunir tenganlasmismasestructuras,quesuscampossean iguales.

OperacinUnion

Ejemplo:

TeniendodosrelacionesRyS,RS,esel conjuntodetuplasquepertenecenaR,aSo aambas.RySdebenteneresquemascon conjuntosidnticosdeatributos

OperacinUnion,
R
Nombre JuanDaz AnaGmez DireccinFecha C/Pez,109962 C/Luna,38358

S
Nombre JuanDaz LuisDaz DireccinFecha C/Pez,109962 C/Sol,58567

RS

Nombre JuanDaz AnaGmez LuisDaz

Direccin C/Pez,10 C/Luna,3 C/Sol,5

Fecha 9962 8358 8567

LasOperacionesdelAlgebra Relacional

Diferencia()

Laoperacindiferenciapermiteidentificarfilas queestnenunarelacinynoenotra. Tomandocomoreferenciaelcasoanterior, deberamosaplicarunadiferenciaentrela tablaRylatablaSparasaberaquellas personasquenoestnenlasdostablas

OperacinDiferencia,

LadiferenciadedosrelacionesRyS, RS,eselconjuntodetuplasdeRqueno pertenecenaS.RySdebentener esquemasconconjuntosidnticosde atributos


RS
Nombre AnaGmez Direccin C/Luna,3 Fecha 8358

LasOperacionesdelAlgebra Relacional

Interseccin()

Laoperacindeinterseccinpermite identificarfilasquesoncomunesendos relaciones AligualquelaoperacinUnion,parapoder realizarestaoperacinesnecesarioe imprescindiblequelastablasaunirtenganlas mismasestructuras,quesuscampossean iguales.

Interseccin

Equivalencia

RS(R(RS))

RS

JuanDaz

C/Pez,10

9962

LasOperacionesdelAlgebra Relacional

Producto(x)

Laoperacinproductoconsisteenla realizacindeunproductocartesianoentre dostablasdandocomoresultadotodaslas posiblescombinacionesentrelosregistrosde laprimeraylosregistrosdelasegunda.Esta operacinseentiendemejorconelsiguiente ejemplo:

OperacinProducto Cartesiano,

SeanRySdosrelacionesdegradomyn, respectivamente.Elproductocartesiano, RS,esunarelacindegradom+n formadaportodaslasposiblestuplasen lasquelosmprimeroselementos constituyenunatupladeRylosnltimos unatupladeS

OperacinProducto Cartesiano,
R A 1 3 B 2 4
S B 2 4 9 C 5 7 10 D 6 8 11

RXS

A 1 1 1 3 3 3

R.B 2 2 2 4 4 4

S.B 2 4 9 2 4 9

C 5 7 10 5 7 10

D 6 8 11 6 8 11

OperacinProducto Cartesiano,
TablaA X 10 11 Y 22 25 W 33 37 42 TablaB Z 54 98 100

ElproductodeA*Bdaracomoresultadolasiguientetabla:

OperacinProducto Cartesiano,
TablaA*TablaB 10 10 10 11 11 11

22 22 22 25 25 25

33 37 42 33 37 42

54 98 100 54 98 100

LasOperacionesdelAlgebra Relacional

Seleccin()

Pormediodeestaoperacinseposibilitala seleccindeunsubconjuntodetuplasdeuna relacinquecorrespondenaunacondicin (columnaOPERADORvalor)determinada Elgrado(totaldecolumnasdelaRelacin), seconserva

OperacinSeleccin,

FormatodeUso:(condicin)(RELACION)

F(R)

Estaoperacineslaquenormalmentese conocecomoconsulta. Enestetipodeconsultaseempleanlos diferentesoperadoresdecomparacin

(=,>,<,>=,<=,<>) (and),(or),(not)

Ylosoperadoreslgicos:

OperacinSeleccin,

Entonces,laseleccin,F(R),esel conjuntodetuplastdeRtalesque, cuandoparatodoisustituimoselisimo componentedetporlaocurrencia correspondienteenF,lafrmulaes verdadera

OperacinSeleccin,
R
Nombre JuanDaz AnaGmez LuisDaz Direccin C/Pez,10 C/Luna,3 C/Sol,5 Fecha 9962 8358 8567

LafrmulaesF=Nombre>B Nombre JuanDaz LuisDaz Direccin C/Pez,10 C/Sol,5 Fecha 9962 8567

F(R)

EjemplosSeleccin,
PERSONA Cedula Nombre Primer_Apellido 71134534Juan Mesa Ana 23423445 Mara Betancur 12453535Gloria Betancur 75556743Pedro Ochoa 43533322Patricia Angel 78900456Carlos Betancur

Segundo_Apellido Sexo Direccin Telefono Salario Uribe M Cra25221 2567532 1,600,000 Bermudez Garces Pelaez Guzmn Agudelo

F F M F M

Cra451113 Tr.12435 Cll.6ta1445 Cll.45231 Cir.5125

3433444 2756533 2686885 2674563 4445775

1,300,000 1,700,000 1,200,000 1,350,000 1,500,000

EjemplosSeleccin,

Muestraelresultadodelassiguientes selecciones:

cedula=71134534(PERSONA) sexo="F"(PERSONA) (primer_apellido="Bentancur")(sexo="F")(PERSONA) sexo="M")(salarios>=1,350,000)(PERSONA)

EjemplosSeleccin,
cedula=71134534(PERSONA)
Resultado: Cedula Nombre Primer_Apellido 71134534 Juan Mesa Segundo_Apellido Uribe Sexo M Direccin Cra25221 Telefono Salario 2567532 1,600,000

sexo="F"(PERSONA)
Resultado: Cedula Nombre Primer_Apellido Ana 23423445 Mara Betancur 12453535 Gloria Betancur Segundo_Apellido Bermudez Garces Sexo F F Direccin Cra451113 Tr.12435 Telefono Salario 3433444 1,300,000 2756533 1,700,000

EjemplosSeleccin,
(primer_apellido="Bentancur")(sexo="F")(PERSONA)
Resultado: Cedula Nombre Primer_Apellido Ana 23423445 Mara Betancur 12453535 Gloria Betancur Segundo_Apellido Bermudez Garces Sexo F F Direccin Cra451113 Tr.12435 Telefono Salario 3433444 1,300,000 2756533 1,700,000

sexo="M")(salarios>=1,350,000)(PERSONA)
Resultado: Cedula Nombre 71134534 Juan 12453535 Gloria 75556743 Pedro 43533322 Patricia 78900456 Carlos Primer_Apellido Mesa Betancur Ochoa Angel Betancur Segundo_Apellido Uribe Garces Pelaez Guzmn Agudelo Sexo M F M F M Direccin Cra25221 Tr.12435 Cll.6ta1445 Cll.45231 Cir.5125 Telefono Salario 2567532 1,600,000 2756533 1,700,000 2686885 1,200,000 2674563 1,350,000 4445775 1,500,000

LasOperacionesdelAlgebra Relacional

Proyeccin()

Unaproyeccinesunaseleccinenlaque seleccionamosaquelloscamposque deseamosrecuperar.Tomandocomo referenciaelcasodelaoperacinseleccin esposiblequelonicoquenosinterese recuperarseaelnmerodesegurosocial, omitiendoasloscampostelfono,direccin, etc..Esteltimocaso,enelque seleccionamosloscamposquedeseamos,es unaproyeccin.

OperacinProyeccin,

FormatodeUso:

<listadeatributos>(Relacin)

(x)(R) Laproyeccin,X(R),dondeResuna relacindefinidasobreelconjuntode atributosTyXT,esunarelacin constituidaporlascolumnasdeR correspondientesalosatributosdeX

Ejemplos:

OperacinProyeccin,
R
Nombre JuanDaz AnaGmez LuisDaz Direccin C/Pez,10 C/Luna,3 C/Sol,5 Fecha 9962 8358 8567

nombre,fecha de Nacimiento(R)
Nombre JuanDaz AnaGmez LuisDaz

Fecha 9962 8358 8567

EjemplosProyeccin,
PERSONA Cedula Nombre 71134534Juan 23423445AnaMara 12453535Gloria 75556743Pedro 43533322Patricia 78900456Carlos Primer_Apellido Mesa Betancur Betancur Ochoa Angel Betancur Segundo_Apellido Uribe Bermudez Garces Pelaez Guzmn Agudelo Sexo M F F M F M Direccin Telefono Salario Cra25221 2567532 1,600,000 Cra451113 3433444 1,300,000 Tr.12435 2756533 1,700,000 Cll.6ta1445 2686885 1,200,000 Cll.45231 2674563 1,350,000 Cir.5125 4445775 1,500,000

EjemplosProyeccin,

Muestreelresultadodelassiguientes proyecciones:

cedula,nombre,primer_apellido,segundo_apellido(PERSONA) cedula,salario(PERSONA) cedula,nombre,salario((sexo="M")(salario>=1,350,000)


(PERSONA))

EjemplosProyeccin,
cedula, nombre, primer_apellido, segundo_apellido

(PERSONA)

Resultado Cedula Nombre 71134534 Juan 23423445 AnaMara 12453535 Gloria 75556743 Pedro 43533322 Patricia 78900456 Carlos

Primer_Apellido Mesa Betancur Betancur Ochoa Angel Betancur

Segundo_Apellido Uribe Bermudez Garces Pelaez Guzmn Agudelo

cedula, salario

(PERSONA)

Resultado: Cedula Salario 71134534 1,600,000 23423445 1,300,000 12453535 1,700,000 75556743 1,200,000 43533322 1,350,000 78900456 1,500,000

EjemplosProyeccin,

( (PERSONA))

cedula, nombre, salario

(sexo = "M")(salario >= 1,350,000)

Resultado: Cedula Nombre 71134534 Juan 12453535 Gloria 75556743 Pedro 43533322 Patricia 78900456 Carlos

Salario 1,600,000 1,700,000 1,200,000 1,350,000 1,500,000

LasOperacionesdelAlgebra Relacional

Reunin(Join)

Lareuninseutilizapararecuperardatosa travsdevariastablasconectadasunascon otrasmedianteclusulasJOIN.Laoperacin reuninsepuedecombinarconlas operacionesseleccinyproyeccin

OperadorReunion,

Ejemplo:LauniondeRyS,dondese refiereaunacondicinarbitrariasobrelos atributosdeRyS,querepresentaremos porC,R|><|CS,seconstruyecomo:

SeformaelproductocartesianoRyS Seselecciona,enelproducto,sololatupla quecumplanlacondicinC

OperadorReunion,
R
A 1 3 2 B 3 2 3 C 5 9 5 D 7 1 4

S
A 1 1 3 2 C 5 5 9 3 E 2 9 2 7

OperadorReunion,
LacondicinesC=A>=E
R|><|CS A 3 3 2 2

B 2 2 3 3

C 9 9 5 5

D 1 1 4 4

S.A 1 3 1 3

S.C 5 9 5 9

E 2 2 2 2

LasOperacionesdelAlgebra Relacional

ReunionNatural(JoinNatural)

SeanRySdosrelacionesconunoomas atributosencomn.Lareunionnatural,R|><| S,secalculadelmodosiguiente: SecalculaelproductocartesianoRxS ParacadaatributoAicomn,seseleccionan lasfilasenlasqueelvalorR.Aicoincidenconel valordeS.Ai Realizadalaseleccin,eliminarlacolumna S.Ai

OperadorReunionNatural
R A 1 3 2 B 3 2 3 C 5 9 5 D 7 1 4 S A 1 1 3 2 C 5 5 9 3 E 2 9 2 7

R|><|S

A 1 1

B 3 3 2

C 5 5 9

D 7 7 1

E 2 9 2

LasOperacionesdelAlgebra Relacional

Divisin

Operacindellgebrarelacionalquecreauna nuevarelacin,seleccionandolasfilasenuna relacinquesecorrespondencontodaslas filasenotrarelacin.

OperadorDivision,

SeanRySrelacionesdegradorys, respectivamente,donder>syS. Entonces,elcociente,RS,eselconjunto detuplastdegrado(rs),talesquepara todatuplaudeS,latupla(t,u)estaenR.

Entrminosdeoperacionesbsicas:

RS1,2,...,rs(R)1,2,...,rs((1,2,...,rs(R)S)R)

OperadorDivision,
R A 1 4 3 1 1 B 2 3 2 2 3 C 3 5 8 2 2 D 5 9 1 7 7 S C 3 2 D 5 7

RS

A 1

B 2

LasOperacionesdelAlgebra Relacional

Renombrar()

DadalarelacinR,elrenombradodeRaS, S(R),esunarelacinquetieneexactamente lasmismastuplasylosmismosatributosque R,sloqueelnombredelarelacinesS

OperadorRenombrar,

A 1 3

B 2 4

S(R)

A 1 3

B 2 4

Tema StructuredQuery Language


BreveintroduccinalSQL

SQL(StructuredQuery Language

EllenguajeSQL(StructuredQueryLanguage, "LenguajedeConsultaEstructurado")esuna evolucindellenguajeSEQUEL(structured englishquerylanguage)desarrolladoenIBM. ElSQLseencuentranormalizadoporelInstituto AmericanodeNormalizacin(ANSI)yfue construidoenprincipiocomounlenguaje algebraico,enriquecindosemstardecon funcionespredicativas

Caractersticas

ElSQLesmanejablebajodosmodalidades distintas:comomdulointeractivoque proporcionaunpotentelenguajedeconsultas interpretadasycomolenguajehuspeddeun lenguajeanfitrin. Respetalaindependenciaentreelnivel conceptualylasaplicaciones(nivelexterno),ya quepermitelacreacindeesquemasexternos personalizados. Garantizaunaseguridadtotaldeaccesoalos datos,graciasaunadistribucinselectivade prioridadesdeacceso.

Caractersticas

Garantizalaindependenciaentreelnivelconceptualyel nivelinterno.Elusuariononotalapresenciadeun ndice,esasuntodeladministradorelconseguirla optimizacindelasejecuciones. Permitelagestinmultiusuariodelosdatos.Cadafilaa laqueseaccedeparasumodificacinqueda automticamentebloqueadaporelsistema.Enparticular, elSQLcontieneelconceptodetransaccin,quepermite restaurarelestadoanteriordelaBDencasode anomalas. Independenciadelosvendedores.ElSQLesofertado porlosprincipalesvendedores.Losprogramasquelo utilizanpuedentransferirsedeunsistemadegestinde BDaotroconmnimoesfuerzodeconversin.

EstructuradelLenguaje

LaestructuradellenguajeSQLcontiene unlimitadonmerodeverbosopalabras clave,distribuidosentresgrandesgrupos funcionales:

DDLDataDefinitionLanguage(lenguajede descripcindedatos) DMLDataManipulationLanguage(lenguaje demanipulacindedatos) DCLDataControlLanguage(lenguajede controldedatos)

EstructuradelLenguaje

DDL:Permiteladescripcindelaestructurade laBD(tablas,vistas,ndices,...) DML:Permiteelmanejodelastablasylasvistas mediantesuscuatroverbos,correspondientesa lascuatrooperacionesfundamentalessobrelos datos. DCL:Contienelosoperadoresparalagestinde transacciones(COMMITyROLLBACK)y prioridadesdeaccesoalosdatos(GRANTy REVOKE)

EstructuradelLenguaje

LosComandosmasimportantesson:
DDL CREATE DROP ALTER DML SELECT INSERT DELETE UPDATE DCL GRANT REVOKE COMMIT ROLLBACK

ConsultadeDatosconSQL

ElDQLDataQueryLanguage(lenguaje deconsultadedatos)formapartedel lenguajeDMLdeSQL.Elnicocomando queperteneceaestelenguajeesel verstilcomandoSELECT.Estecomando permite:

Obtenerdatosdeciertascolumnasdeuna tabla(proyeccin)

ConsultadeDatosconSQL

Obtenerregistros(filas)deunatablade acuerdoconciertoscriterios(seleccin) Mezclardatosdetablasdiferentes(union, join) Realizarclculossobrelosdatos Agrupardatos

SintaxissencilladelSelect
SELECT*|{[DISTINCT]columna|expresin[[AS]alias],} FROMtabla;

*.Elasteriscosignificaqueseseleccionantodaslascolumnas DISTINCT.Hacequenosemuestrenlosvaloresduplicados columna.Eselnombredelacolumnadelatablaquesedeseamostrar expresin.UnaexpresinvalidaSQL alias.Eselnombrequeseledaalacabeceradelacolumnaenel resultadodeestainstruccin


SintaxissencilladelSelect

Ejemplos:

Seleccindetodoslosregistrosdelatabla clientes:

SELECT*FROMClientes;

Seleccindealgunoscampos

SELECTnombre,apellido1,apellido2FROM Clientes

RelacinconelAlgebra Relacional

ElcomandoSELECTpermiteimplementar deformaexactatodaslasconsultasdel lgebrarelacional Laproyeccin()seimplementaas:

nombre,apellido

(Cliente)

LaproyeccinenSQLseescribecomo:
SELECTnombre,apellidoFROMCliente;

RelacinconelAlgebra Relacional

Laseleccin()seimplementausandola clausulaWHERE.Porejemplo:

nombre=Pepe edad>25(Cliente)

EnSQLseescribiraas: SELECT*FROMClienteWHERE nombre='Pepeandedad>25

RelacinconelAlgebra Relacional

EnlaclausulaWHEREsepuedenutilizar lossiguientesoperadoresdecomparacin

>,<,>=,<=,=,<> AND,OR,NOT

Ylosoperadoreslgicos

RelacinconelAlgebra Relacional

Ejemplos:

/*Obtienealaspersonasentre25y50aos deedad*/

SELECTnombre,apellidoFROMPersonas WHEREedad>=25ANDedad<=50;

/*Obtienealaspersonasdemasde60aos odemenosde20aos*/

SELECTnombre,apellidoFROMPersonas WHEREedad>60oredad<20;

RelacinconelAlgebra Relacional

ElProductoCartesiano(RXS)se implementaenSQLas:

SELECT*FROMR,S

Ejemplo:Teniendodostablasunallamada PelculasyotraEstudio.ElProducto Cartesianoseescribiraas:

AlgebrarelacionalPelculaxEstudio SQLSELECT*FROMPelcula,Estudio

RelacinconelAlgebra Relacional
Pelcula ID_Pelcula Nombre Ao ID_Estudio 1 Laguerradelasgalaxias 1977 3 2 Lacomunidaddelanillo 2001 2 3 Maradentro 2004 4 4 ElviajedeChihiro 2001 1 Estudio ID_Estudio Nombre 1 Ghibli 2 NewLineCinema 3 Lucasfilms 4 Sogecine

RelacinconelAlgebra Relacional
PelculaxEstudio ID_Pelcula Nombre 1 Laguerradelasgalaxias 1 Laguerradelasgalaxias 1 Laguerradelasgalaxias 1 Laguerradelasgalaxias 2 Lacomunidaddelanillo 2 Lacomunidaddelanillo 2 Lacomunidaddelanillo 2 Lacomunidaddelanillo 3 Maradentro 3 Maradentro 3 Maradentro 3 Maradentro 4 ElviajedeChihiro 4 ElviajedeChihiro 4 ElviajedeChihiro 4 ElviajedeChihiro Ao ID_Estudio ID_Estudio Nombre 1977 3 1 Ghibli 1977 3 2 NewLineCinema 1977 3 3 Lucasfilms 1977 3 4 Sogecine 2001 2 1 Ghibli 2001 2 2 NewLineCinema 2001 2 3 Lucasfilms 2001 2 4 Sogecine 2004 4 1 Ghibli 2004 4 2 NewLineCinema 2004 4 3 Lucasfilms 2004 4 4 Sogecine 2001 1 1 Ghibli 2001 1 2 NewLineCinema 2001 1 3 Lucasfilms 2001 1 4 Sogecine

RelacinconelAlgebra Relacional

LaoperacinReunion(Join)R|><|CSen SQLseescribe:

SELECT*FROMR,SWHERER.c=S.c SELECT*Pelcula,EstudioWHERE Pelicula.ID_Estudio=Estudio.ID_Estudio

Usandolastablasanteriores

RelacinconelAlgebra Relacional
Pelcula|><|Estudio ID_Pelcula Nombre 1 Laguerradelasgalaxias 2 Lacomunidaddelanil o 3 Maradentro 4 ElviajedeChihiro

Ao 1977 2001 2004 2001

ID_Estudio ID_Estudio Nombre 3 3 Lucasfilms 2 2 NewLineCinema 4 4 Sogecine 1 1 Ghibli

RelacinconelAlgebra Relacional

EloperadorRenombrar()permite cambiarelnombredelarelacin,para diferenciaratributosdelmismonombre. SQLproporcionaunmecanismopara renombrartantorelacionescomoatributos. ParaelloutilizalaclusulaAS,quetienela formasiguiente:

SELECT*nombreantiguoASnombrenuevo

RelacinconelAlgebra Relacional

LasoperacionesdeSQLUNION, INTERSECTyEXCEPToperansobre relacionesycorrespondenalas operacionesdellgebrarelacional,y Aligualquelaunin,intersecciny diferenciadeconjuntosenellgebra relacional,lasrelacionesqueparticipanen lasoperacioneshandesercompatibles; estoes,debentenerelmismoconjuntode atributos.

RelacinconelAlgebra Relacional

EjemploSELECTUNIN

Paraencontrartodoslosclientesqueposeen unprstamo,unacuentaolasdoscosasen elbanco,seescribir: (SELECTnom_clienFROMprestatario) UNION(SELECTnom_clienFROMimpositor)

RelacinconelAlgebra Relacional
PRESTATARIO nro_pres 123 321 Nom_cliente AlejandraGuerra LuisContreras Ao ID_Estudio 1977 3 2001 2 IMPOSTOR nro_cuenta 987 789 Nom_cliente AlejandraGuerra GabrielSoto

Nom_cliente AlejandraGuerra LuisContreras GabrielSoto


RelacinconelAlgebra Relacional

EjemploSELECTINTERSECCIN

Paraencontrartodoslosclientesquetienen tantounprstamocomounacuentaenel bancoseescribira: (SELECTnom_clienFROMprestatario) INTERSECT(SELECTnom_clienFROM impositor)

RelacinconelAlgebra Relacional
PRESTATARIO nro_pres 123 321 Nom_cliente AlejandraGuerra LuisContreras Ao ID_Estudio 1977 3 2001 2 IMPOSTOR nro_cuenta 987 789 Nom_cliente AlejandraGuerra GabrielSoto

Nom_cliente AlejandraGuerra

RelacinconelAlgebra Relacional

EjemploSELECTDIFERENCIA

Paraencontrartodoslosclientesquetienen cuentaperonotienenningnprstamoenel bancoseescribira: (SELECTnom_clienFROMprestatario) EXCEPT(SELECTnom_clienFROM impositor)

RelacinconelAlgebra Relacional
PRESTATARIO nro_pres 123 321 Nom_cliente AlejandraGuerra LuisContreras Ao ID_Estudio 1977 3 2001 2 IMPOSTOR nro_cuenta 987 789 Nom_cliente AlejandraGuerra GabrielSoto

Nom_cliente LuisContreras

Resumen

Elmodelodedatosrelacionalsebasa enunconjuntodetablas.Elusuariodel sistemadebasesdedatospuede consultaresastablas,insertarnuevas tuplas,borrartuplasyactualizar(modificar) lastuplas.Hayvarioslenguajespara expresarestasoperaciones

Resumen

Ellgebrarelacionaldefineunconjunto deoperacionesalgebraicasqueoperan sobretablasydevuelventablascomo resultado.Estasoperacionessepueden combinarparaobtenerexpresionesque expresanlasconsultasdeseadas.El lgebradefinelasoperacionesbsicas usadasenloslenguajesdeconsulta relacionales

Resumen

SQLincluyevariasconstructorasdel lenguajeparalasconsultassobrelabase dedatos.Todaslasoperacionesdel lgebrarelacionalsepuedenexpresaren SQL.SQLtambinpermitelaordenacin delosresultadosdeunaconsultaen trminosdelosatributos

Referencias

2oCursodeAdministracindeSistemas Informticos,JorgeSnchez SistemasdeInformacinII,CarlosCastillo FundamentosdeBasedeDatos,Abraham Silberschatz,HenryF.Korth,S.Sudarshan BasedeDatosModelosyAnalisis,Patricia RendonV.

You might also like