Índice - Universidad Salesiana de...

66
Lic. Patricia Palacios Zuleta Página 1 1 Índice Capitulo1: INTRODUCCIÓN 1.1 Introducción………………………………………………………………….. 1.2 Desarrollo de aplicaciones ……….................................…………………. 1.3 modelo entidad relación……………………..……………………………… 1.4 modelo relacional ……………………………………………………………. 1.5 Normalización ……………………………………………………………… 1.5.1 Primera forma normal ………………………………………………….. 1.5.2 Segunda forma normal ………………………………………………… 1.5.3 Tercera forma normal ………………………………………………….. 1.6 Modelo entidad realcion extendido .……………………………………… Capitulo 2: LENGUAJES FROMALES DE CONSULTA 2.1 Operaciones Fundamentales …………………………… ………………. 2.1.1. La operación SELECCIONAR ………………………………………… 2.1.2. La operación PROYECTAR ……………………………………………. 2.2.3 Otras operaciones…………………………………………….………… 2.2.3.1 Funciones Agregadas……………………………………………….... 2.2 Calculo Relacional…………………………………………………….. 2.3 Definición Formal……………………………………………………….. 2.4 Seguridad de las Expresiones ………………………………… …..… 2.5 Potencia Expresiva de los Lenguajes………………………………….... 2.6 Calculo Relacional de Dominios………………… …………………… 2.6.1Definicion formal……………………………………………………… .. 2.7 Operaciones del algebra relacional extendida ……………………….… 2.7.1 Proyección generalizada ………………………………………………. . 2.7.2 Funciones de agregación…………………………………………….… 2.8 Ejercicios…………………………………………………………………… 1 1 3 4 4 4 5 5 5 7 7 8 10 10 12 13 14 15 15 16 17 18 18

Transcript of Índice - Universidad Salesiana de...

Page 1: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 1

1

Índice

Capitulo1: INTRODUCCIÓN

1.1 Introducción…………………………………………………………………..

1.2 Desarrollo de aplicaciones ……….................................………………….

1.3 modelo entidad relación……………………..………………………………

1.4 modelo relacional …………………………………………………………….

1.5 Normalización ………………………………………………………………

1.5.1 Primera forma normal …………………………………………………..

1.5.2 Segunda forma normal …………………………………………………

1.5.3 Tercera forma normal …………………………………………………..

1.6 Modelo entidad realcion extendido .………………………………………

Capitulo 2: LENGUAJES FROMALES DE CONSULTA

2.1 Operaciones Fundamentales …………………………… ……………….

2.1.1. La operación SELECCIONAR …………………………………………

2.1.2. La operación PROYECTAR …………………………………………….

2.2.3 Otras operaciones…………………………………………….…………

2.2.3.1 Funciones Agregadas………………………………………………....

2.2 Calculo Relacional…………………………………………………….. 2.3 Definición Formal……………………………………………………….. 2.4 Seguridad de las Expresiones ………………………………… …..…

2.5 Potencia Expresiva de los Lenguajes………………………………….... 2.6 Calculo Relacional de Dominios………………… …………………… 2.6.1Definicion formal……………………………………………………… ..

2.7 Operaciones del algebra relacional extendida ……………………….…

2.7.1 Proyección generalizada ………………………………………………. .

2.7.2 Funciones de agregación…………………………………………….…

2.8 Ejercicios……………………………………………………………………

1

1

3

4

4

4

5

5

5

7

7

8

10

10

12

13

14

15

15

16

17

18

18

4

4

Page 2: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 2

2

Capitulo 3: LENGUAJES COMERCIALES DE CONSULTA

3. SQL (Structured Query Lenguage)……………………………………….. 3.1 Tipos de dominios en SQL ………………………………………………….

3.3.1. CHAR y VARCHAR………………………………………………….…

3.3.2. INTEGER…………………………………………………………………

3.3.2. FLOAT .,……………………………………………………………………

3.3.4 DATE ………………………………………………………………….……

3.3.5 TIME ………………………………………………………………………..

3.3.6. NULL ………………………………………………………………………

3.2 Estructura Básica ……………… …………………………………………. 3.3 Operaciones Sobre Conjuntos …………………………………………….. 3.4 Funciones de Agregación ……………………………………………….…. 3.5 Valores Nulos …………………………………………………………….… 3.6 Subconsultas Anidadas ………………………………………………….… 3.7 Relaciones Derivadas ……………………………………………………. ..

3.8 Vistas ………………………………………………………………………...

3.9 Modificación de la Base de Datos ……………………………………….... 3.10 Otras Características de SQL ………………………………………...

Capitulo 4: SEGURIDAD DE INTEGRIDAD DE BASE DE DATOS

4.1 Introducción …………………………………………………………..…….. 36

4.2 Empleo de Seguros para proteger los resultados de las transacciones … 38

4.3 Especificación de un Seguro ……………………………………………….. 39

4.3.1 Cierre de aplicaciones innecesarias ………………………………………. 39

4.3.2 Seguridad de las claves ………………………………………………….... 39

4.4 Interacción entre seguros …………………………………………………..… 40

4.4.Los modelos informáticos permiten verificar las propiedades de objetos

informáticos. ………………………………………………………………………... 41

4.5 Métodos de seguridad ……………………………………………………..…. 41

4.6 Mantenimiento de la Integridad ………………………………………………. 45

4.6.1 Integridad semántica ……………………………………………………… 45

4.6.2 Integridad operacional ……………………………………………………… 46

20

21

21

22

22

22

22

22

22

23

24

26

26

30

31

35

Page 3: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 3

3

Capitulo 5: BASES DE DATOS DISTRIBUIDAS

5.1. INTRODUCCIÓN ……………………………………………………..…. 47

5.2.1 ALMACENAMIENTO DISTRIBUIDO …………………………………. 47

5.2.1.1 OBJETIVOS DE LAS BASES DE DATOS DISTRIBUIDAS ……….. 47

5.3 Arquitectura ………………………………………………………………..… 48

5.4 Transparencia de la Red …………………………………………………….. 50

5.5 Procesamiento Distribuido de Consultas ……………………………….... 51

5.6 Modelo de Transacciones Distribuidas …………………………………..… 52

5.7 Protocolos de Compromiso ……………………………………………….… 53

5.8 Selección del Coordinador ………………………………………………….. 54

5.9 Control de Concurrencia ......................................................................... 54

5.10 Tratamiento de los Interbloques ………………………………………….. 55

Capitulo 6: DATAWAREHOUSE

6.1 ¿Qué es un data warehouse? ……………………………………………... 56

6.2 Componentes de un Datawarehouse ……………………………………… 56

6.3 Opciones de Implementación ……………………………………………... 58

6.4 Consideraciones a tomar en cuenta en la construcción ………………… 58

6.4.1 Costos v/s Valor De DW ……………………………………………….... 58

6.4.2 Costos De Un DW ……………………………………………………….. 58

6.4.3 Costos De Operación ……………………………………………………. 59

6.5 Estrategias de Implantación ……………………………………………….. 60

6.6 Técnicas de Explotación ……………………………………………………. 60

6.7 Aplicaciones en la que utilizar técnicas disponibles sobre el DW ……… 61

BIBLIOGRAFIA ………………………………………………………………..… 63

Page 4: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 4

4

UNIDAD I

INTRODUCCION

1.3 INTRODUCCIÓN.-

Un sistema gestor de bases de datos (SGBD) consiste en una colección de datos

interrelacionados y un conjunto de programas para acceder a dichos datos. La

colección de datos, normalmente denominada base de datos, contiene información

relevante para una empresa. El objetivo principal de un SGBD es proporcionar una

forma de almacenar y recuperarla información de una base de datos de manera que

sea tanto práctica como eficiente.

1.4 DESARROLLO DE APLICACIONES.-

Las bases de datos son ampliamente usadas. Las siguientes son algunas de sus

aplicaciones más representativas:

• Banca; para información de los clientes, cuentas y préstamos, y transacciones

bancarias.

• Líneas aéreas; para reservas e información de planificación. Las líneas aéreas

fueron de los primeros en usar las bases de datos de forma distribuida

geográficamente (los terminales situados en todo el mundo accedían al sistema de

bases de datos centralizado a través de las líneas telefónicas y otras redes de

datos).

• Universidades; para información de los estudiantes, matrículas de las asignaturas

y cursos.

• Transacciones; de tarjetas de crédito. Para compras con tarjeta de crédito y

generación mensual de extractos.

• Telecomunicaciones. ; Para guardar un registro de las llamadas realizadas,

generación mensual de facturas, manteniendo el saldo de las tarjetas telefónicas

de prepago y para almacenar información sobre las redes de comunicaciones.

Page 5: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 5

5

• Finanzas; para almacenar información sobre grandes empresas, ventas y

compras de documentos formales financieros, como bolsa y bonos.

• Ventas; para información de clientes, productos y compras.

• Producción; para la gestión de la cadena de producción y para el seguimiento de

la producción de elementos en las factorías, inventarios de elementos en

almacenes y pedidos de elementos.

• Recursos humanos; para información sobre los empleados, salarios, impuestos y

beneficios, y para la generación de las nóminas.

1.5 MODELO ENTIDAD RELACION.-

Un sistema de bases de datos es una colección de archivos interrelacionados y un

conjunto de programas que permitan a los usuarios acceder y modificar estos

archivos.Uno de los propósitos principales de un sistema de bases de datos es

proporcionar a los usuarios una visión abstracta de los datos. Es decir, el sistema

esconde ciertos detalles de cómo se almacenan y mantienen los datos.

El modelo de datos entidad-relación (E-R) está basado en una percepción del mundo

real que consta de una colección de objetos básicos, llamados entidades, y de

relaciones entre estos objetos. Una entidad es una «cosa» u «objeto» en el mundo

real que es distinguible de otros objetos. Las entidades se describen en una base de

datos mediante un conjunto de atributos.

La estructura lógica general de una base de datos se puede expresar gráficamente

mediante un diagrama ER, que consta de los siguientes componentes:

• Rectángulos, que representan conjuntos de entidades.

• Elipses, que representan atributos.

• Rombos, que representan relaciones entre conjuntos de entidades.

• Líneas, que unen los atributos con los conjuntos de entidades y los conjuntos de

entidades con las relaciones.

Cada componente se etiqueta con la entidad o relación que representa.

Page 6: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 6

6

EJEMPLO # 1:

Como ilustración, considérese parte de una base de datos de un sistema bancario

consistente en clientes y cuentas que tienen esos clientes. En la Figura 1.2 se

1.6 MODELO RELACIONAL.-

En el modelo relacional se utiliza un grupo de tablas para representar los datos y las

relaciones entre ellos. Cada tabla está compuesta por varias columnas, y cada

columna tiene un nombre único. De una base de datos de un Sistema Bancario.

EJEMPLO # 2:

Se representa un ejemplo de base de datos relacional consistente en tres tablas: la

primera muestra los clientes de un banco, la segunda, las cuentas, y la tercera, las

cuentas que pertenecen a cada cliente.

Page 7: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 7

7

1.7 NORMALIZACION.-

La normalización es una técnica, desarrollada inicialmente por E.F. Codd en 1972,

para diseñar la estructura lógica de una base de datos en el modelo relacional.

La normalización es un proceso en el cual se va comprobando el cumplimiento de una

serie de reglas, o restricciones, por parte de un esquema de relación; cada regla que

se cumple aumenta el grado de normalización del esquema de relación; si una regla

no se cumple, el esquema de relación se debe descomponer en varios esquemas de

relación que sí la cumplan por separado.

Un esquema de relación está en una determinada forma normal si satisface un

cierto conjunto de restricciones.

1.7.1 PRIMERA FORMA NORMAL.-

Un esquema de relación está en primera forma normal (1FN) si, y sólo si, los dominios

de todos los atributos de la relación son atómicos

La primera formal normal se definió para prohibir los atributos multivalorados, los

atributos

compuestos y sus combinaciones. Cuando un esquema de relación no está en

