SQL SERVER 2000
 
SQL SERVER 2000
Mi curriculum vitae
Cuestionario
SQL SERVER 2000
 
Imagen
 
INTRODUCCION A SQL SERVER 2000
INTRODUCCIÓN A SQL SERVER 2000

SQL Server 2000 es un sistema de gestión de bases de datos relacionales (SGDBR o
RDBMS: Relational Database Management System) este es diseñado para trabajar con grandes cantidades de información y la capacidad de cumplir con los requerimientos de proceso de información para aplicaciones comerciales y sitios Web.

SQL Server 2000 ofrece el soporte de información para las tradicionales aplicaciones
Cliente/Servidor, las cuales están conformadas por una interfaz a través de la cual los clientes acceden a los datos por medio de una LAN.

SQL Server 2000 está diseñado para trabajar con dos tipos de bases de datos:

• OLTP (OnLine Transaction Processing) Son bases de datos caracterizadas por mantener una gran cantidad de usuarios conectados concurrentemente realizando ingreso y modificación de datos. Por ejemplo: entrada de pedidos en línea, inventario, contabilidad o facturación.

• OLAP (OnLine Analytical Processing) Son bases de datos que almacenan grandes cantidades de datos que sirven para la toma de decisiones, como por ejemplo las aplicaciones de análisis de ventas.

• SQL Server 2000 Database Engine, diseñado para almacenar detalladamente los registros de las operaciones transaccionales (OLTP), este motor es responsable de mantener la seguridad de los datos, proveer un adecuado nivel de tolerancia a fallos, optimizar las consultas, emplear adecuadamente los bloqueos de recursos para optimizar la concurrencia, etc.

• SQL Server 2000 Analysis Services, provee herramientas para consultar información almacenada en data warehouses y data marts, como por ejemplo cuando se desea obtener información totalizada acerca de los niveles de ventas mensuales por regiones de ventas, etc.
Soporte para aplicaciones, SQL Server brinda a las aplicaciones clientes la posibilidad de acceder a los datos a través de un lenguaje denominado Transact-SQL, asimismo es importante mencionar que ahora existe un soporte para devolver la información en formato XML.

Como soporte para las aplicaciones clientes tenemos:

1. SQL Distributed Management Objects (SQL-DMO) API que brinda un conjunto de objetos COM que encapsulan toda la funcionalidad administrativa del motor de datos.


2. Decision Support Objects (DSO) API que brinda un conjunto de objetos COM que encapsulan las funcionalidades de los SQL Server 2000 Analysis Services.

3. Windows Management Instrumentation (WMI), es una API orientada a objetos que permite administrar aplicaciones scripts para monitorear, configurar y controlar los servicios, recursos y aplicaciones de Windows. SQL Server ofrece una API que devuelve la información del motor de datos y de todas sus instancias, esta API se denomina SQL Server 2000 WMI.
Entre los componentes adicionales de SQL Server 2000, podemos mencionar:

• Data Transformation Services, permite recuperar información de un origen de datos, realizar transformaciones sencillas o complejas (como totalización de datos) y almacenarlos en otro origen de datos, como una base de datos SQL o un cubo multidimensional.

Replicación, se puede distribuir la información a través de un mecanismo de replicación con la finalidad de optimizar el rendimiento o de mantener autonomía, mientras un copia de la información almacenada en diferentes computadoras mantengan sincronización.

• English Query, provee de un sistema que permite a los usuarios plantear una pregunta en lenguaje natural en lugar de emplear un formato Transact-SQL. Por ejemplo: “List all customers”, “How many blue dress were sold in 2001?”, etc.
Meta Data Services, son un conjunto de servicios que permiten almacenar información acerca de las bases de datos y aplicaciones clientes que las emplean, esta información es aprovechada cuando se requiere intercambiar con otras aplicaciones. Los Meta Data Services proveen tres estándares: Meta Data Coalition Open Information Model (MDC OIM), Interfaces COM y XML Encoding.
Además de ello cuenta con la documentación apropiada para poder obtener información detallada de cada uno de los tópicos de SQL Server.

Componentes de SQL Server 2000

Ediciones SQL Server 2000
SQL Server 2000 esta disponible en seis diferentes versiones además en cualquier edición se incluye el SQL Server 2000 Desktop Engine:

• Enterprise, soporta todas las características de SQL Server 2000. Esta edición es para empresas que implementan medianas y grandes bases de datos, las cuales brindan recursos a soluciones web, organizaciones con un alto índice de trabajo transaccional, y soporte para data warehouse.

• Estándar, ideal para aplicaciones que necesiten brindar información a grupos de trabajos o departamentos dentro de una organización.
Entre las características más saltantes que no se encuentran disponibles para el motor relacional, podemos mencionar:
Clustering
Log Shipping
Vistas indexadas

Entre las características más destacadas que no se encuentran disponibles para los servicios de análisis:
Definición de cubos particionados
Cubos OLAP enlazados
Soporte para dimensiones ROLAP
Celdas calculadas

Personal, soporta todas las características del SQL Server 2000 Standard Edition, excepto la replicación transaccional, para lo cual sólo puede ser definido como un suscriptor, además de esto tampoco se encuentra disponible el full text search cuando se instala sobre Windows Me y Windows 98.
Esta edición puede ser empleada para aplicaciones standalone y usuarios móviles que requieran un almacenamiento local de información.

• Windows CE Edition, es empleado para almacenar información en dispositivos Windows CE. SQL Server 2000 CE es implementado como un conjunto de librerías (DLLs) que operan como un OLE DB CE Provider. Está implementación permite que SQL Server 2000 CE soportar ActiveX Data

Objects for Windows CE (ADOCE) y OLE DB CE APIs en Windows CE versiones disponibles para Visual Basic y Visual C++. Además también es posible que múltiples aplicaciones puedan compartir al mismo tiempo un conjunto de DLLs.

Los dispositivos Windows CE pueden conectarse a la red empleando Remote

Data Access (RDA) característica de SQL Server CE para:
Conectarse a instancias de SQL Server de diferentes plataformas
Ejecutar sentencias SQL y colocarlas en un recordset
Modificar la información de un recordset y enviarlas a una instancia de SQL Server inclusive de diferentes plataformas.
Ser suscriptor en una replicación de tipo merge.

• Developer Edition, soporta todas las características de SQL Server 2000, además de un conjunto de herramientas gráficas para la configuración de idiomas, esta es una edición sólo para desarrolladores que emplean SQL Server como su origen de datos. Esta edición sólo esta licenciada para desarrollo y prueba de los sistemas.

• Enterprise Evaluation Edition, soporta todas las características de SQL Server
2000, a excepción de las herramientas gráficas para configuración del lenguaje.
Esta edición es libre y se puede descargar desde el Web aunque sólo podrá ejecutarla por 120 días.

• SQL Server 2000 Desktop Engine, es una versión distríbuible del motor de base de datos relacional de SQL Server 2000. Esta edición es empleada para aquellas aplicaciones que no requieran la implementación de tareas administrativas para el cliente. Debe recordar que las bases de datos no deben exceder los 2 Gb. de tamaño.

Instalación de SQL Server
Antes de instalar SQL Server 2000 es necesario conocer cuales son los requisitos mínimos para instalar este producto, el siguiente cuadro muestra los requerimientos para instalar SQL Server de acuerdo a la edición que Ud. emplee:


MSSQL Server Este servicio es el motor de base de datos, este es el componente que procesa todas las sentencias del Transact-SQL y administra todos los archivos que comprometen las bases de datos del servidor, entre sus principales funciones podemos mencionar:
• La asignación de recursos del servidor entre múltiples usuarios concurrentes.
• Previene los problemas lógicos, como por ejemplo prevenir que los usuarios modifiquen la misma información al mismo tiempo.
• Asegura la consistencia e integridad de datos.

SQL Server Agent Este servicio trabaja junto al MSSQL Server para crear y administrar Alertas, Tareas (locales o multiserver) y Operadores. Entre sus principales funciones podemos mencionar:
• Las alertas proveen información acerca del estado de un proceso, como por ejemplo indicar cuando finalizo una tarea con éxito o fracaso. • Este servicio incluye un motor que permite crear tareas y programarlos para que se ejecuten automáticamente.
• Puede enviar correos electrónicos, puede indicar la ejecución de una tarea cuando una alerta ocurre.

