sábado, 6 de septiembre de 2008

Implementación de operaciones sobre conjuntos

- Unión (RUS)

- Intersección (R S)

- Diferencia (R-S)

- Producto cartesiano.




- La unión, intersección y diferencia sólo se aplican a relaciones compatibles con la unión, es decir, que tengan los mismos atributos (número y definidos en el mismo contexto).

- Ordenar las dos relaciones según los mismos atributos

- Con una sola pasada se obtiene el resultado

RUS: Se examinan los archivos de forma concurrente

- Cuando se encuentra la misma tupla en ambas relaciones, sólo se conserva una.

R S: Únicamente se conserva en el resultado sólo las tuplas que aparezcan en ambos archivos.

En la unión, intersección y diferencia se puede utilizar la dispersión, llevándolas a la misma cubeta del archivo.

RUS: Se dispersan los registros de R al archivo de dispersión, luego dispersar los registros de S en el cual no se insertan los registros repetidos.

RUS: Se dispersan todos los registros de R luego los registros de S, si se encuentra un registro idéntico en la cubeta se añade el registro al archivo resultado.

R-S: Se dispersan los registros de R, luego los de S, si se encuentra un archivo idéntico en la cubeta, se elimina toda esa tupla.




Empleo de la heurística en la optimización de consultas SQL

SQL1.

Select Proyecto.noProyecto,

Depto.noDepto,

Empleado.dirección,

Empleado.fechaNac

From Proyecto, Depto, Empleado

Where Proyecto.noDepto=Depto.noDepto

and Proyecto.lugar=”México”;

1) Árbol canónico

a) Operaciones de producto cartesiano (X)

b) Restricciones de selección (σ)

Un árbol de consulta:

Estructura en forma de árbol corresponde a una expresión del álgebra relacional.

- Representa las relaciones de entrada como nodo hoja

- Operaciones del algebra relacional los nodos internos.

Árbol canónico: Estructura en forma de árbol corresponde a una consulta en SQL sin efectuar optimización alguna.

1) Se aplica el producto cartesiano de las relaciones que aparecen en la cláusula FROM (de derecha a izq).

2) Las condiciones de selección y reunión de la cláusula WHERE, seguida de la proyección sobre los atributos que aparecen en la cláusula SELECT.

1. Obtener el árbol canónico a partir de la consulta SQL 1




Transformación de una expresión algebraica a un árbol de consulta

Ejemplo 1

noProyecto.noDepto,apellido,dirección,fechaNac(((σlugarP=”México”(Proyecto))|X|noDepto=noDepto(Depto)) |X|noEmpGerente=noEmp(Empleado))







Ejemplo 1

Árbol de consulta



Ponemos los atributos de la proyección como raíz del árbol. Después empezamos a resolver los paréntesis de derecha a izquierda,

Optimización de consultas por heurística

SQL 2

Select Empleado.apellido

From Empleado, TrabajaEn, Proyecto

Where Proyecto.nombreP=”Rediseño 2008”

and Proyecto.noProyecto=TrabajaEn.noProyecto

and TrabajaEn.noEmp=Empleado.noEmp

and Empleado.fechaNac > “31/12/1985”;

1) Obtener el árbol canónico




2) Considerar las restricciones de (σ)



Aquí vemos que la selección nombreP=”Rediseño” nos estaría dando de resultado una sola tupla, mientras que Empleado nos da algunas y TrabajaEn todas.

3) Aplicar conmutatividad entre las relaciones donde se aplica el producto cartesiano (menor # tuplas)


4) Identificar la operación de reunión en el árbol de consulta




5) Acomodar las proyecciones en el árbol de consulta

Tomamos todos los atributos de las tablas y vemos cuales son relevantes, las demás se quitan.




6) Generar expresión algebraica del árbol de consulta

apellido[(( noProyecto,nombrePnombreP=”Rediseño 2008”(Proyecto))) |X|noProyecto=noProyecto noEmp,noProyecto(TrabajaEn)) |X|noEmp=noEmp noEmp,apellido,fechaNacfechaNac>”31/12/1985”(Empleado))]


Ejemplo SQL 3

Select Alumno.noBoleta,

Alumno.nombre,

From Alumno,AMateria,Materia,Prof

Where Prof.nombre=”Nancy Ocotitla”

And Materia.materia=”BD I”

And Alumno.noBoleta=AMateria.noBoleta

And AMateria.codMat=Materia.codMat

And Materia.codProf=Prof.codProf;



1) Obtener el árbol canónico



2) Considerar las restricciones de (σ)



3) Aplicar conmutatividad entre las relaciones donde se aplica el producto cartesiano (menor # tuplas)

En este caso Materia y Prof nos van a dar una tupla al momento de aplicar la restricción de selección. Hay que ver de qué forma están relacionadas las tablas para saber cual podemos mover sin alterar el orden de relación (llaves).



4) Identificar la operación de reunión en el árbol de consulta




5) Acomodar las proyecciones en el árbol de consulta




6) Generar expresión algebraica del árbol de consulta

noBoleta,nombre[(( codProfnombre=”Nancy Ocotitla”(Prof)) |X|codProf=codProf( codMat,codProfmateria=”BD I”(Materia)))) |X|codMat=codMat( noBoleta,codMat(AMateria))) |X|noBoleta=noBoleta( noBoleta,nombre(Alumno))]



domingo, 31 de agosto de 2008

Segmentación y ensamblado






