Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Seguridad de las bases de datos (página 3)




Enviado por mari_88_990



Partes: 1, 2, 3

"CAMBIO DE
TAMAÑO DE LA BASE DE DATOS"

Para realizar esta función
puede utilizar la instrucción ALTER DATABASE o el administrador
ciroiratuvo de SWL Server. Para hacer más chica una
base de datos
debe usar los comandos DBCC
SHRINKDATABASE o DBCC SHRINKFFILE. Para añadir grupos de
archivos a la
base de datos puede usar la instrucción ALTER
FDATABASE.

Esta es la sintaxis para la instrucción ALTET
DATABASE
:

ALTER DATABASE nombre_baseDatos

{

ADD FILE <especificación_archivo> [,..n]
[TO FILEGROUP nombre_gruposArchivos]

ADD LOG FILE <especificación_archivo>
[,…n]

REMOVE FILE nombre_logico

ADD FILEGROUP nombre_gruposArchivo

MODIFY FILE
<especificación_Archivo>

MODIFY FILEGROUP
nombre_gruposArchivos,propiedad_gruposArchivos

}

<especificación_archivo>

(NAME =´nombre_fisico´

[,SIZE=tamaño]

[,MAXSIZE=tamaño_maximo UNLIMITED]

[,FILEGROWTH=incremento_crecim]

"EXPANSION DE LA BASE DE
DATOS"

Puede expandir las bases de datos
añadiendo archivos adicionales para crecimiento. Pude
añadir archivos a la porción de datos del registro de la
base de datos. Amenos que específicamente se hayan
desactivado las características de crecimiento
automático de la base de datos crecerán
automáticamente hasta que se acabe el espacio del
disco.

ENTRADA
Adición de un nuevo archivo a la base
de datos.

ALTER DATABASE croak

ADD FILE

(NAME=croakdata",

FILENAME=
´C:MSSQL7DATSACroakdata2.nsf´,

SIZE=2,

MAXSIZE=10,

FILEGROETH=2)

ENTRADA/SALIDA

Extender el archive del registro de la base de
datos.

ALKTER DATABASE croak

ADD LOG FILE

(NAME=Croaklog2.ndf´,

SIZE =2,

MASIZE=10,

FILEGROWTH=2)

REDUCCION DE LA BASE DE DATOS

Para reducir una base de datos completa puede usar el
comando DBCC SHKRINKDATABASE.

Esta es la sintaxis:

DBCC SHKRINKDATABASE

{

(nombre_baseDatos

[,target_porcentaje]

[,{NOTRUNCATE TRUNCATENLY}]

}

Esencialmente la instrucción SHKRINKDATABASE
trata de reducir todos los archivos de datos de todos los
archivos de datos de la vase de datos usando la
instrucción DBCCSHRINFILE

Esta es la sintaxis para la instrucción DBCC
SHRINKFILE:

DBCC SHRINKFILE

{

(nombre_Archivo clave_archivo}

[,tamaño]

[,{EMPTYFILE NOTRUNCATE TRUNCATETEONLY}])

}

"CAMBIO DE NOMBRE DE UNA BASE DE
DATOS"

Para cambiar el nombre de una base de datos debe
ejecutar el procedimiento
almacenado de sistema
sp_renamedb.

Restricciones cuando cambie el nombre a una base de
datos:

  • Debe de ser miembro de la función fija de
    servidor y
    sysadmyn para cambiar nombre a una base de datos.
  • Alguna secuencia de comandos de SQL pueden
    perder del nombre de la base de datos para ejecutar
    correctamente. Habrá que revisarlos en la base de
    datos.
  • La base de datos debe estar en modo de un solo
    usuario.
  • Los archivos y grupos de archivos de la base de datos
    no son afectados por un cambio de nombre.
  • Debe estar en la base de datos maestra para ejecutar
    el procedimiento almacenando de sistemas
    sp_renamedb.

"COMO ELIMINAR UNA BASE DE
DATOS"

En cualquier caso eliminar una base de datos de SQL Server es
una tarea realmente difícil. Como tal vez ya haya
adivinado, puede hacerlo desde el administrador corporativo de
SQL Server o por medio del Transact_SQL.

Antes de que elimine, una base de datos hay unas cuantas
cosas que debe recordar:

  • La eliminación de una base de datos elimina
    toda la información de la base de datos de las
    tablas del sistema y de los archivos de datos del
    sistema.
  • Una base de datos elimina solo puede se restaurada
    desde eliminarla.
  • Debe ser miembro de la funcion de base de datos
    db_owner para eliminar la base de datos.

"RECUPERACION
AUTOMATICA"

Si un disco deja de funcionar o un archivo de base de
datos se corrompe, necesitar restaurar cualquier base de datos
que pueda ser afectada por la perdida de los archivos.

Otra razón para restaurar una copia de seguridad de base
de datos es restituir una base de datos a punto de consistencia
lógica
en el tiempo.

La recuperación automática es el proceso que
realiza SQL cada vez que ejecuta el servicio
MSSQLserver. No se le puede desactivar y no necesita hacer nada
especial para que suceda.

Cada vez que SQL server reinicia, ejecuta un conjunto de
pasos que vuelven a aplicar cualquier transacción
conformada que se encuentre en el registro de
transacción.

El proceso de recuperación automática
garantiza que sin importar como ni porque se detuvo SQL Server,
comenzara en un estado
lógicamente consistente.

La recuperación automática procesa cada
base de datos en un orden particular.

O que hace localizando primero el archivo de la base de
datos maestra buscando su ubicación en el registro de
Windows
NT.

Después de que SQL Server localiza los archivos
de la base de datos maestra, carga y recupera esa base de datos.
Debe cargar y recuperar y restaurar primero la base de datos
maestra debido a que contiene las frecuencias hacia el archivo de
datos primario.

Antes de que SQL pueda recuperar cualquier otra base de
datos, debe recuperar la base de datos modelo. Debe
recuperar la base de datos modelo por que el siguiente paso
será crear la base de datos tempdb.

Luego se restaura la base de datos msdb, seguida por la
base de datos de distribución, en caso de que exista, las
bases de datos pubs y Nortwind y, por ultimo cualquier base de
datos de usuario.

"CONFIGURACION DE LA RECUPERACION
AUTOMATICA"

Lo mas importante que se puede hacer para establecer la
recuperacion automatica es codificar la opcion Recovery Interval.
Esta opción especifica la máxima cantidad de tiempo
que esperara SQL Server para realizar una recuperación
automática de una base de datos.

Para configurar el intervalo de recuperación
necesita el procedimiento almacenado del sistema
sp_configure.

Por ejemplo:

Para cambiar el intervalo de recuperación a tres
minutos debe ejecutar el siguiente código
transact_SQL:

Exec sp_configure ´recovery
interval’,3

Go

Reconfigure with Override

Go

"RECUPERACION MANUAL"

Este proceso de recuperación de una base de
datos.

"ELIMINACION DE TABLAS"

Puede facilitar tablas en el administrador corporativo
de SQL Server mediante un clic derecho en la tabla y
seleccionando eliminar en el menú contextual.

Para eliminar una tabla utilizando Transact_SQL, ejecute
la instrucción DROP TABLE.

Por ejemplo para eliminar la tabla
tblempleados:

DROP TABLE tblemployees

Para eliminar una tabla por medio del administrador
corporativo de SQL Server siga los siguientes pasos:

  • Llegue hasta la carpeta tablas, haga un clic derecho
    en la tabla que desee eliminar y seleccione
    eliminar.
  • Obtendrá un cuadro de dialogo.
  • Si desea ver cualquier dependencia de esta tabla,
    haga clic en el botón Dependencias.

"MODIFICACION DE ENCABEZADOS DE
COLUMNAS"

Los encabezados de las columnas serán los nombres
utilizados en listas _ columnas.

En vez de usar los encabezados de columnas, como lmane y
fname, puede producir otro encabezados de columnas.

En SQL Server puede hacer alias de las columnas de dos
maneras:

SELECT
encabea¡zado_columna=nombre_columna

FROM nombre_tabla
O bien;

SELECT nombre_columna ASencabezado_columna
FROM nombre_tabla.

"DESCOMPOSICIÓN Y
NORMALIZACIÓN
"

Siempre que un analista de
sistemas de base de
datos arma una
base de datos, queda a su cargo descomponer
dicha base en
grupos y segmentos de
registros. Este
proceso es la
descomposición; el mismo es necesario independientemente
de la
arquitectura de la base de
datos – relacional, red o jerárquica-. Sin embargo,
para la base de datos relacional, la acción
correspondiente puede dividirse y expresarse en términos
formales y se denomina
normalización a la misma. La

normalización convierte una
relación en varias sub-relaciones, cada una de las cuales
obedece a reglas. Estas reglas se describen en términos de
dependencia. Una vez que hayamos examinado las distintas formas
de dependencia, encontraremos
procedimientos a aplicar a las relaciones de
modo tal que las mismas puedan descomponerse de acuerdo a la
dependencia que prevalece. Esto no llevará
indefectiblemente a formar varias subrelaciones a partir de la
única relación preexistente.

Dependencia

Significado ; Antes de entrar en el tópico
principal de dependencia, vamos a rever algunos conceptos acerca
de los individuos y acerca de las tuplas que los describen en la
base de datos relacional (BDR). Restringiremos la
discusión a la BDR, si bien la misma se aplica igualmente
a las otras arquitecturas.

Los individuos tienen muchos atributos que pueden ser
de
interés a diferentes personas en
diferentes momentos. Nuestro problema actual es con una sola
aplicación o conjunto de aplicaciones: solemne son
de
interés algunos de los atributos. Los
símbolos aplicables a la relación
han sido introducidos previamente.

• R es una tupla general o vector que describe a un
individuo;

• R es una relación, una
matriz o un conjunto
de
vectores que pertenecen la
población de interés.

• U es
el universo consistente en todas las posibles
descripciones individuales, obtenido mediante una
combinación exhaustiva de
los valores a
atributos.

La tupla general toma la siguiente forma

R = (a, b, c, …., n) La pertenencia con respecto a
relaciones, tuplas y universos se indica mediante. Con respecto a
los atributos:

• A es el símbolo del nombre de un
atributo

• a es el símbolo de un
valor del
atributo.

Dominio (A) es el
dominio para el atributo cuyo nombre es
A.

Campo de aplicación. Estamos interesados en
relaciones dependientes entre atributos de los individuos en una
o varias poblaciones. Consideramos a los atributos D, E, y F. La
dependencia es una relación funcional tal que los

valores de una (o
más de una) de las
variables determina y fija
el
valor de las otras

variables en la
relación dependiente. Consideramos el caso en el que E y F
dependen de D. Esto se describe más brevemente en forma
simbólica:

e = e (d) f = f(d)

Existen tres tipos distintos de dependencia.

Total uno-uno-sinónimo

Completa – subtupla

Transitiva – múltiple.

La dependencia es una relación funcional que
penetra en el
universo de posibilidades. La dependencia no
puede deducirse solamente de los datos de nuestra, ya que
éstos son necesariamente incompletos, sino que debe ser
inherente al
comportamiento del

sistema. Por ejemplo, si los datos revelan que
cada uno de nuestros
proveedores tiene
exactamente una planta y que todas estas
plantas están en diferentes ciudades,
podemos asumir una dependencia total entre proveedor, planta y
ciudad. Es decir, dada una ciudad, la misma está asociada
con un proveedor; y dado este proveedor estará asociado
con una ciudad. En la práctica, solamente cuando un nuevo
proveedor se incorpore con una planta en la misma ciudad que uno
de nuestro antiguos
proveedores,
resultará claro que no existe dicha dependencia total,
Esto no podría ser deducido a partir de los datos
previos.

Dependencia Total: Consideremos los atributos x e y.
Cada valor de x
tiene uno y solo un valor de y asociados a el; e inversamente,
dado un valor de y existe solamente un valor de x asociado a
éste. Se trata de una función unitaria de una
variable tanto en sentido directo como inverso y por o tanto se
denomina dependencia total. Otra forma de expresar lo mismo es
decir que x e y son sinónimos; ambas expresiones son
equivalentes. Ejemplo con clave

Si una de las variables es
al mismo
tiempo la clave, como consecuencia todo valor de
ambas variables es único en cualquier tupla de la
relación. Por ejemplo, consideremos un
archivo de
personal donde cada uno de los empleados es
identificado de tres maneras.

• Su nombre

• Su número de
seguridad social

• Su número de empleado

Los tres pueden representar una dependencia total. Tanto
el número de
seguridad social como el número de
empleado identifican al individuo en forma única. El
número de
seguridad social atañe a la

población completa de trabajadores de
los
Estados Unidos. El número de empleado se
aplica solamente al
personal de una
empresa en particular. El nombre puede no ser
totalmente único y la dependencia total existe solamente
cuando cada empleado tiene un nombre único. Si el
número de empleado es al clave de la relación, el
número de
seguridad social es sinónimo de aquel.
Podemos en consecuencia decir que el número de seguridad
social, el campo no clave, es totalmente dependiente de la
clave, y es una clave candidata. Si los nombres de todos nuestros
empleados son únicos, también pueden, ser claves
candidatas. Sin embargo puede existir alguna duplicación,
dos personas llamadas John Smith, por ejemplo. Dado que esta es
una posibilidad, no puede establecerse una dependencia total con
respecto total con respecto al nombre. Puede incorporarse a la
firma un nuevo empleado y este puede tener el mismo nombre que
uno de nuestros empleados actuales. Ejemplo con
estado Consideremos una
relación que contiene
información sobre
estado en dos formas
:

• Una identificación de estado con dos
letras, tal como CA para California.

• Una designación con un número de
dos dígitos tal como 12 para

California.

Estas dos formas de
información sobre estado ilustran una
dependencia total. Debe notarse sin embargo que muchas tuplas
pueden contener la misma identificación de Estado, dado
que muchos de nuestros
clientes pueden provenir de California. En
consecuencia resulta claro que la dependencia total no significa
unicidad. Dependencia Completa El
concepto de dependencia completa se aplica
solamente cuando:

• Tenemos más de dos variables, y

• Una variable dependiente depende de dos o
más variables independientes.

Consideramos una relación que abarca las
variables P, Q y R. Supongamos que P es la variable dependiente.
Si el valor de P está determinado por una función
de Q y R combinados, se trata de una dependencia completa. Esto
es, el valor de P no depende únicamente ni de Q ni de R.
Vamos a repetir esto simbólicamente. El valor de P es
completamente dependiente de
los valores de q y
r.

p = p (q,r)

Ejemplo con orden de compra. Como un ejemplo de
dependencia completa, consideremos el caso de una orden de
compra. Supongamos que esta orden de compra describe mediante
tres variables que son de interés para
nosotros:

• El número de orden de compra (PON) designa
la orden completa;

• El número de parte de pieza designa una de
las partes ordenadas por el pedido;

• La cantidad de piezas es el número de
unidades de dicha pieza requerida para satisfacer el
pedido.

Los pedidos describen en consecuencia una orden por
medio de varias partes diferentes, y para cada una distinta
asociada. El
sistema contable ve varios pedidos diferentes.
La misma parte puede aparecer en distintos pedidos y, cuando ello
sucede, puede estar asociadas distintas cantidades con la misma
parte. Un tupla de la base de datos relacional contendrá
un PON un número de parte y una cantidad. La cantidad es
completamente dependiente del PON y del número de parte.
Resulta claro que el número de pedido no es suficiente
para determinar la cantidad todas las partes de un determinado
pedido no tiene la misma cantidad). Análogamente, un
número de parte no es suficiente para determinar la
cantidad ordenada, dado que diferentes pedidos pueden requerir
distintas cantidades de dicha parte. Por lo tanto, es nuestro
ejemplo, la cantidad no es dependiente solamente del PON o del
número de parte; es completamente dependiente de ambos.
Puede imaginarse, aunque no es muy probable el caso de que cada
vez ordenados una parte la ordenamos solamente por una cantidad
como una docena, o tres gruesas o cualquier otro valor fijo. Si
esto ocurre para todas las partes y para todos los pedidos de
nuestro sistema, en consecuencia no existirá dependencia
completa. En efecto podemos decir que hay dependencia total entre
cantidad y número de partes – condición
improbable-. Hemos examinado anteriormente un ejemplo
académico y las variables profesor,
clase y
sección. Tenemos en esta caso una dependencia completa de
profesor respecto de clase y sección. Si en nuestra
facultad está establecido existirá dependencia
completa. Esto existiría que un profesor enseñe
siempre a todas las secciones de una clase particular – una
condición no muy factible con un curso de 20
secciones-.

