Tagged with " SQL"

MySQL – OnDelete y OnUpdate

On Delete y On Update son las acciones que se deben desencadenar al momento de tratar de realizar cualquiera de las dos sentencias mencionadas en las tablas relacionadas, pero… cual es la más recomendable?

Esta duda me surgió por la necesidad con un mini-sistema que estoy desarrollando, que opción definir para ambos casos, es decir qué hacer cuando ocurra un Update a la tabla relacionada y qué hacer cuando ocurra un Delete, consultando con 2 amigos ingenieros, ambos coincidieron de diferentes formas en la respuesta, es decir, como dijo pepito “depende”, depende el caso, por ejemplo:

 Caso 1

Supongamos que tenemos una tabla llamada áreas y otra llamada usuarios, donde existe una llave foránea en usuarios que apunta hacia áreas, mejor dicho un área -> varios usuarios,
si utilizamos Restrict simplemente no podremos eliminar ningún área, sin antes haber eliminado todos los usuarios asociados a dicha área.

Sin embargo si utilizamos Cascade podemos accidentalmente borrar un área y con ella borrar todos los usuarios relacionados con ella.

Caso 2

Tienes una tabla clientes con primary key idcliente y una tabla contactos con foreing key idcliente es decir un cliente -> varios contactos, en ese caso será conveniente utilizar Cascade, pues bastará con eliminar un cliente y automáticamente eliminará todos los contactos asociados a ese cliente.

 

Las 5 etapas de la evolución del data warehouse

El almacenamiento de datos es una travesía. La implementación exitosa de un data warehouse entrega valor empresarial en un proceso interactivo y de forma continua; cada iteracción de los datos aumenta el valor del negocio por la información entregada. En los últimos años, la evolución en el almacenamiento de datos ha llegado a una nueva cumbre, con el despliegue de la capacidad de soporte de decisiones en toda la organización e, incluso, más allá de sus límites convencionales, a socios y clientes.

Diario Ti: En su comienzo, el data warehouse se centró casi exclusivamente en la entrega de capacidades para la toma de decisiones estratégicas (en áreas como marketing, finanzas o planificación estratégica). El acceso a la información aumentó drásticamente la calidad en la toma de estas decisiones. Sin embargo, el desarrollo de una estrategia superior empresarial es sólo una parte de lo que se necesita para tener éxito en el actual ambiente industrial, altamente competitivo. Una gran estrategia no es nada sin una gran ejecución.

La nueva generación de implementaciones de data warehouse mejora la ejecución de una estrategia de negocios, además de su desarrollo.

Presentación de informes

La etapa inicial de implementación del data warehouse, por lo general, se centra en la presentación de informes provenientes de una sola fuente de autenticidad dentro de la organización. El data warehouse aporta un enorme valor, simplemente, mediante la integración de diversas fuentes de información dentro de una empresa en un único repositorio para impulsar la toma de decisiones, a través de fronteras funcionales y /o de producto.

El mayor desafío en esta etapa es la integración de datos. El reto está en que la construcción de un depósito, con datos íntegros y consistentes, no puede ser exagerada. El duro trabajo de entrar en una nueva fase para proveer de información bien integrada, para quienes toman las decisiones, se convierte en el fundamento de todas las fases posteriores de la implementación del data warehouse.

Análisis

En esta etapa de implementación, la toma de decisiones se centra menos en lo que ha sucedido y más en por qué esto sucedió. Las actividades de análisis tienen que ver con la profundización de los números en un informe, para examinar minuciosamente los datos a un nivel detallado. El análisis Ad hoc juega un papel importante en la etapa, en la puesta en marcha del data warehouse. La gestión del rendimiento se basa mucho más en la capacidad avanzada de optimización en el RDBMS (Sistema de Gestión de Bases de Datos Relacionales) porque las estructuras de consulta no son tan predecibles como lo son en un entorno de información pura.

El rendimiento es mucho más importante en esta etapa, debido a que el repositorio de información es usado mucho más interactivamente. Mientras que los informes suelen ser programados para ejecutarse en forma regular con el calendario de la empresa, como un motor de coordinación, el análisis ad hoc es fundamentalmente una actividad que involucra participación activa con refinamiento interactivo de preguntas en un ambiente participativo.

Predecir

Cuando una organización se fortalece en términos cuantitativos de toma de decisiones técnicas y experiencias, por el valor proporcionado en la comprensión del “qué” y “por qué” en la dinámica de negocio, el siguiente paso será aprovechar la información con fines predictivos. La comprensión de lo que va a pasar en el negocio tiene enormes implicaciones para la gestión proactiva estratégica de una organización. Esta etapa requiere de herramientas de minería de datos para la construcción de modelos predictivos con detalles históricos.

Puesta en funcionamiento

La evolución de la puesta en marcha en esta etapa comienza a ponernos en el ámbito activo del almacenamiento de datos. Mientras que las fases anteriores se centran en las decisiones estratégicas de una organización, la puesta en funcionamiento se centra en el apoyo a las decisiones tácticas. Piense en el apoyo a la decisión estratégica en la manera de proporcionar la información necesaria para tomar decisiones de negocio a largo plazo. Las aplicaciones de apoyo a las decisiones estratégicas incluyen segmentación del mercado, la gestión estratégica de producto (categoría), análisis de rentabilidad, previsión y muchos otros. El apoyo a las decisiones tácticas no se centra en el desarrollo de la estrategia corporativa, sino en el apoyo a las personas en los campos que las ejecutan.