Si un paquete es demasiado grande para otra computadora se puede fragmentar como en el esquema anterior, creando offset (desplazamiento de la fragmentación).

Modelo OSI (Interconexión de Sistemas Abiertos)





Capa física

Funciones

- Características físicas de las interfaces y el medio

- Representación de los bits

- Tasa de datos

- Sincronización de bits

- Configuración de la línea

- Topología física

- Modo de transmisión

Capa de enlace de datos

Subcapa LLC

Funciones:

- Control de flujo

- Control de errores

- Tramado

Subcapa MAC

Funciones:

- Direccionamiento físico

- Control de acceso

Capa de red

Funciones:

- Encaminamiento

- Direccionamiento lógico

[en construccion]

martes, 26 de agosto de 2008

Estado de resultados o estado de pérdida y ganancias

Es un documento contable que muestra detalladamente y ordenadamente la utilidad o pérdida del ejercicio.

Ventas totales – Devoluciones y Descuentos sobre ventas = Ventas netas

Compra + Gasto de compra – Devolución y Descuento sobre compra = Compras netas

Inventario Inicial + Compras netas – Inventario final = Costo de lo vendido

Ventas netas – Costo de lo vendido = Utilidad en ventas o Utilidad bruta

Gastos de venta + Gastos Administrativos (+ Gastos financieros o – Productos financieros) = Gastos de operación

Otros gastos – Otros productos = Pérdida neta entre otros productos y otros gastos

Otros productos – Otros gastos = Utilidad neta entre otros gastos y productos

Utilidad Bruta – Gastos de operación = Utilidad de la operación

Utilidad de la operación (- Pérdida neta ó + Producto entre otros gastos o productos) = Utilidad antes de impuestos

Utilidad antes de impuestos – Impuestos (ISR, PTU) = Utilidad neta del ejercicio o pérdida.

Ejemplo:

Control de flujo

- Parada y espera

- Ventana deslizante

Parada y espera



Ventana deslizante





PDU TCP



Control de conexión



Direccionamiento

- Nivel de direccionamiento: OSI vs TCP/IP

- Alcance del direccionamiento: no ambigüedad global, aplicabilidad global

- Identificadores de conexión: capa de sesión

- Modo de direccionamiento: unicast, multicast, broadcast.

Direcciones privadas (RFC 1918)

Direcciones privadas definidas por IANA: Son direcciones que no son enrutables en Internet.

Nombre

rango de direcciones IP

número de IPs

descripción de la clase

mayor bloque de CIDR

definido en

bloque de 8 bits

10.0.0.0 – 10.255.255.255

16.777.216

clase A simple

10.0.0.0/8

RFC 1597 (obsoleto), RFC 1918

bloque de 12 bits

172.16.0.0 – 172.31.255.255

1.048.576

16 clases B continuas

172.16.0.0/12

bloque de 16 bits

192.168.0.0 – 192.168.255.255

65.536

256 clases C continuas

192.168.0.0/16

bloque de 16 bits

169.254.0.0 – 169.254.255.255

65.536

clase B simple

169.254.0.0/16

RFC 3330, RFC 3927

– Ideales para Labs o Test-home networks

– Ideal en Intranets

– Ideal en WAN links (core backbones) para ahorrar direcciones globales.

– Problema: no son enrutables por Internet

Direccionamiento por clases




Encapsulamiento



Multiplexión

Puertos reservados

Se necesitan privilegios de superusuario:

.1 – 255: Aplicaciones Internet estándar (FTP, HTTP, TELNET, etc)

.256 – 511: Uso futuro.

.512 – 1023: Servidores de usuario que se ejecutan con privilegios de superusuario.

Servicios de transmisión

- Prioridad

- QOS (Calidad de Servicio)

- Confiabilidad

PDU IP



Campo TOS (Tipo de Servicio)

Bits 0 – 2: Prioridad

Bit 3: 0: Retardo normal, 1: Retardo mínimo

Bit 4: 0: Desempeño normal, 1: Desempeño máximo

Bit 5: 0: Confiabilidad normal, 1: Confiabilidad máxima

Bit 6 – 7: Reservado para uso futuro

sábado, 16 de agosto de 2008

Hamming

m= mensaje

T= trama de m+n bits

n= número de bits de Hamming.

Para encontrar n uso la desigualdad:

2n ≥ m + n + 1

Ejemplo

Dado m= “101101010010010” encontrar T

2n ≥ m + n + 1

25 ≥ 15 + 5 + 1

32 ≥ 21

n=5

T= 2nm

T es de 20 bits:

Colocamos una H que representará los bits n de Hamming en cualquiera de los 20 lugares:

T=

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

H


H






H








H



H

Ahora ponemos “m” en los lugares restantes:

T=

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

H

1

H

0

1

1

0

1

H

0

1

0

0

1

0

0

H

1

0

H

Anotamos la posición de todos los unos.

1’s= 19, 16, 15, 13, 10, 7, 3

Ahora los sumamos de la siguiente forma:



T=

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

1

1

0

1

1

0

1

1

0

1

0

0

1

0

0

1

1

0

1

Verificación

Tomamos la posición de todos los unos.

1’s= 19, 18, 16, 15, 13, 12, 10, 7, 4, 3, 1

No tomamos en cuenta los unos que se encuentran donde estaban las H.

Ahora sumamos el código de Hamming a estas posiciones:




En caso de que hubiera error, por ejemplo que saliera 01101 el resultado nos dará la posición donde se encuentra el bit alterado, que en ese caso sería la posición 13.