Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TABLA DE CONTENIDOS
TABLA DE CONVERSIONES
PRESENTACIN
03
09
11
13
16
17
17
26
30
30
30
31
37
40
57
57
58
59
61
64
67
72
73
Excelencia Acadmica
78
80
80
80
81
83
84
85
87
88
96
103
104
104
104
105
107
112
114
115
123
127
127
127
128
129
Excelencia Acadmica
129
135
141
149
149
150
150
151
152
153
154
154
160
160
160
162
163
165
170
173
175
175
175
176
Excelencia Acadmica
Excelencia Acadmica
a) Datos
Los sistemas de bases de datos estn disponibles en mquinas que van desde
las computadoras personales ms pequeas hasta las mainframes ms
grandes. En particular, los sistemas que se encuentran en mquinas grandes
(sistemas grandes) tienden a ser multiusuario, mientras que los que se
ejecutan en mquinas pequeas (sistemas pequeos) tienden a ser de un solo
usuario. Un sistema de un solo usuario es aquel en el que slo un usuario
puede tener acceso a la base de datos en un momento dado; un sistema
multiusuario es aquel en el cual mltiples usuarios pueden tener acceso
simultneo a la base de datos.
9
Excelencia Acadmica
10
Excelencia Acadmica
11
Excelencia Acadmica
Entidades y Relaciones
El trmino entidad es empleado comnmente en los crculos de bases de datos para
referirse a cualquier objeto distinguible que va a ser representado en la base de datos.
Adems de las propias entidades bsicas habr tambin vnculos que asocian dichas
entidades bsicas. El punto importante con respecto a estas relaciones es que son parte de
los datos tanto como lo son las entidades bsicas. Por lo tanto, deben estar representados
en la base de datos al igual que las entidades bsicas.
Ambos son utilizados en la elaboracin de los diagramas entidad/relacin (E/R), que son
usados frecuentemente por los diseadores para ayudar a modelar la base de datos.
Dentro de un diagrama E/R cada relacin puede relacionarse con una o ms de una
entidad. Las relaciones que comprenden dos tipos de entidad son relaciones binarias,
mientras los que se involucran con tres tipos de entidad se conocen como relaciones
ternarios. Los vnculos que se relacionan con una sola entidad siguen siendo binarios, solo
que los dos tipos de entidad que estn vinculados vienen a ser la misma entidad.
Datos y Modelos de Datos
Los datos en realidad son hechos dados, a partir de los cuales es posible inferir hechos
adicionales. Esto es exactamente lo que hace el DBMS cuando responde a una consulta
de un usuario. Un hecho dado corresponde a su vez a lo que en lgica se denomina
proposicin verdadera. En base a esto, una base de datos es en realidad una coleccin de
tales proposiciones verdaderas.
Una razn por la que los sistemas de bases de datos relacionales se han vuelto tan
dominantes, es que manejan en forma muy directa la interpretacin precedente de los
datos. Los sistemas relacionales estn basados en una teora formal denominada el
modelo de datos relacional, de acuerdo con el cual:
En tablas, los datos son representados por medio de filas, las que pueden
interpretarse directamente como proposiciones verdaderas.
Se proporcionan operadores para operar sobre las columnas de las tablas, y estos
operadores soportan directamente el proceso de inferir proposiciones verdaderas
adicionales a partir de las ya dadas.
Sin embargo, el modelo relacional no es el nico modelo de datos. Existen otros aunque la
mayora de ellos difieren del modelo relacional en que son hasta cierto grado especficos,
en vez de estar basados firmemente en la lgica formal.
Un modelo de datos es una definicin lgica, independiente y abstracta de los objetos,
operadores y dems que en conjunto constituyen la mquina abstracta con la que
interactan los usuarios. Los objetos permiten modelar la estructura de los datos. Los
operadores permiten modelar su comportamiento.
La implementacin de determinado modelo de datos es una realizacin fsica, en una
mquina real, de los componentes de la mquina abstracta que en conjunto constituyen
ese modelo.
Entonces, se puede decir que el modelo es aquello que los usuarios tienen que conocer, y
la implementacin es lo que los usuarios no tienen que conocer. La distincin entre ambos
es en realidad slo un caso de la conocida distincin entre lgico y fsico.
Aunque el trmino modelo de datos es utilizado con dos significados muy distintos, la
diferencia entre ambos puede ser caracterizada de esta manera:
12
Excelencia Acadmica
Excelencia Acadmica
Excelencia Acadmica
Los sistemas anteriores a los de base de datos tienden a ser dependientes de los datos. Es
decir, la forma en que fsicamente son representados los datos en el almacenamiento
secundario y la tcnica empleada para su acceso, son dictadas por los requerimientos de la
aplicacin en consideracin, significa que el conocimiento de esa representacin fsica y
esa tcnica empleada para su acceso estn integrados dentro del cdigo de la aplicacin.
En un sistema de base de datos sera inconveniente permitir que las aplicaciones fuesen
dependientes de los datos por las razones siguientes:
Excelencia Acadmica
Excelencia Acadmica
17
Excelencia Acadmica
Proveer a los administradores las herramientas que les permitan ejecutar tareas de
mantenimiento y administracin de los datos.
18
Excelencia Acadmica
Permite describir:
Los elementos de la base de datos con
Su estructura
Sus Interrelaciones
Sus Validaciones
Descripcin
A tres niveles
Externo
Lgico Global
Interno
Mediante un Lenguaje de Definicin de Datos (LDD)
Permite:
Buscar
Aadir
Suprimir
Datos de la
Base de Datos
Modificar
Manipulacin
fsica
Control
Suministra procedimientos
Administrador
para
el
Excelencia Acadmica
Las interrelaciones existentes entre estas funciones, el conjunto de los datos y los
usuarios se encuentran representados en la figura adjunta.
Usuarios Locales
Monitor de
Teleproceso
Usuarios Remotos
Funcin de
Utilizacin
Funcin de
Descripcin
Funcin de
Manipulacin
SGBD
Base de Datos
Compartimiento de datos
Una de las principales caractersticas de las bases de datos, es que los datos
pueden ser compartidos entre muchos usuarios simultneamente, proveyendo, de
esta manera, mxima eficiencia.
Mantenimiento de la integridad
La integridad de los datos es la que garantiza la precisin o exactitud de la
informacin contenida en una base de datos. Los datos interrelacionados deben
siempre representar informacin correcta a los usuarios.
20
Excelencia Acadmica
Seguridad
La disponibilidad de los datos puede ser restringida a ciertos usuarios. Segn los
privilegios que posea cada usuario de la base de datos, podr acceder a mayor
informacin que otros.
Velocidad
Los sistemas DBMS modernos poseen altas velocidades de respuesta y proceso.
21
Excelencia Acadmica
22
Excelencia Acadmica
Herramientas y facilidades
Acceso a Datos
Diccionario de Datos
Ncleo
Sistema Operativo
Datos
El ncleo del SGBD est en mayor o menor medida soportado por el Sistema
Operativo; le corresponde transformar las instrucciones de peticin de datos que le
llegan en rdenes que el Sistema Operativo sea capaz de de entender y gestionar.
Los servidores de bases de datos poseen mdulos, facilidades de usuario que
realizan llamadas o funciones de Sistema Operativo, de modo que no haya que
cerrar las aplicaciones para realizar las acciones tpicas del S.O.
23
Excelencia Acadmica
FACILIDADES DE USUARIO
GENERADORES DE
INFORMES
SISTEMA OPERATIVO
DATOS
UTILIDADES
DEL SGBD
PRECOMPILADOR
LENGUAJES
AYUDAS AL
DISEO (CASE)
24
Excelencia Acadmica
El Directorio de datos
El Directorio de datos contiene informacin sobre el esquema interno, ya que se
encarga de que el Sistema Operativo sea capaz de reconocer las rdenes de la
base de datos, por lo que tanto su contenido como su estructura estn enfocados
al sistema, de modo que transforma los elementos del esquema externo al
esquema interno para facilitar su funcionamiento. De forma restrictiva, el concepto
de directorio se corresponde con el de catlogo.
A veces, los conceptos relativos a diccionario y directorio de datos se agrupan en
un solo elemento que posee la funcionalidad de ambos. A este conjunto se le llama
diccionario
o, mas generalmente, catlogo, segn el fabricante que lo
implemente.
El Repositorio de datos
El repositorio de datos es un diccionario de datos, diferente del anterior,
gestionado por una herramienta CASE, que almacena informacin textual y grfica
sobre las caractersticas de un determinado objeto.
Poseen funcionalidades de directorio de datos y de diccionario de datos ya que en
este caso almacena informacin de tipo texto y grficos que es recuperable por el
usuario. Los repositorios, que se emplean en la fase de anlisis (descripcin lgica
de los datos), facilitan la labor posterior de descripcin e implementacin de las
caractersticas all definidas.
El diccionario/directorio/catlogo de datos almacena la informacin del mismo
modo que si fuese una base de datos mas del sistema, emplendose las mismas
rdenes que para el resto de las bases de datos.
Desde el punto de vista del funcionamiento del diccionario de datos hay que
destacar los siguientes componentes software, transparentes para el usuario:
25
Excelencia Acadmica
SISTEMA DE GESTIN DE
LA BASE DE DATOS
(SGBD)
VE2
5
6
12
SISTEMA
OPERATIVO
BASE DE
DATOS
8
7
10
Nombre de la
vista externa
Area de
Trabajo del
11
Programa de
Aplicacin
AC n
VE n
ATU n
Programa de
Aplicacin
UE n
26
Area de
Comunicacin
ALMACENAMIENTO
INTERMEDIO
Excelencia Acadmica
Por cada Programa de Aplicacin (PA) que se est ejecutando, existe una Unidad de
Ejecucin (UE) donde se encuentra el rea de Trabajo del Usuario (ATU) con sus reas
de Entrada y Salida (E/S) y un rea de Comunicacin con el SGBD (AC) destinada a
recibir los mensajes y la informacin de control procedente del SGBD. Desde el programa
de aplicacin se hace referencia a la Vista Externa (VE) permitida a tal programa. En la
biblioteca del sistema se encuentran almacenados, adems de los datos, la estructura
lgica global y la estructura interna, as como las vistas externas que sern llamadas por
los programas de aplicacin de los usuarios.
El flujo de datos e instrucciones entre estos elementos es el siguiente:
1 Se produce una llamada desde una unidad de ejecucin al SGBD (flecha 1); en la
llamada se ha de hacer referencia a la vista externa implicada (flecha 2)
2 El SGBD analiza la llamada y completa los argumentos con la informacin de la
vista externa a la que se ha hecho referencia en la llamada, as como con la
informacin correspondiente a la estructura lgica global y la estructura interna
con ella relacionada; esta informacin se encuentra previamente almacenada en
los ficheros del sistema, desde donde pasa al SGBD (flechas 3 y 4).
3 Una vez comprobado el derecho del Programa de Aplicacin (PA) a utilizar esta
vista, y despus de verificar su correccin, el SGBD traduce la llamada en las
correspondientes rdenes para los mtodos de acceso del Sistema Operativo
(flecha 5).
4 El Sistema Operativo accede al soporte secundario (disco) donde se encuentran
los datos (flecha 6)
5 Los datos a recuperar pasan del soporte donde se encuentra almacenada la base
de datos al rea de almacenamiento intermedio (buffers), y, si se tratase de una
insercin o modificacin pasaran en sentido contrario (flecha 7).
6 Los datos son transferidos desde el rea de almacenamiento intermedio al rea de
trabajo del usuario de la unidad de ejecucin desde donde se hizo la llamada
(flecha 8) [o en sentido contrario si se hizo una insercin o una modificacin],
realizndose las correspondientes transformaciones entre las representaciones de
los datos.
7 El SGBD, una vez terminada la operacin de manipulacin pasa al rea de
comunicacin los indicadores de estado (flecha 9), en stos se seala si la
operacin ha acabado satisfactoriamente o no, al tiempo que se dan otras
informaciones sobre la operacin realizada.
8 El Programa de Aplicacin revisa el estado de los indicadores, que se encuentran
en el rea de control de la unidad de ejecucin desde la que se efectu la llamada,
y toma las decisiones oportunas (flecha 10).
9 Los datos, que se encuentran en el rea de E/S de la correspondiente unidad de
ejecucin, en el caso de que la operacin haya terminado satisfactoriamente, ya
pueden ser utilizados por el Programa de Aplicacin (flecha 11).
27
Excelencia Acadmica
Por tipo de
funcin
Por tipos de
Usuarios y de
Aplicaciones
Definicin
Manipulaci
n
Informticos
Aplicaciones
Finales
Aplicaciones no
formalizables
Como se ve, las distintas caractersticas del proceso y del usuario determinan el tipo de
lenguaje a realizar. En general, los usuarios informticos, como el diseador de la base, el
administrador, analistas, programadores, etc., requerirn medios potentes y flexibles con
los cuales consigan definir, administrar, extraer o manipular los datos de la base.
Normalmente se apoyarn en un lenguaje de programacin que estn habituados a
manejar (Lenguaje Anfitrin), para lo cual deber permitir hacer llamadas desde un
programa de aplicacin al SGBD.
El conjunto de sentencias de manipulacin del SGBD que pueden ser llamadas desde un
lenguaje de programacin permitiendo el acceso a la base de datos, se suele denominar
sublenguaje de datos o tambin lenguaje husped o lenguaje embebido.
Los SGBD admiten , en general, varios lenguajes de tipo anfitrin para manipular datos
(Cobol, Ensamblador, Fortran, PL/I, Basic, Pascal, C, etc.). As mismo, la prctica
totalidad de los SGBD admiten lenguajes de 4 generacin que permiten el acceso a la
base de datos, mediante sentencias embebidas en dicho lenguaje y escritas en un
lenguaje de datos como SQL.
El usuario final, por su parte, requerir medios simples para comunicarse con la base, lo
que puede conseguirse mediante un lenguaje de manipulacin autocontenido, que tenga
una sintaxis sencilla, pero potente como para soportar demandas de informacin muy
variadas o por medio de tratamientos parametrizados que suelen presentarse al usuario
en forma de mens.
La estructura y la sintaxis de estos tipos de lenguajes dependen de cada SGBD. Para
modelo de datos en red, las normas Codasyl proponen especificaciones concretas de la
sintaxis para los lenguajes de descripcin y manipulacin de los datos. Para modelos de
datos relacionales el SQL es un estndar muy extendido que proporciona estas
facilidades.
28
Excelencia Acadmica
Excelencia Acadmica
Una vez especificados el criterio de seleccin y los datos a actualizar o recuperar el SGBD
debe ocuparse de acceder al correspondiente soporte fsico de donde se extraern los
datos definidos para su transferencia a un dispositivo de salida, o, si se trata de una
actualizacin, en donde se insertarn, modificarn o borrarn los datos.
Pero al igual que el programador precisa de un lenguaje de manipulacin que se embeba
en un lenguaje de programacin, el usuario no informtico deber disponer de tambin de
un instrumento anlogo (mucho ms sencillo) que le permita comunicarse con la base y
extraer de ella o introducir en ella las informaciones que precise. Para ello, los SGBD
suelen disponer de lenguajes autocontenidos para que, desde un terminal y en modo
interactivo, el usuario pueda acceder a la base y manipular los datos almacenados en ella
sin necesidad de apoyarse en un lenguaje de programacin.
La mayora de los SGBD utilizan como lenguaje de manipulacin de datos el Lenguaje
Estructurado de Consultas o SQL.
1. Elabore una lista de las funciones que el administrador de base de datos tiene
a su cargo
2. Investigue si Ms. Acces y Visual fox Pro son sistemas gestores de base de
datos. Explique por qu si o por que no.
En el captulo I se han visto temas acerca de administracin de datos, administracin
de base de datos, funciones del administrador de base de datos y la estructura de una
base de datos.
Una Base de Datos es una coleccin de archivos, datos, informacin; ordenada,
organizada, y relacionada, con la finalidad de permitir el manejo de la informacin para
su procesamiento.
El DBMS es un conjunto de programas que se encargan de manejar la creacin y todos
los accesos a las bases de datos.
El Administrador de Bases de Datos es responsable primordialmente de administrar la
estructura de la Base de Datos, la actividad de los datos, asegurar la confiabilidad de
los datos y confirmar la seguridad de la Base de Datos.
30
Excelencia Acadmica
Qu es base de datos?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
2.
3.
4.
5.
6.
De qu manera se da la interaccin del sistema gestor de base de datos con el sistema operativo?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_
31
Excelencia Acadmica
32
Excelencia Acadmica
33
Excelencia Acadmica
Entre las limitaciones de este tipo de base de datos se tiene que al borrar
un nodo padre, desaparecen tambin sus nodos subordinados. Slo podr
aadirse un nodo hijo si existe el nodo padre. Pero lo ms significativo es
la rigidez de su estructura: slo un padre por hijo y ausencia de relaciones
entre los nodos hijos.
34
Excelencia Acadmica
35
Excelencia Acadmica
36
Factores tcnicos:
Seguridad (no todos los datos deben ser accesibles a todos los
usuarios).
Portabilidad
Factores no tcnicos
no
deben
estar
duplicados),
Excelencia Acadmica
La nica edicin gratuita es la Express Edition, que es compatible con las dems
ediciones de Oracle Database 10gR2 y Oracle Database 11g.
Se considera a Oracle como uno de los sistemas de bases de datos ms
completos, destacando su:
Soporte de transacciones.
Estabilidad.
Escalabilidad.
Soporte multiplataforma.
37
Excelencia Acadmica
Soporte de transacciones.
Este sistema incluye una versin reducida, llamada MSDE con el mismo motor de
base de datos pero orientado a proyectos ms pequeos, que en su versin 2005
pasa a ser el SQL Express Edition, que se distribuye en forma gratuita.
c) MySQL:
MySQL es un sistema de gestin de base de datos relacional, multihilo y
multiusuario.
MySQL AB - desde enero de 2008 una subsidiaria de Sun Microsystems desarrolla MySQL como software libre en un esquema de licenciamiento dual.
Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta
licencia, pero las empresas que quieran incorporarlo en productos privativos
pueden comprar a la empresa una licencia especfica que les permita este uso.
Est desarrollado en su mayor parte en ANSI C.
Al contrario que proyectos como Apache, donde el software es desarrollado por
una comunidad pblica y el copyright del cdigo est en poder del autor individual,
MySQL es propiedad y est patrocinado por una empresa privada, que posee el
copyright de la mayor parte del cdigo. Esto es lo que posibilita el esquema de
licenciamiento anteriormente mencionado.
38
Excelencia Acadmica
Dispone de API's en gran cantidad de lenguajes (C, C++, Java, PHP, etc).
d) Postgre SQL:
PostgreSQL es un servidor de base de datos relacional orientada a objetos de
software libre, liberado bajo la licencia BSD.
Como muchos otros proyectos open source, el desarrollo de PostgreSQL no es
manejado por una sola compaa sino que es dirigido por una comunidad de
desarrolladores y organizaciones comerciales las cuales trabajan en su desarrollo.
Dicha comunidad es denominada el PGDG (PostgreSQL Global Development
Group).
PostgreSQL ha tenido una larga evolucin, comenzando con el proyecto Ingres en
la Universidad de Berkeley. Este proyecto, liderado por Michael Stonebraker, fue
uno de los primeros intentos en implementar un motor de base de datos relacional.
Despus de haber trabajado un largo tiempo en Ingres y de haber tenido una
experiencia comercial con el mismo, Michael decidi volver a la Universidad para
trabajar en un nuevo proyecto sobre la experiencia de Ingres, dicho proyecto fue
llamado post-ingres o simplemente POSTGRES.
El proyecto post-ingres pretenda resolver los problemas con el modelo de base de
datos relacional que haban sido aclarados a comienzos de los aos 1980. El
principal de estos problemas era la incapacidad del modelo relacional de
comprender "tipos", es decir, combinaciones de datos simples que conforman una
nica unidad. Actualmente estos son llamados objetos. Se esforzaron en introducir
la menor cantidad posible de funcionalidades para completar el soporte de tipos.
Estas funcionalidades incluan la habilidad de definir tipos, pero tambin la
habilidad de describir relaciones - las cuales hasta ese momento eran ampliamente
utilizadas pero mantenidas completamente por el usuario. En POSTGRES la base
de datos comprenda las relaciones y poda obtener informacin de tablas
relacionadas utilizando reglas.
La siguiente lista muestra los hitos ms importantes en la vida del proyecto
POSTGRES.
1986: se publicaron varios papers que describan las bases del sistema.
39
Excelencia Acadmica
40
Analysis Services
Reporting Services
Excelencia Acadmica
Notification Services
Integration Services
Herramientas de administracin
Documentacin y ejemplos
SQL Server 2005 est disponible en ediciones de 32 bits y de 64 bits. Las ediciones de
64 bits de SQL Server 2005 se instalan con los mismos mtodos que las ediciones de
32 bits: a travs del Asistente para la instalacin o del smbolo del sistema.
Independientemente de si utiliza el Asistente para la instalacin de SQL Server 2005 o
el smbolo del sistema para instalar SQL Server 2005, el proceso del programa de
instalacin incluir los siguientes pasos.
a) Paso 1: Prepare el equipo para instalar SQL Server 2005
A fin de preparar el equipo para SQL Server 2005, revise los requisitos de
hardware y software, los requisitos del Comprobador de configuracin del sistema,
los problemas de bloqueo, y las consideraciones de seguridad.
Dependiendo de sus requisitos, el programa de instalacin de Microsoft SQL
Server 2005 instalar una nueva instancia de SQL Server, actualizar una
instancia existente o proporcionar opciones de mantenimiento.
Para todas las instalaciones de SQL Server 2005, debe considerar lo siguiente:
Asegrese de que el equipo cumple con los requisitos del sistema para
SQL Server 2005.
41
Excelencia Acadmica
Tipo de
procesador1
SQL
Server
2005
Enterprise Edition 4
Procesador
compatible
con
Pentium III o
superior
SQL
Server
2005
Developer Edition
Velocidad de
procesador2
Mnimo: 600 MHz
Mnimo: 512 MB
Recomendado:
1 GHz o ms
Recomendado: 1 GB
o ms
Mximo: mximo del
sistema
operativo
mximo
SQL
Server
2005
Standard Edition
SQL
Server
2005
Workgroup Edition
Memoria (RAM)3
Procesador
compatible
con
Pentium III o
superior
Mnimo: 512 MB
Recomendado:
1 GHz o ms
Recomendado: 1 GB
o ms
Mximo: mximo del
sistema
operativo
mximo
SQL
Server
Express Edition
42
2005
Procesador
compatible
con
Pentium III o
Mnimo: 192 MB
Recomendado:
Recomendado:
512
Excelencia Acadmica
superior
1 GHz o ms
MB o ms
Mximo: mximo del
sistema
operativo
mximo
SQL
Server
2005
Express Edition with
Advanced Services
Procesador
compatible
con
Pentium III o
superior
Mnimo: 512 MB
Recomendado:
1 GHz o ms
Recomendado: 1 GB
o ms
Mximo: mximo del
sistema operativo
Caracterstica
Database Engine (Motor de base de datos) y archivos de
datos, Rplica y Bsqueda de texto
Requisito de
espacio en
disco
280 MB
43
Excelencia Acadmica
90 MB
120 MB
Services,
50 MB
Integration Services
120 MB
Componentes de cliente
850 MB
240 MB
410 MB
44
Enterpris
e
Edition1
Develop
er
Edition
Standar
d
Edition
Workgrou
p Edition
Express
Edition y
Express
with
Advance
d
Services
Windows 2000
No
No
No
No
No
No
SP4 de Windows
2000 Professional
Edition2, 4
No
SP4 de Windows
2000 Server2
SP2 de Windows
XP Home Edition
No
No
No
S5
No
Evalua
tion
Editio
n
Excelencia Acadmica
SP2 de Windows
XP Professional
Edition4
No
SP1 de Windows
Server
2003
Enterprise
Edition6
Windows
Vista
Starter Edition
No
No
No
No
No
No
Windows
Home
Edition
No
S7
No
No
S8
S7
Windows
Vista
Home Premium
Edition
No
S7
No
No
S8
S7
Windows
Vista
Ultimate Edition
No
S7
S7
S7
S8
S7
Windows
Vista
Business Edition
No
S7
S7
S7
S8
S7
Windows
Vista
Enterprise Edition
No
S7
S7
S7
S8
S7
Vista
Basic
45
Excelencia Acadmica
Usar firewalls
Los firewalls son fundamentales para garantizar la seguridad de la
instalacin de SQL Server. Los firewalls sern ms efectivos si sigue estas
instrucciones:
Instale un firewall entre el servidor e Internet.
Divida la red en zonas de seguridad separadas por firewalls.
Bloquee todo el trfico y, a continuacin, admita slo el
necesario.
En un entorno de varios niveles, utilice varios firewalls para
crear subredes filtradas.
Si instala el servidor en un dominio de Windows, configure
firewalls internos para permitir la autenticacin de Windows.
En un dominio de Windows en el que todas las versiones de
Windows son Windows XP o Windows Server 2003 o versiones
posteriores, deshabilite la autenticacin NTLM. .
Si la aplicacin utiliza transacciones distribuidas, debe
configurar el firewall para permitir que el trfico del
Coordinador de transacciones distribuidas de Microsoft (MS
DTC) fluya entre instancias independientes de MS DTC y entre
MS DTC y administradores de recursos como SQL Server.
Aislar servicios
El aislamiento de servicios reduce el riesgo de que se utilice un servicio
cuya seguridad se haya vulnerado para vulnerar la seguridad de otros
servicios. Para aislar los servicios, siga estas instrucciones:
Siempre que sea posible, no instale SQL Server en un
controlador de dominio.
Ejecute los servicios de SQL Server por separado en distintas
cuentas de Windows.
En un entorno de varios niveles, ejecute la lgica Web y la
lgica de negocios en equipos independientes.
46
Excelencia Acadmica
Cuentas de servicio
Ejecute servicios de SQL Server con los privilegios mnimos.
Asocie los servicios de SQL Server con cuentas de Windows.
Modo de autenticacin
Requiera la autenticacin de Windows para las conexiones a
SQL Server.
Contraseas seguras
Asigne una contrasea segura a la cuenta sa.
Habilite siempre la comprobacin de directivas de contraseas.
Utilice contraseas seguras en todos los inicios de sesin de
SQL Server.
47
Excelencia Acadmica
48
Excelencia Acadmica
49
Excelencia Acadmica
50
Excelencia Acadmica
51
Excelencia Acadmica
52
Excelencia Acadmica
53
Excelencia Acadmica
54
Por tlimo nos aparecer una ventana con el resumen de los componentes
y opciones seleccionadas en el asistente de instalacin. Si todo es correcto
pulsaremos en "Install" para iniciar la instalacin de SQL Server:
Excelencia Acadmica
55
Excelencia Acadmica
c)
Descripcin
Asistente
para
la El Asistente para la optimizacin de Database
optimizacin de Database Engine (Motor de base de datos) crea conjuntos
Engine (Motor de base de ptimos de ndices, vistas indizadas y particiones.
datos)
Business
Intelligence Business Intelligence Development Studio es un
Development Studio
entorno de desarrollo integrado para las
soluciones de Analysis Services y Integration
Services..
Utilidades del smbolo del Administre los objetos de SQL Server desde el
56
Excelencia Acadmica
sistema
Administrador
de Administre los valores de configuracin de red de
configuracin de SQL Server cliente y servidor..
Importar y exportar datos
Configuracin predeterminada
Las configuraciones predeterminadas para las nuevas instancias de SQL Server
2005 deshabilitan algunos componentes y caractersticas para reducir la superficie
atacable del producto.
Los siguientes componentes y caractersticas estn desactivados de manera
predeterminada:
Integration Services
Bsqueda de texto
57
Excelencia Acadmica
[1] ELMASRI Y NAVATHE. Fundamentos de los Sistemas de Base de Datos. Tercera Edicin. The
Benjamin/Cummings Publishing Company Inc.. 2001.
[2] DATE, C.J. Date. Introduccin a los Sistemas de Base de Datos. 7 Edicin. Vol I. Addison-Wesley
Iberoamericana.
[3] JEFFREY D. Ullman. Database and Knowledge-Base Systems. Vol. I y II. Computer Science Press.
1988.
[4] MIGUEL, Adoracin de y PIATTINI, Mario G. Fundamentos y modelos de bases de datos. Madrid:
RA-MA, 1997
[5]
Bibliografa electrnica:
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm
En la siguiente unidad temtica detallaremos aspectos relacionados a las bases de datos y su almacenamiento
en archivos (archivos de datos y archivo de registro de transacciones) y su administracin.
58
Excelencia Acadmica
2.
3.
4.
5.
59
Excelencia Acadmica
60
Excelencia Acadmica
1. Describe el modo en que SQL Server almacena los datos y trata las transacciones.
2. Amplia o reduce el tamao de una base de datos.
3. Determina la ubicacin de archivos y registros de transacciones de bases de datos
para mejorar el rendimiento y la tolerancia a errores.
Todas las bases de datos tienen un archivo de datos principal (.mdf), y uno
o varios archivos de registro de transacciones (.ldf). Una base de datos
tambin puede tener archivos de datos secundarios (.ndf). Estos archivos
61
Excelencia Acadmica
Cuando se crea una base de datos, se hace una copia de la base de datos
model, que incluye las tablas del sistema.
62
Excelencia Acadmica
principio y el final de las transacciones puede usar tanto las instrucciones TransactSQL como las funciones de la interfaz de programacin de aplicaciones (API) de
bases de datos. SQL Server realiza transacciones implcitas y explcitas.
Transaccin implcita:
SQL Server realiza una transaccin implcita cuando se ejecuta como una
transaccin cualquiera de las instrucciones Transact-SQL siguientes:
Alter table
Drop
Insert
Select
Create
Fetch
Open
Truncate table
Delete
Grant
Revoke
Update
63
Excelencia Acadmica
64
Excelencia Acadmica
Permite definir:
El nombre de la base de datos.
Las propiedades de la base de datos.
La ubicacin de los archivos de la base de datos.
SQL Server usa una copia de la base de datos model para inicializar la
base de datos y sus metadatos. Las opciones o configuraciones de la base
de datos model se copian en la nueva base de datos.
Archivo principal:
El archivo principal consta del archivo de datos inicial del grupo de archivos
principal. Un grupo de archivos es una coleccin de archivos de datos con
nombre. El grupo de archivos principal contiene todas las tablas del
sistema de la base de datos. Tambin contiene todos los objetos y datos
no asignados a grupos de archivos definidos por el usuario. El archivo de
datos principal es el punto de inicio de la base de datos y seala los dems
archivos de la base de datos. Todas las bases de datos tienen un archivo
de datos principal y un grupo de archivos principal. La extensin de nombre
de archivo recomendada para los archivos principales de datos es .mdf.
Archivos secundarios:
Las bases de datos pueden tener archivos secundarios de datos. Algunas
bases de datos pueden ser lo suficientemente grandes como para
necesitar varios archivos secundarios de datos, o pueden usar archivos
secundarios en unidades de disco independientes para repartir los datos
por varios discos. Los archivos secundarios pueden estar en el grupo de
archivos principal o agrupados en grupos de archivos definidos por el
usuario. La extensin de nombre de archivo recomendada para los
archivos secundarios de datos es .ndf.
Registro de transacciones
Cada base de datos debe tener un registro de transacciones. A menos que
se indique lo contrario, se crea automticamente un archivo de registro de
transacciones con un nombre generado por el sistema. La extensin de
nombre de archivo recomendada para los archivos de registro de
transacciones es .ldf. Por lo general, el archivo de registro de
transacciones supone aproximadamente el 10 o el 15 por ciento de los
archivos de la base de datos
65
Excelencia Acadmica
Tamao
Puede especificar el tamao de cada archivo de datos y de registro. El
tamao mnimo es de 512 KB, tanto para los archivos de datos como para
los archivos de registro. El tamao especificado para el archivo de datos
principal tiene que ser, al menos, como el tamao del archivo principal de
la base de datos model.
Crecimiento de archivo
Puede especificar si un archivo aumentar o no su tamao si es necesario.
Para referirse a esta opcin se habla de crecimiento automtico. De forma
predeterminada, est habilitado el crecimiento de archivo.
Puede especificar el crecimiento de archivo en megabytes o mediante
porcentaje. El porcentaje slo se aplica al crecimiento de archivo, no al
tamao mximo.
Tamao mximo
Puede especificar el tamao mximo de crecimiento de archivo en
megabytes o mediante porcentaje. El valor predeterminado de crecimiento
es del 10 por ciento. Se recomienda especificar un tamao mximo de
crecimiento para el archivo. Si no especifica un tamao y est habilitada la
opcin de crecimiento de archivo, el archivo crecer de manera
predeterminada hasta que el disco se llene.
Mencione que la ruta de acceso del archivo variar si se utiliza una
instancia con nombre de SQL Server en lugar de una instancia
predeterminada.
Intercalacin
Este parmetro especifica la intercalacin predeterminada para la base de
datos. De manera predeterminada, una base de datos hereda la
intercalacin de la instancia de SQL Server en la que se crea la base de
datos
66
Excelencia Acadmica
Descripcin
sp_helpdb
67
Excelencia Acadmica
Expansin manual
transacciones
de
archivos
de
datos
de
registro
de
68
Excelencia Acadmica
69
Excelencia Acadmica
Mtodos de reduccin
Para reducir manualmente bases de datos y archivos de base de datos a
un tamao especfico, puede usar el Administrador corporativo de SQL
Server o ejecutar la instruccin DBCC SHRINKDATABASE o DBCC
SHRINKFILE. Puede:
70
Excelencia Acadmica
Descripcin
Archivos
Una base de datos que un usuario haya abierto para leer o escribir
en ella.
Una base de datos que est publicando alguna de sus tablas como
parte de la duplicacin de SQL Server.
71
Excelencia Acadmica
Para distribuir con uniformidad los datos entre todos los discos, use RAID y, a
continuacin, grupos de archivos definidos por el usuario para distribuir los datos
entre varios conjuntos de bandas de hardware, si es necesario.
Una tcnica avanzada es separar las tablas a partir de ndices no agrupados en
clsteres. Un ndice no agrupado en clsteres es un ndice que tiene un orden
lgico distinto del orden fsico de las filas almacenado en el disco.
c) Creacin de registros de transacciones en discos independientes
Debe crear el registro de transacciones en un disco independiente o usar RAID.
Dado que el archivo de registro de transacciones se escribe en serie, al usar un
disco independiente dedicado, los cabezales del disco pueden permanecer en el
lugar adecuado para la siguiente operacin de escritura. El uso de RAID
proporciona tolerancia a errores.
Por ejemplo, si su entorno de produccin tiene varias bases de datos en un
servidor, quiz desee usar discos independientes para cada registro de
transacciones. Esta estrategia permite obtener un rendimiento ptimo.
72
Excelencia Acadmica
73
Excelencia Acadmica
74
Excelencia Acadmica
Descripcin
Devuelve los nombres fsicos y
los atributos de los archivos
asociados con la base de datos
actual. Utilice este procedimiento
almacenado de sistema para
determinar los nombres de los
75
Excelencia Acadmica
sp_helpfilegroup
[grupoDeArchivos]
76
Excelencia Acadmica
77
Excelencia Acadmica
Figura 3.5: Combinacin de grupos de archivos con soluciones RAID basadas en hardware
78
Excelencia Acadmica
8. ESTIMACIN DE LA CAPACIDAD.
Una de las principales funciones de un administrador de bases de datos o de sistemas es
asignar, administrar y supervisar los requisitos de espacio y almacenamiento de SQL
Server y sus bases de datos. La estimacin del espacio que requiere una base de datos le
puede ayudar a planear el esquema de almacenamiento y determinar los requisitos de
hardware
a) Estimacin del tamao de una base de datos
Al planear una base de datos, se establece su estructura lgica. Bajo esa
estructura hay varios archivos y objetos fsicos que ocupan espacio en disco. Entre
stos se encuentran el registro de transacciones y las tablas e ndices que
componen los archivos de datos.
Cuando se crea una base de datos, SQL Server crea una copia de la base de
datos model, que incluye las tablas del sistema que contienen informacin acerca
de archivos, objetos, permisos y restricciones. Estas tablas aumentan de tamao a
medida que se crean ms objetos en la base de datos. Cada objeto que se crea
genera una nueva fila en una o varias tablas del sistema.
Factores que debe tener en cuenta cuando calcule el tamao de una base de
datos
Al calcular la cantidad de espacio que va a ocupar una base de datos, tenga en
cuenta los siguientes factores:
79
Excelencia Acadmica
1. Cree una base de datos y utilice el SQL Server Management Studio para
incrementar archivos a la base de datos.
2. Utilice el SQL Server Management Studio para reducir la base de datos.
3. Investigue acerca de los comandos para realizar las tareas anteriores a travs de
ellos.
En esta unidad se describi cmo Microsoft SQL Server almacena los datos y
procesa las transacciones adems de cmo crear, administrar y colocar archivos y
registros de transacciones de bases de datos, as como la manera de optimizar bases
de datos mediante RAID basado en hardware, grupos de archivos definidos por el
usuario y una combinacin de ambos.
[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.
Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm
80
Excelencia Acadmica
En la siguiente unidad trataremos temas sobre cmo crear copias de respaldo de bases de datos y las
estrategias a utilizar para no perder los datos en caso de algn desastre.
Cul de las siguientes sentencias puede ser usado para crear un grupo de archivo?:
a) ALTER DATABASE ADD FILE
b) ALTER DATABASE MODIFY FILEGROUP
c) ALTER DATABASE ADD FILEGROUP
d) ALTER DATABASE REMOVE FILEGROUP
2.
Estas diseando la estructura fsica para el nuevo servidor de tu compaa corriendo SQL Server 2005. El
servidor tiene las siguientes caractersticas: dos discos en RAID 1, cinco discos en RAID 5, y otros diez
discos en RAID 5. Dnde almacenaras los archivos de base de datos para un mejor rendimiento?
a)
Usar RAID 5 para instalar el sistema operativo. Usar el primer set de discos RAID 5 para instalar
los archivos ejecutables de SQL Server 2005 y el segundo set de discos RAID 5 para almacenar
los archivos de base de datos.
b)
Usar RAID 1 para instalar el sistema operativo. Usar el primer set de discos RAID 5 para instalar
los archivos ejecutables de SQL Server 2005 y los registros de datos y transacciones. Usar el
segundo set de discos RAID 5 para almacenar los backups de base de datos.
c)
Usar RAID 1 para instalar el sistema operativo y los archivos ejecutables de SQL Server 2005.
Usar el primer set de discos RAID 5 para almacenar los archivos de registro de transacciones.
Usar el segundo set de discos RAID 5 para almacenar los archivos de datos.
d)
3.
Usar el primer set de discos RAID 5 para instalar el sistema operativo y los archivos ejecutables
de SQL Server 2005. Guardar los archivos de datos en el segundo set de discos RAID 5. Usar el
segundo set de discos RAID 5 para almacenar los archivos de registro de transacciones.
Cul de las siguientes opciones son tipos de grupos de archivos validos?
a) Solo lectura
b) Solo escritura
c) Por defecto
d) Primario
81
Excelencia Acadmica
82
4.
5.
6.
7.
Excelencia Acadmica
COPIAS DE RESPALDO
Con frecuencia, los datos en una base de datos justifican las operaciones de una organizacin, es decir almacenan
todo el historial de las transacciones de una empresa. Sin la base de datos, la organizacin no podra funcionar
correctamente. Es importante que todas las bases de datos de misin crtica del sistema realicen adecuados
procedimientos de recuperacin en casos de desastre en el lugar.
Las copias de seguridad y restauracin de operaciones son una parte vital de la gestin de datos y son esenciales
para la recuperacin de datos en caso de daos y/o desastres. Por lo tanto, una funcin importante de un
administrador de base de datos es garantizar que los datos sean respaldados y puedan ser restaurados
rpidamente en caso de un desastre.
4. Aplica las opciones de copia de seguridad apropiadas para cada uno de los distintos
mtodos de copia de seguridad de SQL Server.
Errores de medios.
83
Excelencia Acadmica
Desastres naturales.
Adems, las copias de seguridad de una base de datos son tiles para fines
administrativos habituales, como copiar una base de datos de un servidor a otro, configurar
la creacin de reflejo de la base de datos y el archivo, etc.
Virus destructivos.
Robo.
Si utiliza una estrategia de copia de seguridad adecuada, puede restaurar los datos
con un costo mnimo sobre la produccin y reducir la posibilidad de que los datos
se pierdan definitivamente. Piense en la estrategia de copia de seguridad como un
seguro. Su estrategia de copia de seguridad debe devolver el sistema al punto en
el que se encontraba antes del problema. Al igual que con una pliza de seguros,
pregntese: cunto estoy dispuesto a pagar y cuntas prdidas puedo
permitirme?.
Los costos asociados con la estrategia de copia de seguridad incluyen la cantidad
de tiempo que se emplea en disear, implementar, automatizar y probar los
procedimientos de copia de seguridad. Aunque la prdida de datos no se puede
impedir completamente, debe disear una estrategia de copia de seguridad para
reducir el alcance de los daos. Cuando disee una estrategia de copia de
seguridad, considere la cantidad de tiempo que se puede permitir que el sistema
est parado, as como la cantidad de datos que se puede admitir perder (si puede
perderse alguno) en el caso de un error del sistema.
b) Hacer copias de seguridad con regularidad
La frecuencia con que haga las copias de seguridad de la base de datos depende
de la cantidad de datos que est dispuesto a perder y la actividad de la base de
datos. Cuando haga copias de seguridad de bases de datos de usuario, tenga en
cuenta los siguientes hechos e instrucciones:
84
Excelencia Acadmica
a) Modelos De Recuperacin
Los modelos de recuperacin se han diseado para controlar el mantenimiento del
registro de transacciones. Existen tres modelos de recuperacin: simple, completa
y por medio de registros de operaciones masivas. Normalmente, en las bases de
datos se usa el modelo de recuperacin completa o el modelo de recuperacin
simple.
Excelencia Acadmica
86
Excelencia Acadmica
Datos.
SQL Server utiliza estas copias de seguridad para volver a crear los archivos en sus
ubicaciones originales, completos con objetos y datos. Cuando se restaura una base de
datos:
87
Excelencia Acadmica
Lee los discos directamente (pasa por alto la cach del bfer) para escribir
todas las pginas en el medio de copia de seguridad.
Excelencia Acadmica
Excelencia Acadmica
90
Excelencia Acadmica
Crear ndices.
91
Excelencia Acadmica
SQL Server utiliza las partes del registro de transacciones que se capturan en el
archivo de copia de seguridad para asegurar la coherencia de los datos cuando se
restaura la copia de seguridad.
Ejemplo 1
En este ejemplo se crea un dispositivo de copia de seguridad con el nombre
lgico AWorksBac y se hace una copia de seguridad completa de la base de
datos.
USE master
EXEC sp_addumpdevice 'disk', 'AWorksBac', 'C:\MyBackupDir\AWorksBac.bak'
BACKUP DATABASE AdventureWorks TO AWorksBac
Ejemplo 2
En este ejemplo se hace una copia de seguridad completa de la base de datos
en el archivo AWorksBac y se sobrescriben las copias de seguridad anteriores
de ese archivo.
BACKUP DATABASE AdventureWorks TO AWorksBac WITH INIT
Ejemplo 3
En este ejemplo se anexa una copia de seguridad completa de la base de
datos al archivo AWorksBac. Las copias de seguridad anteriores del archivo
siguen intactas.
BACKUP DATABASE AdventureWorks TO AWorksBac WITH NOINIT
Ejemplo 4
En este ejemplo se crea un archivo de copia de seguridad en disco y se hace la
copia de seguridad completa de la base de datos en ese archivo.
BACKUP DATABASE Northwind TO DISK = D:\Temp\MyTempBackup.bak
b) Copia de seguridad diferencial de la base de datos
Debe hacer una copia de seguridad diferencial para reducir el tiempo necesario
para la restauracin de una base de datos que se modifica con frecuencia. Haga
una copia de seguridad diferencial slo si ha hecho una copia de seguridad
completa de la base de datos. En una copia de seguridad diferencial, SQL Server:
Copia las partes de la base de datos que han cambiado desde la ltima
copia de seguridad completa.
Para determinar qu pginas han cambiado desde la ltima copia de
seguridad completa de la base de datos, SQL Server compara el LSN de la
pgina con el LSN de sincronizacin de la ltima copia de seguridad
completa.
Cuando se hace una copia de seguridad diferencial, SQL Server copia
extensiones en lugar de pginas individuales. Se hace una copia de una
92
Excelencia Acadmica
Cuando haga una copia de seguridad diferencial, tenga en cuenta los siguientes
hechos e instrucciones:
Sintaxis parcial
BACKUP DATABASE {nombreBaseDeDatos | @varNombreBaseDeDatos} TO
<dispositivoDeCopia> [, ...n] [WITH [DIFFERENTIAL] ]
Ejemplo
En este ejemplo se crea una copia de seguridad diferencial en un archivo de copia
de seguridad temporal.
BACKUP DATABASE AdventureWorks TO
DISK = 'D:\MyData\MyDiffBackup.bak'
WITH DIFFERENTIAL
c) Copia de seguridad del registro de transacciones de la base de datos
Las copias de seguridad del registro de transacciones se hacen para grabar todos
los cambios que se realizan en la base de datos. Se suelen hacer cuando se
efectan copias de seguridad completas de la base de datos:
sin
la
93
Excelencia Acadmica
Sintaxis parcial
BACKUP LOG {baseDeDatos | @varDeBaseDeDatos} TO <dispositivoDeCopia
> [, n] [WITH [{INIT | NOINIT}] ]
Ejemplo
En este ejemplo se crea un dispositivo de copia de seguridad para el registro y se
hace la copia de seguridad del registro de transacciones de la base de datos
AdventureWorks.
USE master
EXEC
sp_addumpdevice
'D:\Backup\AWorksBacLog.bak'
'disk',
'AWorksBacLog',
Excelencia Acadmica
Slo copia los archivos de base de datos que especifique en la opcin FILE
o FILEGROUP.
Debe hacer copias de seguridad del registro de transacciones para que los
archivos restaurados sean coherentes con el resto de la base de datos.
Sintaxis parcial
BACKUP DATABASE {baseDeDatos | @varDeBaseDeDatos}
[<archivoOGrupoDeArchivos> [, ...m]] TO <dispositivoDeCopia> [, n]]
Donde <archivoOGrupoDeArchivos> es: {FILE = {nombreArchivoLgico |
@varNombreArchivoLgico} | FILEGROUP = {nombreGrupoLgico |
@varNombreGrupoLgico } }
e) Copia de seguridad Parcial
f)
Una copia de seguridad parcial es similar a un full backup pero un backup parcial
no contiene todos los grupos de archivos.
Una copia de seguridad parcial es una copia de seguridad de todos los datos del
grupo de archivos principal, todos los grupos de archivos de lectura y escritura, y
los archivos o grupos de archivos de slo lectura opcionalmente especificados.
Una copia de seguridad parcial de una base de datos de slo lectura contiene
nicamente el grupo de archivos principal
.
Copia de seguridad Solo Copia
Normalmente, la realizacin de una copia de seguridad cambia la base de datos y
afecta a la forma de restaurar las copias de seguridad posteriores. Sin embargo, a
veces es til realizar una copia de seguridad con un fin especfico sin afectar a los
procedimientos generales de copia de seguridad y restauracin de la base de
datos. Con este propsito, SQL Server 2005 introduce copias de seguridad de slo
copia. Estas copias de seguridad son independientes de la secuencia peridica de
copias de seguridad de SQL Server
95
Excelencia Acadmica
Una parte de copia de seguridad que define el tipo y la frecuencia de las copias de
seguridad, la naturaleza y la velocidad del hardware necesario, cmo se prueban
las copias de seguridad, y dnde y cmo se almacenan los medios de copia de
seguridad.
La naturaleza de cada una de las bases de datos: el tamao, los patrones de uso,
la naturaleza del contenido, los requisitos de los datos, etc.
96
Excelencia Acadmica
Proceso de restauracin:
Para recuperar la base de datos debe restaurar la copia de seguridad completa
de la base de datos a partir de la copia de las 6:00 p.m. del da anterior con el
fin de sobrescribir la versin daada de la base de datos.
La limitacin de esta solucin es que se pierden todas las modificaciones
realizadas en los datos desde la ltima copia de seguridad.
97
Excelencia Acadmica
98
Excelencia Acadmica
Proceso de restauracin :
Para recuperar la base de datos, debera realizar los pasos siguientes:
99
Excelencia Acadmica
Proceso de restauracin
Para recuperar la base de datos, debera realizar los pasos siguientes:
1. Haga una copia de seguridad del registro de transacciones, si es posible.
Utilice la opcin WITH NO_TRUNCATE.
2. Restaure la copia de seguridad completa de la base de datos que se cre el
domingo a la 1:00 a.m.
3. Restaure la copia de seguridad diferencial que se cre el martes a las 6:00
p.m. Este archivo de copia de seguridad es la copia de seguridad diferencial
ms reciente y contiene todos los cambios realizados en la base de datos
desde la copia de seguridad completa de la base de datos del domingo a la
1:00 a.m.
100
Excelencia Acadmica
101
Excelencia Acadmica
Proceso de restauracin
Para recuperar la base de datos, debera realizar los pasos siguientes:
1. Haga una copia de seguridad del registro de transacciones, si es posible.
Utilice la opcin WITH NO_TRUNCATE.
2. Restaure la copia de seguridad de Archivo2 que se cre el mircoles a la
1:00 a.m.
3. Aplique todas las copias de seguridad del registro de transacciones que se
hayan creado desde la 1:00 a.m. del mircoles.
4. Aplique el registro de transacciones creado al comienzo del proceso de
restauracin para recuperar los datos. Al aplicar todos los registros de
transacciones hace que los objetos de Archivo2 sean coherentes con el
resto de la base de datos.
El rendimiento que se obtiene con esta estrategia es el resultado de que
slo se aplican los sucesos del registro de transacciones que afectan a los
datos que estn almacenados en Archivo2. Los sucesos del registro de
transacciones anteriores a la 1:00 a.m. del mircoles no se utilizan. Slo se
aplican las transacciones de Archivo2 posteriores a la 1:00 a.m. del
mircoles.
102
Excelencia Acadmica
[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.
Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
103
Excelencia Acadmica
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm
En la siguiente unidad temtica trataremos aspectos relacionados a la administracin de seguridad de una base
de datos.
2.
3.
4.
5.
6.
7.
104
Si realiza un backup diferencial de AdventureWorks cada cuatro horas empezando a las 4:00, con un full
backup que se ejecute a la media noche. Qu data obtiene el backup diferencial que se ejecut a media
noche?
_____________________________________________________________________________________
_____________________________________________________________________________________
___________________________________________
Se realiza un full backup de AdventureWorks que se completa a media noche. Backups diferenciales son
programados para ejecutarse cada 4 horas empezando de las 4:00. Backups del log de transacciones son
programados para correr cada cinco minutos. Que informacin contiene el backup del log de
transacciones creado a las 9:15?
_____________________________________________________________________________________
_____________________________________________________________________________________
___________________________________________
Qu estrategia de copias de seguridad elegira si trabajara en una entidad financiera? Explique su
respuesta
_____________________________________________________________________________________
_________________________________________________________
_____________________________________________________________________________________
Qu acciones debe tomar en cuenta al momento de crear copias de seguridad?
_____________________________________________________________________________________
_____________________________________________________________________________________
En qu casos usara copias de seguridad diferenciales?
_____________________________________________________________________________________
_____________________________________________________________________________________
En qu casos usara copias de seguridad del archivo de registro de transacciones?
_____________________________________________________________________________________
_____________________________________________________________________________________
Cules son los pasos para realizar ccpias de seguridad programadas?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________
Excelencia Acadmica
105
Excelencia Acadmica
106
Excelencia Acadmica
ADMINISTRACION DE LA SEGURIDAD
La seguridad es uno de las principales preocupaciones de los administradores de sistemas, redes y base
de datos. Mientras un administrador est implementando la seguridad es natural que pueda estar preocupado por
los ataques externos. Pero existe ms que eso. Es esencial primero implementar la seguridad dentro de la
organizacin, para asegurar que solo las personas autorizadas tengan acceso a los datos. Si no se establece estas
medidas de seguridad, lo ms seguro es encontrar a alguien destruyendo nuestros datos o vendiendo los secretos
de la compaa a nuestros competidores, o alguien accediendo a la informacin privada de otros. Lo primero que se
tiene que hacer es un plan de seguridad, el cual identifique que usuarios en la organizacin pueden ver
determinados datos y que actividades deben realizar en la base de datos.
107
Excelencia Acadmica
108
Excelencia Acadmica
Permite agregar grupos de usuarios a SQL Server con slo agregar una
nica cuenta de inicio de sesin.
Permite que los usuarios tengan acceso a SQL Server rpidamente, sin
necesidad de recordar otra cuenta de inicio de sesin y contrasea.
109
Excelencia Acadmica
Una autenticacin correcta con Kerberos requiere que tanto el sistema cliente como
el servidor que ejecutan el servicio deseado tengan instalado el sistema operativo
Windows 2000/2003 y que utilicen la biblioteca de red de sockets TCP/IP, y que el
nombre principal de servicio (SPN) est adecuadamente configurado para el
servicio de SQL Server.
d) Representacin y delegacin:
La representacin y la delegacin permiten que SQL Server utilice las credenciales
de seguridad del cliente original al tener acceso a recursos de los servidores
locales o remotos.
Representacin
En ciertas circunstancias, SQL Server debe presentar una identidad del
cliente a los recursos a los que tiene acceso en representacin del cliente,
por ejemplo, al sistema de archivos. El servidor puede representar el
contexto de seguridad del cliente para permitir que se realicen
comprobaciones de acceso o autenticaciones en la identidad del cliente, lo
que garantiza que el acceso a los recursos ni se restringe ni se ampla ms
all de los propios permisos del cliente.
Delegacin
SQL Server 2000 tambin admite la delegacin, que es la capacidad de
conectarse a varios servidores y, en cada cambio de servidor, conservar
las credenciales del cliente original. Por ejemplo, si un usuario
(AWorks\SQLAdmin) se conecta a ServerA, que se conecta a ServerB a su
vez, ServerB sabe que la identidad de seguridad de la conexin es
AWorks\SQLAdmin.
Para utilizar la delegacin, todos los servidores a los que se conecte el
usuario deben ejecutar Windows 2000/2003 con la compatibilidad con
Kerberos habilitada, y el usuario debe utilizar Active Directory.
110
Excelencia Acadmica
Cifrado de red
SQL Server permite que se cifren los datos que se envan entre el cliente y el
servidor. Esto garantiza que cualquier aplicacin o usuario que intercepte los
paquetes de datos de la red no pueda ver los datos confidenciales, por ejemplo,
contraseas enviadas a travs de la red cuando los usuarios inician sesin en SQL
Server, o datos personales que contienen informacin acerca de los salarios
111
Excelencia Acadmica
f)
112
Como SQL Server tiene una sola cuenta de inicio de sesin para un grupo
de Windows, no es necesario realizar cambios en SQL Server cuando
cambia la pertenencia a los grupos de Windows. Esto impide que haya
objetos hurfanos (objetos cuyo propietario es un usuario que ya no existe
en SQL Server), siempre y cuando no elimine el grupo.
Excelencia Acadmica
Excelencia Acadmica
114
Excelencia Acadmica
Despus de agregar cuentas de inicio de sesin a SQL Server, puede asignarlas a cuentas
de usuario o funciones en cada una de las bases de datos a las que los usuarios tengan
acceso.
La tabla del sistema sysusers de una base de datos contiene una fila por cada usuario de
Windows, grupo de Windows, usuario de SQL Server o funcin de la base de datos. Los
permisos se aplican a las entradas de la tabla sysusers y se almacenan en la tabla
sysprotects de la base de datos actual.
Por ejemplo, en la ilustracin anterior, se les ha concedido a los miembros del grupo de
Windows payroll acceso a la base de datos Northwind. Despus de conectarse con SQL
Server, el usuario:
Tiene una conexin validada con SQL Server, porque su cuenta de usuario de
Windows 2000/2003 est en el grupo global de Windows 2000/2003 payroll.
Excelencia Acadmica
Tambin puede crear sus propias funciones de base de datos para representar las tareas
que realiza un tipo de empleados de la organizacin. Cuando un empleado cambia de
puesto de trabajo, slo tiene que agregar al empleado como miembro de la funcin o quitar
al empleado de la funcin cuando el empleado cambie de puesto de trabajo. No es
necesario conceder y revocar permisos de forma repetitiva cuando los empleados
empiezan o terminan una labor concreta. Si la funcin de un puesto de trabajo cambia, es
muy sencillo modificar los permisos de la funcin y hacer que los cambios se apliquen
automticamente a todos los miembros de la funcin.
a) Funciones fijas del servidor
116
Excelencia Acadmica
Cualquier miembro de una funcin fija del servidor puede agregar otras
cuentas de inicio de sesin a esa funcin.
No se puede eliminar.
Sin los permisos apropiados, un usuario se puede conectar a SQL Server, pero
slo puede llevar a cabo unas tareas limitadas. Sin permisos, los usuarios poseen
todos los permisos que se hayan concedido a la funcin public y pueden:
Ejecutar instrucciones que no requieran permisos, como la instruccin
PRINT.
Ver informacin de las tablas del sistema y ejecutar ciertos procedimientos
almacenados del sistema para obtener informacin de la base de datos
master y las bases de datos de usuario a las que tengan acceso.
Tener acceso a cualquier base de datos con una cuenta guest.
117
Excelencia Acadmica
Por ejemplo, una compaa puede constituir un comit benfico que incluya
empleados de diferentes departamentos en distintos niveles. Los empleados
necesitan tener acceso a una tabla especial del proyecto en la base de datos. No
existe ningn grupo de Windows que incluya slo a esos empleados y no hay
ninguna otra razn para crear uno en Windows. Podra crear una funcin definida
por el usuario, CharityEvent, para ese proyecto y luego agregar cuentas de
usuario de Windows individuales a la funcin. Cuando se apliquen los permisos, las
cuentas de usuario individuales de la funcin obtendrn acceso a la tabla.
Creacin de una funcin de base de datos definida por el usuario
Para crear una nueva funcin de base de datos, utilice el Administrador
corporativo de SQL Server o el procedimiento almacenado del sistema
sp_addrole. Por cada funcin definida por el usuario se agrega una entrada a
la tabla sysusers de la base de datos actual. Slo los miembros de la funcin
db_securityadmin o db_owner pueden ejecutar sp_addrole.
Al crear una funcin de base de datos, tenga en cuenta lo siguiente:
Cuando aplique permisos a la funcin, todos los miembros de la funcin
obtendrn el efecto del permiso, igual que si el permiso se hubiera aplicado
directamente a las propias cuentas de los miembros.
Asignacin de una cuenta de seguridad a una funcin de base de datos
definida por el usuario
118
Excelencia Acadmica
a) Tipos de Permisos:
119
Excelencia Acadmica
Permisos de instruccin:
Las actividades relativas a la creacin de bases de datos o de elementos
en una base de datos requieren una clase de permisos llamada permisos
de instruccin. Los permisos de instruccin ofrecen a los usuarios el
privilegio de emitir ciertas instrucciones Transact-SQL. Los permisos de
instruccin, como CREATE DATABASE, se aplican a la misma instruccin,
no al elemento especfico que se define en la base de datos. Slo los
miembros de la funcin sysadmin, db_owner o db_securityadmin
pueden conceder permisos de instruccin.
Permisos de objeto:
Las actividades relacionadas con los datos o la ejecucin de
procedimientos requieren una clase de permisos conocida como permisos
de objeto.
Permisos de tablas y vistas
Los permisos de objeto para tablas y vistas controlan la capacidad de
que los usuarios ejecuten las instrucciones SELECT, INSERT,
UPDATE y DELETE en la tabla o la vista.
Permisos de columna
Los permisos SELECT, UPDATE y REFERENCES se pueden aplicar
de forma selectiva a columnas individuales.
Cuando un usuario agrega una fila a una tabla que tiene una restriccin
FOREIGN KEY, o cambia los datos de una columna que tiene una
restriccin FOREIGN KEY, SQL Server tiene que validar los datos de la
columna con los datos a los que se haga referencia en la restriccin
FOREIGN KEY. Si el usuario no tiene permisos SELECT en la columna
o la tabla de referencia, se le debe conceder el permiso REFERENCES
para la columna.
Permisos de procedimientos almacenados
El permiso EXECUTE es el nico permiso de objeto para los
procedimientos almacenados.
Permisos predefinidos
Slo los miembros de funciones fijas o los propietarios de los objetos de
base de datos pueden desempear ciertas actividades. Los permisos que
ejecutan dichas actividades se conocen como permisos predefinidos o
implcitos.
Permisos de funcin fija
Las funciones fijas tienen permisos administrativos implcitos. Por
ejemplo, un usuario que sea a miembro de la funcin sysadmin hereda
automticamente todos los permisos para hacer o leer cualquier cosa
en una instalacin de SQL Server. La funcin sysadmin tiene permisos
que no se pueden cambiar, as como permisos implcitos que no se
120
Excelencia Acadmica
Los permisos de un usuario o una funcin pueden estar en uno de tres estados: concedido,
denegado o revocado. Los permisos que no se han concedido ni denegado a un usuario
son neutros, como si se hubieran revocado. Los permisos se almacenan como entradas de
la tabla del sistema sysprotects en cada base de datos. En la tabla siguiente se describen
los tres estados de un permiso.
Instruccin
Estado de la entrada en la
tabla sysprotects
Descripcin
GRANT
Positivo
DENY
Negativo
REVOKE
Ninguno
121
Excelencia Acadmica
Excelencia Acadmica
123
Excelencia Acadmica
Excelencia Acadmica
los datos confidenciales mediante el control de todos los permisos y del acceso al
puerto escucha.
Seguridad mediante servidores de seguridad
Los servidores de seguridad constituyen una de las mejores maneras de proteger
el sistema frente a ataques de usuarios a travs de Internet. Un servidor de
seguridad restringe tanto el acceso entrante como el saliente, concediendo
permisos a los usuarios de Windows o impidiendo que los datos pasen a travs de
determinados puertos TCP/IP. Tambin analizan todo el trfico que se produce
entre la red e Internet.
Puede utilizar las caractersticas del servidor de seguridad de Proxy Server para
controlar el flujo de informacin que va a Proxy Server y el que viene de l. Proxy
Server admite el filtrado de paquetes entrantes y salientes. Determina de forma
dinmica qu paquetes pueden pasar al circuito de red interno y a los servicios
proxy de nivel de aplicacin. Los filtros de paquetes individuales se configuran para
que slo los paquetes especificados pasen a travs de Proxy Server. Esto permite
que los puertos se abran automticamente, slo cuando es necesario, y que se
cierren en cuanto finalice la comunicacin. Esta prctica reduce el nmero de
puertos expuestos en cualquier direccin y proporciona un alto nivel de seguridad a
la red.
A los sitios Web normalmente se tiene acceso a travs del puerto 80 y este puerto
se debe habilitar para que los usuarios de Internet puedan tener acceso a su sitio
web. Si el sitio utiliza pginas Active Server (ASP) o algn otro mecanismo de
secuencias de comandos para tener acceso a los datos desde SQL Server y
devolverlos al cliente como Lenguaje de marcado de hipertexto (HTML), entonces
no necesitara habilitar ningn otro puerto.
Muchas aplicaciones basadas en Web utilizan dos servidores de seguridad. El
primero separa el servidor Web de Internet y permite el acceso slo a travs del
puerto 80. El servidor Web reside en un rea semisegura denominada red de
permetro y tiene acceso a la base de datos de SQL Server a travs de un segundo
servidor de seguridad situado entre la red de permetro y la corporativa. El nmero
de socket oficial de la Autoridad para la asignacin de nmeros en Internet (IANA,
Internet Assigned Numbers Authority) para SQL Server es 1433 (aunque se puede
configurar estableciendo una clave de Registro). Al configurar el acceso a SQL
Server mediante TCP/IP, es necesario dejar que pasen los datos a travs de este
puerto. A una instancia con nombre de SQL Server se le asignar automticamente
un puerto cuando se inicie la instancia, pero si desea utilizar servicios proxy con
una instancia con nombre, debera sobrescribir sta o asignar un puerto fijo a la
instancia con nombre utilizando la Herramienta de red de SQL Server. Si la
comunicacin se efecta a travs de COM+, el puerto 135 debe estar habilitado
junto con un intervalo de valores que el protocolo COM+ utiliza para negociar la
conectividad con el cliente.
Enrutadores
Las caractersticas de enrutador incorporadas en los servidores Windows permiten
a los servidores actuar como enrutadores. Un enrutador (o puerta de enlace) es un
dispositivo que reenva paquetes de Protocolo Internet (IP) de una red a otra. Para
configurar los datos que entran en la red y que salen de ella, puede utilizar un
enrutador junto con un servidor de seguridad.
125
Excelencia Acadmica
Se puede configurar la directiva de seguridad IPSec para cada dominio o para cada
equipo local definiendo un conjunto de reglas y filtros que se aplicarn para regular
la comunicacin segura con clientes IPSec determinados.
Capa de sockets seguros
SQL Server puede utilizar el nivel de socket seguro (SSL) para cifrar todos los
datos transmitidos entre un cliente y un servidor.
El cifrado SSL slo funciona con instancias de SQL Server a las que se ha
asignado un certificado de una autoridad emisora de certificados (CA) pblica (CA).
Los certificados de servidor permiten al cliente identificar con toda seguridad el
servidor antes de compartir informacin confidencial. El equipo cliente debe tener
tambin un certificado de una entidad emisora de certificados raz de la misma
autoridad. Los certificados de cliente contienen informacin personal acerca de los
clientes que solicitan acceso al servidor.
La informacin de los certificados se utiliza para cifrar los datos. De esta manera se
garantiza que slo el servidor y el cliente pueden descifra la informacin.
Se puede utilizar la Herramienta de red de SQL Server para habilitar el cifrado SSL
para todos los protocolos de servidor habilitados. El cifrado se activa o desactiva
para todos los protocolos de servidor habilitados y no se puede especificar el
cifrado para un protocolo concreto.
126
Excelencia Acadmica
[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.
Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm
127
Excelencia Acadmica
1.
Qu pueden hacer los usuarios despus de ser autenticados si sus cuentas de inicio de sesin no tienen
permisos en ninguna base de datos?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________
2.
3.
4.
5.
128
Excelencia Acadmica
Describe las razones por las que es importante la supervisin de SQL Server.
129
Excelencia Acadmica
La supervisin de un sistema puede ser una tarea compleja debido al gran nmero de
variables implicadas. Puede utilizar diferentes estrategias para plantear la optimizacin del
rendimiento del sistema en reas especficas. Dichas estrategias deben integrarse de
modo que sea posible localizar cualquier causa y efecto relacionados. El desarrollo de este
plan se inicia con las fases de requisitos del usuario y diseo de aplicaciones. A partir de
este punto, el plan debe abarcar la identificacin de las mejoras de rendimiento en las
reas ms tradicionales.
a) Estrategias para la optimizacin del rendimiento
El objetivo de la optimizacin es mejorar el rendimiento. Hay muchos factores que
pueden afectar al rendimiento, por lo que necesitar varias estrategias para
optimizar una instancia de la base de datos. Dichas estrategias deben mejorar el
rendimiento en ambos extremos de la aplicacin, el servidor y el usuario o cliente
empresarial. Hay dos indicadores del rendimiento:
130
Excelencia Acadmica
Conocer los datos y cmo se seleccionan, cules son los posibles valores,
qu informacin representan y cmo se utilizan.
Excelencia Acadmica
132
Excelencia Acadmica
Una vez establecida la referencia, podr comparar con ella el rendimiento real del
servidor en cada momento y as determinar las reas que requieren investigacin.
Las cifras que estn por encima o por debajo de la referencia indican las reas en
las que podra realizarse una investigacin ms detallada
133
Excelencia Acadmica
Los clientes pueden tener cuellos de botella que les impidan el acceso al
servidor.
Para descubrir los lmites reales, puede simular una carga de trabajo en SQL
Server mientras supervisa el sistema con las herramientas descritas en este
mdulo.
f) Tareas de supervisin habituales:
SQL Server proporciona herramientas que puede utilizar para examinar diversos
aspectos de su rendimiento. Estas herramientas ofrecen distintos grados de detalle
para ayudarle a aislar las reas con problemas. Su objetivo debe ser determinar el
factor que tiene un mayor efecto en el rendimiento. A menudo, para aislar el cuello
de botella es necesario repetir varias veces este proceso de supervisin.
Supervisin del sistema:
Al evaluar el sistema, obsrvelo primero desde una perspectiva ms general, para
asegurarse de que dispone de hardware suficiente para satisfacer los requisitos de
las tareas que debe realizar. A continuacin, valore los efectos de la configuracin
del sistema operativo y el diseo de la aplicacin. Para este tipo de supervisin,
puede utilizar:
Analizador de SQL.
134
Excelencia Acadmica
Herramienta
Analizador de SQL
Server
Supervisar el uso
de recursos
(Monitor de
sistema)
Descripcin
El Analizador de SQL Server realiza un seguimiento de
los eventos de procesos del motor, como el inicio de
un lote o una transaccin, que permite supervisar la
actividad del servidor y de la base de datos (por
ejemplo, interbloqueos, errores graves o actividad de
inicio de sesin). Puede capturar datos del Analizador
de SQL Server en un archivo o una tabla de SQL
Server para su anlisis posterior y tambin reproducir
paso a paso los eventos capturados en SQL Server,
para ver qu sucedi exactamente.
La funcin principal del Monitor de sistema es hacer un
seguimiento del uso de los recursos, como el nmero
de solicitudes de pgina del administrador de bfer
activas, que permite supervisar el rendimiento y
actividad del servidor mediante objetos y contadores
predefinidos o contadores definidos por el usuario para
supervisar eventos. El Monitor de sistema (Monitor de
rendimiento en Microsoft Windows NT 4.0) recopila
contadores y porcentajes en lugar de datos acerca de
los eventos (por ejemplo, uso de la memoria, nmero
de transacciones activas, nmero de bloqueos
bloqueados o actividad de la CPU). Puede establecer
umbrales en contadores especficos para generar
alertas que notifiquen a los operadores.
El Monitor de sistema funciona en los sistemas
operativos Microsoft Windows Server y Windows.
Puede supervisar (remota o localmente) una instancia
de SQL Server en Windows NT 4.0 o posterior.
La diferencia clave entre el Analizador de SQL Server
y el Monitor de sistema es que el Analizador de SQL
Server supervisa los eventos del motor de base de
datos, mientras que el Monitor de sistema supervisa el
uso de los recursos asociado con los procesos del
servidor.
Monitor de
actividad (SQL
Server
Management
Studio)
135
Excelencia Acadmica
sp_trace_generateevent (Transact-SQL)
sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL)
sp_trace_setstatus (Transact-SQL)
Supervisar los
registros de
errores
Procedimientos
almacenados del
motor de base de
datos (TransactSQL)
sp_lock (Transact-SQL)
Proporciona informacin de instantnea acerca de
bloqueos, incluidos los identificadores de objeto y de
ndice, el tipo de bloqueo y el tipo o recurso al que se
aplica el bloqueo.
sp_spaceused (Transact-SQL)
Muestra una estimacin de la cantidad actual de
espacio en disco que utiliza una tabla (o toda la base
de datos).
sp_monitor (Transact-SQL)
Muestra estadsticas que incluyen el uso de la CPU, el
uso de E/S y el tiempo de inactividad desde la ltima
vez que se ejecut sp_monitor.
136
DBCC (TransactSQL)
Funciones
Excelencia Acadmica
(Transact-SQL)
Marcas de traza
(Transact-SQL)
Optimizar el
diseo fsico de
las bases de datos
Instrucciones DBCC
Puede utilizar instrucciones DBCC para comprobar el rendimiento y la actividad, as
como la coherencia lgica y fsica de una base de datos. La tabla siguiente
contiene algunas instrucciones DBCC que puede utilizar para supervisar el
rendimiento.
Instruccin DBCC
SQLPERF
OPENTRAN
SHOW_STATISTICS
CHECKDB
137
Excelencia Acadmica
CHECKFILEGROUP
CHECKTABLE
Variables globales
Puede utilizar las variables globales siguientes para obtener estadsticas
especficas o informacin que pueda consultar.
Variable global
Objetivo
@@connections
@@error
@@spid
@@procid
Descripcin
Administrador de
tareas
Agente de supervisin
de red
Excelencia Acadmica
Tipo
Descripcin
Uso de la memoria
139
Excelencia Acadmica
Evento o actividad
Analizad
or de
SQL
Server
Monitor
de
sistema
Anlisis de
tendencias
Reproduccin de los
eventos capturados
Supervisin ad hoc
Generacin de
alertas
Monitor
de
activida
d
Transac
t-SQL
Registro
s de
errores
Interfaz grfica
Uso en aplicaciones
personalizadas
S1
S
S
Excelencia Acadmica
Descripcin
Pautas
141
Excelencia Acadmica
Memoria: Bytes
disponibles
Memoria:
Pginas/seg.
Proceso: Fallos de
pgina/seg./Instanc
ia de SQL Server
Para obtener un rendimiento ptimo del procesador debe haber un equilibrio entre
el rendimiento y los tiempos de respuesta.
Rendimiento del procesador
Al examinar el uso del procesador, tenga en cuenta el tipo de trabajo que realizar
la instancia de SQL Server. Si SQL Server debe realizar un gran nmero de
clculos, como consultas que requieran agregados o consultas limitadas a la
memoria que no requieran E/S de disco, puede utilizarse todo el tiempo del
procesador.
En los sistemas multiprocesador deber supervisar una instancia independiente de
este contador en cada procesador. Para determinar el promedio de todos los
procesadores, utilice el contador Sistema: % de tiempo de procesador total.
142
Excelencia Acadmica
Una tasa de procesador que se mantiene alta de forma continuada puede indicar
que necesita realizar una actualizacin de CPU o agregar ms procesadores.
Asimismo, una tasa de utilizacin de CPU que se mantiene alta de forma
continuada podra indicar un ajuste o un diseo deficientes de la aplicacin
Subprocesos
Cada instancia de SQL Server constituye un proceso de sistema operativo
independiente. Las instancias de SQL Server emplean subprocesos de Windows y,
en ocasiones, intraprocesos, para administrar estas tareas simultneas de forma
eficaz.
Los procesos son instancias de una aplicacin, por ejemplo, SQL Server,
que pueden tener una o varias tareas.
143
Excelencia Acadmica
Objeto: Contador
Descripcin
Pautas
Supervisa el porcentaje de
tiempo que el procesador
emplea en procesar
subprocesos no inactivos
Supervisa el nmero de
veces por segundo que el
procesador realiza cambios
entre subprocesos
En equipos con
multiprocesador, si el valor
de este contador llega a
8000 y el valor del contador
Procesador: % de tiempo
de procesador est por
encima del 90%, considere
la posibilidad de habilitar la
programacin en modo de
intraproceso de SQL Server.
Sistema: Longitud
de cola de
procesador
Supervisa el nmero de
subprocesos a la espera de
utilizar el tiempo de
procesador
Procesador:
%Tiempo
privilegiado
Supervisa el porcentaje de
tiempo que el procesador
emplea del tiempo
privilegiado en la ejecucin
de los comandos del ncleo
del sistema operativo
Windows 2000, como el
procesamiento de
solicitudes de E/S de SQL
Server
Si se emplea un porcentaje
significativo de tiempo de
procesador en ejecutar
comandos del ncleo del
sistema y el valor de los
contadores de disco duro es
alto, considere la posibilidad
de mejorar el rendimiento
del subsistema de E/S del
disco duro.
Procesador:
%Tiempo del
usuario
Supervisa el porcentaje de
tiempo que el procesador
emplea en ejecutar
procesos del usuario, como
el propio SQL Server
Procesador: % de
tiempo de
procesador
Sistema: Cambios
de contexto/Seg.
144
Excelencia Acadmica
SQL Server usa llamadas de entrada y salida (E/S) de Windows para leer y escribir
en el disco, y administra cundo y cmo se realiza la entrada y salida en el disco
pero delega en Windows la realizacin de las operaciones de E/S subyacentes. El
subsistema de E/S incluye el bus del sistema, tarjetas controladoras de disco,
discos, unidades de cinta, unidades de CD-ROM y muchos otros dispositivos de
E/S. Habitualmente, los discos representan el mayor cuello de botella de un
sistema.
Supervisin de la E/S de disco fsico
La supervisin de la entrada y salida en el disco duro le ayudar a determinar si la
escritura y lectura de pginas supera la capacidad del subsistema de disco duro.
Un subsistema de disco duro ocupado tambin puede indicar un exceso de entrada
y salida de archivos de paginacin provocada por una cantidad de memoria
insuficiente. La tabla siguiente describe los contadores de rendimiento de objeto
que puede usar para supervisar el rendimiento del subsistema del disco duro.
Objeto: Contador
Descripcin
Pautas
Supervisa el porcentaje
de tiempo que el disco
duro emplea en atender
las solicitudes de lectura
y escritura
Supervisa el promedio
de solicitudes de lectura
y escritura que se ponen
en cola
Supervisa la tasa de
operaciones de lectura
Supervisa la tasa de
operaciones de escritura
Excelencia Acadmica
duro.
Si estos contadores de disco duro indican que est sobrecargando la capacidad del
subsistema de disco duro, considere la posibilidad de:
d) Supervisin de bloqueos
SQL Server bloquea los recursos mediante distintos modos de bloqueo que
determinan el tipo de acceso que las transacciones actuales tendrn a los
recursos. El bloqueo de filas aumenta la simultaneidad, pero tambin la
sobrecarga, ya que ser necesario mantener ms bloqueos en caso de que se
bloquee un gran nmero de filas. El bloqueo de tablas es caro en lo que respecta a
la simultaneidad pero produce una sobrecarga menor, ya que reduce el nmero de
bloqueos que mantener.
Interbloqueos
Los interbloqueos pueden producirse cuando dos o ms procesos esperan
simultneamente a que finalicen los bloqueos que ha establecido cada uno.
Ninguno de los procesos liberar el bloqueo que mantiene hasta que pueda
obtener el recurso que permanece bloqueado por el otro proceso. Cuando se haya
identificado un interbloqueo, para finalizarlo, SQL Server elegir automticamente
el subproceso (la vctima del interbloqueo) que puede romper el interbloqueo sin
que se produzcan tiempos de espera. Puede utilizar la opcin prioridad para
definir el intervalo de tiempo durante el que SQL Server esperar entre la deteccin
de un bloqueo y la declaracin de que se trata de un interbloqueo.
Bloqueos de cierre
La mayor parte de los problemas de bloqueo se producen debido a que un nico
proceso mantiene bloqueos durante un perodo prolongado, lo que causa una
cadena de procesos bloqueados a la espera de que otros procesos liberen sus
bloqueos. SQL Server no identifica los bloqueos de cierre y los resuelve
automticamente, lo que deja el recurso bloqueado. Debe supervisar la existencia
de bloqueos de cierre para poder eliminarlos manualmente. Mediante la creacin
de una configuracin de tiempo de espera de bloqueo en la aplicacin podr
impedir que se produzcan bloqueos de cierre. Esto permitir a la aplicacin
identificar la existencia de bloqueos de cierre y deshacer la transaccin, en lugar de
esperar indefinidamente o volver a emitir la instruccin bloqueada.
146
Excelencia Acadmica
Administracin de bloqueos
El Monitor de sistema de Windows supervisa la actividad global de bloqueo del
sistema mediante el Contador de objetos de bloqueo de SQL Server. Para trazar y
registrar la actividad de bloqueo de forma detallada, use el Analizador de SQL. El
objeto Bloqueos del Administrador corporativo de SQL Server proporciona
informacin acerca de los bloqueos de SQL Server en tipos de recursos
individuales. Adems, puede supervisar la actividad de SQL Server mediante los
procedimientos almacenados de sistema sp_who y sp_lock.
Excelencia Acadmica
148
Excelencia Acadmica
[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.
Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm
149
Excelencia Acadmica
2.
3.
Qu aspectos son necesarios monitorear para asegurar un buen rendimiento de la base de datos?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
4.
150
Excelencia Acadmica
AUTOMATIZACION DE TAREAS
ADMINISTRATIVAS
SQL Server Agent es el componente de SQL Server responsable de automatizar las tareas administrativas
de SQL Server. Para que SQL Server Agent ejecute trabajos y active alertas, debe estar en ejecucin en todo
momento y disponer de los permisos necesarios.
Excelencia Acadmica
Trabajos
Un trabajo es una serie especificada de acciones que realiza el Agente SQL
Server. Utilice los trabajos para definir tareas administrativas de manera que se
ejecuten una o ms veces, y se pueda supervisar si se realizan o no
correctamente. Un trabajo se puede ejecutar en un servidor local o en varios
servidores remotos. Existen varias maneras de ejecutar trabajos:
Programaciones
Una programacin especifica cundo se ejecuta un trabajo. Se puede ejecutar ms
de un trabajo en la misma programacin y se puede aplicar ms de una
programacin al mismo trabajo. Una programacin puede definir las condiciones
siguientes del momento en el que se ejecuta un trabajo:
Peridicamente.
Alertas
Una alerta es una respuesta automtica a un evento especfico. Por ejemplo, un
evento puede ser el inicio de un trabajo o que los recursos del sistema alcancen un
umbral especfico. Debe definir las condiciones en las que se genera una alerta.
Una alerta puede responder a una de las condiciones siguientes:
152
Excelencia Acadmica
Ejecutar un trabajo
Operadores
Los operadores definen informacin de contacto para las personas responsables
del mantenimiento de una o varias instancias de SQL Server. En algunas
compaas, las responsabilidades de operador estn asignadas a una sola
persona. En compaas con varios servidores, muchas personas comparten las
responsabilidades de operador. Un operador no contiene informacin de seguridad
y no define una entidad de seguridad.
SQL Server puede notificar a los operadores de alertas mediante una o varias de
las opciones siguientes:
Correo electrnico
NET SEND
Para enviar a los operadores notificaciones por correo electrnico o localizador,
deber configurar el Agente SQL Server para utilizar Correo electrnico de base de
datos o SQL Mail.
Puede definir un operador como alias de un grupo de personas. De esta manera,
todos los miembros de este alias pueden recibir notificaciones al mismo tiempo.
153
Excelencia Acadmica
Servidores proxy:
El Agente SQL Server utiliza servidores proxy para administrar contextos de seguridad. Se
puede utilizar un servidor proxy en ms de un paso de trabajo. Los miembros de la funcin
fija de servidor sysadmin pueden crear servidores proxy.
Cada proxy se corresponde con unas credenciales de seguridad. Cada proxy puede
asociarse a un conjunto de subsistemas y un conjunto de inicios de sesin. El proxy slo se
puede utilizar con pasos de trabajo que utilizan un subsistema asociado al proxy. Para
crear un paso de trabajo que utilice un proxy determinado, el propietario del trabajo debe
utilizar un inicio de sesin asociado al proxy o debe ser miembro de una funcin con
acceso ilimitado a los servidores proxy. Los miembros de la funcin fija de servidor
sysadmin tienen acceso ilimitado a los servidores proxy. Los miembros de
SQLAgentUserRole, SQLAgentReaderRole o SQLAgentOperatorRole slo pueden
utilizar servidores proxy para los que dispongan de acceso especfico. Cada usuario que
sea miembro de alguna de estas funciones fijas de base de datos del Agente SQL Server
debe tener acceso a servidores proxy especficos para poder crear pasos de trabajo que
utilicen estos proxy.
Excelencia Acadmica
Para realizar sus funciones, el Agente SQL Server debe configurarse de modo que
utilice las credenciales de una cuenta que sea miembro de la funcin fija de
servidor sysadmin en SQL Server. La cuenta debe tener los siguientes permisos
de Windows:
Adjust memory quotas for a process (Ajustar las cuotas de memoria de un
proceso)
Act as part of the operating system (Actuar como parte del sistema
operativo)
Bypass traverse checking (Omitir la comprobacin transversal)
Log on as a batch job (Iniciar sesin como proceso por lotes)
Log on as a service (Iniciar sesin como servicio)
Replace a process level token (Reemplazar un smbolo de nivel de
proceso)
Para comprobar que todos estos permisos necesarios de Windows estn
establecidos:
1 Haga clic en Inicio, Panel de control, Herramientas administrativas y
Directiva de seguridad local.
2 Expanda la carpeta Directivas locales y, a continuacin, haga clic en la
carpeta Asignacin de derechos de usuario.
3 Repita los pasos siguientes para cada permiso:
Excelencia Acadmica
156
Excelencia Acadmica
Cuenta integrada. Puede elegirla de una lista con las siguientes cuentas
de servicio de Windows integradas:
6. IMPLEMENTAR TRABAJOS
Puede utilizar los trabajos del Agente SQL Server para automatizar tareas administrativas
rutinarias y ejecutarlas peridicamente, lo que permite que la administracin sea ms
eficaz.
Un trabajo es una serie especfica de operaciones que el Agente SQL Server realiza
secuencialmente. Un trabajo puede realizar una amplia variedad de actividades, incluidos
scripts Transact-SQL, aplicaciones de lnea de comandos, scripts de Microsoft ActiveX,
paquetes de Integration Services, comandos y consultas de Analysis Services o tareas de
replicacin. Los trabajos pueden ejecutar tareas repetitivas o que se pueden programar y
pueden notificar automticamente a los usuarios el estado del trabajo mediante alertas,
simplificando mucho la administracin de SQL Server.
Puede ejecutar los trabajos manualmente o configurarlos para que se ejecuten de acuerdo
con una programacin o en respuesta a alertas.
a) Crear trabajos
Un trabajo es una serie especfica de operaciones que el Agente SQL Server
realiza secuencialmente. Un trabajo puede realizar una amplia variedad de
actividades, incluidas secuencias de comandos Transact-SQL, aplicaciones de
smbolo del sistema, secuencias de comandos de Microsoft ActiveX, paquetes de
Integration Services, comandos y consultas de Analysis Services o tareas de
rplica. Los trabajos pueden ejecutar tareas repetitivas o que se pueden
programar, y pueden notificar automticamente a los usuarios el estado del trabajo
mediante alertas, lo cual simplifica en gran medida la administracin de SQL
Server.
157
Excelencia Acadmica
Para crear un trabajo, el usuario debe ser miembro de una de las funciones fijas de
base de datos del Agente SQL Server o de la funcin fija de servidor sysadmin.
Slo pueden editar el trabajo el propietario de ste o los miembros de la funcin
sysadmin.
Se puede escribir un trabajo para que se ejecute en la instancia local de SQL
Server o en varias instancias de una empresa. Para ejecutar trabajos en varios
servidores, debe configurar al menos un servidor principal, y uno o ms servidores
de destino.
b)
Tareas de rplica.
158
Excelencia Acadmica
Peridicamente.
Como alternativa a las programaciones de trabajo, tambin puede crear una alerta
que responda a un evento ejecutando un trabajo.
Para impedir que se ejecute un trabajo programado, debe deshabilitar la
programacin, deshabilitar el trabajo, quitar la programacin del trabajo o detener
el servicio del Agente SQL Server. Aunque no est habilitada la programacin, se
puede ejecutar el trabajo en respuesta a una alerta o cuando un usuario lo ejecute
manualmente. Si no est habilitada una programacin de trabajo, no estar
habilitada para ningn trabajo que la utilice.
Las programaciones deshabilitadas se deben volver a habilitar de manera explcita.
La modificacin de una programacin no la vuelve a habilitar automticamente.
159
Excelencia Acadmica
Mediante el uso del componente del Agente SQL Server de Microsoft SQL Server,
se pueden programar tareas administrativas de SQL Server
[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.
160
Excelencia Acadmica
Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm
161
Excelencia Acadmica
2.
3.
4.
5.
162
Excelencia Acadmica
1. REPLICACION
163
Excelencia Acadmica
164
Excelencia Acadmica
Suscriptores
Un suscriptor es una instancia de base de datos que recibe datos replicados. Un
suscriptor puede recibir datos de varios publicadores y publicaciones. En funcin
del tipo de rplica elegida, el suscriptor tambin puede devolver los datos
modificados al publicador o volver a publicar los datos en otros suscriptores.
Artculo
Un artculo identifica un objeto de base de datos incluido en una publicacin. Una
publicacin puede contener diferentes tipos de artculos, como tablas, vistas,
procedimientos almacenados y otros objetos. Cuando las tablas se publican como
artculos, se pueden usar filtros para restringir las columnas y filas de datos que se
envan a los suscriptores.
Publicacin
Una publicacin es un conjunto de uno o ms artculos de una base de datos. La
agrupacin de varios artculos en una publicacin permite especificar ms
fcilmente un conjunto de objetos y datos de bases de datos relacionados
lgicamente, que se replican como una unidad.
Suscripcin
Una suscripcin es una solicitud de una copia de una publicacin que se entrega a
un suscriptor. La suscripcin define qu publicacin se recibir, dnde y cundo.
Hay dos tipos de suscripciones: de insercin y de extraccin
165
Excelencia Acadmica
Conversaciones
Conversaciones
Service Broker est diseado segn las funciones bsicas de envo y recepcin de
mensajes. Cada mensaje forma parte de una conversation, un canal de
comunicacin confiable y persistente. Cada mensaje y conversacin tienen un tipo
especfico que impone Service Broker para ayudar a los programadores a escribir
aplicaciones confiables.
Las nuevas instrucciones Transact-SQL permiten a las aplicaciones enviar y recibir
los mensajes de forma segura. Una aplicacin enva mensajes a un servicio, que
es un nombre para un conjunto de tareas relacionadas. Una aplicacin recibe
mensajes de una cola, que es una vista de una tabla interna.
Los mensajes para la misma tarea forman parte de la misma conversacin. En
cada conversacin, Service Broker garantiza que una aplicacin reciba cada
mensaje exactamente una vez en el orden en el que se envi. El programa que
implementa un servicio puede asociar conversaciones relacionadas para el mismo
servicio en un grupo de conversacin.
La seguridad basada en certificados ayuda a proteger los mensajes confidenciales
y controla el acceso a los servicios.
Una forma de entender Service Broker consiste en compararlo con el servicio
postal. Para mantener una conversacin con un amigo que est lejos, puede
comunicarse mediante cartas enviadas a travs del servicio postal, que ordena y
entrega las cartas. Ambos retiran las cartas de sus buzones, las leen, escriben
respuestas y envan nuevas cartas, hasta que la conversacin finaliza. La entrega
de cartas sucede de forma "asincrnica", mientras los dos llevan a cabo otras
tareas.
Excelencia Acadmica
167
Excelencia Acadmica
Excelencia Acadmica
Service Broker puede resultar til en cualquier aplicacin que necesita realizar el
procesamiento de forma asincrnica o que necesita distribuir el procesamiento
entre varios equipos. Entre los usos habituales de Service Broker se incluyen:
Desencadenadores asincrnicos
Desencadenadores asincrnicos
Muchas aplicaciones que utilizan desencadenadores, como los sistemas de
procesamiento de transacciones en lnea (OLTP), pueden beneficiarse de Service
Broker. Un desencadenador pone en cola un mensaje que solicita trabajo de un
servicio de Service Broker. El desencadenador no realiza realmente el trabajo
solicitado. En realidad, crea un mensaje que contiene informacin sobre el trabajo
que se va a hacer y enva este mensaje a un servicio que realiza el trabajo. A
continuacin, el desencadenador vuelve.
Cuando la transaccin original se confirma, Service Broker entrega el mensaje al
servicio de destino. El programa que implementa el servicio realiza el trabajo en
una transaccin independiente. Al realizar este trabajo en una transaccin
independiente, la transaccin original puede confirmarse inmediatamente. La
aplicacin evita que el sistema se ralentice por mantener la transaccin original
abierta mientras se realiza el trabajo.
Procesamiento confiable de consultas
Algunas aplicaciones deben procesar de forma confiable las consultas,
independientemente de los errores del equipo, de problemas de suministro
elctrico o de problemas similares. Una aplicacin que necesita el procesamiento
confiable de consultas puede enviar consultas mediante el envo de mensajes a un
servicio de Service Broker. La aplicacin que implementa el servicio lee el
mensaje, ejecuta la consulta y devuelve los resultados. Estas tres operaciones
tienen lugar en la misma transaccin. Si se produce un error antes de que la
transaccin se confirme, se revierte toda la transaccin y el mensaje vuelve a la
cola. Cuando el equipo se recupera, la aplicacin se reinicia y vuelve a procesar el
mensaje.
Recopilacin confiable de datos
Las aplicaciones que recopilan datos de un conjunto grande de orgenes pueden
sacar partido de Service Broker para recopilar datos de forma confiable. Por
ejemplo, una aplicacin comercial con varios sitios puede utilizar Service Broker
para enviar informacin sobre transacciones a un almacn central de datos. Dado
que Service Broker proporciona una entrega de mensajes asincrnica confiable,
cada sitio puede continuar procesando transacciones incluso si el sitio pierde
temporalmente la conexin con el almacn central de datos. La seguridad de
Service Broker ayuda a garantizar que los mensajes no se envan a un destino
incorrecto y a proteger los datos en trnsito.
Excelencia Acadmica
Las aplicaciones grandes que tienen acceso a varias bases de datos de SQL
Server pueden beneficiarse de Service Broker. Por ejemplo, una aplicacin Web
para hacer pedidos de libros puede utilizar Service Broker en el servidor para
intercambiar informacin entre las distintas bases de datos que contienen datos
sobre pedidos, clientes, inventario y crdito. Dado que Service Broker proporciona
una cola de mensajes y la entrega confiable de mensajes, la aplicacin puede
continuar aceptando pedidos incluso si una de las bases de datos no est
disponible o est sobrecargada. En este escenario, Service Broker funciona como
un marco para un sistema OLTP distribuido.
Consolidacin de datos para aplicaciones cliente
Las aplicaciones que deben utilizar o mostrar informacin simultneamente desde
varias bases de datos pueden aprovecharse de Service Broker. Por ejemplo, una
aplicacin de servicio al cliente que consolida datos de varias ubicaciones en una
pantalla puede utilizar Service Broker para ejecutar estas solicitudes en paralelo en
lugar de hacerlo de forma secuencial, lo cual reduce el tiempo de respuesta de la
aplicacin. La aplicacin de servicio al cliente enva las solicitudes a distintos
servicios en paralelo; a medida que los servicios responden a las solicitudes, la
aplicacin de servicio al cliente recopila las respuestas y muestra los resultados.
Procesamiento por lotes a gran escala
Las aplicaciones que deben realizar procesamiento por lotes a gran escala pueden
aprovecharse de las colas y el procesamiento en paralelo que ofrece Service
Broker para controlar grandes volmenes de trabajo de forma rpida y eficaz. La
aplicacin almacena datos que se procesan en una cola de Service Broker. Un
programa lee peridicamente la cola y procesa los datos. Una aplicacin puede
aprovecharse de la mensajera confiable que proporciona Service Broker para
realizar el procesamiento por lotes en un equipo distinto del equipo donde se
origina la solicitud.
Excelencia Acadmica
Una notificacin puede generarse y enviarse al suscriptor tan pronto como se produzca un
evento que la desencadene. O bien, puede generarse y enviarse segn una programacin
predeterminada especificada por el suscriptor.
Las notificaciones pueden enviarse a una gran variedad de dispositivos. Por ejemplo, se
puede enviar una notificacin al telfono mvil de un suscriptor, a su asistente digital
personal (PDA), a Microsoft Windows Messenger o a su cuenta de correo electrnico. Dado
que el suscriptor suele llevar consigo estos dispositivos, las notificaciones son el medio
ideal para enviar informacin importante.
Las aplicaciones de notificacin son valiosas por numerosas razones, entre las que se
incluyen:
Mejoran y fortalecen las relaciones con los clientes, ya que permiten ofrecerles
servicios ms personalizados en el momento oportuno.
Excelencia Acadmica
4. BSQUEDA DE TEXTO
172
Excelencia Acadmica
Microsoft SQL Server 2005 contiene la funcionalidad necesaria para realizar consultas de
texto en datos basados en caracteres sin formato contenidos en tablas de SQL Server. Las
consultas de texto pueden contener palabras y frases, o formas diversas de una palabra o
frase.
La bsqueda de texto permite la indizacin rpida y flexible en consultas basadas en
palabras clave de datos de texto almacenados en una base de datos de Microsoft SQL
Server. A diferencia del predicado LIKE, que slo funciona en patrones de caracteres, las
consultas de texto realizan bsquedas lingsticas en estos datos y operan en palabras y
frases basndose en las reglas de un idioma en concreto.
En Microsoft SQL Server 2005, la bsqueda de texto ofrece funcionalidad de bsqueda
empresarial. Se han realizado importantes mejoras en el rendimiento, la facilidad de uso y
la funcionalidad, que proporcionan funciones de bsqueda excepcionales para aplicaciones
de cualquier tamao.
La mejor forma de comprobar la ventaja de rendimiento que aporta el uso de la bsqueda
de texto es realizar una consulta en una gran cantidad de datos de texto sin estructura. Una
consulta LIKE realizada en millones de filas de datos de texto puede tardar minutos en
devolver resultados, mientras que una consulta de texto en los mismos datos puede tardar
nicamente segundos, en funcin del nmero de filas que se devuelvan.
Puede crear ndices de texto en columnas que contengan datos char, varchar y nvarchar.
Tambin es posible crear ndices de texto en columnas que contengan datos binarios con
formato, como documentos de Microsoft Word, almacenados en una columna
varbinary(max) o image. No es posible utilizar el predicado LIKE para consultar datos
binarios con formato.
Para crear un ndice de texto en una tabla, sta debe tener una nica columna que no
contenga valores NULL. Tomemos como ejemplo un ndice de texto de la tabla Document
en Adventure Works cuya columna DocumentID es la columna de clave principal. Un
ndice de texto indica que la palabra "instructions" se encuentra en la palabra nmero 24 y
en la palabra 44 de la columna DocumentSummary para la fila asociada con el valor de
DocumentID igual a 3. Esta estructura de ndices permite realizar una bsqueda eficaz de
todos los elementos que contengan palabras indizadas y operaciones de bsqueda
avanzada, como bsquedas de frases y bsquedas de proximidad.
Cuando se procesa una consulta de texto, el motor de bsqueda devuelve a SQL Server
los valores de clave de las filas que coinciden con los criterios de bsqueda. Si desea usar
una consulta de texto para buscar los documentos que contengan la palabra "instructions",
los valores 3, 4, 6, 7 y 8 de DocumentID se obtienen del ndice de texto. SQL Server usa
estas claves para devolver las filas coincidentes.
Excelencia Acadmica
174
Excelencia Acadmica
[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press, 2007
[2] STANEK, William. Ms. SQL Server 2005 Manual del Administrador. 1ra Edicin, McGraw Hill.
2006.
[3] Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid,
2006.
[4] Matsukawa Maeda, Sergio. Conozca y utilice SQL Server 2005, Lima, 2005
[5] Date, C. J. An introduction to Database Systems. 8 edition. Pearson Addison Wesley. 2004.
Bibliografa electrnica:
Administracin de Archivos de bases de datos
http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_de_datos.1114
Tutorial de SQL Server 2005
http://technet.microsoft.com/en-us/library/ms169620(SQL.90).aspx
Tutorial de Administracin de Base de Datos
http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm
175
Excelencia Acadmica
En qu consiste la replicacin?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________
2.
3.
4.
Qu tipo de bsquedas pueden hacerse con bsquedas de texto (full text search)?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________
5.
176
Excelencia Acadmica
ANEXOS
177
Excelencia Acadmica
ANEXO 1
Comparacin de Sistemas Administradores de Bases de Datos Relacionales
Las siguientes tablas comparan informacin general y tcnica de diferentes RDBMS.
Informacin general
Creador
Adaptive Server Anywhere
Sybase/iAnywhere
Sybase Inc
ANTs Software
IBM
Firebird
Firebird Foundation
Informix
Informix Software
HSQLDB
Hsqldb.Org
Fecha de
ltima Licencia
la primera
versin
de
versin
estable software
pblica
1992
10.0 Propietario
15.0
1987
(Sep. Propietario
2005)
1999
3.0
Propietario
1982
9
Propietario
Licencia
25 de julio
Pblica
2
de 2000
InterBase
1985
10.0 Propietario
Licencia
2001
1.8.0
BSD
Berkeley University,
Computer Associates
Borland
1980
2006
CA-TOSL
1985
7.5.1
SapDB
SAP AG
7.4
MaxDB
7.5
Propietario
GPL con
drivers
LGPL
GPL o
propietario
Ingres
InterBase
Microsoft
MySQL
MySQL AB
Oracle
Oracle Corporation
PostgreSQL
PostgreSQL Global
Development Group
SmallSQL
SQLite
SmallSQL
D. Richardo Hippy
Creador
9.00.2047
(2005 Propietario
SP1)
Noviembre
GPL o
5.0
de 1996
propietario
11g
1977
Release Propietario
1
Junio de
Licencia
8.2.3
1989
BSD
16 de abril
0.12
LGPL
de 2005
17 de
Dominio
agosto de
3.1.3
pblico
2000
Fecha de
ltima Licencia
la primera
versin
de
versin
estable software
pblica
1989
Mac OS
Linux BSD
X
Unix
z/OS
Excelencia Acadmica
DB2
No
S
S
S
S
No
S
S
Firebird
HSQLDB
Informix
S
?
Ingres
S
?
InterBase
No
No
SapDB
No
No
MaxDB
No
No
MySQL
Oracle
S
S
No
S
S
No
S
S
No
S
S
No
S
S
No
Quiz
PostgreSQL
SmallSQL
SQLite
S
S
S
S
S
S
S
S
Mac OS
Windows
Linux BSD
X
S
S
No
S
Quiz
S
S
S
S
S
S
(Solaris)
Unix
No
?
S
Quiz
S
No
Quiz
No
z/OS
Caractersticas fundamentales
Informacin acerca de que caractersticas fundamentales de las RDBMS son implementados
nativamente.
ACID
Adaptive Server Enterprise
ANTs Data Server
DB2
Firebird
HSQLDB
Informix
Ingres
InterBase
SapDB
MaxDB
Microsoft SQL Server
MySQL
Oracle
PostgreSQL
SQLite
S
S
S
S
S
S
S
S
S
S
S
Depende 1
S
S
S
ACID
Integridad
referencial
S
S
S
S
S
S
S
S
S
S
S
Depende 1
S
S
No 2
Integridad
referencial
Transacciones Unicode
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
Depende 1
S
S
S
S
S
S
Bsico 2
S
S
S
Transacciones Unicode
Nota (1): Para las transacciones y la integridad referencial, el tipo de tabla InnoDB debe ser
usado; el tipo de tabla por defecto, MyISAM,
No soporta estas caractersticas. Sin embargo,
179
Excelencia Acadmica
inclusive el tipo de tabla InnoDB permite el almacenamiento de valores que excedan el rango
de datos; algunas vistas violan la limitacin de ACID.
Nota (2): Las limitaciones de CHECK y FOREIGN KEY son analizadas pero
No forzadas.
No son soportadas.[1]
Transacciones anidadas
Tablas y vistas
Informacin acerca de que tablas y vistas 3 (unas ms bsicos que otras) son soportados
nativamente.
Tabla temporal
Adaptive Server Enterprise
ANTs Data Server
DB2
S
S
S
Vista materializada
S
S
S
Firebird
No
HSQLDB
Informix
No
S
Ingres
No
InterBase
No
SapDB
No
MaxDB
MySQL
Oracle
No
S
PostgreSQL
No 4
No
Similar 6
SQLite
S
No
Tabla temporal
Vista materializada
Nota (4): La vista materializada puede ser emulada con PL/PgSQL [2].
Nota (5): El servidor provee tempdb, que puede ser usado para tablas temporales pblicas y
privadas (para la sesin). [3]
Nota (6): El servidor MS SQL provee vistas indexadas. [4]
ndice
Informacin acerca de que ndices (otros como los ndices bsicos B-/B+) son soportados
nativamente.
rbol R/R+
Hash
Mapa
Expresin Parcial Reversa de
bits
No
No
No
No
No
S
?
DB2
No
No
Firebird
HSQLDB
Informix
No
?
No
?
No
?
No
?
No
?
No
?
No
No
No
Ingres
S
?
S
?
No
No
No
No
InterBase
No
No
No
No
SapDB
No
No
No
No
180
Excelencia Acadmica
MaxDB
?
?
Tablas
Tablas
MyISAM
HEAP
solamente solamente
Edicin
EE
?
solamente
MySQL
Oracle
No
No
No
No
No
No
No
No
No
No
No
No
No
S
No
PostgreSQL
No
SQLite
No
No
No
No
No
rbol R/R+
Hash
No
Mapa
Expresin Parcial Reversa de
bits
Otros objetos
Informacin acerca de que otros objetos son soportados nativamente.
Dominio Cursor Trigger Funcin 5 Procedimiento 5
Adaptive Server Enterprise
ANTs Data Server
DB2
Firebird
Rutina
externa 5
S
S
S
S
S
S
S
S
S
S
S
S
No
S
?
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
?
SapDB
MaxDB
S
S
S
S
No
S
S
S
S
S
No
HSQLDB
Informix
Ingres
InterBase
MySQL
Oracle
PostgreSQL
SQLite
No
S
S
S
S
S
S
S
S
No
S
S
S
?
?
S
S
S
S
Rutina
Dominio Cursor Trigger Function Procedimiento
externa
No
No
No
Nota (3): Estos objetos de base de datos son disponibles a partir de MySQL 5.0 disponible
desde 24/12/2005.
Nota (5): Funcin y procedimiento se refieren a las rutinas internas escritas en SQL o
lenguajes procedurales como PL/SQL. Rutina externa se refiere a la escritura en los lenguajes
anfitriones como C, Java, Cobol, etc. "Procedimiento almacenado" es un trmino comnmente
usado para ese tipo de rutinas. Sin embargo, su definicin vara entre diferentes vendedores de
bases de datos.
Particionamiento
Informacin acerca de que mtodos de particionamiento son soportados nativamente.
181
Excelencia Acadmica
Firebird
Informix
Ingres
No
?
S
No
?
S
No
?
S
No
?
S
InterBase
SapDB
MaxDB
Microsoft SQL Server
No
?
?
No
?
?
No
?
?
No
?
?
No
No
No
MySQL
Oracle
No
S
No
S
No
S
No
S
PostgreSQL
No
No
No
No
SQLite
182
S
S
S
S
Rango Hash Compuesto (Rango+Hash) Listas