primera forma normal, se divide en otros esquemas de relación, repartiendo sus

atributos entre los resultantes:

Se elimina el (los) atributo(s) que viola(n) la 1FN del esquema original.

Se coloca el (los) atributo(s) que viola(n) la 1FN en un esquema aparte junto

con la superclave del esquema de partida.

Superclave; es un conjunto de uno o más atributos que, tomados

colectivamente, permiten identificar de forma única una entidad en un conjunto

de entidades

Page 8: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 8

8

EJEMPLO # 3:

Tomemos los pedidos en una tienda.

Solución.-

Esquema_ordenes =(id_orden, fecha, id_cliente, nombre_cliente,

provincia,numero_item, descripcion_item, cantidad, precio)

Esquema_ordenes =(id_orden, fecha, id_cliente, nombre_cliente, provincia)

Esquema_pedidos =(id_orden, numero_item, descripcion_item,cantidad, precio)

1.7.2 SEGUNDA FORMA NORMAL.-

Un esquema de relación está en segunda forma normal (2FN) si, y sólo si, está en

primera forma normal (1FN) y, además cada atributo del esquema de relación que no

está en la clave primaria depende funcionalmente de la clave primaria completa y no

sólo de una parte de esta.

1.7.3 TERCERA FORMA NORMAL.-

Los valores de un registro que no sean parte de la clave de ese registro no pertenecen

a la tabla. En general, siempre que el contenido de un grupo de campos pueda

aplicarse a más de un único registro de la tabla, considere colocar estos campos en

una tabla independiente.

1.8 MODELO ENTIDAD REALCION EXTENDIDO.-

El modelo Entidad Relación Extendido incluye los conceptos del modelo entidad-

relación original de Perter Chen (1970), e incorpora nuevos conceptos que permiten

representar requerimientos más complejos. En esta unidad analizaremos las

características E-R extendidas de: especialización, generalización, conjuntos de

entidades de nivel más alto y más bajo, herencia de atributos y agregación. Por

definición de programación orientada a objetos, analizamos los siguientes puntos:

1) El modelo y los diagramas ER nos facilitan el modelado del Esquema

Conceptual

1FN

Page 9: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 9

9

2) Tipo de entidad; que es el esqueleto que define qué características comunes

comparten de un mismo tipo.

3) Entidad; representa una cosa del mundo real con existencia independiente,

puede ser: física o tangible, conceptual o intangible.

4) Conjunto de entidades; es un grupo de entidades que comparten el mismo tipo

5) atributos; son propiedades específicas que describen a una entidad.

6) Los atributos claves; son aquellos que se utilizan para identificar de forma

única a una entidad.

7) Atributos compuestos; son aquellos que están conformados por la unión de

otros atributos.

8) Atributos multivaluados: son aquellos que pueden tener más de un valor de

forma simultánea.

9) Especializaciones: el proceso de tomar un tipo de entidad y genera subclases

que tengan atributos específicos

10) Generalización; es el proceso de tomar un conjunto de tipos de entidades y

abstraer su atributos comunes en un tipo de entidad padre.

11) disjunta; una entidad pude ser miembro de cuando más una de las subclases.

12) traslapada; la misma entidad pude ser miembro de más de una subclase de la

especialización

13) especialización total ; toda entidad de la superclase debe tener al menos una

entidad en las subclases

14) especialización parcial; es posible tener una entidad en la superclase y ninguna

en las subclases.

15) categoría; es una relación superclase/subclase, donde existen múltiples

superclases en las que cada una de estas representa diferentes tipos de

entidades. La relación siempre es disjunta, es decir , la subclase solo puede

ser una de las superclases a la vez.

Una entidad débil se representa con un rectángulo con doble trazo..

Por ejemplo, un almacén realiza un pedido. El pedido, no puede existir sin un almacén.

No tiene

Page 10: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 10

10

Unidad II

Lenguajes Formales de Consultas

2. 1. Operaciones fundamentales.

2.1.1. La operación SELECCIONAR.

La operación SELECCIONAR sirve para seleccionar un subconjunto de tuplas de una

relación que satisface una condición de selección. Por ejemplo para seleccionar el

subconjunto de tuplas de EMPLEADO que trabajan en el departamento 4 o cuyo

salario rebasa los $30 000, podemos especificar individualmente cada una d e estas

dos condiciones con la operación SELECCIONAR, como sigue:

σ ND=4 (EMPLEADO)

σ salario > 30000 (EMPLEADO)

En general, denotando la operación SELECCIONAR con

σ<Condición de Selección>(<Nombre de la relación>)

Donde el símbolo σ (Sigma) denota el operador de SELECCIONAR, y la condición de

selección es una expresión booleana especificada en términos de los atributos de la

relación.

La relación que resulta de la operación SELECCIONAR tiene los mismos atributos que

la relación especificada en <nombre de la relación>. La expresión booleana

especificada en la <condición de selección> se compone de una o mas consultas de la

forma:

<nombre de atributos> <operador de comparación><valor constante>, o

<nombre de atributos> <operador de comparación><nombre de atributo>

Donde <nombre de atributos> es el nombre de un atributo de <nombre de la relación>,

<operador de comparación> es normalmente uno de los operadores {=, <, ≤, >, ≥, ≠}, y

<valor constante> es un valor constante del dominio del dominio del atributo. Las

clausulas pueden, conectarse arbitrariamente con los operadores booleanos Y (AND),

O (OR), NO (NOT) para formar una condición de selección general. Por ejemplo, si

Page 11: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 11

11

queremos seleccionar las tuplas de todos los empleados que trabajan en el

departamento 4 y ganan más de $25000 al año, o que trabajan en el departamento 5 y

ganan más de $30000, podemos especificar la siguiente operación SELECCIONAR:

σ (ND=4 AND SALARIO >25000) or (ND=5 AND SALARIO >30000) (EMPLEADO)

Cabe señalar que los operadores de comparación del conjunto {=, <, ≤, >, ≥, ≠}, se

aplican a atributos cuyo dominio son valores ordenados, como los dominios

numéricos o de fechas.

El operado de SELECCIONAR es unario; esto se aplica a una sola relación. Por ello,

no podemos usar SELECCIONAR para seleccionar tuplas de más de una relación. Por

añadidura, la operación de selección se aplica a cada tupla individualmente; por tanto

las condiciones de selección no puede abarcar más de una tupla.

Observe que la operación SELECCIONAR es Conmutativa; es decir,

σ <Cond1> (σ <Cond2> (R)) = σ <Cond2> (σ <Cond1> (R))

Así pues podemos aplicar una secuencia de operaciones SELECCIONAR en cualquier

orden.

σ <Cond1> (…(σ <Cond2> (R))…)) = σ <Cond1> Y <Cond2>Y…Y <Condn> (R))

2.1.2. La operación PROYECTAR.

Si visualizamos una relación como una tabla, la operación SELECCIONAR

seleccionamos algunas filas de la tabla y desechamos otras. La operación

PROYECTAR en cambio, selecciona ciertas columnas de la tabla y desecha las

demás. Si solo nos interesan ciertos atributos de una relación, “Proyectaremos” la

relación sobre esos atributos como la operación PROYECTAR. Por ejemplo, si

queremos listar el apellido, el nombre de pila y el salario de todos los empleados,

podemos usar la siguiente operación PROYECTAR.

π APELLIDO NOMBRE, SALARIO (EMPLEADO)

La forma general de la operación PROYECTAR es

π <lista de atributos> (<nombre de la relación>)

Page 12: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 12

12

Donde π (pi) es el símbolo para la operación PROYECTAR y <lista de atributos> es

una lista de atributos de la relación especificada por <nombre de la relación>. La

relaciona si creada tiene solo los atributos especificados en <lista de atributos> y en el

mismo orden en que aparece la lista. Por ello, su grado es igual al número de atributos

en <Lista atributos>.

Si lista de atributos solo contiene atributos no clave de una relación, es probable que

aparezcan tuplas repetidas en el resultado. La operación PROYECTAR elimina

implícitamente cualesquier tupla repetida, así que el resultado de la operación

PROYECTAR es un conjunto de tuplas y por tanto una relación valida. Por ejemplo

consideremos el siguiente ejemplo proyectar:

π SALARIO, SEXO (EMPLEADO)

El número de tuplas en una relación que resulta de una operación PROYECTAR

siempre es menor que el número de tuplas de la relación original, o igual a él. Si la

lista de proyección incluye una clave de la relación, la relación resultante tendrá el

mismo número de tuplas que la original.

π <Lista1> (π <Lista2>(R)) = π <Lista1>(R)

siempre que <lista 2> contenga los atributos que están en <lista 1>; si no es así, el

lado izquierdo será incorrecto. Vale la pena señalar también que la operación

PROYECTAR no es conmutativa.

2.2.2 Definición Formal del Algebra Relación

Se ha demostrado que el conjunto de operaciones del algebra relación { σ, π, ᴗ, -, X }

es un conjunto completo es decir cualquiera de las otras operaciones del algebra

relacional se pueden expresar como una secuencia de operaciones de este conjunto.

Por ejemplo, la operación INTERSECCION se puede expresar UNION y DIFERENCIA

como sigue:

RᴖS Ξ (R ᴗ S) – ((R - S) ᴗ (S - R) )

Page 13: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 13

13

2.2.3 Otras operaciones.

2.2.3.1 Funciones Agregadas.

El primer tipo de solicitud que no se puede expresar en el álgebra relacional es la

especificación de funciones agregadas matemáticas sobre la colección de valores de

la base de datos. Un ejemplo seria la obtención del salario medio o total de todos los

empleados o el número de tuplas de empleados. Entre las funciones que se suelen

aplicar a colecciones de valores numéricos están SUMA, PROMEDIO, MAXIMO,

MINIMO. La función CUENTA sirve para contar tuplas. Todas estas funciones pueden

aplicarse

a una

colección

de tuplas.

A)

NSS_NUMSP NUMP NSSE

1 123456789

2 123456789

3 666884444

1 453453453

2 453453453

2 333445555

3 333445555

10 333445555

20 333445555

30 999887777

10 999887777

10 987987987

30 987987987

30 987654321

20 987654321

20 888665555

NUMSP_SILVA NUMP

1

2

NUMSP NUMP

123456789

453453453

Page 14: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 14

14

B)

Fig2.1 La operación DIVISION A) División de NSS_NUMSP entre NUMSP_SILVA B)

T ←R + S

Otro tipo de solicitud que se hace con frecuencia implica agrupar las tuplas de una

relación según el valor de algunos de sus atributos y después aplicar una función

agregada independientemente a cada grupo. Un ejemplo seria agrupar las tuplas de

empleados por ND, de modo que cada grupo incluya las tuplas de los empleados que

trabajan en el mismo departamento. Después podríamos preparar una lista de valores

de ND junto con, digamos el salario medio de los empleados del departamento.

Podemos definir una operación función empleando el símbolo F (Pronunciado F

gótica) para especificar estos tipos de solicitudes, como sigue.

<atributos de agrupación> F <Lista de funciones> (<nombre de la relación>)

Donde <Atributo de agrupación> es una lista de atributos de la relación específica en

<nombre de la relación> y <lista de función> es una lista de pares (<función>

<atributo>). En cada uno de estos pares, <función> es una de las funciones permitidas

como SUMA , PROMEDIO, MÁXIMO, MÍNIMO CUOTA y <atributo> es un atributo de

la relación especificada en <nombre de la relación>. La relación resultante tiene los

atributos de agrupación más un atributo por cada elemento de la lista de funciones.

Por ejemplo, para obtener los números de departamento, el numero de empleado de

cada departamento y su salario medio.

R(ND, NUM_DE_EMPLEADOS,SAL_MEDIO) ← ND F CUENTA NSS, PROMEDIO SALARIO

(EMPLEADO)

R A B

S A

a1 b1

a1

a2 b1

a2

a3 b1

a3

a4 b1

a1 b2

a3 b2

T B

a2 b3

b1

a3 b3