Dependencia transitiva La dependencia transitiva se
aplica o tres o más variables. Consideremos el caso de
solo tres variables y llamémoslas S, T y V.

Diremos que S es la variable independiente si los

valores de S determinan
tanto a T como a V, y se simbolizará
así:

S —-> T; S —-> V

Sin embargo, sería deseable encontrar una
relación más restrictiva o definida.

Tenemos dependencia transitiva cuando S determina a T y
V, pero los valores de
V pueden considerarse siempre como dependiendo de los valores de T.
Esto puede escribirse como

S —-> T; T —-> o alternativamente
como

v = v(t); t = t(s) v = v(t(s))

Reducción: Si podemos manejar las dependencias
transitivas, podremos reducir el espacio total requerido para
almacenar los datos. Varios valores de S pueden generar un
único valor de T. De modo similar, pueden existir varios
valores de T asociados solamente con un valor de V. La
separación de estas relaciones permite conservar espacios.
Esto puede observarse mejor con respecto al ejemplo que se
describe más abajo.

Ejemplo: Consideramos un ejemplo que asocia

cursos con departamento y con
escuela. En consecuencia, canto será
dictado por el departamento de música en la
escuela de Artes y
Ciencias; hidráulica será dictada
por
ingeniería civil en
la Escuela de

Ingeniería;

impuestos será dictado por el
departamento contable en la Escuela de
Administración.
Llamemos

• S al curso

• T al departamento

• V a la escuela