MS DTC Permite incluir múltiples orígenes de datos en una transacción, se encarga de coordinar y asegurar que las actualizaciones sobre todos los servidores sean permanentes, y si en caso estos cambios causaran un error deshacer todos.

Microsoft Search Este es un servicio opcional y se encarga de realizar búsquedas sobre información tipo carácter creando índices para facilitar estas consultas.
Además de ello podrá ingresar a la consola de administración de SQL Server denominada Administrador Corporativo (Administrador Empresarial), para ello siga la siguiente secuencia:

A continuación tendrá la interfaz del Administrador Corporativo (Administrador
Empresarial), tal como lo muestra la siguiente representación:



Modos de autenticar las cuentas de los usuarios
SQL Server valida a los usuarios en dos niveles de seguridad: una a través de un Inicio de sesión que establece el hecho de realizar la conexión a SQL Server y otro a partir de la validación de los permisos que tienen los usuarios sobre una base de datos.

INICIO DE SESIÓN
Todos los usuarios deben tener un Inicio de sesión para poder conectarse a SQL Server, para esto SQL Server reconoce 2 mecanismos de autentificación:
SQL Server es cuando el usuario debe proveer de un usuario y una contraseña que serán validados por el propio SQL Server cuando el cliente intente conectarse.

Windows NT es cuando una cuenta o grupo de Windows NT controla el acceso a SQL Server, el cliente no provee usuario y contraseña, ya que se empleará la cuenta con la que se ingresa al sistema operativo.

Para modificar la autenticación realice los siguientes pasos:

1 Haga clic derecho sobre el servidor, en el menú contextual haga clic sobre la opción Propiedades.

2 En la caja de diálogo haga clic sobre la ficha Seguridad, se presentará la siguiente pantalla:


Seleccione la opción “SQL Server y Windows” cuando desee brindar servicios de información a terceros por ejemplo a usuarios de internet. Seleccione “Sólo Windows” cuando los datos estarán disponibles sólo a los empleados de la organización. En cualquiera de los dos casos debe pulsar Aceptar, espere por un instante mientras SQL Server 2000 detiene los servicios y los vuelve a iniciar para hacer efectivos los cambios.

Hecho esto Ud. podrá definir sus Inicios de sesión de acceso a SQL Server, para ello realice la siguiente secuencia desde el Administrador Empresarial:

Expanda la carpeta Seguridad del Administrador Empresarial y haga clic derecho sobre
Inicios de sesión


Aparecerá la siguiente caja de diálogo:


En la ficha Acceso a base de datos podrá especificar que el Inicio de sesión se definirá como usuario de alguna de las bases de datos existentes. Pulse Aceptar al finalizar.

La creación de Inicios de sesión también es posible desde el Analizador de Consultas, que es una herramienta a la cual accesamos a partir de la siguiente secuencia:


Observará el siguiente entorno:

Ejermplo para crear un nuevo Inicio de sesión:


Ahora que conocemos el entorno podemos digitar las siguientes sentencias para poder crear un nuevo Inicio de sesión:
/* Activar Base de datos */
Use Master
GO
/* Crear nuevos login */
Sp_Addlogin ‘mhidalgo’, ‘mhidalgo’
GO
Sp_Addlogin ‘Usuario01’, ‘contraseña’
GO
/* Comprobar la creación del nuevo login */
Select Name From Syslogins
GO


Usuarios de Base de Datos

Una de las tareas comunes al administrar SQL Server es permitir el acceso a bases de datos y la asignación de permisos o restricciones sobre los objetos que conforman una base de datos.
SQL Server 2000 permite trabajar a nivel de Roles y Usuarios.

Un rol es un conjunto de derechos asignados, los cuales se convierten en una gran alternativa para agrupar un conjunto de permisos, de tal forma que cuando se incorpore un nuevo usuario a la base de datos, ya no se le tiene que dar permiso por permiso por cada uno de los objetos que requiera emplear, sino mas bien su cuenta de usuario es agregada al rol, y si al rol tiene que asignársele acceso sobre un nuevo elemento automáticamente el permiso o la restricción afectará a los usuarios que pertenezcan a un rol.

Los usuarios representan los usuarios que tienen acceso a la base de datos y están mapeados a un Inicio de sesión, aunque pueden tener diferente identificador, por ejemplo el Inicio de sesión puede tener como nombre Jcabrera pero al definir un Usuario podemos usar Jorge.
Después de que se crearon los Inicios de sesión para conectarse a SQL Server, se deben definir los accesos a las bases de datos requeridas, para ello es necesario definir Usuarios en cada BD, estos usuarios permitirán controlar el acceso a los distintos objetos incluyendo los datos que estos contienen.
Para ello realice el siguiente proceso:

Expanda la base de datos donde desea definir al nuevo usuario y haga clic derecho sobre la carpeta Usuarios


Seleccione un Inicio de sesión de la lista y pulse Aceptar.

También es posible realizar esta tarea desde el Analizador de Consultas para ello emplee la siguiente secuencia de instrucciones:


Use Northwind
GO
Sp_GrantDBAccess ‘Usuario01’
GO

Además de los Inicios de sesión y usuarios SQL Server brinda un conjunto de roles por servidor y por base de datos que son derechos predefinidos que podrán especificarse por cada usuario de ser necesario. También es posible crear roles personalizados.
Los roles son los siguientes:

Bases de Datos de SQL Server
SQL Server soporta bases de datos del sistema y bases de datos del usuario.
Las bases de datos del sistema, almacenan información que permite operar y administrar el sistema, mientras que las de usuario almacenan los datos requeridos por las operaciones del cliente.

• master
La base de datos master se compone de las tablas de sistema que realizan el seguimiento de la instalación del servidor y de todas las bases de datos que se creen posteriormente. Asimismo controla las asignaciones de archivos, los parámetros de configuración que afectan al sistema, las cuentas de inicio de sesión. Esta base de datos es crítica para el sistema, así que es bueno tener siempre una copia de seguridad actualizada.

• tempdb
Es una base de datos temporal, fundamentalmente un espacio de trabajo, es diferente a las demás bases de datos, puesto que se regenera cada vez que arranca SQL Server. Se emplea para las tablas temporales creadas explícitamente por los usuarios, para las tablas de trabajo intermedias de SQL Server durante el procesamiento y la ordenación de las consultas.



• model
Se utiliza como plantilla para todas las bases de datos creadas en un sistema.
Cuando se emite una instrucción CREATE DATABASE, la primera parte de la base de datos se crea copiando el contenido de la base de datos model, el resto de la nueva base de datos se llena con páginas vacías.

• msdb
Es empleada por el servicio SQL Server Agent para guardar información con respecto a tareas de automatización como por ejemplo copias de seguridad y tareas de duplicación, asimismo solución a problemas.
La información contenida en las tablas que contiene esta base de datos, es fácilmente accedida desde el Administrador Empresarial, así que se debe tener cuidado de modificar esta información directamente a menos que se conozca muy bien lo que se esta haciendo.

• Distribution
Almacena toda la información referente a la distribución de datos basada en un proceso de replicación.

Objetos de una Base de Datos

Las Tablas son objetos de la base de datos que contienen la información de los usuarios, estos datos están organizados en filas y columnas, similar al de una hoja de cálculo. Cada columna representa un dato aislado y en bruto que por sí solo no brinda información, por lo tanto estas columnas se deben agrupar y formar una fila para obtener conocimiento acerca del objeto tratado en la tabla. Por ejemplo, puede definir una tabla que contenga los datos de los productos ofertados por una tienda, cada producto estaría representado por una fila mientras que las columnas podrían identificar los detalles como el código del producto, la descripción, el precio, las unidades en stock, etc.

Una Vista es un objeto definido por una consulta. Similar a tabla, la vista muestra un conjunto de columnas y filas de datos con un nombre, sin embargo, en la vista no existen datos, estos son obtenidos desde las tablas subyacentes a la consulta. De esta forma si la información cambia en las tablas, estos cambios también serán observados desde la vista. Fundamental emplean para mostrar la información relevante para el usuario y ocultar la complejidad de las consultas.
Los tipos de datos especifican que tipo de valores son permitidos en cada una de las columnas que conforman la estructura de la fila. Por ejemplo, si desea almacenar precios de productos en una columna debería especificar que el tipo de datos sea money, si desea almacenar nombres debe escoger un tipo de dato que permita almacenar información de tipo carácter.
SQL Server nos ofrece un conjunto de tipos de datos predefinidos, pero también existe la posibilidad de definir tipos de datos de usuario.