b4

a4 b3

a1 b4

a2 b4

a3 b4

Page 15: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 15

15

2.5 Calculo Relacional

Es un lenguaje de consulta formal que permite expresar las consultas a partir de

fórmulas bien formadas, donde las variables son interpretadas como variantes sobre

las tuplas de las tablas. Fue presentado por Codd en 1972 y se deduce del Cálculo de

Predicados.

Átomos:

1. las variables están asociadas a las tuplas de las tablas y se denota como

relación(variable). Ejm: Modelo(M).

2. los valores constantes están asociados a los valores de los dominios de los

atributos y las funciones generadoras de los mismos se denotan como

variable.atributo. Ejm:

M.marca

3. los predicados utilizados se construyen con los operadores de comparación

{<, ≤ , >, ≥ , =, ≠} y constantes. Ejm: M.marca ≠ “fiat”.

Una fórmula bien formada (fbf) se define como:

1. Todo átomo es una fórmula bien formada F

2. Si F1 y F2 son fbf, entonces F1 and F2, F1 or F2, not F1 o not F2 son fbf

3. ∃ F1 es una fbf

4. ∀ F1 es una fbf

Ejemplos de consultas según el esquema relacional siguiente:

Producto(nroPro, nombrePro, cantidad, color)

Venta(nroVen, fechaVen, nombreCliente, nroProVen, cantidadVen)

Compra(nroCom, fechaCom, nombreProveedor, nroProCom, cantidadComp)

Page 16: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 16

16

a. ¿Cuál es el nombre y el color de cada producto en almacén?

{ P.nombrePro, P.color / Producto( P ) }

b. ¿Cuál es el nombre y la cantidad de cada producto de color rojo en el almacén?

{ P.nombrePro, P.cantidad / Producto( P ) ∧ P.color = „rojo‟ }

c. ¿Cuál es el nombre del proveedor de cada producto en el almacén?

{ C.nombreProveedor, P.nombrePro / Producto( P ) ∧ Compra( C ) ∧

P.nroPro = C.nroProCom }

d. ¿Cuáles son los clientes que han comprado al menos un producto de color verde?

{ V.nombreCliente, P.nombrePro / ∃P Venta( V ) ∧ Producto( P ) ∧

V.nroProVen = P.nroPro ∧ P.color = „verde‟ }

e. ¿Cuáles son los nombres de los productos comprados a todos los proveedores y

vendidos a por lo menos un cliente?

{ P.nombrePro, C.nombreProveedor / ∀B ∃A ∃V Venta( V ) ∧ Producto(

P ) ∧ Compra( A ) ∧ Compra( C ) ∧ P.nroPro = V.nroProVen ∧ P.nroPro

= A.nroProCom ∧ A. nombreProveedor = C.nombreProveedor }

2.6 Definición Formal

Las expresiones del cálculo relacional de tuplas son de la forma

{ t | P(t) }

donde P es una formula. En una formula pueden aparecer varias variables

tupla. Se dice que una variable tupla es una variable libre a menos que este

cuantificada mediante ∃ o ∀. Por tanto, en:

t ∈ prestamo ∧ ∃ s ∈ cliente(t[nombreSucursal] = s[nombreSucursal])

t es una variable libre. La variable tupla s se denomina variable ligada.

Las fórmulas de cálculo relacional de tuplas se construyen con átomos. Los átomos

tienen una de las formas siguientes:

Page 17: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 17

17

1. s ∈ r, siendo s una variable tupla y r una relación (no se permite el uso de <).

2. s[x]Θu[y], donde s y u son variables tupla, x es un atributo de s, y es un atributo de

u, y Θ es un operador de comparación (=, ,, <, ≤, >, ≥). Es necesario que los atributos x

e y tengan dominios comparables mediante Θ.

3. s[x]Θc, donde s es una variable tupla, x es un atributo de s, Θ es un operador de

comparación y c es una constante en el dominio de x.

Las formulas se construyen a partir de los ´ átomos utilizando las reglas

siguientes:

Un átomo es una formula.

si P1 es una formula, también lo son ¬P1 y (P1)

si P1 y P2 son formulas, también lo son P1 ∧ P2, P1 ∨ P2 y P1 ⇒ P2

Si P1(s) es una fórmula que contiene una variable tupla libre s, y r es una

relación, entonces

∃ s ∈ r(P1(s)) y ∀ s ∈ r(P1(s))

también son formulas.

Igual que en el álgebra relacional, se pueden escribir expresiones equivalentes de

diferentes maneras. En el cálculo relacional de tuplas estas equivalencias incluyen las

tres reglas siguientes:

1. P1 ∧ P2 es equivalente a ¬(¬(P1) ∨ ¬(P2))

2. ∀ t ∈ r(P1(t)) es equivalente a ¬∃ t ∈ r(, P1(t))

3. P1 ⇒ P2 es equivalente a ¬(P1) ∨ P2

2.4 Seguridad de las expresiones

Las expresiones del cálculo relacional de tuplas pueden generar relaciones

innatas. Supóngase que se escribir o la expresión

{t | ¬(t ∈ prestamo)}

Page 18: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 18

18

Hay infinitas tuplas que no están en prestamo. Para ayudar a definir las restricciones

del cálculo relacional de tuplas se introduce el concepto de dominio de una fórmula

relacional de tuplas, P.

De manera intuitiva, el dominio de P, denotado por dom(P), es el conjunto de todos los

valores a los que P hace referencia, ya sea de forma explıcita o implícita. Por ejemplo,

el dominio de t ∈ préstamo ∧ t[importe] > 1200 es el conjunto de todos los valores de

prestamo mas el valor 1200.

Además, dom(¬(t ∈ prestamo)) es el conjunto de todos los valores que aparecen en

prestamo, dado que la relación prestamo se menciona en la expresión.

Se dice que una expresión {t | P(t)} es segura si todos los valores que aparecen en el

resultado son valores de dom(P).

2.5 Potencia expresiva de los lenguajes

El cálculo relacional de tuplas restringido a expresiones seguras es equivalente en

potencia expresiva al ´ algebra relacional b´ asica (sin los operadores relacionales

extendidos tales como la proyección generalizada G y las operaciones de reunión

externa).

2.6 El cálculo relacional de dominios

Hay una segunda forma de cálculo relacional denominada calculo relacional

de dominios. Esta forma utiliza variables de dominio que toman sus valores del

dominio de un atributo, en vez de tomarlos de una tupla completa. El calculo

relacional de dominios, sin embargo, se halla estrechamente relacionado con el

calculo relacional de tuplas.

2.6.1Definicion formal

Las expresiones del cálculo relacional de dominios son de la forma

{< x1, x2, . . . , xn >| P(x1, x2, . . . , xn)}

Donde x1, x2, . . . , xn representan las variables de dominio y P representa una

formula compuesta de átomos, como en el cálculo relacional de tuplas.

Page 19: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 19

19

Los átomos del cálculo relacional de dominios tienen una de las formas

siguientes:

1. < x1, x2, . . . , xn >∈ r, donde r es una relaci ón con n atributos y x1, x2, . . . , xn

son variables de dominio o constantes de dominio.

2. xΘ y, donde x a y son variables de dominio y Θ es un operador de comparación (=,

,, <, ≤, >, ≥). Los dominios de x e y deben poder compararse mediante Θ.

3. xΘc, donde x es una variable de dominio, c una constante del dominio

de x y Θ es un operador de comparación

Las formulas se construyen a partir de los átomos utilizando las reglas siguientes:

1. Un átomo es una formula.

2. Si P1 es una formula, también lo son ¬P1 y (P1)

3. Si P1 y P2 son formulas, también lo son P1 ∨ P2, P1 ∧ P2 y P1 ⇒ P2.

4. Si P(s) es una formula en x, siendo x una variable de dominio, entonces

∃ x(P(x)) y ∀ x(P(x)) también son formulas.

2.7 Operaciones del algebra relacional extendida

Las operaciones básicas del algebra relacional se han ampliado de varias maneras.

Una ampliación sencilla es permitir operaciones aritméticas como parte de la

proyección. Una ampliación importante es permitir operaciones de agregación, como el

cálculo de la suma de los elementos de un conjunto, o su media. Otra ampliación

importante es la operación reunión externa, que permite a las expresiones del algebra

relacional trabajar con los valores nulos que modelan la información que falta.

Page 20: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 20

20

2.7.1 Proyección generalizada

La operación proyección generalizada amplıa la operación proyección permitiendo que

se utilicen funciones aritméticas en la lista de proyección. La operación proyección

generalizada tiene la forma:

donde E es cualquier expresión del algebra relacional y F1, F2, . . . , Fn son

expresiones aritméticas. De forma trivial, la expresión aritmética puede ser

simplemente un atributo o una constante.

2.7.2 Funciones de agregación

Las funciones de agregación son funciones que toman una colección de valores

y devuelven como resultado un único valor. Las funciones de agregación más

habituales son sum (Suma), avg (Media aritm etica), count (número de elementos),

min y max (Mınimo y máximo, respectivamente). En la siguiente tabla se muestran

algunos ejemplos de funciones de agregación.

La expresión del algebra relacional para el uso de una función de agregación Es.

Page 21: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 21

21

Donde f es la función de agregación, R es la relación considerada, y a es el atributo a

utilizar. Por ejemplo:

Es una relación con un único atributo, que contiene una sola fila con un valor

correspondiente a la suma de los sueldos de todos los empleados.

Las colecciones en las que operan las funciones de agregación pueden tener valores

repetidos; el orden en el que aparezcan los valores no tiene importancia.

Pero hay casos en los que se desea borrar los valores repetidos antes de calcular

la funcion de agregación. Para ello hay que utilizar los mismos nombres de funciones

que antes, con la cadena de texto -distinct al final del nombre de la funcion (por

ejemplo, count-distinct) Es posible dividir una relación en grupos, y aplicar las

funciones de agregación de forma independiente en cada grupo. La sintaxis serıa así:

donde E es cualquier expresión del algebra relacional; G1,G2, . . . ,Gn constituyen una

lista de atributos que indican cómo se realiza la agrupación, cada Fi es una funcion de

agregación y cada Ai es el nombre de un atributo.

La relación resultante consistirá en las tuplas con los atributos usado para

agrupar, más los resultado de las funciones de agregación.

2.8 Ejercicios.

Sean las siguientes relaciones:

EDITORIALES (E#, NOME, CIUDAD)

LIBROS(L#, TITULO, AUTOR, AÑOS)

PAPELERIA(P#, NOMP, CIUDAD)

ELP(E#, L#, P#, CANTIDAD)

Page 22: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 22

22

Se pide escribir en algebra relacional las respuesta a las siguientes preguntas.

a) Obtener los nombres de las papelerías abastecidas por alguna editorial de

“Madrid”.

b) Obtener los valores E# para las editoriales que subministran a la papelería

P1 y P3 libros publicados en 1978.

c) Obtener los valores de P# de las papelerías abastecidas completamente

por E1.

d) Obtener los valores de L# para los libros suministrados para todas las

papelerías que no sean de “Madrid”.

Page 23: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 23

23

UNIDAD III

LENGUAJES COMERCIALES DE CONSULTA

3 SQL (Structured Query Lenguage)

Básicamente, podemos decir que un lenguaje de consulta es un lenguaje usado por el

usuario para solicitar información a la base de datos. En el tema anterior, se ha

comentado que Codd propuso dos lenguajes formales para representar consultas de

una forma concisa, sin embargo, los sistemas de bases de datos comerciales

necesitan un lenguaje de consultas más cómodo para el usuario. En este tema

veremos el lenguaje comercial que mayor influencia tiene, el SQL.

Aunque a menudo se diga que el SQL es un “lenguaje de consulta”, es necesario

recordar que esto no es exactamente cierto dado que contiene muchas otras

capacidades además de la de consultar la base de datos, como son; la definición de la

propia estructura de los datos, la manipulación de dichos datos y la especificación de

las ligaduras de seguridad.