Por lo tanto

S —-> T —-> V

la descomposición consiste en la
asociación de un curso con un departamento en una
relación. Otras relación identifica a cada
departamento con una escuela. Esta segunda relación es
necesariamente menor tanto en grado como en cardinalidad y
aquí reside el
ahorro de
espacio.

Normalización: ¿Qué es normalización?

Normalización es un
proceso que clasifica
relaciones, objetos, formas de relación y demás
elementos en
grupos, en base a las
características que cada uno posee. Si se
identifican ciertas reglas, se aplica un categoría; si se
definen otras reglas, se aplicará otra
categoría.

Estamos interesados en particular en la
clasificación de las relaciones BDR. La forma de efectuar
esto es a través de los tipos de dependencias que podemos
determinar dentro de la relación. Cuando las reglas de
clasificación sean más y más restrictivas,
diremos que la relación está en una forma normal
más elevada. La relación que está en la
forma normal más elevada posible es que mejor se adapta a
nuestras necesidades debido a que optimiza las condiciones que
son de importancia para nosotros:

• La cantidad de espacio requerido para almacenar
los datos es la menor posible;

• La facilidad para actualizar la relación
es la mayor posible;

• La explicación de la base de datos es la
más sencilla posible.

Primera forma normal

Para que una relación esté en primera
forma normal (1 FN), debe ser solamente una relación
propia, una matríz m por n, donde:

• Ninguna celda de la
matriz está
vacía;

• El
valor n cualquier columna
está definido por el
dominio para dicho atributo.

• Cada tupla tiene una clave que la identifica en
forma unívoca, pero dicha clave no significa
orden.

La aplicación determina la
relación

Para que una relación sea normalizada en pasos
adicionales, debe encontrarse en la primera forma normal. Colocar
los
datos en la primera forma normal está a
cargo del diseñador de la aplicación. Estos

datos se encuentran disponibles de alguna manera
inicialmente. Si la aplicación existe en forma

manual, o ha sido anteriormente computarizada
pero no todavía como relación, el diseñador
reorganiza los datos de modo de conformar una matríz
1FN.

La segunda inicial más importante es la
dimensión de la relación ¿cuántos
componentes existen en la tupla o cuántas columnas en la
tabla? ¿De qué manera se compara esto con el
número de campos en el documento fuente?.

En la figura se puede observar un documento como

muestra, una
factura típica.
Parte de la
información es fija y otra variable. La
figura nos
muestra un formulario impreso dentro de l cual
se ha agregado
información. La impresión puede
dividirse en dos categorías.

• Información descriptiva para el
usuario

• Nombres de atributos.

La información impresa es necesariamente fija.
Podemos observar el nombre de la compañía en la
figura, así como otras particularidades (tales como el
número de teléfono que no figura aquí). Otros
nombres impresos corresponden a los atributos cuyos

valores se escriben en el
momento en que el formulario es llenado. Estos nombres de
atributos son también los nombres de campos para almacenar
los datos en el
sistema. Los que se escribe son
los valores de atributos.
La información convertida queda formada en tuplas. La
próxima pregunta es cuantas tuplas representarán a
la formación en esta forma. Debe notarse que el
número de partes ordenadas varía de una

factura o pedido a
otro.

Wetco factura no.
91529

23 river road fecha factura 3/19/77

saltsea texas

orden fecha

de
cliente vendedor de la orden via orden
wetco

M0007 2-14 3/12/17 ups 1922447

Cliente no. 31-0285-fl

Venta a flores associates expedido a

108 8 avenue el mismo

brooklyn, n.y. 11215

cantidad
precio parte

descripcion
monto

Pen-

Orde-despa-dien-

Nada chada te

2 2 3.50 018719 camisa 7.00

2 2 .35 020428 guia .70

1 1 .70 020808 rodillo
motor .70

1 0 .25 020811 rodillo libre 0.00

1 1 6.00 020819 humidrum 8.00

Transporte Y

Seguro .96

17.38

Dado que una tupla debe tener un número fijo de
componentes, necesitamos una tupla en primera forma normal para
cada parte de cada pedido. Sin embargo, la información que
se encuentra en la parte superior del formulario, y que se llena
a máquina, es la misma para todas las partes ordenadas
más abajo. Por lo tanto cada tupla consiste en una parte
de datos que son
variables y datos del
pedido que se duplican para cada parte ordenada.

Grafo de Dependencia

Una vez que los datos han sido puestos en primera forma
normal, resulta conveniente descomponer la relación en un
número de relaciones más pequeñas, cada una
en forma normal superior, de modo de optimizar el
almacenamiento y usar su
funciones. Para esto resulta necesario reconocer
las dependencias existentes. Un grafo exhibe los distintos tipos
de dependencias que existen, y enfatizan que hemos investigado
completamente cada dependencia.

El grafo simple no está diseñado para
mostrar dependencias. Para hacer utilizable a este grafo, se
agregan
colores pueden expresarse en blanco y negro
mediante distintos tipos de líneas. Discutiremos estos
tipos de líneas en términos de la dependencia que
cada uno representa. En las figuras que siguen las formas
gráficas aparecen a la izquierda y se
utilizan para constituir un grafo completo. A la derecha se puede
observar una forma simbólica para describir dependencias
únicas.

Dependencia única

En la figura vemos un arco que conecta dos
vértices A y B. A es la cola y B es la cabeza de la
"flecha". Esto significa que B depende de A. Es decir dado
un
valor de A podemos
predecir de A. Es decir, dado un valor de A podemos predecir
cuál será el valor de B.

Dependencia total

La dependencia total se define como una dependencia
bilateral o simétrica. Es decir, si C depende de D, en
consecuencia D será dependiente en forma similar de C.
Esto se expresa en la figura mediante una arista (sin una flecha)
que une C y D. Para enfatizar la dependencia total, se usa una
línea doble o una línea más gruesa. Esto
representa una medida de
seguridad para verificar que el usuario no
dibuje un arco e inadvertidamente omita la flecha.
Simbólicamente se utiliza una doble flecha.

Dependencia completa

La variable G depende en forma completa de otras
dos
variables E y F, lo cual
puede ilustrarse como se ve a la izquierda de la figura. Pero
así no es representada adecuadamente la dependencia
completa, ya que el valor de G no depende de E o F,
independiente, sino que depende de ambos
valores. Por lo tanto en
el centro de la figura A, vemos una forma mejor; la arista que
une E y F no intenta demostrar una dependencia entre E y F, por
lo tanto se dibuja en líneas de trazos; a partir del
centro de esta línea de trazos, se dibuja un arco dirigido
hacia G para indica que G depende de ambas variables E y
F.

Dependencia transitiva

Supongamos que dos variables, K y L, dependen de J. Si
puede verificarse que L depende en forma primaria de K,
existiría una dependencia transitiva. Mostramos a la
izquierda de la figura B que L. depende de J o de K. Más
apropiado s el grafo del centro de la figura B, donde podemos ver
que L está definida por K la cual, a su vez, está
determinada por
los valores de
J.

Simbólicamente indicamos una dependencia
transitiva de L respecto de J mediante una flecha de trazos desde
J a L, como puede verse a la derecha de la figura B.

Ejemplo

En la figura B se presenta un grafo de dependencia
hipotético. En el mismo se dibujan las relaciones de
dependencia entre atributos para una aplicación de
remuneración. EMPNO y DEPTNO están subrayadas en la
figura para expresar que ambas son partes de una clave compuesta
para la relación. Una línea gruesa conecta EMPNO a
EMPNOM para indicar que si nombre de empleado y existe una
dependencia total.

Varios atributos dependen directamente del número
de empleados:

• TITL es el título de la tarea del
empleado

• PAYLVL es un carácter que indica el nivel de sueldo del
empleado.

• HORAS representa el número de horas que el
empleado ha trabajado la presente semana.

• PAYRT está apuntado a PAYLVL indicando que
el régimen de pago es transitivamente dependiente del
nivel de pago.

La línea de trazos que une PAYRT y HORAS indica
que ambas participan en una dependencia completa por la cual el
receptor es PAYAMT, el valor pagado para esta semana.

A la derecha de la figura, encontramos los atributos que
dependen del número de departamento. Obsérvense la
dependencia total entre número y nombre del jefe del mismo
(MGRO y MGRNM).

Hay solamente un atributo que es completamente
dependiente de ambas partes de la clave compuesta, es decir,
el número de

proyecto,
PROJNO.

Segunda Forma Normal

Una relación está en segunda forma normal
(2FN) solamente si todos los atributos son dependientes en forma
completa de la clave.

Descripcion De La Segunda Forma Normal (2 Fn)

Su nombre ya nos indica el hecho de que la segunda forma
normal es por lo general el próximo paso de

normalización y
descomposición. Para ser accesible a la
normalización, y
poder ser puesta en
segunda forma normal, la relación debe poseer las
siguientes propiedades:

• Debe estar en primera forma normal

• Debe tener una clave compuesta.

