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.” (Berlanga Llavori & Iñesta Quereda, 2000)

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

Bibliografía

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.

No hay comentarios:

Publicar un comentario