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.
No hay comentarios:
Publicar un comentario