La consecuencia inmediata de los requerimientos
expresados más arriba es que cualquier relación en
primera forma normal que tiene una clave simple, está
automáticamente en segunda forma normal. Comencemos con un
ejemplo en forma de tabla de una relación consistente en
17 atributos, que se presenta en la figura. La misma se encuentra
en primera forma normal y tiene una clave compuesta que consiste
en dos atributos P y Q. Estos están subrayados en la
figura para mostrar que sirven como clave. La tupla de
relación puede también escribirse linealmente en
forma simbólicamente:

R = (A,B,C,D,E,F,G,H,I,L,M,N,O,P,Q)

El próximo paso es crear un grafo de dependencia,
presentando aquí como figura. Debe notarse que este grafo
se crea examinado con conocimientos y atributos para determinar
como participan y relacionan entre ellos.

No resulta suficiente analizar la matríz de
relación, la cual puede hacernos creer que existe una
dependencia debido a que la muestra de la
cual se ha extraído dicha relación es
pequeña. Si somos inducidos a error por los datos
existentes y construimos una dependencia donde esta no existe, se
planteará un problema. Cuando lleguen nuevos datos que
contradigan la dependencia, deberá dejarse de lado el
esquema completo.

Supongamos en consecuencia que el grafo que se puede
observar en la figura ha sido derivado en forma funcional y que
expresa correctamente las dependencias. Resulta claro a partir de
este grafo que los atributos que parten de P son dependientes
solamente de este. De un modo similar los que parten de Q
dependen solamente de este último. Solamente aquellos que
parten de la línea de trazos que conecta a P y Q tienen
dependencia completa de ambos. Esta es la guía para la
descomposición.

Descomposición

La figura contiene 3 sub-árboles, la base de nuestra
descomposición. Definimos una subtupla general en base a
cada sub-árbol y en consecuencia:

P' = (P,A,B,C,E,H,K)

Q' = (Q,F,G,J,N)

PQ = (P,Q,D,I,L,M,O)

Aquí la raíz de los sub-árboles de
la izquierda y la derecha. P y Q, se convierte en la clave de sus
respectivas subtuplas; ambos. P y Q forman la clave compuesta
para la subtupla PQ.

Proyección

El próximo paso es proyectar la relación R
sobre cada una de estas subtuplas para formar tres nuevas
relaciones, y en consecuencia.

P' = proyectar R(P')

Q' = proyectar R(Q')

PQ = proyectar R(PQ)

Las relaciones así formadas nos dan tres nuevas
sub-relaciones. Una subrelación es la relación que
deriva de una relación mayor. Las subrelaciones ilustradas
en la figura están correlacionadas por medio de los
componentes de sus claves. La clave compuesta P y Q de la
relación original R. es también la clave de la
sub-relación PQ. P y Q tienen a P y Q respectivamente como
claves. La línea de trazos en la figura indica que Q
está correlacionada con PQ por medio de la componente Q y
P está correlacionada con PQ por medio de P.

Para restablecer la relación original R debemos
juntar estas tres subrelaciones en algún orden, indicado
simbólicamente como:

R = juntar P [juntar PQ, (Q)] (P) = juntar Q[juntar PQ
P(P)] (Q).

Grafos

La nueva sub-relación que se ve en la figura se
presenta en forma de grafo en la figura siguiente. Existe una
considerable analogía entres estas figuras y la figura
anterior. Lo importante es la diferencia. En PQ existe una
línea de trazos que conecta los componentes de la clave
compuesta P y Q en el centro de la figura. Los arcos parten del
centro de esta línea de trazos hacia todos los componentes
de P y Q, los cuales son dependientes en forma completa de ambos,
es decir de P y Q. Una línea de puntos conecta P en la
relación PQ a P de la relación P. Esto representa
la correspondencia entre ambas veces P. Una línea de
puntos conecta de un modo similar Q en PQ a Q en Q para indicar
una correspondencia similar.

Efectos

El efecto de esta descomposición puede no
resultar inmediatamente claro. Debemos insistir en que ninguna
relación correcta debe contener tuplas duplicadas. La
relación original R contiene muchas subtuplas duplicadas
P' y Q'. Las mismas han sido eliminadas durante la
descomposición. Esto facilita en forma extraordinaria la
actualización y otras importantes
operaciones que afectan a estas relaciones, las
cuales serán aclaradas en los ejemplos que
siguen.

Ejemplo de inventario

Vamos a utilizar ahora un ejemplo práctico para
demostrar la normalización. En la figura se observa una
parte de la matríz de relación PW.

Pueden verse los nombres de los atributos
simbólicos y sus significados, pero no sus valores. Las
columnas no aparecen en ningún orden en particular. Debe
observarse la clave compuesta que distingue cada tupla, que
abarca el número de pieza y el número de
depósito PNO y WNO.

Arbol de Dependencia

El medio para descomponer la relación es el
árbol de dependencia que se ve en la figura. Este
árbol ha sido construido solamente teniendo en cuenta la
dependencia completa, y no muestra las dependencias total o
transitiva, que se describe más adelante, si es que las
mismas existen.

Como podíamos esperar, aparecen tres
sub-árboles. El sub-árbol de la izquierda, con
raíz PNO, contiene los atributos que se aplican solamente
a la pieza o parte. El sub-árbol de la derecha con
raíz WNO describe cada depósito. EDl
sub-árbol del centro corresponde a las partes y al
depósito, y describe la cantidad de partes disponibles en
el depósito, QOH, y el número de cajón o
estante, BIN (o algún otro parámetro de
ubicación), donde dichas partes pueden ser
halladas.

El próximo paso es definir tres tuplas generales
para cada sub-árbol,

P = (PNO, DESC, PR, UNIT)

W = (WNO, WAD, FUE)

P/W = (PNO, WNO, BIN, QOH)

La descomposición consiste en proyectar la
relación PW sobre cada una de estas tuplas para obtener
tres nuevas sub-relaciones:

P = proyectar PW(P)

W = proyectar PW(W)

P/W = proyectar PW(P/W)

La descomposición en la figura muestra las tres
relaciones como
matrices; la línea
de trazos indica como se vinculan las relaciones.

Efecto

Discutiremos ahora algunas de las ventajas obtenidas
mediante la descomposición. Si estas relaciones se
utilizan para el
control de
inventario. nuestra preocupación
será cuantas piezas de cada tipo están disponibles
en un depósito en particular. Cuando se retiran piezas o
se reciben nuevos envíos la cantidad disponible, QOH
será la variable de
cambio. La
actualización consiste en poner al día
sub-relación P/W la cual ahora contiene solamente malos
componentes en lugar de los nuevos P/W.

Existe una tupla P en la sub-relación de pieza o
parte, P, para cada parte y una tupla. W, en la sub
relación W, para cada depósito y estos
últimos probablemente no serán muchos. Consideremos
la facilidad de efectuar cambios en un depósito en
particular. Si un atributo de uno de los depósitos
varía entraremos en W para efectuar el
cambio solamente en una
tupla. En la primera forma normal para PW teníamos que
encontrar todas las tuplas en las cuales el valor de WNO esta el
particularmente deseado, y efectuar el mismo cambio en cada una
de ellas. Si dicho depósito almacenaba 100 partes, como
consecuencia debía variar 100 tuplas de PW. El

procedimiento de actualización se aplica
también a las descripciones de partes. Si el

precio de alguna parte o
pieza cambia, este cambio es independiente del depósito en
el cual se almacena dicha parte. Solamente se efectúa un
cambio en P a diferencia de los muchos que hubieran sido requeridos para PW.

Tercera forma normal

Una relación se encuentra en tercera forma normal
(EFN) si no existen transitividades entre sus atributos y si ya
se encuentra en 2 FN.

Descripción

Una relación R a poner en tercera forma normal
debe estar en la segunda forma normal. Es muy común que R
sea una sub-relación; la relación original estaba
en primera forma normal (para ponerla en segunda forma normal fue
descompuesta en varias sub-relaciones). Estas son ahora
candidatas a una descomposición adicional.

Recordamos que las propiedades de la segunda forma
normal (2Fn) son:

• Tenemos una matríz m x n con un valor
determinado para cada componente de cada tupla.

• Cada valor es obtenido a partir de un

dominio propiamente definimos

• Cada valor contiene una clave, ya sea simple o
compuesta

• Cada componente no clave es dependiente en forma
completa de su clave.

En consecuencia es evidente que tenemos, o bien una
clave simple, o una clave compuesta de la cual todos los
componentes no clave son dependientes en forma
completa.

El objeto de esta fase es determinar todas las
dependencias transitivas; la descomposición
producirá a continuación sub-relaciones para las
cuales no existirán dependencias transitivas -la
definición de la tercera forma normal (EFN)-.

Una dependencia transitiva abarca como mínimo
tres componentes. Si los componentes fueran más, la
dependencia múltiple puede derivarse en varias
dependencias atransitivas de tres componentes solamente dada una.
Por lo tanto dirigiremos nuestra atención a una dependencia transitiva
simple de tres componentes. Tal dependencia puede expresarse
como:

Q —> A —-> B

En la cual se dice que B depende de A y que A depende de
Q. La transitividad existe debido a que el valor de B depende en
la última instancia del valor de Q.

