- permite agilizar el tiempo de respuestas de esta consulta
- Recuperación utilizando accesos de sólo índices.
- Predicados correlacionados.
- Tablas de resumen
- Tablas replicadas
- Uniones hash
- DB2 utiliza una combinación de seguridad externa y control interno de acceso a proteger datos.
Foro de discusión sobre bases de datos relacionales, donde se expondrán temas como diagrama Entidad-Relación, modelo relacional, normalización, álgebra relacional, SQL, disparadores, procedimientos almacenados, transacciones, seguridad, respaldos y recuperación de la información.
martes, 27 de septiembre de 2011
DB2 de IBM
jueves, 22 de septiembre de 2011
Lenguaje SQL
SQL
Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella.
DDL
El lenguaje de definición de datos es el que se encarga de la modificación de la estructura de los objetos de la base de datos.Incluye ordenes para modificar,borrar o definir las tablas en las que se almacenan las base de datos. Existen cuatro operaciones básicas:
- Create
Este comando crea un objeto dentro de la base de datos. Puede ser una tabla.
Ejemplo:
CREATE OR REPLACE FUNCTION 'NOMBRE FUNCION'('PARAMETROS') RETURNS 'TIPO RETORNO' AS $BODY$ BEGIN 'INSTRUCCIÓN SQL' --por Ejemplo: DELETE FROM con empleado WHERE id empleado = 'ANY' (ids); END; $BODY$ LANGUAGE 'plpgsql';
- Alter
Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger etc.
Ejemplo:
ALTER TABLE 'TABLA_NOMBRE' ( ADD NUEVO_CAMPO INT UNSIGNED meel )
- Drop
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo:
ALTER TABLE ''TABLA_NOMBRE'' ( DROP COLUMN ''CAMPO_NOMBRE1'' )
- Truncate
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE.
Ejemplo:
TRUNCATE TABLE ''TABLA_NOMBRE1''
DML
Es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.
- Insert
Agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.
Ejemplo:
INSERT INTO ''tabla'' (''columna1'', [''columna2,... ''])
VALUES (''valor1'', [''valor2,...''])
- Update:
Es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.
Ejemplo:
UPDATE My_table SET field1 = 'updated value asd' WHERE field2 = 'N';
- Delete:
Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.
Ejemplo:
DELETE FROM My_table WHERE field2 = 'N';
martes, 20 de septiembre de 2011
Lenguaje SQL
- por ahora nos concentraremos solo es esas dos opciones, bases de datos tablas.
- es mu importante estar seguros de que queremos borrar cualquiera de las dos a que sera imposible deshacer la sentencia DROP.
jueves, 8 de septiembre de 2011
Ruby es considerado un lenguaje flexible, ya que permite a sus usuarios alterarlo libremente. Las partes esenciales de Ruby pueden ser quitadas o redefinidas a placer. Se puede agregar funcionalidad a partes ya existentes. Ruby intenta no restringir al desarrollador.
Por ejemplo, la suma se realiza con el operador suma (+
). Pero si prefieres usar la palabra sumar, puedes agregar un método llamadosumar
a la clase Numeric
que viene incorporada.
var
puede ser una variable local.@var
es una variable de instancia.$var
es una variable global.
Estos detalles mejoran la legibilidad permitiendo que el desarrollador identifique fácilmente los roles de las variables.
Ruby tiene un conjunto de otras funcionalidades entre las que se encuentran las siguientes:
- manejo de excepciones, como Java y Python, para facilitar el manejo de errores.
- un verdadero mark-and-sweep garbage collector para todos los objetos de Ruby. No es necesario mantener contadores de referencias en bibliotecas externas. Como dice Matz, “Esto es mejor para tu salud”.
- escribir extenciones en C para Ruby es más fácil que hacer lo mismo para Perl o Python, con una API muy elegante para utilizar Ruby desde C. Esto incluye llamadas para embeber Ruby en otros programas, y así usarlo como lenguaje de scripting. También está disponible una interfaz SWIG.
- puede cargar bibliotecas de extensión dinámicamente si lo permite el sistema operativo.
- tiene manejo de hilos (threading) independiente del sistema operativo. De esta forma, tienes soporte multi-hilo en todas las plataformas en las que corre Ruby, sin importar si el sistema operativo lo soporta o no, ¡incluso en MS-DOS!
- Ruby es fácilmente portable: se desarrolla mayoritariamente enGNU/Linux, pero corre en varios tipos de UNIX, Mac OS X, Windows 95/98/Me/NT/2000/XP, DOS, BeOS, OS/2, etc.
Matz. (12 de mayo de 200). la lista de correo Ruby-Talk. miembros de la comunidad Ruby. (s.f.). Ruby. Recuperado el 8 de septiembre de 2011, de http://www.ruby-lang.org/es/about/#fn1
martes, 6 de septiembre de 2011
MS SQL
MS SQL Server organiza los información de la base de datos en tablas de valores visibles al usuario; las operaciones de la base de datos operan sobre estas tablas. A esto se le conoce como el modelo relacional.
El lenguaje de definición de datos es aquel que permite a los usuarios del sistema de gestión de base de datos llevar a cabo las tareas de definición de las estructuras que van a almacenar los datos al igual que las funciones o procedimientos que les permitirán consultar dichos datos.
MS SQL Server utiliza Transact-SQL para administrar instancias del motor de base de datos de SQL Server, para crear y administrar objetos de base de datos, al igual que para insertar, recuperar, modificar y eliminar datos.
SQL Server utiliza el lenguaje MDX (expresiones multidimensionales) para definir, manipular y recuperar datos de objetos multidimensionales. El lenguaje DMX (extensiones de minería de datos) es utilizado para crear y trabajar con modelos de minería de datos.
Los requerimientos de software y hardware necesarios para instalas SQL Server varían dependiendo de la versión. En este caso, se muestran los requerimientos para SQL Server 2008 Standard (32-bit):
- Procesador Pentium III (velocidad mínima de 1.0 GHz)
- Windows XP u otra versión más reciente
- 512 Mb de memoria RAM
- Pantalla con resolución de 1,024x768 pixeles
- Drive de CD o DVD
- Mouse
“Un tipo de datos describe los elementos del dominio de una variable junto con las operaciones y relaciones que pueden establecerse entre ellos.”
SQL Server provee un conjunto de tipos de datos que define todos los tipos de datos que se pueden utilizar, sin embargo, también es posible definir tipos de datos en Microsoft .NET Framework o Transact-SQL.
Los tipos de datos se organizan en estas categorías:
- Numéricos exactos: bigint, int, smallint, tinyint, bit, decimal, numeric, money, smallmoney.
- Numéricos aproximados: float, real.
- Fecha y hora: datetime, smalldatetime.
- Cadenas de caracteres: char, varchar, text.
- Cadenas de caracteres Unicode: nchar, nvarchar, ntext.
- Cadenas binarias: binary, varbinary, image.
- Otros tipos de datos: cursor, sql_variant, table, timestamp, uniqueidentifier, xml.
El principal objetivo de los algoritmos de búsqueda es ubicar un objeto dentro de un conjunto de datos existentes y determinar la ubicación de dicho objeto dentro del conjunto. SQL cuenta dispone de varios algoritmos, entre los cuales están:
- Árboles de Decisiones: hace predicciones basándose en las relaciones entre las columnas de entrada de un conjunto de datos. Utiliza los valores, conocidos como estados, de estas columnas para predecir los estados de una columna que se designa como elemento de predicción.
- Reglas de Asociación: este algoritmo ayuda a identificar relaciones entre varios elementos.
- Bayes Naive: es menos complejo que otros algoritmos de Microsoft por lo que resulta útil para generar rápidamente modelos de minería de datos para descubrir relaciones entre columnas de entrada y columnas de predicción.
- Clústeres de Secuencia: se utiliza para explorar los datos que contienen eventos que pueden vincularse mediante rutas o secuencias; encuentra las secuencias más comunes mediante la agrupación, o agrupación en clústeres, de las secuencias que son idénticas.
- Serie Temporal: crea modelos de minería de datos y predice columnas continuas, como ventas de productos, en un escenario de predicción.
- Red Neuronal: crea modelos de minería de datos de clasificación y regresión mediante la generación de una red de neuronas de tipo perceptrón multicapa.
Control de concurrencia se refiere a las técnicas que se utilizan para preservar la integridad de una base de datos cuando varios usuarios se encuentran actualizando filas al mismo tiempo. Fallas en concurrencia pueden causar varios problemas e incluso destruir información valiosa en una base de datos. Estos son algunos mecanismos que utiliza SQL Server para controlar la concurrencia:
- CONCUR_READ_ONLY: No se permite actualizar con el cursor y no se mantienen bloqueos en las filas que conforman el resultado.
- CONCUR_UPDATABLE: Se asume que la contención en una fila es improbable pero posible. La integridad en cada fila se verifica con una marca de tiempo.
- CONCUR_SS_SCROLL_LOCKS: Se asume que la contención en una fila es probable. La integridad de las filas se garantiza con bloqueo de filas.
- CONCUR_SS_OPTIMISTIC_CC: Se asume que la contención en una fila es improbable pero posible. La integridad en cada fila se verifica con una marca de tiempo.
- CONCUR_SS_OPTIMISTIC_CCVAL: Se asume que la contención en una fila es improbable pero posible. La integridad se verifica comparando la información en las filas.
En la siguiente tabla, obtenida de MSDN, se muestran las limitaciones en cuanto almacenamiento, basados en SQL Server 2005 de 32-bits.
Objeto de Motor de base de datos de SQL Server 2005 | Tamaños/números máximos SQL Server 2005 (32 bits) |
Tamaño de lote | 65.536 * Tamaño de paquete de red |
Bytes por columna de cadenas cortas | 8,000 |
Bytes por GROUP BY y ORDER BY | 8,060 |
Bytes por clave de índice | 900 |
Bytes por clave externa | 900 |
Bytes por clave principal | 900 |
Bytes por fila | 8,060 |
Bytes por columna varchar(max), varbinary(max), xml, text o image | 2^31-1 |
Caracteres por columna ntext onvarchar(max) | 2^30-1 |
Índices agrupados por tabla | 1 |
Columnas en GROUP BY y ORDER BY | Limitado sólo por el número de bytes |
Columnas o expresiones en una instrucción GROUP BY WITH CUBE o WITH ROLLUP | 10 |
Columnas por clave de índice | 16 |
Columnas por clave externa | 16 |
Columnas por clave principal | 16 |
Columnas por tabla base | 1,024 |
Columnas por instrucción SELECT | 4,096 |
Columnas por instrucción INSERT | 1,024 |
Conexiones por cliente | Valor máximo de conexiones configuradas |
Tamaño de la base de datos | 524.258 terabytes |
Bases de datos por instancia de SQL Server | 32,767 |
Grupos de archivos por base de datos | 32,767 |
Archivos por base de datos | 32,767 |
Tamaño de archivo (datos) | 16 terabytes |
Tamaño de archivo (registro) | 2 terabytes |
Referencias a tabla de claves externas por tabla | 253 |
Longitud del identificador (en caracteres) | 128 |
Instancias por equipo | 50 instancias en un servidor independiente. 25 instancias en un clúster de conmutación por error. |
Longitud de una cadena que contiene instrucciones SQL (tamaño de lote) | 65.536 * Tamaño de paquete de red |
Bloqueos por conexión | Máximo de bloqueos por servidor |
Bloqueos por instancia de SQL Server | Hasta 2.147.483.647 |
Niveles de procedimientos almacenados anidados | 32 |
Subconsultas anidadas | 32 |
Niveles de desencadenadores anidados | 32 |
Índices no agrupados por tabla | 249 |
Parámetros por procedimiento almacenado | 2,100 |
Parámetros por función definida por el usuario | 2,100 |
REFERENCES por tabla | 253 |
Filas por tabla | Limitado por el espacio de almacenamiento disponible |
Tablas por base de datos | Limitado por el número de objetos de la base de datos |
Particiones por tabla o índice con particiones | 1,000 |
Estadísticas en columnas no indizadas | 2,000 |
Tablas por instrucción SELECT | 256 |
Desencadenadores por tabla | Limitado por el número de objetos de la base de datos |
Índices o restricciones UNIQUE por tabla | 249 no agrupados y 1 agrupado |
Conexiones de usuario | 32,767 |
Índices XML | 249 |
Berlanga Llavori, R., & Iñesta Quereda, J. M. (2000). Introducción a la programación con Pascal. Castelló: Universitat Jaume.
Date, C. J. (2001). Introducción a los Sistemas de Bases de Datos. México: Pearson Educación.
Kowalski, R. (1986). Lógica, Programación e Inteligencia Artificial. Madrid: Díaz de Santos.
Microsoft. (2008). Microsoft Developer Network. Retrieved 20 de Agosto de 2011 de Microsoft SQL Server: http://msdn.microsoft.com/en-us/library/bb545450.aspx
Pons Capote, O. (2005). Introducción a las Bases de Datos. Madrid: Paraninfo.
Rob, P., & Coronel, C. (2003). Sistemas de Bases de Datos. México: Cengage Learning.