martes, 6 de octubre de 2009

Servicios de Directorio - Protocolo de acceso

LDAP ("Lightweight Directory Acces Protocol", en español Protocolo Ligero de Acceso a Directorios) es un protocolo de tipo cliente-servidor para acceder a un servicio de directorio.

Se usó inicialmente como un Front-end o interfaz final para x.500, pero también puede usarse con servidores de directorio únicos y con otros tipos de servidores de directorio.



¿Qué es un directorio?

Un directorio es una base de datos, pero en general contiene información más descriptiva y más basada en atributos.

La información contenida en un directorio normalmente se lee mucho más de lo que se escribe. Como consecuencia los directorios no implementan normalmente los complicados esquemas para transacciones o esquemas de reducción que las bases de datos utilizan para llevar a cabo actualizaciones complejas de grandes volúmenes de datos, Las actualizaciones en un directorio son usualmente cambios sencillos de todo o nada, si es que permiten algo.

Los directorios están para proporcionar una respuesta rápida a operaciones de búsqueda o consulta.

Pueden tener capacidad de replicar información de forma amplia, con el fin de aumentar la disponibilidad y fiabilidad, y a la vez reducir tiempo de respuesta. Cuando se duplica la información de un directorio, pueden aceptarse inconsistencias temporales entre la información que hay en las réplicas, siempre que finalmente exista una sincronización.

Hay muchas formas de proporcionar un servicio de directorio. Los diferentes métodos permiten almacenar en el directorio diferentes tipos de información, establecer requisitos diferentes para hacer referencias a la información, consultarla y actualizarla, la forma en que protege al directorio de accesos no autorizados. Algunos servicios de directorios son locales, proporcionando servicios a un contexto restringido. Otros servicios son globales, proporcionando servicio en un contexto mucho más amplio.



¿Un directorio LDAP es una base de datos?

El sistema gestor de una base de datos (Database Management System ó DBMS) de Sybase, Oracle, Informix ó Microsoft es usado para procesar peticiones (queries) ó actualizaciones a una base de datos relacional. Estas bases de datos pueden recibir cientos o miles de órdenes de inserción, modificación o borrado por segundo.

Un servidor LDAP es usado para procesar peticiones (queries) a un directorio LDAP. Pero LDAP procesa las órdenes de borrado y actualización de un modo muy lento.
En otras palabras, LDAP es un tipo de base de datos, pero no es una base de datos relacional. No está diseñada para procesar cientos o miles de cambios por minuto como los sistemas relacionales, sino para realizar lecturas de datos de forma muy eficiente.



Funcionamiento de LDAP


El servicio de directorio LDAP se basa en un modelo cliente-servidor.

Uno o más servidores LDAP contienen los datos que conforman el árbol de directorio LDAP o base de datos troncal, el cliente LDAP se conecta con el servidor LDAP y le hace una consulta. El servidor contesta con la respuesta correspondiente, o bien con una indicación de donde puede el cliente hallar más información. No importa con que servidor LDAP se conecte el cliente ya que siempre observará la misma vista del directorio; el nombre que se le presenta a un servidor LDAP hace referencia a la misma entrada a la que haría referencia en otro servidor LDAP.


mas info en:
http://www.ldap-es.org/node/20

sábado, 18 de julio de 2009

Ptos 5 y 6 del parcial (resueltos)

Esta es una de las posibles soluciones que respetan las FN y la sintaxis SQL correspondiente:

5) Normalización

ASOCIADOS
* NRO_SOCIO
APELLIDO
NOMBRE
DIRECCION
CP

LOCALIDADES
* CP
LOCALIDAD
PROVINCIA

COMERCIOS
* NRO_COMERCIO
RAZON SOCIAL
PORC_RET

ORDENES_COMPRA
* NRO_ORDEN
FECHA
NRO_SOCIO
NRO_COMERCIO
CANT_CUOTAS
TASA
DETALLE (ACA VA EL TEXTO DEL ARTICULO O SERVICIO)
IMPORTE
INTERES

CUOTAS_ORDENES_COMPRA
* NRO_ORDEN
* NRO_CUOTA
FEC_VTO
FEC_PAG
CAPITAL_CUOTA
INTERES_CUOTA