La puesta en marcha normalmente significa el acceso a la información para la inmediata toma de decisiones en terreno.

Almacenamiento activo

El amplio papel que juega un activo data warehouse en los aspectos operativos de apoyo a las decisiones, el incentivo más que el negocio, ha de automatizar los procesos de decisión. Como la tecnología evoluciona, cada vez más decisiones son ejecutadas a raíz de un suceso que desencadena el inicio de procesos de decisión totalmente automatizados.

Un activo data warehouse proporciona información y permite el apoyo a decisiones en toda la organización, en lugar de limitarse a los procesos de toma de decisiones estratégicas. Sin embargo, el apoyo a las decisiones tácticas no reemplaza el apoyo a las decisiones estratégicas. Por el contrario, un activo almacén de datos soporta la coexistencia de ambos tipos de cargas de trabajo.

El éxito de la implementación de un activo data warehouse está en constante evolución. Una implementación de manejo del riesgo se basa en la integración, única fuente de autenticidad en un almacén de datos tradicional. El uso del data warehouse para apoyar la toma de decisiones estratégicas crea la demanda de apoyo a las decisiones tácticas para ejecutar el plan de negocio.

Por Matías Gil

Director General Teradata para Chile y Perú

Vía DiarioTI

dic 21, 2010 - bases de datos    Agregar Comentario

Debemos Migrar a Postgre?

En vista de los recientes acontecimientos a nivel mundial con respecto al ambiente de las bases de datos y considerando que tanto Microsoft como Oracle son unos verdaderos “galgos” depredadores, por no decir en buen chapin: “chuchos”, aunque cabe mencionar a favor de estos dos monstruos informáticos, que últimamente han hecho un buen trabajo, principalmente Microsoft, mejorando considerablemente la seguridad y reduciendo la cantidad de bugs que presenta su producto “Microsoft SQL Server”, así como la integración de la plataforma Business Intelligence.

Dejando de lado esto, está lo problemático que puede ser el trabajar con sistemas que consumen tanto recurso como lo es .Net, además contar que la mayoría de recursos para desarrolladores son sumamente caros, el mismo “Visual Studio” por ejemplo.

Observando el lado de MySQL, tenemos la reciente eliminación del motor InnoDB de la “Classic Edition” y estoy casi seguro que pasados los 2 años y un poquito a los que se comprometió Oracle en mantener vivo y libre MySQL, empezarán a cerrar las puertas bajo esta misma estrategia, incrementar precios, vender muy caros los mejores módulos, y con el tiempo argumentaran que no es rentable esta DB y que tendrán que cerrarla o alguna razón inventarán.

Así que no duden que paulatinamente tendremos que migrar a Postgre u otro sistema que tenga las mismas o más bondades, para iniciar deberíamos cambiar desde ya la orientación de los próximos desarrollos e ir dejando el tan preciado MySQL.

Descargar Postgre

may 26, 2010 - bases de datos    2 Comentarios

Reiniciar o cambiar valor campo autonumerico en SQL Server

Este caso es muy común, regularmente después de haber hecho pruebas o migraciones, incluso si estás migrando a un nuevo sistema y deseas mantener la numeración correlativa del anterior, puede que necesites reiniciar o establecer un valor específico desde donde iniciarás la cuenta de tu campo auto numérico, que regularmente es la llave primaria (Identity), esto conlleva a que no puedas utilizar la opción TRUNCATE que mencionan en otros foros o blog, esto se debe a que las tablas relacionadas no pueden ser truncadas precisamente por la relación dependiente que tiene, por esa razón recomiendo utilizar:

DBCC CHECKIDENT ([nombre_tabla], RESEED, numero_iniciar)

Ejemplo: Tenemos una tabla llamada usuarios y queremos que inicie el conteo a partir de 251, el código sería:

DBCC CHECKIDENT (usuarios, RESEED, 250)

Saludos, espero les sirva

ene 27, 2010 - php    16 Comentarios

Solucionar “Undefined function mssql_connect()”

Seguramente a más de uno le ha pasado y le está pasando, por eso llegó a este humilde blog, me estoy refiriendo al Fatal error lanzado por php cuando se intenta realizar una conexión hacia una base de datos Microsoft SQL Server, el error es similar al siguiente:

Fatal error: Call to undefined function mssql_connect() in X:\ServerPath\www\connexion.php on line 12

Se puede presentar en servidores con las siguientes características:

Windows Server 2003 + IIS + SQL Server 2005 + php

Windows Server 2003 + Apache + SQL Server 2005 + php

Bueno, realmente ocurre casi independientemente del Sistema Operativo, ya que el error es causado por el php, al no poder cargar la extensión para el manejo de dicha función.

Causas:

Puede ser causado por mala configuración del archivo php.ini, así también por la librería ntwdblib.dll, puesto que la versión original, la 2000.2.8.0 de dicha librería tiene algún conflicto con las conexiones hacia SQL 2005, incluido SQL Express 2005 (no me pregunten por que xD) ver imagen: Leer más »