La dependencia transitiva es degenerada si cualquiera de
las dependencias anteriores es total. Esto es, podemos prever que
la relación de Q a A es muchos-unos, donde varios valor
único de A. Dado un valor tal Q el valor de A queda
determinado. La inversa no se aplica y en consecuencia no existe
una dependencia total: dado un valor de A el valor
correspondiente de Q no queda determinado a menos de que se trate
de una dependencia total.

El
ahorro que surge de
colocar la relación en tercera forma normal aparece a
raíz de la granularidad del dominio
involucrado. Se puede prever que:

num dominio (Q)> num dominio (A) > num dominio
(B)

Determinación de al dependencia
transitiva

Si el grafo utilizado para llevar la relación a
la segunda forma normal es completo en termino de las
transitividades existentes, no resulta necesario un grafo
adicional. El grafo para convertir a la segunda forma normal
requiere solamente que todas las dependencias completas y
parciales sean conocidas. Supongamos que no hemos establecido
todas las dependencias transitivas. Se presenta una
situación simple en la figura anterior donde A, B y C son
dependientes de Q. SI suponemos que existe una dependencia entre
A, B y C son dependientes de Q. Si suponemos que existe una
dependencia entre a y B debemos confirmarlo en forma
funcional.

Una dependencia total entre A y B en el grafo de la
figura puede representarse como se ve en la figura el arco desde
A a B no muestra una dependencia de B respecto de A inversamente
el arco a partir de B hacia A muestra una dependencia de A
respecto de B; los arcos a partir de Q a A y a B nos muestra la
dependencia de cada una de éstas respecto de Q. Esto puede
observarse nuevamente en la figura, donde una doble arista entre
A y B indica la bi-direccionalidad de esta dependencia. El hecho
de que Q apunte a esta arista nos muestra que cada una de las
variables A y B es claramente dependiente de aquella.

Como ejemplo sea Q el número PO, A el
número de parte o pieza y B el nombre de parte, A y B son
totalmente dependientes y cada uno dependen de Q.

Transitividad simple

Para la dependencia transitiva unilateral, la variable
independiente apunta a la variable dependiente, tal cual se
presenta en el figura donde B depende de A. El arco entre B y Q
ha sido eliminando; la dependencia implícita de B respecto
de Q resulta obvia.

Si se presenta la dependencia inversa, debe gratificarse
como se ve en la figura.

Descomposición

Dada una sub-relación con una o más
dependencias transitivas, la descomposición consiste en
partir la relación en una o más de una
sub-relación, donde la variable intermedia aparezca como
variable dependiente en una y como variable independiente en la
otra.

Caso simple Tenemos:

Q —> A —-> B

Q —> C

Dado que ambas, A y C dependen directamente de Q deben
conservarse en una sub-relación Q, con clave
Q.:

Q —> A; Q —> C

Debe separarse la relación directa remanente, y
colocarla en su propia sub-relación A' con la
A:

A —> B

Los grados de Q' y A'. Aquí la componente A
relaciona Q' con A, a es la clave simple de A'. Si bien A no es
la clave de Q' es le medio de relacionar un valor de Q en Q' con
un valor de B en A' y se llama por lo tanto la clave externa de
Q' . Para crear Q' y A' debemos utilizar las subtuplas generales
Q' y A' denifidas en consecuencia:

Q' = (Q,A,C)

A' = (A,B) donde el subrayado indica una
clave.

Este deben proyectarse sobre Q para obtener las
sub-relaciones:

Q'= proyectar Q(Q')

A'= proyectar Q(A')

Caso Compuesto

Las dependientes transitivas múltiples han sido
investigadas y exhibidas. Tenemos en consecuencia.

Q –> C

Q –> A –> B1

Q –> A –> B2

Q –> A –> B3

La descomposición separa nuevamente todas estas
variables directamente dependiente de la clase original en una
subtupla. Q'' = (Q, A, C)

Las variables restantes son todas dependientes directa o
totalmente de A o C y se reorganizan de un modo similar. A'' =
(A, B1, B2, B3); C'' = (C, D)

Deben construirse tres sub-relaciones por
proyección:

Q'' = proyectar Q(Q'')

A'' = proyectar Q(A'')

C'' = proyectar Q(C'')

Aquí Q'', A'' y C'' aparecen como
sub-árboles. Las mismas se relacionan por medio de la
clave externa de Q'' es decir A y C; esto se muestra mediante la
línea de puntos entre A y A y entre C y C. Nos podemos
mover directamente entre las dos figuras sin la
intervención de pasos simbólicos, utilizando
solamente manipulaciones gráficas.

Descomposición Gráfica

Hemos discutido el enfoque simbólico. Dado un
grafo 2FN. Debemos seleccionar en primer término los nodos
apuntados por la raíz que no sean hojas. Los mismos se
convierten en raíces de sus propios sub-árboles,
A'' y C''. Estos sub-árboles son eliminados de Q dejando
en Q'' solamente los nodos A y C, que son las raíces de
A;; y C''.

Ejemplo de orden de compra

Examinaremos solamente una pequeña porción
de la relación orden de compra que ha sido convertida en
un grafo de dependencia. Para esta porción de la
relación compra PP, tenemos:

• Las partes se compran utilizando el número
de parte, PNO;

• Un vendedor, VNDR está asociado a cada
parte;

• Cada vendedor tiene una clasificación de
forma de pago, PAYCLS.

Por lo tanto PAYCLS representa si el vendedor debe
cobrar dentro de los 10 días, 30 días, 60
días, etc. La acción para convertir la
relación.

Tenemos aquí una relación transitiva que
puede ser representada en consecuencia:

PNO —> PAYCLS

Sabemos que la variable intermedia, el vendedor VNDR, es
el que determina el tipo de pago de modo tal que

PNO —> VNDR –> PAYCLS

para poner esta relación en la tercera forma
normal, la misma se descompone en dos sub-relaciones. Las dos
sub-relaciones PV y VP, se forman por proyección a partir
de la relación original PP de modo tal que:

PV = proyectar PP (PNO, VNDR); PV = proyectar PP (VNDR,
PAYCLS).

La relación PV relaciona partes con
vendedores.

La identificación del vendedor, VNDR es la clave
externa par PV. La misma se utiliza para entrar en la
relación VP, en la cual es la clave primaria.

Debe notarse que, para el
mantenimiento, si cambia
la clase de pago solamente cambiara una entrada o tupla en VP y
ninguna en PV. Para el caso de PP hubiera cambiado muchas
tuplas.

Ejemplo de inventario

Presentamos ahora una porción de un ejemplo
de
inventario, al cual corresponde el grafo
parcial. Tenemos en este caso:

• PNO es un número de parte

• PNM es el nombre de parte y tiene dependencia
total con el número de parte

• PREC es el
costo de UNITS multiplicado por el número
de partes

• PCL es la clase de parte, la cual da el tipo de
parte en términos de su peso y de su forma.

• WHN es el número de depósito donde
está almacenada la parte.

• WHLOC Es la ubicación del
deposito

• FUE es la categoría de
seguro de incendio del
depósivto.

Resulta claro a partir del grafo que el número de
parte determina la clasificación de la parte, la cual a su
vez determina parcialmente el deposito donde está
almacenada dicha parte. Usaremos esta dependencia transitiva, que
está circundada con línea de trazos gruesos, para
descomponer la relación en su tercera forma normal: PNO
—> WHN; PNO —> PCL —> WHN

La variable intermedia, clase de parte, PCL, es el medio
de que disponemos para descomponer el grafo. Se deja como
ejercicio hallar las proyecciones y la relaciones
resultantes.

Ejemplo bancario

Consideremos parte de un ejemplo de
banco donde cada depositante tiene un
número de cuenta que lo identifica. El depositante recibe
una línea de
crédito. Puede
extraer
dinero hasta dicho valor.
La parte no utilizada de
crédito puede ser
retirada cuando lo desee. Vemos que la línea de crédito
LNCR es funcionalmente dependiente del número de cuenta
CUET; el valor ya extraído DEBIT es también
dependiente del número de cuenta. El valor de
crédito disponible en este momento, DISP, es dependiente
en forma completa de ambos, LNCR y DEBIT.

Parecería que lo lógico es descomponer el
grafo y volver a presentarlo. En base a esto, P tiene como clave
el número de cuenta CUENT. Debemos entrar en P para
obtener LNCR y DEBIT. Estas son claves externas para P; las
mismas forman la clave compuesta para entrar en Q y hallar el
valor de la variable completamente dependiente DISP.

Esto funcionaría, pero hay una forma más
simple de resolver el problema. El valor de crédito
disponible en la actualidad es simplemente la diferencia entre la
línea de crédito y el debido corriente. Todo lo que
tenemos que hacer es ejecutar una sustracción. La
relación original no necesita contener DISP. dado que
éste se calcula simplemente durante el procesamiento. Por
lo tanto podemos sencillamente omitir Q.

Transitivas múltiples.

Establecemos de entrada la condición simple de
que Z sea dependiente en forma transitiva de Q. Si existe
más de una variable intermedia de dependencia, la
transitiva no será completa hasta que se especifiquen
todas dichas variables. Es decir, si bien empezamos con la
condición de transitividad, Q —> Z,

