sábado, 29 de enero de 2011

MYSQL,DML,DDL

MySQL

Las aplicaciones en red son cada día más numerosas y versátiles. En muchos casos, el esquema básico de operación es una serie de scripts que rigen el comportamiento de una base de datos.
Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia de estándares que nos permiten el realizar las operaciones básicas de una forma universal.
Es de eso de lo que trata el Structured Query Language que no es más que un lenguaje estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) en combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL...).
El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En efecto, determinadas bases de datos implementan funciones específicas que no tienen necesariamente que funcionar en otras.
Aparte de esta universalidad, el SQL posee otras dos características muy apreciadas. Por una parte, presenta una potencia y versatilidad notables que contrasta, por otra, con su accesibilidad de aprendizaje.

Tipos campos:
Como sabemos una base de datos está compuesta de tablas donde almacenamos registros catalogados en función de distintos campos (características).
Un aspecto previo a considerar es la naturaleza de los valores que introducimos en esos campos. Dado que una base de datos trabaja con todo tipo de informaciones, es importante especificarle qué tipo de valor le estamos introduciendo de manera a, por un lado, facilitar la búsqueda posteriormente y por otro, optimizar los recursos de memoria.
Cada base de datos introduce tipos de valores de campo que no necesariamente están presentes en otras. Sin embargo, existe un conjunto de tipos que están representados en la totalidad de estas bases. Estos tipos comunes son los siguientes:


Alfanuméricos
Contienen cifras y letras. Presentan una longitud limitada (255 caracteres)
Numéricos
Existen de varios tipos, principalmente, enteros (sin decimales) y reales (con decimales).
Booleanos
Poseen dos formas: Verdadero y falso (Sí o No)
Fechas
Almacenan fechas facilitando posteriormente su explotación. Almacenar fechas de esta forma posibilita ordenar los registros por fechas o calcular los días entre una fecha y otra...
Memos
Son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados (veremos más adelante lo que esto quiere decir).
Auto incrementables
Son campos numéricos enteros que incrementan en una unidad su valor para cada registro incorporado. Su utilidad resulta más que evidente: Servir de identificador ya que resultan exclusivos de un registro.



Los tipos de datos SQL se clasifican en 13 tipos de datos primarios y de varios sinónimos válidos reconocidos por dichos tipos de datos. Los tipos de datos primarios son:

Tipo de Datos
Longitud
Descripción
BINARY
1 byte
Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario.
BIT
1 byte
Valores Si/No ó True/False
BYTE
1 byte
Un valor entero entre 0 y 255.
COUNTER
4 bytes
Un número incrementado automáticamente (de tipo Long)
CURRENCY
8 bytes
Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807.
DATETIME
8 bytes
Un valor de fecha u hora entre los años 100 y 9999.
SINGLE
4 bytes
Un valor en punto flotante de precisión simple con un rango de - 3.402823*1038 a -1.401298*10-45 para valores negativos, 1.401298*10- 45 a 3.402823*1038 para valores positivos, y 0.
DOUBLE
8 bytes
Un valor en punto flotante de doble precisión con un rango de - 1.79769313486232*10308 a -4.94065645841247*10-324 para valores negativos, 4.94065645841247*10-324 a 1.79769313486232*10308 para valores positivos, y 0.
SHORT
2 bytes
Un entero corto entre -32,768 y 32,767.
LONG
4 bytes
Un entero largo entre -2,147,483,648 y 2,147,483,647.
LONGTEXT
1 byte por carácter
De cero a un máximo de 1.2 gigabytes.
LONGBINARY
Según se necesite
De cero 1 gigabyte. Utilizado para objetos OLE.
TEXT
1 byte por carácter
De cero a 255 caracteres.

