Está en la página 1de 32

Microsoft SQL Server 2000 - Programación e Implementación

Módulo 3: Introducción a
Microsoft SQL Server

Contenido

Introducción 3

Qué es SQL Server 4

Integración de SQL Server 12

Bases de Datos de SQL Server 17

Seguridad de SQL Server 27


Módulo 3: Introducción a SQL Server 2
Módulo 3: Introducción a SQL Server 3

Introducción

Este módulo proporciona una introducción de alto nivel a las plataformas, la arquitectura, los
componentes y la seguridad de Microsoft® SQL Server™ 2000.
También identifica y define la terminología y los conceptos fundamentales de SQL Server. Este
módulo explica la integración de SQL Server con Microsoft Windows® 2000 y otras
aplicaciones de servidor de Microsoft. Concluye con una introducción a las actividades de
administración e implementación de bases de datos de SQL Server, como así también las
opciones de diseño de aplicaciones para SQL Server.

Objetivos

 Describir SQL Server 2000 y las plataformas de sistemas operativos que acepta.
 Describir la integración de SQL Server con Windows 2000 y otras aplicaciones de servidor.
 Describir las bases de datos de SQL Server.
 Describir la seguridad de SQL Server.
Módulo 3: Introducción a SQL Server 4

Utilice SQL Server para administrar dos tipos de bases de datos: proceso de transacciones en
línea (OLTP, Online Transaction Processing) y proceso analítico en línea (OLAP, Online
Analytical Processing). Normalmente, los distintos clientes tienen acceso a las bases de datos
mediante la comunicación a través de una red.
Puede escalar SQL Server para que utilice bases de datos de varios terabytes de tamaño, e
incluso, servidores y equipos portátiles de pequeñas empresas. Puede escalar SQL Server
hasta varios servidores mediante Organización por clústeres de Windows 2000.
Módulo 3: Introducción a SQL Server 5

Introducción a SQL Server

Cliente SQL Server

Resultados
Resultados

Consulta OLTP
Consulta

OLAP

Aplicaciones cliente Sistema de administración de


bases de datos relacionales

Puede utilizar SQL Server para realizar procesamiento de transacciones, almacenar y analizar
datos y crear nuevas aplicaciones.
SQL Server es una familia de productos y tecnologías que cumple los requisitos de
almacenamiento de datos de los entornos OLTP y OLAP. SQL Server es un sistema de
administración de bases de datos relacionales (RDBMS, Relational Database Management
System) que:
 Administra el almacenamiento de datos para transacciones y análisis.
 Responde a solicitudes de aplicaciones cliente.
 Utiliza Transact-SQL, Lenguaje de marcado extensible (XML, Extensible Markup
Language), expresiones multidimensionales
(MDX, Multidimensional Expressions) u Objetos de administración distribuida de SQL (SQL-
DMO, SQL Distributed Management Objects) para enviar solicitudes entre un cliente y SQL
Server.

Sistema de administración de bases de datos relacionales

El Sistema de administración de bases de datos relacionales (RDBMS) de SQL Server es el


responsable de:

 Mantener las relaciones entre los datos de una base de datos.


 Asegurar que los datos estén correctamente almacenados y que no se infrinjan las
reglas que definen las relaciones entre los datos.
 Recuperar todos los datos hasta un punto de coherencia garantizada, en caso de que
se produzca un error del sistema.
Módulo 3: Introducción a SQL Server 6

Modelos de almacenamiento de datos

SQL Server administra bases de datos OLTP y OLAP

Bases de datos OLTP En una base de datos OLTP, los datos suelen estar organizados en
tablas relacionales para reducir la información redundante y aumentar la velocidad de las
actualizaciones. SQL Server permite que un gran número de usuarios realice transacciones y
modifique simultáneamente datos en tiempo real en bases de datos OLTP. Algunos ejemplos
de bases de datos OLTP serían sistemas de transacciones bancarias y de billetes de avión.

Bases de datos OLAP La tecnología OLAP organiza y resume grandes cantidades de datos,
de manera que un analista pueda evaluar los datos rápidamente en tiempo real. Analysis
Server de SQL Server 2000 organiza estos datos para permitir una amplia gama de soluciones
empresariales, desde informes y análisis corporativos hasta modelado de datos y ayuda a la
toma de decisiones.

Aplicaciones cliente

Los usuarios no tienen acceso a SQL Server y Analysis Server directamente, sino que utilizan
distintas aplicaciones cliente escritas para tener acceso a los datos. Estas aplicaciones tienen
acceso a SQL Server mediante:

Transact-SQL Este lenguaje de consulta, es una versión del Lenguaje de consulta


estructurado (SQL, Structured Query Language). Es el principal lenguaje de consulta y
programación de bases de datos que SQL Server utiliza.

XML Este formato devuelve datos provenientes de consultas y procedimientos almacenados


mediante direcciones URL o plantillas a través del Protocolo de transferencia de hipertexto
(HTTP, Hypertext Transfer Protocol). También puede utilizar XML para insertar, eliminar y
actualizar valores en una base de datos.

MDX La sintaxis de MDX define objetos multidimensionales y consultas, y manipula datos


multidimensionales en bases de datos OLAP.

API OLE DB y ODBC Las aplicaciones cliente utilizan interfaces de programación de


aplicaciones (API, Application Programming Interface) OLE DB y Conectividad abierta de bases
de datos (ODBC, Open Database Connectivity) para enviar comandos a una base de datos.
Los comandos que envía a través de éstas API utilizan el lenguaje Transact-SQL.

ActiveX Data Objects y ActiveX Data Objects (Multidimensional)


Microsoft ActiveX® Data Objects (ADO) y ActiveX Data Objects (Multidimensional) (ADO MD)
empaquetan OLE DB para su uso en lenguajes como Microsoft Visual Basic®, Visual Basic
para Aplicaciones, páginas Active Server y Microsoft Internet Explorer Visual Basic Scripting.
ADO se utiliza para tener acceso a los datos de bases de datos OLTP. ADO MD se utiliza para
tener acceso a los datos de cubos de datos de Analysis Server.

English Query Esta aplicación proporciona una API de Automatización que permite a los
usuarios resolver preguntas en lenguaje natural, en lugar de escribir complejas instrucciones
Transact-SQL o MDX acerca de la información contenida en una base de datos. Esta aplicación
sólo funciona en inglés. Por ejemplo, los usuarios pueden hacer la pregunta “What are the total
sales for Region 5?” (¿cuáles son las ventas totales de la región 5?).
Módulo 3: Introducción a SQL Server 7

Componentes cliente-servidor

Aplicación
Aplicación cliente
cliente SQL
SQL Server
Server
Bibliotecas
Bibliotecas de
de red
red
del
del servidor
servidor
API
API de
de base
base de
de datos
datos
(OLE
(OLE DB,
DB, ODBC,
ODBC,
biblioteca Servicios
Servicios abiertos
abiertos
biblioteca de
de base
base de
de datos)
datos)
de
de datos
datos

Biblioteca
Biblioteca de
de red
red del
del cliente
cliente
Motor
Motor relacional
relacional
Cliente Servidor

Motor
Motor de
de
almacenamiento
almacenamiento

Procesador
Procesador

Memoria
Memoria Base de
datos local

SQL Server consta de componentes cliente y servidor que almacenan y recuperan datos. SQL
Server utiliza una arquitectura de comunicación por capas para aislar las aplicaciones de la red
y los protocolos subyacentes.
Esta arquitectura permite distribuir la misma aplicación en diferentes entornos de red.

Arquitectura cliente-servidor

SQL Server utiliza la arquitectura cliente-servidor para separar la carga de trabajo en tareas
que se ejecutan en equipos servidores y tareas que se ejecutan en equipos cliente:

 El cliente es el responsable de la lógica empresarial y de presentar los datos al usuario.


Normalmente, el cliente se ejecuta en uno o varios equipos, pero también puede
ejecutarse en el equipo servidor junto con SQL Server.

 SQL Server administra las bases de datos y asigna los recursos disponibles del
servidor (como la memoria, el ancho de banda de la red y las operaciones de disco)
entre las distintas solicitudes.

La arquitectura cliente-servidor permite diseñar y distribuir aplicaciones para mejorar una gran
variedad de entornos. Las interfaces de programación de los clientes proporcionan los medios
para que las aplicaciones se ejecuten en equipos cliente independientes y se comuniquen con
el servidor a través de la red.
Módulo 3: Introducción a SQL Server 8

Componentes de cliente

Los componentes de cliente de la arquitectura de comunicación incluyen:

Aplicación cliente Una aplicación cliente envía instrucciones Transact-SQL y recibe conjuntos
de resultados. Para desarrollar una aplicación se utiliza una API de base de datos. La
aplicación no tiene conocimiento de los protocolos de red subyacentes que se utilizan para
comunicarse con SQL Server.

API de base de datos La API de base de datos (OLE DB, ODBC) utiliza un proveedor, un
controlador o un archivo DLL para pasar instrucciones Transact-SQL y recibir conjuntos de
resultados. Es una interfaz que una aplicación utiliza para enviar solicitudes a SQL Server y
procesar los resultados devueltos por SQL Server.

Biblioteca de red del cliente Una biblioteca de red del cliente administra las conexiones de
red y el enrutamiento en un cliente. Es un componente de software para comunicaciones que
empaqueta las solicitudes a la base de datos y los resultados para transmitirlos a través del
protocolo de red adecuado.

Componentes de servidor

Los componentes de servidor de la arquitectura de comunicación incluyen:

Bibliotecas de red del servidor SQL Server puede supervisar varias bibliotecas de red
simultáneamente. La biblioteca de red del cliente debe coincidir con alguna de las bibliotecas
de red del servidor para que la comunicación sea correcta. SQL Server acepta protocolos de
red como TCP/IP, Canalizaciones con nombre, NWLink, IPX/SPX, VIA ServerNet II SAN, VIA
GigaNet SAN, Banyan VINES y AppleTalk.

Servicios abiertos de datos Servicios abiertos de datos hace que los servicios de datos
aparezcan ante un cliente como SQL Server al proporcionar una interfaz de red para el
tratamiento de los procesos de protocolo de red y las rutinas de servidor. Se trata de un
componente de SQL Server que controla las conexiones de red al pasar las solicitudes de los
clientes a SQL Server para su procesamiento, y devolver los resultados y las respuestas a los
clientes de SQL Server. Servicios abiertos de datos escucha automáticamente en todas
las bibliotecas de red que estén instaladas en el servidor.

Motor relacional El motor relacional analiza las instrucciones Transact-SQL, optimiza y ejecuta
planes de ejecución, procesa el Lenguaje de definición de datos (DDL, Data Definition
Language) y otras instrucciones, y aplica la seguridad.

Motor de almacenamiento El motor de almacenamiento administra archivos de base de datos


y el uso del espacio en los archivos. Crea y lee datos a partir de páginas físicas, administra
búferes de datos y entrada/salida (E/S) física, controla la simultaneidad, realiza operaciones de
registro y recuperación, e implementa funciones de aplicación como Comprobador de
coherencia de la base de datos (DBCC, Database Consistency Checker), copia de seguridad y
restauración.
Módulo 3: Introducción a SQL Server 9

Proceso de comunicación entre el cliente y el servidor

1 Aplicación
Aplicación cliente
cliente SQL
SQL Server
Server
Consulta
Consulta Resultado
Resultado Bibliotecas
Bibliotecas de
de red
red
API del
del servidor
servidor
API de
de base
base de
dedatos
datos
(OLE
(OLE DB,
DB, ODBC,
ODBC,
biblioteca
biblioteca de
de base
base Servicios
Servicios abiertos
abiertos 5
de
de datos)
datos) 3 de
de datos
datos
Consulta
Consulta Resultado
Resultado

2 Biblioteca
Biblioteca de
de red
red Motor
Motor
del
del cliente
cliente relacional
relacional
Cliente Servidor
4
Motor
Motor de
de
almacenamiento
almacenamiento

Procesador
Procesador

Memoria
Memoria Base de
datos local

Los clientes y los servidores se comunican normalmente a través de una red.


La secuencia siguiente utiliza una consulta para ilustrar el proceso normal de
comunicación entre el cliente y el servidor mediante una API de base de datos:

1. Una aplicación cliente envía una consulta. El cliente llama a la API de base de datos y
pasa la consulta. La API de base de datos utiliza un proveedor, un controlador o un
archivo DLL para encapsular la consulta en uno o más paquetes Flujo de datos tabular
(TDS, Tabular Data Stream) y pasarlos a la biblioteca de red del cliente.
2. La biblioteca de red del cliente empaqueta los paquetes TDS en paquetes de protocolo
de red. La biblioteca de red del cliente llama a una API de Comunicación entre
procesos (IPC, Interprocess Communication) de Windows para enviar los paquetes de
protocolo de red a una biblioteca de red del servidor mediante la pila de protocolos de
red del sistema operativo. La biblioteca de red del servidor adecuada extrae los
paquetes TDS de los paquetes de protocolo de red y los pasa a Servicios abiertos de
datos.
3. Servicios abiertos de datos extrae la consulta de los paquetes TDS y la pasa al motor
relacional. Entonces, el motor relacional compila la consulta en un plan de ejecución
optimizado y ejecuta el plan de ejecución. El motor relacional se comunica con el motor
de almacenamiento mediante la interfaz OLE DB.
4. El motor de almacenamiento transfiere datos desde una base de datos a búferes de
datos y, después, pasa al motor relacional, conjuntos de filas que contienen datos. El
motor relacional combina los conjuntos de filas para dar lugar al conjunto de resultados
final y lo pasa a Servicios abiertos de datos.
5. Servicios abiertos de datos empaqueta el conjunto de resultados y lo devuelve a la
aplicación cliente mediante una biblioteca de red del servidor, la pila de protocolos de
red, la biblioteca de red del cliente y la API de base de datos. El conjunto de resultados
también se puede devolver en formato XML.
Módulo 3: Introducción a SQL Server 10

Servicios de SQL Server

 Administración de datos
Servicio  Proceso de transacciones
MSSQLServer y consultas
 Integridad de datos

 Trabajos
Servicio
SQLServerAgent  Alertas
 Operadores

Coordinador de  Administración de
transacciones transacciones distribuidas
distribuidas de Microsoft
Servidor
 Catálogos de texto
Microsoft Search  Índices de texto

Los servicios de SQL Server incluyen MSSQLServer, SQLServerAgent, Coordinador de


transacciones distribuidas de Microsoft (MS DTC) y Microsoft Search. Aunque estos servicios
de SQL Server suelen ejecutarse como servicios en Windows 2000, también se pueden
ejecutar como aplicaciones.

Cuatro servicios de SQL Server

SQL Server incluye cuatro servicios, que se instalan de manera predeterminada con una
instalación nueva: MSSQLServer, SQLServerAgent, Coordinador de transacciones distribuidas
de Microsoft y Microsoft Search.

Servicio MSSQLServer
El servicio MSSQLServer es el motor de base de datos. Se trata del componente que procesa
todas las instrucciones Transact-SQL y administra todos los archivos que forman las bases de
datos del servidor. El servicio MSSQLServer:

 Asigna los recursos del equipo entre varios usuarios simultáneos.


 Impide problemas lógicos, como la sincronización de solicitudes de usuarios que
desean actualizar los mismos datos al mismo tiempo.
 Asegura la coherencia y la integridad de los datos.
Módulo 3: Introducción a SQL Server 11

Servicio SQLServerAgent

El servicio SQLServerAgent funciona junto con SQL Server para crear y administrar alertas,
trabajos locales o multiservidor y operadores. Tenga en cuenta lo siguiente acerca del servicio
SQLServerAgent:

 Las alertas proporcionan información acerca del estado de un proceso, por ejemplo,
cuando un trabajo ha terminado o cuando se produce un error.

 El servicio SQLServerAgent incluye un motor de creación y programación de trabajos


que automatiza las tareas.

 El servicio SQLServerAgent puede enviar mensajes de correo electrónico, mensajes de


localización a un operador o iniciar otra aplicación cuando se produce una alerta. Por
ejemplo, puede establecer que se active una alerta cuando un registro de bases de
datos o de transacciones esté casi lleno o cuando una copia de seguridad de una base
de datos termine correctamente.

Coordinador de transacciones distribuidas de Microsoft

MS DTC permite que los clientes incluyan distintos orígenes de datos en una misma
transacción. MS DTC coordina la correcta ejecución de las transacciones distribuidas para
asegurar que todas las actualizaciones de todos los servidores sean definitivas; o bien, en caso
de producirse errores, que todas las modificaciones queden canceladas.

Microsoft Search

Microsoft Search es un motor de texto que se ejecuta como un servicio en Windows 2000. La
compatibilidad de texto implica la capacidad de emitir consultas sobre datos de caracteres, la
creación y el mantenimiento de los índices que facilitan estas consultas.

Múltiples instancias de SQL Server

Es posible ejecutar simultáneamente varias instancias de SQL Server en el mismo equipo.

Cada instancia de SQL Server tiene su propio conjunto de bases de datos del sistema y de
usuario que no se comparten entre las distintas instancias. Cada instancia funciona como si
estuviera en un servidor independiente. Las aplicaciones pueden conectarse a cada instancia
de motor de base de datos de SQL Server de un equipo casi de la misma forma en que se
conectan a los motores de base de datos de SQL Server que se ejecutan en distintos equipos.

Cuando sólo especifica el nombre del equipo, está trabajando con la instancia predeterminada.
Debe especificar nombreEquipo\nombreInstancia para conectarse a una instancia con nombre.
Módulo 3: Introducción a SQL Server 12

SQL Server incluye componentes de cliente y de servidor que se integran con distintos
sistemas operativos de Microsoft, incluido Windows 2000, y otras aplicaciones de servidor de
Microsoft. Los exploradores de Internet y las aplicaciones cliente de otros fabricantes que se
ejecutan en diversos sistemas operativos también pueden tener acceso a SQL Server .
Módulo 3: Introducción a SQL Server 13

Integración de SQL Server con sistemas operativos

Windows Me, Otros Explora-


Windows 2000 Windows NT 98 y 95 fabricantes dores

Internet
Internet

Cliente
Servidor

Windows 2000 Windows NT Windows Me Windows 98 Windows CE

SQL Server incluye componentes de cliente y de servidor que se ejecutan en diversos sistemas
operativos.

Componentes de cliente

Los componentes de cliente de todas las ediciones de SQL Server 2000, excepto SQL Server
Windows CE Edition, se ejecutan en todas las ediciones de Windows 2000, versiones de
Microsoft Windows NT®, en Microsoft Windows Millennium Edition (Me), Microsoft Windows 98
y Microsoft Windows 95.
Todos los componentes de cliente de la edición SQL Server 2000 CE se ejecutan
exclusivamente en el sistema operativo Windows CE.

Componentes de servidor

Las diversas ediciones de SQL Server le permiten funcionar en todas las ediciones de Windows
2000, versiones de Windows NT, Windows Me, Windows 98 y Windows CE. Algunas versiones
de los sistemas operativos y ediciones de SQL Server limitan los componentes de servidor.
Para todas las ediciones de SQL Server 2000 es un requisito mínimo la instalación de Microsoft
Windows NT Server 4.0, Service Pack 5 (SP5) o posterior. Sólo los componentes de servidor,
como el motor de base de datos y Analysis Server, están limitados a determinadas versiones
de los sistemas operativos. Por ejemplo, aunque el motor de base de datos para Microsoft SQL
Server 2000 Enterprise Edition no funciona en Microsoft Windows 2000 Professional, Microsoft
Windows NT Workstation, Windows Me o Windows 98, puede utilizar el disco compacto de SQL
Server 2000 Enterprise Edition para instalar el software de cliente en cualquiera de estos
sistemas operativos. Windows NT 4.0 Terminal Server no es compatible con SQL Server 2000.

Exploradores de Internet y aplicaciones de otros


fabricantes

Los exploradores de Internet y las aplicaciones cliente de otros fabricantes que se ejecutan en
diversos sistemas operativos también pueden tener acceso a SQL Server.
Módulo 3: Introducción a SQL Server 14

Integración de SQL Server con Windows 2000

 Active Directory
 Seguridad
 Compatibilidad con multiprocesador
 Visor de sucesos de Microsoft
 Servicios de componentes de Windows 2000
 Monitor de sistema de Windows 2000
 Servicios de Microsoft Internet Information Server
 Organización por clústeres de Windows

SQL Server está totalmente integrado con Windows 2000 y aprovecha muchas de sus
características.

Active Directory

Los servidores y sus atributos se registran automáticamente en el servicio de directorio Active


Directory™ al iniciarse el servidor. Los usuarios pueden buscar y localizar un servidor
determinado mediante Active Directory Search. Por ejemplo, un usuario podría utilizar el
directorio para buscar todos los servidores en los que se ejecutan una o más instancias de SQL
Server con un nombre determinado de base de datos instalado.

Seguridad

SQL Server está integrado con el sistema de seguridad de Windows 2000. Esta integración
permite que un único nombre de usuario y contraseña tenga acceso a SQL Server y a Windows
2000. SQL Server también utiliza las características de cifrado de Windows 2000 para la
seguridad de la red, incluida la compatibilidad con Kerberos. SQL Server ofrece su propia
seguridad a los clientes que necesitan acceso a SQL Server sin autenticación por parte de
Windows 2000.

Compatibilidad con multiprocesador

SQL Server admite las capacidades de multiprocesamiento simétrico (SMP, Symmetric


Multiprocessing) de Windows 2000. SQL Server aprovecha automáticamente las ventajas de
los procesadores adicionales que se agregan al equipo servidor.

Visor de sucesos de Microsoft

SQL Server escribe mensajes en los registros de sucesos de aplicación, seguridad y sistema
de Windows 2000, lo que proporciona un mecanismo coherente para examinar y efectuar el
seguimiento de los problemas.
Módulo 3: Introducción a SQL Server 15

Servicios de componentes de Windows 2000 Servicios de componentes se basa en las


extensiones del Modelo de objetos componentes (COM, Component Object Model) y Microsoft
Transaction Server. Ofrece subprocesamiento mejorado, mayor seguridad, administración de
transacciones, agrupamiento de objetos, componentes en cola, y administración y
empaquetado de aplicaciones. Por ejemplo, los programadores de software pueden utilizar
Servicios de componentes para configurar visualmente el comportamiento rutinario de los
componentes y las aplicaciones, como la seguridad y la participación en transacciones, como
también para integrar componentes en aplicaciones COM+.

Monitor de sistema de Windows 2000 SQL Server envía medidas de rendimiento al Monitor
de sistema de Windows 2000, lo que permite supervisar el rendimiento del sistema de SQL
Server.

Servicios de Microsoft Internet Information Server SQL Server utiliza Servicios de Microsoft
Internet Information Server (IIS) de manera que los exploradores de Internet puedan tener
acceso a una base de datos de SQL Server mediante el protocolo HTTP.

Organización por clústeres de Windows Organización por clústeres de Windows, un


componente de Windows 2000 Advanced Server, acepta la conexión de dos servidores, o
nodos, en un clúster para obtener mayor disponibilidad y mejor administración de los datos y
las aplicaciones. SQL Server opera junto con Organización por clústeres de Windows para
cambiar automáticamente al nodo secundario si se produce un error en el nodo principal.
Módulo 3: Introducción a SQL Server 16

Integración de SQL Server con otras aplicaciones de


servidor de Microsoft
Microsoft Windows 2000 Server
con Solution Accelerator (SA)
Internet para Internet Storefront

Microsoft Systems SQL Server Microsoft


Management Server Exchange
Server

Host de IBM

Microsoft Host Datos y


Integration Server 2000 aplicaciones

SQL Server se integra bien con otras aplicaciones de servidor de Microsoft.


Microsoft ofrece un grupo de aplicaciones de servidor que funcionan juntas
para ayudarle a crear soluciones empresariales. En la tabla siguiente se
describen algunas de las aplicaciones de servidor más utilizadas que funcionan
con SQL Server o lo utilizan.

Aplicación de servidor Descripción

Microsoft Windows 2000 Proporciona conectividad con Internet segura, rápida y


Server con Solution fácil de administrar. Incluye un servidor de seguridad
Accelerator (SA) para empresarial extensible de múltiples niveles, y una
Internet Storefront caché de Web escalable de alto rendimiento.

Microsoft Exchange Server Permite que SQL Server envíe mensajes de correo
electrónico a través de Exchange Server u otros
proveedores compatibles con la Interfaz de
programación de aplicaciones de mensajería (MAPI,
Messaging Application Programming Interface).

SQL Server puede enviar mensajes cuando se produce


un error o cuando una tarea programada (como la
copia de seguridad de una base de datos) termina
correctamente o con error. También puede responder a
consultas incrustadas en mensajes.

Microsoft Host Integration Vincula entornos de IBM que ejecutan el protocolo


Server 2000 Arquitectura de redes de sistemas (SNA, Systems
Network Architecture) con redes basadas en PC.

Con Microsoft Host Integration Server 2000, puede


integrar SQL Server con aplicaciones y datos de
grandes sistemas o sistemas AS/400 de IBM.

Microsoft Systems Management Administra el software, el hardware y el inventario de


Server los equipos, y utiliza SQL Server para almacenar sus
bases de datos.
Módulo 3: Introducción a SQL Server 17

La comprensión de la estructura de las bases de datos de SQL Server le ayudará


a desarrollar e implementar la base de datos de forma eficiente.
Módulo 3: Introducción a SQL Server 18

Tipos de bases de datos

Bases de datos del sistema


master
model tempdb msdb distribution

pubs Northwind User1

Bases de datos de usuario

Todos los servidores SQL Server tienen dos tipos de bases de datos: bases de datos del
sistema y bases de datos de usuario. Las bases de datos del sistema almacenan información
acerca de SQL Server de forma global. SQL Server utiliza las bases de datos del sistema para
operar y administrar el sistema. Las bases de datos de usuario son aquellas que crean los
usuarios.

Cuando se instala SQL Server, el programa de instalación crea bases de datos del sistema y
bases de datos de usuario de ejemplo. La base de datos Distribution se instala al configurar
SQL Server para realizar actividades de duplicación. En la tabla siguiente se describe cada
base de datos.

Base de datos Descripción

master Controla las bases de datos de usuario y el


funcionamiento de SQL Server de forma global al
realizar un seguimiento de información como las
cuentas de usuario, las variables de entorno
configurables y los mensajes de error del sistema.
model Proporciona una plantilla o un prototipo para las nuevas
bases de datos de usuario.
tempdb Proporciona un área de almacenamiento para tablas
temporales y otras necesidades de almacenamiento
temporal.
msdb Ofrece un área de almacenamiento para información de
programación e historial de trabajos.
distribution Almacena los datos de historial y de las transacciones
que se utilizan en la duplicación.
pubs Proporciona una base de datos de ejemplo como
herramienta de aprendizaje.
Northwind Proporciona una base de datos de ejemplo como
herramienta de aprendizaje.
User1 Identifica una base de datos definida por el usuario.
Múltiples instancias.
Módulo 3: Introducción a SQL Server 19

Objetos de base de datos


Índice agrupado
Anderson Procedimiento
Anderson
PK Barr FK almacenado
almacenado Desencade-
Desencade-
... UpdatePhone
UpdatePhone nador
nador
EmpNum LastName FirstName CtryCode Extension LastMod
integer longstring varchar(20) char(2) char(6) longstring

10191 Labrie Angela FR x19891 \HR\KarlD

10192 Labrie Eva FR x19433 \HR\KarlD

10202 Martin Jose SP x21467 \HR\AmyL

EmployeePhoneView Comprobar
Comprobar
SELECT
SELECT lastname,
lastname, firstname,
firstname, extension
extension x#####
x#####
FROM
FROM employee
employee

Una base de datos es una colección de datos, tablas y otros objetos. Los objetos de base de
datos le ayudan a estructurar los datos y a definir los mecanismos que mantienen la integridad
de los datos. En la tabla siguiente se describen los objetos de base de datos de SQL Server.

Objeto de base de datos Descripción


Tabla Define un conjunto de filas que tienen
columnas asociadas. Tipo de datos: Define los
valores permitidos para los datos de una
columna o variable.

SQL Server proporciona tipos de datos del


sistema. Los usuarios crean tipos de datos
definidos por el usuario.

Restricción Define reglas relativas a los valores permitidos


en las columnas y es el mecanismo estándar
para exigir la integridad de los datos.

Valor predeterminado Define un valor que se almacena en una


columna si no se especifica explícitamente
ningún otro valor.

Regla Contiene información que define los valores


válidos que se pueden almacenar en una
columna o en un tipo de datos.

Índice Es una estructura de almacenamiento que


proporciona acceso rápido para la recuperación
de los datos y puede exigir la integridad de los
datos.

En un índice agrupado, el orden lógico o indizado de los valores de la clave, es el mismo que el
orden físico o de almacenamiento, de las filas correspondientes existentes en la tabla. En un
índice no agrupado, el orden lógico del índice no coincide con el orden físico en el que están
almacenadas las filas de la tabla.
Módulo 3: Introducción a SQL Server 20

Objeto de base de datos Descripción


Vista Proporciona una forma de ver los datos de una
o varias tablas o vistas de una base de datos.

Función Definida por el usuario puede devolver un valor


escalar o una tabla. Las funciones se utilizan
para encapsular la lógica que se realiza con
frecuencia. Cualquier código que deba realizar
la lógica incorporada a una función puede
llamar a la función, en lugar de tener que repetir
toda la lógica de la función.

Procedimiento almacenado Es una colección con nombre de instrucciones


Transact-SQL compiladas previamente que se
ejecutan juntas.

Desencadenador Es una forma especial de procedimiento