El lenguaje estructurado de consultas SQL (Structured Query Language) es un

lenguaje combinado de manipulación y definición de datos, y que permite expresar

diversas operaciones con los datos almacenados en las bases de datos relacionales.

Como ya se ha dicho, SQL es tanto un LDD como LMD por lo que existen dos tipos de

sentencias:

Sentencias de definición de datos (Data Definition Language) que proporcionan

las órdenes para definir o modificar esquemas de relación, eliminar relaciones y

crear índices. Algunos ejemplos de sentencias son las de tipo CREATE y

DROP.

Sentencias de manipulación de datos (Data Manipulation Language) que nos

permiten realizar consultas y mantener los datos es decir; insertar, suprimir o

modificar los datos. Comienzan con las siguientes palabras del lenguaje:

SELECT, INSERT, UPDATE y DELETE.

A continuación se muestra el ejemplo de base de datos relacional con el que vamos a

trabajar durante todo el tema y en base al cual mostraremos los diferentes ejemplos de

sentencias SQL.

Page 24: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 24

24

3.1 Tipos de dominios en SQL

En SQL tenemos diferentes tipos de dominios predefinidos sobre los que se definen

los datos. Veamos algunos de ellos:

3.3.1. CHAR y VARCHAR

Los tipos CHAR y VARCHAR se usan para definir cadenas de texto genéricas, y

puede contener caracteres con cualquier valor ASCII. El número máximo de

caracteres que admiten es 255. La diferencia entre ambos es que mientras CHAR

proporciona un tamaño fijo para una cadena, VARCHAR admite una cantidad variable

de caracteres.

La sintaxis para este tipo es CHAR(n) o VARCHAR(n), donde n indica la longitud. Sus

contenidos se especifican entre comillas simples. Ejemplo: „Hola‟, „09-MAR-98‟,

„Jackie‟, ‟s‟.

3.3.2. INTEGER

Sus valores son números enteros, positivos o negativos. Normalmente, con este tipo

se pueden definir todos los números enteros entre –2147483648 y 2147483647,

aunque en realidad los límites vienen definidos por la máquina.

Page 25: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 25

25

3.3.3 FLOAT

Sus valores representan números en coma flotante, es decir, números positivos o

negativos que pueden tener decimales.

La sintaxis para este tipo es FLOAT(n), donde n es la precisión que como mínimo se

desea que tenga el número.

3.3.4 DATE

Se usa para almacenar información de una fecha. Son válidas todas las fechas del

calendario gregoriano, empezando en el día 1 de Enero del año 1 y terminando el 31

de Diciembre del año 9999, ambos inclusive. Se representa en formato día, mes y año

(dd/mm/aaaa).

3.3.5 TIME

Representa una hora determinada con precisión de segundos (HH:MM:SS).

3.3.6. NULL

No se trata de un tipo de datos concreto. Es más bien un valor que indica la ausencia

de cualquier valor. Por ejemplo, en una columna de tipo numérico el valor nulo no es lo

mismo que el valor cero, o en una columna de tipo alfanumérico, el nulo no es lo

mismo que blanco o que el valor vacío (longitud cero). Para comparar valores con

NULL sólo podremos usar los operadores IS NULL o IS NOT NULL.

3.2 ESTRUCTURA BÁSICA

La forma básica de la instrucción SELECT, en ocasiones denominada

transformación, consta de las tres clausulas SELECT, FROM (de) y WHERE (donde)

se construye así:

SELECT <lista de atributos>

FROM <lista de tablas>

WHERE<condición>

Donde.

<lista de atributos> es una lista de nombres de los atributos cuyos valores va a

obtener la consulta.

Page 26: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 26

26

<lista de tablas> es una lista de los nombres de las relaciones requeridas para

procesar la consulta.

<condición> es una expresión condicional (booleana) de búsqueda para

identificar las tuplas que obtendrá la consulta.

3.3 Operaciones Sobre Conjuntos

Ahora ilustremos la instrucción SELECT básica con algunos ejemplos de consultas.

Consulta 1.

Mes y año de contrato de cada vendedor:

SELECT nombre, cuota

FROM repventas

WHERE cuota > 21000 ;

En esta consulta solo interviene la relación de repventas en la cláusula FROM.

La consulta selecciona las tuplas repventas que satisfagan la condición de la

cláusula WHERE y luego proyectara el resultado sobre los atributos “nombre,

cuota” listados en la cláusula SELECT. Es similar a la expresión del algebra

relacional.

π nombre, cuota (σ cuota > 21000 (repventas))

Consultas 2.

Lista los nombre, oficinas y fecha de contratación de todos los vendedores

SELECT r.name, o.ciudad, r.contrato

FROM repventas r, oficinas o

WHERE (r.oficina_rep = o.oficina)

Page 27: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 27

27

Consultas 3.

Lista el nombre y fecha de contrato de cualquier vendedor cuyas ventas sean

superiores a "500.00"

SELECT r.name as "Nombre",r.contrato

FROM repventas r

WHERE (r.ventas > 50000)

3.4 Funciones de Agregación

La función de agregación se usa dentro de la cláusula SELECT en grupos de

registros para devolver un único valor que se aplica a un grupo de registros.

AVG Se utiliza para calcular el promedio de los valores de un campo determinado.

COUNT Se utiliza para devolver el número de registros de la selección

SUM

Se utiliza para devolver la suma de todos los registros de un campo

determinado.

MAX Se utiliza para devolver al valor más alto de un campo especificado.

MIN Se utiliza para devolver al valor más bajo de un campo especificado.

Page 28: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 28

28

Consulta 4. (AVG)

Cuáles son los objetivos y ventas promedio para las oficinas de la región Este?

SELECT AVG(objetivo) as "Promedio_Objetivo", AVG(ventas) as "Promedio_Ventas"

FROM oficinas

WHERE region = 'Este'

Consulta 5. (COUNT)

¿Cuantos clientes hay?

SELECT COUNT(c.empresa) as "Cantidad"

FROM clientes c

Consulta 6. (SUM)

Hallar el importe medio de pedidos, el importe total de pedidos, el importe medio de

pedido.como porcentaje del límite de crédito del cliente y el importe medio de pedido

como porcentaje de la cuota de vendedores.

SELECT AVG(p.importe),SUM(p.importe),

(100 * AVG(p.importe / c.limite_credito)),

(100 * AVG(p.importe / r.cuota))

FROM pedidos p, clientes c, repventas r

WHERE (c.rep_clie = p.clie) and (p.rep = r.num_empl )

Consulta 7. (MAX)

¿Cuál es el rango de cuota asignada en cada oficina?

SELECT r.oficina_rep, MIN(r.cuota), MAX(r.cuota)

FROM repventas r;

Page 29: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 29

29

Consulta 8. (MIN)

¿Cuáles son las cuotas asignadas mínima y máxima?

SELECT MIN(r.cuota) Minimo, MAX(r.cuota) Máximo

FROM repventas r;

3.5 Valores Nulos

Después de escribir la cláusula CREATE TABLE nombre_de_la_tabla (…) y situado

entre los paréntesis, debemos especificar las columnas que tendrá la tabla (indicando

su nombre y características) y separadas por comas.

• El nombre de la columna, que se utiliza para referirse a la columna en las sentencias

SQL. Cada columna de la tabla debe tener un nombre único, pero los nombres pueden

ser iguales a los de las columnas de otras tablas.

• El dominio de los datos de la columna, que determina la clase de datos que la

columna almacena.

• Si la columna no puede contener datos nulos, la cláusula NOT NULL impide que

aparezcan valores NULL en la columna, en caso contrario se permiten los valores

nulos en la columna.

Consulta 9.

Listar los vendedores a los que se les ha asignado una oficina

SELECT r.name

FROM repventas r

WHERE r.oficina_rep is not null

3.6 Subconsultas Anidadas

La característica de subconsulta de SQL permite utilizar los resultados de una consulta

como parte de otra. La capacidad de utilizar una consulta dentro de otra fue la razón

original para la palabra “estructurada” en el nombre Lenguaje de Consultas

Page 30: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 30

30

Estructuradas (Structured Query Language- SQL). Esta característica juega un papel

importante por tres razones:

• Una sentencia SQL con una subconsulta es frecuentemente el modo más natural de

expresar una consulta, ya que se asemeja más estrechamente a la descripción de la

consulta en lenguaje natural.

• Las subconsultas hacen más fácil la escritura de sentencias SELECT, ya que

permiten “descomponer una consulta en partes” (la consulta y sus subconsultas) y

luego “recomponerlas”.

• Hay algunas consultas que no pueden ser expresadas en el lenguaje SQL sin

utilizar una subconsulta.

Una subconsulta es una consulta que aparece dentro de la cláusula WHERE o

HAVING de otra sentencia SQL. Por ejemplo, analicemos la petición: “Lista las oficinas

en donde las ventas de la oficina son inferiores al 50% de la suma de las cuotas de los

vendedores de la oficina”. La petición solicita una lista de oficinas de la tabla

OFICINAS, en donde el valor de la columna VENTAS satisface cierta condición.

Parece razonable que la sentencia SELECT que expresa la consulta deba ser

semejante a esta:

donde el valor “???” equivaldría a “el 50% de la suma de las cuotas de los vendedores

asignados a la oficina en cuestión”. Sabemos que la menor de las cuotas para una

oficina específica puede obtenerse como:

donde “XX” representa el número de oficina.

Parece entonces razonable comenzar con la primera consulta y reemplazar los “???”

con la segunda consulta del modo siguiente:

Page 31: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 31

31

Subconsultas en la cláusula WHERE

Veamos con ejemplos las condiciones de búsqueda que ofrece SQL para las

subconsultas:

Condiciones de comparación en la subconsulta (=, <>, <, <=, >, >=)

La comparación en la subconsulta es una forma modificada de la comparación simple.

Compara el valor de una expresión con un valor único producido por una subconsulta,

y devuelve un resultado TRUE si la comparación es cierta.

Consulta 10.

Ciudades con ventas inferiores al 50% de la suma de las cuotas de los vendedores

asignados a dicha ciudad.

SELECT ciudad

FROM oficinas

WHERE ventas<(SELECT 0.5*SUM(cuota)

FROM repventas WHERE oficina_rep=oficina) ;

Consulta 11.

Lista los vendedores con cuota igual o superior al objetivo de Alicante.

SELECT nombre

FROM repventas

WHERE cuota>=(SELECT objetivo FROM oficinas

WHERE ciudad=‟Alicante‟) ;

Consulta 12.

Lista de los clientes atendidos por Belen Aguirre.

SELECT empresa

FROM clientes

WHERE rep_clie=(SELECT num_empl FROM repventas

WHERE nombre=‟Belen Aguirre‟) ;

Page 32: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 32

32

Condición de pertenencia a un conjunto ( IN )

La condición de pertenencia a un conjunto subconsulta (IN) es una forma modificada

de la condición de pertenencia a conjunto simple. Comprueba si el valor de una

expresión coincide con uno del conjunto de valores producido por una subconsulta y

devuelve un resultado TRUE si el valor coincide.

Consulta 13.

Lista de los vendedores que trabajan en oficinas que superan su objetivo de ventas.

SELECT nombre

FROM repventas

WHERE oficina_rep IN (SELECT oficina

FROM oficinas

WHERE ventas>objetivo) ;

3.7 Relaciones Derivadas

Todas las consultas descritas hasta ahora han sido consultas de “dos niveles”,

afectando a la consulta principal y a una subconsulta. Del mismo modo que se puede

utilizar una subconsulta dentro de una consulta principal, se puede utilizar una

subconsulta dentro de otra subconsulta. Esto se puede extender hasta el nivel de

subconsulta que se desee. Veamos un ejemplo:

Consulta 14.

Lista de clientes cuyos vendedores están asignados a oficinas de la región de ventas

Centro.

Subconsultas en la cláusula HAVING

Cuando una subconsulta aparece en la cláusula HAVING funciona como parte de la