La siguiente tabla recoge los sinónimos de los tipos de datos definidos: 
Tipo de Dato
Sinónimos
BINARY
VARBINARY
BIT
BOOLEAN
LOGICAL
LOGICAL1
YESNO
BYTE
INTEGER1
COUNTER
AUTOINCREMENT
CURRENCY
MONEY
DATETIME
DATE
TIME
TIMESTAMP
SINGLE
FLOAT4
IEEESINGLE
REAL
DOUBLE
FLOAT
FLOAT8
IEEEDOUBLE
NUMBER
NUMERIC
SHORT
INTEGER2
SMALLINT
LONG
INT
INTEGER
INTEGER4
LONGBINARY
GENERAL
OLEOBJECT
LONGTEXT
LONGCHAR
MEMO
NOTE
TEXT
ALPHANUMERIC
CHAR - CHARACTER
STRING - VARCHAR
VARIANT (No Admitido)
VALUE
  

Tipos de sentencias sql que podemos encontrarnos y sus componentes sintácticos:

En SQL tenemos bastantes sentencias que se pueden utilizar para realizar diversas tareas.
Dependiendo de las tareas, estas sentencias se pueden clasificar en tres grupos principales (DML, DDL, DCL), aunque nos quedaría otro grupo que a mi entender no está dentro del lenguaje SQL sino del PLSQL.

SENTENCIA
DESCRIPCIÓN
DML
Manipulación de datos
SELECT
INSERT
DELETE
UPDATE
Recupera datos de la base de datos.
Añade nuevas filas de datos a la base de datos.
Suprime filas de datos de la base de datos.
Modifica datos existentes en la base de datos.
DDL
Definición de datos
CREATE TABLE
DROP TABLE
ALTER TABLE
CREATE VIEW
DROP VIEW
CREATE INDEX
DROP INDEX
CREATE SYNOYM
DROP SYNONYM
Añade una nueva tabla a la base de datos.
Suprime una tabla de la base de datos.
Modifica la estructura de una tabla existente.
Añade una nueva vista a la base de datos.
Suprime una vista de la base de datos.
Construye un índice para una columna.
Suprime el índice para una columna.
Define un alias para un nombre de tabla.
Suprime un alias para un nombre de tabla.
DCL
Control de acceso
GRANT
REVOKE
Control de transacciones
COMMIT
ROLLBACK
Concede privilegios de acceso a usuarios.
Suprime privilegios de acceso a usuarios

Finaliza la transacción actual.
Aborta la transacción actual.
PLSQL
SQL Programático
DECLARE
OPEN
FETCH
CLOSE
Define un curso para una consulta.
Abre un curso para recuperar resultados de consulta.
Recupera una fila de resultados de consulta.
Cierra un cursor.

Componentes sintácticos
La mayoría de sentencias SQL tienen la misma estructura.
Todas comienzan por un verbo (select, insert, update, create), a continuación le sigue una o más cláusulas que nos dicen los datos con los que vamos a operar (from, where), algunas de estas son opcionales y otras obligatorias como es el caso del from.






LENGUAJE DE MANIPULACIÓN DE DATOS  (DML)

Un Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.
El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1CODASYL u otras.
DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio, es decir, añadir, consultar, borrar o actualizar.
En SQL los comandos SELECT, INSERT, UPDATE y DELETE son comandos DML
Otras órdenes como COMMIT, START TRANSACTION o ROLLBACK están en el límite de lo que podemos considerar órdenes DML de SQL puesto que no inciden en la manipulación o consulta de datos pero sí en el proceso en que esto se realiza.
Por cierto que lo de "START TRANSACTION" no es estándar y depende de la implementación de SQL (en Sybase si no recuerdo mal, una transacción se modela poniendo el AUTOCOMMIT a false y tras hacer el COMMIT o ROLLBACK, a true).

UN LENGUAJE DE DEFINICIÓN DE DATOS (DDL)

Un lenguaje de definición de datos (Data Definition Language, DDL por sus siglas en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos así como de los procedimientos o funciones que permitan consultarlos.
El lenguaje de programación SQL, el más difundido entre los gestores de bases de datos, admite las siguientes sentencias de definición: CREATE, DROP y ALTER, cada una de las cuales se puede aplicar a las tablas, vistas, procedimientos almacenados y triggers de la base de datos.
Otras que se incluyen dentro del DDL, pero que su existencia depende de la implementación del estándar SQL que lleve a cabo el gestor de base de datos son GRANT y REVOKE, los cuales sirven para otorgar permisos o quitarlos, ya sea a usuarios específicos o a un rol creado dentro de la base de datos.

jueves, 27 de enero de 2011

IMAGENES DE PLANEACION DE PROYECTO









HERRAMIENTAS ADMINISTRATIVAS DE PROYECTO

LA ADMINISTRACIÓN DE PROYECTOS DE SISTEMAS DE INFORMACIÓN.

·         La importancia de la información en la empresa.
Antes que nada debemos de definir que es administración y que es un proyecto: "Administración es el proceso de planear, organizar, dirigir y controlar el uso de recursos para lograr objetivos".
Otra definición es la de koontz "La administración es el proceso de diseñar y mantener un ambiente en el cual las personas, trabajando juntas en grupos, alcanzan con eficiencia metas seleccionadas".
Entonces podemos definir a la administración como el proceso de organizar, planear,
Dirigir y controlar; actividades y recursos con el fin de lograr un objetivo.
Ahora definimos que es un proyecto "un proyecto es una organización de gente dedicada a un propósito u objetivo específico".
Habiendo definido los conceptos de administración y de proyecto podemos decir que "La administración de proyectos es la aplicación del enfoque de sistemas para la administración de tareas tecnológicas complejas o de proyectos cuyos objetivos se establecen explícitamente en términos de tiempo, costos y parámetros de realización".
Después de haber visto la definición de administración de proyectos podemos dar nuestro punto de vista acerca de que es la administración de proyectos; La administración de proyectos es la forma de planear, organizar, dirigir y controlar una serie de actividades realizadas por un grupo de personas que tienen un objetivo específico; el cual puede ser (crear, diseñar, elaborar, mejorar, analizar, etc) un problema o cosa.
1.       En esta etapa se conocen los recursos financieros con los que se cuentan para el proyecto, se establecen presupuestos totales y se hace una organización preliminar. Se aplican estudios de factibilidad para saber si se puede resolver el problema o no; al término de esta etapa hay una decisión formal de continuar o no continuar con el proyecto.
2.      Factibilidad.
Es muy parecida a la etapa de factibilidad en la que se refiere a la organización y a la administración pero en esta se detalla mejor el presupuesto, la calendarización y el financiamiento que le otorgan al proyecto.

3.      Diseño.
Se realiza en todas las actividades concernientes a la creación del proyecto. Hay que decir que esta etapa se caracteriza por ser totalmente diferente a las demás ya que las anteriores la fase de factibilidad y la fase de diseño son orgánicas y de carácter evolutivo, mientras que la fase de producción es de alto grado mecanicista.

4.      Producción.
5.      Culminación y puesta en marcha.
Culminación y puesta en marcha: En esta etapa se hacen pruebas finales al proyecto realizado. También se da mantenimiento periódicamente verificando que no tenga fallas lógicas.

·         Ciclo de vida de un proyecto.
Vamos a empezar definiendo que es un sistema; analizaremos varias definiciones y después elaboraremos una tratando de tomar de cada una de ellas lo más esencial de la idea que nos dan:
"El sistema es un conjunto de elementos organizados que se encuentran en interacción, que buscan alguna meta o metas comunes, operando para ello sobre datos o información sobre energía o materia u organismos en una referencia temporal para producir como salida información o energía u organismos".
"Un sistema es una reunión o conjunto de elementos relacionados".
"Un sistema es un agregado de personas, cosas, información etc agrupados en conjunto de acuerdo con un objetivo".
Entonces podemos definir qué sistema es un conjunto de cosas, objetos, conceptos y elementos conectados unos con otros que interactúan para lograr un objetivo en común.

PLANIFICACION DE UN PROYECTO DE SISTEMAS DE INFORMACION.

·         La importancia de los sistemas de información en las empresas.
·         Inicio de un proyecto.
El inicio de un proyecto de sistemas de información es principalmente influenciado por tres objetivos generales:
·         Resolver un problema: Esto es cuando ya hay un sistema de información y este tiene procesos que ya no satisfacen el desempeño para lo cual fue creado y es necesario hacerles ciertas modificaciones.
·         Dar respuesta a directivos: Cuando se hacen modificaciones en leyes de hacienda y forzosamente es necesario cambiar el sistema de información o hacerle modificaciones que mejor momento de aprovechar esta oportunidad ya que, si de por si se va a hacer un cambio de sistema de información se puede hacer el cambio con las nuevas disposiciones legales y con esto seguir siendo competitivo.
·         Aprovechar una oportunidad: Un cambio ya sea para ampliar o mejorar el rendimiento económico de la empresa y su competitividad.
Para alcanzar estos objetivos, las empresas emprenden proyectos por una o más de las siguientes razones: capacidad, control, costo, comunicación y competitividad como lo menciona kendall en su libro de análisis y diseño de sistemas.

Capacidad: Las actividades de la empresa están influenciadas por la capacidad de esta para procesar transacciones con rapidez y eficiencia. Los sistemas de información mejoran esta capacidad en tres formas estas son:
·         Aumento de la velocidad de procesamiento.
·         Permiten el manejo de un volumen creciente de transacciones.
·         Recuperan con rapidez la información.

·         Control: La falta de comunicación es una fuente común de dificultades que afectan a todos los que laboran en una empresa. Sin embargo, los sistemas de información bien desarrollados tratan de ampliar la comunicación y facilitan la integración de funciones individuales.
·         Aumento de la comunicación: Muchas empresas aumentan sus vías de comunicación por medios de redes.
·         Costo: Muchas empresas han desaparecido y muchas otras imposibilitadas para alcanzar el éxito debido al poco control sobre los costos o por el total desconocimiento para el control de estos. Los sistemas de información juegan un papel importante tanto con el control como en la reducción de los costos de operación.
·         Ventaja competitiva: Los sistemas de información son un arma estratégica que puede cambiar la forma en como compite la empresa en el mercado. Los sistemas de información mejoran la organización y ayudan a la empresa a ser más competitiva. Por lo contrario si los competidores de la empresa tienen sistemas de información más avanzados, entonces los sistemas de información pueden convertirse en una desventaja competitiva. Por lo tanto las capacidades de los sistemas de información son una consideración importante al formular la estrategia de la empresa.
·         Una empresa puede ganar ventaja competitiva a través de su sistema de información en cuatro formas diferentes que garantizan la competitividad en el mercado estos son: clientes, competidores, proveedores y servicios.
·         Todo proyecto de sistemas de información debe ser desarrollado bajo las actividades de un grupo de trabajo que se haga responsable del inicio y culminación del sistema de información.
·         El grupo de trabajo va a depender de tamaño de acuerdo al proyecto que va a desarrollarse.
·         Vamos a mencionar los puestos claves de un grupo de trabajo pero podría ser más grande o más pequeño o a veces una sola persona puede desarrollar varios puestos, claro como se dijo anteriormente va a depender de esto el tamaño del proyecto. Por tal motivo solo muestra la apreciación personal de acuerdo a la experiencia profesional que se tiene este tema.

·         Formulación del equipo de trabajo.
Todo grupo debe contar con un líder de proyecto, un analista de sistemas y un programador o programadores.

Líder de proyecto.
Un líder de proyecto es la persona encargada de aprobar la propuesta o solicitudes de proyectos a llevarse a cabo, el líder del proyecto se encarga de entregar la propuesta una vez aprobada por el, a los directivos con el fin de obtener los recursos ya sea económicos y materiales para el inicio del proyecto. El líder de proyecto se compromete a entregar el sistema de información en la fecha pactada, el líder de proyecto administra las actividades del grupo de trabajo, verifica y controla las actividades que han sido calendarizadas por él y el analista de sistemas para llevar a cabo una buena administración de proyectos.

Analista de sistemas.
Es el encargado de hacer todo lo concerniente al análisis del problema apoyándose en la aplicación de cuestionarios, entrevistas y observación directa para determinar las causas concretas del problema y poder proponer soluciones adecuadas a este.
El analista de sistemas realiza el bosquejo de la base de datos (estructura de las tablas de la base de datos, diccionarios de datos) así como también se encarga del desarrollo de procedimientos y algoritmos apoyándose en herramientas como diagramas de flujo de datos, el analista también es el encargado de realizar la Interfaz del usuario. Para después ofrecer toda esta información al programador para su posterior codificación.

Programador.
Es la persona encargada de la codificación de procedimientos y algoritmos que fueron entregados por el analista de sistemas, cabe mencionar que el programador mantiene una estrecha comunicación con el analista de sistemas, ya que el analista de sistemas apoya y asesora al programador en la codificación de los módulos del sistema de información.
El programador además de codificar también tiene a su cargo la prueba de los módulos codificados con el fin de encontrar errores lógicos y físicos para su resolución. Una vez realizada las pruebas a los módulos ya codificados y resuelto los errores tanto lógicos como físicos y sabiendo de antemano que todo funciona como uno quiere; el programador tiene a su cargo la elaboración del manual del sistema
con la asesoría del analista de sistemas; el cual contendrá todos los procedimientos, diagramas de flujo de datos y formas de codificar el sistema con la explicación detallada del por qué fue codificado así dicho módulo o módulos.

2.      Determinación de la factibilidad.
Una vez ya establecido el grupo de trabajo se procede a determinar la factibilidad del proyecto que anteriormente ha sido aprobado.
La factibilidad es conocer si un proyecto puede no realizarse esto fue mencionado en el capítulo 2 en el ciclo de vida de desarrollo de sistemas de información solo los mencionaremos estos :
·         Factibilidad técnica.
·         Factibilidad económica.
·         factibilidad operacional.
Hay que recordar que los tres estudios de factibilidad deben ser aprobados para poder aceptar el proyecto como un proyecto factible.
·         Todas las fases de desarrollo de sistemas de información involucran muchos tipos de actividades diferentes que juntos forman un proyecto. El líder del proyecto debe administrar el proyecto cuidadosamente para que llegue a ser un proyecto exitoso. La administración de proyectos involucra todas las tareas generales de planeación y control.
La planeación incluye todas las actividades requeridas para seleccionar un equipo para análisis de sistemas, la asignación de los miembros del equipo a los proyectos adecuados, la estimación del tiempo requerido para completar cada tarea y la calendarización del proyecto para que las actividades sean terminadas en forma ordenada.
Vamos a contemplar varias técnicas que se pueden utilizar en la realización del calendario. Algunas son muy sencillas y no muestran la interrelación entre las
Actividades, como son el diagrama de hitos, los diagramas de Gantt. Para mostrar dicha interrelación, se hace necesario el análisis de las redes de precedencia por medio de la técnica PERT.
Podemos determinar que "El diagrama de hitos es el método más simple para determinar el calendario. Es un cuadro o tabla formada por dos columnas; en la primera se señalan las actividades y en la segunda se indican sus fechas de finalización. Las ventajas de esta técnica son la factibilidad de uso y el mínimo coste de preparación. Las desventajas son la incertidumbre existente sobre las fechas de comienzo de las actividades y la imposibilidad de reflejar las interrelaciones entre ellas. Esta técnica también se utiliza para resumir calendarios complejos que contienen muchas tareas".