almacenado que se ejecuta automáticamente
cuando un usuario modifica los datos de una
tabla o una vista.
Módulo 3: Introducción a SQL Server 21

Referencia a los objetos de SQL Server

 Nombres completos
servidor.baseDeDatos.propietario.objeto
 Nombres parcialmente especificados
 El servidor predeterminado es la instancia actual del
servidor local
 La base de datos predeterminada es la base de datos
actual
 El propietario predeterminado es el nombre de usuario de
la base de datos
CREATE
CREATE TABLE
TABLE Northwind.dbo.OrderHistory
Northwind.dbo.OrderHistory
..
..
..

Puede hacer referencia a los objetos de SQL Server de varias maneras. Puede especificar el
nombre completo del objeto (su nombre completo) o especificar sólo una parte del nombre del
objeto y permitir que SQL Server determine el resto del nombre a partir del contexto de trabajo.

Nombres completos

El nombre completo de un objeto de SQL Server incluye cuatro identificadores: el nombre del
servidor, el nombre de la base de datos, el nombre del propietario y el nombre del objeto. Estos
identificadores tienen el formato siguiente:

servidor.baseDeDatos.propietario.objeto

Los nombres de objetos que especifican estas cuatro partes se conocen como nombres
completos. Todos los objetos creados en SQL Server deben tener un nombre único completo.
Por ejemplo, puede tener dos tablas denominadas Orders en la misma base de datos siempre
y cuando sus propietarios sean diferentes. Además, los nombres de las columnas tienen que
ser únicos en cada tabla o cada vista.
Módulo 3: Introducción a SQL Server 22

Nombres parcialmente especificados

Cuando se hace referencia a un objeto, no siempre es necesario especificar el servidor, la base


de datos y el propietario. Es posible omitir los identificadores intermedios si se indican sus
posiciones mediante puntos.

La lista siguiente contiene formatos válidos para los nombres de objetos:

servidor.baseDeDatos.propietario.objeto
baseDeDatos.propietario.objeto
baseDeDatos..objeto
propietario.objeto
objeto

Cuando crea un objeto y no especifica las distintas partes del nombre, SQL Server utiliza los
siguientes valores predeterminados:

 El servidor predeterminado es la instancia actual del servidor local.

 La base de datos predeterminada es la base de datos actual.

 El propietario predeterminado es el nombre de usuario de la base de datos


especificada, asociado con el Id. de inicio de sesión de la conexión actual.

Un usuario que sea miembro de una función puede especificar explícitamente la función como
propietario del objeto. Un usuario que sea miembro de las funciones db_owner o
db_ddladmin en una base de datos debe especificar la cuenta de usuario dbo como
propietario de un objeto. Éste es el procedimiento que se recomienda.

Ejemplo En el ejemplo siguiente se crea una tabla OrderHistory en la base de


datos Northwind.

CREATE TABLE Northwind.dbo.OrderHistory


(OrderID int,
ProductID int,
UnitPrice money,
Quantity int,
Discount decimal)

La mayor parte de las referencias a objetos utilizan nombres con tres partes y emplean el
servidor local como predeterminado. Los nombres de cuatro partes suelen utilizarse en
consultas distribuidas o en llamadas a procedimientos remotos almacenados.

SQL Server admite una convención de nomenclatura de tres partes cuando se hace referencia
al servidor actual. El estándar SQL-92 también acepta una convención de nomenclatura de tres
partes. Los términos empleados en ambas convenciones de nomenclatura son diferentes. En la
tabla siguiente se describen las relaciones existentes entre los nombres de SQL Server y los
nombres del estándar SQL-92.

Nombre de SQL Server Nombre de SQL-92


Base de datos catálogo
Propietario esquema
Objeto objeto
Módulo 3: Introducción a SQL Server 23

Tablas del sistema

 Las tablas del sistema almacenan información


(metadatos) acerca del sistema y los objetos de las
bases de datos
 El catálogo de la base de datos almacena metadatos
acerca de una base de datos específica
 El catálogo del sistema almacena metadatos acerca de
todo el sistema y todas las demás bases de datos

SQL Server almacena información, conocida como metadatos, acerca del sistema y los objetos
de las bases de datos para una instancia de SQL Server. Los metadatos son información
acerca de los datos.

Los metadatos incluyen información acerca de las propiedades de los datos, como el tipo de
datos de una columna (numérico, texto, etc.) o la longitud de una columna. También pueden
contener información acerca de la estructura de los datos o información que especifica el
diseño de los objetos.

Tablas del sistema La información acerca de los datos de las tablas del sistema incluye
información de configuración y definiciones de todas las bases de datos y los objetos de base
de datos existentes en la instancia de SQL Server. Los usuarios no deben modificar
directamente ninguna tabla del sistema.

Catálogo de la base de datos Cada base de datos (incluida la base de datos master)
contiene una colección de tablas del sistema que almacenan metadatos acerca de esa base de
datos específica. Esta colección de tablas del sistema es el catálogo de la base de datos.
Contiene la definición de todos los objetos de la base de datos, así como los permisos.
Módulo 3: Introducción a SQL Server 24

Catálogo del sistema El catálogo del sistema, que sólo se encuentra en la base de datos
master, es una colección de tablas del sistema que almacena metadatos acerca de todo el
sistema y todas las demás bases de datos.

La mayor parte de las tablas del sistema comienzan con el prefijo sys. En la tabla siguiente se
identifican varias tablas del sistema y vistas utilizadas frecuentemente.

Tabla del sistema Base de datos Función

syslogins master Contiene una fila por cada cuenta de


inicio de sesión que puede conectarse
a SQL Server.

sysmessages master Contiene una fila por cada error o


advertencia del sistema que SQL
Server puede devolver.

sysdatabases master Contiene una fila por cada base de


datos de un servidor SQL Server.

sysusers Todas Contiene una fila por cada usuario de


Windows 2000, grupo de Windows
2000, usuario de SQL Server o función
de SQL Server de una base de datos.

sysobjects Todas Contiene una fila por cada objeto de


una base de datos.
Módulo 3: Introducción a SQL Server 25

Recuperación de metadatos

 Procedimientos almacenados de sistema