selección de grupo de filas efectuada por la cláusula HAVING. Consideremos la

siguiente consulta:

Page 33: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 33

33

Consulta 15.

Lista de los vendedores cuyo tamaño de pedido medio para productos fabricados por

“ACI” es superior al tamaño de pedido medio global.

La consulta funciona calculando en primer lugar el “tamaño de pedido medio global”.

Luego la cláusula HAVING comprueba cada grupo de filas para ver si el tamaño medio

pedido de ese grupo es superior al promedio de todos los pedidos. Si es así, el grupo

de filas es retenido; si no, el grupo de filas es descartado. Finalmente la cláusula

SELECT produce una fila sumaria por cada grupo, mostrando el nombre del vendedor

y el tamaño de pedido medio para cada uno.

3.8 Vistas

En la terminología de SQL, una vista es una tabla derivada de otras tablas. Estas

otras pueden ser tablas base o vistas previamente definidas. Las vistas no

necesariamente existe en forma física: se les considera TABLAS VIRTUALES en

contraste con las tablas base cuyas tuplas se almacenan realmente en la base de

datos.

Para crear una vista en SQL usaremos la sentencia:

Opcionalmente se puede dar un nombre a cada columna de la vista recién creada

pero, si se especifica una lista de nombres de columnas, deben tener el mismo

número de elementos que el número de columnas producido por la consulta.

Y para borrar una vista usaremos la sentencia:

Page 34: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 34

34

Veamos algunos ejemplos de creación de vistas:

Consulta 16.

Queremos que un director de ventas vea solamente las filas de la tabla REPVENTAS

correspondientes a los vendedores de la región del director.

Para lograr esto se pueden definir dos vistas de forma que permita a cada

director ver tan solo los vendedores de su región. Vamos a crear la vista con

los vendedores de la zona Este y después la vista los vendedores de la zona

Centro.

Consulta 17.

Creación de una vista que contiene únicamente las oficinas de la región Este:

3.11 Modificación de la Base de Datos

SQL es un lenguaje completo de manipulación de datos que no solo se utiliza para

consultas, sino también para insertar, borrar y actualizar los datos de la base de datos.

Las cláusulas que emplea SQL para modificar los datos de una base de datos:

• INSERT, que añade nuevas filas de datos a una tabla.

Page 35: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 35

35

• DELETE, que elimina filas de datos de una tabla.

• UPDATE, que actualiza (cambia) datos existentes en la base de datos.

Inserción de datos en la base de datos ( INSERT INTO … )

En general, podemos añadir nuevas filas de datos a una base de datos de dos formas:

• Una sentencia INSERT de una fila que añade una única nueva fila de datos a una

tabla. La estructura es: INSERT INTO nombre_de_la_tabla(atributos) VALUES

(…,…,…) donde la cláusula INTO especifica la tabla que recibe la nueva fila y la

cláusula VALUE especifica los valores de datos que la nueva fila contendrá.

• Una sentencia INSERT multifila, que extrae filas de datos de otra parte de la base y

las añade a una tabla. La estructura es: INSERT INTO nombre_de_la_tabla SELECT

… FROM …. En este caso, los valores de datos para las nuevas filas no son

especificados explícitamente dentro del texto de la sentencia. En su lugar, la fuente de

las nuevas filas es una consulta de base de datos especificada en la sentencia.

Veamos unos ejemplos de cómo realizar esto:

Consulta 18.

Supongamos que en nuestra base de datos ejemplo, se acaba de contratar a un nuevo

vendedor con los siguientes datos:

La sentencia INSERT que añade

el nuevo vendedor a la base de

datos es:

Quedando la tabla REPVENTAS de la siguiente forma después de incluir el nuevo

empleado:

Page 36: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 36

36

Consulta 19.

Supongamos ahora que el nuevo representante recibe su primer pedido, de

Corporación Oeste S.A., un nuevo cliente que tiene asignado el número de cliente

2126. El pedido es de 20 "Articulo Tipo 4" ACI-41004 por un precio total de 2.340 y le

ha sido asignado el número de pedido 113069.

Las sentencias INSERT que añaden el nuevo cliente y pedido a la base de datos son:

Borrado de datos de la base de datos ( DELETE FROM )

La unidad más pequeña de datos que puede ser suprimida de una base de datos

relacional es una única fila. La sentencia DELETE elimina filas seleccionadas de datos

de una única tabla y su estructura es: DELETE FROM nombre_de_la_tabla WHERE

… La cláusula FROM especifica la tabla destino que contiene las filas. La cláusula

WHERE especifica qué filas de la tabla deben a ser suprimidas.

Consulta 20.

Supongamos que Corporación Oeste S.A. (número de cliente 2126) decide cancelar

todos los pedidos. Podemos eliminar sus pedidos de la tabla PEDIDOS mediante la

sentencia:

Page 37: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 37

37

Consulta 21.

Si ahora „Enrique Jordan‟, el nuevo vendedor, decide abandonar la empresa con los

clientes que posee, las sentencias DELETE que eliminan sus clientes y su fila de la

tabla REPVENTAS son:

Consulta 22.

Eliminar los pedidos remitidos antes del 15 de Noviembre de 1999:

La cláusula WHERE puede seleccionar varias filas de una tabla SQL y eliminar todas

las filas seleccionadas. La sentencia sería:

Actualización de datos de la base de datos ( UPDATE … SET )

La unidad más pequeña de datos que puede modificarse en una base de datos es una

única columna de una única fila. La sentencia UPDATE modifica los valores de una o

más columnas en las filas seleccionadas de una única tabla. La tabla destino a

actualizar se indica en la sentencia y la cláusula SET especifica que columnas se van

a actualizar y calcula los nuevos valores (pero estos no pueden ser el resultado de

funciones de agregación ni subconsultas). Adicionalmente podemos introducir la

cláusula WHERE para seleccionar un determinado conjunto de filas de la tabla a

modificar. La estructura es:

UPDATE nombre_de_la_tabla SET atributo WHERE …

Veamos, mediante ejemplos, como actúa esta sentencia UPDATE:

Consulta 23.

Modificar el límite de crédito que tiene la empresa „Pino S.L.‟ y asignarle como

vendedor representante el 109:

Page 38: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 38

38

Consulta 24.

Reducir la cuota de los representantes de ventas de la oficina número 12 en un 10% y

cambiarles de oficina para que pasen a ser miembros de la oficina 11:

Consulta 25.

Asignar una cuota de 30.000 a los vendedores que no tengan asignada ya una cuota:

3.12 Otras Características de SQL

¿Qué es un disparador?

Para cualquier evento que provoca un cambio en el conjunto de las tablas un usuario

puede especificar una acción asociada que el DBMS deberá efectuar.

Los tres eventos pueden disparar una acción son inventos INSERT, DELETE, o

UPDATE. Fila de tablas. La acción disparada por un evento se especifica mediante

una secuencia SQL. Escrita en el dialecto de Transact-SQL.

Page 39: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 39

39

UNIDAD IV

SEGURIDAD DE INTEGRIDAD DE BASE DE DATOS

4.1 Introducción

Antes de empezar a hablar de la seguridad de sistemas, es conveniente dejar claro

qué entendemos por seguridad. Podemos entender como seguridad una característica

de cualquier sistema informático, que nos indica que ese sistema está libre de todo

peligro de accesos no permitidos que puedan provocar un daño en él. Podríamos

denominar infalible a un sistema seguro según esta definición.

Particularizando en el terreno que nos ocupa, es muy difícil conseguir esta

característica, prácticamente imposible. Se suaviza entonces esta definición y

hablamos de fiabilidad, entendiendo como tal la probabilidad de que un sistema se

comporte tal y como se espera de él. Más que de sistemas seguros, hablaremos de

sistemas fiables. Para mantener un sistema seguro o fiable, necesitamos garantizar

tres aspectos:

Confidencialidad. Los objetos de un sistema han de ser accedidos

únicamente por los métodos permitidos para ello, y estos métodos no harán

disponible esta información a terceros.

Integridad. Los objetos sólo pueden ser modificados por elementos

autorizados y de una forma controlada.

Disponibilidad. Los objetos del sistema tienen que permanecer accesibles a

elementos autorizados.

Dependiendo del entorno donde estemos trabajando, puede darse más importancia a

alguno de los aspectos anteriores. Por ejemplo, si estamos trabajando en un banco, es

prioritario mantener la integridad de los datos, pasando los otros aspectos a un plano

inferior.

Una vez tenemos claro el concepto de seguridad y lo que conlleva, surge una nueva

pregunta ¿qué debemos proteger? Los tres elementos principales a proteger en

cualquier sistema informático son:

Software. Conjunto de programas lógicos que hacen funcionar al hardware

Page 40: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 40

40

instalado, tanto sistemas operativos como aplicaciones.

Hardware. Conjunto formado por los elementos físicos del sistema informático.

Datos. Conjunto de información lógica que maneja el hardware y el software.

Una vez tenemos claros los conceptos relativos a seguridad de sistemas, es hora de

pasar a la acción. Para proteger nuestro sistema hemos de realizar un análisis de las

amenazas potenciales que puede sufrir y a partir de él diseñar una política de

seguridad que defina responsabilidades y reglas a seguir para evitar las amenazas o

minimizar su incidencia. A los mecanismos utilizados para la implementación de esta

política, se les denomina mecanismos de seguridad. Estos mecanismos serán la parte

más visible del sistema de seguridad. Los mecanismos de seguridad se dividen en tres

grupos:

Prevención. Son mecanismos que aumentan la seguridad de un sistema

durante el funcionamiento normal de éste, previniendo la ocurrencia de

violaciones a la seguridad.

Detección. Son aquellos que se utilizan para detectar violaciones o intentos

de violación del sistema.

Recuperación. Son los que se aplican cuando se ha detectado una violación

del sistema y queremos devolver el mismo a un estado estable. Dentro de

estos mecanismos está el denominado análisis forense.

El objetivo no sólo es retornar a una situación segura y estable, sino también conocer

el alcance real de la violación, las actividades llevadas a cabo por el intruso y la forma

de entrada. Debemos emplear el máximo esfuerzo en implementar unos mecanismos

de prevención lo suficientemente robustos en nuestro sistema. Se hace patente el

dicho “más vale prevenir que curar” ya que es mejor dedicar tiempo a evitar los

ataques que a recuperar un sistema que han violado.

Page 41: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 41

41

4.2 Empleo de Seguros para proteger los resultados de las transacciones

La planificación de la seguridad de un sistema puede dividirse en seis etapas

diferentes:

1. Planificación de las necesidades de seguridad

2. Análisis de riesgos

3. Análisis de costo-beneficio

4. Creación de políticas de seguridad

5. Implementación

6. Auditoria y respuesta ante incidentes

Un sistema informático será seguro si se comporta de la manera que esperamos. Sin

embargo, hay que tener en cuenta que pueden considerarse muchos tipos de

seguridad:

Confidencialidad. Proteger la información para que nadie pueda leerla o

copiarla sin autorización del dueño.

Integridad de los datos. Proteger la información (datos y programas) para

evitar el borrado o alteración de la misma sin el permiso del dueño.

Disponibilidad. Proteger los servicios para que no se degraden o dejen de

estar disponibles sin autorización.

Consistencia. Asegurar que el sistema se comporta como esperan los

usuarios autorizados.

Control. Reglamentar el acceso al sistema.

Auditoria. Registro de las acciones que realizan tanto los usuarios

autorizados, como los intentos de acceso de los no autorizados.

Page 42: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 42

42

4.3 Especificación de un Seguro

Lamentablemente, muchos usuarios de equipos no disponen de los conocimientos o

simplemente deciden no dedicar tiempo a la seguridad del sistema del cual son

responsables. Esto hace que sean redes abiertas a cualquier ataque.

Es necesario marcar una serie de pautas o recomendaciones mínimas que nos

ayuden a minimizar este problema al máximo con técnicas de prevención. Estos

mecanismos deben ser importantes para cualquier usuario y tiene que tenerlos en