la condición completa podría ser, Q
—> X —> Y —> Z

Ninguna condición intermedia Q —> X —>
Z —>; Q —> Y —-> Z

sería suficiente para descomponer la original de
la figura.

Cuarta forma
normal

Dependencias multivaluadas

La tercera forma normal toma en cuenta la dependencia
transitiva y provee una reducción óptima universal,
excepto para los casos infrecuentes de dependencia multivaluadas.
Ha quedado claro en épocas recientes que es posible una
reducción adicional en este caso, y esto es lo que se
lleva a cabo mediante la cuarta forma normal.

Existe una dependencia multivaluada cuando un valor de
una variable está siempre asociado con varios valores de
otra u otras variables dependientes que son siempre las mismas y
están siempre presentes. Esto se ilustra mejor con el
ejemplo presentado en la figura. La relación FAB
describe
tejidos. La variable independiente (con respecto
a las dependencias (multivaluadas) es el número de tejido
FABNO. Con el se encuentra asociados un
modelo (o patrón) y un
color. En la figura, el tejido 345 vienen en
dos
modelos y entres combinaciones de

modelo y
color. En este caso se aplica el grafo de
dependencia. Para hacer mas clara que esta es una dependencia
multivariable, una cabeza doble de flecha apunta desde FABNO o
PATRN y también desde FABNO a COLOR.

La ineficiencia en el
registro de información y se resulta
clara al examinar las dos nuevas relaciones. La primera de
éstas, FABPAT lista el número de tejido contra el
modelo; en el segundo caso, FABCOL, lista el número de
tejido contra las combinaciones de color. Dado que la regla es
que todas las combinaciones de las variables dependientes
multivaluadas deben prevalecer, resulta simple reconstruir la
relación FAB a partir de las dos sub-relaciones que
resultaron.

Descomposición Para poner una relación o
sub-relación en la cuarta forma normal debe

poder aplicarse lo
siguiente:

• Debe estar en la tercera forma normal.

• Deben existir una o mas
multidependencias.

Después de construir el grafo de dependencia, el
próximo paso es ejecutar proyecciones utilizando la
variable independiente y una de las variables
multidependientes.

FABPAT = proyectar FAB (FABNO, PATRN)

FABCOL = proyectar FAB (FABNO, COLOR)

El resultado son nuevas sub-relaciones que han sido
utilizadas para ahorra espacio y permitir una más
fácil actualización.

Ejemplo de profesor y texto

Consideremos otro ejemplo. Los
cursos dictados en una
escuela corresponden a un número de
curso. Asociada a cada número de curso se encuentra la
descripción del mismo. Para cada curso
existe una selección
de textos y una selección de profesores. Puede darse
cualquier combinación de
texto y profesor.

El grafo de dependencia. El mismo nos muestra una
dependencia total entre el número de curso y la
descripción del curso. Existe una multidependencia
entre
texto y número de curso, y también
entre profesor y número de curso.

Para descomponer la sub-relación en sus
relaciones más pequeñas, se efectúan tres
proyecciones. Las sub-relaciones resultantes.

2.5.1 SUBCONSULTAS

Una subconsulta es una instrucción SELECT anidad
dentro de una instrucción SELECT, SELECT…INTO,
INSERT…INTO, DELETE o UPDATE dentro de otra
subconsulta.

Puede utilizar tres formas de sintaxis para crear una
subconsulta.

Comparación [ANY [ALLA] SOME] (instrucción
sql) expresión [NOT] IN (instrucción sql) [NOT
EXISTS] (instrucción sql)

En donde

Comparación: es una expresión y un
operador de comparación que compara la expresión
con el resultado de la subconsulta.

Expresión: es una expresión por la
que se busca el conjunto resultante de la subconsulta.

Instrucción SQL

Es una instrucción SELECT, que sigue el mismo
formato y reglas que cualquier otra instrucción SELECT.
Debe ir entre paréntesis.

Se puede utilizar una subconsulta en lugar de una
expresión en la lista de campos de una instrucción
SELECT o en una cláusula WHERE o HAVING. En una
subconsulta, se utiliza una instrucción SELECT para
proporcionar un conjunto de uno o más valores
especificados para evaluar en la expresión de la
cláusula WHERE o HAVING.

Se puede utilizar el predicado ANY o SOME, los cuales
son sinónimos, para recuperar registros de la
consulta principal, que satisfagan la comparación con
cualquier otro registró recuperado en la subconsulta. El
ejemplo siguiente devuelve todos los productos cuyo
precio
unitario es mayor que el de cualquier producto
vendido con un descuento igual o mayor al 25 por
ciento:

SELECT * FROM Productos WHERE PrecioUnidad > ANY
(SELECT PrecioUnidad FROM DetallePedido WHERE Descuento >=
0.25)

El predicado ALL se utiliza para recuperar
únicamente aquellos registros de la consulta principal que
satisfacen la comparación con todos los registros
recuperados en la subconsulta. Si se cambia ANY por ALL en el
ejemplo anterior, la consulta devolverá únicamente
aquellos productos cuyo precio unitario sea mayor que el de todos
los productos vendidos con un descuento igual o mayor al 25 por
ciento. Esto es mucho más restrictivo.

El predicado IN se emplea para recuperar
únicamente aquellos registros de la consulta principal
para los que algunos registros de la subconsulta contienen un
valor igual. El ejemplo siguiente devuelve todos los productos
vendidos con un descuento igual o mayor al 25 por
ciento.

SELECT * FROM Productos WHERE Idproducto IN (SELECT
Idproducto FROM DetallePedido WHERE Descuento
>=0.25);

Inversamente se puede utilizar NOT IN para recuperar
únicamente aquellos registros de la consulta principal
para los que no hay ningún registro de la subconsulta que
contenga un valor igual.

El predicado EXISTS (con la palabra reservada NOT
opcional) se utiliza en comparaciones de verdadero/falso para
determinar si la subconsulta devuelve algún
registro.

Se puede utilizar también alias del nombre de la
tabla en una subconsulta para referirse a tablas listadas en la
cláusula FROM fuera de la subconsulta. El ejemplo
siguiente devuelve los nombres de los empleados cuyo salario es igual
o mayor que el salario medio de todos los empleados con el mismo
titulo. A la tabla Empleados se le ha dado el alias
T1.

SELECT Apellido, Nombre, Titulo, Salario FROM Empleados
AS T1 WHERE Salario >= (SELECT Avg (Salario) FROM Empleados
WHERE T1. Titulo= Empleados. Titulo) ORDER gv Titulo.

En el ejemplo anterior la palabra reservada AS es
opcional.

SELECT Apellidos, Nombre, Cargo, Salario FROM Empleados
WHERE Cargo LIKE "Agente Ven*" AND Salario > ALL (SELECT
Salario FROM Empleados WHERE (Cargo LIKE "*Jefe*") OR (Cargo LIKE
"*Director*"));

Obtiene una lista con el nombre con el nombre, cargo y
salario de todos los agentes de ventas cuyo
salario es mayor que el de todos los jefes y
directores.

SELECT DISTINCTROW NombreProducto, Precio_Unidad FROM
Productos WHERE (Precio_Unidad = (SELECT Precio_Unidad FROM
Productos WHERE Nombré _ Producto ="Almíbar
anisado")

Obtiene una lista con el nombre y el precio unitario de
todos los productos con el mismo precio que el almíbar
anisado.

SELECT DISTINCTROW Nombre_Contacto,
Nombre_Compañia, Cargo_Contacto, Teléfono FROM
Clientes WHERE
(ID_Cliente IN (SELECT DISTINCTROW ID_Cliente FROM Pedidos WHERE
Fecha_Pedido >=#04/1/93# < #071/93#)

Obtiene una lista de las compañías y los
contactos de todos los clientes que han realizado un pedido en el
segundo trimestre de 1993.

SELECT Nombre, Apellidos FROM Empleados AS E WHERE
EXISTS (SELECT *FROM Pedidos AS O WHERE O ID_Empleado =
E.ID_Empleado)

Selecciona el nombre de todos los empleados que han
reservado al menos un pedido.

SELECT DISTINCTROW Pedidos, Id_Producto,
Pedidos.Cantidad (SELECT DISTINCTROW Productos.Nombre FROM
Productos WHERE Productos.Id_Producto = Pedidos.Id_Producto) AS
EIProducto FROM Pedidos WHERE Pedidos.Cantidad >150 ORDER BY
Pedidos.Id_Producto.

Recupera el código del producto y la cantidad
perdida de la tabla pedidos, extrayendo el nombre del producto de
la tabla productos.

Las restricciones de las subconsultas

Una subconsulta es una cláusula select, usada
como una expresión que forma parte de otra cláusula
select, update, insert o delete.

La subconsulta (select anidado) al ser evaluada
substituye su resultado dentro de la cláusula exterior de
consulta where.

Las subconsultas son usadas

Por que algunas veces son mas fácil de entender
que un join, el cual lleva a cabo algún
propósito.

Para efectuar algunas tareas que en otro caso seria
imposible realizar utilizando un join (por ejemplo usar una
función agregada).

Si la cláusula where de la consulta exterior
incluye un nombre de columna, esta necesitara un join compatible
con el nombre de la columna en la lista
select_subconsulta.

Una subconsulta no puede incluir las cláusulas
order by, compute o into.

El distinct no puede ser usado con subconsultas que
incluyan una cláusula group by.

Subconsultas dentro de la cláusula
WHERE

Si la subconsulta regresa mas de un valor, debe usar
in en la cláusula where de la
consulta exterior en lugar de=

Ejemplo:

Liste los oficios que se encuentran en aprobación
y su estructura
financiera.

Select num_ofi, tipo_inv, cantidad from est_ofi where
num_ofi in (select num_ofi from oficio where tipo_ofi in (select
tipo_ofi from TIPO_OFI where descri like
"Aprobaci_n"))

Subconsultas que regresan Multiples Renglones

Ejemplo

Liste la clave de los proyectos, nombre
y costo total de
los específicos y que pertenecen al municipio de
TEPEZALA

Select proyec, nombre, costo_tot from proyecto where
proyec in (select proyec from pro_espcen al municipio de TEPAZALA
select proyec, nombre, costo_tot from proyecto where proyec in
(select proyec from pro_esp where munici= (select munici from
munici where nom_ofi=TEPAZALA)))

Valores que regresan las subconsultas

Una subconsulta es una instrucción SELECT anidad
dentro de una instrucción SELECT, SELECT…INTO,
INSERT…INTO, DELETE o UPDATE dentro de otra
subconsulta.

Puede utilizar tres formas de sintaxis para crear una
subconsulta.

Comparación [ANY [ALLA] SOME] (instrucción
sql) expresión [NOT] IN (instrucción sql) [NOT]
EXISTS (instrucción sql)

En donde

Comparación: es una expresión y un
operador de comparación que compara la expresión
con el resultado de la subconsulta.

Empleados

El nombre del producto de la tabla de
productos.

2.5.2 OPERADORES

Subconsultas con Operadores de
Comparación

Las subconsultas pueden realizar algunas tareas que
las cláusulas join no pueden hacer.

Una cláusula where en una declaración
select no puede incluir una función agregada.

Una subconsulta puede incluir una función
agregada

Ejemplo (mayor que y una función
agregada)

Liste los proyectos, sus nombres y costo total de los
que se encuentran en aprobación además de que el
costo total de estos proyectos sea menor al promedio de las
cantidades aprobadas de todos los proyectos.

Select proyec, nombre, costo_tot from proyecto where
fase_pro= (select fase_pre from fase_pre where descri like
"Aprobaci_n") and costo_tot < (select avg (can_act) from
est_fin where fase_pre=

"SUBCONSULTAS EN
ACCESS"

MATERIA:
MANEJO DE BASE DE DATOS

MAESTRO:
ING. OVIDIO PEREZ VALENTIN

ALUMNO

Marìa Alayda de Santiago
Sánchez N.L:
03

Brizeida Saldaña Bernal
N.L: 19

Nayeli Anahì Chàvez
Gonzàlez N.L:
12

Cindy Yaneth Miranda
Garcìa N.L:
9

Marìa del Rosario Garcìa
Flores N.L:
28

Iris Loreth Alvarez Salcedo
N.L :

GRUPO:
4104

TURNO:
MATUTINO

CONALEP

IV SEMESTRE
4104

Select * from
productos

Select * from
SALARIO

Select * from
personal

Select * from
empleados

SELECT * FROM productos where
cantidad > any(select cantidad from productos where cantidad
>5)

SELECT DISTINCTROW cantidad,precio
from productos where(precio=(Select precio from productos where
cantidad=50))

SELECT nombre,sexo FROM
PERSONAL

WHERE sueldo (SELECT nombre FROM
SALARIO

WHERE sueldo<200000) AND
sexo="femenino"

select nombre ,precio FROM productos
WHERE precio = ( SELECT precio FROM productos WHERE nombre
="galletas" )

SELECT empleados.nombre FROM
empleados WHERE sexo = 'femenino' AND edad > (SELECT Max(
empleados.edad )FROM empleados WHERE sexo
='masculino');

*MANEJO DE BASE DE
DATOS*

NOMBRES:

Marìa Alayda de Santiago
Sánchez N.L:
03

Brizeida Saldaña Bernal
N.L: 19

Marìa del Rosario Garcìa
Flores N.L:
28

GRUPO:
4104

CARRERA:
Informática

TEMA DEL TRABAJO: "JOIN"

FECHA:
27-Mayo-2005

*TABLAS*

PERSONAL

MATERIA

GUSTOS

PERSONAL JN MATERIA

PERSONAL.NOMBRE=MATERIA.NOMBRE

Sentencia de JOIN

SELECT * from PERSONAL,MATERIA where
PERSONAL.NOMBRE=MATERIA.NOMBRE

PERSONAL JN GUSTOS

PERSONAL.NOMBRE=GUSTOS.NOMBRE

Sentencia de JOIN

SELECT * from PERSONAL,GUSTOS where
PERSONAL.NOMBRE=GUSTOS.NOMBRE

  1. Son programas que
    se ocupan de acceder y actualizar las DBS. Actúan como
    interfase entre el programa de
    aplicación y la DB. Un sistema de gestión de base de datos, es una forma
    de almacenar la información de tal manera que se
    eviten la duplicación de datos. Las bases de datos
    relacionales son aquellas que guardan la información
    en modo de tablas.

  2. ¿Qué es un sistema
    gestor de base de datos?

    Base de datos relacional

  3. ¿Cuál es el tipo de
    base de datos que guarda la información en
    tablas?

    1.- Debe permitir la definición de todos los
    datos.

    2.- Debe permitir manipular datos.

    3.- Debe establecer controles para la seguridad de
    estos.

    4.- Debe permitir los accesos
    concurrentes.

  4. ¿Cuáles son los
    funciones de
    los sistemas de gestión de las base de
    datos?

    L.D.D. Lenguaje
    de descripción de datos.

    L.M.D. Lenguaje de manipulación de
    datos.

    L.C.M. Lenguaje de control de
    datos.

  5. ¿Cuáles son los
    sublenguajes del SQL y define a cada uno de ellos?

    1.- Definición de datos: (modifica la
    estructura o añade campos). La misión
    del L.D.D. es describir y definir todos los esquemas que
    participen en la base de datos. Esto consiste en la
    descripción de los objetos que vamos a representar. La
    descripción de todas las estructuras que formen nuestra base de
    datos.

    Definición de vista: es una
    visión parcial de la tabla. <<cuando en una
    tabla alguna parte de esta no quiero que tenga derecho a
    manipularla nadie>>

    2.- Manipulación de datos:L.M.D.
    recoge todas las operación de intercambio de datos
    entre las tablas, estas operaciones
    pueden ser de consulta o de puesta al día
    (inserción, modificación, supresión)
    estas operaciones se realizan con la ayuda del denominado
    L.M.D.

    -consultas

    Operaciones

    -insertar datos

    -puesto al día – modificar
    datos

    -suprimir datos

  6. ¿Cuáles son los
    objetivos
    de los sistemas gestores de base de datos?

    El principal objetivo de la implantación de
    una base de datos es poner a disposición de un gran
    número de usuarios en conjunto integrado de datos,
    estos datos podrán ser manipulados por los diferentes
    usuarios y es ahora cuando se debe garantizar la coherencia
    de los datos después de las diversas manipulaciones.
    Esto se garantiza con la ayuda del concepto de
    transacción.

  7. ¿Cuál es el principal
    objetivo
    de la implantación de una base de datos?

    1.- Concepción

    2.-Creación de la B.D.
    vacía

    3.-Explotación

  8. ¿Cuál es el ciclo de
    una vida de una base de datos?

    Concepción: la fase de
    concepción consiste en reproducir el mundo real con
    ayuda de uno de los modelos de
    datos conocidos (relacional). El resultado de esta fase en un
    esquema escrito según un formalismo cualquiera no
    interpretable por el S.G.B.D.

  9. ¿Qué es la
    concepción?

    Explotación: Es en esta
    fase donde los registros serán manipulados con la
    ayuda de los lenguajes de
    programación. Es ahora cuando los usuarios pueden
    consultar los datos y ponerlos a punto durante el resto de la
    vida de la base de datos.

  10. ¿Qué es la
    explotación?

    1.-Redundancia de datos

    2.-Puestas al día
    múltiple

    3.- Incoherencia de los datos

    4.-Perdida de datos:

    5.- Dependencia funcional

    6.- Estado de la tabla

  11. ¿Cuáles son los
    problemas
    adquiridos por una mala elaboración?

    Si un cliente ha
    realizado mas de un pedido todos los datos de este cliente
    estarán repetidos tantas veces como pedidos haya, lo
    mismo sucede para los artículos esto es opuesto al
    principal objetivo de una base de datos que consiste en
    evitar la repetición de los mismos.

  12. ¿Qué es la redundancia
    de los datos?

    Para poder
    asegurar la coherencia de los datos es necesario efectuar
    puestas a día múltiples. <<Cuando un
    cliente cambia de dirección>>

  13. ¿Qué es la apuesta al
    día múltiple?

    Si una operación de puesta al día
    múltiple no se ha realizado completamente el estado
    de la base de datos queda incoherente y puede producir
    errores importantes.

  14. ¿Qué es la
    incoherencia de los datos?

    La supresión de una línea en la tabla
    de pedidos entraña la perdida de todos los datos
    relativos a un cliente si no ha efectuado ningún otro
    pedido. Esto es cierto también para un articulo que no
    se pedido por ningún otro cliente. Estas anormalidades
    constituyen lo que se ha convenido en llamar<<comportamiento anormal de las tablas>>,
    para evitar esto existe un proceso llamado
    <<normalización>> que entre otras cosas
    intenta establecer los conceptos de <<dependencia
    funcional y estado de las tablas>>.

  15. ¿Qué es la perdida de
    datos?

    Este concepto se aplica a las columnas y consiste en
    hacer corresponder un único valor a aquella columna o
    columnas que consideramos más
    significativas.

  16. ¿Qué es la dependencia
    funcional?

    Nivel interno, conceptual y externo.

  17. ¿Cuál es la
    clasificación de la arquitectura
    interna de una base de datos?

    La vista conceptual es una presentación de
    toda la información contenida en la base de datos.
    Además puede ser muy diferente en la forma en que
    percibe los datos cualquier usuario final, es decir, debe ser
    un panorama de los datos. Tal como son y no como los percibe
    los usuarios. Debido a las limitaciones del lenguaje o bien
    al equipo que se esta utilizando.

    El nivel conceptual se define mediante un esquema
    conceptual el cuál incluye la definición de
    cada uno de los tipos de registros (entidades),
    además, el esquema conceptual no debe asociarse a
    representaciones de campos almacenados tales como punteros,
    índices, etc., si el esquema conceptual se desarrolla
    en forma independiente de los datos entonces el esquema
    externo definido en base al esquema conceptual será
    también independiente de los datos.

  18. ¿Qué es un nivel
    conceptual?

    Es la que existe entre una determinada Vista Externa
    y la Vista Conceptual. La diferencia que puede existir entre
    estos dos niveles son similares a las que pueden existir
    entre la vista conceptual y la vista interna.

  19. Describe la correspondencia entre el
    nivel externo y conceptual.

    Es la que existe entre la vista conceptual y la
    vista interna específica como se representan los
    registros y los campos conceptuales, si se modifica la
    estructura de la Base de Datos, es decir, nivel interno, debe
    también modificarse la correspondencia para no variar
    el esquema conceptual.

  20. Describe la correspondencia entre el
    nivel conceptual y el interno.

    Se cumple cuando solo las personas autorizadas (en
    su sentido amplio podríamos referirnos también
    a sistemas) pueden conocer los datos o la información
    correspondiente.

  21. ¿Qué es la
    confidencialidad?

    Consiste en que sólo las personas autorizadas
    puedan variar (modificar o borrar) los datos. Además
    deben quedar pistas para control posterior y para
    auditoria.

  22. ¿Qué es la
    integridad?

    Se cumple si las personas autorizadas pueden acceder
    a tiempo a la información.

  23. ¿Qué es la
    disponibilidad?

    Permite establecer las operaciones en un tiempo
    inferior o igual al prefijado.

  24. ¿Qué es el plan de
    continuidad?

    Confidencialidad, integridad y
    disponibilidad.

  25. Menciona los diferentes estratos de
    seguridad.

    La existencia de políticas y procedimientos o la creación de
    funciones como administración de la seguridad o
    auditoria de sistemas de
    información interna.

  26. Describe las medidas Técnico
    Administrativas.

    Como la ubicación de los centros de procesos,
    las protecciones físicas, el control físico de
    accesos, los vigilantes, las medidas contra el fuego y
    el agua, y
    otras similares.

  27. ¿Qué es la seguridad
    física?

    Como el control de accesos a la información
    exigiendo la identificación y autenticación del
    usuario, o el cifrado de soportes magnéticos
    intercambiados transmitidos por línea. (Puede haber
    cifrado de la información por dispositivos
    físicos o a trabes de programas, y en casos más
    críticos como la red SWFT existen los dos
    niveles).

  28. ¿Qué es la seguridad
    lógica?

    Suele ser mediante contraseña, si bien seria
    más lógico, aunque los castores resultan aun
    altos para la mayoría de sistemas, que pudieran con
    características biométricas del usuario, para
    impedir la suplantación. Entre estas pueden estar la
    realización de la firma con reconocimiento
    automático por ordenador, el análisis del fondo de ojo, la huella u
    otras.

  29. ¿Qué es la
    autentificación?

    Una subconsulta es una instrucción SELECT
    anidad dentro de una instrucción SELECT,
    SELECT…INTO, INSERT…INTO, DELETE o UPDATE
    dentro de otra subconsulta.

  30. ¿Qué es una
    subconsulta?

    Al margen de la seguridad, nos parece que el mayor
    riesgo, aun
    teniendo un entorno muy seguro, es
    que la informática, y la tecnología de la información en
    general, no cubran las necesidades de la entidad: no
    estén alineadas con el plan de negocio.

    Limitándonos a la seguridad propiamente
    dicha, los riesgos pueden ser múltiples: el primer
    paso es conocerlos, y el segundo es tomar decisiones al
    respecto; el conocerlos y no tomar decisiones no tiene
    sentido y debiera crearnos una situación de
    desasosiego.

    En definitiva, las amenazas hachas realidad pueden
    llegar a impactar en los datos, en las personas, en los
    programas, en los equipos, en la red y alguna incidencia en
    varios de ellos, como puede ser un incendio.

  31. ¿Cuáles son los
    riesgos en
    una base de datos?

    Otra figura es la del hacker, que intenta acceder a
    los sistemas más para demostrar (a veces sobre todo
    para demostrarse a si mismo) de que es capaz, así como
    que pueda superar las barreras de protección que hayan
    establecido.

  32. ¿Qué es lo que hace un
    hacker en
    una base de datos?

    Son activos vitales todos aquellos relacionados con
    la continuidad de la entidad, como pueden ser: planes
    estratégicos, fórmulas magistrales, diseño de prototipos, resguardos,
    contratos,
    pólizas… y datos estratégicos, que son los
    que más nos interesan bajo la perspectiva de la
    seguridad de la información.

    Y debemos protegerlos pensando en los intereses de
    los accionistas, de los clientes y también pensando en
    los empleados y en los proveedores.

  33. ¿Cuáles son las
    protecciones de activos
    vitales?

    El CONTROL
    INTERNO basado en los objetivos de control y llevado a
    cabo por los supervisores a distintos nivele.

    La AUDITORIA DE SISTEMAS DE INFORMACIÓN
    INTERNA, objetiva e independiente y con una
    preparación adecuada, como control del
    control.

    La AUDITORIA DE SISTEMAS DE INFORMACIÓN
    EXTERNA, contratada cuando se considera necesaria, y como un
    nivel de protección más. Igualmente objetiva e
    independiente.

  34. ¿Cuáles son los 3
    niveles de protección?

    Basado en los objetivos de control y llevado a cabo
    por los supervisores a distintos nivele.

  35. ¿De que trata el control
    interno?

    Controles preventivos, como exigir una
    contraseña antes de permitir el acceso.

  36. ¿Da un ejemplo de control
    preventivo?

    Controles de detección, como lo que avisan de
    incendios
    en sus fases más tempranas, a veces sin verse el fuego
    aún.

  37. Ejemplos de controles de
    detección.

    1.- Equicomposicion

    2.- Thetacomposicion

    3.- Composición externa

  38. ¿Cuáles son los tipos
    de enlaces?

    Una composición es un enlace entre dos tablas
    que dispongan al menos de una columna en común, la
    operación de composición consiste en crear una
    tabla temporal compuesta por las líneas de ambas
    tablas que satisfagan la condicion.

  39. ¿Qué es una
    composición?

    Es una composición que favorece una tabla con
    respecto a otra así las líneas de la tabla
    dominante serán seleccionadas aunque la
    condición no se haya cumplido.

  40. ¿Qué es una
    composición externa?

    Se hace con dos tipos de sentencias una permite la
    inserción de datos del mundo exterior y dos inserta
    datos entre tablas.

  41. Describe la inserción de los
    componentes.

    Primero se realiza un producto cartesiano,
    después se hace una selección donde un registro
    sea igual a otro registro especificando el nombre del campo
    que debe ser igual.

  42. ¿Cómo se describe,
    realiza un Join?

    Se relaciona cada registro de una tabla con cada
    registro de otra tabla.

  43. ¿Cómo se hace un
    producto cartesiano?
  44. ¿Para que sirve la
    cláusula ANY?

Para recuperar registros de la consulta principal, que
satisfagan la comparación con cualquier otro
registró recuperado en la subconsulta.

MARIA ALAYDA DE SANTIAGO
SÀNCHEZ.

CONALEP

MATERIA: MANEJO DE BASE DE DATOS

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter