§:Q:LServer2oos 3 (:: :3,»:. r;j

95
FACULTAD: INGENIERIA INDUSTRIAL Y DE SISTEMAS W lm? 030 030 INFORME FINAL DEL PROYECTO DE INVESTIGACIDN 034ESTUD|O C_OMPARAT|V0 DE LOS LENGUAJES DE PROGRAMACION ALGEBRAICOS SQL 2005 Y ORACLE. 035 030 INVESTIGADOR RESPONSABLE: GARCIA DIAZ, BERTILA LIDUVINA _:;\ .* 031?.' 035"| 030 §:Q:LServer2oos 3 (::_:3,»:._r;j_.;:_- A ' 030 nA'nT's7s £2 034mm_ in __m___1___ __w STANDARD EDITION one . 030i, 034:',(_ H in-~ .. _../\ ~_ ( _ 034I\ r M 1- 030 it 030 3 \ 034: 031,: 030h 030:\ 030--' «b' 024 030031 030 . " W»-; L A A - 030 PERIODO DE EJECUCIDN: 01 DE OCTUBRE DEL 2011 AL 30 DE SETIEMBRE DEL 2013 RESOLUCIDN RECTORAL DE APROBACION DEL PROLYECTO 1070-2011-R.- CALLAO DEL 02 DE NOVIEMBRE DEL 2011 CALLAO - PERU . 639 - J O - 0 /

Transcript of §:Q:LServer2oos 3 (:: :3,»:. r;j

Page 1: §:Q:LServer2oos 3 (:: :3,»:. r;j

FACULTAD: INGENIERIA INDUSTRIAL Y DE SISTEMAS W lm?�030�030

INFORME FINAL DEL PROYECTO DE INVESTIGACIDN

�034ESTUD|OC_OMPARAT|V0 DE LOS LENGUAJES DE

PROGRAMACION ALGEBRAICOS SQL 2005 Y ORACLE.�035

�030 INVESTIGADOR RESPONSABLE: GARCIA DIAZ, BERTILA LIDUVINA

_:;\ .*�031?.'�035"|�030

§:Q:LServer2oos 3 (::_:3,»:._r;j_.;:_-A ' �030 nA'nT's7s £2

�034mm_in__m___1_____w STANDARD EDITION one

.�030i,�034:',(_H in-~ .. _../\ ~_ ( _ �034I\r M 1-�030

it �030 3 \�034:�031,:�030h�030:\�030--'«b'�024�030�031 �030. " W»-; L A A -�030

PERIODO DE EJECUCIDN: 01 DE OCTUBRE DEL 2011 AL 30 DE SETIEMBRE DEL

2013

RESOLUCIDN RECTORAL DE APROBACION DEL PROLYECTO N° 1070-2011-R.-

CALLAO DEL 02 DE NOVIEMBRE DEL 2011

CALLAO - PERU

.639 -

J O

- 0 /

Page 2: §:Q:LServer2oos 3 (:: :3,»:. r;j

|.- lNDlCE

l|.- RESUMEN 4

lll.- INTRODUCCION 5

3.1 Planteamiento del problema 5

3.2 Objetivos y alcances de la investigacién 6

3.3 lmportancia y justificacion 6

IV.- MARCO TEORICO

4.1 Teorias relacionadas con el problema y objetivos dados en el 8

proyecto de investigacién.

4.1.1 Lenguajes de programacion algebraicos 8

4.1.1.1 Modelamiento Entidad �024Relacién 9

4.1.1.2 Modelo Relacional 9

' 4.1.2 SQL 13

4.1.2.1 Lenguaje de definicion de datos (DDL) 15

4.1.2.2 Lenguaje de manipulacion de datos (DML) 15

4.1.2.3 Lenguaje de control de datos (DCL) 16

4.1.3 SQL 2005 16

4.1.3.1 Estructuracion de la base de datos 16

4.1.3.2 Tama}401ode la base de datos 17

4.1.3.3 Lenguaje de definicion de datos (DDL) 17

4.1.3.4 Lenguaje de manipulacion de datos (DML) 18

4.1.3.5 Lenguaje de control de datos (DCL) 18

4.1.4 ORACLE 18

4.1.4.1 Caracteristicas de oracle 19

. 4.1.4.2 Otras caracteristicas de oracle 20

4.1.4.3 Arquitectura de oracle en Vl}401ndows 21

4.1.4.4 Lenguaje de definicion de datos (DDL) 22

4.1.4.5 Lenguaje de manipulacion de datos (DML) 22

4.1.4.6 Lenguaje de control de datos (DCL) 22 V

4.2 Trabajos de investigacion teérioos anteriores 23

4.2.1 Ediciones 23

4.2.2 Sistemas operativos 24

. - 1 W

Page 3: §:Q:LServer2oos 3 (:: :3,»:. r;j

4.2.3 Arquitectura ' 254.2.3.1 instancias y bases de datos 25

4.2.3.2 basesde datos y espaciodetablas 274.2.3.3 los nombres de inslancia 28

�030 V.- MATERIALES Y METODOS 30

VI.- RESULTADOS �030 32

6.1 Bases de datos comparadas 32

6.1.1 SQL Server 32

- 6.1.2 ORACLE 34

6.2 Lenguaje de definicién de datos (DDL) 35

6.2.1 Creacion de esquemas y tablas 35

6.2.2 lmplementar constraints 40

6.2.2.1 Check constraints I 40

6.2.2.2 Default (valores por defecto) 41

6.2.3 Modi}401cacionde tablas (ALTER TABLE) 42

6.2.3.1 Modrficar columnas 42 '

6.3 Lenguaje de manipulacion de datos (DML) 43

6.3.1 Insert 43

6.3.2 Update 44

6.3.3 Delete 44

6.3.4 Select 45

6.3.4.1 Consultas bésicas 45

6.3.4.2 Manejo de nombres de atributos ambiguos 49 .

6.3.4.3 Clausulas where no especificadas y empleo de * 50

6.3.4.4 Tablas como conjuntos en SQL 52

6.3.4.5 Consultas anidadas y comparaciones de 54

conjuntos

�030 _ 6.3.4.6 La funcion exists 57�030 6.3.4.7 Conjuntos explicitos y valores nulos 58 V

6.3.4.8 Cambio de nombre de los atributos 60

6.3.4.9 Funciones agregadas y agrupacién 61

6.3.4.10 comparaciones de subcadenas, operadores 64

aritmétioos y ordenacién

6.4 Lenguaje de control de datos (DCL) ' _ 67 "

. 2

Page 4: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.5 Cuadro comparativo resumen de las caracteristicas de los 69

' Ienguajes de programacién algebraicos

6.6 Contrastacion de resultados entre ORACLE y SQL SERVER 70

_ vu.�024DISCUSION - 73

VIII.- REFERENCIALES 76

|x.�024APENDICE ' 8 - 771.- Adicionales de SQL 78

2.- Syllabus del curso de Base de Dates 82

X.- ANEXOS 87

SQL �030 88

. 3

Page 5: §:Q:LServer2oos 3 (:: :3,»:. r;j

|l.- RESUMEN

�034Estudiocomparativo de los Ienguajes de programacion algebraicos SQL �030

2005 y ORACLE�035.

El objetivo de esta investigacion es realizar un estudio comparativo a nivel �024

practico de ambos Ienguajes algebraicos y profundizar en un tema que

corresponde al curso de Base de Datos a mi cargo. Para recopilar los

datos de este estudio se creé una Base de Datos en cada uno de los ,

- Lenguajes y se comprobé a nivel del Lenguaje de definicién de datos

(DDL), Lenguaje de manipulacion de datos (DML) y Lenguaje de control de

datos (DCL) sus similitudes y diferencias.

De ios resultados obtenidos en la investigacién podemos concluir que las

diferencias entre .ambos Ienguajes es mayor a nivel de Lenguaje de

definicién de datos (DDL), siendo minima la diferencia en e| Lenguaje de

Manipulacién de Datos (DML) y existen peque}401asdiferencias a nivel del

Lenguaje de Control de Datos (DCL).

Existen diferencias a nivel de los sistemas operativos donde corren estos

SGBD, mientras que ORACLE es multiplataforma, SQL server solo se

ejecuta en el Sistema Operativo de Windows de Microsoft.

Existen diferencias en cuanto a costos, ya que el costo de utilizar el

ORACLE es mayor que en SQL server.

Desde el punto de vista del software, ORACLE ofrece mas ventajas, como

por ejemplo el uso de DATAWAREHOUSE y MINERIA DE DATOS, que

forman parte del Lenguaje. SQL también busca mejorar estas

caracteristicas. Ambos utilizan el Modelo Reiacional.

Las conclusiones obtenidas �030puedenser utilizadas por cuaiquier

investigador de dicho tema 0 de alguna rama de la ingenieria del software.

4 W

Page 6: §:Q:LServer2oos 3 (:: :3,»:. r;j

m.- INTRODUCCION

3.1 PLANTEAMIENTO DEL PROBLEMA

�034Estudiocomparativo de los Ienguajes de programacién algebraicos SQL

2005 y ORACLE�035.

Esta investigacién es una investigacién de tipo cualitativo, donde se

compara estos 2 Ienguajes de programacién algebraicos como es SQL

2005 y ORACLE con el objetivo de comprobar sus similitudes y diferencias

_ a nivel de software, con el fin de poder decidir cuél utilizar dado un

contexto determinado o partir de uno de ellos, para conocer el otro.

Considero este tema muy importante por ser estos Lenguajes algebraicos

los responsables de la mejora en la gestién de las empresas y cuyo _

manejo es vital para el desarrollo Iaboral de los futuros ingenieros de

sistemas.

A Ambos son los Gestores de Base de Datos mas utilizados para gestionar

las Empresas y uno de los principales motivos de la existencia de la

_ lngenieria de Sistemas, ya que esta sin herramientas de trabajo como los

Ienguajes de programacién algebraicos, tendria como herramientas sélo un �024

editor como Word 0 una hoja de célculo como Excel, y no hubiera '

alcanzado el desarrollo cientifico y tecnolégico que hoy tiene.

Sin embargo, es importante analizarlos a través de aplicaciones précticas y

poder inferir nuestras propias conclusiones acerca de las similitudes y

diferencias, de las ventajas y desventajas de ambos Ienguajes algebraicos.

En resumen el planteamiento del problema seria el siguiente:

A a.- z,Qué analogias y que diferencias existen entre el Lenguaje Algebraico

SQL 2005 y ORACLE?

b.- (;Cua| Lenguaje Algebraico convendria mas impart_ir en el Curso de

Bases de Datos en los momentos actua|es?.

c.- g,Se podria usar SQL 2005 en el curso de Base de Datos y ORACLE en

un curso de Taller de Base de Datos o usar ambos en el curso Base de

Datos de acuerdo a un orden de dificultad teniendo en cuenta los cambios

en las tecnologias, asi como la utilidad comercial de ambos?

d.- g,Cua'les son las diferencias en cuanto a requerimientos de Plataformas �031

de Sistemas Operativos y hardware de SQL SERVER y ORACLE.

e.- g,Qué ventajas tienen cada uno de estos Gestores de Bases de datos?

5

Page 7: §:Q:LServer2oos 3 (:: :3,»:. r;j

f.�024g,Qué desventajas tienen cada uno de estos Gestores de Bases de

' datos? �031

3.2 OBJETIVOS Y ALCANCES DE LA INVESTIGACION

El objetivo principal es definir y determinar Ia importancia de los Ienguajes

algebraicos a través de unestudio comparativo. Corresponderia a un tipo

b de investigacién ba'sica. V

a. OBJETIVOS GENERALES

o Detenninar la importancia de los Lenguajes Algebraicos, mediante un

estudio comparativo '

o Apoyar el dictado del curso de Base de Datos a mi cargo, en la

Universidad Nacional del Callao.

b. OBJETIVOS ESPECiFlCOS

De acuerdo a las definiciones anteriores, esta investigacién permitiré:

o Profundizar en la investigacién de los diferentes Lenguajes de

Programacion Algebraicos.

. - lnvestigar las diferencias y semejanzas que existen entre los diferentes

Lenguajes de Programacién Algebraicos.

o Evaluar la utilidad y beneficio de cada uno de los Lenguajes de

Programacién Algebraicos.

c. ALCANCES DE LA INVESTIGACION

El tipo de Investigacién seré realizar el curso de Base de Datos a mi cargo,

utilizando estos Lenguajes de Programacién Algebraicos, para poder

analizar sus efectos en la Gestién de Bases de Datos.

El sector que se veré beneficiado con los resultados de esta investigacién

son: los alumnos de la Facultad de Ingenieria industrial y de Sistemas de

la UNAC.

3.3 IMPORTANCIA Y JUSTIFICACION

Este proyecto es importante porque no existe un trabajo similar que le

preceda. Una vez que ha sidd demostrado los resultados de esta relacién

- tendrén amplia generalizacién. �030

6 W

Page 8: §:Q:LServer2oos 3 (:: :3,»:. r;j

Para ejecutar la presente investigacién, se haré uso de las teorias

cienti}401casque a continuacién se indican: Modelo Conceptual, Modelo

Relacional, SQL. A

El objetivo principal es definir y determinar Ia importancia de los Ienguajes

algebraicos a través de un estudio comparativo. C_orresponderia a un tipo

de investigacién bésica. Este proyecto por corresponder a las ciencias

bésicas, requiere de justificacién teérica.

Es Ia motivacién para emprender el siguiente trabajo de investigacién,

estrechamente Iigado al curso de Base de Datos que que tengo a mi cargo

en la Escuela de lngenieria de Sistemas de la Universidad Nacional del �030

Callao.

7 {W�035"

Page 9: §:Q:LServer2oos 3 (:: :3,»:. r;j

|V.- MARCO TEORICO

�030 En cuanto a las teorias y/o leyes y/o doctrinas estrechamente relacionadas

con el problema y objetivos dados en el proyecto de investigacién, de

acuerdo a la operacionalizacién de la hipétesis del proyecto de %

/ investigacién, existen las siguientes variables independientes: Lenguajes

algebraicos, SQL, SQL 2005, ORACLE que son necesarias conocer para

demostrar Ia variable dependiente que es el estudio comparativo de ambos

Lenguajes Algebraicos, las cuales expondré a continuacién.

Existen trabajos anteriores que tengan el mismo objetivo que el presente

trabajo de investigacién a nivel teérico, las cuales expondré a continuacién,

pero no existen trabajos previos a nivel préctico, de repetir lo hechos y .

extraer sus propias conclusiones en el tema de Lenguajes algebraicos.

4.1 TEORIAS RELACIONADAS CON EL PROBLEMA Y OBJETIVOS DADOS

EN EL PROYECTO DE INVESTIGACION.

4.1.1 LENGUAJES DE PROGRAMACION ALGEBRAICOS

Los Lenguajes Algebraicos son un tipo de lenguaje Declarativo, en la

programacién declarativa las sentencias que se utilizan lo que hacen

es describir el problema que se quiere solucionar, pero no las instrucciones

necesanas para solucionarlo. Esto ultimo se realizara�031mediante

mecanismos intemos de inferencia de informacién a partir de la descripcién

realizada.

Los Ienguajes declarativos esta'n basados en "la definicién de funciones o

relaciones. No utilizan instrucciones de asignacion (sus variables no

almacenan valores). Son los mas féciles de utilizar (no se requieren V

conocimientos especi}401cosde informética), estén muy préximos al hombre.

Se suelen denominar también Ienguajes de érdenes, ya que los programas

estan formados por sentencias que ordenan �034quées lo que se quiere

haoer�035,�030noteniendo el programador que indicar a la computadora el

proceso detallado (el algoritmo) de como haceno�035. ~

SQL es un lenguaje declarativo de acceso a bases de datos relacionales

que permite especificar diversos tipos de operaciones en -ellas. Una de sus

' 8

Page 10: §:Q:LServer2oos 3 (:: :3,»:. r;j

caracteristicas es el manejo del algebra y el célculo relacional que

permiten efectuar consultas con el fin de recuperar de forma

sencilla infonnacién de interés de bases de datos, asi como hacer cambios

en ella.

En 1976, Peter Chen presenté el modelo entidad-relacién, que es la

técnica mas utilizada en el dise}401ode bases de datos. Estas teorias se

complementan con las investigaciones del Dr. Codd, y sélo hay un paso

para transformar este Modelo Entidad Relacién en un Modelo Relacional y

luego proceder a la creacién de Dise}401oFisico con la ayuda de los

mensionados Ienguajes algebraicos.

_ 4.1.1.1 MODELAMIENTO ENTIDAD - RELACION

El modelo entidad relacién (ER) proporciona una herramienta para

representar informacién del mundo real a nivel conceptual, y el el modelo :

mas utilizado. Creado en 1976 por Peter Chen, permite describir las

entidades involucradas en una base de datos, asi como las relaciones y

restricciones de ellas. Chen presenta el modelo como una vista unificada

de los datos, centrandose en la estructura Iégica y abstracta de los datos,

como represeritacién del mundo real, con independeneia de

consideraciones de tipo fisico.

�034Estemodelo y sus variaciones se emplean a menudo en el dise}401o

conceptual de aplicaciones de bases de datos, y muchas herramientas de

dise}401ode bases de datos aplican sus conceptos�035(ELMASRY /NAVATHE,

2007).

4.1.1.2 MODELO RELACIONAL

En junio de 1970 el Dr. Codd, quieh Trabajaba para IBM, publicé un paper

con el titulo �034unmodelo relacional de datos para grandes bancos de datos

compartidos". Uno de los objetivos centrales de este articulo se expresé

asi: .

�034Losfuturos usuan'os de los grandes bancos de datos deben ser protegidos

de tener que saber cémo se organizan los datos en la méqina (Ia

nepresentacién intema)�035(RE|NOSA)(2012) . *

Lo que el Dr. -Codd deseaba era alejar a los usuarios del nivel fisico, A

elevar el nivel de abstraccién con el que debian interactuar los usuarios y

1 �030 I 9 W

Page 11: §:Q:LServer2oos 3 (:: :3,»:. r;j

que no dependieran de los detalles técnicos para usar los datos

almacenados.

De otro lado su amigo el reconocido Cristopher Date, especializado en la

tecnologia de bases de datos relacionales, hace un tributo después de la

muerte del Dr. Codd diciendo:

�034EIModelo Relacional es ampliamente reconocido como una de las

grandes innovaciones del siglo )O<�035(RElNOSA)(2012).

Y continua: �034Elmodelo relacional proporcioné un marca teérico en el que

una variedad de prob/emas importantes podrian ser atacados de una

manera cienti}401ca�035(RE|NOSA)(2012).

El modelo relacional se ha establecido actualmente como el principal

modelo de datos para las aplicaciones de procesamiento de datos. Ha

conseguido la posicién principal debido a su simplicidad, que facilita el

trabajo del programador en comparacion con otros modelos anteriores

como el de red y el jerérquico.

Se basa en que la representacién fisica deberé satisfacer y representar, de

A alguna forma, las relaciones y restricciones légicas del esquema relacional.

Presenta la Base de Datos como una coleccion de relaciones, cuyo

contenido varia en el tiempo.

Una base de datos relacional consiste en un conjunto de tablas, a cada

una de las cuales se le asigna un nombre exclusivo. Cada fila de la tabla

representa una relacién entre un conjunto de valores.

�031 Dado que cada tabla es un conjunto de dichas relaciones, hay una fuerte

correspondencia entre el concepto de tabla y el concepto matematico de

relacién, del que toma su nombre el modelo de datos relacional.

Una relacién puede ser vista como una tabla, con }401lasllamadas tuplas y

con cabecera de columnas llamadas atributos. V

�034Mateméticamente,una relacién deinida sobre los n domiios D1, D2, .-.,D,,

no necesariamente distintos, es un subconjunto del producto cartesiano de

estos dominios, donde cada elemento de la relacién (tupla) es una serie de

n valores ordenados�035(DE MIGUEL, Adoracion y PlATl'lNl, Mario, 1999).

Con respecto a la pane dinamica del modelo, se propone un conjunto de

operadores que se aplican a las relaciones (Algebra relacional y calculo

relacional).

Lo que realmente marca la diferencia entre los sistemas relacionales y los

sistemas anteriores es el hecho de que su creador, Codd, basé

expresamente su funcionamiento sobre un modelo matematico muy

V 10 �031 W

Page 12: §:Q:LServer2oos 3 (:: :3,»:. r;j

especifico: el élgebra relacional y el' célculo relacional, asi como la

progresiva adopcion, por parte de su creador y algunos colaboradores, de

un ntimero de Reglas de lntegridad Relacional y de Forrnas Nonnales.

A partir de 1980, ei modelo relacionai ha tenido un auge espectacular,

gracias al desarrollo tecnolégico, han ido apareciendo productos

comerciales que corren en las més diversas plataforrnas con rendimientos

aceptables: ORACLE, SQL, DB2, SYBASE.

1.- Propiedades Del Modelo Relacional

Entre las propiedades del Modelo Relacional tenemos:

o No existen tuplas repetidas.

o Corolario: Siempre existe una clave pn'maria

- Las tuplas no estén ordenadas de arriba hacia abajo.

0 Los atributos no esta'n ordenados de izquierda a derecha.

o Todosllos valores de los atributos son atémicos.

o Los atributos multivaluados se deben representar con

relaciones individuales.

V 2.- Aspectos del Modelo Relacional

El Modelo Relacional se Ie puede estudiar a través de 3 aspectos:

o Estructura

o lntegridad �030

o Manipulacién

Por su Estructura

Por su estmctura se define al Dominic como la base a partir de la cuéi se

constmyen ias relaciones, compuestas a su vez de una cabecera

(esquema) y un cuerpo (6 extension) de tuplas, asi como de una clave

primaria. _

Un esquema de relacién R, denotado por R(A1,A2,..A,,, se compone de un

V nombre de relacién R y una lista de atributos A.,A2,..A,._

Ejemploz ESTUDIANTE(Nombre, NSS, TelPérticular, Direccion.Edad,

Prom). 9

Los dominios son estéticos, las relaciones dinémicas (el contenido cambia -

en el tiempo)

Dada una serie de conjuntos D1,D2,...D,,, se dice que R es una relacién

entre estos n conjuntos si es un conjunto de n tuplas no ordenadas I

- * A 11

Page 13: §:Q:LServer2oos 3 (:: :3,»:. r;j

(d1,d2,..d,.) tales que d1 �254D1, dz �254D2,...d,. �254D... A los conjuntos D1,D2,...DN

se Ies denomina dominios de R y el valor n es el grado de la relacion R .

Conoeptos y equivalencias:

Relacion: tabla

Tupla: Fila de la Tabla

Cardinalidad: # de tuplas de una relacion

Grado: # de atributos de una relacién

Dominio: Coleccién de valores de un atnbuto

Atn'buto: Columna de la tabla �031

Ejemplo:

codAg actlvo ciudad

1 . 500,000 Lima . �030

2 300,000 Ica

Relaciénz AGENCIA Cardinalidad = 2 Grado = 3

Dominic de ciudad = Lima, lca, Arequipa, Tacna....

Atnbuto = codAg, activo, ciudad

Por su lntegridad

Se la puede ver como las propiedades que se encuentran en las

definiciones de:

- Reglas de Entidad: Unicidad, minimalidado Reglas de lntegridad de Entidades

o Reglas de lntegridad Referencial

Reglas De Entidad: Unicidad, Minimalidad

La Unicidad y la Minimalidad son 2 principios basicos asociados a la

integridad de entidad.

La unicidad: En cuaiquier momento no existen dos tuplas en R (relacion)

con el mismo valor de clave K. -

La minimalidad: Si la clave K es compuesta, no seré posible eliminar

ningdn componente de K sin destruir la propiedad de unicidad.

Debe haber Ia menor cantidad de Campos en la clave primaria.

0 Regla De lntegridad De Entidades

Ningun componente de la clave primaria (PK) de una relacién base puede.

aceptar nulos (NULL) que significa informacién faltante, desconocida.

_ 12

Page 14: §:Q:LServer2oos 3 (:: :3,»:. r;j

Regla De lntegridad Referencial _

La clave forénea (FK) es un atributo de una relacién R2, cuyos valores»

deben concordar con los de la clave primaria de alguna relacién R1, con la

cual existe un vinculo. -

Ejemplo:

Agencia Deposito

CodAg(P5) CodAg(FK) �030

O1 �031 05

02

O3 _ _

Con el térrnino �034valoresajenos sin concordancia�035queremos decir aqui un

valor no nulo de clave ajena para el cual no existe un valor concordante de

la clave primaria en la relacion objetivo pertinente.

Las Regla de lntegridad referencial garantizan que la base de datos no

incluya valores no vélidos de una clave forénea.

�030 R2(referencial) 9 R1(Relacién referida)

Relacién ReferenciaI.- es la relacién que contiene la clave forénea (FK).

Relacién Refen'da.- es la relacién que contiene la clave primaria (PK).

Las claves forénea y primaria deben de}401nirsesobre el mismo dominio.

Si B hace referencia a A entonces A debe existir.

Por su Manipulacién

Se le puede ver como las operaciones que se ejecutan: El Algebra

' Relacional y el Ca'|cu|o Relacional.

4.1.2 SQL

Los origenes deI SQL estan Iigados a los de las bases de datos

relacionales. En 1970 E. F. Codd propone el modelo reiacional. Sin

embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un

programa comercial. Hubo pues una demora entre la creacién del modelo

Relacional y su implementacién computacional de aproximadamente 10

a}401os,pues no habia un software que soportaré el Modelo. Oracle SQL fue

un gran éxito y dio lugar a toda una industria en tomo a SQL. Sybase,

lnformix, Microsoft y otras compa}401iasse presentaron con sus

implementaciones de un sistema de gestién �030debase de datos relacional

basado en SQL (RDBMS).

I 13 �030W

Page 15: §:Q:LServer2oos 3 (:: :3,»:. r;j

El SQL pasa a ser el lenguaje por excelencia de los diversos sistemas de

gestién de bases de datos relacionales surgidos en los a}401ossiguientes y

es por }401nestandanzado en 1986 por el ANSI, dando lugar a la primera

version esténdar de este lenguaje. AI a}401osiguiente este estandar es

también adoptado por la ISO.

Debido a que el objetivo principal de SQL es comunicar las acciones en el

servidor de base de datos, no tiene la flexlbilidad de un lenguaje de

propésito general. La mayoria de la funcionalidad de SQL son

preocupaciones entrada y salida de la base de datos: a}401adir,modificar,

eliminar y leer datos.

En la actualidad el SQL es el esténdar de facto de la inmensa mayorla de

los SGBD comerciales.

El lenguaje SQL cumple con las reglas del Modelo Relacional, establecidas

por el Dr. Codd, que son usados por el ORACLE y el SQL 2005, que

ademas tienen como antecedentes el Modelo Entidad Relacién de Peter

Chen.

El lenguaje SQL se puede considerar como una de las principales razones

del éxito comercial de las bases de datos relacionales. Como se convirtlé

en un estandar para estas ultimas, los usuarios perdieron el temor a mlgrar

sus aplicaciones de base de datos desde otros tipos de sistemas de bases

de datos a los sistemas relacionales.

El lenguaje SQL proporciona una interfaz de lenguaje declarativo del mas

alto nivel, por lo que el usuario solo especifica lo que debe ser el resultado,

dejando para el DBMS la optimizacion y las decislones de como ejecutar Ia

consulta.

El SQL tiene un rol muy importante en la comunicacién con la base de

' datos, que también funciona embebido en otros Ienguajes de uso general,

como los Ienguajes procedimentales: Cobol, C, C++ y los Ienguajes

orientados a objetos como: Java, PHP y Python.

SQL es un lenguaje de consultas estructurado que opera sobre bases de A

datos relacionales y la normalizacién.

�034Aunqueel lenguaje SQL se considere un lenguaje de consultas, contiene

muchas otras capacidades ademés de la consulta en bases de datos.

Incluye caracteristicas para de}401nirla estructura de los datos, para la

modi}401caciénde los datos en la base de datos y para la especi}401caciénde

restricciones de seguridad.�031�031(SILBERSCHATZ, Abraham y KORTH, Henry,

% 2002).

3 14 0}402/

�031 l

Page 16: §:Q:LServer2oos 3 (:: :3,»:. r;j

SQL utiliza los térrninos tabla, }401lay columna para los ténninos: relacién,

tupla y atributo del Modelo Relacional, respectivamente.

El principal comando de SQL para definir datos es la sentencia create, que

se utiliza para crear esquemas, tablas y dominios, asi como otras

_ estructuras, como vistas, aserciones y triggers.

. SQL es un lenguaje de bases de datos global: cuenta con sentencias para

definir datos, consulta y actualizaciones. Se comporta como DDL (data

definition language) y como DML (data manipulation language) y dispone

de caracteristicas para especificar temas de seguridad y autorizacion, -

definir restricciones de lntegridad y especificar controles de transacciones

como el DCL (data control Language).

4.1.2.1 LENGUAJE DE DEFINICION DE DATOS (DDL)

En el caso especifico del DDL, el lenguaje del SGBD debe ser capaz de

definir la estructura logica de la Base de Datos, sin entrar en detalles de

implementacion ni mecanismos en que se accede a los datos de la Base

de Datos.

La fonna idonea de realizar lo anterior es mediante un lenguaje declarativo,

el cual permite declarar la estructura del modelo de acuerdo al modelo de

datos que utiliza el SGBD;

4.1.2.2 LENGUAJE DE MANIPULACION DE DATOS (DML)

Este lenguaje pennite la utilizacion de los datos almacenados en la base

de datos, y es usado generalmente por usuarios finales o por aplicaciones

cliente utilizadas por ellos.

La forma mas comun de utilizacién del DML es mediante el uso de

Ienguajes de programacion convencionales que poseen al DML del SGBD

como lenguaje embedido; Asi, se puede programar Ia aplicacién cliente en

el lenguaje que se elija, pudiendo realizar llamadas a sentencias del DML A '

cuando sea necesario.

En el caso de los SGBDR y el lenguaje SQL, se tienen las siguientes

sentencias de manipulacion de datos: *

lnsercion de Datos (INSERT); * �030 V

Eliminacién de Datos (DELETE);

Modificaclon de Datos (UPDATE); I

A _ . . 15 �030WW

Page 17: §:Q:LServer2oos 3 (:: :3,»:. r;j

Consulta de Datos (SELECT). -

El lenguaje del SGBD debe incluir formas de especificar qué se desea

hacer con los datos (insertar, recuperar, modi}401caro borrar datos), sin

entrar en detalles acerca de como se realizan estas operaciones.

4.1.2.3 LENGUAJE DE CONTROL DE DATOS (DCL) -

Son sentencias que permiten oontrolar el desarrollo de una transaccién con

el SGBD, de manera que el usuario pueda, a medida que se va realizando

I la transaccion, confirmarla o retractarse de ella.

En el caso de los SGBDR y el lenguaje SQL, se tienen las siguientes

sentencias de control de transacciones:

Confirmacién de transaccién (COMMIT);

Retractacién de Transaccién (ROLLBACK);

. Almacenamiento de puntos intermedios de transacciones (SAVEPOINT).

4.1.3 SQL 2005

Tenemos diferentes versiones de SQL Server 2005, cada una orientada a

cubrir unas determinadas necesidades de diferentes tipos de empresas o

clientes, SQL server es uno de las Bases de datos Relacionales ma�031s .

_ usadas actualmente por su menor oosto y la facilidad para su aprendizaje.

4.1.3.1 ESTRUCTURACION DE LA BASE DE DATOS A

Estructura Fisica V . I

En empresas cuyo volumen de datos es altisimo y el trabajo que se realiza

sobre la base de datos soporta una actividad elevada, se almacenan los

archivos en grupos de discos denominados RAID por hardware. Este

método mejora considerablemente ei rendimiento, y nos asegura que en

_ caso de fallos inesperados no perdamos informacion.

SQL 2005 tiene dos archivos donde almacenar la base de datos: '

- Archivo de datos. A

.�030Archivo de registro de transacciones. _ V

Archivo de datos.- o aquellos que a}401adimoscomo extras, son los archivos

' que tendrén almacenada Ia infonnacién, los datos. SQL Server 2005 nos

pennite-también crear en nuestras bases de datos, no solo informacién,

V . 16 W?/

Page 18: §:Q:LServer2oos 3 (:: :3,»:. r;j

sino también una serie de objetos que trabajan con la informacién. Pues

bien, esta serie de objetos también se almacena en el archivo de datos.

Archivo de registro de transacciones.�024Este fichero es tan importante oomo

el anterior. Su importante tarea es garantizar que esa base de datos

pennanezca integra. Gracias a estos archivos de registros (puede haber

mas de uno), en caso de ser necesario, podremos recuperar la base de

datos, ya que almacena las modificaciones que se producen debido a la

actividad o la-explotacion de la base de datos.

4.1.3.2 TAMANO DE LA BASE DE DATOS

En SQL Server 2005. Los archivos de datos y de registro, crecen

automaticamente. No crecen con cada dato que se a}401ade.Nosotros como

administradores, le daremos un tama}401oinicial sencillo de estimar'(una

cantidad muy peque}401a,unos Megabytes), en ese momento SQL Server

2005 crea la estructura correcta para la base de datos, y una vez que

nuestra base de datos esta en explotacién cuando alcanza e| tama}401o

limite, Io incrementa una cantidad dada por un factor predeterrninado.

4.1.3.3 LENGUAJE DE DEFINICION DE DATOS (DDL)

SQL server se puede utilizar para realizar procesamiento de transacciones,

almacenar y analizar datos, y generar nuevas aplicaciones de Bases de

Datos. .

Tiene como principales funciones: crear tablas, implementar constraints

para controlar la integn'dad de datos.

Tipo de integridad tipo de constraint

Controlar rango de valores sobre las columnas DEFAULT

CHECK

Unicidad de registros y valores unicos PRIMARY KEY

�031 UNIQUE �030Referencial FOREIGN KEY

CHECK

Figura 4.1 Tipos de constraints. Fuente: Autor

A 17 W0

Page 19: §:Q:LServer2oos 3 (:: :3,»:. r;j

4.1.3.4 LENGUAJE DE MANIPULACION DE DATOS (DML)

. El lenguaje DML permite la insercion, actualizacion, borrado y seleccién de

datos y es una de las funciones mas importantes en la gestién de una base

de datos, sobretodo la sentencia select, ya que permite a los Gerentes

realizar consultas répidas acerca de sus negocios.

4.1.3.5 LENGUAJE DE CONTROL DE DATOS (DCL)

Las declaraciones del DCL se usan para cambiar los permisos o roles

asociados con un usuario de la base de datos. Y son: GRANT, DENY y

REVOKE

4.1.4 ORACLE y

La tiltima version de Oracle es la version 11g, liberada en el mes de julio

de 2009, es un RDBMS portable ya que se puede instalar en los sistemas

operativos mas comunes en el mercado, el oosto de la Iicencia oscila entre _

los 180 y 400 délares dependiendo del tipo de Iicencia de usuario, soporta

hasta 4 peta bytes de informaclén. Cuenta con administracion de usuarios

asi como la administracién de roles,�030ademés soporta trigers y store

procedure, cuenta con conectividad JDBC y ODBC, siempre y cuando se

tengan los drivers adecuados para la misma. Es un DBMS seguro ya que V

_ �030 cuenta con un proceso de sistema de respaldo y recuperacion de

informacion. Soporta Data Warehouse por lo que facilita el acceso a la

informacion y da mayor versatilidad. La mayor parte de las empresas de

telecomunicaciones en Latinoamérica utilizan Oracle, por lo que se puede

decir que es un DBMS confiable, seguro para ser utilizado en una empresa

y sobre todo permite reducir costos por su acoesibilldad en el mercado.

Se considera a Oracle como uno de los sistemas de bases de datos mas

completos, destacando su: . '

- Soporte de transacciones. �031

-' Estabilidad. A

- Escalabilidad.

- Soporte multiplataforrna.

. La base de datos Oracle en Vl}401ndowsha evolucionado desde un nivel

bésico de integracion del sistema operativo hasta utilizar servicios mas

avanzados en la plataforrna Windows. H -

_ . . 18 �030W

Page 20: §:Q:LServer2oos 3 (:: :3,»:. r;j

4.1.4.1 CARACTERISTICAS DE ORACLE

El 3 de septiembre de 2007, Oracle anuncié el nuevo sistema de

_ administracién de base de datos, Oracle Database 11g, en el mercado de

Japén. De acuerdo con la vision de brindar calidad incomparable, facilidad

de uso al usuario y eficacia en la administracion de datos, Oracle Database

11g fue desarrollada con la méxima capacidad de recursos de ingenien�031a

para un solo producto. Oracle Database 11g es el resultado de un proceso

de desarrollo que incorpora las opiniones de grupos de usuarios y partners

para brindar un mejor desempe}401o,seguridad y administracién

' automatizada. Como base de datos de préxima generacién, el producto

presenta las siguientes caracteristicas:

~ SecureFiles

Real Application Testing

Advanced Compression ' '

Total Recall

SecureFiles.-

Permite que la gran cantidad de informacion de objetos no estructurados,

como las imégenes de rayos X para atencién médica y los gré}401cosde

ingenieria que en el pasado eran ejecutados en el sistema de archivos,

sean directamente almacenados y administrados dentro de la base de

datos para resolver los cuellos de botella que se presentan durante el

desempe}401o.Soporta las funciones transparentes de comprensién,

seguridad y administracion de base de datos. Al contar con toda la

informacién empresarial, incluso los procedimientos y funciones, en una

' sola base de datos definida. _

Real Application Testing.-

Es probablemente la opcién mas innovadora de la Liltima edicién

empresarial de Oracle Database 11g. La funcién puede capturar cargas de

trabajo de base de datos en tiempo real y repetirlas en un entomo-de

prueba. Esto ayuda a los usuarios a probar y personalizar sus sistemas

para alcanzar un éptimo desempe}401o.

Esta funcion también es um cuando el usuario reemplaza el hardware 0 el

Sistema Operativo y desea probar el impacto en el sistema.

_ 19 (W

Page 21: §:Q:LServer2oos 3 (:: :3,»:. r;j

Total Recall.- �031

Permite a los usuarios rastrear y mantener los cambios de datos de

manera facil y economica, a través del archivo continuo de datos. En el

ambiente mundial, donde el cumplimiento ha pasado a primera plana, la

capacidad de recuperar datos ra'pidamente cuando se .lo solicita se

considera muy valiosa. En el pasado, era extremadamente costoso,

aunque necesario, almacenar cantidades masivas de datos en sistemas de

almacenamiento.

Advanced Compression.-

Es una tecnologia versétil que comprime efectivamente tablas masivas y

datos no estructurados. Reduce las capacidades de almacenamiento y

obtiene una gran cantidad de otros bene}401cioscomo cargas reducidas de

red y mejor eficacia de backup. La funcién permite a los usuarios ahorrar

costos en sistemas, capacidad y espacio. I

4.1.4.2 OTRAS CARACTERISTICAS DE ORACLE

1.- Tablespace

Detras de las construcciones Iogicas asociadas con una base de datos

Oracle, existen construcciones fisicas que la base de datos Oracle utiliza

9 para almacenar los datos. . .

Sin embargo, los tablespaces no solo constituyen contenedores de objetos,

tambien son un metodo de organizacién. Los tablespaces estan dise}401ados

para organizar los datos permitiendo al DBA agrupar tipos de datos

similares en un area. Por ejemplo, un DBA puede utilizar un tablespace

para almacenar datos y otro para almacenar indices.

2.- Sentencias SQL

A continuacién presentamos un resumen de las sentencias SQL de

ORACLE. '

. 20 ,

r7�031

Page 22: §:Q:LServer2oos 3 (:: :3,»:. r;j

T .Rvczz1ret~a*eviéi11 �030Datos?Z'N5L§E7P<�030T"'-3fl.:a.~:;erra1~

L l�030..iT?DA'IE�030-.3�0311~�030t<::ua1..zxr?3':TL'E'I�030E'-3 B:cm;t

L�031£§3.i3L£9 amin-. __ _ _ i A .�030{§}Ii.£§4Im§1auir22;+iii§n}401neBates}A ii-"EE{«1'.1�030£�030-9(�030rear

�030-913xE.*«*!.tTrc.z1*3.§.i3�031P-.§iBs:-am

_- l3tiET3«�035A..1-IE 1-.9 Refliltliiliiil�03017I�031{[l'l_%'C:A'IE�030-.)lElimi1m-(aw:

< _ "DDL (lD=:il'a'!Me§:i1aiii¢ovz1 9.1o�031nl�030itU

' i3l}M_l_\}402Jl�030'9 A'¢tu;al'im- ezxxzbm' Rl3LLB:i3.C'K '9 Deslzauetrszunlias�030 2i,s..{�030a'*..�034.£¥i:3�030iI:~§�030.'?�030-3mam 2le1z:st:ii'pat=.m::i'éq:

L "C3-sh~'?f�030~-2:5}401fehemisate}401omfs. �030-9Gtegu-pveaiiisosl 'R."E�030z"t)31E'-I>TR'ev:>ca1'p;ex:t1'.sos _ �031 V

BUL.(.B'.-mi Cantmi Laniguagt)

Figura 4.2 Sentencias SQL. Fuente: Autor

4.1.4.3 ARQUITECTURA DE ORACLE EN WINDOWS

Cuando se ejecuta en Vl}401ndows,Oracle Database 11g presenta las

mismas caracteristicas y la misma funcionalidad que las distintas

plataforrnas Linux y UNIX soportadas por Oracle.

No obstante, la interface entre la base de datos y el sistema operativo ha

sido sustancialmente modificada para aprovechar los servicios exclusivos

brindados por Windows. Como resultado, Oracle Database 11g en

Windows no es un puerto directo de la base de cédigo UNIX.

Oracle brinda buen desempe}401opara las platafomias Vl}401ndowsde 32 y 64

bits.

Oracle se ha adaptado a los cambios ma's recientes en los conocimientos

informaticos de Windows desde las primeras soluciones cliente/servidor

hasta las aplicaciones de lnternet, y ahora la tecnologia grid.

Oracle Database 11g para Vl}401ndowsbrinda todas las caracteristicas

necesarias para la administracion de datos, ya sea que se utilice para la

implementacién en toda la empresa 0 en un solo departamento. Permite a

los usuarios aprovechar las ventajas de facilidad de uso y costo que ofrece

Windows, mientras brinda la escalabilidad, con}401abilidady el desempe}401o.

Uno de los mayores beneficios de utilizar Oracle es el soporte de multiples

21 M

Page 23: §:Q:LServer2oos 3 (:: :3,»:. r;j

esténdares de programacion. Al soportar aplicaciones Java, .NET, PHP y

C/C++, Oracle garantiza que todos los desarrolladores puedan utilizar las

caracteristicas avanzadas de la base de datos Oracle.

4.1.4.4 LENGUAJE DE DEFINICION DE DATOS (DDL)

Las sentencias DDL en ORACLE son:

CREATE TABLE Crea una tabla. Para ello el usuario debe de tener

el privilegio CREATE TABLE. _.

ALTER TABLE Permite modi}401carla estructura definida para una

tabla. V

DROP TABLE Elimina una tabla (datos y estructura) y sus indices.

No se puede hacer Rollback de esta sentencia.

RENAME �030*6Cambia el nombre de una tabla, vista, secuencia o

sinénimo.

4.1.4.5 LENGUAJE DE MANIPULACION DE DATOS (DML)

Las declaraciones de lenguaje de manipulacion de datos (DML) se utilizan

para la gestion de datos dentro de los objetos de esquema, las usadas en

Oracle son:

INSERT =«�024-9A}401aderegistros a una tabla.

UPDATE -==-=1» Modiflca registros existentes de una tabla.

DELETE Elimina registros existentes de una tabla.

4.1.4.6 LENGUAJE DE CONTROL DE DATOS (DCL)

El Data Control Language, pennite configurar controles de seguridad sobre

objetos de la base de datos. Bésicamente a este grupo de sentencias

pertenecen los comandos GRANT y REVOKE, los que respectivamente

otorgan y quitan privilegios de operaciones DDL o DML sobre ciertos

objetos de la base de datos de algun esquema en particular. Este tipo de

comandos no requieren confirmacién del usuario (COMMIT).

22 M

Page 24: §:Q:LServer2oos 3 (:: :3,»:. r;j

4.2 TRABAJOS DE INVESTIGACICN TEORICOS ANTERIORES

Las organizaciones a menudo emplean un sin namero de plataforrnas

de base de datos en su arquitectura de sistemas de informacion. Utilizan

de tres a cuatro diferentes paquetes de Base de Datos.

Sin embargo cuando se trata de aprender una plataforma nueva base de

datos, a menudo es mejor mirar a lo que ya sabemos y luego tratar de

encontrar el equivalente en el nuevo entomo. Ejemplo: si un desarrollador

de SQL Server desea escribir procedimientos almacenados de Oracle

puede empezar mirando las funciones integradas y en que di}401eren. �031

Mostraremos algunas de las similitudes y diferencias entre las dos

plataformas de base de datos mas utilizadas hoy en dia.

4.2.1 EDICIONES '

En la actualidad SQL Server 2012 es la version actual del producto

de base de datos de Microsoft. La version anterior fue SQL Server 2008

R2, que tuvo como su antecedente SQL Server 2005, la cual tuvo una

importante actualizacion de su predecesor, SQL Server 2000.

La version mas utilizada sigue siendo SQL Server 2008 R2, tanto en

Empresas como en Universidades.

Oracle por otro lado se encuentra en la version 11g R2. La version mas

prominente de 10g R2 ha estado presente en el mercado por algun tiempo.

En cuanto a ediciones de SQL Server 2008 R2 ofrece las siguientes:

- Enterprise Edition: La edicién Enterprise es recomendable para base

de datos de alto volumen. A -

- Standard Edition: Es ideal para las empresas que no requieren de las

funciones avanzadas de la Enterprise Edition. Lo usan la mayoria de las

empresas.

- Workgroup Edition: Es la indicada para peque}401asaplicaciones .

departamentales.

- Web Edition: Esta destinada a ser utilizada por los proveedores de

alojamiento como solucién back-end de bajo coste para aplicaciones web.

23 ~

W

Page 25: §:Q:LServer2oos 3 (:: :3,»:. r;j

- Express Edition: Puede ser utilizados para el almacenamiento local de

datos y sistema de desarrollo de peque}401asescala. La edicién Express se

puede descargar gratis.

- Compact Edition: La edicién Compact permite a los usuarios

desarrollar aplicaciones para computadoras de escritorio de Vl}401ndowsy

dispositivos de mano.

- Developer Edition: Tiene Iicencia de uso por un usuario a la vez y se

utiliza para fines de desarrollo y pruebas.

' Para Oracle 11g R2, las Ediciones son:

- Enterprise Edition: AI igual que en el SQL Server Enterprise Edition,

todas las caracteristicas y las capacidadesdel producto estén permitido en

esta edicién. A

. - Standard Edition: Al igual que el esténdar SQL Server Edition, la

edicién esténdar de Oracle tiene habilitadas las principales caracteristicas

del producto.

- Standard Edition One: Esta edicién esta dise}401adapara peque}401os

grupos de trabajo y la Iicencia para un méximo de 5 usuarios.

- Express Edition: Trabaja en peque}401aescala, también tiene Iicencia

para redistribuirio libremente.

4.2.2 SISTEMAS OPERATIVOS

Microsoft SQL Server ha tenido como plataforma los servidores de ~

Windows. En la actualidad, SQL Server hasta la version 8 se ejecutan en

XP, Vista, Vvundows Server 2000, 2003 y 2008.

A partir de la version 12 se ejecutan solo en los sistemas operativos:

_ Vwndows 7, Vl}401ndows8. '

La plataforma de base de datos esta disponible para los de 32 bits y 64 bits

de Windows.

Para el caso de Oracle, tiene soporte multiplataforrna que incluye no sélo

\_Mndows (32 bits y 64 bits), también Linux y diferentes variantes de Unix

(Solaris, HP-UX, AIX, etc).

' 24 W

Page 26: §:Q:LServer2oos 3 (:: :3,»:. r;j

4.2.3 ARQUITECTURA

4.2.3.1 INSTANCIAS Y BASES DE DATOS

Una instancia en términos de SQL Server, significa un servicio de

aplicacion autocontenida que implica archivos del sistema operativo, las

estructuras de memoria, los procesos de segundo plano y la informacion

de registro. Una instancia esta representada por un servicio en Windows y

puede estar en ejecucion o estado detenido. Cuando se ejecuta, una

instancia ocupa una porcion de la memoria del servidor.

Una base de datos de SQL Server es el repositorio de datos y el cédigo del

programa para la manipulacion de esos datos. Si una instancia no se esta�031

ejecutando, no se puede acceder a las bases de datos dentro de ella.

Hay dos tipos de bases de datos de SQL Server: bases de datos de

sistema y de bases de datos de usuario. Cuando una instancia de SQL

Server se instala por primera vez, cinoo bases de datos del sistema se

crean: model, tempdb, master, msdb y resource. Una instancia no se

puede iniciar si cualquiera de sus bases de datos del sistema, excepto

msdb esta inaccesible. Las bases de datos del usuario son creadas por

desarrolladores y administradores de bases después que la instancia se ha

instalado y el sistema de bases de datos ha iniciado. Estas son las bases

de datos que almacenan la informacion de las organizaciones.

En el nivel fisico, una base de datos de SQL Server esta representada por

un conjunto de archivos del sistema operativo que residen en el sistema de

disco del servidor. Hay dos tipos de archivos de base de datos: el archivo

de datos (data file) y el archivo de registro de transacciones (transaction

log file).

Un archivo de datos es el repositorio central de informacion en una base

de datos SQL, mientras que un archivo de registro de transacciones

registra los cambios que se han aplicado a los datos. Este archivo es

requerido por SQL Server para la recuperacion del sistema.

Con Oracle, las cosas funcionan en la direccién inversa. Cuando Oracle se

inicia, funciona igual que SQL en que una porcion de la memoria del

servidor se asigna para su funcionamiento. Esta area de memoria,

conocido como el Area Global de Sistema (SGA), se divide en una serie

de estructuras diferentes. Junto con el espacio de memoria, una serie de

procesos de fondo que también se inician para interactuar con el SGA. En

25 W

Page 27: §:Q:LServer2oos 3 (:: :3,»:. r;j

conjunto, el espacio de memoria y los procesos constituyen una instancia

de Oracle. Sin embargo la base de datos Oracle todavia no esta presente.

De hecho, una instancia de Oracle podria estar funcionando peifectamente

bien sin su base de datos en linea o incluso ser accesible.

Una base de datos en Oracle es una coleccion de archivos de sistema

operativo. A diferencia de SQL Server, una base de datos Oracle no

representan a la agrupacion légica de los objetos, sino que es un unico

término genérico para una serie de archivos en el disco que principalmente

tienen datos.

Los archivos que componen una base de datos de Oracle se pueden

clasificar en tres tipos:

Archivo de datos (data }401le),archivo de rehacer (redo log }401le)y