cuenta en todas y cada una de las máquinas que use. Sin embargo, esto no significa

que el sistema esté a salvo, son simplemente actuaciones básicas.

4.3.1 Cierre de aplicaciones innecesarias

Cada uno de las aplicaciones ofrecidas en el sistema se convierte en una potencial

puerta de entrada a nuestro sistema. Cerraremos cada uno de los servicios que no

utilicemos o que no sepamos para qué sirven. En caso de que desactivemos un

servicio que sea necesario, simplemente lo activamos de nuevo.

4.3.2 Seguridad de las claves

Una contraseña mala es una posible puerta abierta en nuestro sistema. Aunque son

una de las partes más importantes del sistema, normalmente no se proporciona a los

usuarios instrucciones concretas sobre cómo elegir y guardar la contraseña. Todo

usuario debe saber que si elige una mala contraseña o se la comunican a alguien que

no sea de fiar, comprometen toda la seguridad del sistema.

Una contraseña mala es aquella que se puede adivinar fácilmente. En el mundo real,

los intrusos en lugar de comprobar las contraseñas a mano, utilizan sus propios

ordenadores para comprobarlas de forma automática. En lugar de probar todas las

combinaciones de letras lo que hacen es probar las contraseñas más comunes. Surge

la pregunta ¿cuáles son las malas contraseñas?, veremos algunos ejemplos:

Nombre de usuario o el de un conocido o familiar

Nombres escritos al revés, incluso si mezclan mayúsculas y minúsculas

Contraseñas cortas de cualquier tipo

Números telefónicos

Personajes de películas

Page 43: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 43

43

Basadas en modificaciones simples de una palabra (sustituir I por 1, E por 3,

...)

Palabras en otros idiomas

Es recomendable utilizar mayúsculas y minúsculas, además de dígitos y símbolos de

puntuación junto con letras. Pero no debemos caer en elección de contraseñas

difíciles de recordar y que nos obliguen a escribirlas en algún sitio, no siendo

recomendable que superen los 7 u 8 caracteres. Para elegir una buena contraseña,

podemos tomar dos palabras cortas y combinarlas intercalando un carácter especial o

un número. Otra opción puede ser componerla como un acrónimo de una frase o

poema que nos guste, por ejemplo, “Esta contraseña es lo suficientemente segura”

generaría la clave E2c0E0l4Ss. Hemos tomado las primeras letras alternando

mayúsculas y minúsculas e intercalando el número 20043.

En caso que el usuario maneje varias cuentas a la vez en el mismo o distintos

sistemas, sería un error utilizar la misma contraseña en todos los sistemas, ya que si

averiguan la contraseña de una de las cuentas, la seguridad del resto de sistemas y

cuentas se verá comprometida. Un enfoque muy válido es utilizar una contraseña

básica y modificarla en función de la cuenta o del sistema en el que estemos

accediendo.

Hay una película bastante conocida llamada “Juegos de Guerra” en la que un joven

realizaba sus primeros pinitos en la infiltración clandestina de sistemas. Accedía al

ordenador central de su instituto para cambiarse las calificaciones, gracias al listado de

claves que existía en un papel en la secretaría del centro. Lamentablemente, esto

sucede cientos de veces. Una advertencia básica es que los usuarios no anoten la

contraseña nunca. Aun así, si un usuario quiere escribir su contraseña en algún sitio

debe seguir las siguientes recomendaciones:

Al escribirla, no identificarla como contraseña

No incluir el nombre de usuario ni los datos del servidor al que se accede

Guardar en lugar seguro

4.4 Interacción entre seguros

Las aplicaciones informáticas son inseguras.

• Una vez descubierta la vulnerabilidad, el desarrollador puede arreglarla.

Page 44: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 44

44

• Pero no tiene manera de probar su seguridad, más que en modelos reducidos.

• La experiencia es un indicador de seguridad.

Un modelo formal permite probar teoremas, y en particular comprender las

propiedades de los objetos del modelo.

• Porque no existen modelos de seguridad en Informática?

• Los hay, y la criptografía es un ejemplo de ello.

• Sin embargo, estos modelos no tienen el nivel de detalle necesario para segurar

seguridad.

4.4.Los modelos informáticos permiten verificar las propiedades de objetos

informáticos.

• Que propiedades nos interesan?

Confidencialidad, Integridad, Autenticidad,…

• Sucede que uno describe formalmente los ataques, y recién después

puede probar resistencia contra ellos

4.5 Metodos de seguridad

La Criptografía es una rama de las matemáticas que, al orientarse al mundo de los

mensajes digitales, proporciona las herramientas idóneas para solucionar los

problemas relacionados con la autenticidad y la confiabilidad. El problema de la

confidencialidad se vincula comúnmente con técnicas denominadas de "encripción"

y la autenticidad con técnicas denominadas de "firma digital", aunque la solución

de ambos, en realidad, se reduce a la aplicación de procedimientos criptográficos

de encripción y desencripción.

El uso de técnicas criptográficas tiene como propósito prevenir algunas faltas de

seguridad en un sistema computarizado.

La seguridad, en general, se considera como un aspecto de gran importancia en

cualquier corporación que trabaje con sistemas computarizados. El hecho de que

gran parte de actividades humanas sean cada vez más dependientes de los

sistemas computarizados, hace que la seguridad desempeñe una función

protagónica.

Page 45: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 45

45

La diferencia entre Criptografía y seguridad informática puede ilustrarse así:

En un modelo criptográfico típico, existen dos puntos: "a" y "b", que se consideran

fiables y, entre ellos, se transmite información mediante un canal no fiable. La

Criptografía se ocupa de los problemas relacionados con la transmisión confidencial y

segura por el medio no fiable, en tanto la seguridad informática se ocupa de asegurar

la fiabilidad de los nodos "a" y "b".

La Criptografía se divide en dos grandes ramas, la Criptografía de clave privada o

simétrica y la Criptografía de clave pública o asimétrica.5 La primera se refiere al

conjunto de métodos que permiten una comunicación segura entre las partes siempre

que, con anterioridad, se intercambie la clave correspondiente, que se denomina clave

simétrica. La simetría se refiere a que las partes tienen la misma llave, tanto para cifrar

como para descifrar.

La Criptografía simétrica, se ha implementado en diferentes tipos de dispositivos:

manuales, mecánicos, eléctricos, hasta llegar a las computadoras, donde se

programan los algoritmos actuales. La idea general es aplicar diferentes funciones al

mensaje que se desea cifrar de modo tal, que sólo conociendo la clave, pueda

descifrarse. Aunque no existe un tipo de diseño estándar, tal vez, el más popular es el

de Fiestel,5 que realiza un número finito de interacciones de una manera particular,

hasta que finalmente el mensaje es cifrado. Este es el caso del sistema criptográfico

simétrico más conocido: DES (Data Encryption Standard).

Este último, el DES, es un sistema criptográfico que toma como entrada un bloque de

64 bits del mensaje y lo somete a 16 interacciones. Su clave de 56 bits, en la práctica

tiene 64 bits, porque a cada conjunto de 7 bits se le agrega un bit que puede utilizarse

para establecer la paridad. DES tiene 4 modos de operación: ECB (Electronic

Codebook Mode) para mensajes cortos, de menos de 64 bits, CBC (Cipher Block

Chaining Mode) para mensajes largos, CFB (Cipher Block Feedback) para cifrar bit por

bit o byte por byte y el OFB (Output Feedback Mode) con el mismo uso, pero que evita

la propagación de errores.7-11

Hasta el momento, no se ha podido romper el sistema DES mediante la deducción de

la clave simétrica a partir de la información interceptada; sin embargo, con un método

de fuerza bruta, la prueba de alrededor de 256 posibles claves, pudo descifrarse DES

en enero de 1999.5 Ello implica que, es posible obtener la clave del sistema DES en

un tiempo relativamente corto; así, se ha vuelto inseguro para propósitos de alta

Page 46: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 46

46

seguridad. La opción que se ha tomado para sustituir a DES es el cifrado múltiple, que

aplica varias veces el mismo algoritmo para fortalecer la longitud de la clave y que ha

tomado forma como nuevo sistema para el cifrado y se conoce actualmente como

triple-DES o TDES.

La Criptografía de clave pública o asimétrica, también denominada RSA por las siglas

de los apellidos de sus inventores Rivest Shamir y Adelman, es por definición aquella

que utiliza dos claves diferentes para cada usuario, una para cifrar que se llama clave

pública y otra para descifrar que es la clave privada. El nacimiento de la Criptografía

asimétrica ocurrió como resultado de la búsqueda de un modo más práctico de

intercambiar las llaves simétricas.5

El esquema propuesto en RSA se explica así:

Mediante un programa de cómputo cualquier persona puede obtener un par de

números, matemáticamente relacionados, a los que se denominan llaves. Una llave es

un número de gran tamaño, que usted puede conceptualizar como un mensaje digital,

como un archivo binario, o como una cadena de bits o bytes. Las llaves, públicas y

privadas, tienen características matemáticas, su generación se produce siempre en

parejas, y se relacionan de tal forma que si dos llaves públicas son diferentes,

entonces, las correspondientes llaves privadas son diferentes y viceversa. En otras

palabras, si dos sujetos tienen llaves públicas diferentes, entonces sus llaves privadas

son diferentes. La idea es que cada individuo genere un par de llaves: pública y

privada. El individuo debe de mantener en secreto su llave privada, mientras que la

llave pública la puede dar a conocer.

El procedimiento de firma de un documento digital, por ejemplo, implica que, mediante

un programa de cómputo, un sujeto prepare un documento a firmar y su llave privada

(que sólo él conoce). El programa produce como resultado un mensaje digital

denominado firma digital. Juntos, el documento y la firma, constituyen el documento

firmado.

Es conveniente señalar que, a diferencia de la firma autógrafa, si dos documentos son

diferentes entonces la firma digital también es diferente. En otras palabras, la firma

digital cambia de documento a documento, si un sujeto firma dos documentos

diferentes producirá dos documentos firmados diferentes. Si dos sujetos firman un

mismo documento, también se producen dos documentos firmados diferentes.

Page 47: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 47

47

El proceso de autentificación se efectúa de la siguiente forma:

Dos puntos I y II mantienen comunicación, conociendo I la llave pública de II. Desde el

punto II, se envía un documento firmado digitalmente y un criptograma asociado que

sólo es posible hacerse utilizando su clave privada. Entonces I, utilizando la llave

pública de II genera un criptograma reflejo, compara ambos criptogramas y, si son

iguales, el documento es auténtico.

Si alguna parte del documento o parte de la firma se modifica, aunque sea

ligeramente, entonces, el procedimiento de autentificación indicará que el documento

no es auténtico. Si una llave pública autentifica un documento firmado, entonces el

documento fue firmado con la correspondiente llave privada, es decir, si un individuo

tiene asociada la llave pública que autentifica el documento, entonces, el documento

fue efectivamente firmado por ese individuo.

A diferencia de la firma autógrafa, que es biométrica, y efectivamente prueba el acto

personal de firma, la firma digital sólo prueba que se utilizó la llave privada del sujeto y

no necesariamente el acto personal de firma. En consecuencia, no es posible

establecer con total seguridad que el individuo firmó un documento, sino que sólo es

posible demostrar que es el individuo es el responsable de que el documento se

firmara con su llave privada. En otras palabras, si un documento firmado corresponde

con la llave pública de un sujeto, entonces el sujeto, aunque no lo haya hecho, debe

de reconocer el documento como auténtico.

Por lo tanto, el sujeto debe cuidar de mantener su llave privada en total secreto y no

revelársela a nadie, porque de hacerlo es responsable de su mal uso.

Un sujeto, en el proceso de autentificar un documento firmado debe conocer la llave

pública del supuesto firmante. El sujeto que autentifique documentos firmados por 10

individuos deberá contar con 10 archivos o con una base de datos, que contenga las

10 llaves públicas de los posibles firmantes. Si este número lo aumentamos a cien, mil

o a un millón, el problema crece considerablemente.

Una solución para el problema del manejo de las llaves es el conocido certificado

digital.4

Un certificado digital es un documento firmado digitalmente por una persona o entidad

denominada autoridad certificadora (AC). Dicho documento establece un vínculo entre

un sujeto y su llave pública, es decir, el certificado digital es un documento firmado por

una autoridad certificadora, que contiene el nombre del sujeto y su llave pública. La

Page 48: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 48

48

idea es que quienquiera que conozca la llave pública de la AC puede autentificar un

certificado digital de la misma forma que se autentifica cualquier otro documento

firmado.

Si el certificado es auténtico y confiamos en la AC, entonces, puede confiarse en que

el sujeto identificado en el certificado digital posee la llave pública que se señala en

dicho certificado. Así pues, si un sujeto firma un documento y anexa su certificado

digital, cualquiera que conozca la llave pública de la AC podrá autentificar el

documento.

4.6 Mantenimiento de la Integridad

El objetivo de la integridad es proteger la base de datos contra operaciones que

introduzcan inconsistencias en los datos, por eso hablamos de integridad en el sentido

corrección, validez o precisión de los datos de lavase.

El subsistema de integridad de un SGBD debe, por tanto detectar y corregir, en la

medida de lo posible, las operaciones incorrectas. Hay que tener en cuenta, sin

embargo, que habrá operaciones cuya falta de corrección no sea detectable, por

ejemplo si se introduce como fecha de nacimiento de un empleado de 17/02/31

cuando en realidad era 19/02/31 ese error nunca podría ser detectado por el sistema

ya que ambas fechas son válidas.

4.6.1 Integridad semántica

Existen operaciones que pueden violar restricciones definidas al diseñar la base de

datos, como pueden ser restricciones sobre los dominios (el estado civil tiene como

valores “Soltero”, “Casado”, “divorciado” o “Viudo”) o sobre los atributos (la fecha de

nacimiento de los empleados debe ser tal que las edad sea menor a 70 años). Estas

restricciones pueden ser estáticas (También llamadas de estado ).

Se puede considerar las reglas de integridad como reglas ECA (Evento-Condicion-

Accion) que dispara la acción al ocurrir un evento siempre que se cumpla la condición.

Page 49: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 49

49

4.6.2 Integridad operacional

En sistemas multiusuarios es imprescindible, además, un mecanismo de control de

concurrencia para conservar la integridad de la base de datos, ya que se puede

producir importantes inconsistencias derivadas del acceso concurrente.

Page 50: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 50

50

UNIDAD V

BASES DE DATOS DISTRIBUIDAS

5.1. INTRODUCCIÓN

Las Bases de Datos en la actualidad son muy importantes debido a que en ellas se

guarda gran información de suma importancia. Este tema trata de simplificar las

consultas de una base de datos, para poder acceder desde cualquier sitio, en

cualquier punto de la red tal como si todos los datos estuvieran almacenados en el

sitio mismo.

Para esto se debe construir sistemas distribuidos de bases de datos, ya que se están

utilizando cada vez más al igual que se usan las arquitecturas de cliente-servidor. Los

principales problemas que se generan por el uso de la tecnología de bases de datos

distribuidas son en lo referente a duplicidad de datos y su integridad al momento de

realizar actualizaciones a los mismos.

5.2.1 ALMACENAMIENTO DISTRIBUIDO

Es una colección de datos que pertenecen lógicamente a un sólo sistema, pero se

encuentra físicamente esparcido en varios "sitios" de la red. Un sistema de base de

datos distribuidos se compone de un conjunto de sitios, conectados entre sí mediante

algún tipo de red de comunicaciones, en el cual:

• Cada sitio es un sistema de base de datos en sí mismo.

• Los sitios trabajan en conjunto si es necesario con el fin de

que un usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto

de la red tal como si todos los datos estuvieran almacenados en el sitio propio del

usuario.

5.2.1.1 OBJETIVOS DE LAS BASES DE DATOS DISTRIBUIDAS

Es una especie de objeto virtual, cuyos componentes se almacenan físicamente en

varias bases de datos “reales” distintas, ubicadas en diferentes sitios. Cada sitio tiene

sus propias bases de datos “reales” locales, sus propios usuarios locales, sus propios

Page 51: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 51

51

DBMS y programas para la administración de transacciones y su propio administrador

local de comunicación de datos.

Un usuario puede realizar operaciones sobre los datos en su propio sitio local

exactamente como si ese sitio no participara en absoluto en el sistema distribuido.

5.3 Arquitectura

Fig 1. Arquitectura de base de datos distribuida

El sistema de administración de base de datos distribuida (DDBMS), está formado

por las transacciones y los administradores de base de datos distribuidos de todas las

computadoras. Tal y como se muestra, tal DDBMS es un esquema genérico que

implica un conjunto de programas que operan en diversas computadoras. Estos

programas pueden ser subsistemas de un producto único DDBMS, concesionado por

un sólo fabricante, o también pudiera resultar una colección de programas de fuentes

dispares: algunos concesionados por fabricantes, y algunos otros escritos en casa. El

propósito de esta figura es ilustrar las funciones que deban atenderse en el

procesamiento de bases de datos distribuidas.

Page 52: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 52

52

Un administrador de transacciones distribuidas (DTM) es un programa que recibe

so- licitudes de procesamiento de los programas de consulta o de transacciones ya su

vez las traduce en acciones para los administradores de la base de datos. Una función

importante del DTM es coordinar y controlar dichas acciones. Dependiendo de la

naturaleza de la aplicación del DDBMS, el DTM puede ser proporcionado como parte

de DDBMS o puede desarrollarse en casa por la organización que pone en práctica el

sistema distribuido. En aplicaciones menos complejas, una parte de sus funciones

puede ser llevada a cabo por personas, siguiendo sólo procedimientos manuales.

Un administrador de la base de datos (DBM) es un programa que procesa cierta

porción de la base de datos distribuida, como es el hecho de recuperar y actualizar

datos del usuario y generales, de acuerdo con comandos de acción recibidos de los

DTM. El DBM puede ser un subconjunto de un producto DDBMS, o ser también un

DBMS comercial no distribuido. En algunos casos, el DDBMS pudiera contener

diferentes productos DBMS.

Un nodo es una computadora que ejecuta un DTM, un DBM, o inclusive ambos. Un

nodo de transacción procesa un DTM, y un nodo de base de datos procesa un DBM y

su base de datos': En la Figura 17-1, el Nodo W es un nodo de base de datos

ejecutando DBMwY almacenando BDw. El Nodo X es tanto un nodo de transacción

como de base de datos con DTMx' DBMx y BDx. De modo similar, el Nodo Y es tanto

un nodo de transacción como de base de datos, pero el Nodo Z es solamente un nodo

de transacción.

Los programas de consulta o de transacción se comunican con los DTM a través de

solicitudes parecidas a las solicitudes de acción del DBMS. Ejemplos son SELECT

EMPLOYEE WHERE E# EQ 123 o bien STORE DUE-DATE. Estas solicitudes operan

sobre estructuras lógicas. El programa de consulta o de aplicación no se refiere a

ninguna instancia física en particular de la estructura.

Los DTM se comunican con los DBM por medio de acciones a ejecutarse en

ocurrencias específicas de datos. Por lo tanto, si la nueva ocurrencia de DUE-DA TE

debe almacenarse en DBx y en DBy, el DTM traducirá la solicitud STORE DUE-DA TE

en dos acciones. Una se dirigirá a DBMx para almacenar los nuevos datos, y la

segunda se dirigirá a DBMy para a su vez almacenar tal información. En principio, las

solicitudes y las acciones pueden también diferir en términos de su nivel de

abstracción. Por ejemplo, se puede expresar una solicitud en términos de un objeto y

Page 53: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 53

53

puede ser traducida en acciones o expresada en términos de relaciones compuestas

distribuidas o de archivo. A la fecha, sin embargo, no existe un DDBMS como éste.

5.4 Transparencia de la Red

Las transacciones necesitan ser independientes de la localización de un elemento de

datos particular. De no ser así, las cuestiones de localización complicarían la lógica de

la transacción. Considere usted la empresa manufacturera que se utilizó en la Figura

2. Si el gerente de inventarios desea mover refrigeradores de la Planta A la Planta B,

deberán modificarse dos registros de inventario. Suponga que los datos involucrados

no están duplicados; pero que datos puedan estar almacenados en una computadora

en cualquiera de las dos localizaciones.

Fig 2. Un negocio distribuido geográficamente

Si el programa que procesa esta transacción no es transparente en lo que se refiere a

localización de los datos, tendrá que considerar cuatro casos: ambos registros en A,

uno en A y uno en B, uno en B y el otro en A o ambos en B. La lógica de la transacción

se confunde por la necesidad de considerar la localización de los datos. La lógica sería

Page 54: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 54

54

mucho más complicada para un ejemplo más complejo, en cualquier caso estas

consideraciones son innecesarias e inapropiadas para un programa de aplicación.

Se puede conseguir la transparencia de localización si los administradores de

transacciones distribuidas (los DTM en la Figura 1) son responsables de determinar la

localización de los datos y de emitir las acciones a los DBM apropiados, lo cual se

puede llevar a cabo si los DTM poseen acceso a los directorios de las localizaciones

de los datos. Si los datos se mueven, sólo el DTM necesita involucrarse. Todas las

transacciones quedan aisladas de la modificación en la localización.

5.5 Procesamiento Distribuido de Consultas

El procesamiento de consultas es de suma importancia en bases de datos

centralizadas. Sin embargo, en BDD éste adquiere una relevancia mayor. El objetivo

es convertir transacciones de usuario en instrucciones para manipulación de datos.

No obstante, el orden en que se realizan las transacciones afecta grandemente la

velocidad de respuesta del sistema. Así, el procesamiento de consultas presenta un

problema de optimización en el cual se determina el orden en el cual se hace la menor

cantidad de operaciones. En BDD se tiene que considerar el procesamiento local de

una consulta junto con el costo de transmisión de información al lugar en donde se

solicitó la consulta.

Aspectos a tener en cuenta:

Numero de accesos a disco

Costo de transmisión en la red

Procesamiento en paralelo de cada emplazamiento

un ejemplo

Sea r1 = σθ1(r ) y r2 = σθ2(r ) y se desea calcular σθ3(r ). y

solo se dispone de los fragmentos y no de la relación original:

σθ3(r ) = σθ3(r1) ∪ σθ3(r2)

Sea r ,t y w relaciones que se almacenan en E1 , E2 y E3

respectivamente, como calcular r ./ t ./ w en E1 ? cual es el

Page 55: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 55

55

costo de cada alternativa?

5.6 Modelo de Transacciones Distribuidas

Transacciones Locales: Solo afectan los elementos del emplazamiento quien

inicia la transacción

Transacciones Remotas: Utilizan recursos de un emplazamiento remoto

Transacciones Distribuidas: Utilizan recursos locales y recursos de

emplazamientos remotos

Como coordinar las Transacciones

Gestor Trans.: Registro

histórico, control de

concurrencia, etc

Coordinador de transacciones:

Coordina la ejecución de

transacciones globales

(distribuidas)

El coordinador de transacciones tiene a cargo:

Iniciar la ejecución de una transacción Divide la transacción en subtransacciones y

envía las instrucciones necesarias a cada emplazamiento Coordina la terminación

(compromiso o retroceso) de la transacción.

Page 56: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 56

56

5.7 Protocolos de Compromiso

Cada acción debe

registrarse en el registro

histórico con fines de

recuperación

todos los

emplazamientos se

comprometen o todos se

abortan (atomicidad global)

Si el fallo es anterior al mensaje de preparación, se asume un abort

Si el fallo es posterior al mensaje de preparación se continua el PC2F

Cuando el emplazamiento se recupera debe:

Si existe hti comprometidai en el R.H , rehacer (ti )

Si existe hti abortadai en el R.H , deshacer (ti )