Un Procedimiento Almacenado es una serie de instrucciones SQL precompiladas las cuales organizadas lógicamente permiten llevar a cabo una operación transaccional o de control. Un Procedimiento almacenado siempre se ejecuta en el lado del Servidor y no en la máquina Cliente desde la cual se hace el requerimiento. Para ejecutarlos deben ser invocados explícitamente por los usuarios.

Un Desencadenador es un Procedimiento Almacenado especial el cual se invoca automáticamente ante una operación de Insert, Update o Delete sobre una tabla. Un
Desencadenador puede consultar otras tablas y puede incluir complejas instrucciones
SQL, se emplean para mantener la integridad referencial, preservando las relaciones definidas entre las tablas cuando se ingresa o borra registros de aquellas tablas.

Los Valores Predeterminados especifican el valor que SQL Server insertará en una columna cuando el usuario no ingresa un dato específico. Por ejemplo, si se desconoce el apellido materno de un empleado SQL Server podría incluir automáticamente la cadena NN para identificar este campo.

Las Reglas son objetos que especifican los valores aceptables que pueden ser ingresados dentro de una columna particular. Las Reglas son asociadas a una columna o a un tipo de dato definido por el usuario. Una columna o un Tipo de dato puede tener solamente una Regla asociada con el.

Las Restricciones son restricciones que se asignan a las columnas de una tabla y son controladas automáticamente por SQL Server.
Esto nos provee las siguientes ventajas:

• Se puede asociar múltiples constraints a una columna, y también se puede asociar un constraints a múltiples columnas.

• Se pueden crear los Restricciones al momento de crear la tabla CREATE TABLE.
Los Restricciones conforman el standars ANSI para la creación y alteración de tablas, estos no son extensiones del Transact SQL.

Se puede usar un constraints para forzar la integridad referencial, el cual es el proceso de mantener relaciones definidas entre tablas cuando se ingresa o elimina registros en aquellas tablas.

Los índices de SQL Server son similares a los índices de un libro que nos permiten llegar rápidamente a las páginas deseadas sin necesidad de pasar hoja por hoja, de forma similar los índices de una tabla nos permitirán buscar información rápidamente sin necesidad de recorrer registro por registro por toda la tabla. Un índice contiene valores y punteros a las filas donde estos valores se encuentran.


Creación de Base de Datos
En términos sencillos una base de datos de SQL Server es una colección de objetos que contiene y administra datos. Antes de crear una base de datos es importante entender como es que SQL Server almacena la información.


Páginas y extensiones
Antes de crear una base de datos con SQL Server 2000, debemos tomar en cuenta que la unidad básica de almacenamiento en SQL Server es la página (data page), el tamaño de cada pade es de 8 KB, lo cual representa un total de 128 páginas por cada megabyte.
El comienzo de cada página es una cabecera de 96 bytes que se utiliza para almacenar información de cabecera tal como el tipo de página, la cantidad de espacio libre de la página y el Id. del objeto propietario de la página. Existen ocho tipos de páginas en los archivos de datos de una base de datos SQL Server 2000.


Los archivos de registro (LOG) no contienen páginas, contienen series de registros.

Las páginas de datos contienen todos los datos de las filas de datos excepto los datos text, ntext e image, que están almacenados en páginas separadas. Las filas de datos se colocan en las páginas una a continuación de otra, empezando inmediatamente después de la cabecera, al final de cada página se encuentra una tabla de posiciones de filas que contiene una entrada por cada fila de la página y cada entrada registra la posición, desde el principio de la página, del primer byte de la fila. Las entradas de la tabla de posiciones de filas están en orden inverso a la secuencia de las filas de la página.

En SQL Server, las filas no pueden continuar en otras páginas.
Las extensiones son la unidad básica de asignación de espacio a las tablas e índices.
Consta de 8 páginas contiguas, es decir 64 KB. Lo cual representa 16 extensiones por MB.
Para hacer que la asignación de espacio sea eficiente, SQL Server 2000 no asigna extensiones enteras a tablas con poca cantidad de datos. SQL Server 2000 tiene dos tipos de extensiones:
• Las extensiones uniformes son propiedad de un único objeto; sólo el objeto propietario puede utilizar las ocho páginas de la extensión.

• Extensiones mixtas, pueden estar compartidas por hasta ocho objetos.

Las tablas o índices nuevos son asignados a páginas de extensiones mixtas. Cuando la tabla o el índice crecen hasta el punto de ocupar ocho páginas, se pasan a extensiones uniformes.

Archivos y grupos de archivos físicos de la base de datos

Un archivo de base de datos no es más que un archivo del sistema operativo. Una base de datos se distribuye en por lo menos dos archivos, aunque es muy probable que sean varios los archivos de base de datos que se especifican al crear o al modificar una base de datos.
Principalmente SQL Server divide su trabajo en un archivo para datos y otro para el registro de las transacciones (log).

SQL Server 2000 permite los tres siguientes tipos de archivos:

• Archivos de datos primarios
Toda base de datos tiene un archivo de datos primario que realiza el seguimiento de todos los demás archivos, además de almacenar datos. Por convenio este archivo tiene la extensión MDF.

• Archivos de datos secundarios
Una base de datos puede tener cero o varios archivos de datos secundarios. Por convenio la extensión recomendada para los archivos de datos secundarios es NDF.

• Archivos de registro (LOG)
Todas las bases de datos por lo menos tendrán un archivo de registro que contiene la información necesaria para recuperar todas las transacciones que suceden sobre la misma. Por convenio la extensión de este archivo es LDF.

Por lo tanto al crear una base de datos, debemos considerar los siguientes premisas y reglas para el almacenamiento de los datos:

1. Todas las Bases de Datos tienen un archivo de base de datos primario (.mdf) y uno para el Log de Transacciones (.ldf). Además puede tener archivos de datos secundarios (.ndf).

2. Cuando se crea una Base de Datos, una copia de la Base de Datos Model, la cual incluye tablas del sistema, es copiada en la Nueva Base de Datos.

3. La Data es almacenada en bloques de 8-kilobytes (KB) de espacio de disco contiguo llamado páginas.
4. Las filas o registros no pueden atravesar páginas. Esto, es, que la máxima cantidad de datos en una fila de datos simple es de 8060 bytes.
5. Las tablas y los índices son almacenados en Extents. Un Extents consta de ocho páginas contiguas, o sea 64 KB.
6. El Log de Transacciones lleva toda la información necesaria para la recuperación de la Base de Datos en una eventual caída del sistema. Por default, el tamaño del Log de Transacciones es del 25% del tamaño de los archivos de datos. Use esta configuración como punto de partida y ajuste de acuerdo a las necesidades de su aplicación.

Archivos de Registro (LOG de Transacciones)
El LOG de transacciones archiva todas las modificaciones de los datos tal cual son ejecutados. El proceso es como sigue:

1. Una modificación de datos es enviada por la aplicación cliente.

2. Cuando una modificación es ejecutada, las páginas afectadas son leídas del disco a memoria (Buffer Cache), provista de las páginas que no están todavía en la
Data Cache del query previo.

3. Cada comando de modificación de datos es archivado en el LOG. El cambio siempre es archivado en el LOG y es escrito en el disco antes que el cambio sea hecho en la Base de Datos. Este tipo de LOG es llamado LOG de tipo write-ahead.

4. Una vez que las páginas de datos residen en el Buffer Cache, y las páginas de LOG son archivadas sobre el disco en el archivo del LOG, el proceso de CHECKPOINT, escribe todas las transacciones completas a la Base de Datos en el disco.

Si el sistema falla, automáticamente el proceso de recuperación usa el LOG de Transacciones para llevar hacia delante todas las transacciones comprometidas (COMMIT) y llevar hacia atrás alguna transacción incompleta (ROLLBACK).

Los marcadores de transacción en el LOG son usados durante la recuperación automática para determinar los puntos de inicio y el fin de una transacción. Una transacción es considerada completa cuando el marcador BEGIN TRANSACTION tiene un marcador asociado COMMIT TRANSACTION. Las páginas de datos son escritas al disco cuando ocurre el CHECKPOINT.



Creación de Base de Datos
Se puede crear una base de datos de distintas maneras, utilizando el Wizard, desde el Administrador Empresarial o a través del Query Analizer.