ei archivo de control (control }401le).

Los archivos de datos es donde residen todos los datos. Puede haber

cualquier numero de archivos de datos en una base de datos de Oracle.

Archivos Rehacer son como los archivos de registro de transacciones de

SQL Server que registra que cada cambio realizado a los datos y se utiliza

para la recuperacion del sistema. Los archivos'de control son un tipo

especial de archivo que contiene peque}401aspiezas de informacién vital

acerca de la base de datos. Sin este archivo, la instancia no seré capaz de

abrir la base de datos.

Aparte de los archivos de datos, archivos rehacer y los archivos de control,

la base de datos contendré también un archivo de parémetros, y

un archivo de contrase}401as,opcionalmente, archivos de registro de

archivado (archive log file). Vamos a discutir acerca de cada tipo de

archivos de base de datos Oracle en breve.

Cuando se inicia un sistema de Oracle, primero la instancia se crea en la

memoria. La instancia a continuacién, se conecta a la base de datos que

residen en el disco y, finalmente, se abre la base de datos para la

interaccién del usuario. Cuando el sistema se apaga, Ia instancia se

' borraré de la memoria: todas las estructuras de memoria y los procesos se

terrninan, pero la base de datos todavia existe en el disco, aunque en un

estado cerrado. Como se dijo anteriormente, es posible tener Ia instancia

de Oracle que se ejecuta sin necesidad de abrir la base de datos �024es una

gran diferencia de SQL Server donde una instancia no puede comenzar sin

primero tener sus bases de datos de sistemas en linea. Sin embargo,

�030 26 W

Page 28: §:Q:LServer2oos 3 (:: :3,»:. r;j

como SQL Server, es imposible conectarse a una base de datos de Oracle,

si la instancia no ha comenzado.

En general, la relacién entre una instancia de Oracle y su base de datos es

uno a uno. Las instalaciones de Oracle configuradas como RAC (Real

Application Cluster) tendrén varias instancias que se ejecutan en

diferentes méquinas que acceden a la misma base de datos en un disco

compartido. .

Entonces, g,dénde esta la agrupacién légica de los objetos de base de

datos Oracle? En SQL Server, esta agrupacién légica es realizada por la

propia base de datos. Para Oracle, se realize a �030travésde algo

llamado espacios de tablas (tablespaces). Un espacio de tablas de

Oracle es una estructura légica que agrupa a las tablas, vistas, indices y

otros objetos de la base de datos. Por ejemplo, la base de datos Oracle de

produccion puede tener uno de tablas dedicado a la aplicacion de recursos

humanos y otro de tablas para la nomina. Cada espacio de tablas esta

fisicamente representado por uno o mas archivos de datos en el disco y

forma parte de la base de datos.

4.2.3.2 BASES DE DATOS Y ESPACIO DE TABLAS

El proceso de creacién de una base de datos en SQL Server es muy

O similar a la creacion de un espacio de tablas en Oracle, ya que son muy

similares en sus funciones. Cuando se crea una base de datos o de un

espacio de tablas, el DBA (Administrador de Base de Datos) debe

especificar un nombre. El DBA asigna uno o mas archivos de datos a la

' base de datos o tablas de espacios y especifica el tama}401oinicial y los

incrementos de crecimiento de cada archivo.

Al igual que una base de datos de usuario de SQL Server se puede poner

fuera de linea 0 de solo Iectura, también se puede en un espacio deitablas

de usuario de Oracle. Y al igual que en SQL Server los archivos pueden

ser de solo lectura.

Sin embargo, las bases de datos y devtablas difleren entre si en los

siguientes puntos:

- En SQL Server, los archivos de datos pueden ser, légicamente,

agrupados en grupos de archivos. Los espacios de tablas de Oracle no

tienen este concepto. �031

A _ 27W7)

Page 29: §:Q:LServer2oos 3 (:: :3,»:. r;j

- En las bases de datos SQL Sewer, cada base de datos tendré su propio

registro de transacciones y las propiedades del archivo de registro debera

ser especificado durante la creacién de bases de datos. Para Oracle, las

transacciones de la base de datos es completa. Por consiguiente, no existe

ninguna disposicién para crear archivos de registro lndividuales para

espacios de tablas.

4.2.3.3 LOS NOMBRES DE INSTANCIA

SQL Server y Oracle permiten ejecutar simultaneamente varias instancias

del software servidor en el mismo equipo. Estos maltiples contextos de

' ejecucién son totalmente independientes unos de otros.

En SQL Server, este mecanismo se activa a través del concepto de

�030 instancias. SQL Server puede funcionar tanto como una instancia

nombrada o como una instancia predeterminada. La instancia

predeterminada tiene el mismo nombre que el servidor de Vl}401ndowsque lo

hospeda. Es posible ejecutar varias instancias nombradas en esa misma

méquina. Cada instancia tendré su propio conjunto de archivos binan'os

con algunos componentes comunes y compartidos entre todos. �031

Para Oracle, funciona de la misma manera. Cuando se instala Oracle, el

DBA debe especificar un nombre global de base de datos (Global

Database Name) y un identi}401cadordel sistema (SID). La instancia y

bases de datos son entidades completamente separadas en Oracle. Un

SID por otra parte identifica la instancia asociada con la base de datos. En

la mayoria de los casos una sola instancia se asocia a una (mica base de

datos, el SID y el nombre de base de datos seré el mismo. Los entomos de

Oracle Real Application Cluster (RAC) son una excepcién: RAC permite

que multiples instancias accedan a la misma base de datos alojada en un

almacenamiento compartido; los nombres de instancia son diferentes del

nombre de base de datos en estos casos. Sin embargo, al igual que un

equipo de SQL Server, un servidor de base de datos Oracle no puede

tener dos instancias en ejecucién con el mismo SID.

Un DBA de SQL Server puede ejecutar la siguiente consulta para saber el

nombre de la instancia a la que esta�031actualmente conectado a:

1 SELECT @@SERVERNAME

28

Page 30: §:Q:LServer2oos 3 (:: :3,»:. r;j

Un DBA Oracle ejecutar consultas como la siguiente para obtener la

instancia y el nombre de base de datos:

"1"? SELECT ' lNSTANCE_NAME, HOST_NAME, VERSION,DATABASE_STATUS FROM V$|NSTANCE;

2 SELECT NAME, DATABASE_ROLE, CREATED FROM V$DATABASE;

Una instancia de SQL Server dispondra de cinco bases de datos de

sistema (cuatro para las versiones anteriores de 2005) presente: master,

model, msdb, tempdb y resource. Una base de datos Oracle necesita un

minlmo de tres espacios de tablas de sistema para su

funcionamiento: SYSTEM, SYSAUX y TEMP.

Las base de datos master y resource son los repositorios centrales de toda

la informacion de SQL Server para gestionar las necesidades de si mismo.

Para Oracle, el espacio de tablas del sistema es el equivalente de la base

de datos master.'E| espacio de tablas SYSTEM contiene el diccionario de

datos, que son los metadatos de Oracle sobre si misma. El diccionario de

datos se puede comparar con la base de datos de recursos de SQL. .

Para una instancia de SQL Server, la base de datos model es la �034plantilla�035

que se utiliza para crear cada nueva base de datos en esa instancia. Para

Oracle, no existe tal modelo, pero cuando se crea un espacio de tablas,

puede especificar si seré un espacio de tablas permanente 0 de cualquier

otro tipo como un espacio de tablas TEMP 0 UNDO.

29

Page 31: §:Q:LServer2oos 3 (:: :3,»:. r;j

V.- MATERIALES Y METODOS

Universo

El Universo de esta investigacién son las bases de datos en general, y

usaremos una muestra de 2 bases de datos creadas para realizar el

estudio comparativo, una Ia Base de Datos �034Compa}401ia�035(Proyectos

realizados en una Compa}401ia)para probar las sentencias de SQL 2005 y

una Base de Datos �034HR�035(Historia Iaboral de Empleados) para comprobar

las sentencias en ORACLE. El tipo de muestra es no probabilistica.

. Las versiones de software que se utilizarén serén en el Caso de SQL, el

SQL 2012, por lo que me referiré a este como SQL server y en el caso de

ORACLE he utilizado la versién ORACLE 11g. Ya que son las ultimas

versiones de ambos en la fecha de ejecucién del proyecto, que es el 2013.

Técnicas de Recopilacién de datos

Las técnicas de recopilacién de datos utilizada es la Observacién del

comportamiento en la pra'ctica de cada una de las Bases de Datos creadas

en SQL 2005 y ORACLE respectivamente.

En cada una de las Bases de Datos creadas, se probara de manera

practica, las caracteristicas del DDL, DML y DCL para observar el

comportamiento de cada una de las sentencias.

Adicionalmente, también se realizarén cuadros de contrastacién de

resultados. -

En cuanto at método utilizado es el Método inductivo, ya que hemos hecho

una transicién de lo particular a lo general, se ha usado Ia generalizacién

inductiva, porque Ia investigacién se basa en hechos reales para lograr la

evidencia.

Técnicas Estadisticas

En cuanto a las técnicas estadisticas usadas tenemos que esta

investigacién es de tipo cualitativo, es decir que tiene las caracteristicas

de una investigacién de esta naturaleza, como son: Estudio de casos,

Generalizar conclusiones de casos, empleo del método inductivo a

diferencia de las investigaciones cuantitativas que utilizan el método

deductivo, estudian poblaciones o muestras�030y que emplean métodos

estadisticos para analizar los datos y generar datos numéricos.

30

W

Page 32: §:Q:LServer2oos 3 (:: :3,»:. r;j

Por Io tanto esta investigacién no utiliza técnicas estadisticas por ser una

investigacién cualitativa.

31 (W

Page 33: §:Q:LServer2oos 3 (:: :3,»:. r;j

V|.- RESULTADOS

6.1 BASES DE DATOS COMPARADAS

6.1.1 SQL SERVER

En SQL se utilizé para la comparacién, motivo de la presente investigacién,

!a Base de Datos Compa}401ia,conformada por las siguientes tablas y datos.

EMPLEADO

Nombrep i Apellido Fechan NSS

n SUPERiC

�034THE3 Iil}401WWHEll

@@l}402}401EWEIE

WI}EIIIWWTI

DEPARTAMENTO

T 333535555 3355-73

LUGARES_DEPTOS

T

Page 34: §:Q:LServer2oos 3 (:: :3,»:. r;j

PROYECTO

T

. j11

�024TRABAJA_EN

A W

T�031

3T

*T T

�030 33

Page 35: §:Q:LServer2oos 3 (:: :3,»:. r;j

DEPENDIENTE

333445555 555475333445555 II 55-45-73987654321 Abdiel �03429-02-32

453455755RT 54-5455453455455 3444545123456789 Elizabeth 05-05-57 .

Figura 6.1 Tablas y datos definidos en la Base de Datos Compa}401ia _

Fuente: Autor

6.1.2 ORACLE

En ORACLE se utilizé para la comparacién estudiada, Ia Base de Datos 1

HR, cuyo esquema fisico es el siguiente.

�031 5�035�0303 ,4 _ __ __ �030E:_vj¢i:!9x'55.g0:w:2n::9<é�0349§yes0ww:L�030 g4�030 4r59__:5nrmE;xas:e4ms»a:2.mra,aur:.7rnz:u1-.15�030="�034�034�030�024=�034'5�03154""45~:'4�0303m�031N"5>TT-44515_j.. E5 '5N§55tA554'r-:Nw\#BE�030m�030a2t~&)mL4 9ur1m&.;m�030r5rrz@7rrm00�035'�034."�030'.3 �030M?%<;_%NL}401-14�031%=IN!wWETE53E»3Nt5uL] 5@§n9:\z m@?wayaL : 11 gE '" 4 5�031 �030fI2«'EfF*5~'}401�030i?hha1~TLH0:IriIw�030r»¢Es~�031I:<s7:frwwL2L[1 f

4?. a 4 3 i5 §% i 5

4 3 J 33.9995.....v.m.:..4~m93..<=1aw& A 4

@mxg;;mmm©32%g0wrmm ~ .mm_7r4: ' ~r rat}401mléznuwmamv mzacmam V_-�024- .- �024�024,_�024-7;

�030 t:4:a7.-E._!0s2«�030m:I07zx7Errt101rn%1xLaL . 3.» 7»

4 =«===-�024�024==-- a; 4 s 3 is�030 rm&'r%15I\�035L='TEE9=l}401h;TrIJuII>1E'¢-:R'(E:r;|r!iwI.5L 1 n _______ , 4. " 5 �031*�034"*�031�035�024_--�035'_�030Q ;L©%N}401m~u£0:wwwrE:E}401'(§)m97w50; ;

'%3?5%x4:9*;5asa¢:«52§wwLL �031�030 53 Hi -~�024*~3 4

7 59: 4= I:=.-.-;4£9�035_m�030_3-=9~�024_=Wm 4 7i ===-=4 5

Figura 6.2 Esquema de la Base de Datos HR. Fuente: ORACLE

. 34

Page 36: §:Q:LServer2oos 3 (:: :3,»:. r;j

Resultadoz

Se mostré los esquemas de la Base de Datos �034Compa}401ia�035para probar las

sentencias de SQL 2005 y la Base de Datos �034HR�035para comprobar las

sentencias en ORACLE, �034HR�035es una Base de Datos de prueba que

proporciona el ORACLE.

6.2 LENGUAJE DE DEFINICION DE DATOS (DDL)

6.2.1 CREACION DE ESQUEMAS Y TABLAS

SQL Server

A continuacién mostraremos el cédigo para crear Ia Base de Datos y las

tablas de la Base de Datos Compa}401iaen SQL 2005.

24"?�031>2. E. . . �024�024.__1_._ 1~ -114 um-'a-a ._w_-.;_u 1.4;-n .4» '1, v :1 _ _a " -. ;:.q,.;=~z

us _ :5 I'm *-N-<4 ~ In 4 -' -1 «.2: 0. 2�031:�030:2:H _. ..__-... E ___-____ _,_,}401_ II.-�030V"i_g_'§§_-_�031q-,§.-g~.'-::._e¢.,i,~ _ _ >_ __ A �034___. ___m___a_ V : �030I.-

_ A�030;;;�030m�030create database cotpa}401iaon primary; �030Ag:(na::e=co::pa_}401iadata, 1;" filename = �030F:\trabajos\8aseDatos\pr-SQL2e98\8DCompa}401ia\compa}401iadata.mdf�031}�030 =--Harv ' - M 1 :-,..;».=.g,_ , s1.ze=m~»8, �030 5

. maxs»ize=?2Q�030-�030.8, L I �0303-WM 'fi.1-_egrowth=2.�030aB) {

i log on l 4-_; ' (na:~.e=co:pa}401ia1og, 1 V

\ �034,fi1enane= 1 �030E= I �030F:\trabajos\BaseDatos\prSQL2e98\8DCompa}401ia\compa}401ia1og.ldf�030,I .

V 1 �030size=!5�0301'B, 3;* ' n.-.axsiz-e=.�030§©�030-�030.B, ',E 3 I fi1.e}401P0Hth=.'v1B) E

.»'| ;s

. . ..q-:vms.1.:,. '§�030-"&�0301�030..-3.3-2-9-:".�030.9.««5I.�030.';mm:-�031£�0301_a:=a'�024."a-�030ear. 7.�030-�030vs2»; �030;

�0306"OE.Fi�030[FE " ' ' "E E �034" ;;i;;'f

Figura 6.3 Sentencias para la creacién qe Ia Base de Datos Compa}401ia

Fuente: Autor

35

Page 37: §:Q:LServer2oos 3 (:: :3,»:. r;j

CREATE TABLE EMPLEADO (

nombrep varchar(1S) NOT NULL,inic char,apelli varchar(15) NOT NULL,nss Char (9) NOT NULL PRIMARY KEY,

fechan datetime,direccion varchar(30),sexo char,

salario decima1(10,2),nsssuper char(9),nd int NOT NULL

)CREATE TABLE DEPARTAMENTO (

nombred varchar(15)NOT NULL,numerod int NOT NULL PRIMARY KEY,nssgte char(9) NOT NULL, vfechainicgte datetime

)

CREATE TABLE LUGARES_DEPTOS (

numerod int NOT NULL,lugard varchar(15) NOT NULLPRIMARY KEY (numerod, 1ugard))

CREATE TABLE PROYECTO (

nombrepr varchar(20) NOT NULL,numerop int NOT NULL PRIMARY KEY,

lugarp varchar(15),numd int NOT NULL,

)

CREATE TABLE EMPLEADO_PROYECTO (nsse char(9) NOT NULL,nump int NOT NULL,horas decima1(3,1) NOT NULL

)ALTER TABLE EMPLEADO_PROYECTO

ADD PRIMARY KEY (nsse, nump)

CREATE TABLE DEPENDIENTE (

nsse char(9) NOT NULL,nombre_dependiente varchar(1S) NOT NULL,sexo char,fechan datetime,

parentesco varchar(8)PRIMARY KEY (nsse,nombre_dependiente)

)

Figura 6.4 Creacién de la estructura de la Base de Datos Compa}401ia

Fuente: Autor

_ 36

Page 38: §:Q:LServer2oos 3 (:: :3,»:. r;j

insert intoEMPLEADO(nombrep,inic,apellido,nss,fechan,direccion,sexo,salario,nsssuper,nd) values

('José','B','Si1va','123456789','09/01/1955','Fresnos731,Higueras,MX',�030M',3G000,'33344S555',5)insert intoEMPLEADO(nombrep,inic,apellido,nss,fechan,direccion,sexo,sa1ario,nsssuper,nd) values

('Federico','T','Vizcarra','333445S55','08/12/1945',�030Valle638,Higueras,MX','M',49660,'888665555',S)

insert intoEMPLEADO(nombrep,inic,ape11ido,nss,fechan,direccion,sexo,salario,nsssuper,nd) values('Alicia','3','Zapata','999887777','19/07/1958','Cati11o,3321,Sucre, MX','F',25090,'987654321',4) _

insert into

EMPLEADO(nombrep,inic,apellido,nss,fechan,direccion,sexo,sa1ario,nsssuper,nd) values

('3azmin',�030S�031,'Valdes',�0309876S4321','20/06/1931',�030Bravo291,Be1én,MX','F',43000,'88866555S',4)

insert intoEMPLEADO(nombrep,inic,ape11ido,nss,fechan,direccion,sexo,sa1ario,nsssuper,nd) values('Ramén','K','Nieto','666884444','15/09/1952','Espiga 875,

Heras,MX','M',38009,'333445555�031,5)

insert intoi EMPLEADO(nombrep,inic,apellido,nss,fechan,direccion,sexo,sa1ario,nss

super,nd) values »

('Josefa',�030A�031,'Esparza','453453453','31/07/1962','Rosas5631,Higueras,MX','F',250e0,'3334455SS',S)insert into

EMPLEADO(nombrep,inic,apellido,nss,fechan,direccion,sexo,sa1ario,nsssuper,nd) values(�030Ahmed','V','3abbar','987987987','29/03/1959','Da1ias980,Higueras,MX','M',25000,'987654321',4)insert into

EMPLEADO(nombrep,inic,apellido,nss,fechan,direccion,sexo,sa1ario,nsssuper,nd) values('3aime',�030E�031,�031Bote11o','88866S5SS','10/11/1927','Sorgo459,Higueras,MX','M',55060,'123456789',1)

insert into DEPARTAMENTO(nombred,numerod,nssgte,fechainicgte) values('Investigaci6n',5,�03133344S55S','22/05/1978')insert into DEPARTAMENTO(nombred,numerod,nssgte,fechainicgte) values('Administraci6n',4,'987654321','01/91/1985')insert into DEPARTAMENTO(nombred,numerod,nssgte,fechainicgte) values

('Direcci6n',1,'88866S555','19/06/1971')

insert into LUGARES_DEPTOS(numerod,lugard) values (1,�030Higueras')insert into LUGARES;DEPTOS(numerod,lugard) values (4,'Santiago') -

Figura 6.5,|nsercién de datos a la Base de Datos Compa}401ia

Fuente: Autor

37

Page 39: §:Q:LServer2oos 3 (:: :3,»:. r;j

_�030-*-.-':§thr-�031év¢v}401x-r'1i~0-,!�030~.+\-'~�031~}401b.

;"~ __.l.l .t'.~.~'.~m ;_, 3,11,-2, .s ; v ~ ._~ 1 >.~ 1 ' - 7.3:» in T=_ "2 E1?!-_ ____?�030~35.3?!�030' �034NH- mg a O - '1 C} O_ Z�030;111% ". ; _ __ _ H�030_ ____�030___�030_> ___ _"_%

- '�254{�030,-�030.'2<'a.$\.1»�031--�030!'~5a�030¢&§:V>.<'-'~- __mm____ . ' , __ V __ _ _ _,�254-a-.�030~ 5- 5

_;-1 i:.�030?-R-if9 �030. 5 2'3335»: -ALTER TABLE LUGARES_DEPTOS ,, E_4 _ ADD FOREIGN KEY (nu:1er~od)REFERENCES DEPARTAMENTO _; g«.3 .' » 9

-ALTER TABLE PROYECTO 2 ' iADD FOREIGN KEY (n_ur:d)REFERENCES DEPARTAMENTO _T

M T ALTER TABLE em.>L5Aoo_PaovecTo TL4 ADD FOREIGN KEY (nur::p)REFERENCES pnovecro

g V ALTER TABLE l:.�030-�030.PLEAD,0_PROYECTO- ADD FOREIGN KEY (nsse)REFERENCES EMPLEADO ;

�030 T ALTER TABLE DEPENDIENTE V ..F ADD sonexsu KEY (ns:s_e)REFERENCES EMPLEADO *

4 5 ".�030V.e«»13o':l\. 'e�031.h:�030.!.\2-5:.-';';3»<-}401rg«na!Ir:.9¢§e'\-eut- -.9!-I at-:5: �030Ye.�030

go}402a}402a" ww%!

Figura 6.6 Creacién de claves foraneas a la Base de Datos Compa}401ia

Fuente: Autor

ORACLE

Esquemas de Base de Datos

En Oracle, un esquema es una coleccién de objetos de la base de datos

pertenecientes a un usuario especifico. .

Por ejemplo, si creamos el usuario ventas, y queremos que exista el

esquema ventas debemos hacer lo siguiente:

1. Debemos asignarle una cuota al usuario ventas en algdn tablespace.

2. Debemos asignarle privilegios al usuario ventas para que pueda crear

sus objetos (tablas). _

' 3. Finalmente, el usuario ventas debe crear sus objetos.

Después de realizar los tres pasos anteriores podemos decir que tenemos

el esquema ventas.

Crear el esquema ventas con tres tablas:

1. Tabia de articulos: ARTICULO

2. Tabla de ventas: VENTA

3. Tabla de usuarios: USUARIO

38

Page 40: §:Q:LServer2oos 3 (:: :3,»:. r;j

connect / as sysdba

create user ventas

identified by ventas;

grant connect, resource to ventas;

Figura 6.7 Creacion del usuario y asignacion de cuota y privilegios

Fuente: Autor

connect ventas/ventas

create table articu1o(

art_id number(5) primary key,

art_nombre varchar2(50) not null,

art_precio number(8,2) not null

);

�030 create table usuario(

usu_id number(5) primary key,

usu_nombre varchar2(50) not null,

usu_usuario varchar2(15) not null,

usu_clave varchar2(15) not null

); .

i create table venta(

ven_id number(5) primary key,

ven_fecha date not null,

usu_id number(5) not null,

art_id number(5) not null, -

ven_cant number(5) not null,

ven_precio number(8,2) not null

);

alter table venta

add constraint fk_venta_articu1o

foreign key( art_id )

references articulo;

alter table venta

add constraint fk_venta_usuario

foreign key( usu_id )

references usuario;

Figura 6.8 Creacion de los objetos. Fuente: Autor

39 P6?

Page 41: §:Q:LServer2oos 3 (:: :3,»:. r;j

Resultadoz

Existen diferencias en cuanto a la creacion de Base de Datos, en SQL

2005 se asigna la ubicacién fisica de la Base de Datos y crea un archivo

con extension mdf y log. Y en Oracle se crea un Usuario y se Ie asigna en

algun tablespace y luego se asignan privilegios para crear tablas.

En cuanto a la creacion de tablas, claves primarias y foréneas no existen

diferencias entre ambos.

6.2.2 IMPLEMENTAR CONSTRAINTS

6.2.2.1 CHECK CONSTRAINTS

SQL Server

Ejemplo: Implementar un check constraint que verifique que los salarios de

los empleados sean mayores que 24000 pesetas.

,Prhlx£.w- �030�030*:',!~4.3.! J.N\-Ru.-J,�030t.11,"3,i'o�030J4:;,-'» in 11,», _9_- , V :.:;.-.31.» �030

L mgr.-.e_.v:~. wmm.-M -Q«ar.'H:r4�031D.:�030;-.:'s1=_1 I:..:...'nm;=:.v.�031_- 0 - - *..c.--.............«.......,......................t~ V ......M '; 3

5_*."�030;�034éw::_ Use compa_n_1_a,_I\-a!,'l�031I�031.."go �030y

:_ ; �030-alter�030table empleado K�0303I "add constraint ck_s_a1_249ee �031 r

',check(sa1;ar~�030i_o> QQEGE) �030 ;I at-�030wt-�030s_�030 �030 1

E ' t~

r "we, ' I1 ~'a}'e:!.'P.[ 3 t 1'�030. '~Z!WPE1�030¢�031-�030.�031.�0344>E�030W¥�030.'<'v.<:.o.w=a�030.~\v,-. - �030�030i

�030 �030..'-"P-$2,�030'~___._ f_4.__._...._..�030-.___.._- -7- ...:..a.._._ .�024�024_.__.�024--�024__...�024v-.._�024�024..e-»....�024v.�024_ 1:: ,¢ . . "Owe.-.::.1es:3v.:}401.~s�030.-�030:5-a.;'~.-7, V;-:\fz;�0304�030-"z-.&:¢::�030.°»ré\|,~§s-at-r:-'5e:'g.¢-mr-.. -are-rm 463'?�030-¥:Ova: =..

3 0 F1 8 P5,: 0 0 �034

Figura 6.9 Creacion de un check constraints. Fuente: Autor

ORACLE

Ejemplo: Tenemos un constraint que chequea el campo sexo.

alter table clientesadd constraint ck_sexocheck (sex in ('M', �030F�031,'m', 'f' )),

40

Page 42: §:Q:LServer2oos 3 (:: :3,»:. r;j

Resultadoz

No existen diferencias en el comando check constraint, en ambos SGBD.

6.2.2.2 DEFAULT (VALORES POR DEFECTO)

SQL Server

Ejemplo: Asignar un va|or por defecto a la columna nsssuper de la tabla

empleado haciendo que el codigo por defecto sea 333445555.i-.�031__�030-�0303�030£:�031Q'§.!f5§§�030Q1'I343325-arm'-I!!<A!1A."z.t5�030!!?!3J:.!$..aL&=}401jl;§gj§_�0309'é1fft'�254f�030£i¥'=_ _ f W Z - }401�034�024,~."�030_fnlaie-ix-vQ4.!!%'v-.¢.'-2I!tv'i»}401-\.I.v.-9-.-"-.5: W _;:1~ qua A-ma: msazx. -. a: M a» a. » ye ..;- 14;».-.-.»_.j~ ?*.=m.»'-he'«r:«4,r<;.IzC<1:*;:3u 1

C-rm:-«alts �030i. -- :';.�030'Ju<is'«sa:=.t»':!%:L*?::3., ' U�034�030°'�034�030~�0313-�034ea -

�024.<-�031a,<_2;;wm! 1 go (_ ;

¥-§;;$!e§;!;;'e.§§ l-alter�030table empleado _ VF add constraint DF_nsssuper ;

a-default 33':~m*s's's*s ~ 3;-�030fornsssuper _ �030 �030._ .

>;9sz.v'-. = I | ' «>5+J_'1.«».=.n ' '-2-e'.~=m .» a 2

v D 1- :.sum�035;; �030 5

. �030 iUl:.';§! , I 1311,.�030-.wV._. , i

�030 r�024!.�031}401*.=.%7!!!s; ,�030;0 =:;.r>.s.».<.e,-~... ,2

:r.;__1,.A3!es_*.45.'-.~,�030:%_!,~.�031\Iv._�030 r I!«t;¥&?1_HN:'£2 �030 . f

�030 1�030..§~�031£5#_9.=.>3..�030-'E�031.:�034 ; w

. �030 E

- .g,,,,, 0. . �031�030in., - . . �030i."e.~.e+~é..«ar*s. z;nea�030\.~s:�0305:'_a1=e.~1§.~.».;-.---ms 9!-er-s 2

�030ese.5 ,1 "»!.,' . 0

Figura 6.10 Creacion de un default. Fuente: Autor

ORACLE

Ejemplo: El salario por defecto para cualquier Empleado debe ser 1000.

Alter�030table employees

Modify ( salary default 1000)

Resultadoz

Hay diferencias en la sintéxis para otorgar un va|or por defecto en ambos

Gestores de Bases de Datos ya que en Oracle es necesario ingresar el

comando Modify.

41 M

Page 43: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.2.3 MODIFICACION DE TABLAS (ALTER TABLE)

6.2.3.1 MODIFICAR COLUMNAS

SQL Server

Ejemplo: Modifique el campo lugarp de la tabla Proyecto para asignarie

como tipo de datos varchar con longitud 20 y que no permita valores NULL

alter table proyecto

alter column lugarp varchar(2e) not null

Ejemplo: Agregue un campo presupuesto de tipo money a la tabla

Proyecto.

alter table proyecto

add presupuesto money

Ejemplo: Elimine la columna presupuesto de la tabla Proyecto.

alter table proyecto

drop column presupuesto

ORACLE

Ejemp|o: Modifique la tabla Countries para adicionar Ia columna zon de tipo

char.

alter table COUNTRIES add zon char(1);

Ejemplo: Modi}401quela tabla Countries para modificar Ia columna zon de tipo

char(1) a char(2)

alter table COUNTRIES modify zon char(2);

42

Page 44: §:Q:LServer2oos 3 (:: :3,»:. r;j

Ejemplo: Modifique la tabla Countries para eliminar la columna zon de tipo

char(1) a char(2)

alter table COUNTRIES modify drop column zon;

Resultado:

Hay diferencias en los comandos para modificacion y eliminacion de

columnas en ambos Gestores de Bases de Datos ya que en Oracle es

, necesario ingresar el comando Modify, pero no hay diferencias para

adicionar columnas. .

6.3 LENGUAJE DE MANIPULACION DE DATOS (DML)

6.3.1 INSERT

SQL Server

Ejemplo: Insertar un registro a la tabla Empleado. -

insert into

EMPLEADO(nombrep, inic, apellido, nss, fechan, direccion, sexo,salario,nsssuper,nd) values('José' , 'B' , �030Silva�031,'123456789', '09/01/1955', 'Fresnos

, 731,Higueras,MX' , �030M�031, 30000, ' 333445555�030, S)

ORACLE

Ejemplo: Insertar un registro a la tabla Departments.

insert into hr.departments(department_id,department_name, manager__id, 1ocation_id) values

(70, �030publicrelations�030,100, 1700);

Resultado:

No hay diferencias en el comando Insert en ambos Ienguajes algebraicos. _

43

Page 45: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.3.2 UPDATE »

SQL Server

Ejemplo: Actualizar la direccién del Empleado de nss 123456789

- UPDATE EMPLEADO

SET direccion = �030Turin654, Be1én,MX'

WHERE nss = '123456789'

ORACLE

Ejemplo: Actualizar el department_name de la tabla Departments.

update hr.departments

set department_name= ' Sistemas�030where department_id=60;

Resultado:

No hay diferencias en el comando Update para actualizar }401lasen ambos

Ienguajes algebraicos.

6.3.3 DELETE

SQL Server _

Ejemplo: Eliminar de la tabla Dependiente, a las mujeres

DELETE DEPENDIENTE

WHERE sexo = �030F�031

ORACLE

�031 delete from departmentswhere department_name = ' Finance�030;

Resultado:

Hay una peque}401adiferencia de sintaxis en el comando Delete, ya que en

SQL no requiere del from.

44

Page 46: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.3.4 SELECT

6.3.4.1 CONSULTAS BASICAS

SQL Server

Ejemplo: Obtener la fecha de nacimiento y la direccién del empleado cuyo

- nombre es José B. Silva.

:= f-.-�030mu~�030:&z<2::1r:!s�030:�030s%=2._- }401.�031Z_ �030°I�034."�030CB;..- .._�030A21.». .,-u .¢-.-«-ea.-um-aa,a. a. -v~ ;a�024 1 2- ,_ j"_-4 22;�031. �030:, 9; gr.-_r,-;-.d\__;_; Hp.-_~_m.. «:3.-..._,;rv.3.:_3.:,-aA),;~; 3:2�030:-C�030 }

a�254£.é~.s---J3S~�030_T, . . -. . 7 . . , . .�030yéiéiifékr 3 .-select fechan_,direccio_n_ ,

uégigam; " I from empleado f

�030 1 where nombr~ep=�030]osé'and inic='8' and ape1_1ido='Si1va' L: 8 I�034.! , ' Q _'

3 5 I -,; n|1|.1-3'.-an �030 _,. nllmdn ;; *; 9-�031IQ_.5_tm!v �030

�030 - .~..;»°.~.-::4.:s.=.t.:rq.~�024E _ '

; , 3