Si existe hti preparadai en el R.H , consultar a Ci el destino de la transacción.

Si Ci no responde consultar a los otros emplazamiento y posponer la decision

hasta encontrar una respuesta de algún nodo.

Si el registro no contiene las anteriores, debe abortar (nunca hubo respuesta)

Qué pasa si falla el coordinador?

Si un emplazamiento contiene hti comprometidai o hti abortadai se compromete

o aborta la transacción.

Si ningún emplazamiento contiene hti preparadai se aborta T (fallo antes de

tomar la decisión)

Page 57: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 57

57

Si ningún emplazamiento tiene hti comprometidai o hti abortadai, ti espera

hasta la recuperación de Ci y se mantienen los bloqueos hasta que esto

suceda

5.8 Selección del Coordinador

El termino sistema de gestión de base de datos distribuida puede describir diversos

sistemas que presentan muchas diferencia entre sí. El punto principal que todos estos

sistemas tienen en común es el hecho de que los datos y el software están distribuidos

entre múltiples sitios conectados por alguna especie de red de comunicaciones.

El primer factor que consideremos es el grado de homogeneidad del software de

SGBDD. Si todos los servidores (o SGBD locales individuales) utilizan el software

idéntico de SGBDD. Si todos los servidores utilizan software idéntico y todos los

clientes empleam software idéntico se dice que el SGBDD es homogéneo; en caso

contrario se le caracteriza por eterogeneo. Otro factor relacionado con el grado de

homogeneidad es el grado de autonomía local. Si todo acceso al SGBDD debe

hacerse a través de un cliente, el sistema no tiene autonomía local. Por otro lado, si

se permite a las transacciones locales acceso directo a un servidor el sistema tendrá

cierto grado de autonomía local.

5.9 Control de Concurrencia

En lo tocante del control de concurrencias y la recuperación en un entorno de SGBD

distribuido, surgen numerosos problemas que no se encuentran en los entornos de

SGBD centralizados.

Entre ellos están:

Manejar Múltiples Copias de los elementos de información: El método de

control de concurrencia tiene la obligación de mantener la concurrencia entre

estas copias. El método de recuperación debe cuidar que una copia sea

consistente con todas las demás si el sitio en que la copia estaba almacenada

falla y se recupera posteriormente.

Fallo de sitios individuales: El SGBDD debe continuar operando con sus sitios

activos, si es posible, cuando fallen uno o más sitios individuales. Cuando un

sitio se recupere, su base de datos local se deberá poner al día con los demás

sitios antes de que se reincorporen al sistema.

Page 58: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 58

58

Fallo de enlaces de comunicación: El sistema debe ser capaz de manejar el

fallo de uno de los enlaces de comunicaciones entre los sitios. Un caso

extremo de este problemas es que puede haber particiones de la red . Esto

divide los sitios en dos o más particiones dentro de las cuales los sitios pueden

comunicarse entre sí pero no con sitios de otras particiones.

5.10 Tratamiento de los Interbloques

Con la construcción de grafos locales no es suficiente para determinar un interbloqueo.

Por ejemplo:

Enfoque Centralizado Construir un grafo centralizado cuando:

Se modifique un arco en un grafo local Periódicamente

Siempre que se requiere correr el algoritmo de detección

Esquema Distribuido Construcción de grafos parciales en cada emplazamiento

Detección de ciclos en los grafos parciales

Los grafos locales se van extendiendo a medida que el emplazamiento

participa en transacciones globales

Page 59: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 59

59

UNIDAD VI

DATAWAREHOUSE

6.1 ¿Qué es un data warehouse?

Un almacén de datos (del inglés data warehouse) es una colección de datos

orientada a un determinado ámbito (empresa, organización, etc.), integrado, no

volátil y variable en el tiempo, que ayuda a la toma de decisiones en la entidad en la

que se utiliza.

Data warehousing es el centro de la arquitectura para los sistemas de información

desde la década de los '90. Soporta el procesamiento informático al proveer

una plataforma sólida, a partir de los datos históricos para hacer el análisis.

Facilita la integración de sistemas de aplicación no integrados. Organiza y almacena

los datos que se necesitan para el procesamiento analítico, informático sobre

una amplia perspectiva de tiempo.

Un Data Warehouse o Depósito de Datos es una colección de datos orientado a

temas, integrado, no volátil, de tiempo variante, que se usa para el soporte del

proceso de toma de decisiones gerenciales.

Se puede caracterizar un Data Warehouse haciendo un contraste de cómo los datos

de un negocio almacenados en un data warehouse, difieren de los datos

operacionales usados por las aplicaciones de producción.

El ingreso de datos en el Data Warehouse viene desde el ambiente operacional en

casi todos los casos. El Data Warehouse es siempre un almacén de datos

transformados y separados físicamente de la aplicación donde se encontraron

los datos en el ambiente operacional

6.2 Componentes de un Datawarehouse

La estructura básica de la arquitectura DW incluye:

1. Datos operacionales: un origen de datos para el componente de almacenamiento

físico DW.

Page 60: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 60

60

2. Extracción de Datos: selección sistemática de datos operacionales usados para

poblar el componente de almacenamiento f ísico DW.

3. Transformación de datos: Procesos para sumarizar y realizar otros cambios en los

datos operacionales para reunir los objetivos de orientación a temas e integración

principalmente.

4. Carga de Datos: inserción sistemática de datos en el componente de

almacenamiento físico DW.

5. Datawarehouse: almacenamiento f ísico de datos de la arquitectura DW.

6. Herramientas de Acceso al componente de almacenamiento físico DW:

herramientas que proveen acceso a los datos.

Fig 1: ESTRUCTURA BÁSICA DW. [MicroSt96]

Page 61: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 61

61

Los pasos 2, 3 y 4 considerados en la figura anterior, conforman el proceso conocido

como ETT (Extracción, Transformación y Transporte).

6.3 Opciones de Implementación

La forma en la cual se estructure el almacenamiento de datos DW, genera una

clasificación respecto a la forma de implementar una arquitectura DW. La estructura

adoptada para el almacén de datos se debe realizar de la manera que mejor satisfaga

las necesidades empresariales, siendo entonces dicha elección factor clave en la

efectividad del DW. Las más básicas son:

EL DW central: es una implementación de un solo nivel con un solo almacén para

soportar los requerimientos de información de toda la empresa.

El DW distribuido: es también una estructura de un nivel, pero particional el almacén

para distribuirlo a nivel departamental.

El DW de dos niveles: combina ideas de los dos anteriores, siendo sus entregables

tanto el almacén empresarial como los departamentales.

6.4 Consideraciones a tomar en cuenta en la construcción

6.4.1 Costos v/s Valor De DW

En todo proyecto es importante e inevitable realizar un análisis desde la perspectiva

Costo/Valor. A grandes rasgos, los costos asociados a un proyecto DW incluyen el

costo de construcción y, la mantención y operación una vez que está construido. En

cuanto al valor, éste considera, el valor de mejorar la entrega de información, el valor

de mejorar el proceso de toma de decisiones y el valor agregado para los procesos

empresariales.

6.4.2 Costos De Un DW

Los costos de construir un DW son similares para cualquier proyecto de tecnología de

información. Estos pueden ser clasificados en tres categorías:

RRHH: la gente necesita contar con un enfoque fuerte sobre el conocimiento del área

de la empresa y de los procesos empresariales. Además es muy importante considerar

las cualidades de la gente, ya que el desarrollo del DW requiere participación de la

gente de negocios como de los especialistas tecnológicos; estos dos grupos de gente

Page 62: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 62

62

deben trabajar juntos, compartiendo su conocimiento y destrezas en un espíritu de

equipo de trabajo, para enfrentar los desafíos de desarrollo del DW.

Tiempo: Se debe establecer el tiempo no tan solo para la construcción y entrega de

resultados del DW, sino también para la planeación del proyecto y la definición de la

arquitectura. La planeación y la arquitectura, establecen un marco de referencia y un

conjunto de estándares que son críticos para la eficacia del DW.

Tecnología: Muchas tecnologías nuevas son introducidas por el DW. El costo de la

nueva tecnología puede ser tan sólo la inversión inicial del proyecto.

6.4.3 Costos De Operación

Una vez que está construido y entregado un DW debe ser soportado para que tenga

valor empresarial. Son justamente estas actividades de soporte, la fuente de continuos

costos operacionales para un DW. Se pueden distinguir tres tipos de costos de

operación:

Evolutivos: ajustes continuos del DW a través del tiempo, como cambios de

expectativas y, cambios producto del aprendizaje del RRHH del proyecto mediante su

experiencia usando el DW.

Crecimiento: Incrementos en el tiempo en volúmenes de datos, del número de

usuarios del DW, lo cual conllevará a un incremento de los recursos necesarios como

a la demanda de monitoreo, administración y sintonización del DW (evitando así, un

incremento en los tiempos de respuesta y de recuperación de datos, principalmente).

Cambios: El DW requiere soportar cambios que ocurren tanto en el origen de datos

que éste usa, como en las necesidades de la información que éste soporta. Los dos

primeros tipos de costos de operación ón, son básicos en la mantención de cualquier

sistema de información, por lo cual no nos resultan ajenos; sin embargo, se debe tener

especial cuidado con los costos de operación por cambios, ya que ellos consideran el

impacto producto de la relación del OLTP y del Ambiente Empresarial, con el DW.

Resulta esencial para llevar a cabo un proyecto DW, tener claridad en la forma que

éste se ve afectado por medio de cambios a nivel de OLTP como del Ambiente

Empresarial; por ello entonces, a continuación se analiza más en detalle este tipo de

costos de operación.

Page 63: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 63

63

6.5 Estrategias de Implantación

Extrae la información operacional.

Transforma la operación a formatos consistentes.

Automatiza las tareas de la información para prepararla a un análisis

eficiente.

6.6 Técnicas de Explotación

Acceso a fuentes de datos heterogéneas:

Limpieza de datos

Filtrado de datos

Transformación de datos

Almacenamiento de los datos: Estructura de datos multidimensional:

Page 64: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 64

64

6.7 Aplicaciones en la que utilizar técnicas disponibles sobre el DW

Manejo de relaciones de marketing.

Análisis de rentabilidad.

Reducción de costos.

Funcionamiento detallado de un DW

Implementación

El data warehouse se mantiene aparte de las bases de datos operacionales y se

puede implementar utilizado servidores OLAP multidimensionales (MOLAP) o

servidores OLAP relacionales (ROLAP).

MOLAP (Multidimensional OLAP)

Los datos se almacenan en estructuras de datos multidimensionales (matrices

multidimensionales sobre las que se realizan directamente las operaciones OLAP).

Page 65: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 65

65

ROLAP (Relational OLAP)

El DW se implementa como una base de datos relacional (las operaciones

multidimensionales OLAP se traducen en operaciones relacionales estándar).

Esquema en estrella (star)

Una tabla de hechos y una tabla adicional por cada dimensión

Page 66: Índice - Universidad Salesiana de Boliviavirtual.usalesiana.edu.bo/web/contenido/dossier/12012/1443.pdf · En el modelo relacional se utiliza un grupo de tablas para representar

Lic. Patricia Palacios Zuleta Página 66

66

BIBLIOGRAFIA

1. seguridad de sistema Autor : José Manuel Badia Contelles Editorial RA-MA Año :2000

2. Head First SQL

Autor: Lynn Beighley

Editorial : O´reilly

Año 2007

3. SQL Guía de prácticas

Autor : Michael J. Donahoo

Editorial : Morgan Kaufman

Año: 2005

4. Business Intelligen

Autor : Carlo Vercellis

Editoria:WILEY

Año : 2009

5. Data Preparation fort Data Minig

Autor: Dorian Pyle

Editorial: Morgan Kaufman

Año: 1999

6. Fundamento de bases de datos

Autor: KORT; HENRY

Editorial MgGraw- Hill

Año 1999

7. Sistema de Bases de Datos

Autor: Date,J.C

Editorial MgGraw- Hill