LIQ_A_COMERCIOS
* NRO_LIQ
FECHA
NRO_COMERCIO
IMPORTE_LIQ
IMP_RETENIDO

DETALLE_LIQ
* NRO_LIQ
* NRO_ORDEN


6) Comandos SQL

INSERT INTO ASOCIADOS (
NRO_SOCIO, APELLIDO, NOMBRE, DIRECCION, CP) VALUES (123, 'PEREZ', 'JUAN', 'ROCA 123', 2134)

DELETE FROM ORDENES_COMPRA WHERE FECHA >= 2008-01-01 AND FECHA <= 2008-12-31
(NOTA: NO SE ESTARIAN ELIMINADO LAS CUOTAS RELACIONADAS)

UPDATE COMERCIOS SET PORC_RET = PORC_RET + 1

SELECT NRO_ORDEN, NRO_CUOTA, FEC_VTO, FEC_PAG, CAPITAL_CUOTA, INTERES_CUOTA FROM CUOTAS_ORDENES_COMPRA

martes, 14 de julio de 2009

Notas del Parcial del 23/Junio

BARBOZA: 3.00 (TRES)
BUFARINI: 2.50 (DOS CON 50/100)
CARNEVALI: 1.00 (UNO)
DANIELI: 3.00 (TRES)
LEDESMA: 1.00 (UNO)
PEREZ: 3.00 (TRES)
RIOS: 2.50 (DOS CON 50/100)

En breve publicaré la resolución correcta de los items 5 y 6 del parcial, referidos al ejercicio de normalización y comandos sql, donde la mayor parte de los alumnos tuvieron un bajo rendimiento.

lunes, 6 de julio de 2009

Trabajo Práctico Normalización de BDR

ISPI Nº 4038 - TRABAJO PRACTICO
ASIGNATURA: SISTEMAS DE PROCESAMIENTO DE DATOS II
NORMALIZACION DE BASES DE DATOS RELACIONALES
PROF. GUILLERMO WEIHMULLER

1. Realizar el proceso de normalización, determinando las PK de cada relación.

Ejercicio A) Una empresa de video cable brinda servicios de circuito cerrado de TV y de Internet a sus
abonados. De cada abonado se registran sus datos personales y los datos del domicilio estando
identificado por un número otorgado por la propia empresa. La empresa les cobra un abono mensual a
cada abonado en base a los servicios que tenga contratados, los cuáles pueden variar, por ejemplo:
Abono básico de TV=$30, Eventos Codificados=$10, Internet=$40, Hora Excedente de Internet=$2, etc.
Cada servicio contratado tiene una cantidad definida para cada abonado. Los abonos son generados
por el sistema cada mes en forma automática en base a los servicios que tiene definido cada abonado.
Se desea tener registrado de cada abono mensual: a quien pertenece, a que periodo (mm/aaaa), su
vencimiento, si está pagado o no y el importe total. Además cada abonado puede realizar reclamos, los
cuáles son registrados en el sistema en base a la fecha de reclamo, motivo y se debe indicar si fue
solucionado por la empresa o no, la fecha de solución, el técnico involucrado en la reparación y el
tiempo consumido.

Ejercicio B) Normalizar el siguiente caso práctico: un estudio de auditores posee catalogado su personal
que realiza auditorías en distintas empresas que son clientes del estudio. Del personal (del estudio) se
maneja un código, apellido y nombre, y una función (C=contable, L=legal e I=informático). De cada
empresa se registra: código de cliente, razón social, domicilio y teléfono. Las auditorías se realizan sin
avisar a la empresa en fechas aleatorias y con personal cambiante en cada ocasión. De cada auditoría
se requiere registrar quienes la llevaron a cabo (puede ser 1 o varias personas del estudio), cuando, en
que empresa y un informe (textual) del cuál no se sabe de antemano su extensión.