z ; �031r.*�031-e'<T1=:�035a'h (aim:-'2ei;x�030a7» "f

% % a@ss�024.@©~�024eteaemaamm mm: 7m,r+e§gw~as,z«>5< % '

f. 3 «:1 mes» a:sa=eewa»

1 * ' '�034�034'-»' �031 *' �030�035M �030-.- .�030 7 7 =e~:=:a'ér;:.9cc:mm. ¢g~_=¢�030s':.::P.!:<FY,».=:�030.r_-.»z.�024a:'.'--. -um ¥

�030[9G F: 1 E 55;; I _ % -

Figura 6.11 Consulta Basica. Fuente: Autor

Ejemplo: obtener el nombre y la direccién de todos los empleados que

trabajan para el depanamento de 'lnvestigaci6n'.

45

Page 47: §:Q:LServer2oos 3 (:: :3,»:. r;j

;_'!§1{�031.I'_�030.:s-V!l�030:3:.'7-21:.-§P�254lR�0301"lF_E"�030:�030;¥�030EI\7I2_3�0304V._7f�030::i::>.1-3-!23r""!"§¢�030H7!?'.e�031:_,�030 _Y _"_ �034"�030" - _ fl�031�035"_-7'),_L_�034___K�030___,,___».__3_m__M____3_ �024....T-., �030_

�031.'~.._a4 4.":-\Vx1.�034.'.;_".�030.As ;g,- ~ ..~ ,3 a _9_ ., :3, ;v._> M\_-.-!~t2<_�030-5____-3?!»-�024=-\"~:-i.§-d§�030g;_",.'}401:_"'_"_3?k§_�030__ _ __ _ V

' �034. >�030!¢f¢H-'."m§�030CL-9319+-Qt. - V _ _ -�024q _~ 4_N�030-�030_"""�030f""?;}401mmselect nor.-.br�030eP,3De11:i.do,dir~eccion

.,m.+.«>.; . from emp1eado,departa::entoI-!,�0309�030!1.*.. v , , , , ,._;,»;....,,,, . where nombred= Invest1gac1on and nd=nurrer~odIU-sarm I

I .1 II U �030Viri-our:-uh-.

*�024£_�030!!.v"I---L='.-\'v1*5n:».:.. __;vq_a_4_,u_. I

-I -;A-m-�030Inn-."J~�034�030§"�030�035"�030mu \- . .~-;'!~!~.-4*. '- ~ -gvammn : -J-M52, __ _ __ __ __ _.. ______ __ _______ __ __

Federico vizeama Y-;~.n'e 553, |H'1guer~a�030s,n3<Zrc�030s�030e'fe ?E�030spah2a vssilvasghrr ¢�030as�030s<,is>a�030nac,|P'ama». rum Erpiga -87$, F.-1�031er~a3,*.¢:)�030< =

('4 rwts) a?ir'¢e\'e'd)

I 321�030«- - - .

s - . .�030ru,vs-.-e�030-A~.'.'»:'-..! '¢-'wer.5¢.t�030-�0301:¢..�030Jcn}401,;l�030(I§r.'°.�030g1�030:I!-.-«:6-a vwxa be-7

. EA _ �030�034"":n/mu

Figura 6.12 Consulta multitabla. Fuente: Autor

Ejemplo: Obtener el nombre y la direccién de todos los empleados que

trabajan para el departamento de 'investigaci6n'.

F�030*:k""-RN11 "'-.¢- �030¢H*'~'-u�030*-�030--

*~ .,a.o gm-z-.9 -.;�024.=,:-.1 s s,- - ..~ an - 1 a as. o'~.*1 5:-m'-a __ V "!4:9u 5 �030.~1- ..a - d . �030:.35 Q :,"2 13 K a

r - . �034'_ '!�254.�031v(~.-t.~_=.s:§Jv.6v.'4."yv»<~oow1§:t'- ,.;;¥:�030,;m:(.~}402_Nselect nor:brep,ape]_.11_do,direccion ,

�030...:_�030{o.__o'-.-n3-5�030' from(enp.l.eado join departamento on nd-vnuzaerod)I where non-.bred='Investigaci6n' ,

�030FJ '1!-ad--INJ qwvk |n'._1'Q-'45Ida:-dz; �030

.a.._LT§'1:'.Wf .~ .L"!m�030:w_vo.~.¢¥-._l_,�031W'.¥eIP.'-ov-._I,MI-NI!�030-'-"¢ _

a.;i~v-up--.*. wk �030_ _u_j,l}401-140-"r<--

J'�254!L�030!r'M!!l» J"'RP=__ _______ __ __ _ _________ _____ ._ ______ ____. _ _____ __ .______ _____ __

. F4a<d'e1�030i�031co Vite-ama V-�030ail;-.»-653., Iamgw.:2r~a�030s,m �031' �0303'c�030s'<-'-fa zssparca |6ai!l-�030aghbrss~sa,t¢sanao.,Ip:

Rama». rum E"spi*ga ms, H'er~a%,�031.�03037< -

(Q n"'bv.{-�030$3za¥?fvét'te�030."!)l .

,.,._ ,. . .4. - . D�030!:vMr�031/-eh-:rm"<,t_ �030E-�030=1(�030-!I�031.�030:-}401.'l..�030.'�034/"H.gwsb-:.�030a:;w.&'30-v�030.I'« this

Figura 6.13 Consulta multitabla usando join. Fuente: Autor

46 W�031

Page 48: §:Q:LServer2oos 3 (:: :3,»:. r;j

Ejemplo: para cada proyecto ubicado en �030Santiago�031,listar el namero del

proyecto, el numero del departamento controlador y el apellido, la

direccién y la fecha de nacimiento del gerente de ese departamento.

i�031"!2f¢.tI".�030-*8�030-�030Ji=:=:n:-=.;.;.'-'-gn:..u.¢-;:;u:m:;;--�030::::�030:i;.!a<¢«�030*t-1;4W¢;:*::?_ __ V 7__ �030_M :«.- -- 4,. MT?» �030�034' �030 *4 " �034" �030J�0304.3�031-l""?}401I./Lgi, .7 v �030\ Q.�0301 7- '�024 52�031:,7".

u�030-we-.1-V-, _�030:_f«!'«.~."«."-�030~1~a'J--.":L�030_�031aQ:�030;:g:|;. __

""" �031�030-�031.-�030:1:-.vq�030;~9q<�024'�254A:�030.\.*guq�024:asasy:'s:i�030' _ V _ >

f".�031}402';_:m- select n,u:r.e_rop, nun-d, apellido, direccion, fechan .from ((proyecto join departamento on nu;::d=nu:s:_erod) join �030

73�034 empleado on nssg_te=nss) -where Inga�030:-*p='Santiago' �030

. " .1 '9?!�031 I=- J :9 .

-~L_1_'a::mV .*~4e.5.'!W':v--1�030=!!-an'~ ~J_*�030='-'97!' .

- ..§'!l'.�030!!--J:'=?!A�030:,________,____.___.___,_____-____.________.__.__.__.__j__.__._.

c�0311unre're:,�031ama}401a aa1;:ré1'1�031i'ém fai}401areeien �030i}401ezlzyzarn �030

�030 re a velaés ewe "am 'ae1'3a.-,m�031< 1931--93-awM �030ye /A value�030: Dawn �030£91-,raéi}401rnwc =1'9'31s@ra-aw ~

(22 N'5:I.�030('S)2aif�030£<y:'1<erd) _.

x s . ;:.«"eretc-r.>:=:rei:"-.:'_« �030:'�024"r."-'..$:-'»�030c�030-...3�030P\�034.i�030.30:-saw:-V:1_-9.-A.-even-\ '.-as I

. A _�030:, H .__< �034 X5 "" 5

Figura 6.14 Consulta multitabla usando join. Fuente: Autor

ORACLE

Ejemplo: Mostrar los Empieados que ganen menos de 1000.

It I0 99' EN?�035BF�030(NW 505!!! his E0

3480 an sue ma. :1. 3:;�030Inn-ahaT I1¢mu.g;_ ')aa«:s.4 �0301omu2.s4_J�030|sq,mvmmsuU,|m<unu¢_ _

Y3.�030-H�030P-1l..'!�030!°.?_�034n!.='�030S'9E?E"~E* _ , __ ._ .. _ . .- _ -_. .. '9-"Wm. �030magnum: �030'

2,. select 1�030ast_r.a::«.-,salary �030.6 ""1" fr-.:n h.r.e":.pZ JYGBS '! where sa_ia:y < 3300: l

/_/between r _ . '

;'.....I;[...,.T,[u;.;n..I._=a......; 5_~...;..'.. " �031�030" _ ' �030' ' �030 " 'nuts:

J..u$u1~'£fJ.su,m 1I0".nrnJ 500 4�030

�030 211�030 3«Mn: an 'Srhn sou

' Iainvtu }402t

1lItkuv PM

Ili}402i NW '

nun: mo�030 ll}402}401lvl }402

Il}402l}401}402E!!!

} com um �030uncut; Em

I1& 2101 �030:1

I u..'.""�034"�034�030*9�031�034"95 :.,_._____:.j__ } ! _

I »VI'E'Gl�030J - -_ - . i

Figura 6.15 Consulta Bésica. Fuente: Autor

47 M

Page 49: §:Q:LServer2oos 3 (:: :3,»:. r;j

Ejemplo: Mostrar nombre de Departamento y ciudad de los

Departamentos. .

%U! W R�030Po? kn D550 I

.3uB.6\ -on sun §r*�030C .9:-and Sauna db-van S-s_w-xi»-4 }402u-em.u I:

�030am.- 1'; g o.�254nsu_:gl:saun&s __ ,,,g.�024v'

.3u mu . ' .

!�034"'!�030"m"-�024conccndic-ionI �024-.az':c1r P I

�030 5919"!�031dep.a.rt: ent name, city " AF fr;:: br._-:1epart.." sntz, hr._1o-;a.t;;n: 1

- �030 �030x-�030taredc~parT-.1r.:-n�030::.lcea}401.ieni;�030.--loeat-.:Lon5..1o'.=atxe|(1_ id.'- 1

< ,_._,; :__. T .- .7 7 , __';7 . _; ,: .,_:.:*, _. :. ;;_: �030*_�030...J

9 VI! t}401}402ll}402lljlltian 7 I= 19¢-nu sans: :: zstma sums-wwnnv �030�030 S}401hiinlkbl Salli

| «amen sum. �030

w 3:�030?:: gI nuumu Smut �030

Ii.".�030;..�031T"..,..3 -1 �030IOCMBHIJIXOEQ 5:30! |

T _ Ilse»;-~:.4==~=:7..~. .-T .. . ..~_. . [T . T .-T __ . . W .�024')&£Yd:27 Jul�035 �030QIQIIIIIZ IJGVI Ed �030lh%:I�031�031

Figura 6.16 Consulta multitabla. Fuente: Autor

Ejemplo: Mostrar nombre de Departamento y ciudad de los

Departamentos.

ummvuwnzsnnrunswelaaktsb

,"_h.:B3.'-i'7.IIZ�0301to~o-~=;- #3�031T*�0300xu-uaams Z '.1_0or$:3.sl ummsa -he-u.:_s1 Elsunmn.-u .'<I:h'd:i:I.¢d 7�030

244. 7-�030 L.-7'11"�031-_�030£_;'T'}402';_£-�031__1»>'_@;--=i.____...__..______."$9.9�03019*-=*=..._-.,.___. .___....._........__.__...,_.._,.-_... - _-.._....._.._,_._______._.j

Lg} ;«~ ' " '-Fax �024�024�030..._L....ms.1 �030 �030t .N:

l lseuec-t depar.:rer.t �030nave,C1-.y �030 , '

I ;fr::. hr.d«.�024p.a:t_"�030.�030r.t:snatural �030J15!h.r.1oc1t;3r.:,; '. ,I T: ~�024�024�024~�024-�024�024�024�024�024�024�024~«~�024~�024�024~~~�024~�024~«�024~-~~ �024«-

i H scrvcntzu Utuad}402umnrzuinecmat 9, trauma; |A-.-nAs=.___,,-__,--________,__________,-.__ .. _ _ ,,_.,___.�030_.._.___.____

Q!�030aouurewcn-:1 cm IIsaiah: Same» A

! 29}401q SulhSI1RIl}402&o

1 autumn Esme 'omaaq seam �030

- snceam: Seoul

; 2"-_.,.. 2:; D »l}401ann teams

3 3 ,I lI9widhSaM:u snmb

| ::::':;,., :2: 1�030 IlCnd1\.di|'I hulk �030

' Ascamm mu: �0311 ' mop:-nrs_ , sauna �030 v

�030 �030�024|.

IIr6tY!d:27 W llli}402flillllDam Mxlhd �030Mina: u .

Figura 6.17 Consulta multitabla usando natural join. Fuente: Autor

48

Page 50: §:Q:LServer2oos 3 (:: :3,»:. r;j

Ejemplo: Mostrar Apellidos y Departamento de origen de los Empleados.

IEOII'F\}401II1IIL¢Mv5!l'¢I°*l»3-caso"-10:0-Q--51.. 5f�034"�024'la}402mwuun2" :'Iummd 2'»!-via.-1 :1»-emu '1-u_a-um-a !�030|-rum.-d I�0304-«I _?i1"«!°_'_~> __3_bD Q wmzu-gr-2 _,__ _ ,, ___ __ _ �030 . mg-'frrrr" °'-"�031°"*"�030 . «

�030A(I up 'I�034-�030lwan V , I

.011 :q.

select last__n3_r.'c, 1cpar'cm¢n�030:_x:..am: I

I fro: nr.rnplc�030/m'sA zntt outnr )c-1n mac p1rt::*r.t.~s B on �030J

1 (A.':le;1r�030pen'_1;�030=!2.G:-p.:.r":nt_1d) I l

' J51�030:-:s�031|Js-vutuzaa}401ucutu-�030DzLn:::u.Dz:usoau:}402our-ma: �030' 1

I MSUWCI l'OnRY|Dl|_)W(

, ;., mm�035Human mint:-4

Q aaahncu rumw

| 3...? m 9T}401}401ll}401ltvo

Ivan ammo

, Old-9: man

I l}402}402lwkmvmnmwus

I IIFIIVIY, nzwm sum 1. _ .121.-_i9-�031-.�024....__-.. -- ._ .. . _. _ _ . . . -'

rumuas-um �030:4 _*_ ______j_ _______u-_s1s<\:ntn~7a:__n-«____vu:au1_w~«na-r,,t1ar 1:]

_ K155 - , .

Figura 6.18 Consulta multitabla usando outer join. Fuente: Autor

Resultado

No hay diferencias en cuanto a Sentencias Bésicas en ambos SGBD.

6.3.4.2 MANEJO DE NOMBRES DE ATRIBUTOS AMBIGUOS

SQL Server

Ejemplo: Para cada empleado, obtener su nombre de pila y apellido y el

nombre de pila y apellido de su supervisor inmediato.

J*V ..:d�030-Iaw--em.�030.,'�030.;4.I.\ -- at :2 s Is. -4.,> w -:4-,-i-�030._,____V__: !I.- -1. D 9-L-4 v .4 n J . " . . .3, ' jg; A �031___*_

"�030;.._:.�030".fcE,:�035lV_�030i1|-'}402.,7I�030r!~:-wé¥:1I�031- _ _ .,""'uf�034;.':vselect e.ape11,ido as no:::bre__cr:p1ea.do,s.apcl1ido as r:o:.bre_super-�030visor

from empleado as e, eInp.l_e.:do as 5

:j_�030:;,_' where e. nsssuper_�030=s. ns-s �030

$.33" ' order by e.ape11ido �030�0301-3;:

-e _g._ ..| �024!.¥I:iI .' 43*�030:ugfn. -. - -. u

�030 ::%'2;�030.-�030!;1�031 ;-;3__n h'o?.'(I:T�030%_el\}.3§%3'c3bs-.�030cs1u!.w<e_*su:,:r¢2-\c.'1:sw~

.__S1_r;1_v .----;...---;.-v.�024.;-----;«..-.-.--»_;.-

's'¢t*e1&<¢ �030Silva�030 Eszpa?/z«a \�031/212-z:'av~r�030:~a

-td}401bar WaltaesM-era "~5':�030vzQ'eN*'a�030ssiw \�030/izrcewm I\'e1@§s Bc}401lib .

J"~7'\ ~- --. - -. 3 {ans a-e-.,w:¢-.:.-udwv !-'6.�031-SB:-'1r�030.�030x.�030~-On.g_s-.-vars.-*~.~;o:1z: ':¢~:1"V>i has

T �030a ma * re ' �030�034�030T * a T T �024 �034

Figura 6.19 Consulta multitabla de una tabla recursiva. Fuente: Autor

49 }402p/

Page 51: §:Q:LServer2oos 3 (:: :3,»:. r;j

ORACLE

Ejemplo: Mostrar datos de los Empleados y su Jefe.

I_Evp}401.�031a".g;aFu;aE.ia"r§;%.Tm&s.1§oEe§'7ioa£'Q;§»" "' " �035'�035�031" " '" �030' �030A ' �030Bags -20- awn: O=0~ '3:- 2 "

5§'{�030I=�0306�254-W: PM-}401r =-a:;aa;.:a wasgTpL___.a9ra..ao am; 0, -�031oIoa'a's1�0316-saaics ;.,..;.._»

SS�034; %; �034'�0317I�024�024aouterjoin-�024joinde la tabla consigo mi.sma�024�024unatabla 1a puedo subir 2 veces :

'iselect emp..employee_id,ernp-.1ast;_name empleado, I

éjeff-.lasté.na'me JEEE

'ifrom_;hr-.eI:q2loysesT9rup, J19-<eTmploy~e_<:_s jg: __T, __ T T_�024 _ T__ _,T _ TTTTT T,TTT

@:@;}401@a:gfe;_i3i:3i�254fiém;§v§:e;i§}402,__,~.T,T. _-T_. _TT __._TT_T _ _TT_

I "~�024-�024»' "R,'__:.!. . .,. 2.3:,

1: }401ifrcy }401siaa. f-�030 & iiasasu

_ 7: lxfvhii}401i "hi:'4 histsfu}402 WeVs 'I'r�030r�030aiv'a�030u:n'|c}401:

�030 '5 1ro's�030n§6'~iis 5?-�030oV 7 'I7s�030m�034afI�030Wuf It Ifzweu-7.-2 rm

'1: |fz�0353�03095Iu7u�030»�030}401n_ um Irzmva M:

�030ii 'i2'|'?v}4012 'fJ\i: .�030

T�034:-�024�024-*:*~*-'�024-�024~�031v-�024-�024~�024�024~�024-�024-�024�024-�024--�024�024�024�024�024�024--�024�024�024-�024�024V

"'9 -..~ T V T - V I T T �034"-*3*£'r§%

Figura 6.20 Consulta multitabla de una tabla recursiva. Fuente: Autor

Resultado:

No hay diferencias en cuanto al manejo de nombres de atributos ambiguos

en ambos gestores de bases de datos.

6.3.4.3 CLAUSULAS WHERE NO ESPECIFICADAS Y EMPLEO DE *

SQL Server

Ejemplo: Obtener los valores de todos los atributos de las tuplas de

empleados que pertenecen al departamento 5.

�030:o1~.=-:-:zs:..a, 2m,mw.LD_=i>}401S!e3�0301I&�031*A-}401x�034-+».r-.. ca ». T T T T . ie:w;t:_�034_'_.____-4-=1%.*_?r'r.c-1.~-.1 !

S�031i"�031E":�030-select "�030 ','39:1 from eI.m21.eaT.d;o, H. an!�031 . �030

�034 am where r_-1¢=_$ =- ma - T�030 In 3 4 �030!

V DU; . _ 1ca}402_ ]

}402gggh�030 �0305�030 31631, I? - ;

-�024 ms ~- _ - x1 3% 5-="=*~�030=L�024�024L~�024�024.~�024-»�024�024«-.. . '---**-~-�030�024-�024-'--~�030-�024-~*--*-�030--L-*-._w~+-�024�024.�024~�024~�024_.~�024_�0301 f*'_�031�024�031*"f '_�031§§______ __ __ __ �035=�030-="«�031**�030=�030-'?*�0301"�0243:�030I -5 ram mrssxe-».eu=w.:;»:e.sz~Je..~1 new-TI.iZ.i 9�030 ,- Ir�030-z4.-:rs-im *; V-iz_<:~3:m I'$�034}401_0!h�0303i;�030§5¥!'t!'5-19�030:-�024�030a?zwing 698..., *L'w;wr~1}401..,I*9.I: er 7�030

5 �0301 /.1 I;=az-2r~z_~2 &�030«!657:�024Q7.�031-231 Q�030:-l3Hf;""~�030JP$c'ia_I5¥!.N3.Q.,'.¥é P9.a T; K; vtqxqé ¢m=.fs.>tvzIvc».'s2>.«�024.e9.:-Jar; '92., imam on L1

(m r.~2v.(�254),~:;I4}401:<z':-M.- '

' pi n _ is.n .. -.m.weszss.-4mn~a,' A �030

cT.-=_--.-...T_'T__:_;".';_. :;Tj._TTj�034_ 7�030;.: �031 T _.-I__.:�030._�030;.[.'_ #.. _i..T ____'_}t:.*:.

ca as �030E�034 ' ~« ~- m':;:.,�030_�030Figura 6.21 Consulta usando la clausula Where. Fuente: Autor

50 63$

Page 52: §:Q:LServer2oos 3 (:: :3,»:. r;j

Ejemplo: Obtener todos los atributos de las tuplas de empleados que

pertenecen al departamento '|nvestigaci6n'.

Jr: _9~.. ..3.¢ .Mnc2a-v. J:-:3,-,h,a,. Luv ,3 - um» :1 r. .3; �031 �031�0351: 4:(~-,'»».-_-�030_+»�024. \

5 �031*"-"�030W�030«<°.-*-�034-¥'}401"�024+. e1»: "<. mam-X �030

" uselect * E

�030egg:from empleado, departamento. : "31%�030_where nombr�030ed='Investigaci6n'and nd_=numerQd *1

in - �031 7£93 �030B0 �030

aD_,8-.= . �030�030 (BE. - ' Q

wt. ~- -2 HQ. -.5»:-.-..-.�031_ _ _ _ __ g

' : 3.93.1�031: as $5;I.v.:z aawzm 2:.L5.:s-wzlau mvmrs �030Ir3.»1,\|4rB;*¢e.:?-22.11:: en X�0301 -2 l'=�2543¢.P~i;«z- T�030WL7£GH�031*�031% 1.�030!�030t'5-�0241.&-�02417¢�030(%é1!<é°.3.$,»,*4-i_'g¢<.=!?~7¢%._!9ak If? 5�030 nsefn A 1;9.6.?r12v�030-3:11012-'.Q!M.Q~.Qe9 �030iv!-\3R�254;�030K=.!?6133.4:-*»1.r.v<f3>_.,I!1�030z I9 �030;

It }402.iQ«§S2 E237:-Q2:-1% Iain}: �030£73.,Ilia?-1-'s.'9F< E? 'u

(m a}401factertlr I 1

.p .. 'em:u2o.1+.-madw- V ' V 7 «nu emu. t-=.-an 1

�034mi. 7 �030 �030 I I . V \

«$5 6 {'31. Eur �030 -< " .4-�034A-x_7Figura 6.22 Consulta usando Ia clausula Where y el operador and.

Fuente: AutorORACLE

Ejemplo: Mostrar los Empleados con fecha de contrato 1996.

-69 .l"'_:1'°*."-°,r'¢:~_£9",I1'!*v_=:-r2.!.°-*�030vv ,2 . , . , 2 29°33 '9'�030*0�030?°?°:'5�031-- 2 _. . _ . . ,_ .. ..-L»v»:.�030�034T;ts�030:�034~,:;;;a,T-a�034»;:s3a.«»«;;:u .___ __._ _.__ _- _._____ __ _zmv �030D9900803. 6- o.o¢m2v-cm .u-is-V

�031}o«,a,§ot_2-EH14: , ,,. , ,,, ,. , __.. _, ,, _. _,. _ 2. ,, ,2. ,_ _. ._,.. ,1E I//like

I�030°�035'�035'1 select *

from hznemployees

' where hire_date LIKE '%96';

I 7�031?-�030"3?-§';�031?,2�035.:zii:�0307�030:�024;;i4;?§;i.T2:?::_7é_gmm»mgm.:e;m:;.2¢mw2 ,

I �030L1.p-new-,2.->.J_, r�030-su-,4_s<'J,iA,sv,.'v«-�030v:�031¢�030,'9«,n'.:l1w-zguj-,im.og,:3 :,og.u.Ll.,s�031wv_�030-1,cdusu&«)OQ.MNM84J>§i.h§1¥V"¢«..Ii I»- �030-39 M ".'°° T5�030 5-!: -mminai. was �030maséoiunimi mrhne s�030v_�031,Mu um om -nub '51 .a iisuiiva his �030iillmemunffvin �030r�030«�030)hs�031i!ss�030t;<i:'m: �030(Ali �030:22 �030En -

i �030H Elna». }401lis}402iw'.$ Ufl}402wliiélszniasbint}401m Wvui) 'h.�0301 am �030so �0305 Yissii-i}402zo min -11:55 dI'Ifv'1fIS1s.H2~m6':w'mIi6 s'A_)b Tim -6.! FM 760 -�031e =1�030:/min 9}; v}401udflfiaiiitaaiwudtlui}401b �030vsan �030O45 {A6 1!) H

'7 »|'§b'I�030l§u Train on:«::sasma'mm§e ixajzr 'm 71,: �030:16 �030ml at '4�030/439. its 'z'A'i(1 '6I'1f1�030a.'Is�030a'1.1z�031§2'5'7�030:�030:1Ei!a{gin 7I�030I'o'6n Q7}: 1'1�030; «'30. �030Ia »zb-�030ru}401-sfdéi �030»s�0301�030noKN�031&fsm.�030l'n�030rsiiidf}401e-9<;d.:-Rx �030czoo (M) -:5: �030$2 |I -m ~l92'sv�030b» �030cit �030}401sh.�030}401hlsbnfnkn'6¢;uz/B5 3sn_'c&'Idx �030iunb �030(No 1?�030: "in �030

"�034°""', , , ,. _. ,, - ,, �034SW ,,"1 re A '�034. . . ' 417%

Figura 6.23 Consulta usando * y la clausula Where. Fuente: Autor

Resultado:

No hay diferencias en cuanto al manejo de clausulas where no

especificadas y empleo de *, en ambos gestores de bases de datos.

51 w}402

Page 53: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.3.4.4 TABLAS COMO CONJUNTOS EN SQL

SQL Server

Ejemplo: Obtener el salario de todos los empleados.

�030ab.:35 rag�030;\.,._., -;Tg"?;,~.. ' �034""""�034'' ' �035 "�034�034�030" " "

.1 �030.'~.._JJ 2--y-me g�024.:.,';'.,,-. 3, .L~ 2_ r. 3; '1 72:. i».�030 ,' :4 pm-,-._A, #4 v awe» I sen. �024 Q -. a . "; :;_2' .1 ' ~~ 3-; zv- _w_ _ V

: " F«;::e-,=-'es..r'«1i-<-m'-».'.:1'-�030-_ . .3, _, ,_,, , ._ .,, W G _,_, _ ,, _, _ -1;�0307"-"*�030�034? select salario . �030_�030#3?from empleado ' \

�031 1:5. 2H1 . g

'. �034J ~ .; :;i TI:-i=3.-?._ ___ _ _,_-__-.__ _.__ ,,__ __ __ _- pf; M rsanaries '» I '< �030 -.\-5'.-raw - .1-I. i�030£'-�030a'I�030L'-.311. a - 4.-a-sun --.31 - -'i�030L':.' .~. �030

: "jg 4L'@'�254fG!0~.(3�031e ;�031 1= asmcm 1

sse%�024.©'e 1_: * 4+%m;©?a ,

f . _eat. ~- - �031

. . J :1-,2-5.»:-'5�031: :s'!=3.ar.:..«: '::�024.a}402-.-�031i::-5.";a"-11!�030:c-¢-ms. arm V

O 0 £1; £1 £';E_«; �024«--=;,::;.,.}

Figura 6.24 Consulta usando Ia tabla Empleado. Fuente: Autor '

Ejemplo: Obtener salarios distintos de empleados.T '{C"'f:*.�031e"_*.�031E9:'-L24�030-=.�030.I3C�024.�030_-;".'i.�030.:va9}402J)i_£:?§£):17f1}:.-�030:,;_::£!2.!!".: V�030-T*ig�254"9�030:(>..:'-E____L_ ,3", V 7 _J__ 7 E117�030rm(-f\ vqp. �030égqw0.»,-.3 yqeq M�030-.. �030-H�030;-A-an �031 �034"" " ' ' �030�031' �034�034�034' ""' ""�034�034'

F 7�030~.-34 -I"-!"M> -"-1'». 4�030mix ' ~ -u 1.- '3 9. �031., - I-=*v'-';.'c!:.-.~\}401-,\/V__(,_-Y'."~�024"'»'-�030.§4�0301-e,__- -r .','*.;f.¢_);§ -33 l==,__________ _�030

I 2�030.i:;~sims,-.-"eva.~.rs1°r=- _ I 7 _,,_,___u____,�030 , ____,_ _ I�030_�030;"�030»V select distinct sa-lar-io _ 3

~ 4.315;" from empleado �030-Iw 1.; 5; ru �030 , J.3 I L] �030.z,_,_._. .

c I;:J".x:»=.�031-2e1L____,n,__..____ __..___,__c_ _.___ __c_____ 1-�031__ ____c ;--=3! salirrie �030'«ea .

«Id .1, '-I: -; .- 4';-3':-_*'a-.-s'a-a*a':'x'a - as:-.-:. a .-:1�034.-.a-A�031.'a'-.-4-;-:-- --.

1 ii... aszmmse ' . =; �030SL3�031=.§eaere...@'e' I '-$'8'�254@0.©'G L

»z'e'e%«a'e .T - asmam _;K s9wa..e'<a i, r .- ~ (6 mes) cmem» _ 5

�030mm~- -s ' - -J tram�031-�030eM%�0302r'r�254!~":' 5�030-"5£�030�024!|'&:-5�030:-.'..�030;*v%'gt-::i�030r.-�030�024'f�030{N!?'-'.-».'-ups�030-3.u.e:..-3. Ls-;-2, _

�030O0 ' ~51 7 JFigura 6.25 Listar salarios diferentes. Fuente: Autor

52 7

Page 54: §:Q:LServer2oos 3 (:: :3,»:. r;j

ORACLE

Ejemplo: Listar el cédigo de Departamento de la tabla Empleado.

=D M be�030won an who Sam! [M1 In

.3669 ta.-.:u:.I: q.o.'>.�024 :,�030Roar-canC Inna-ad luau-:4 in-ma.-1 U-4_wvutm.-u vdauwnu _-'...l-2:�030. _>'.�030._G}402vO3"! 9- _ _ _ > __ V >__ __ _ _�030_ _ ___qI5«gaf.Hanan Eu_r-sass--v-= .

718:. 7 i!�0307Q-no '

�030 //t;!.A: :!up.�0301c.ar1.-1. |

l ::-*:1c':�030.d.pa.rt:r::t_ ii I

' from b.r.em.p1:y:-cs: |

�031 "'-�024�024�024--�024-�024'-

ugh. 1 IU! }402cwalv-Dn_p _ I

I i �030 2 �034' 3 no | �030

| 16 1:- .___rz , . . _ 6 J I �030J'.�031..�031u.g

Fdriui}402n-r}402 Irrtatnanu In-rt Ila!�030-rdvan-nu» -' ~

Figura 6.26 Mostrar con filas duplicadas. Fuente: Autor

Ejemplo: Listar cédigos diferentes de Departamento de la tabla Empleado

Earea:-uwnammmusxnexaaua ';y..»ua-or-w.3Lq-o»~:.- Ir,»q¢.......,.�0310 g.{...a'.a..; um�034v»»..u.~.T .1-u_u-T".4 u...Ia..�030.~'_ '3M--'=~ .N~|°5'L<>_ '3!�0314:. new-=»~«= . . . - _ _ . ._ __ __ ,-r-aw�030

�030M-i}401ldnlnga_ ___r_ H�031�030' -

,.u L _ '; :yaw�035zen.-ct d1.3t.\n..*. depart")-:'.'. ml _

' trur. hr . amp} Oyech : 1

] 5_'Sav0l>:�030oumU~t:auoW_nu-sorpi}402ovnang-x . . -

�030 �030uninoumonJn_' II I III! -_

I a : 4:| l 4 HI

5 7|)

' ; : 3::�031 * i 32

7�030 m an

I 2 :2I I

I I�030�030lw-�024- .- �024- _-. - . _ . _ -V|

Ollhuliemoc ll uencmmx mun Imam Via-n: . 1.. .

Figura 6.27 Mostrar con }401lasdiferentes. Fuente: Autor

Resultado:

No hay diferencias en cuanto a tablas como conjuntos en ambos Ienguajes

algebraicos.

53 W-

Page 55: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.3.4.5 CONSULTAS ANIDADAS Y COMPARACIONES DE

CONJUNTOS

SQL Server

Ejemplo: Preparar una lista con todos los nameros de los proyectos en los '

que participa un empleado de apellido 'Vizcarra', sea como trabajador o

como Gerente del departamento que oontrola el proyecto.