Desde el Asistente

Ingrese al Administrador Empresarial y seleccione la carpeta Bases De Datos, tal como lo muestra la figura.



Haga clic en el menú Herramientas y seleccione la opción Asistentes, extienda la opción Base de datos y seleccione la primera opción (Asistente para creación de bases de datos), tal como lo muestra la siguiente imagen:


Se presentará una pantalla de bienvenida al wizard pulse Siguiente:

La siguiente pantalla le permitirá especificar el nombre de la base de datos y las carpetas donde se almacenaran los archivos de datos y de log.

Luego de pulsar Siguiente, aparece una pantalla donde especificará si desea emplear mas de un archivo de datos así como también podrá indicar el tamaño de cada archivo:

Luego de pulsar Siguiente, aparecen las opciones para personalizar el crecimiento automático del archivo de datos:


Luego de pulsar Siguiente. Especifique el nombre para el archivo de log:


Similar al caso del archivo de datos, luego de pulsar Siguiente, también podrá establecer el crecimiento automático o no del archivo de transacciones:

Luego de pulsar Siguiente, aparecerá la pantalla final;

Pulse Finalizar, de no haber problemas le aparecerá el siguiente mensaje:

Luego de pulsar Aceptar, aparecerá la siguiente pregunta:

Conteste que No, luego de lo cual en el Administrador Empresarial podrá observar la nueva base de datos.

Desde el Administrador Empresarial

Otra forma de crear la base de datos es desde el Administrador Empresarial, para ello:
Ingrese al Administrador Empresarial, haga clic derecho sobre la carpeta Databases y seleccione la opción New Database, tal como lo muestra la figura:

Luego aparecerá la siguiente pantalla, coloque el nombre de la base de datos y opcionalmente podrá especificar el código de página que empleará, esto lo puede seleccionar de la lista Collation Name:

Para especificar la información referente al archivo de datos, haga un clic en la ficha
Data Files y complete la siguiente información:

Para poder especificar las características del archivo de log, haga clic en la ficha
Transaction Log:

Una vez establecido los valores y luego de pulsar Aceptar, en el Administrador
Empresarial se observara la nueva base de datos creada.
Desde el Analizador de Consultas

Argumentos

nombreBaseDatos
Es el nombre de la nueva base de datos, deben ser únicos en un servidor y pueden tener hasta 128 caracteres, a menos que no se especifique ningún nombre lógico para el registro. Si no se especifica ningún nombre lógico de archivo de registro, SQL Server genera un nombre lógico al anexar un sufijo a nombreBaseDatos.



ON
Especifica que los archivos de disco utilizados para almacenar la parte de datos (archivos de datos) se han definido explícitamente. La palabra clave va seguida de una lista delimitada por comas de elementos que definen los archivos de datos del grupo de archivos principal.

PRIMARY
Especifica que la lista de archivos está asociada al grupo principal. Este grupo contiene todas las tablas del sistema de base de datos. También contiene todos los objetos no asignados a los grupos de archivos de usuario. El primer archivo especificado pasa a ser el archivo principal, el cual contiene el inicio lógico de la base de datos y de las tablas del sistema. Una base de datos sólo puede tener un archivo principal. Si no se especifica PRIMARY, el primer archivo enumerado en la instrucción CREATE DATABASE se convierte en el archivo principal.

LOG ON
Especifica que los archivos de registro de la base de datos (archivos de registro) se han definido explícitamente. La palabra clave va seguida de una lista delimitada por comas la cual define las características de los archivos de registro. Si no se especifica LOG ON, se crea utomáticamente un único archivo de registro con un nombre generado por el sistema y un tamaño que es el 25% de la suma de los tamaños de todos los archivos de datos de la base de datos.

FOR LOAD
Cláusula que se mantiene por compatibilidad con versiones anteriores de SQL Server. La base de datos se crea con la opción de base de datos dbo use only activada y el estado se establece en "cargando". En realida esto no es necesario en SQL Server 7.0 porque la instrucción RESTORE puede volver a crear la base de datos como parte de la operación de restauración.

FOR ATTACH
Crea la base de datos desde un conjunto existente de archivos del sistema operativo. Debe existir una entrada de archivos que determine cual es el archivo principal, las otras entradas son necesarias si existen archivos creados en una ruta de acceso distinta de cuando se creó la base de datos por primera vez o se adjuntó por última vez.
Utilice el procedimiento almacenado del sistema sp_attach_db en lugar de emplear CREATE DATABASE FOR ATTACH directamente, esto deberá emplearlo si debe especificar más de 16 archivos.

COLLATE
Especifica el conjunto de caracteres que se empleará para almacenar información en la base de datos, se puede emplear un conjunto de caracteres especificado por Windows o por SQL Server. De no especificarse se empleará el conjunto de caracteres seleccionado en el momento de la instalación

NAME
Especifica el nombre lógico del archivo.
No se requiere este parámetro cuando se especifica FOR ATTACH.
Este nombre es el utilizado para referenciar al archivo en las sentencias del Transact-
SQL que se ejecuten después.



FILENAME
Especifica el nombre de archivo del sistema (archivo físico).
Se debe especificar la ruta de acceso y nombre de archivo que el sistema operativo utiliza cuando crea la base de datos. La ruta de acceso debe especificar un directorio en el servidor sobre el que se instalo SQL Server.
No se puede especificar un directorio en un sistema comprimido de archivos.

SIZE
Especifica el tamaño para el archivo. De no hacerlo SQL Server utiliza el tamaño del archivo principal de la base de datos model.
Cuando este parámetro no es especificado para un archivo secundario o de registro SQL
Server automáticamente le asigna 1 MB.
El valor mínimo a asignar es de 512 KB. Si no se especifica tamaño, el valor predeterminado es 1 MB. El tamaño especificado para el archivo principal debe tener al menos el tamaño del archivo principal de la base de datos model.


MAXSIZE
Especifica el tamaño máximo de crecimiento del archivo. Se pueden utilizar los sufijos KB y MB, el valor predeterminado es MB. Especifique un número entero; no incluya decimales. Si no se especifica, el archivo aumenta hasta que el disco esté lleno.

UNLIMITED
Especifica que el archivo aumenta de tamaño hasta que el disco esté lleno.

FILEGROWTH
Especifica el incremento de crecimiento del archivo, este valor no puede exceder el valor MAXSIZE. Emplee un número entero. Un valor 0 indica que no hay crecimiento.
El valor se puede especificar en MB, KB o %, el valor predeterminado es MB. Cuando se especifica %, el tamaño de incremento de crecimiento es el porcentaje especificado del tamaño del archivo en el momento en que tiene lugar el incremento. De no emplear FILEGROWTH, el valor predeterminado es 10% y el valor mínimo es 64 KB. El tamaño especificado se redondea al múltiplo de 64 KB más cercano.

OBSERVACIONES
Emplee CREATE DATABASE para crear una base de datos y los archivos que almacenan ésta. SQL Server implementa CREATE DATABASE en dos pasos:
SQL Server utiliza una copia de model para inicializar la base de datos y sus metadatos.
SQL Server rellena el resto de la base de datos con páginas vacías, excepto las páginas que tengan datos internos que registren cómo se emplea el espacio en la base de datos.
Cualquier objeto definido por el usuario en model se copiará a todas las bases de datos recién creadas.
Cada base de datos nueva hereda los valores opcionales de la base de datos model (a menos que se especifique FOR ATTACH).
En un servidor se puede especificar un máximo de 32,767 bases de datos. Cuando específica una instrucción CREATE DATABASE nombreBaseDatos sin parámetros adicionales, la base de datos se crea con el mismo tamaño que model.
Cada base de datos tiene un propietario con capacidad para realizar actividades Especiales. El propietario es el usuario que crea la base de datos, este propietario se puede cambiar mediante sp_changedbowner.
Para mostrar un informe de una base de datos o de todas las bases de datos de un servidor con SQL Server, ejecute sp_helpdb. Para obtener un informe acerca del espacio utilizado en una base de datos, emplee sp_spaceused. Para obtener un informe de los grupos de archivos de una base de datos, utilice sp_helpfilegroup, y utilice sp_helpfile para obtener el informe de los archivos de la base de datos.

¿Quiénes pueden crear bases de datos?
En forma predeterminada podrán hacerlos los usuarios que pertenecen al rol sysadmin
y dbcreator. Los miembros de las funciones fijas de servidor sysadmin y SecurityAdmin pueden conceder permisos CREATE DATABASE a otros inicios de sesión. Los miembros de las funciones fijas de servidor sysadmin y dbcreator pueden agregar otros inicios de sesión a la función dbcreator. El permiso CREATE DATABASE debe concederse explícitamente; no se concede mediante la instrucción GRANT ALL.

Estos permisos se limitan a unos cuantos inicios de sesión para mantener el control de la utilización de los discos del equipo que ejecuta SQL Server.
Ejemplos de creación de base de datos empleando el Analizador de Consultas Primero ingrese al Analizador de Consultas para ello primero debe especificar el tipo de autentificación a realizar del sistema o estándar, vea la siguiente figura:




Ejemplo 1
Crear la base de datos Prueba1 con los parámetros En forma predeterminada.
Use Master
GO
Create Database Prueba1
GO
Verifique la creación de la base de datos y note que automáticamente SQL Server asignó tamaños y nombres lógicos para los archivos. Para ello emplee el siguiente procedimiento almacenado del sistema:
Sp_HelpDB Prueba1
GO
Debe obtener el siguiente resultado:
name db_size owner dbid created status Compatibility Level
Prueba1 1.12 MB sa 8 Feb 28 2002 Status=ONLINE,
Updateability=READ_WRITE,
UsuarioAccess=MULTI_USUARIO,
Recovery=FULL,
Version=539,
Collation=SQL_Latin1_General_CP1_CI_AS,
SQLSortOrder=52,
IsTornPageDetectionEnabled,
IsAutoCreateStatistics,
IsAutoUpdateStatistics 8.0

Además se mostrará un informe con los archivos que se crearon automáticamente:

Ejemplo 2
Crear la base de datos Prueba2 con un archivo de datos de 10Mb, un tamaño máximo de
20Mb y un crecimiento de 1Mb., el archivo de registro debe asumir los valores por default.
Use Master
GO
Create Database Prueba2
On Primary
(NAME = ‘Prueba2_Data’,
FILENAME = ‘C:Program FilesMicrosoft SQL
ServerMSSQLdataPrueba2 _Data.Mdf’,
SIZE = 10Mb,
MAXSIZE = 20Mb,
FILEGROWTH= 1Mb)
GO
Verifique la creación de la base de datos anterior:
Sp_HelpDB Prueba2
GO
Puede notar como SQL Server aprovecha los valores predeterminados en la base de datos model para completar la información que corresponde al log de transacciones, la cual no se específico en la sentencia CREATE DATABASE.

Ejemplo 3
Crear la base de datos Prueba3 especificando un archivo de datos con un tamaño inicial de 15Mb, un tamaño máximo de 30Mb y un crecimiento de 5Mb., el archivo de registro debe tener un tamaño inicial de 5MB y uno máximo de 10MB, el crecimiento debe ser de 1MB.
Use Master
GO
Create Database Prueba3
On Primary
(NAME = ‘Prueba3_Data’,
FILENAME = ‘C:Program FilesMicrosoft SQL
ServerMSSQLdataPrueba3 _Data.Mdf’
SIZE = 15Mb,
MAXSIZE = 30Mb,
FILEGROWTH= 5Mb)
Log On
(NAME = ‘Prueba3_Log’,
FILENAME = ‘C:Program FilesMicrosoft SQL
ServerMSSQLdataPrueba3 _Log.Ldf’
SIZE = 5Mb,
MAXSIZE = 10Mb,
FILEGROWTH= 1Mb)
GO
-- Verifique la información con :
Sp_HelpDB Prueba3
GO
Otra de las formas de comprobar la creación de las bases de datos es mostrando las filas
de la tabla del sistema SysDatabases.
Use Master
GO
Select DbID, Name From SysDatabases
GO


REVISE LOS RESULTADOS.

CREANDO MÚLTIPLES ARCHIVOS

La ventaja de almacenar la base de datos en múltiples archivos radica en la flexibilidad de modificar en futuro la configuración del hardware sin que se vea afectada la base de datos, otro de los motivos es que si emplea una base de datos de 15GB y por algún motivo ocurre una falla y desea recuperar desde el backup, necesitaría una unidad de 15 o mas gigabytes de almacenamiento, mientras que si distribuyó la base de datos en múltiples archivos pequeños será mas probable que tenga disponibles múltiples unidades de 4 GB que unidades de 15GB.
Con las sentencias del Transact-SQL es posible modificar la lista de archivos que conforman la base de datos, agregar o quitar archivos, incluso puede definir nuevos grupos de archivos los cuales permitirán tratar múltiples archivos como si se tratará de uno solo.
Para poder realizar esta tarea emplee la sentencia ALTER DATABASE

Sintaxis
ALTER DATABASE NombreBD
{ ADD FILE <Especificación del archivo> [,…n] [TO FILEGROUP
nombreGrupoArchivos]
| ADD LOG FILE <<Especificación del archivo> [,…n]
| REMOVE FILE nombreArchivoLógico
| ADD FILEGROUP nombreGrupoArchivos
| REMOVE FILEGROUP nombreGrupoArchivos
| MODIFY FILE <<Especificación del archivo>
| MODIFY FILEGROUP nombreGrupoArchivos propiedadGrupoArchivos
| SET < optionspec > [ ,...n ] [ WITH < termination > ]
| COLLATE < collation_name > }

Argumentos

ADD FILE
Especifica que se está agregando un archivo.

TO FILEGROUP
Especifica el grupo de archivos al que debe agregarse el archivo especificado.

ADD LOG FILE
Especifica que se agregue un archivo de registro a la base de datos indicada.

REMOVE FILE
Elimina el archivo de la base de datos y retira su referencia en las tablas del sistema además de eliminar el archivo físico. Este archivo no podrá eliminarse si no está vacío.

ADD FILEGROUP
Especifica que se va a agregar un grupo de archivos.

REMOVE FILEGROUP
Quita el grupo de archivos de la base de datos, no se puede realizar si el grupo de archivos no está vacío.

MODIFY FILE
Especifica que el archivo dado se debe modificar, incluidas las opciones FILENAME,
SIZE, FILEGROWTH y MAXSIZE. Sólo se puede cambiar una de estas propiedades a la vez.

MODIFY FILEGROUP nombreGrupoArchivos propiedadGrupoArchivos
Especifica la propiedad que se aplicará a los archivos que pertenecen al grupo de archivos.
Los valores de propiedadGrupoArchivos son:

READONLY
Especifica que el grupo de archivos es de sólo lectura. De tal manera que no se podrán realizar modificaciones sobre los archivos pertenecientes a este grupo.

READWRITE
Invierte la propiedad READONLY. Están habilitadas las actualizaciones para los objetos del grupo de archivos.

DEFAULT
Especifica que el grupo de archivos es el predeterminado de la base de datos. Sólo un grupo puede ser el predeterminado, esta propiedad se quita del grupo de archivos que había sido anteriormente el predeterminado. CREATE DATABASE hace que el grupo de archivos principal sea el grupo predeterminado inicialmente. Si no se especifica ningún grupo de archivos en las instrucciones CREATE TABLE, ALTER TABLE o CREATE INDEX, se crean nuevas tablas e índices en el grupo predeterminado.


SET
Permite establecer valores para algunas de las características de trabajo en una base de datos, por ejemplo el tipo de recovery que se empleará para los backups.


COLLATE
Especifica el conjunto de caracteres a emplear, ya sean de Windows o de SQL Server
2000.

Observaciones
No se puede agregar o quitar un archivo mientras se está ejecutando una instrucción
BACKUP.


Creación de Tablas

Objetivos:
• Determinar Tipos de datos de SQL Server a utilizar en las tablas
• Implementación de tablas, establecer restricciones
• Asignar permisos
Temas:
• Tipos de datos de SQL Server – Tipos de datos de usuario
• Empleo de comando DDL (Data Definition Language)
• Implementar Restricciones
• Asignar roles y/o permisos – Comandos DCL (Data Control Language)

Tipos de Datos de SQL Server 2000
SQL Server brinda una serie de tipos de datos para almacenar la información, la correcta selección del tipo de dato es simplemente una cuestión de determinar que valores desea almacenar, como por ejemplo carácter, enteros, binario, fechas, etc. Los siguientes objetos tienen tipos de datos:
Columnas de tablas y vistas.
Parámetros de procedimientos almacenados.
Variables.
Funciones de Transact-SQL que devuelven uno o más valores de datos de un tipo de datos específico.
• Procedimientos almacenados que devuelven un código, que siempre es de tipo

Integer.
Al asignar un tipo de datos a un objeto se definen cuatro atributos del objeto:
• La clase de datos que contiene el objeto, por ejemplo, carácter, entero o binario.
• La longitud del valor almacenado o su tamaño.
• La precisión del número (sólo tipos de datos numéricos).
La precisión es el número de dígitos que puede contener el número. Por ejemplo, un objeto smallint puede contener hasta 5 dígitos, con lo que tiene una precisión de 5.
• La escala del número (sólo tipos de datos numéricos).
La escala es el máximo número de dígitos a la derecha del separador decimal. Por ejemplo, un objeto int no puede aceptar un separador decimal y tiene una escala de 0. Un objeto money puede tener hasta 4 dígitos a la derecha del separador decimal y tiene una escala de 4.
Si un objeto se define como money, puede contener hasta 19 dígitos y 4 de ellos pueden estar a la derecha del decimal. El objeto usa 8 bytes para almacenar los datos. Por tanto, el tipo de datos money tiene una precisión de 19, una escala de 4 y una longitud de 8.

Utilizar datos binarios
Los tipos de datos binary y varbinary almacenan cadenas de bits. Mientras que los datos de carácter se interpretan según la página de códigos de SQL Server, los datos binary y varbinary son, simplemente, un flujo de bits. Los datos binary y varbinary pueden tener una longitud de hasta 8.000 bytes. Las constantes binarias tienen un 0x (un cero y una letra x en minúsculas) a la izquierda, seguido de la representación hexadecimal del patrón de bits. Por ejemplo, 0x2A especifica el valor hexadecimal 2A, que es equivalente al valor decimal 42 o un patrón de bits de un byte de 00101010. La siguiente es una tabla que describe los tipos de datos provistos por SQL Server:

Tipos de datos definidos por el usuario
Los tipos de datos definidos por el usuario están basados en los tipos de datos disponibles a través de SQL Server 2000. Los tipos de datos definidos por el usuario se pueden emplear para asegurar que un dato tenga las mismas características sobre múltiples tablas.
Para crear un tipo de dato puede emplear el Administrador Empresarial expandiendo la base de datos donde desea crear el dato, luego deberá hacer un clic derecho sobre Tipos de datos definidos por el Usuario y seleccionar “Nuevo tipo de datos definido por el usuario…”, tal como lo muestra la siguiente representación:


Complete la caja de diálogo, tal como lo muestra la siguiente representación:



Desde el Analizador de Consultas puede emplear el stored procedure del sistema
SP_ADDTYPE cuya sintaxis es la siguiente:
sp_addtype [@typename =] tipo,
[@phystype =] tipoDatosSistema
[, [@nulltype =] 'tipoNull']
Argumentos

[@typename =] tipo
Es el nombre para el tipo de datos definido de usuario, deben ser únicos en cada base de datos.

[@phystype =] tipoDatosSistema
Es el tipo de datos proporcionado por SQL Server, (decimal, int, etc.) en el que se basa el tipo de datos del usuario.

[@nulltype =] ‘tipoNull’
Indica la forma en que el tipo de datos del usuario trata los valores nulos. Este argumento puede tener como valor ‘NULL’, ‘NOT NULL’ o ‘NONULL’. Si no se define explícitamente tipoNull, se establece de acuerdo al criterio predeterminado para valores nulos.

Ejemplo 1
En este ejemplo se creará la base de datos Ejemplo y en ella se definirá el tipo de datos RUC de tipo char(11) el cual no permitirá valores NULL.






Empleo de Comandos DDLL (Data Definition Language)
SQL Server 2000 emplea las tablas como objetos de almacenamiento de datos que los usuarios manipulan a través de sus aplicaciones o vía web.
Las tablas son objetos compuestos por una estructura (conjunto de columnas) que almacenan información interrelacionada (filas) acerca de algún objeto en general.
Las tablas se definen para los objetos críticos de una base de datos, por ejemplo
CLIENTES y su estructura estaría conformada por cada uno de los atributos que se requieran de los clientes para poder obtener información de ellos, como por ejemplo: nombres, direcciones, teléfonos, celular, ruc, etc. Cada uno de estos atributos tiene un tipo de dato definido y además la tabla debe permitir asegurar que cada código de producto es único en la misma, para asegurarse de no almacenar la información del mismo cliente dos veces.
Las tablas suelen estar relacionadas entre sí, para facilitar el hecho de consultas entre múltiples tablas.
Podemos distinguir los siguientes tipos de tablas:


Tablas del Sistema
La información usada por SQL Server y sus componentes son almacenadas en tablas especiales denominadas como tablas del sistema. Estas tablas no deben alterarse directamente por el usuario
Si desea obtener información almacenada en las tablas del sistema debe usar:
• Información de la vista esquema (schema view).
• Procedimientos Almacenados de sistema.
• Instrucciones Transact-SQL y funciones.
• SQL-DMO.
• Catálogo de funciones API.
Las tablas del sistema almacenan información, llamada Metadata, acerca del sistema y de los objetos de las bases de datos. Todas las tablas del sistema comienzan con el prefijo SYS.

Ejemplo:
SELECT * FROM SYSUSUARIOS
Tablas del Usuario
Permanentes
Son las tablas donde se almacena la información que los usuarios utilizan para sus operaciones. Esta información existirá hasta que se elimine explícitamente.

Temporales
Estas son tablas similares a las permanentes que se graban en tempdb, y son eliminadas automáticamente cuando ya no son usadas.
Hay dos tipos de tablas temporales, locales y globales, difieren una de la otra en sus nombres, su visibilidad y su ámbito de vida.

• Tablas Temporales Locales. El primer carácter del nombre de #, su visibilidad es solamente para la conexión actual del usuario y son eliminadas cuando el usuario se desconecta.

• Tablas Temporales Globales. Su nombre comienza con ##, su visibilidad es para cualquier usuario, y son eliminadas luego que todos los usuarios que la referencian se desconectan del SQL Server.

Creación de tablas
Cuando se crea una tabla debe asignarle un nombre a la misma, un nombre a cada columna además de un tipo de datos y de ser necesaria una longitud. Adicional a las características antes mencionadas, SQL Server 2000 nos brinda la posibilidad de implementar columnas calculadas, definiéndolas como fórmulas. Los nombres de las columnas deben ser únicos en la tabla




Consideraciones al crear tablas
• Billones de tablas por base de datos
• 1024 columnas por tabla
• 8060 es el tamaño máximo de registro (sin considerar datos image, text y ntext)
• Al momento de definir una columna se puede especificar si la columna soporta o no valores NULL.
Para crear tablas debe utilizar la sentencia CREATE TABLE, cuya sintaxis es la siguiente:
CREATE TABLE <Nombre de Tabla>
( Nom_Columna1 Tipo_de_Dato [NULL l NOT NULL],
Nom_Columna2 Tipo_de_Dato [NULL l NOT NULL],
Nom_Columna3 As formula ...)
GO
También puede crear sus tablas desde el Administrador Empresarial, para ello extienda la carpeta Tablas de la base de datos donde creará la tabla, haga clic derecho y seleccione Nueva Tabla, tal como lo indica la siguiente representación:


Aparecerá la siguiente caja de diálogo, complete de acuerdo a la representación

Cuando finalice pulse el icono de grabar y asigne el nombre de acuerdo a la representación:

Luego de pulsar Aceptar, pulse la combinación Ctrl-F4 y podrá observar que el icono correspondiente a esta nueva tabla aparece en el panel de la derecha.
Para agregar los registros de prueba de esta tabla, haga clic derecho sobre la tabla
DemoTabla, seleccione la opción Open table y luego un clic en Return all rows, tal como lo muestra la siguiente figura:


Agregar unos registros al finalizar pulse Ctrl-F4.


Modificación de la estructura de las tablas
Con SQL Server 2000 se puede modificar la estructura de las tablas, se podrá agregar, eliminar o modificar las características de las columnas de la tabla. Para demostrar el empleo de estas instrucciones emplearemos.

Otra de las formas de modificar la estructura de una tabla es desde el Administrador Empresarial, para ello haga clic derecho sobre la tabla a modificar y seleccione la opción Diseñar Tabla, tendrá una presentación similar a la que utilizó al momento de crear la tabla.
Si tan sólo desea observar la estructura haga doble clic sobre la tabla y aparecerá la siguiente presentación:


Valores autogenerados para las columnas
En SQL Server 2000 se puede definir columnas que obtengan valores generados por el sistema, para ello podemos hacer uso de:

Propiedad Identity
Permite generar valores secuenciales del sistema, este tipo de valores pueden ser utilizados en columnas que serán empleadas como primary key.
Para emplear esta propiedad debe especificar un valor de inicio y uno de incremento.
Recuerde que este tipo de columnas no son editables.


Ejemplo:
USE EJEMPLO
GO
ALTER TABLE Prueba
ADD COLUMN cod integer Identity(1,1) NOT NULL
GO
Para comprobar la generación de los valores ejecute la siguiente secuencia de comandos:
USE EJEMPLO
GO
INSERT PRUEBA VALUES ('JOSE', 'ROJAS', 'CALDERON',1000)
GO
INSERT PRUEBA VALUES ('ANA MARIA', 'SALAS', 'GUILLEN',1000)
GO
SELECT COD, NOM, PAT, MAT, SUELDO FROM PRUEBA
GO
Para ver información sobre la columna IDENTITY puede utilizar las funciones:
Select Ident_Seed('Prueba') /* Retorna el valor de inicio de la columna
identity */
GO
Select Ident_Incr('Prueba') /* Retorna el valor de incremento de la columna
identity */
GO

Función NEWID y Datos de tipo UNIQUEIDENTIFIER
El tipo de dato uniqueidentifier y la función NEWID trabajan unidas para poder generar valores en el formato GUID.
Este tipo de datos no genera valores automáticamente, sino que por el contrario hay que definirle un valor En forma predeterminada que especifique el empleo de la función NEWID.
Para poder observar un ejemplo de lo antes explicado, ejecute la siguiente secuencia de comandos:

CREATE TABLE Prueba2
( código uniqueidentifier NOT NULL DEFAULT NEWID(),
nombre char(20) NOT NULL)
GO
INSERT Prueba2 (nombre) VALUES (‘Mauricio’)
GO
INSERT Prueba2 (nombre) VALUES (‘Gina’)
GO
INSERT Prueba2 (nombre) VALUES (‘Cristina’)
GO
SELECT * FROM Prueba2
GO

Eliminación de tablas
Para eliminar una tabla, haga clic derecho sobre la tabla y seleccione la opción Eliminar


Aparecerá la siguiente caja de diálogo:

Pulse clic sobre Quitar Todos y con ello la tabla será retirada de la base de datos. Otra forma es utilizando la sentencia DROP TABLE cuya sintaxis es la siguiente:
DROP TABLE <Nombre de la Tabla>
Para probar el empleo de esta instrucción utilice la siguiente sentencia:
DROP TABLE Prueba2
GO
Compruebe que las tablas Prueba y Prueba2 están eliminadas, con la siguiente instrucción:
SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'
GO


Implementar Restricciones
Uno de los principales objetivos de una base de datos relacional es cuidar y controlar la integridad de datos, la cual podría perderse ante operaciones que modifican la información como: INSERT, UPDATE y DELETE.
Por ejemplo se puede perder la integridad de datos ante alguna de las siguientes situaciones:
• Se puede registrar un pedido de un producto no existente
• Podría modificarse los datos existentes son valores incorrectos
• Los cambios a la base de datos podrían aplicarse parcialmente, por ejemplo si se registra un pedido sin actualizar el stock del producto requerido.
SQL Server provee de múltiples medios para controlar la integridad de datos, como por ejemplo:
• Datos Requeridos, es una de las restricciones mas sencillas que especifican que columnas permiten valores nulos y que columnas no. Al momento de definir las columnas de una tabla podrá asignar a cada columna la especificación NULL o NOT NULL.
• Control de validez, permite controlar los valores que se le asignarán a una columna. Por ejemplo en una columna que guarde promedios de estudiantes se podría controlar que el rango de valores se encuentre entre 0 y 10.
• Integridad de entidad, referido a que una clave principal asegura la unicidad de cada registro.
• Integridad referencial, asegura las relaciones entre las claves primarias y claves foráneas, por ejemplo al agregar un pedido controlar que el código de producto que se especifica en el pedido exista en la tabla de productos.
• Reglas comerciales, las modificaciones en la base de datos deben cumplir con ciertos requisitos para poder mantener la información íntegra, por ejemplo en el caso anteriormente mencionado, el producto podría existir pero el stock encontrarse en 0, de tal manera que no debería registrarse el pedido.
SQL Server para poder forzar la integridad de datos propone dos modalidades:
• Integridad Declarativa
Se debe definir el criterio de consistencia como criterio de la definición del objeto.
Para utilizar integridad declarativa se puede emplear constraints, defaults y rules.
• Integridad por Procedimientos
Se pueden escribir procedimientos almacenados y desencadenadores (Triggers) para poder forzar la integridad de datos. Aunque las restricciones muy complejas podrían implementarse a través de lenguajes de programación y otras herramientas clientes.
En esta parte del capítulo revisaremos la integridad declarativa definiéndola a partir de los CONSTRAINTS.
Los CONSTRAINTS son un método estándar de forzar la integridad de datos, aseguran que los datos ingresados a las columnas sean válidos y que las relaciones entre las tablas se mantendrán.
Los constraints pueden definirse al momento de crear la tabla, aunque también es posible hacerlo después de que las tablas se han creado.
Los CONSTRAINTS se ejecutan antes que la información se registre en el log.

Definir restrincción PRIMARY KEY
ALTER TABLE <Nombre de la Tabla>
ADD CONSTRAINT <Nombre del Constraint>
PRIMARY KEY (columna1, ...)
GO
Un constraint de tipo PRIMARY KEY asegura la unicidad de cada fila en la tabla, sólo
se podrá definir uno por tabla y debemos recordar que no permite valores NULL.
En forma predeterminada crea un índice CLUSTERED.



Ejemplos:
Implementar un PRIMARY KEY Constraint que asegure la unicidad de cada cliente.
Use Ejemplo
GO
Select * From Clientes /* Note el orden de los códigos de clientes */
GO
ALTER TABLE Clientes
ADD CONSTRAINT PK_Cli_numclie
PRIMARY KEY (num_clie)
GO
Select * From Clientes /* Note que las filas aparecen ordenadas */
GO
Implementar un PRIMARY KEY Constraint que asegure la unicidad de cada representante de ventas.
Select * From RepVentas /* Note el orden de los códigos de empleados */
GO
ALTER TABLE RepVentas
ADD CONSTRAINT PK_num_clie
PRIMARY KEY (num_empl)
GO
Select * From RepVentas /* Note que las filas aparecen ordenadas */
GO
Implementar un PRIMARY KEY Constraint que asegure la unicidad de cada oficina.
Select * From Oficinas /* Note el orden de los códigos de oficinas */
GO
ALTER TABLE Oficinas
ADD CONSTRAINT PK_Oficina
PRIMARY KEY (Oficina)
GO
Select * From Oficinas /* Note que las filas aparecen ordenadas */
GO
Implementar un PRIMARY KEY Constraint que asegure la unicidad de cada pedido.
Select * From Pedidos /* Note el orden de los códigos de pedidos */
GO
ALTER TABLE Pedidos
ADD CONSTRAINT PK_num_pedido
PRIMARY KEY (num_pedido)
GO
Select * From Pedidos /* Note que las filas aparecen ordenadas */
GO
Implementar un PRIMARY KEY Constraint que asegure la unicidad de cada producto.
Select * From Productos /* Note el orden de los códigos de producto */
GO
ALTER TABLE Productos
ADD CONSTRAINT PK_fab_prod
PRIMARY KEY (id_fab, id_producto)
GO
Select * From Productos /* Note que las filas aparecen ordenadas */
GO







Definir FOREIGN KEY Constraint
ALTER TABLE <Nombre de la Tabla>
ADD CONSTRAINT <Nombre del Constraint>
FOREIGN KEY (columna1, ...)
REFERENCES Tabla(columna, …)
GO
Un foreign key constraint permjite forzar la integridad de datos manteniendo la relación entre una llave primaria y una llave secundaria. Para implementar este tipo de característica debemos recordar que el número de columnas y el tipo de datos referenciados en la cláusula FOREIGN KEY debe ser el mismo que el mencionado en la cláusula REFERENCES