Ejercicio C) Una obra social privada lleva el detalle de sus afiliados. De cada uno posee un número
(interno de la Obra Social), su apellido y nombre, su tipo y nro de documento, y su fecha de nacimiento.
Los afiliados se agrupan por núcleos familiares, los que están formados por un titular y N familiares a
cargo, por lo que se debe almacenar como está formado cada grupo, teniendo en cuenta el tipo de
parentesco entre los integrantes del grupo. La obra social, cobra mensualmente la cuota de adhesión. El
importe básico de la cuota depende del plan que pertenece cada titular y de la cantidad de familiares a
cargo. Así mismo la OS reintegra dinero a sus afiliados cuando estos no se atienden con un profesional
que figura en su cartilla de prestadores. Se desean gestionar los pagos de estos reintegros. Se debe
tener en cuenta los datos del prestador, del afiliado, de la prestación y los montos/fechas a reintegrar, y
si el reintegro fue pagado, saber cuando.

2. Con la herramienta 'WWW SQL Designer' (live demo o desktop app) hacer el esquema canónico de
cada ejercicio y grabar los archivos en formato XML.

3. Bajar e instalar 'AppServ' y 'SQLyog MySQL GUI - Community Edition' para realizar en PC c/u de los
ejercicios previos. Guardar los archivos para cada ejercicio en formato SQL (command text file)

LINKS:
http://ondras.zarovi.cz/sql/
http://www.webyog.com/en/downloads.php#sqlyog
http://www.appservnetwork.com/

MODALIDAD GRUPAL: máximo 3 integrantes.
COMENTARIOS EN GENERAL: http://jp2datos2.blogspot.com/ en la entrada correspondiente al TP
EN LO PARTICULAR: guillermo.weihmuller@gmail.com con el asunto (TP DATOS II – JUL/09)
ENTREGA: Enviar 1 archivo ZIP por grupo que contenga los 2 archivos (XML+SQL) por cada ejercicio.
FECHA TOPE: Lunes 03/08/2009

miércoles, 6 de mayo de 2009

Trabajo Práctico Nº 1 - SQL desde FoxPro

EJECUTAR LOS COMANDOS (SQL) DESDE LA 'COMMAND WINDOW' DE FOXPRO 2.5 PARA RESOLVER LAS SIGUIENTES PREMISAS:

1)Mostrar los nombres de alumnos y sus números de legajo ordenados por fecha de nacimiento.
2)Mostrar todos los atributos de profesores que viven en Roldán.
3)Mostrar los nombres de todos los alumnos y el nombre de la localidad que le corresponde a c/u de ellos.
4)Mostrar los distintos estados civiles de los alumnos del instituto, sin repetir filas duplicadas.
5)Mostrar los nombres de los profesores cuyo apellido comience con la letra “A” ordenado alfabéticamente.
6)Mostrar los nombres de los alumnos, de las materias, de los profesores y la nota final que obtuvieron ordenados por la misma nota desde la mas alta a la mas baja.
7)Crear un archivo de texto llamado LISTALOC.TXT (*) que contenga una lista de localidades de 3 columnas (las mismas deben titularse como CP, LOCALIDAD y PROVINCIA). La columna provincia debe mostrar el nombre de cada provincia. El orden del listado es dado por la 2da columna.
8)Crear un archivo de texto llamado LISTAPRO.TXT (*) que contenga todos los atributos de la tabla de profesores y todos sus registros, excepto aquellos docentes cuyo código postal sea 2138. El archivo generado no tiene que tener títulos de columnas.
9)Crear una tabla llamada ALUMNOS1.DBF con los mismos atributos que ALUMNOS.DBF pero solo con aquellos registros de alumnos cuyo legajo sea menor que 10.
10)Insertar un registro en ALUMNOS1.DBF con legajo igual a 99 y de nombre “ALUMNO NN”. El resto del registro queda en blanco.
11)Realizar la operación binaria de unión entre ALUMNOS y ALUMNOS1 de modo que se obtenga una tercer tabla llamada ALUMNOS2 (sin registros duplicados)
12)Idem al punto 11 solo con los campos LEGAJO y NOMBRE obteniendo la vista en pantalla.
13)Obtener en pantalla los nombres de profesores que dictan materias en 2do año, sin repetirlos en caso que dicten mas de una.
14) Mostrar en pantalla los nombres de profesores y de materias dictadas en el corriente año ordenados alfabéticamente, desde la Z a la A, por nombre de la materia.

(*) Nota: estos archivos planos de texto deben ser creados en cada disco local, NO donde reside la BD

Fecha límite de entrega: 12/5/09 a guillermo.weihmuller@gmail.com