[_9.-§f§;:_�030(-".1.-'1-l§�030L¢.::LKv2e;�031$.:mx!*3-gg$.L1;.I:£�030;sy:;!:':§5;�030-',�030.;':::-fgggzlf}401ftg}402i�030-;�254:.B�030E, , ______,______ �030V _'_�030___._:__,__.V_,as. -.~_«. 2-n -7%..zs-w K51 *�024�030 �031 '

fr: v~ .a,-J-I A-wm .- 4»,-.\.u. « 1; ».~ a.- 2- .9. ._ .- _ = :24» .9», ..�030 (4 u__a_z5.g_._,, -. !*am¢.\_ !.l�031.'.'+§.. .'J_.-. 4. :_":;}_:' Q -' *- 1-1 in .7 _ _ 3

-select distinct nuyterop ,H"-LE�030;' from proyecto .�030;

�034 i*I_I. 5 . '

�030 4..;; where nus.-.er~op 1n(se1ect nuenenop �030:1; :3: '. from proyecto, departamento, empleadoi :3 where numd=nu:!:e_r.�030odand n_ssg:t;e_=nss and ape1_1ido='Vizcarra')

I 3:�030:~" °"3�030:-I;'=.s3 nuraerop in (select nunp4-...§T»I»�030_ from evmp1ea,do._proy£-cto, empleado ;

; �034E�030§a;',§ _ where nss.e=nss and ape11ido='Vizcarra') _ _ _ _ .§: -_e.e.~.. ' - �030:�030 iz}402tahl __ _____¥ __ _, �030~

�030 . >2 9w V

3 QQN _ �030T-:*..*».�034«- -

. w J 3f¢!?.',!-¥!.!2!"I:°.'.}402.¥;. �030 �030 �030.~�030.!'.'.I¢2t.>:$A<°.�030-�030.9:'§~F:z!r':-"D'!_§':¢'2~'. :e"e.~:n was

�034WV. ,�030mMW if . 7 . * 7 M .. . . -V .

�030BG 91 {=1 �030.2 �031 :~.?:::;

Figura 6.28 Muestra consultas anidadas. Fuente: Autor

54W

Page 56: §:Q:LServer2oos 3 (:: :3,»:. r;j

Ejemplo: Obtener los nombres de los empleados cuyo salario es mayor

que el de todos los empleados del departamento 5.

; �030!»;'.x�030_:n'_\f' '«'f'_Y'3_umr- em N.-¢ z->1!--2 N-�030Gib

9* ..JJ .L*'IrQm -_,,,'.';,i_-_ ~. -; o..* 1 �031 �030|_ * '-'3» .7�030.

. ««~r=*:«_ ___:! -�034"2-.2--1-'-3'-Q "11*»-____ , _____ _. -' �035�030ec:.:sa_-m�030�0244. ac-yq-e»L~.:'sz.�030- \

» °':;_�030__\ select ape],1i,do,no.-:.br*ep _.4 from empleado

I": where salario > a11(se1ect salario from e:.-.p1_eado where nd='5)

{ii �030I J:4

. ._!�030:54

».;.g,_ -9.;54*.L!lv- _ugh L __, ,

51: :_';_'L_i>j__�024_�030_ H _ ___1____�030______ __ _ W ____�030_i_____H

aave'1-1'1=ao Womb�030r~e�030p '

Bdtellvc Jaimevccal-as -3-amin

_�034(2_ l�030*¢ut(�031*sl.ari}401er¢'t4.-6'» . -o u '.):eI.I-1'r.~.-�030e!s:'.-.'2:r: �030£'L�030=_»1'sM:�030.':'.�030x.-'r~\-\_-*u&1:.'J.*gr5u-- if-'39�030:W~V!% tvu

. . I ., H ' "": ~33:

Figura 6.29 Consulta usando la palabra ALL con operador >. Fuente: Autor

Ejemplo: Obtener el nombre de todos los empleados que tienen un

dependiente con el mismo sexo que el empleado.{ �030£3.31-,r.oQJ-1.-r»s;s:=r..«n.aA.1..ru-.-'-:g;m.:£. '_=':t9"£:*u:-u-"*1-tgc-4�030-:?.s;u*: ___T_ _?____�030_x __ __ !-L: '=�030{_7'1D\l'_�030_§"-V-rQ-911!-c",'-,5-ugh-\-'�024~�030«|¢ �030 "' " '

_1~ .,a.v 4-aw -.\...1.-,�034~,!.3�030~ .a- a_.- .2 ~ �030.5.:1.�030, tr-ago-�030-s_____~!n»~-v~.~n -.,-J.-1 :_�030..J:�030;'.r.!l;___

�030!Q£~§4:lv}.qt?!-�030tcynvbw�031-52.�030-select e.no::brep, e.ape11ido _

" =-..'_~,93 from empleado e, dependiente dwhere e.ns-s = d.ns�024seand e.sexo=d.sexo �030

J.'-�030I:

1.._!,*.l

c:_1:§

«.4 .

13 '-Ev: �030__ _________�030MA ______* __ ____' U

wc1n'b'r\z;5 apellieo '

Icsé Silvan-�034eoerivco *«.7i2<<arr~a

I

3 M('2_ maé-sh »aH'~e'&'t'-66) _ -~ - 3�030:_n.-w2:4.-:.:':m°.e *�254N;t'.�024!£-:$:..."+:-M1_»4':�030sie'a:�0305'."gt-42'»,--vain; Ir-as

O O ' " ' _ _ - 2' ~ = .,;:r.., IFigura 6.30 Muestra consultas anidadas. Fuente: Autor

55

Page 57: §:Q:LServer2oos 3 (:: :3,»:. r;j

ORACLE

Ejemplo: Realizar una consulta que muestre el empleado con el menor

salario.

5�030.�034�031a�030;.':�030$"£�031?.�031�030..�030.�030_�031f�030�030.'11.. �030:-*�034\(4nu:}4017I 7 }402u-on-I�030El-msuu3 when 3.�030vd,w2wI.n¢93'.qniuvuv '1

4-�030I7 .�031§_QQ_�030_05!": £�030_o,n1«gv4_\_s:v-s____ __ _V___ ____�030___syx2nV-'kr�030{fm¢m ?:�030I�035§}402lIlWf "_

�024�024salariomenor y nombre

' 9"�035 select 1ast_name, job_id, salary

from hr.emp1oyees

where 3a1ary= �030-

(select min(salary) 1

from hr.emp1oyees).' 1

'¢._______. _._______ . - . .. .___.__, __._ _j. _.___..L»':.l

�030$1-AxI) scum:-A Cum�030Imam �034anew �030

l}401tn SLED! Ill! "

�030 3;; :~w~-go: >»» wane�030\_�0244�024�024�024�024~r»__�024----c; �024 *�024�024~�030>-_�024�024�024 ~.�024�024�024-4'

Figura 6.31 Muestra un subquery. Fuente: Autor

Ejemplo: Mostrar ios nombres de los empleados, cuyo salario sea menor a

aquellos cuyo job_id = �030|T_PROG�031, pero cuyo job_id <> �030lT_PROG�031.

5: as In Maura an arm sun In as 'i!..»a9»v->.-.-asJno-o-'=:- '-':I"""§\ca-maze C Guava.-1 �030ab-mmSuva»: Hap-saw }402u�030-6c'nI.1d '-3

EOY E-_9°.__3_2 3!! �031___5-mun:--Lg_ __ _ __ ,__ ____Ir=1-'1.¢,,,_,.,,, I:uusq.9,ne-an:

r�030u""�034 �024-allmenor que todos �030select emp1oyee__id, last_name, job__id, salary

from hr.emp1oyees I

where salary < all -

, (select salary -- l

from hr.emp1oyees I

where job_id = 'I'I�030_PROG')

and job_id <> 'IT_PP.OG': _,l

.';V's:;.a: Jscanoaaxt �030min~_!-�030IliumCyxzéawxu Q ownoum ' ; 'Eula:

d Lmovapu usuwci mp: suzv �030I IEII DLGDX 0% ,4�030

2 mm 91,05»: an ,_'J mzwuu aguax mo

1 mam: ILODS am

5 much�030. sr_cmu ma

2 2222 3:33: 2 EI�030 ::|;.:_T.-�035"�024�034-�030"'."h.�030-t'.j�030�030" �034' "_�030_'i"' ""_ " " '�035'

Figura 6.32 Muestra una consulta anidada. Fuente: Autor

Resultado:

No hay diferencias en cuanto a consultas anidadas y comparaciones de

conjuntos en ambos gestores de bases de datos.

56

Page 58: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.3.4.6 LA FUNCION EXISTS

SQL Server

Ejemplo: Obtener el nombre de todos los empleados que tienen un

dependiente con el mismo sexo que el empleado.

.' '1i1-21'?:i:%*'?$=3:-;£=;:»t-I-313;:-=?rrrs:I::2 .:*.'-"a;=".£-1.;:,1�0303:::et::!=.?¢ _ _ .. , _,M, « . _,_ , e_.�030v_�030" '5' §*4: P"'- '- 'Mr 5.4- ix»: "-A \ 1- -de:

?~ .-.8-I J"!-2'49 . -,,r.._:., : =3, -. s A.» 3 r 9_ -. .:=. 2%.

'-1:9-'.-'1-2 _ : �034~~*-"*1 - -v - -I ~ �0304~.i..v�030<;|I�030:'3!�031-1�0302. e. véaswhntsz�030-

i:°';r�030;_ select e.no::brep, e.ape1}_.ido _-u-.;:,~:¥ from empleado eI: where exists (select * �0302:�030, from dependiente

where nsse=e.nss and sexo--e.sexo).:.;=.-u

333,4.01.!�030 ,

*-L . .5, .. .471:.-..t=

nzsmbregs apellido I�030

3696 Silva -' .Federica �030I£'1�0301'carN

(2 l'ue($) a?i'~ec�030ced) .

s » «�030�030-..�031z-.�030\»�030!e-.'¢r,~,.<<nr..\_ �030e'iIa>�031.|P.:.5:�030.'.P}401IIM;I".lI1�034r:�0303{'}402':'.�030-:9-mu

C 0 {IE . =}402 .. »;;_,... *�030~'~':__=.= JanFigura 6.33 Comprueba si el resultado esta vacio. Fuente: Autor

Ejemplo: Listar los nombre de los Gerentes que tienen por lo menos un

dependiente.

V:-Er-vv ta: -s-A4-an N-.\ �030-v-N.-�030�030~.41.! .L-.:-�030em..y'5\�030;x.;- ~ ».~ at 3_ = �030:5.F-.

�030!t."'~*-4:~ __-raw-.p:»., ..�031.«-43'-�030£9/O.':�030."�030.!�031JI�031~a

" _ _ *�030�030Vte:u_»1.:s-�0244.-r:gm»~='.s:* -�030}402j;�030select nortbrep. apellido ,

-._x.n2T. from empleado

:: where exists (select "�030 .from dependientewhere nssznsse)

:3 andzéw exists (select �030-mi: from departamento.32�030_ where nss=nssgte) .

�034.�030Y.\.-'~�030 '

«-..s'~.u.-.l _

rrembrezs epeiliaa -�030

t-�030~e'£�031Ié'r�0303i'c'oV('i2<t»ar\N.z;a:mivn Y=a1'ae�030s

C . man.-.V �030«_*.�031!!.-3e.:.!:<.'.'.\�030r\.l.'§p�030\>-,ru-,.�030!_�030\-_g|4.-gt34-5:33 an; 5;,

0 OJ! KB; 2: gr ll T Q . Es - =_Figura 6.34 Comprueba si el resultado existe. Fuente: Autor

57

Page 59: §:Q:LServer2oos 3 (:: :3,»:. r;j

ORACLE ¢

No existe el comando exists en Oracle.

Resultado:

La funcién exists sélo existe en SQL 2005, pero no existe en Oracle.

6.3.4.7 CONJUNTOS EXPLICITOS Y VALORES NULOS

SQL Server

Ejemplo: Obtener el numero de seguro social de todos los empleados que

trabajan en los proyectos 1,2 0 3.

fin 32:» -�030QQ--,1 kn!» �030__._.___... . . ...-. . ._.�030 ._ .... ....- .

[5 5* £�031..I',9J.J.�031-�030!'Qr."¥~,?3I_.1?I,..Y:,I ld,"'~ '42" '3, '~ .�030!I_ _ _'} ?~.:!r ST�030,}�031m1g5~.m ~;:re~s.-.-..».>:-as. v.'.}+._¢."¢s:J.s'a;�030_.-.-_:�024._s:.--�030 4

�030.�030_�0301�034"f�030.�030;?lm�024_�030�030,selectdistinct nsse _ �030;1 -..�030.:jz"e�030;?$ from emp1eado_pnoyecto F

04.0

i �030.3_§ 1 where nump in(�0301,Z.:3) "3, so ; v I ;

�030_ all 1 {| U 2 ;

Ni;-�030at g' '~�030d.-: \

*4-L�030.»�030 R I~ «.3 . 2 - . -

..:.g. _ .. .

~ "Es; -. . _. .__ .__ - _.. . . _- . _- ._ _ - ._ -. . __ .1, �030 wszse -' ;

~ - 2p2=s'a:«s-ewe - s' *~ 12;ssm's�031s�030s's Te : asez;-s2a's'v2 ;

eermama _ .a1: ms; \�030 - I

14�030 -. �030|:>:er;t«x:'-.'~�030!-,s».�030.-':1:2'-S'V.- __'c~�030-'s1.§'.§(.�030zg,�030!_¢.ja5�030}402__;g4!�030:_}402.*-_;sj=_.-;(s-__gsms'a'A. hm ~

o~ Acjivunfwuopvpsanra * I - v u gg�030,m,£§_%�030!.,3;_.9.N!-g T;

»© 9 ."-3�030:.8 ~ �030Figura 6.35 Utiliza un conjunto explicito de valores. Fuente: Autor

58

Page 60: §:Q:LServer2oos 3 (:: :3,»:. r;j

ORACLE

Ejemplo: Obtener los nombres de los empleados cuyo oédigo de Jefe sea

100,101y201.

up as p were am one saw: [MB us: _._!uH.8 -; - usan-0.-up E�030�030Rm:-amOlin-ms.-u LS»-as.-1 �030Human11.4.6»:-smu }401laumunu 1�030

149- >5°�0301°-�034Iii9 0-w«aw.=v==-t _ _ _ . �030=2�031-~'}401?::'::°' °"�031*."'**�030 - ,1?. F�031--= �031/ 1�034 ' . i_�030u"�035"'zel-.-Ct L�031;10�030]:;�030:xd, lazst. nu1ZN3, ;..�024:.�030.ary,."'iS.2�030J".�030I'id �030

,' {rem hrmzqaloyecs

s.'.*:er:\ 1;::r..:q_er_:;:1 m(_1J0-._ 1CJ:,201),'~ .

I .~7_.__- _~__- _. __ _ .___' limb glswto-tn: �030nunI-Ammo ihotsoua-\n' }401e»-non;

I -�024 -7 T�030-1 - .�024i�030_�030�024C-é�030_ _h �024�030__--�024!

I }402lth}401liv In}401 IW �030

E 2 Imlf}401h I3 IW

' : ll}402lkblun mm mo; c |un:u-at mm loo

5 I2!lW$I U?! ma

1' 5 mnus am soo. 1 naming mo mo

8 I}402V&m 3) IN

I u ucmwam an mu. nu manna! Inn mu1 II Icon-mus Inn mo ]

�030 I2 xno-am man we :I: ma-bu mm 100 1

' I1 Nansen men 100 '1.' 2�030;.. _........_.,._-......__ . . . , . -

uno-amazon uu}402au-asIn-at M-diadwr-1-n-.011! -.

Figura 6.3.6 Utiliza un conjunto explicito de valores. Fuente: Autor

Ejemplo: Seleccionar los empleados cuyos jefes no tengan valores null.

09 {P D' IMW! 9'�030DH!) SW!�030[I5 DID

3.239.�031-9-"X30 C-0.-'9n F�030�034ice-an C In-u-no It-may uuuunzu -Juunn-tuna demons: -'E42? 1�030 �031~§_3:-Q9_ 3.!�0319|2JI7umn'rk _ mag.-�030

cm-mm BN5?-311'-"«' _

{:3 3 -�024evitaz:valores nulos �030Il"q'""" select 1ast_name I *' from hr.emp1oyees t i

5 where emp1oyee_id not in( '

M select manaqer_id ifrom hr.employees

i �030wheremanager_id is not null) i I

1 o '1 I

I �030$590113:"Ed&~.'Inla1rn 8.-mm... Gooumu '~w:,_.. _ - __-_... __ __ _ __ __%_?_

I Itwujjwt1 70!�030

1 33""Stlvlrl

i 322�030 OHM!

9&5): J

: 1�030-xx-tel»-�024. _ . _-

fé}402d}401it}402 llIbI9(dnnl but $15 iW&1'<J!.|.F -'- -

Figura 6.37 Comprueba si un va|or es null. Fuente: Autor

Resultado:

No hay diferencias en cuanto a conjuntos explicitos y valores nulos en

ambos gestores de bases de datos.

. 59

Page 61: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.3.4.8 CAMBIO DE NOMBRE DE LOS ATRIBUTOS

SQL Sewer

Ejemplo: Obtener el apellido de cada empleado y de su supervisor.Q '9«;:(;'.c-).:§ -�030E�031-|�031.".£�030.7-Q�030:-.E§:I'I1I_@_E|f.£.:."_�030l:.I.'xI:)�030\V»:*.:1:.:>32.52:�031!-"1-rgd-�030R313�031! _ N�034 I ;'_';j �034U1' 1

5;.�0319:. pg. Ki.�030I«»..,4 Q...�031p,_:., - _r_�024. ..'~

:'~ ...a.a .1-..;g. -,-.,.,.- -:~.-- ..~ :4 9, ~ .5. a~.«1.,,,.._,;.,._V v>s.'|uAI|r�030~|._',.J;'::v".u"g-._ __ __ _

I :Qv.cv'.w1e.~<-'..~::g4~.~;s.-m'-- �031 .' >, V W >5�030; �024.'._.. �030 V , W ~*".;;�030select e.ape111do as r:3.�030:5R:_E.'A'.PLEABD,s.apel1ido as 1:.�030-:3flr:_SUPf;RV1S0:! .

�035..'yz'4from empleado as e, empleado as s

�030 2: where e.nsssuper=s.nss '

:5 »I J2 J

....;,Hg

..._5_ r

. �034-2:.«__I, .

�030 ..;v~. _ ..-�024-�024 -v �024~�024�024-�024--------- -�024-�024-.-~ ~----�024 -�024�024-------�024�024 ,

'i:.�030:7»..7~»~ .V nuo.%1s.=<s_m>Lmo ne'meme_l9upEaw-1�030yoa I�031.

Silva �030£'m:ar:~a�030 \°l«z~:eMa 7a'ct�031el1o

�030 E's'pa'.*.1a W1:-c:a1~r~a

' wtiiu:-be ¥'i1t'e1~m _?�031.�030a..�030_s A \ Q - n .

�030J:mn':.4.»s-.!em'-,r_ A_ W .w5.3-.::v.~�030.*.�030g!-av)»-Htw:-9 :4-awn rm £16: I

*0Oi..,':3i_}402Figura 6.38 Consulta con cambio de nombre de los atributos. Fuente: Autor

ORACLE '

Ejemplo: Obtener el apellido y salario de cada empleado.

I! B3 I! Die�034Ev�030who Siva but we

Ju}402au- JSZOG-0-V. F�030

�030kcauaauC) }402uuuua.-u":buQI§d "hues l'Iu_w-Au-nu rhuauux.-1 3

Ii 3! '-' _�031$9530 JWQ 6.�031 o.u.-mesa-ms �031 V _ mo.�031-�030snusqtsn-or ' '_ "�030|

.3 Select 1ast_name is "name", salary * 1.2 "Annual salary" :;�030

I tr.-c:�030.hnemployeesrl l

! ;.:.s:u;a;um;u:.u:h.;§.3_'zmam t\am¢:~.:_ �024�030�024.-�030h__j _ ' �024___-' ' '- " _ _j_"':_ JMP-L. �024-,.. _-._..�024._______.__-__-..._ __._- . __._... _ __._. _é_ ,___

' �030l..'*�024'.l.hI}402u|~v :

. 12:" :1: �030l 2:. .35.�031?1 32".. ED 1;. 212.�035

90:: OM!)

I}402}402u ll

) (tram: xxooo

llhlhn DOM

�030 llhnil mono 1III)�030 72%

I :::::. 3: Il H; .. ._ _ _ .. _. _____ _.

'°'.°1�0305'!"Lj.__ __._ _ _ £I 53511:�030 Q E ' .- i

Figura 6.39 Cambio de nombre de los atributos. Fuente: Autor

Resuitadoz

No hay diferencias en cuanto a cambio de nombre de los atributos en

ambos gestores de bases de datos.

60

Page 62: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.3.4.9 FUNCIONES AGREGADAS Y AGRUPACICN

SQL Server

Ejempioz Obtener Ia suma de los salarios; el salario ma'ximo, minimo y

medio de todos los empleados del departamento de 'Investigacién'.

' '9{�030;{:¢t',1(-*2�031)-32:43.:-_).L.-gyoba-;ui.::?is»govn;}2_r-_:_§.�034.S:.So-:I«�034!!'IgM�030P-.5e';'.vbl____ : ¥»____>____ Z_ > "=�031' 7 5"h 9." ''~ (�030My�030:0"9-1* '*'- ' "- "is

"~ -_JJ .t'*:r:Iy -.�0301,'..;,=:_1- 435�030 �030J�031< 1 -. I5» 9'~.

_a~v-~« - 2211*: _�031' v.e:z~.md~ K0-�034-.�030yv\-ir.'aI'- V

select su.'n(sa1ario) as SU.�030-IA,nax(sa1ario)as TIAXII-ID, r1in(s.a).ario)AS MINI:-�030.0,

avg(s-alario) AS PROMEDIOI; from empleado, departamento �0301;} where nd=m;meré>d and nonbred='Investigaci6n'3 I

I 4, .

. __!�030>Iq

-�024;~ ( __ _ __ ________ _ .

':::,:..'e �030 'SUM ma-me M131.

xsaemee 'h'oo24e.'¢«e am�030

(1 I~m4:(\s) aa�030Fl�030eci:e6)

3»! ~- - - I. . J :v.u or-.2-�030e�030�024am..~_':~, :1-9.51.:--�024:'.'.�030.v~.~�030:1-:~!s-»�030.�030;I�030cn.5-.-_»o-- 94» *.«.-_�024,

O '0 II..;FE.. n E .7 ___Figura 6.40 Uso de funciones agregadas. Fuente: Autor

Ejemplo: Para cada dpto, obtener e| nro de dpto, nro de empleados del

dpto y su salario medio.5_Y{�030L$o-la!-k7\¢:3:.:.7.=.n.ov~ovu._a�030.£i:_a.:u-13.5._- _n.-o~.::.:o-.o.-~»g«-o-.r~.,n __ ,T___4 ,____.___.e:.______ 2,, _�030v'9! ["5 in. §§, }401g:~u., 5-". �030-0�030q,

1- ..,.u .1�030-.-:..o.-5,-.,,':., = .«, o'-�030."- .c > s_ -. :3» -�030~.~49-.'v¢_«:___V �030<39�031.--�030->.%-4-.4-q'a�030:0.'.,}",p2l;_ H V

H<:'.t'7rv.'r§»m.->,:ge.-mv.'s:.* -.:a;_ select nd,count(�030)as nu,-:.~ero,avg(sa1ario) as prcx-..edio ,

V-3:23 from empleado «sq ,.1: group by nd;

tilI�031,lI J

n_;�030.�030!c .5, _

:15. .'-!.""._.,_\ .

.n-.-..-.|M 'm.':n.<eI*<o pwcmdro '

I 1 '-S5�0300G�030e-M00660A �0303 �030sroewaoaaee

5 a zsasegmm

M! 1,�030... 4 \ «av \ ax _ . '

.. .. �031.�030.:v.:-�030mes-':'~r�030.t:'m"$> .6!-.".!!.:fJ:T.'v'~3 qowvu-Jégr-.-:9 -er.-v-.vu '.'>-s

Figura 6.41 Uso de Agrupacién. Fuente: Autor

61

Page 63: §:Q:LServer2oos 3 (:: :3,»:. r;j

Ejemplo: Para cada proyecto en el que trabajan més de 2 empleados,

obtener el numero y el nombre del proyecto, asi como el numero de

empleados que trabajan en el.

:~ .,dJ.t'e¢-4:. _,.,,.- -.\u- ..v ;,r 3, - :24. ,1.,L: 'fv.'~!:I'\_ _ - '*-an--I 5*.�030-I- .. - r'£ ': �030.f'.d :�034;2:1.» ___ ___}402__ _i

-" �030' ..w.-..-:t~~:».*rc«:-~ewr!!:" - �030 �024_'select nurterop, nezabr-�030epr,count(")as numero_et:p1eados ,

~-la: from proyecto, empleado___proyectoQ _l ;

._,1 where nu:erop=nump

5 H group by nu.-.:er~op,no::brepu~ �030§~,�031 having count(') > :2

..___\,g4 l�030._g,�030_..

4- _3 --ou._I/. _-..g,|l,- . . _ �030

�030jg;.111-.h�030 r1ume'r~1:zv,> mmvumevr 'nWm�031eY~2:_;e�030M�030p1%J3�030d¢% K-�030

�030 72 Imomrtev �030s. 1'0 IA.ut'cn:'t�024i7za'ci-2'5?» 3

M �030I 320 IR¥or«ga1e.'i>2'a�030c'i«'6r:*. '3 _M whuret-'a«srn~e'st~ar<Ei2>.%:-�030s "3 �030

s . 3.�030;-�030r-�030x':.-;é:.rmi-..~; �030!:rdr.3.1:-¢c�030.�030v'.-VIM»5:�030.-'u5e:l!»:�030g¢4:ee~:5-«ww �030km:-x

�030C E . . ._ �034�030"" =

Figura 6.42 Uso de Agrupacién y having. Fuente: Autor

ORACLE

Ejemplo: Obtener el salario medio, méximo, minimo y total de los

empleados cuyo job_id se parezca a REP.�031

B: B! 20- anon 811- R809 hm! 103- I10

u.;u9u»x.1eo.o~w:- �030-F.�030�030AmmanD01»-um .3»-nun :�030n-«ma,T1-1.»-«mu "main ';Afr�030. "QUAD: J o.In3rz3s-um; ' V __ __ �030 _ �034__ . _.«-g.-33:3�030 .

i-IICJ.,):�030e.;e.ztad;:t;ca..'

.x~;l:c", aV1{J&1JY), r..r.:.-3.1�030.my), I

�030 mnisalary), sun(:alar)'~) '

from hr.cn::1oyoes

: where })b_xd lLko'lRE.?�031$':'

:;.u:.-arm slsonma-u�030U�030r.u¢.Drum-2 Fauowu �030

tn~h.U IN�254(SN.MY) .U IIAXQUNIMJ IQISMRDI IKNURVII

IEH.7 D}402 HID MID 273%! �030

�031 !

I

�030 !bu�030.. . _ ___ .__ _, . .._ _ . . __. ._ _ -'

: ._...___.i.._._.._..___.y.«...__ _.;J.___é £!�034~5_'*='*.__�030:�031E;L�034"*_-_"=F!l*F34]

Figura 6.43 Uso de funciones agregadas. Fuente: Autor

62 W

Page 64: §:Q:LServer2oos 3 (:: :3,»:. r;j

Eiemiloz Mostrar el iromedio de sueldo de cada Deianamento.V5--'~ V�030'---m -' mm-M�030-+~w..rrYn.1nu-.4-.,>.m.r»u..-.n--.«~.- ..: �030 _ jg�030

or an an u-we an nu-o sun: tan: «:5 F �031.'5..:B9~3v&L�030.nQ-G~'I:-

�034Ica:-anI }402banasd.3bU6.d �030Juanasd_¢nIa|m.wI 1.5..-¢,._., T.�031:t.".' P3550 3...! 3 opszsaamannz }401}402w.

. cum:-m In-mu-«--u. ' ' ' �031 �030-

PS :1, amp =v ~::"�0303~""*- JL�030.-.;td.p.rtr-nt ::l, .vg(-a1u:y)

4 frczn h:._e:*:1a';:cs »- I:

_ qr ' J_'�030by ."-j:..�035'»'�035».�031__i:.';'

�030R Jsmam}401vm}402nmxuimsomQauunu . 1