Ejemplos:
Implementar un foreign key constraint que asegure que cada vez que asigne un representante de ventas a un cliente este exista.
USE Ejemplo
GO
ALTER TABLE Clientes
ADD CONSTRAINT FK_Cli_RepVentas
FOREIGN KEY (Rep_Clie)
REFERENCES RepVentas(Num_Empl)
GO
Implementar un foreign key constraint que asegure que cada vez que a un representante de ventas se le asigne un director, esté se encuentre registrado.
ALTER TABLE RepVentas
ADD CONSTRAINT FK_Dir_RepVentas
FOREIGN KEY (Director)
REFERENCES RepVentas(Num_Empl)
GO
Implementar un foreign key constraint que asegure que la oficina asignada al representante de ventas se encuentre en la tabla oficinas.
ALTER TABLE RepVentas
ADD CONSTRAINT FK_Ofi_Oficinas
FOREIGN KEY (oficina_rep)
REFERENCES Oficinas(Oficina)
GO
Implementar un foreign key constraint que verifique el código de director de la oficina.
ALTER TABLE Oficinas
ADD CONSTRAINT FK_Direc_RepVentas
FOREIGN KEY (dir)
REFERENCES RepVentas(num_empl)
GO
Implementar un foreign key constraint que verifique la existencia del representante de ventas que toma un ped
 
BANCO DE PREGUNTAS DE SQL SERVER 2000

CUESTIONARIO

1.- SQL Server 2000 está diseñado para trabajar con dos tipos de bases de datos cuales son:
• OLTP (OnLine Transaction Processing) • OLAP (OnLine Analytical Processing)
2.- SQL Server 2000 es un sistema de gestión de bases de datos relacionales a:
(SGDBR o RDBMS)
3.- Para que sirve SQL Server 2000 Database Engine
Sirve para el diseñado y para almacenar detalladamente los registros de las operaciones transaccionales (OLTP).
4.- Que nos da SQL Server 2000 Analysis Services
Nos da herramientas para consulta de información almacenada en data warehouses y data marts.
5.- Que nos brinda SQL Distributed Management Objects (SQL-DMO) API
Nos brinda un conjunto de objetos COM que encapsulan toda la funcionalidad administrativa del motor de datos.

6.- Que nos brinda Decision Support Objects (DSO) API
Nos brinda un conjunto de objetos COM que encapsulan las funcionalidades de los SQL Server 2000 Analysis Services

7.- A que se orienta Windows Management Instrumentation (WMI),
Este es una API orientada a objetos que permite administrar aplicaciones scripts para monitorear, configurar y controlar los servicios, recursos y aplicaciones de Windows.

8.- Cual es una ventaja del Data Transformation Services,
Que nos permite recuperar información de un origen de datos, y realizar transformaciones sencillas o complejas (como totalización de datos).

9.- Que nos provee el English Quero.
Nos provee de un sistema que permite a los usuarios plantear una pregunta en lenguaje natural en lugar de emplear un formato.

10.- En cuantas ediciones esta compuesto SQL Server 2000
SQL Server 2000 esta disponible en seis diferentes versiones además en cualquier edición se incluye el SQL Server 2000 Desktop Engine:

11.- Cuales son las ediciones de SQL Server 2000

• Enterprise
• Estándar
• Windows CE Edition
• Developer Edition
• Enterprise Evaluation Edition
• SQL Server 2000 Desktop Engine

12.- Que soporta la edición Enterprise
Soporta todas las características de SQL Server 2000. Esta edición es para empresas que implementan medianas y grandes bases de datos.

13.- Porque es ideal la edición Estándar
Es ideal para aplicaciones que necesiten brindar información a grupos de trabajos o departamentos dentro de una organización.

14.- Por que es empleado Windows CE Edition
Es empleado para almacenar información en dispositivos Windows CE. SQL Server 2000 CE es implementado como un conjunto de librerías (DLLs).

15.- Para que sirve el Data Access (RDA) característica de SQL Server CE
Sirve para Conectarse a instancias de SQL Server de diferentes plataformas

16.- Que soporta el Developer Edition
Soporta todas las características de SQL Server 2000, además de un conjunto de herramientas gráficas para la configuración de idiomas

17.- Que soporta el Enterprise Evaluation Edition,
Soporta todas las características de SQL Server 2000, a excepción de las herramientas gráficas para configuración del lenguaje.

18.- Porque es una version destruible SQL Server 2000 Desktop Engine
Es destruible por el motor de base de datos relacionales con el SQL Server 2000.

19.- Cuales son los requisitos para instalar Sql Server 2000






20.- Que es el MSSQL Server
Es el motor de base de datos, este es el componente que procesa todas las sentencias del Transact-SQL y administra todos los archivos.

21.- Cuales son las características del MSSQL Server
• La asignación de recursos del servidor entre múltiples usuarios concurrentes.
• Previene los problemas lógicos, como por ejemplo prevenir que los usuarios modifiquen la misma información al mismo tiempo.
• Asegura la consistencia e integridad de datos.

22.- Para que sirve SQL Server Agent
Sirve para trabajar junto al MSSQL Server para crear y administrar Alertas, Tareas (locales o multiserver) y Operadores.


23.- Que nos permite el MS DTC
Permite incluir múltiples orígenes de datos en una transacción, se encarga de coordinar y asegurar que las actualizaciones sobre todos los servidores sean permanentes

24.- Que tipo de servicio es Microsoft Search
Este es un servicio opcional y se encarga de realizar búsquedas sobre información tipo carácter creando índices para facilitar estas consultas.



25.- Para que usa Windows NT
Se usa cuando una cuenta o grupo de Windows NT controla el acceso a SQL Server, el cliente no provee usuario y contraseña

26.- Cuales son los pasos para modificar la autenticación

1 Haga clic derecho sobre el servidor, en el menú contextual haga clic sobre la opción Propiedades.

2 En la caja de diálogo haga clic sobre la ficha Seguridad, se presentará la siguiente pantalla:

27.- Que soportan las Bases de Datos de SQL Server
SQL Server soporta datos del sistema en donde se almacena información en la cual permite operar y administrar el sistema

28.- Para que sirve el Master
La base de datos master se compone de las tablas de sistema que realizan el seguimiento de la instalación del servidor y de todas las bases de datos que se creen posteriormente.

29.- Cual es el Objeto de una Base de Datos

El objetos de la base de datos es que contengan la información de los usuarios, estos datos están organizados en filas y columnas, similar al de una hoja de cálculo.

30.- Que es una vista
Una Vista es un objeto definido por una consulta.

31.- Que es un Procedimiento Almacenado
Es una serie de instrucciones SQL precompiladas las cuales organizadas lógicamente permiten llevar a cabo una operación transaccional o de control.

32.- Que es un Desencadenador
Es un Procedimiento Almacenado especial el cual se invoca automáticamente ante una operación de Insert, Update o Delete sobre una tabla.

33.- Que son los Valores Predeterminados
Son los que especifican el valor que SQL Server insertará en una columna cuando el usuario no ingresa un dato específico.

34.- Que son las Restricciones
Las restricciones son las que se asignan a las columnas de una tabla y son controladas automáticamente por SQL Server.

35.- Ponga 2 ventajas de las restricciones
• Se puede asociar múltiples constraints a una columna, y también se puede asociar un constraints a múltiples columnas.

• Se pueden crear los Restricciones al momento de crear la tabla CREATE TABLE.

36.- Que es LOG de transacciones
El LOG de transacciones archiva todas las modificaciones de los datos tal cual son ejecutados.

37.- Como se puede hacer una Creación de Base de Datos
Se puede crear una base de datos de distintas maneras, utilizando el Wizard, desde el Administrador Empresarial o a través del Query Analizer.



38.- Que es el ON


Especifica que los archivos de disco utilizados para almacenar la parte de datos (archivos de datos) se han definido explícitamente.

39.- Que es una primary

Especifica que la lista de archivos está asociada al grupo principal. Este grupo contiene todas las tablas del sistema de base de datos.

40.- Parque sirve el LOG ON
Sirve para que los archivos de registro de la base de datos (archivos de registro) se han definido explícitamente.



Escríbeme
Me interesa tu opinión