EXEC
EXEC sp_help
sp_help Employees
Employees

 Funciones del sistema y de metadatos

SELECT
SELECT USER_NAME(10)
USER_NAME(10)

 Vistas de esquema de información

SELECT
SELECT ** FROM
FROM INFORMATION_SCHEMA.TABLES
INFORMATION_SCHEMA.TABLES

Cuando escriba aplicaciones que recuperen metadatos de las tablas del sistema, debe utilizar
procedimientos almacenados del sistema, funciones del sistema o vistas del esquema de
información proporcionadas por el sistema.

Puede consultar una tabla del sistema de la misma forma que cualquier otra tabla de la base de
datos para recuperar información acerca del sistema. Sin embargo, no debe escribir secuencias
de comandos que consulten directamente tablas del sistema, ya que si las tablas del sistema
se modifican en versiones posteriores del producto, puede que sus secuencias de comandos
no funcionen o proporcionen información imprecisa.

Procedimientos almacenados de sistema

Para facilitar la recopilación de información acerca del estado del servidor y de los objetos de
base de datos, SQL Server proporciona una colección de consultas predefinidas denominadas
procedimientos almacenados de sistema.

Los nombres de la mayor parte de los procedimientos almacenados de sistema empiezan con
el prefijo sp_. En la tabla siguiente se describen tres procedimientos almacenados de sistema
comúnmente utilizados.

Procedimiento almacenado
de sistema Descripción

sp_help [objeto] Proporciona información acerca del objeto de


base de datos especificado.

sp_helpdb [baseDeDatos] Proporciona información acerca de la base de


datos especificada.

sp_helpindex [tabla] Proporciona información acerca del índice de la


tabla especificada.

Ejemplo En el ejemplo siguiente se ejecuta un procedimiento almacenado de


sistema para obtener información acerca de la tabla Employees.

EXEC sp_help Employees


Módulo 3: Introducción a SQL Server 26

Funciones del sistema y de metadatos

Las funciones del sistema y de metadatos proporcionan un método para consultar tablas del
sistema desde instrucciones Transact-SQL. En la tabla siguiente se describen funciones del
sistema comúnmente utilizadas y la correspondiente información que devuelven.

Función del sistema Parámetro pasado Resultados

DB_ID Nombre Devuelve el Id. de la base de


datos.
USER_NAME Identificador Devuelve el nombre del usuario
COL_LENGTH Columna Devuelve el ancho de la
columna.
STATS_DATE Índice Devuelve la fecha en que se
actualizaron por última vez las
estadísticas del índice
especificado.
DATALENGTH Tipo de datos Devuelve la longitud actual de
una expresión de cualquier tipo
de datos.
Ejemplo 1

El siguiente ejemplo utiliza una función del sistema en una


consulta para recuperar el nombre del usuario cuyo Id. de
usuario es 10.

SELECT USER_NAME(10)

Vistas del esquema de información

Las vistas del esquema de información proporcionan una vista interna, independiente de las
tablas del sistema, de los metadatos de SQL Server. Estas vistas cumplen la definición del
estándar ANSI SQL para el esquema de información.

Todas las vistas del esquema de información contienen metadatos para todos los objetos de
datos almacenados en una base de datos específica. En la tabla siguiente se describen vistas
del esquema de información comúnmente utilizadas.

Vista del esquema de información Descripción

INFORMATION_SCHEMA.TABLES Lista de las tablas de una base de


datos.

INFORMATION_SCHEMA.COLUMNS Información acerca de las columnas


definidas en la base de datos.

INFORMATION_SCHEMA.TABLES_PRIVILEGES Información de seguridad para las


tablas de la base de datos.

Ejemplo 2
El siguiente ejemplo consulta una vista del esquema de información
para recuperar una lista de las tablas de una base de datos.

SELECT * FROM INFORMATION_SCHEMA.TABLES


Módulo 3: Introducción a SQL Server 27

SQL Server valida a los usuarios en dos niveles de seguridad: autenticación de inicio de sesión
y validación de permisos basada en las cuentas de usuario y las funciones de la base de datos.

La autenticación identifica al usuario que utiliza una cuenta de inicio de sesión y comprueba la
capacidad del usuario para conectarse con SQL Server. Si la autenticación es correcta, el
usuario se conectará a SQL Server.

El usuario debe tener permisos de acceso a las bases de datos del servidor. El administrador
de la base de datos asigna permisos específicos de la base de datos a las cuentas de usuario y
las funciones para poder tener acceso a las bases de datos del servidor. Los permisos
controlan las actividades que el usuario puede realizar en la base de datos de SQL Server.
Módulo 3: Introducción a SQL Server 28

Autenticación de inicio de sesión

AUTENTICACIÓN

SQL Server
comprueba la
conexión de confianza
Grupo
Grupooousuario
usuario
de
deWindows
Windows2000
2000 Windows 2000
SQL
Server
O BIEN

SQL Server
comprueba el nombre
Cuenta
Cuentadedeinicio
iniciode
de
y la contraseña
sesión
sesiónde
deSQL
SQLServer
Server

Para conectar con SQL Server, el usuario debe tener una cuenta de inicio de sesión. SQL
Server reconoce dos mecanismos de autenticación de inicio de sesión, autenticación de SQL
Server y autenticación de Windows, y cada uno de ellos tiene un tipo de cuenta de inicio de
sesión diferente.

Autenticación de Windows

Cuando se utiliza la autenticación de Windows, una cuenta o un grupo de Windows 2000


controla el acceso de los usuarios a SQL Server. Cuando se conecta, un usuario no
proporciona una cuenta de inicio de sesión de SQL Server. El administrador del sistema de
SQL Server debe definir la cuenta o el grupo de Windows 2000 como una cuenta de inicio de
sesión válida de SQL Server.

Autenticación de SQL Server

Cuando se utiliza la autenticación de SQL Server, el administrador del sistema de SQL Server
define una cuenta y una contraseña de inicio de sesión para SQL Server. Los usuarios deben
proporcionar las cuentas de inicio de sesión y las contraseñas de SQL Server cuando se
conectan a SQL Server.

