26 de enero de 2011

Permisos en SQL Server 2000


Hace unos días me vi en la necesidad de crear diferentes funciones de usuarios para la Base de Datos (BD), en donde una función requería tener acceso sólo a unas tablas y otras funciones a otras tablas. El caso aquí es que el sistema que accede a esta BD se maneja por medio de Stores Procedures (SP), para lo cual investigué (mediante prueba y error) si es necesario asignar todos los permisos de SELECT, INSERT y DELETE a las tablas que se mandan llamar de los SP o si solo asignando el permiso de EXECUTE era suficiente.

Resultados:

  • Al habilitar el permiso de EXECUTE del SP se heredan los permisos a lo que se ejecute dentro (INSERT, UPDATE y DELETE), por lo tanto solo es necesario asignar estos permisos en los SP y no en todas las tablas.
  • No se pueden realizar ALTER y DROP a objetos de otro owner, solo se podrá hacer a los objetos creados por el mismo usuario. Ejemplo: Si nuestro usuario es [Prueba] y si dentro de un SP se realiza un DROP o ALTER al objeto [dbo].[Tabla], no se podría realizar, ya que solo se podría realizar si fuera [Prueba].[Tabla].
  • El permiso de creación de tablas se otorga al usuario mediante la siguiente instrucción:
    • Grant CREATE TABLE To <useraccount>
  • NOTA: Este permiso sólo habilita la creación de tablas que tengan como owner el usuario al cual tiene el permiso, es decir, si se especifica en el CREATE otro owner, como por ejemplo [dbo].[NuevaTabla], arrojaría un error. En este caso solo se tendría que hacer el CREATE TABLE [NuevaTabla] y esto generará la tabla como [usuario].[NuevaTabla].
Observación: Cuando dentro de un SP se manejan consultas dinámicas, por ejemplo:
     Declare @Query as varchar(8000)  --Se declara la variable que se usará para generar el query
     select @Query = 'Select * from Usuarios'  -- Se genera la consulta dinámica
     exec (@Query)  -- Se ejecuta la consulta dinámica
Se observó que es necesario dar los privilegios necesarios para las tablas que se usan en dicho query, en este ejemplo se tendría que otorgar el permiso de SELECT a la tabla "Usuarios".

17 de diciembre de 2010

Proyecto Final - Análisis de Datos del OPAC de CÓDICE (UANL)

En este video se muestra un análisis de datos realizado sobre la información de las cantidades de consultas realizadas en el Catalogo Electrónico de la Universidad Autónoma de Nuevo León (www.codice.uanl.mx).

La información utilizada es la obtenida desde abril de 2008 hasta diciembre de 2010, a la cual se le aplican los métodos vistos en la Análisis de datos para la toma de decisiones, como lo son: Outliers, Series de tiempos y Visualización de Datos.

15 de diciembre de 2010

Series de tiempo y Pronósticos

En estadística, una serie de tiempo es una secuencia de puntos de datos, los cuales son tomados en frecuencias similares y uniformes de tiempo.


El análisis de estas series de tiempo nos puede ayudar a identificar tendencias y determinar pronósticos de comportamientos futuros.


En esta entrada analizaremos los datos de las búsquedas realizadas en el Catalogo Electrónico de la Universidad Autónoma de Nuevo León (www.codice.uanl.mx) por medio del método de las medias móviles.


El método de las medias móviles en estadística es un método utilizado para analizar un conjunto de datos en modo de puntos para crear series de promedios. Así las medias móviles son una lista de números en la cual cada uno es el promedio de un subconjunto de los datos originales.


Una serie de medias móviles puede ser calculada para cualquier serie temporal. Se usa para demanda estable, sin tendencia ni estacionalidad; suaviza las fluctuaciones de plazos cortos, resaltando así las tendencias o ciclos de plazos largos.


Para iniciar el análisis se extrajeron los datos desde abril de 2008 hasta diciembre de 2010, por semana la cantidad de búsquedas realizadas en el Catalogo Electrónico.

Generándose lo siguiente (ejemplo de los primeros datos):


Lo siguiente en realizar es calcular la primera media (pM) y la media doble (Md), donde se toman una cantidad de datos previos al valor que se desea calcular (k), para esto se realizaron 4 pruebas, tomando un k = 10, 5, 3 y 2, para posteriormente decidir con cuál de estos nos quedaremos, el cual sea el que tenga menor error.


Las fórmulas para calcular las medias son:

pMt = (yt-1 + yt - 2 + yt – k) / k
Mdt = (pMt-1 + pMt - 2 + pMt – k) / k

donde,

"y" es el valor de la cantidad de búsquedas de la semana t


 

Posteriormente calculamos la predicción con la siguiente formula:

^yt = (2pMt - Mdt) + ((2/k-1) (pMt - Mdt))


 

Una vez teniendo la predicción, se obtiene el error cuadrático de la media (ECM) y la raíz cuadrada de este error (RcECM), para identificar cual "k", se utilizará. Las fórmulas a utilizar para encontrar el error serán:



  

RESULTADOS:


 

Para k = 10



 
ECM = 170694440.26

RcECM = 13065.01


 

Para k = 5



 
ECM = 168058010.15

RcECM = 12963.72


 

Para k = 3



 
ECM = 132048707.92

RcECM = 11491.24


 

Para k = 2





 
ECM = 155248689.84

RcECM = 12459.88




 

CONCLUSIONES


Según los errores y las gráficas de predicción, el que más se ajusta es el k = 3, con el cual se predice para la semana 50 de este año una cantidad de búsquedas de 10,136.17