! I""".V.'_:.;(.0....,.,,,0_.'.0;;..'..,,;�034_�034_'_j_�030�034�030' �024* �034�024�034-'�034�034-�034�030W�034�024' �024--�024-�024�024----1

2 an 4151 I

- 3 "'2 E '�030 5 n max: »

E 6 N xm: mm 1

" 5 :3: '

n In D$SS.£E$&!Ili547Izm&�030.9llI7B\$BmI 1

ll 10 �030G I

�030 I1 00 27$

1 II am, �030' ' �030' ' ' "I|lanFdd�031u¢I2 _ |.h:4I6(d�024|21lint! Rind ll-tnt}402ilfE -

Figura 6.44 Uso de Agrupacién. Fuente: Autor

Ejemplo: Mostrar el sueldo méximo de aquellos Departamentos, cuyos

sueldos méximos sean mayores a 10000.

Us in W I-VIN Em Pb» Suva INI in

.3-.aa_a-u.«u_:.-n o_~o,-v;- :;)Q,c.n.¢a.. I tlmnma Ilmn-no ammu i»4_ou-emu }402u-¢an.d "M» '. .' >«_._�0303,G075 IA]: 4' gumsuaxam _ mm-'�030lmmunEn-Sail!�030-1:.

tx�030.t.rarag:u1.a.'.en';.- I�030.dVll1.] »�030:

I"�034'1-91*�034SLl�030.v...t_dep1_r'_n:'.nt 1d, :;_x(:;a1.\ry) �030l

| £1-on hr._e:;~J,oycc: �030;I '}rn.;- rs; '§;;v:.r{- ~-.'__i1 I: ha�030.'1r.g:ax..."a.�030.ar�030,'!> ]C0)0.'

: �024-~~~�024~~�024-�024�024~-«~�024�024�024~�024*~j~�024�024�024-«:1 ,�030tna:sHs:untam'Imnd~Ium.=2I.wsnzp.«'9av.o;,..

' J mum-an_p -I woman

: f 2 3 l

! II Emu '-

llavtftltuedhe |he127(al~\2! Bud I772»! -' Ed -

Figura 5.45 Uso de Agrupacién y having. Fuente: Autor

Resultado:

No hay diferencias en cuanto a funciones agregadas y de agrupacién en

ambos gestores de bases de datos.

63

Page 65: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.3.4.10 COMPARACIONES DE SUBCADENAS, OPERADORES

ARITMETICOS Y ORDENACION

SQL Server

Ejemplo: Obtener todos los empleados cuya direccién esté en Higueras,

estado de México.

3* ._9J.1.�030Hrl~m.�030u,"..,.":,�030;\_,'-�030-2 1,? _9_ -. 2:�030-.3�035»uggg-91'-q_ __> sYL_«u-iii-; .f{-II.'_;".a"_;�030;?"gl.~�030_-A _ _

.'((~sa-�0301rf>:�031~=�030t»�030§M4w'.,.e:."-- A A W _.-j _�024_�030",""�030select no:-.br-ep, apellidoam:-.-412». from empleado

7:: where direction like �030%Higueras,MX%' ':; J

.. J

~.La_n_v �030

+__!,§

-v _yr4so .__)�030 9 .

0 .g_ E�030._ . .

4:13�030J�030,.._!_u,I .

«entre» azzaeumo �034

I £695 same 'Federica Vizeewa

lame aotellxaM-me-zi aahba» �030

. .. 9::-�030r�030r::"::n'!:'2K*.'.\ 5'4»:-'!|I'2:-�0301:�030.�030."-�034I5-�031-en.--�024.-5:-go-9|}-at-ev-a ?.I=I,�034:t«-.'~«6

O O 86 ,, A .Figura 6.46 Uso de like. Fuente: Autor

Ejemplo: Mostrar los salarios resultantes si cada empleado que trabaja en

el proyecto 'Producto X�031recibe un aumento del 10%.

m er» ~-�024z.-. -- : «-- '�030-._dJ 4---rz»-o '.3,-.,),- ..g- - ..~ 1, > .3_ s 7:4. ix.�031-'[.�030P'!'I�030A__::_"7.-�034"-§'I:.'.«c.";.}�030.Q:�030_'.�030:p�031.p*-;_______________ ____>

-'= �030.¢(.�031(~.;o�030.-i-é�030--�030Cg-2~49m7\:'- _

"'" select nombrep, apellido, 1A1�030sa1ar-�030ioas '1.1�030sa1ario'«$69.03.

-.J_,Iu from empleado, eI:pleado_proyecto, proyecto -1:�031;where nss=nsse and ntz.'1p=nm:erop and no:brepr='Pr'oductoX' �034

1.1 II .1I J

-.;:-_n;4.; -.._yq

-'31�0311 ... __v« 5�030�030, ,

"_�030%_.sIte:.hlh�030cx:?weaa evelllda '1.1�030~sam~i_'o '

5693 �030Sims s�030aa<ao&tae .J.�030»�030e*s~e~'Fa �030Espaw:-a �030-zrsewaae

(�0302mix) a?Fe<§:e�031c|) _

s -. a-�030:V¢I..:F�034r'-�0309�030I5�030l9'!(I0'f�030--�030 �030 '5"-�0304�030.f.M-:-5:§'.b'C9}402-go-.-vvrz-Ihoen R174�030,--;v,

0 6 Fh_.,.!E?; a = 6 , . - -= -�024=.:;';...IFigura 6.47 Uso de operadores aritméticos. Fuente: Autor

64

Page 66: §:Q:LServer2oos 3 (:: :3,»:. r;j

Ejemplo: Obtener una lista de empleados y de los proyectos en los que

trabajan, ondenados por dpto y, dentro de cada dpto, alfabeticamente por

apellido y nombre.

�030in:2 vb Ica: hr�030?9-0.»: N. -vd_- 5» " �034 ""�030 �030�034

'.'~ ._dJ 4�031-9-.�030-:11.».;_�024.,=.,,» .;s,- - .3�030a. - 9_ -. 2;.-. .1»,�030-3'5!-9.-in _ _~ ' =1-AM '~�030~-9- .. ~ n�030a'�030J.(�030.42�030:1 1.-, V 7

=°�024 " �030�030!E£¢9¢r_�030.'st�030¢!:¢!k"§r.~49-1:555"- _

select no.-:bred, apellido, no.';br�030e_p,no:-brepr

»--3.3 from depar*ta_r.1ento, empleado, er1pJ.eado_proyecto, proyecto '=

�030.,gwhere numerod-'=nd and nss=nsse and r*ur:p=nu.::-rop;_'f order by no::br~ed, apellido, nonbrep _

» " 1} S�034_':; '-\I§.1'}401_3-we-=___________ _ ______ _________ _______ _ ______ _ _____________ :______

. �034jg -zavelliaa hbwwep narkswenv �030~IL1.�031- ;--.».».--.\-.-.--.~. >..-.au.-_�024.;-..---.;-...---_;-.»~.-.;--.-. �024�024¢�030m�030�024�024t'<;:'-.l=';;�0244�034�024;i

3 axdm�030m�0301s'tvnxciisxr.aabbar mwa /::¢'t'o'ma"-(1-zac '1(9n �030" �030 /Lumiwaist-naziiisn Jab�0315a1~ Ahmed Né@0a%J9'r�030é�030s't8é§bhE�031s .

A:c:m�030m.istrati£5nvalees aa:1a'1ra Rev-m~.gav.'1zwa'c�030m'm¢:dn�0301\zis�030t':�030e�030¢iz'$nmaze aeazv}401m Ner'e~z~asgs1~é~.&a'ci'cn%�031sMminiswatiisn rfapaba Alida Auhsmaii-2-ac �030Mna.'dm'm'is"t'r\xcii5n rzapa}401a I.Ix'1"i<<'§-a Mum-'asq;rr<e:?:a<*1'<5h�034e�030sDir:-rci}401r. |eo�030te.iin 3~a�030iwne �030Réowganiz«ac'i<<�0309h .

H�034�030|"§\_V/3E�030.*aab�030P§'p'<.V\fknab-91 1N2-bf: 0wn'éhu:%-AV �030'

. . A7 .�030-.�030a-2'2:-en:'rmr.-1 ':�034.13�034»'.'&:-3:\�030;'-�034PM,(Vt.-!7re<�0305Z�030v}402»f�034l§�030r'�024:-�030-.939 �030!!�030.''s

._,, . �024

9"!e"E<1;e"'%Figura 6.48 Uso de Order by. Fuente: Autor

ORACLE

Ejemplo: Obtener todos los empleados cuyo salario sea >= 10000 y su

job_id sea parecido a MAN.

R {R $01 D}401llean Duo Sun 106! t}401

a3.;au-.:..x:=:o-0--L F,�030(AcamunD 'ibo¢a.u 2h-curd Nunwsv '1-d.w-w-:¢.__�035oi-unwind "'

-�030 "3-°"�031.'°_9�030-5�0314-_=-M . __ . _ , _ .. _ - 1-'~';

*?;;"=* °*".�034r:.=.-J ..54,33» , :!r�030;eC's:p..ys.~n xd, Las: narre, 1:-b id, 5a1=.\:"[ M�030

V [r.:n hr.er;:;:vye-3:1

I where .:a1sry > 1006 �031

an} 'vob_1.d l.:.}v.~.~ '11S.h.'I%'.'H I. �030 |

ji'.;.'Z1;T,�030J£�030.,.\:]$..'i�035.7.T2:h7;.'?.;.ivI3ZT?.7;'."' �034"�034�034�030�024�024*�030�024"'*�034�030�024�024�035"�024�024*"�030�034""�030JN "'B', .1 aqmvgpl usuu-I:l 1:111 stun�031: '-

1 NHIIIMOI �034OCH 1% A

I I I Iuunhliv numd um I

3 using Slu}402 14%

i �030 4 l}401htls510% I83

�031 3 11.?2.�034..2:3 173.7.�031 �0301 1 lwb}401uy sA_nuu nun

l I

I

! .l 1..., �030""" �030 "' �034"' ' ' ' �030un�024.re.n-1:7 _ _ _ �030 _ mnnuma but man won: 5 -.

Figura 6.49 Uso de like. Fuente: Autor

65

Page 67: §:Q:LServer2oos 3 (:: :3,»:. r;j

Ejemplo: Mostrar los salarios resultantes si cada empleado que trabaja se

le aumenta de acuerdo a una férmula aritmética.

�030Baiaxuu-muons:-\I2-hxvvscvmlndrnrc.:_.aa.-o.=ae:.-::o.o.�0249..- �030~�030:�034:�034�034AcumenC dew-nu no-and an-«.24: J-4.:-r-and 11¢;-same ~'4�030. �030_PEQ}402_C>3UH O a.uum=m-u3u_z _ ,,,.g,-'

W-M 7-Lthm I-105�0301ast_name, salary. 1-�030(salary+1367 ) �034�030�034Q-�035"�030fun hnemplayees: �030

I�031 10.10% la:t_name, salary, salary �030Te�031.commission_pct

' ;;�030.:..._.,.,.:...,;.....,...-......._u.,.s...,'.¢.,.c..,." "�030�024 ' �030' * ' �034' �030�030*"W�030HIS.. ,- , . ,_-. ____. -__,. _._.____,_____._.______ ___.__.______,___

I V W:l,A,sr:4n§.ti.s«m_:_2_z-:s,u;4vs:m) 'local-ml Na 3200) I

I 32.�031; "..T.'.T 3.,�035I uuuxin mm 191:)

I Sig am 71$

q mum am am

: noon ram

r 41$ :3 53l Ilrzxmau Imm mean I

I unnsn noon usan' nmmu own man :

140!�030 com 73%

lihu}402l CD f I

I asmuu saw an:

@9..4g,,,¢g1 l.�031nt2D(d.InIE-at Pnfcdllvtuaouf �030 .

Figura 6.50 Uso de operadores aritméticos. Fuente: Autor

Ejemplo: Ordenar a los empleados por Departamento y dento deDepartamento en forma descendente por sueldo.

532%: §�031.�034.§°é�031�034i."�030..�030;�030i�030ii. =:�024";xq¢..,.,-,,. 5 }1n¢an.uu_ Sauna»; Iluuatud ElV4d.9°rmiur-.91 }402-chi-�031nl.sd 3

git �030u�031 _P¢:930 35.�030.u,4M§msmn1s " _ _�030 lnu}402}402t-Irl:_ " '

A;"}402)�030l �030[

3'�034"'�035°"//Wdenando por x:.1Hp�030.e;::::;*.t-nan i

I Jel-act last name, 3w!) .\:1, department Ld, salary

fr.r hr ., xzplo/: ..>.s . |

orccr- by do'_:>.1:t:.~:'.:t__;d, :a,1a_.r-;» c1c:c.'| J '

. _:,'_. __t_ __ _ _ _ �030__Yr.i_ j.�024._._..; ._. ;�024j�031�024�024_ID. was hr}-:o�024u¢u.-u514;» �030Man!J_=unsm:u Q\om-cumMats:

! J _l,}401}402JL!'(,xL!WJD..5�030.Jxmrxgml .2142: !�030 Ivhlm ADJ�031-931 no «N �030

| :33�03552.2�030 2 2? rI nanny 611-)!!! 8 mm

I If. 3:? �030.3 Z �030St}401nmuu }402.l_u£�030RK N E)

lumwh 6}402_}4023�030 40 E

3 :2: :1: :2 2:�030 .t:w!u..... swan __ �024 ..-su Jam 7 7 _ iv

flu-7

fculzdllsvf}401i Iiel}402cd-n57I-nc( lhfdvh}401ur N

Figura 6.51 Uso de Order by. Fuente: Autor

Resultado:

No hay diferencias en cuanto a comparaciones de �031subcadenas,

operadores aritméticos y ordenacién en ambos gestores de bases de

datos.

66 9

Page 68: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.4 LENGUAJE DE CONTROL DE DATOS (DCL)

SQL Server

Ejemplo: N:-.3-gar el acceso de insercién y eliminacién de registros sobre las

tablas pedidos y clientes.

:.,_'!..�030vuMor'I\a.l.�030;e:v-uilanouucnktncs_ -_ _ _ _ _ V _ _ _ _ V _ ____ .__

Nd'heE}402lVIPIwI¢nlVuI�030lPInliI|u\'IlnoCuIuibdAy}401l

;4m.....a. ~« -\,�024\_..:.,-A_u I.�031.\_=: L __ _ k _ - ' - ,.Enxm¢-our 1 �030v I X suoi:n§u.\:-}'itmr . x v�024~u xc¢..¢.v9I E n V �030W�031-3-' **-' �024' .

�030Tgf_§.;.i_s3:.:�034.;m.xw..eI«.;a._,, .,.,,.,..,,,. �030-_r�031:§"f«"_':/7%?e�031:.°::.*:.°:;:%:.m. �030=3

. ., °° B-3 ?='-*«- 2:? �034T?"W- o:,�031l:;n:sdshnd:-inns ""' - �031'

o.g,wu "�034o�024_l_.\�030:2as t

..'%...,,,.....""**°' *< �035ugsgvuauuu -|-Na-H�030NEsughmsutma taxman mwlnauus cmvnuum-.

--.Luu-nus:3-0° MateBeau: E

:;::m'Wem_:e....., V

9- �030""�030 5 Jmuncpnxuumumma u<-n(m.s:m) n:-aw.-ucsao qua» man an.

ayuda - I )1

Ni:

�031.:°:.:�030..:4

...««::__~-.«~~ . rs ¢~.r_.~_~ �030-T-.a_==.»_

Figura 6.52 Uso de DENY. Fuente: Autor

Ejemplo: AI mostrar la Base de Datos en modo interactivo, se puede

verificar los permisos y denegaciones para dicho usuario.

:;I.>;IV'WMn_01lK!9!r�030!�030VlI\_-KHIRIHI_ _ _ _ 7 �030 _ V _ _-,_";d

.-.5... -i"---='v*�030�024-�030-'*=5. Nah-auni liquid

El-hv}402-db: �030-3-I

[sort Had: To:

E�031: 3 ::

fninuaundnduk hang-mm A �030Enuféo vwle

2:-L 'I:w'II1Inm�031- Canada: Du: _

33"�034 �030:.:�030�030�030'�034�030Z 5; LaD:-can Eii-II an :I3 " nu""�034"�030Ina. av 51 V�031! Fem�035;-5�030-nanum. a. rt *~ H

�034" Mum�031. uh: �030t'_ I:

.3. 2: Are 2vu--u�030-sum-u-as a. Q Q T!_

L:..}401:tc:..-mmnafa___w« _ _'__.?w*w�030»L' �030 es =1»

Figura 6.53 Verificacién de DENY. Fuente: Autor

67 7

Page 69: §:Q:LServer2oos 3 (:: :3,»:. r;j

ORACLE

Ejemplo: El usuario Scott necesita consultar Ia tabla curso.

SQL> Grant Select On curso to Scott; 'Grant succeeded.

Ejemplo: Ahora hagamos la pueba respectiva.

SQL> connect Scott/tiger�030Connected.

SQL> select * from egcc.cur-so; '

mcu NOMCURSO VACANTES MATRICULADOS PROFESOR PRECURSOcae1 Oracle 11g 29 19 Gustavo Perez 35a

Resultado:

Hay diferencias en la forma de otorgar los privilegios y autorizar el uso de

los objetos en ambos gestores de bases de datos.

68

Page 70: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.5 CUADRO COMPARATIVO RESUMEN DE LAS CARACTERISTICAS DE

LOS LENGUAJES DE PROGRAMACION ALGEBRAICOS

actuales (2013) 2012 R2

de}401niciondc tablas, etc)

do grupo,

. subconsultas..etcDCL (Administracion de X X

usuarios, creacion yadministracion dc roles,

otorgar y quitarprivilegios, etc)

excepciones

almacenados

de Datos _

Soporte de SO Solo MultiplataformaMicrosoft ( Windows,(XP, vista, Linux, unix,

windows etc)server 2000,

2003 y 2008)

Figura 6.54 Cuadro comparativo resumen de las caracteristicas de los

Ienguajes de programacién algebraicos. Fuente: Autor

69

M�035

Page 71: §:Q:LServer2oos 3 (:: :3,»:. r;j

6.6 CONTRASTACION DE RESULTADOS ENTRE ORACLE Y SQL SERVER

_ CONTRASTACION DE

RESULTADOS ENTREORACLE Y SQL

SERVER

ITEM ORACLEOPERATIVOS 2003 y 208, Windows (32 y 64 bits), Unix (Solaris, HP_UX, AD(, etc)

Windows 7, Windows 8

SQL 2012EDICIONES En términos de ediciones de SQL Para Oracle 11g R2, los variantes

Server 2008 R2 ofrece actualmente son:los siguientes: _ _ _

Enterprise Edition: Esta ofrece

A Enterprise Edition: La edicién el maximo rendimiento por tuEnterprise tiene todas habilitadas las dinero. Al igual que el SQLServercaracteristicas avanzadas y es apto Enterprise Edition, todas laspara a gran escala, sitios de base de caracteristicas y las capacidadesdatos de alto volumen. del producto estan permitido enStandard Edition: Este ofrece una esta edicién.plataforma asequible para las Standard Edition: Al igual que elempresas que no requieren de las estandar SQL Server Edition, Ia}401mcionesavanzadas de la Enterprise edicién estandar de Oracle tieneEdition. La mayoria de las empresas habilitadas las principales

suele desplegar sus bases de datos en caracteristicas del producto y eslas instancias de la edicion esténdar. adecuado para aplicaciones deWorkgroup Edition: La edicion de negocios.grupo de trabajo es adecuada para Standard Edition One: Estapeque}401as aplicaciones edicién esté dise}401ada paradepartamentales e incorpora las peque}401osgrupos de trabajo y lacaracteristicas esenciales del Iicencia para un méximo de 5producto. usuarios.Web Edition: Esta es la destinada a Express Edition: En peque}401aser utilizada por los proveedores de escala, base de datos inicial paraalojamiento como solucion back-end }401nesde desarrollo y tiene Iicenciade bajo coste para aplicaciones web. para redistribuirloExpress Edition: motor del servidor libremente. Express Edition 10g

SQL embebido que puede ser esté todavia en la version R2.utilizados para el almacenamientolocal de datos y sistema de desarrollo

- de peque}401asescala. La ediciénExpress se puede descargar gratis ypueden ser distribuida gratuitamentecon un so}401ware.Compact Edition: La ediciénCompact permite a los usuariosdesarrollar aplicaciones paracomputadoras de escritorio deWindows y dispositivos de mano.

I

Page 72: §:Q:LServer2oos 3 (:: :3,»:. r;j

Developer Edition: Todas lascaracteristicas de laversion Enterprise Edition estadisponible en la edicion paradesarrolladores. Sin embargo, tieneIicencia de uso por un usuario a lavez y esta destinado a ser utilizadopara }401nesdc desarrollo y pruebas.Aparte de la version EnterpriseEdition, SQL Server 2008 R2

también ofrecera dos ediciones�034premium�035para los grandes centrosde datos y data warehouses. Estasediciones se llamarén DatacenterEdition y el Parallel DataWarehouse Edition,respectivamente.

COMPARACION Enterprise Edition Enterprise EditionENTRE LASDISTINTAS Standard Edition Standard Edition

EDICIONES Workgroup Edition Standard Edition One

Edition Express Express Edition

Web Edition X

Compact Edition X

Developer Edition Enterprise Edition

NIVEL FISICO bases de datos de sistema Cuando Oracle se inicia, }401mciona(model, tempdb, master, igual que SQL en que una porciénmsdb y resource ) y bases de datos de la memoria del servidor sede usuario. asigna para su }401mcionamiento.En el nivel }401sico,una base de datos Esta area de memoria, conocidode SQL Server esta representada por como el Area Global de

�030 un conjunto de archivos del sistema Sistema (SGA), se divide en unaoperativo que residen en el sistema serie de estructuras diferentes.de disco del servidor. Hay dos tipos Junto con el espacio de memoria,de archivos de base de datos: una serie de procesos de fondo queel archivo de datos y el archivo de también se inician para interactuarregistro de transacciones. con el SGA. En conjunto, el

espacio de memoria y los procesosconstituyen una instancia deOracle.Los archivos que componen unabase de datos de Oracle se puedenclasi}401caren tres tipos: el archivode datos (data }401le),archivo derehacer (redo log }401le) yel archivo de control(control file).Los archivos de datos es donderesiden todos los datos. Puedehaber cualquier numero de

71

Page 73: §:Q:LServer2oos 3 (:: :3,»:. r;j

archivos de datos en una base dedatos de Oracle. Archivos Rehacerson como los archivos de registrode transacciones de SQL Serverque registra que cada cambiorealizado a los datos y se utilizapara la recuperacion del sistema.Los archivos de control son un tipoespecial de archivo que contienepeque}401aspiezas de informacionvital acerca de la base de datos. Sineste archivo, la instancia no serécapaz de abrir la base de datos.Aparte de los archivos de datos,

archivos rehacer y los archivos deA control, la base de datos contendra

también un archivo deparémetros, y un archivo decontrase}401as, opcionalmente,archivos de registro dearchivado (archive �030log}401le).Espacios de tablas (tablespaces).Un espacio de tablas de Oracle esuna estructura logica que agrupa alas tablas, vistas, indices y otrosob�031etosde la base de datos.

�024�024_

Figura 6.55 Contrastacion de resuitados entre ORACLE y SQL server. Fuente: Autor

72¢»

Page 74: §:Q:LServer2oos 3 (:: :3,»:. r;j

vu.- DISCUSION

1.- La comparacién de los resultados se realizaré con los resultados de

otros autores en los procedimientos a nivel del Lenguaje de definicién de

datos (DDL), Lenguaje de Modificacién de Datos (DML) y Lenguaje de

Control de Datos (DCL), que son los aspectos en que esta investigacion ha

realizado Ia comparacién a nivel practico de SQL y ORACLE.

2.- De acuerdo a la investigacion realizada se puede concluir que a a nivel

de Lenguajes de Definicién de Datos (DDL) existen diferencias en cuanto a

la creacion de Base de Datos, en SQLServer se asigna la ubicacién fisica

de la Base de Datos y crea un archivo con extension mdf y log. Y en

Oracle se crea un Usuario y se le asigna en algun tablespace y luego se

asignan privilegios para crear tablas. '

No existen diferencias en el comando check constraint, en ambos SGBD.

Hay diferencias en la sintaxis para otorgar un valor por defecto en ambos

Gestores de Bases de Datos ya que en Oracle es necesario ingresar el

comando Modify.

Existen diferencias en la sintaxis para otorgar un valor por defecto en

ambos Gestores de Bases de Datos ya que en Oracle es necesario

ingresar el comando Modify.

Hay diferencias en los comandos para modificacion y eliminacién de'

columnas en ambos Gestores de Bases de Datos ya que en Oracle es

necesario ingresar el comando Modify, pero no hay diferencias para

O adicionar columnas. V

No hay diferencias en el comando Insert en ambos Ienguajes algebraicos.

No hay diferencias en el comando Update para actualizar filas en ambos

Ienguajes algebraicos. �031

Hay una peque}401adiferencia de sintaxis en el comando Delete, ya que en

SQL no requiere de la clausula from.

3.- En cuanto al Lenguaje de Manipulacion de Datos (DML) se comprobo

las siguientes similitudes y diferencias: '

No hay diferencias en cuanto a Sentencias Bésicas en ambos SGBD.

No hay diferencias en cuanto al manejo de nombres de atributos ambiguos

en ambos gestores de bases de datos.

73

W

Page 75: §:Q:LServer2oos 3 (:: :3,»:. r;j

No hay diferencias en cuanto al manejo de nombres de atributos ambiguos

en ambos gestores de bases de datos.

No existen diferencias en cuanto al manejo de clausulas where no

especificadas y empleo de *, en ambos gestores de bases de datos.

No hay diferencias en cuanto a tablas como conjuntos en ambos

Ienguajes algebraicos.

No existen diferencias en cuanto a consultas anidadas y comparaciones

de conjuntos en ambos gestores de bases de datos.

La funcién exists solo existe en SQL 2005, pero no existe en ORACLE.

No hay diferencias en cuanto a conjuntos explicitos y valores nulos en

ambos gestores de bases de datos. _ .

No existen diferencias en cuanto a cambio de nombre de los atributos en

ambos gestores de bases de datos.

No hay diferencias en cuanto a funciones agregadas y de agrupacion en

' ambos gestores de bases de datos.

No existen diferencias en cuanto a comparaciones de subcadenas,

operadores aritméticos y ordenacién en ambos gestores de bases de

- datos.

4.- En Io referente a Lenguaje de Control de Datos, se hallo las siguientes

similitudes y diferencias:

Existen diferencias en la forma de otorgar los privilegios y autorizar el uso

de los objetos en ambos gestores de bases de datos. I

5.-.Podemos concluir que las diferencias entre ambos Ienguajes es mayor

a nivel de Lenguaje de definicién de datos (DDL), siendo minima la

diferencia en el Lenguaje de Manipulacién de Datos (DML) y existen

peque}401asdiferencias a nivel del Lenguaje de Control de Datos (DCL).

6.- También podemos concluir que existen diferencias a nivel de ios

sistemas operativos donde corren estos SGBD, mientras que ORACLE es

multiplataforrna, SQL server solo se ejecuta en el Sistema Operativo de

' V\}401ndowsde Microsoft. �031

' También existe diferencias en cuanto a costos, ya que el costo de utilizar el

�031ORACLE es mayor que en SQL server. A

Desde el punto de vista del software, ORACLE ofrece mas ventajas, como

por ejemplo el uso de DATAWAREHOUSE y MINERIA DE DATOS, que

' 74

M�035

Page 76: §:Q:LServer2oos 3 (:: :3,»:. r;j

forman parte del Lenguaje. SQL también busca mejorar estas

caracteristicas. Ambos utilizan el Modelo Relacional.

7.�024Se podria ense}401arSQL server en un curso inicial de Base de Datos,

por su mayor simplicidad y en un curso més avanzado ORACLE, por ser

més complejo.

75