Modo de autenticación

Cuando SQL Server se ejecuta en Windows 2000, el administrador del sistema puede
especificar la utilización de uno de los dos modos de autenticación:

Modo de autenticación de Windows

Sólo se permite la autenticación de Windows 2000. Los usuarios no pueden especificar una
cuenta de inicio de sesión de SQL Server.

Modo mixto

Los usuarios pueden conectarse a SQL Server con la autenticación de Windows o con la
autenticación de SQL Server.
Módulo 3: Introducción a SQL Server 29

Cuentas de usuario y funciones de la base de datos


Grupo o SQL Server SQL Server asigna inicios
usuario de comprueba la de sesión a cuentas de
Windows 2000 conexión de usuario y funciones
confianza
Windows 2000
Usuario de
base de datos

SQL
Server
O BIEN
Función de base de datos

SQL Server
Cuenta de inicio comprueba el
de sesión de nombre y la
SQL Server contraseña

Después de que Windows 2000 o SQL Server autentique a los usuarios y éstos tengan permiso
para iniciar sesión en SQL Server, necesitan tener cuentas en una base de datos. Las cuentas
de usuario y las funciones identifican a los usuarios dentro de una base de datos, y controlan la
propiedad de los objetos y los permisos para ejecutar instrucciones.

Cuentas de usuario de la base de datos

Las cuentas de usuario que aplican permisos de seguridad son usuarios o grupos de Windows
2000, o cuentas de inicio de sesión de SQL Server. Las cuentas de usuario son específicas de
una base de datos.

Funciones

Las funciones le permiten agrupar usuarios en una misma unidad a la que puede aplicar
permisos. SQL Server proporciona funciones de servidor y de base de datos predefinidas para
las funciones administrativas comunes, de forma que pueda conceder fácilmente una selección
de permisos administrativos a un usuario específico. También puede crear sus propias
funciones de base de datos definidas por el usuario. En SQL Server, los usuarios pueden
pertenecer a varias funciones.
Módulo 3: Introducción a SQL Server 30

Tipos de funciones

 Funciones fijas de servidor


 Agrupar los privilegios administrativos en el nivel del
servidor
 Funciones fijas de base de datos
 Agrupar los privilegios administrativos en el nivel de
base de datos
 Funciones de base de datos definidas por el usuario
 Representar las tareas definidas por un grupo de
empleados de la organización

SQL Server admite tres tipos de funciones para ayudar a administrar los permisos: funciones
fijas de servidor, funciones fijas de base de datos y funciones de base de datos definidas por el
usuario.

Funciones fijas de servidor

Las funciones fijas del servidor permiten agrupar los privilegios administrativos en el nivel del
servidor. Se administran con independencia de las bases de datos de usuario en el nivel del
servidor. En la tabla siguiente se describen las funciones fijas de servidor de SQL Server 2000.

Función Permiso

Creadores de bases de datos (dbcreator) Crear y modificar bases de datos.

Administradores de discos (diskadmin) Administrar archivos de disco.

Administradores de procesos (processadmin) Administrar los procesos de SQL


Server.

Administradores de seguridad (securityadmin) Administrar y auditar los inicios de


sesión del servidor.

Administradores del servidor (serveradmin) Configurar el servidor.

Administradores de la configuración (setupadmin) Instalar la duplicación.

Administradores del sistema (sysadmin) Realizar cualquier actividad.

Administradores de operaciones masivas(bulkadmin) Ejecutar la instrucción BULK INSERT.


Módulo 3: Introducción a SQL Server 31

Funciones fijas de base de datos

Las funciones fijas de base de datos permiten agrupar los privilegios administrativos en el nivel
de base de datos. En la tabla siguiente se describen las funciones fijas de base de datos de
SQL Server 2000.

Función Permiso
public Mantener todos los permisos predeterminados
de los usuarios de una base de datos.

db_owner Realizar cualquier actividad de cualquier


función de base de datos.

db_accessadmin Agregar o quitar usuarios, grupos y funciones


de la base de datos.

db_ddladmin Agregar, modificar o quitar objetos de la base


de datos.

db_securityadmin Asignar permisos sobre instrucciones y objetos.

db_backupoperator Hacer copia de seguridad de bases de datos.

db_datareader Leer datos de cualquier tabla.

db_datawriter Agregar, modificar o eliminar datos de todas las


tablas.

db_denydatareader No puede leer datos de ninguna tabla.

db_denydatawriter No puede modificar datos de ninguna tabla.

Funciones de base de datos definidas por el usuario

También puede crear sus propias funciones de base de datos para representar las tareas
realizadas por un grupo de empleados de la organización. No necesita conceder o revocar
permisos a cada persona. Si las tareas de una función cambian, puede cambiar fácilmente los
permisos de la función y hacer que los cambios se apliquen automáticamente a todos los
miembros de la función.
Módulo 3: Introducción a SQL Server 32

Validación de permisos

22 33
11
Permisos correctos;
se ejecuta el comando

El
Elusuario
usuariode
dela
labase
basede
de
datos
datosejecuta
ejecutaelelcomando
comando SQL Server
comprueba
los permisos
SELECT
SELECT ** FROM
FROM Members
Members Permisos incorrectos;
Devuelve Error

En cada base de datos se pueden asignar permisos a las cuentas de usuario y a las funciones
para realizar (o restringir) ciertas acciones. SQL Server acepta comandos después de que un
usuario haya obtenido acceso a una base de datos.

SQL Server realiza los siguientes pasos para validar los permisos:

1. Cuando el usuario realiza una acción, como ejecutar una instrucción Transact-SQL o
elegir una opción de un menú, el cliente envía instrucciones Transact-SQL a SQL
Server.

2. Cuando SQL Server recibe una instrucción Transact-SQL, comprueba que el usuario
tiene permiso para ejecutar la instrucción.

3. A continuación, SQL Server realiza una de estas dos acciones:

 Si el usuario no tiene los permisos apropiados, SQL Server devuelve un error.

 Si el usuario tiene los permisos apropiados, SQL Server realiza la acción.

También podría gustarte