Page 77: §:Q:LServer2oos 3 (:: :3,»:. r;j

�030 Vlll.- REFERENCIALES

1.- DE MIGUEL, ADORACION Y PIATTINI, MARIO. Fundamentos y

Modelos de Bases de Datos, México: Editorial Alfaomega, 2da edicion,

1999.

2.- ELMASRl/ NAVATHE. Fundamentos de Sistemas de Bases de Datos,

México: Editorial Prentice Hall, 5ta edicion, 2007.

3.- REINOSA, ENRIQUE JOSE I MALDONADO, CALIXTO

ALEJANDRO,..OTROS. Base de Datos, Argentina: Editorial Alfaomega

Grupo editor Argentino, 1era edicion, 2012.

4.- SILBERSCHATZ, ABRAHAM Y KORTH, HENR, Fundamentos de

Bases de Datos. Madrid: Editorial Mc Graw Hill, 4ta Edicion. 2002.

BlBL|OGRAFlA VIRTUAL

* Documentos de Intemet, relacionadas al tema

1.- httgz//www.uhu.es/iacinto mata /*Universidad de Huelva*/

76

Page 78: §:Q:LServer2oos 3 (:: :3,»:. r;j

|X.- APENDICE

77

Page 79: §:Q:LServer2oos 3 (:: :3,»:. r;j

ADICIONALES DE SQL

1.- /* exl obtener nombre, apellido y nombre del departamento de losempleados nacidos entre 1950 y 1960*/ .

select nombrep, apellido, nombred . t�031 from empleado, departamento

where (nd=numerod) and fechan between '19550101' and '1960123 I�030

nombrep apellido nombredJosé Silva InvestigacionAhmed Jabbar Administracion _Alicia Zapata Administracion

2.- /* ex2 Para cada departamento obtener el nombre del departamento, asicomo el numero de personas que trabajan en el, ordenado alfabéticamente*/

select nombred as Departamento, count(*) as NroPersonafrom empleado, departamentowhere (nd=numerod)group by nombredorder by nombred r .

Departamento NroPersonaAdministracio 3 'Direccion 1Investigacion 4

3.- /* ex3 Para cada departamento , donde trabajan mas de 3 personas,obtener el nombre del departamento, asi como el n}401merode personas quetrabajan en el, ordenado alfabéticamente*/

select nombred as departamento, count(*) as NroPersonasfrom empleado, departamentowhere (nd=numerod)group by nombredhaving count(*) > 3order by nombred

Departamento NroPersonasInvestigacion 4

4.- /* Mostrar nombre, apellido, salario de los empleados que trabajan en eldepartamento de investigacién si tuvieran un aumento del 25%*/

A select nombrep, apellido ,1.25*sa1ario as Nuevosalario 'from empleado, departamentowhere nd=numerod and nombred='Investigaci<�031)n'

78

Page 80: §:Q:LServer2oos 3 (:: :3,»:. r;j

nombrep apellido NuevosalarioJosé Silva 37500.0000Federico Vizcarra 50000.0000

' Josefa Esparz 31250.0000Ramén Nieto 47500.0000

5.- /*ex5 prepare una lista de nombre y apellidos de todos los gerentes dedepartamento que tienen hijos con su mismo sexo*/

select distinct nombrep, apellidofrom empleado, dependiente, departamentowhere nss=nsse and nd=numerod and empleado.sexo= dependiente.sexoand (parentesco='hija' or parentesco='hijo')

nombre apellidoFederico VizcarraJosé Silva

6.- /*ex6-obtener el n}401merode empleados que trabajan en el departamento~ ='investigaci<')n'*/

select count(*) as NroEmpleadoslnvestigaciénfrom empleadowhere nd in (select numerod

from departamentowhere nombred='investigacién')

NroEmpleadoslnvestigacién4 .

7.�024/*ex7 obtener el n}401merode empleados que trabajan en el departamentode 'investigaci('>n'*/

select count(*) as NroErnp1eadosInvestigaci('>n5 from empleado, departamento

where nd=numerod and nombred='investigaci<�031)n'

NroEmp1eadoslnvestigacién4

8.- /*cc16 Para cada proyecto obtener el numero y el nombre del proyecto,asi como el promedio de sueldos de los empleados que trabajan en e'l.*/

select numerop, nombrepr, avg(salario) as Sa1arioPromfrom proyecto, empleado_proyecto, empleadowhere numerop=nump and nsse=nss

_ group by numerop, nombrepr

79 ,-

Page 81: §:Q:LServer2oos 3 (:: :3,»:. r;j

numerop nombrepr SalarioProm1 ProductoX 27500.0000002 ProductoY 0 31666.6666663 ProductoZ 39000.00000010 Automatizacio 30000.00000020 Reorganizacién 4600000000030 Nuevasprestaciones 31000.000000

9.- /*cc17 Mostrar los salarios resultantes si cada empleado que trabaja enel proyecto �034Reorganizacion�035recibe un descuento del 10%.*/

select nombrep, apellido, 0.9*salario as Descuentofrom empleado, empleado_proyecto, proyectowhere nss=nsse and numerop= nump and nombrepr='Reorganizacion'

nombrep apellido DescuentoFederico Vizcarra 36000.000 'Jaim Botello 49500.000Jazmin Valdes 38700.000

10.- /*cc18 Obtenga los nombres de todos los empleados del departamento .4 que trabajan mas de 20 horas por semana en el proyecto�030Automatizacion�031*/

select nombrep, apellido, sum(horas)as horasfrom empleado, empleado__proyectowhere nd=4 and nss=nsseand nump in (select numerop

from proyectowhere nump =numerop and nombrepr = 'Automatizaci<')n�030)

group by nombrep, apellidohaving sum(horas) > 20

nombrep apellido horasAhmed Jabbar 35.0

11.- /*cc19 Obtener el nombre de todos los empleados que tienenconyuge.*/

select e.nombrep, e.apellido �030from empleado ewhere e.nss in (select nsse

from dependienteA where nsse=e.nss and parentesco='c<')nyuge')

nombrep apellidoJose�031 SilvaFederico VizcarraJazmin Valdes

' so

Page 82: §:Q:LServer2oos 3 (:: :3,»:. r;j

12.- /*cc20 Seleccionar nombre y apellido de los Empleados que nacieronentre el 58 y 60.*/ �030

select nombrep, apellido -from empleadowhere fechan between '01/01/58' and '31/12/60'

nombrep apellidoAhmed JabbarAlicia Zapata

81

Page 83: §:Q:LServer2oos 3 (:: :3,»:. r;j

' UNIVERSIDAD NACIONAL DEL CALLAO A. Facultad de lngenieria Industrial y de Sistemas

SYLLABUS1.- INFORMACION GENERAL

1.1 Nombre de la Asignatura: Base de DatosNro : 43 'Cédigo del Curso : PCO83

1.2 Carécter : Obligatorio �0301.3 Pre-requisito : Lenguaje de Programacién III

1.4 Numero de créditos 2 04Horas semanales : Seis(06):Teoria : 02 Hrs.Préctica : 02 Hrs.Laboratorio 2 02 Hrs.

1.5 Cicio Académico : Octavo Ciclo1.6 Semestre Académico : 2013-111.7 Duracién : 17 semanas1.8 Profesora : Mg Bertila Garcia Diaz

2.- SUMILLAProporcionar al estudiante los elementos ba'sicos del procesamiento *de datos. Modelamiento de BD. Modelo Relacional, AlgebraRelacional. SQL. Normalizacién. Datawarehouse y Bases de Datosdistribuidas.

3.- OBJETIVO GENERAL:Conocer las técnicas de Dise}401oque permitan dise}401aruna Base deDatos en todos sus aspectos.

4.- COMPETENCIAS- Domina una Metodologia de Dise}401ode Base de Datos.

0 Dise}401aBases de Datos usando el modelo relacional.0 Crea Bases de Datos usando el SGBD SQL, realiza consultas,

passwords. Etc.0 Dise}401aBases de Datos a partir de Documentos.o Comprende la importancia del Datawarehouse en la toma de

decisiones.

5.- PROGRAMACION DE LOS CONTENIDOS

UNIDAD I: ARQUITECTURA PARA SISTEMAS DE BASES DEDATOS

Contenidos Procedimentales0 Describe los diferentes niveles de la arquitectura de las Bases «

de Datos.

Contenidos Actitudinaleso Distingue los diferentes niveles de la arquitectura de las Bases

de Datos.

82

M�031

Page 84: §:Q:LServer2oos 3 (:: :3,»:. r;j

Contenidos Conceptuales

Primera Semanalntroduccién a los Sistemas de Bases de Datos. Diferencia entrearchivos y Bases de Datos. Deflnicién y Arquitectura de un Sistema deBases de Datos.

UNIDAD ll: MODELADO DE DATOS CON EL ENFOQUE ENTIDAD-RELACION «

Contenidos Procedimentales

o Esboza modelos entidad- relacién

Contenidos Actitudinales

o Expone diferentes ejemplos de modelos entidad- relacién A

Contenidos Conceptuales

Segunda SemanaEnfoque de modelo de Datos Entidad-Relacién, Guias paradeterminacién de Entidades, Atributos, Relacionamientos.Laboratorio: Pr. de Modelamiento N° 1

Tercera SemanaAsociaciones bésicas del Modelamiento de datos. Controles deNegocios: opcional, mandatoria. Laboratorio: Pr. de Modelamiento N°2 �024Pr. N° 3 de Erwin. .

Cuarta SemanaExtensiones al modelo E-R: Clasificacién, Generalizacién, Agregacién.Laboratorio: Pr. de Modelamiento N° 2 - Pr. N° 4 de lng. Delantera yReversa.

UNIDAD III: MODELO RELACIONAL Y ALGEBRA RELACIONAL

Contenidos Procedimentales

- Modifiga el Modelo Entidad �024Relacién al modelo Relacional

Contenidos Actitudinales I

o Transforma el Modelo Entidad �024Relacién al modelo Relacional.

Contenidos Conceptuales

Quinta Semana

Modelo Relacional: Conceptos, relaciones, dominios, tuplas, clavesprimarias y foréneas, reglas de integridad. Laboratorio: Pr. N° 5 deModelo Relacional.

Sexta SemanaModelo Relacional: Algebra Relacional. Operaciones con algebrarelacional. Laboratorio: Pr. N° 5b de Algebra Relacional. 1° Précticacalificada de ERWIN

' 83

Page 85: §:Q:LServer2oos 3 (:: :3,»:. r;j

Setima SemanaConversion del Modelo ER al Modelo Relacional. Laboratorio: Pr. N°5c de Conversion del Modelo ER al Modelo Relacional. Exposiciéndel Avance ER. �031

Octava SemanaExamen Parcial.

UNIDAD IV: SQL

Contenidos Procedimentaleso Administra una Base de datos en un SGBD como SQL server

Contenidos Actitudinales

o Ejemplifica una Base de datos en un SGBD como SQL server.

Contenidos Conceptuales

Novena SemanaSQL: caracteristicas, definicién de tablas, reglas de lntegridad,manipulacion de datos y desarrollo de Aplicaciones. Laboratorio: Pr.N° 6 lntroduccién al SQL.

Decima SemanaSistema Relacional: Vistas, SQL embebido. DDL(data definitionlanguage). Laboratorio: Pr. N° 7 SQL �024DDL _

Onceava SemanaSQL. DML (data manipulation language), DCL (data control language).Laboratorio con SQL SQL2008. Laboratorio: Pr. N° 8 SQL -�024DDL - 'Pr. N° 9 SQL �024DML. .

UNIDAD V: NORMALIZACION

Contenidos Procedimentaleso Esboza el modelo fisico a partir de un documento.

Contenidos Actitudinaleso Dise}401ael modelo fisico a partir de un documento. �030

Contenidos Conceptuales

Doceava Semana .Normalizacionz Primera, Segunda, Tercera y Cuarta Forrna Normal.Aplicaciones. Laboratorio: Pr. N° 10 SQL - DML. (Compa}401ia)- Pr. N°12 Normalizacion.

Treceava SemanaCuarta Formal Nonnal. Ejemplos de Aplicaciones. Laboratorio: Pr. N�03411 SQL �024DCL - Pr. N° 12 NormalizacionUNIDAD VI: DATAWAREHOUSE Y BASES DE DATOSDISTRIBUIDAS

A 84

Page 86: §:Q:LServer2oos 3 (:: :3,»:. r;j

Contenidos Procedimentales

o Esboza la importancia del Business Intelligence en la toma dedecisiones.

Contenidos Actitudinales

o Comunica la importancia del Business Intelligence en la tomade decisiones. �031

Contenidos Conceptuales

Catorceava SemanaFundamentos, Dise}401oy Construccién, Uso del Datawarehouse,Mineria de DatosLaboratorio: Pr. N° 13 Procedimientos Almacenados - Pr. N° 14

Funciones.

Quinceava SemanaSistemas distribuidos; Bases de datos distribuidasz lntegridad,recuperacién, concurrencia. Sistemas Cliente/servidor. 2da Précticacali}401cadade SQL

Dieciseisava SemanaExamen Final.

Diecisieteava SemanaExamen Sustitutorio.

6.- CRITERIOS DE EVALUACION:

N1: Nota de Primer parcial (Primera Parte)N2: Una nota de Trabajos PrécticosN3: Una nota de Examen FinalPromedio General = (N1 + N2 + N3)/3

7.�024 METODOLOGIA

La metodologia empleada, sera' activa, que favorezca la particlpaciéndel alumno, Se estimularé el interés por la investigacién cientifica.

- Exposicién sobre el avance del proyecto finalo Précticas dirigidas y calificadas en el Laboratorio de

Computacién.

8.- BIBLIOGRAFIA

8.1 Bibliografia Basica* Sistemas de Bases de Datos ($$)Elmasril Navathe, Edi. Addison-Wesley lberoamericana, S.A. 2° edicién,2000, 887 pg) �030

* Fundamentos de Sistemas de Bases de DatosV Elmasnl Navathe, Edi. Prentice Hall, 5ta edicién, 2011

* Base de Datos

�030 85

Page 87: §:Q:LServer2oos 3 (:: :3,»:. r;j

Enrique José Reinosal Calixto Alejandro Maldonado..otros- - Edi. Alfaomega

Grupo editor Argentino, 2012 _

8:2 Bibliogra}401aComplementariaflgitroduccién a los sistemas de Bases de DatosDate C.J. Edi. Addison-Wesley lberoamericana, 7ema edicién, 2001,

936 pag.

* Bases de Datos desde Chen hasta Codd con Oracle,Luque Ruiz, lrene- Gomez Nieto, Miguel Angel, Edi. Alfaomega-Rama,2002

* Dise}401oy Administracién de Bases de Datos,Gary W. Hansen, James V. Hansen, Edi. Prentice Hall, 2da edicién,

2000

* Fundamentos y Modelos de Bases de DatosAdoracién de Miguel y Mario Piattini, Edi. Alfaomega, 1999, Mexico.

* Microsoft SQL Server 2008 lmplementacién -

Manual de Sistemas UNI

* Fundamentos de Bases de Datos ($3)Abraham Silberschatz, Henry Korth, Edi Mc Graw Hill, 2002

86

Page 88: §:Q:LServer2oos 3 (:: :3,»:. r;j

A x.- ANEXOS

87

W

Page 89: §:Q:LServer2oos 3 (:: :3,»:. r;j

88

W

Page 90: §:Q:LServer2oos 3 (:: :3,»:. r;j

L.�024PERMISOS

DAR: PERMISQS;

SEE SELECT ELSLZII campo) :|_DI.E_I-.E.'[_f:ZL1-LEQAJEI campos) : (campo)}

QM obj_etoIQ {usuario {EUBLIC} [yi/ITH GRANT OPTION ]

La opcién WITH GRANT OPTION da Ia posibilidad de propagar los propios privilegios libremente.

REVOKE QRANT OPTION FOR] permisosQN_ objeto FROM usuarios

QESTRICT ',CASCADE}

La opcién GRANT OPTION FOR da Ia posibilidad de propagar los propios priviIegios libremente.

3.: VISTAS.

CREATE VIEW nombreA§ SELECT campos FROM tabla

La vista tiene los mismos permisos que la tabla (el creador tiene que tener al menos el permiso

SELECT sobre la tabla).

- Ias Iistas, ya sean de valores, de campos 0 de tablas, se separan por comas.

- Lo indicado entre corchetes es opcional.

- Lo indicado entre Ilaves es una lista de opciones de la que debe escogerse una.

NOTA:

0 Se indica en color rojo los signos de puntuacién y similares necesarios para una correcta

sintaxis.

- Se indica e_n may}401sculas,de color azul y subrayadas las palabras reservadas del lenguaje

SQL.

89

Page 91: §:Q:LServer2oos 3 (:: :3,»:. r;j

J.- CONSULTAS DE ACCION

1.:

DELETE campos FROM tabla WHERE criterio; '

Para m}402ltiplestablas, en "campos" debe especi}401carse<tabla>- <campo>

(todas deben ser de multiplicidad M21).

Para todos los registros, en "campos" debe especi}401carse<tabla>.�031

}402§_53_RI_|J}402'_Qtabla [campos].V_A_LiE§ valores

Para insertar registros de otra tabla (tabla2):

l_f_\_l§_EB_T LNIQ tabla [Ll base__datos-external (campos)

§__E_LE9_T. tab|a2.campoL . . . .tabIa2.campoj EEQM tabla2;

Si queremos insertar registros de otra tabla (tab|a2) que tiene igual estructura:

INSERT INTO tabua SELECT tab|a2.* FROM tabuaz ; '

3.: UPDATE

LJ_E�030M\I_Etab|a_S_EI campo__1= expresién_1. . . ., campo_n= expresién_n

WHERE criterio];

K.- CLAUSULAS DE UTILIDAD: .

1%..- E:Xft$'i.:' - '

WHERE |!_\_|OT] EXISTS (subselect)

EXISTS devuelve cierto si la SUBSELECT devuelve al menos 1 va|or.

N01�031EXISTS devuelve cierto si ta SUBSELECT no devuelve ningfm va|or.

SELECT campos FROM tabla WHERE . . . GR0UPB_Y . . . HAVING . _ ,

Q51D_E}401L3_\_�031{nombre__co|umna : posicic'>n_coIumna} { ASC }_D_E§9. }

Ordena una salida de consulta por un campo en modo ascendente (ASC) o descendente (DESC).

w U=N£O=N �030

SELECT . . . FROM . . .UN|ON SELECT . . . FROM _ _ _

Recupera en una (mica consulta la informacién de varias. Los SELECTS deben ser compatibles.

Con la opcién ALL se muestran las filas duplicadas.

90

' a

Page 92: §:Q:LServer2oos 3 (:: :3,»:. r;j

F .- CLAUSULA SELECT

§_ELE.QI [ ]{ campos :* }EB.QM tablas HERE condicién];

Recupera registros de la base de datos con ciertos criterios.

G.�024CLAUSULA WHERE

§.EL-EQI camposE.'3_0_M tabIas criten'o:

Determina qué registros de las tablas deben enumerarse.

H.- CLAUSULA GROUP BY �024HAVING C

1.: V

SELECT campos [. funciones_co|umna] FROM tablas |\/VHERE condicién]

Q3942 L3_Y_ campos:

Los campos del GROUP BY deben aparecer en el SELECT.

Crea varias subtablas compuestas por }401lascon el mismo valor para la columna de agrupamiento.

SELECT campos [, funciones_co|umna]_FR0_M tablas [V_V__HER.E condiciém]

______GROUP .331 campos HAVING condicién

Los campos del GROUP BY deben aparecer en el SELECT.

Permite elegir grupos que se quieren visualizar.

l.�024 CONCATENADORES Y CUANTIFICADORES: ANY, ALL e W

SELECT campos FROM tablas WHERE campo_concatenador {ANY {ALL} (subselect) ;

devuelve cierto si lo es para algun va|or. L

devuelve cierto si lo es para todos los valores. -

IN: se usa si se sospecha que devuelve mas de un va|or (ver en apartado C de este anexo).

Sirven para anidar SELECT con SUBSELECTS. Son operaciones de relacién y clausulas IN.

Para operaciones de relacién, el resultado el SUBSELECT debe ser (mioo.

' �030 �030 91

M

Page 93: §:Q:LServer2oos 3 (:: :3,»:. r;j

D.- OPERADORES LOGICOS Y RELACIONALES:

1;: AN3, ': devuelven sus correspondientes valores de verdad légicos.

<3�031? ' <2�031<1?�031 :

32..-V recupera registros seg}402nun intervalo de valores.

campo M9l] valor_1 AND valor_2

4...- compara una expresién de cadena con un modelo SQL

expresién}402f}401' modelo�030

El modelo puede incluir: �035,[carécter especia|],?,# (mimero), I '3 (rango),! (distinto).

EN: recupera registros cuyo campo indicado coincide con alguno de los de la iista.

expresién [N_O_T]1!\_l (valor_1, . . .. va|or__n)

E.- CONSULTAS DE PREDICADO « .

* El predicado esté entre la clausula y los campos a recuperar.

1:5.~ (por defecto) : devuelve todos los campos de una tabla (equivale a * ), pero es mejor

Seleccionar expresamente los campos para no ralentizar las consultas.

T.=�035O=IP-=1devuelve un numero detenninado de registros de una consulta order by. '

|§ELECT]TOP n° EERCENT] campos FROM tabla

.____.0RDER BX. campos [£9 :D.§S_C_3];

PERCENT devuelve un porcentaje de los registros seleccionados.

ASC y DESC corresponden a los modos de ordenamiento ascendente y desoendente.

omite registros con campos seleccionados coincidentes. _

42.: D¥S:T1N�254TR.QW:omite registros duplicados (todos los campos coincidentes).

ALEA-S: asigna otro nombre a un campo (equivale a un AS).

E.g: }402§E apellidoA_§ empleadoE_R2M plantilla _

92

Page 94: §:Q:LServer2oos 3 (:: :3,»:. r;j

3.- RESTRICCIONES Y TRIGGERS V

' 1.-. REST'RECC'lQNE.S -

CHECK condiciéni

R:E;S"f'RlQC-l0NE,S; M:EN;EO..«

CREATE DOMAIN nombre_A_$_ tipo;

3. ASERQONEES: (_RESTR_lC.,C;%O.f\tE£$ VAREASJ TAB.iJ?«S)_.

CREATE ASSERTION nombre CHECK condicion ;

4: T.E'R!G.-G.ERS:- (�030QDfS.P=ARARES;).

CREATE TRIGGER nombre {BEFORE {AFTER}

ELETE l$5_RI ILJRMIE 9£ campos}

A EFERENCING {gL_o :!:LE.;V!}& nombre]{EOR EACH ROW {FOR EACH STATEMENT }

CM tabla [Viki (predicado)]_B_E_G.lN. cuerpo.E_NQ;

C.- OPERADORES DE COLUMNA O AGRUPAMTENTO:

Se expresan detrés del SELECT o HAVING (nunca detrés del WHERE), y operan con todas las }401las

que cumplen Ia condicién WHERE » A

{Al/_§. ll :3U_M :M_A_)$ :ML\.|}campo

1-: AVG: promedio de los valores de un campo. _

2.1:» COUNT: n}402merode registros de una seleccién.

(3(3jUNl'(*) : cuenta todos los registros, incluidos los nulos.

3.- SUM: suma de los valores de un campo.

4.». MEN: va|or méximo o minimo de los valores de un campo.

93

Page 95: §:Q:LServer2oos 3 (:: :3,»:. r;j

Q L§:¥;.1.§. ._ 9_..L;m G: -

A.�024OPERACIONES CON TABLAS

1.:

tabla ( campo_1 tipo_1 ]. . . ., campo__n tipo_n ]

]alias (campo__i). /�031clave primaria */

[§_9_N_$_«JEl}402alias (campo_i). /* indice unico �031/

|CONSTRA|NT aliaslgli}401(restriccién). �030I. .] /�035restricciones sobre una tabla */

CONSTRAINT alias FOREIGN KEY (c|ave_ajena)REFERENCES tabla_referenciada(campo_ref) ) ; /' clave ajena */

2.- B_;ORRAR�030

D_R_QE1D\§L_§tabIa [SET NULL ; CASCADE ; RESTRICT 1; ,

_ 3.:

ANADIR UN CAMPO:A AL_T_E_B. L/�034Q-_E.tabla./LED. campo tipo;

BORRAR UN CAMPO:

AL_LE_B_I}402�024._E_tabIaQ&QB campo [EINLJLL I __.__.CA3CADE : .__RE_S. T__R|C_.T._ 1;

4.- MA.NEJQ :2._E. mres (VALOR.E-S) 'INSERTAR VALORES:

___.___|N$ERT LNIQ tabla [(coIumna)]_.._____.VALUE3 ( expresiones) 2

MODIFICAR VALORES:EH2/_\I§ tabla§E_T campo-= expresién[ condicién ]:

BORRAR VALORES:

DELETE E_B_Q__M_ tabla [WHERE condicién ];

*- MQEZQS» Y�031AGTUAhEZAQ:K}N:-

ENLJJ-_1�024_:pone a nulos los campos referenciados.

E : pone al valor por defecto los campos referenciados.

: borra incluso los campos referenciados.

RESTRICT: no borra si hay campos referenciados.

94

W