Está en la página 1de 41

ADMINISTRACION DE BASE DE DATOS

1.1 INTRODUCCIÓN dos usuarios intenten modificar la misma parte de la base de datos al mismo tiempo, ambos
La tecnología de bases de datos no solamente mejora las operaciones diarias de las pueden continuar sin tener que esperar al otro.
organizaciones, sino también la calidad de las decisiones que afectan nuestras vidas. Las
bases de datos contienen un flujo de datos acerca de muchos aspectos de nuestras vidas: • Interrelación significa que los datos almacenados como unidades separadas se pueden
preferencias de consumo, uso de telecomunicaciones, historial crediticio, hábitos al ver la conectar para mostrar un cuadro completo. Por ejemplo, una base de datos de clientes
televisión, etc. La tecnología de base de datos ayuda a resumir este volumen de datos en relaciona los datos de éstos (nombre, dirección, etc.) con los datos de una orden (número
información útil para la toma de decisiones. Los directivos utilizan la información obtenida de orden, fecha de la orden, etc.) para facilitar su procesamiento. Las bases de datos
para la toma de decisiones a largo plazo, como invertir en plantas y equipo, ubicar tiendas, contienen tanto entidades como relaciones entre entidades. Una entidad es un conjunto de
agregar elementos nuevos al inventario e iniciar nuevos negocios. datos generalmente sobre un tema, al que puede accederse de forma conjunta. Una entidad
puede representar una persona, lugar, cosa o suceso; por ejemplo, una base de datos de
Las empresas reúnen todos los días montañas de hechos acerca de personas, cosas y empleados contiene entidades como empleados, departamentos y habilidades, así como
eventos, como los números de tarjetas de crédito, estados de cuenta bancarios y montos las relaciones que muestran la asignación de los empleados con los departamentos, las
de las compras. habilidades que poseen y su historia salarial. Una base de datos típica de un negocio puede
Las bases de datos contienen este tipo de hechos simples así como hechos no tener cientos de entidades y relaciones.
convencionales, tales como fotografías, huellas digitales, videos de productos y resúmenes
de libros. Con la proliferación de Internet y de los medios para capturar datos de forma
computarizada tenemos a nuestra disposición una gran cantidad de datos al hacer clic con
el botón del ratón. Organizar estos datos para facilitar su consulta y mantenimiento es
complicado. Por lo tanto, la administración de base de datos se ha convertido en una tarea
vital en muchas organizaciones.

Antes de aprender sobre la administración de base de datos, primero debemos comprender


algunas de sus propiedades más importantes, como las que se muestran en la siguiente
lista:

• Persistente significa que los datos residen en un almacenamiento estable, tal como un
disco magnético. Las organizaciones necesitan, por ejemplo, conservar los datos de sus
clientes, proveedores e inventario en un almacenamiento estable, ya que se usan de forma
continua.

Una variable de un programa de computadora no es persistente porque reside en la


memoria principal y desaparece después de que el programa finaliza. Persistencia no
significa que los datos existan eternamente; cuando dejan de ser relevantes (por ejemplo,
cuando un proveedor no continúa en el negocio), se eliminan o se archivan.

La persistencia depende de la importancia del uso deseado. Por ejemplo, es importante


conservar el kilometraje que usted recorre hasta su trabajo en caso de que sea
autoempleado.
De igual forma, el monto de sus gastos médicos es importante si puede deducirlo o si tiene
una cuenta de gastos médicos. Ya que el almacenamiento y el mantenimiento de los datos
es costoso, sólo deben almacenarse los que sean relevantes para la toma de decisiones.

• Compartir significa que una base de datos puede tener múltiples usos y usuarios. Una
base de datos proporciona una memoria común para varias funciones en una organización.
Por ejemplo, una base de datos de empleados puede servir para calcular la nómina, para
hacer evaluaciones sobre desempeño, para hacer requerimientos de reportes del gobierno,
etc. Un sistema de administración de base de datos (DBMS, por sus siglas en inglés) es un conjunto de
componentes que soportan la creación, el uso y el mantenimiento de bases de datos.
Muchos usuarios pueden acceder a la base de datos al mismo tiempo; por ejemplo, muchos
clientes pueden hacer reservaciones en una aerolínea de forma simultánea. A menos que Inicialmente, los DBMS proporcionaban un eficiente almacenamiento y recuperación de datos.
Gracias a la demanda del mercado y a la innovación de productos, los DBMS han evolucionado

1
ADMINISTRACION DE BASE DE DATOS
para proporcionar un amplio rango de características para incorporar, almacenar, diseminar, aplicaciones para operar sobre los mismos datos. Es decir, que sea posible satisfacer
mantener, recuperar y formatear datos. La evolución de estas funciones ha hecho que los DBMS los requerimientos de datos de aplicaciones nuevas sin tener que agregar información
sean más complejos. Puede tomar años de estudio y uso conocer por completo un DBMS en a la base de datos.
particular.
 Es posible reducir la redundancia
Ya que los DBMS continúan evolucionando, usted debe actualizarse de forma continua en su En sistemas que no son de bases de datos, cada aplicación tiene sus propios archivos
conocimiento. exclusivos. A menudo este hecho puede conducir a una redundancia considerable de
Para mostrar el alcance sobre las funciones que encontrará en los DBMS comerciales. los datos almacenados, con el consecuente desperdicio de espacio de
almacenamiento. Esto no significa que toda la redundancia puede o debe
Función Descripción necesariamente ser eliminada. Sin embargo, sí debe ser controlada cuidadosamente.
Definición de la base de datos Lenguaje y herramientas gráficas para definir entidades,
relaciones, restricciones de integridad y autorización de
privilegios
 Es posible evitar la inconsistencia
En ocasiones en las que las entidades no coincidan; cuando unas de ellas han sido
Acceso no procedural Lenguaje y herramientas gráficas para acceder a los datos
actualizadas y otras no se dice que la base de datos es inconsistente. Si se elimina la
sin necesidad de código complicado
redundancia, entonces no puede ocurrir tal inconsistencia. Como alternativa, si no se
Desarrollo de aplicaciones Herramienta gráfica para desarrollar menús, formularios de
elimina la redundancia pero se controla entonces se puede garantizar que la base de
captura de datos y reportes; los requerimientos de datos
datos nunca será inconsistente, asegurando que todo cambio realizado a cualquiera
para los formularios y reportes se especifican utilizando un
de las entidades será aplicado también a las otras en forma automática. A este proceso
acceso no procedural
se le conoce como propagación de actualizaciones.
Interfase del lenguaje procedural Lenguaje que combina el acceso no procedural con las
capacidades totales de un lenguaje de programación
Procesamiento de transacciones Mecanismos de control para prevenir la interferencia de  Es posible brindar un manejo de transacciones
usuarios simultáneos y recuperar datos perdidos en caso Una transacción es una unidad de trabajo lógica, que por lo regular comprende varias
de una falla operaciones de la base de datos, en particular varias operaciones de actualización. Si
Ajuste de la base de datos Herramientas para monitorear y mejorar el desempeño de se necesitan dos actualizaciones y se declara que ambas son parte de la misma
la base de datos. transacción, entonces el sistema puede en efecto garantizar que se hagan ya sea
ambas o ninguna de ellas, aun cuando el sistema fallará a la mitad del proceso.
1.2 ¿POR QUÉ UNA BASE DE DATOS?
Algunas ventajas que proporciona el uso de un sistema de base de datos sobre los  Es posible mantener la integridad
métodos tradicionales son: La integridad se refiere a asegurar que los datos de la base de datos estén correctos.
 Compactación: Reduce la necesidad de archivos voluminosos en papel. La inconsistencia entre dos entradas que pretenden representar el mismo hecho es un
ejemplo de la falta de integridad. Desde luego, este problema en particular puede surgir
 Velocidad: La máquina puede recuperar y actualizar datos más rápidamente que un sólo si existe redundancia en los datos almacenados. No obstante, aun cuando no
humano. En particular, las consultas específicas sin mucha elaboración pueden ser exista redundancia, la base de datos podría seguir conteniendo información incorrecta.
respondidas con rapidez, sin necesidad de búsquedas manuales o visuales que El control centralizado de la base de datos puede ayudar a evitar estos problemas
llevan tiempo. permitiendo que el administrador de datos defina y el DBA implemente las restricciones
 Menos trabajo laborioso: Se puede eliminar gran parte del trabajo de llevar a los de seguridad que serán verificadas siempre que se realice una operación de
archivos a mano. actualización.
 Actualidad: En el momento que se necesite, se tiene a disposición información
precisa y actualizada.  Es posible hacer cumplir la seguridad
Al tener la completa jurisdicción sobre la base de datos, el DBA puede, bajo la dirección
Desde luego, estos beneficios se aplican aún con más fuerza en un entorno multiusuario, apropiada del DBA, asegurar que el único medio de acceso a la base de datos sea a
donde es probable que la base de datos sea mucho más grande y compleja que en el través de los canales adecuados y por lo tanto puede definir las reglas o restricciones
caso de un solo usuario. No obstante, en el entorno multiusuario hay una ventaja de seguridad que serán verificadas siempre que se intente acceder a los datos
adicional: El sistema de base de datos ofrece a la empresa un control centralizado de sus sensibles. Es posible establecer diferentes restricciones para cada tipo de acceso para
datos. cada parte de la información de la base de datos. Sin dichas restricciones la seguridad
de los datos podría de hecho estar en mayor riesgo que en un sistema de archivos
1.3 BENEFICIOS DEL ENFOQUE DE BASE DE DATOS tradicionales. La naturaleza centralizada de un sistema de base de datos requiere, en
 Los datos pueden compartirse cierto sentido, que también sea establecido un buen sistema de seguridad.
Compartir no solo significa que las aplicaciones existentes puedan compartir la
información de la base de datos, sino también que sea posible desarrollar nuevas  Es posible equilibrar los requerimientos en conflicto
2
ADMINISTRACION DE BASE DE DATOS
Al conocer los requerimientos generales de la empresa, el DBA puede estructurar los Es posible que el administrador de bases de datos tenga que brindar asistencia técnica a
sistemas de manera que ofrezcan un servicio general que sea el mejor para la usuarios de las aplicaciones cliente o equipos de desarrollo para solucionar problemas, dar
empresa. consejos o ayudar a resolver consultas complicadas.
Al trabajar con el jefe de seguridad, el administrador de bases de datos debe crear copias
 Es posible hacer cumplir los estándares de seguridad, planes y procedimientos de restauración para preservar los datos de los
Con el control central de la base de datos, el DBA puede asegurar que todos los cuales es responsable.
estándares aplicables en la representación de datos sean observados. Es conveniente
estandarizar la representación de datos, en particular como un auxiliar para el Además de estas habilidades técnicas, el administrador de bases de datos debe poseer un
intercambio de datos o para el movimiento de datos entre sistemas. En forma similar, buen entendimiento de las aplicaciones de la compañía y estar dispuesto a atender las
los estándares en la asignación de nombres y en la documentación de los datos necesidades de los usuarios cuando desarrolla o edita una base de datos. En el mejor de
también son muy convenientes como una ayuda para compartir y entender los datos. los casos, debe tener experiencia en diseño de sistemas de información y modelos UML
(Lenguaje unificado de modelos).
1.4 ADMINISTRACIÓN DE DATOS Y ADMINISTRACIÓN DE BASES DE DATOS
El administrador de datos (DA) es la persona identificable que tendrá la responsabilidad 1.6 FUNCIONES DEL ADMINISTRADOR DE BASES DE DATOS:
central sobre los datos dentro de la empresa. Ya que los datos son uno de los activos más • implementar, dar soporte y gestionar bases de datos corporativas
valiosos de la empresa, es imperativo que exista una persona que los entienda junto con • crear y configurar bases de datos relacionales
las necesidades de la empresa con respecto a esos datos, a un nivel de administración • ser responsables de la integridad de los datos y la disponibilidad
superior.
• diseñar, desplegar y monitorizar servidores de bases de datos
Por lo tanto, es labor del administrador decidir en primer lugar qué datos deben ser • diseñar la distribución de los datos y las soluciones de almacenamiento
almacenados en la base de datos y establecer políticas para mantener y manejar esos datos • garantizar la seguridad de las bases de datos, incluyendo backups y recuperación de
una vez almacenados. desastres
• planificar e implementar el aprovisionamiento de los datos y aplicaciones
El administrador de base de datos (DBA) es el técnico responsable de implementar las • diseñar planes de contingencia
decisiones del administrador de datos. Por lo tanto, debe ser un profesional en IT. El trabajo
del DBA consiste en crear la base de datos real e implementar los controles técnicos
• diseñar y crear las bases de datos corporativas de soluciones avanzadas
necesarios para hacer cumplir las diversas decisiones de las políticas hechas por el DA. El • analizar y reportar datos corporativos que ayuden a la toma de decisiones en la
DBA también es responsable de asegurar que el sistema opere con el rendimiento inteligencia de negocios
adecuado y de proporcionar una variedad de otros servicios técnicos. • producir diagramas de entidades relacionales y diagramas de flujos de datos,
normalización esquemática, localización lógica y física de bases de datos y parámetros
1.5 EL ADMINISTRADOR DE BASES DE DATOS (DBA ) de tablas
Es el profesional que administra las tecnologías de la información y la comunicación, siendo
responsable de los aspectos técnicos, tecnológicos, científicos, inteligencia de negocios y 1.7 LENGUAJES DE BASES DE DATOS
legales de bases de datos. Un administrador de bases de datos (o DBA) tiene la Un sistema de bases de datos proporciona un lenguaje de definición de datos para
responsabilidad de mantener y operar las bases de datos que conforman el sistema de especificar el esquema de la base de datos y un lenguaje de manipulación de datos para
información de una compañía. expresar las consultas a la base de datos y las modificaciones.

HABILIDADES En la práctica, los lenguajes de definición y manipulación de datos no son dos lenguajes
Debido a la importancia de los datos que están a su cargo, el administrador de bases de separados; en su lugar simplemente forman partes de un único lenguaje de bases de datos,
datos debe ser experto en TI (tecnología de la información), teniendo particular tal como SQL, ampliamente usado.
conocimiento de DBMS (sistemas de administración de bases de datos) y el lenguaje de
consulta SQL. También debe tener conocimiento de varios tipos de lenguaje de 1.7.1 LENGUAJE DE DEFINICIÓN DE DATOS
programación para poder automatizar ciertas tareas. Un esquema de base de datos se especifica mediante un conjunto de definiciones
expresadas mediante un lenguaje especial llamado lenguaje de definición de datos
Una de sus tareas es la de asegurar la integridad del sistema de información de la (LDD).Por ejemplo, la siguiente instrucción en el lenguaje SQL define la tabla cuenta:
compañía. Además, es necesario que posea un buen entendimiento de DBMS para create table cuenta
optimizar las consultas, ajustar la configuración de DBMS o para sincronizar en forma (número-cuenta char(10),
precisa las herramientas de control del acceso a las bases de datos. saldo integer)

La ejecución de la instrucción LDD anterior crea la tabla cuenta. Además, actualiza un


conjunto especial de tablas denominado diccionario de datos o directorio de datos.
3
ADMINISTRACION DE BASE DE DATOS

Un diccionario de datos contiene metadatos, es decir, datos acerca de los datos. El La consulta especifica que las filas de (from) la tabla cliente donde (where) el id-cliente es
esquema de una tabla es un ejemplo de metadatos. Un sistema de base de datos consulta 19 283 746 se debe recuperar, y que se debe mostrar el atributo nombrecliente de estas
el diccionario de datos antes de leer o modificar los datos reales. filas.

Especificamos el almacenamiento y los métodos de acceso usados por el sistema de bases Las consultas pueden involucrar información de más de una tabla. Por ejemplo, la
de datos por un conjunto de instrucciones en un tipo especial de LDD denominado lenguaje siguiente consulta encuentra el saldo de todas las cuentas pertenecientes al cliente cuyo
de almacenamiento y definición de datos. Estas instrucciones definen los detalles de identificador de cliente es 19 283 746.
implementación de los esquemas de base de datos, que se ocultan usualmente a los
usuarios. select cuenta.saldo
from impositor, cuenta
Los valores de datos almacenados en la base de datos deben satisfacer ciertas where impositor.id-cliente = ‘19-283-746’ and
restricciones de consistencia. impositor.número-cuenta = cuenta.númerocuenta

Por ejemplo, supóngase que el saldo de una cuenta no debe caer por debajo de 100 nuevos Hay varios lenguajes de consulta de bases de datos en uso, ya sea comercialmente o
soles. El LDD proporciona facilidades para especificar tales restricciones. Los sistemas de experimentalmente.
bases de datos comprueban estas restricciones cada vez que se actualiza la base de datos.
En el nivel físico se deben definir algoritmos que permitan un acceso eficiente a los datos.
1.7.2 LENGUAJE DE MANIPULACIÓN DE DATOS En los niveles superiores de abstracción se enfatiza la facilidad de uso. El objetivo es
La manipulación de datos es: proporcionar una interacción humana eficiente con el sistema. El componente procesador
 La recuperación de información almacenada en la base de datos. de consultas del sistema de bases de datos traduce las consultas LMD en secuencias de
 La inserción de información nueva en la base de datos. acciones en el nivel físico del sistema de bases de datos.
 El borrado de información de la base de datos.
 La modificación de información almacenada en la base de datos. 1.7.3 ACCESO A LA BASE DE DATOS DESDE PROGRAMAS DE APLICACIÓN
Los programas de aplicación son programas que se usan para interaccionar con la base
Un lenguaje de manipulación de datos (LMD) es un lenguaje que permite a los usuarios de datos. Los programas de aplicación se escriben usualmente en un lenguaje anfitrión,
acceder o manipular los datos organizados mediante el modelo de datos apropiado. Hay tal como Cobol, C, C++ o Java.
dos tipos básicamente:
En el sistema bancario algunos ejemplos son programas que emiten los cheques de las
 LMDs procedimentales. Requieren que el usuario especifique qué datos se necesitan nóminas, las cuentas de débito, las cuentas de crédito o las transferencias de fondos entre
y cómo obtener esos datos. cuentas.
 LMDs declarativos (también conocidos como LMDs no procedimentales).
Requieren que el usuario especifique qué datos se necesitan sin especificar cómo Para acceder a la base de datos, las instrucciones LMD necesitan ser ejecutadas desde el
obtener esos datos. lenguaje anfitrión. Hay dos maneras de hacerlo:

Los LMDs declarativos son más fáciles de aprender y usar que los LMDs procedimentales.  Proporcionando una interfaz de programas de aplicación (conjunto de procedimientos)
Sin embargo, como el usuario no especifica cómo conseguir los datos, el sistema de bases que se pueden usar para enviar instrucciones LMD y LDD a la base de datos, y
de datos tiene que determinar un medio eficiente de acceder a los datos. El componente recuperar los resultados. El estándar de conectividad abierta de bases de datos
LMD del lenguaje SQL es no procedimental. (ODBC, Open Data Base Connectivity) definido por Microsoft para el uso con el
lenguaje C es un estándar de interfaz de programas de aplicación usado comúnmente.
Una consulta es una instrucción de solicitud para recuperar información. La parte de un La estándar conectividad de Java con bases de datos (JDBC, Java Data Base
LMD que implica recuperación de información se llama lenguaje de consultas. Aunque Connectivity) proporciona características correspondientes para el lenguaje Java.
técnicamente sea incorrecto, en la práctica se usan los términos lenguaje de consultas y
lenguaje de manipulación de datos como sinónimos.  Extendiendo la sintaxis del lenguaje anfitrión para incorporar llamadas LMD dentro del
programa del lenguaje anfitrión. Usualmente, un carácter especial precede a las
Esta consulta en el lenguaje SQL encuentra el nombre del cliente cuyo identificador de llamadas LMD, y un preprocesador, denominado el precompilador LMD, convierte las
cliente es 19.283.746: instrucciones LMD en llamadas normales a procedimientos en el lenguaje anfitrión.

select cliente.nombre-cliente 1.8 USUARIOS Y ADMINISTRADORES DE LA BASE DE DATOS


from cliente Un objetivo principal de un sistema de bases de datos es recuperar información y almacenar
where cliente.id-cliente = ‘19 283 746’ nueva Información en la base de datos. Las personas que trabajan con una base de datos

4
ADMINISTRACION DE BASE DE DATOS
se pueden catalogar como usuarios de bases de datos o como administradores de bases  El foco operativo se fundamenta en la toma de decisiones, tomando como partida
de datos. los datos del grupo PED (Procesamiento Electrónico de Datos) e introduciendo
un volumen pequeño de información;
1.8.1 USUARIOS DE BASES DE DATOS E INTERFACES DE USUARIO  No poseen acceso medianamente restringido a la información;
Hay cuatro tipos diferentes de usuarios de un sistema de base de datos, diferenciados por  Generan informes de resúmenes de datos del grupo PED y listados de la
la forma en que ellos esperan interactuar con el sistema. Se han diseñado diferentes tipos información que introducen.
de interfaces de usuario para diferentes tipos de usuarios.
 Los usuarios sofisticados
 Usuarios normales. Interactúan con el sistema sin programas escritos. En su lugar, ellos forman sus
Son usuarios no sofisticados que interactúan con el sistema mediante la invocación de consultas en un lenguaje de consulta de bases de datos. Cada una de estas consultas
alguno de los programas de aplicación permanentes que se ha escrito previamente. se envía al procesador de consultas, cuya función es transformar instrucciones LMD a
instrucciones que el gestor de almacenamiento entienda. Los analistas que envían las
Por ejemplo, un cajero bancario que necesita transferir 50 nuevos soles de la cuenta consultas para explorar los datos en la base de datos entran en esta categoría.
A a la cuenta B invoca un programa llamado transferir. Este programa pide al cajero
el importe de dinero a transferir, la cuenta de la que el dinero va a ser transferido y la Las herramientas de procesamiento analítico en línea (OLAP, Online Analytical
cuenta a la que el dinero va a ser transferido. Processing) simplifican la labor de los analistas permitiéndoles ver resúmenes de
datos de formas diferentes. Por ejemplo, un analista puede ver las ventas totales por
Como otro ejemplo, considérese un usuario que desee encontrar su saldo de cuenta región (por ejemplo, norte, sur, este y oeste), o por producto, o por una combinación
en World Wide Web. Tal usuario podría acceder a un formulario en el que introduce su de la región y del producto (es decir, las ventas totales de cada producto en cada
número de cuenta. Un programa de aplicación en el servidor Web recupera entonces región).
el saldo de la cuenta, usando el número de cuenta proporcionado, y pasa la
información al usuario. Las herramientas también permiten al analista seleccionar regiones específicas,
examinar los datos con más detalle (por ejemplo, ventas por ciudad dentro de una
La interfaz de usuario normal para los usuarios normales es una interfaz de región) o examinar los datos con menos detalle (por ejemplo, agrupando productos
formularios, donde el usuario puede rellenar los campos apropiados del formulario. Los por categoría).
usuarios normales pueden también simplemente leer informes generados de la base
de datos. Las necesidades básicas de este grupo de usuarios son: Otra clase de herramientas para los analistas son las herramientas de recopilación de
datos, que les ayudan a encontrar ciertas clases de patrones de datos. STD (Sistema
 El foco operativo fundamental se centra en el almacenamiento de los datos, el de apoyo a Toma de Decisiones)
procesamiento de los mismos y el flujo de datos; Este grupo se centra en el nivel más alto de la organización y poseen las
 Generan informes de tipo listados; características siguientes:
 Poseen acceso restringido a la información.  El foco operativo se centra en la decisión, con una entrada mínima de datos;
 No tienen acceso restringido;
 Programadores de aplicaciones.  Generan informes globales que les sirven como apoyo a las tomas de decisiones
Son profesionales informáticos que escriben programas de aplicación. SIM (Sistemas del negocio, estos son los informes más importantes y suelen ir acompañados de
de Información de Gestión). resúmenes, gráficas y sobre todo centrados en la evolución y comparación de la
Los programadores de aplicaciones pueden elegir entre muchas herramientas para información.
desarrollar interfaces de usuario. Las herramientas de desarrollo rápido de
aplicaciones (DRA) son herramientas que permiten al programador de aplicaciones  Usuarios especializados.
construir formularios e informes sin escribir un programa. Son usuarios sofisticados que escriben aplicaciones de bases de datos especializadas
que no son adecuadas en el marco de procesamiento de datos tradicional. Entre estas
Hay también tipos especiales de lenguajes de programación que combinan estructuras aplicaciones están los sistemas de diseño asistido por computador, sistemas de bases
de control imperativo (por ejemplo, para bucles for, bucles while e instrucciones ifthen- de conocimientos y sistemas expertos, sistemas que almacenan los datos con tipos
else) con instrucciones del lenguaje de manipulación de datos. Estos lenguajes, de datos complejos (por ejemplo, datos gráficos y datos de audio) y sistemas de
llamados a veces lenguajes de cuarta generación, a menudo incluyen características modelado del entorno.
especiales para facilitar la generación de formularios y la presentación de datos en
pantalla. La mayoría de los sistemas de bases de datos comerciales incluyen un En general, podemos decir que los objetivos de una base de datos son los siguientes:
lenguaje de cuarta generación.  Ayudar en la toma de decisiones;
 Compartir de forma controlada y restringida los datos y el acceso a la información;
Las necesidades básicas de este grupo de usuarios son:  Integrar los datos de una forma lógica, evitando la duplicidad;
 Asegurar un rápido acceso a la información y los datos.
5
ADMINISTRACION DE BASE DE DATOS
la ejecución de una transacción, puede ser necesario permitir inconsistencias
1.8.2 ADMINISTRADOR DE LA BASE DE DATOS temporalmente, ya que o el cargo de A o el abono de B se debe realizar uno antes que otro.
Una de las principales razones de usar SGBDs es tener un control centralizado tanto de los Esta inconsistencia temporal, aunque necesaria, puede conducir a dificultades si ocurre un
datos como de los programas que acceden a esos datos. La persona que tiene este control fallo.
central sobre el sistema se llama administrador de la base de datos (ABD). Las funciones
del ABD incluyen las siguientes: Es responsabilidad del programador definir adecuadamente las diferentes transacciones,
de tal manera que cada una preserve la consistencia de la base de datos. Por ejemplo, la
 Definición del esquema. El ABD crea el esquema original de la base de datos transacción para transferir fondos de la cuenta A a la cuenta B se podría definir como
escribiendo un conjunto de instrucciones de definición de datos en el LDD. compuesta de dos programas separados: uno que carga la cuenta A y otro que abona la
 Definición de la estructura y del método de acceso. cuenta B.
 Modificación del esquema y de la organización física. Los ABD realizan cambios
en el esquema y en la organización física para reflejar las necesidades cambiantes de La ejecución de estos dos programas uno después del otro preservará realmente la
la organización, o para alterar la organización física para mejorar el rendimiento. consistencia. Sin embargo, cada programa en sí mismo no transforma la base de datos de
 Concesión de autorización para el acceso a los datos. La concesión de diferentes un estado consistente en otro nuevo estado consistente. Así, estos programas no son
tipos de autorización permite al administrador de la base de datos determinar a qué transacciones.
partes de la base de datos puede acceder cada usuario. La información de autorización
se mantiene en una estructura del sistema especial que el sistema de base de datos Asegurar las propiedades de atomicidad y durabilidad es responsabilidad del propio sistema
consulta cuando se intenta el acceso a los datos en el sistema. de bases de datos, específicamente del componente de gestión de transacciones. En
 Mantenimiento rutinario. Algunos ejemplos de actividades rutinarias de ausencia de fallos, toda transacción completada con éxito y atómica se archiva fácilmente.
mantenimiento del administrador de la base de datos son: Sin embargo, debido a diversos tipos de fallos, una transacción puede no siempre completar
o Copia de seguridad periódica de la base de datos, bien sobre cinta o sobre su ejecución con éxito.
servidores remotos, para prevenir la pérdida de datos en caso de desastres como
inundaciones. Si se asegura la propiedad de atomicidad, una transacción que falle no debe tener efecto
o Asegurarse de que haya suficiente espacio libre en disco para las operaciones en el estado de la base de datos. Así, la base de datos se restaura al estado en que estaba
normales y aumentar el espacio en disco según sea necesario. antes de que la transacción en cuestión comenzara su ejecución. El sistema de bases de
o Supervisión de los trabajos que se ejecuten en la base de datos y asegurarse de datos debe realizar la recuperación de fallos, es decir, detectar los fallos del sistema y
que el rendimiento no se degrada por tareas muy costosas iniciadas por algunos restaurar la base de datos al estado que existía antes de que ocurriera el fallo.
usuarios.
Finalmente, cuando varias transacciones actualizan la base de datos concurrentemente, la
1.9 GESTIÓN DE TRANSACCIONES consistencia de los datos puede no ser preservada, incluso aunque cada transacción
individualmente sea correcta. Es responsabilidad del gestor de control de concurrencia
Varias operaciones sobre la base de datos forman a menudo una única unidad lógica de
trabajo. Un ejemplo es la transferencia de fondos, en el que una cuenta (A) se carga y otra controlar la interacción entre las transacciones concurrentes para asegurar la consistencia
cuenta (B) se abona. Claramente es esencial que, o bien tanto el cargo como el abono de la base de datos.
tengan lugar, o bien no ocurra ninguno. Es decir, la transferencia de fondos debe ocurrir por
completo o no ocurrir en absoluto. Este requisito de todo o nada se denomina atomicidad. Los sistemas de bases de datos diseñados para uso sobre pequeños computadores
personales pueden no tener todas las características vistas. Por ejemplo, muchos sistemas
Además, es esencial que la ejecución de la transferencia de fondos preserve la consistencia pequeños imponen la restricción de permitir el acceso a un único usuario a la base de datos
de la base de datos. Es decir, el valor de la suma A + B se debe preservar. Este requisito en un instante de tiempo.
de corrección se llama consistencia.
Otros dejan las tareas de copias de seguridad y recuperación a los usuarios. Estas
Finalmente, tras la ejecución correcta de la transferencia de fondos, los nuevos valores de restricciones permiten un gestor de datos más pequeño, con menos requisitos de recursos
las cuentas A y B deben persistir, a pesar de la posibilidad de fallo del sistema. Este requisito físicos, especialmente de memoria principal. Aunque tales enfoques de bajo coste y
de persistencia se llama durabilidad. prestaciones son suficientes para bases de datos personales pequeñas, son inadecuadas
para satisfacer las necesidades de una empresa de media a gran escala.
Una transacción es una colección de operaciones que se lleva a cabo como una única
función lógica en una aplicación de bases de datos. Cada transacción es una unidad de 1.10 ESTRUCTURA DE UN SISTEMA DE BASES DE DATOS
atomicidad y consistencia. Así, se requiere que las transacciones no violen ninguna Un sistema de bases de datos se divide en módulos que se encargan de cada una de las
restricción de consistencia de la base de datos. responsabilidades del sistema completo. Los componentes funcionales de un sistema de
bases de datos se pueden dividir a grandes rasgos en los componentes gestores de
Es decir, si la base de datos era consistente cuando la transacción comenzó, la base de almacenamiento y procesador de consultas.
datos debe ser consistente cuando la transacción termine con éxito. Sin embargo, durante
6
ADMINISTRACION DE BASE DE DATOS
El gestor de consultas es importante porque las bases de datos requieren normalmente una o Gestor de memoria intermedia, que es responsable de traer los datos del disco de
gran cantidad de espacio de almacenamiento. Las bases de datos corporativas tienen un almacenamiento a memoria principal y decidir qué datos tratar en memoria caché. El
tamaño de entre cientos de gigabytes y, para las mayores bases de datos, terabytes de gestor de memoria intermedia es una parte crítica del sistema de bases de datos, ya
datos. que permite que la base de datos maneje tamaños de datos que son mucho mayores
que el tamaño de la memoria principal. El gestor de almacenamiento implementa
Un gigabyte son 1.000 megabytes (1.000 millones de bytes), y un terabyte es 1 millón de varias estructuras de datos como parte de la implementación física del sistema:
megabytes (1 billón de bytes). Debido a que la memoria principal de los computadores no
puede almacenar esta gran cantidad de información, esta se almacena en discos. Los datos o Archivos de datos, que almacenan la base de datos en sí.
se trasladan entre el disco de almacenamiento y la memoria principal cuando es necesario.
o Diccionario de datos, que almacena metadatos acerca de la estructura de la base de
Como la transferencia de datos a y desde el disco es lenta comparada con la velocidad de datos, en particular, el esquema de la base de datos.
la unidad central de procesamiento, es fundamental que el sistema de base de datos
estructure los datos para minimizar la necesidad de movimiento de datos entre el disco y la o Índices, que proporcionan acceso rápido a elementos de datos que tienen valores
memoria principal. particulares.

El procesador de consultas es importante porque ayuda al sistema de bases de datos a 1.10.2 PROCESADOR DE CONSULTAS
simplificar y facilitar el acceso a los datos. Las vistas de alto nivel ayudan a conseguir este Los componentes del procesador de consultas incluyen:
objetivo. Con ellas, los usuarios del sistema no deberían ser molestados innecesariamente Intérprete del LDD, que interpreta las instrucciones del LDD y registra las definiciones
con los detalles físicos de implementación del sistema. en el diccionario de datos.

Sin embargo, el rápido procesamiento de las actualizaciones y de las consultas es Compilador del LMD, que traduce las instrucciones del LMD en un lenguaje de
importante. Es trabajo del sistema de bases de datos traducir las actualizaciones y las consultas a un plan de evaluación que consiste en instrucciones de bajo nivel que
consultas escritas en un lenguaje no procedimental, en el nivel lógico, en una secuencia de entiende el motor de evaluación de consultas. Una consulta se puede traducir
operaciones en el nivel físico. habitualmente en varios planes de ejecución alternativos que proporcionan el mismo
resultado. El compilador del LMD también realiza optimización de consultas, es
1.10.1 GESTOR DE ALMACENAMIENTO decir, elige el plan de evaluación de menor coste de entre todas las alternativas.
Un gestor de almacenamiento es un módulo de programa que proporciona la interfaz
entre los datos de bajo nivel en la base de datos y los programas de aplicación y consultas Motor de evaluación de consultas, que ejecuta las instrucciones de bajo nivel
emitidas al sistema. generadas por el compilador del LMD.
En la Figura 1.4 se muestran estos componentes y sus conexiones
El gestor de almacenamiento es responsable de la interacción con el gestor de archivos.
Los datos en bruto se almacenan en disco usando un sistema de archivos, que está
disponible habitualmente en un sistema operativo convencional.

El gestor de almacenamiento traduce las diferentes instrucciones LMD a órdenes de un


sistema de archivos de bajo nivel. Así, el gestor de almacenamiento es responsable del
almacenamiento, recuperación y actualización de los datos en la base de datos.

Los componentes del gestor de almacenamiento incluyen:

o Gestor de autorización e integridad, que comprueba que se satisfagan las


restricciones de integridad y la autorización de los usuarios para acceder a los datos.

o Gestor de transacciones, que asegura que la base de datos quede en un estado


consistente (correcto) a pesar de los fallos del sistema, y que las ejecuciones de
transacciones concurrentes ocurran si conflictos.

o Gestor de archivos, que gestiona la reserva de espacio de almacenamiento de disco


y las estructuras de datos usadas para representar la información almacenada en
disco.

7
ADMINISTRACION DE BASE DE DATOS

En cambio, en una arquitectura de tres capas, la máquina cliente actúa simplemente


como frontal y no contiene ninguna llamada directa a la base de datos. En su lugar, el
cliente se comunica con un servidor de aplicaciones, usualmente mediante una interfaz
de formularios.

El servidor de aplicaciones, a su vez, se comunica con el sistema de bases de datos para


acceder a los datos.

La lógica de negocio de la aplicación, que establece las acciones a realizar bajo


determinadas condiciones, se incorpora en el servidor de aplicaciones, en lugar de ser
distribuida a múltiples clientes. Las aplicaciones de tres capas son más apropiadas para
grandes aplicaciones, y para las aplicaciones que se ejecutan en World Wide Web.

1.11.1 ARQUITECTURA DE LOS SISTEMAS DE BASES DE DATOS


Hay tres características importantes inherentes a los sistemas de bases de datos: la
separación entre los programas de aplicación y los datos, el manejo de múltiples vistas por
parte de los usuarios y el uso de un catálogo para almacenar el esquema de la base de
datos.
1.11 ARQUITECTURAS DE APLICACIONES
En 1975, el comité ANSI-SPARC (American National Standard Institute - Standards
La mayoría de usuarios de un sistema de bases de datos no están situados actualmente
Planning and Requirements Committee) propuso una arquitectura de tres niveles para los
junto al sistema de bases de datos, sino que se conectan a él a través de una red. Se
sistemas de bases de datos, que resulta muy útil a la hora de conseguir estas tres
puede diferenciar entonces entre las máquinas cliente, en donde trabajan los usuarios
características.
remotos de la base de datos, y las máquinas servidor, en las que se ejecuta el sistema de
bases de datos.
El objetivo de la arquitectura de tres niveles es el de separar los programas de aplicación
de la base de datos física. En esta arquitectura, el esquema de una base de datos se define
Las aplicaciones de bases de datos se dividen usualmente en dos o tres partes, como se
en tres niveles de abstracción distintos:
ilustra en la Figura 1.5. En una arquitectura de dos capas, la aplicación se divide en un
componente que reside en la máquina cliente, que llama a la funcionalidad del sistema de
1. En el nivel interno se describe la estructura física de la base de datos mediante un
bases de datos en la máquina servidor mediante instrucciones del lenguaje de consultas.
esquema interno. Este esquema se especifica mediante un modelo físico y describe
Los estándares de interfaces de programas de aplicación como ODBC y JDBC se usan
todos los detalles para el almacenamiento de la base de datos, así como los métodos
para la interacción entre el cliente y el servidor.
de acceso.
8
ADMINISTRACION DE BASE DE DATOS
reorganizar ciertos ficheros físicos con el fin de mejorar el rendimiento de las
2. En el nivel conceptual se describe la estructura de toda la base de datos para una operaciones de consulta o de actualización de datos. Dado que la independencia
comunidad de usuarios (todos los de una empresa u organización), mediante un física se refiere sólo a la separación entre las aplicaciones y las estructuras físicas de
esquema conceptual. Este esquema oculta los detalles de las estructuras de almacenamiento, es más fácil de conseguir que la independencia lógica.
almacenamiento y se concentra en describir entidades, atributos, relaciones,
operaciones de los usuarios y restricciones. En este nivel se puede utilizar un modelo En los SGBD que tienen la arquitectura de varios niveles es necesario ampliar el catálogo
conceptual o un modelo lógico para especificar el esquema. o diccionario, de modo que incluya información sobre cómo establecer la correspondencia
entre las peticiones de los usuarios y los datos, entre los diversos niveles. El SGBD utiliza
3. En el nivel externo se describen varios esquemas externos o vistas de usuario. Cada una serie de procedimientos adicionales para realizar estas correspondencias haciendo
esquema externo describe la parte de la base de datos que interesa a un grupo de referencia a la información de correspondencia que se encuentra en el catálogo. La
usuarios determinado y oculta a ese grupo el resto de la base de datos. En este nivel independencia de datos se consigue porque al modificarse el esquema en algún nivel, el
se puede utilizar un modelo conceptual o un modelo lógico para especificar los esquema del nivel inmediato superior permanece sin cambios, sólo se modifica la
esquemas. correspondencia entre los dos niveles. No es preciso modificar los programas de aplicación
que hacen referencia al esquema del nivel superior.
La mayoría de los SGBD no distinguen del todo los tres niveles. Algunos incluyen detalles
del nivel físico en el esquema conceptual. En casi todos los SGBD que se manejan vistas Por lo tanto, la arquitectura de tres niveles puede facilitar la obtención de la verdadera
de usuario, los esquemas externos se especifican con el mismo modelo de datos que independencia de datos, tanto física como lógica. Sin embargo, los dos niveles de
describe la información a nivel conceptual, aunque en algunos se pueden utilizar diferentes correspondencia implican un gasto extra durante la ejecución de una consulta o de un
modelos de datos en los niveles conceptual y externo. programa, lo cual reduce la eficiencia del SGBD. Es por esto que muy pocos SGBD han
implementado esta arquitectura completa.
Hay que destacar que los tres esquemas no son más que descripciones de los mismos
datos pero con distintos niveles de abstracción. Los únicos datos que existen realmente 2. EL DBMS
están a nivel físico, almacenados en un dispositivo como puede ser un disco. Un sistema de administración de base de datos (DBMS, por sus siglas en inglés) es un
conjunto de componentes que soportan la creación, el uso y el mantenimiento de bases de
En un SGBD basado en la arquitectura de tres niveles, cada grupo de usuarios hace datos. Inicialmente, los DBMS proporcionaban un eficiente almacenamiento y recuperación
referencia exclusivamente a su propio esquema externo. Por lo tanto, el SGBD debe de datos. Gracias a la demanda del mercado y a la innovación de productos, los DBMS han
transformar cualquier petición expresada en términos de un esquema externo a una evolucionado para proporcionar un amplio rango de características para incorporar,
petición expresada en términos del esquema conceptual, y luego, a una petición en el almacenar, diseminar, mantener, recuperar y formatear datos. La evolución de estas
esquema interno, que se procesará sobre la base de datos almacenada. funciones ha hecho que los DBMS sean más complejos. Puede tomar años de estudio y uso
conocer por completo un DBMS en particular.
Si la petición es de una obtención (consulta) de datos, será preciso modificar el formato de
la información extraída de la base de datos almacenada, para que coincida con la vista Ya que los DBMS continúan evolucionando, usted debe actualizarse de forma continua en
externa del usuario. su conocimiento.

El proceso de transformar peticiones y resultados de un nivel a otro se denomina Algunos ejemplos se extraen de Microsoft Access, un popular DBMS de escritorio. En
correspondencia o transformación. Estas correspondencias pueden requerir bastante capítulos posteriores se detallará más la introducción que aquí se presenta.
tiempo, por lo que algunos SGBD no cuentan con vistas externas.
2.1 EL SQL SERVER
La arquitectura de tres niveles es útil para explicar el concepto de independencia de datos SQL Server es un sistema gestor de bases de datos relacionales de Microsoft Corporation
que podemos definir como la capacidad para modificar el esquema en un nivel del sistema orientado a sistemas medianos y grandes, aunque también puede rodar en ordenadores
sin tener que modificar el esquema del nivel inmediato superior. Se pueden definir dos personales. SQL Server Management Studio (SSMS) es la herramienta de SQL Server
tipos de independencia de datos: que permite definir y gestionar todas las bases de datos almacenadas en el servidor SQL
Server. A continuación, veremos cómo utilizar el SQL Server Management Studio para
 La independencia lógica es la capacidad de modificar el esquema conceptual sin manejar las bases de datos del servidor y organizaremos el texto en los siguientes puntos:
tener que alterar los esquemas externos ni los programas de aplicación. Se puede Entrada al SQL Server Management Studio Las bases de datos: Estructura interna, crear,
modificar el esquema conceptual para ampliar la base de datos o para reducirla. Si, adjuntar, conectar y desconectar. Las tablas: crear tablas, definirlas, modificar su
por ejemplo, se reduce la base de datos eliminando una entidad, los esquemas contenido, etc. Relacionar tablas Las Consultas, Las Vistas
externos que no se refieran a ella no deberán verse afectados.

 La independencia física es la capacidad de modificar el esquema interno sin tener


que alterar el esquema conceptual (o los externos). Por ejemplo, puede ser necesario
9
ADMINISTRACION DE BASE DE DATOS
En la parte izquierda tenemos abierto el panel Explorador de Objetos en el que
2.2 ENTRADA AL SQL SERVER MANAGEMENT STUDIO aparece debajo del nombre del servidor con el que estamos conectados una serie de
Aunque trabajemos en modo local, la entrada a la herramienta es la misma. Para empezar carpetas y objetos que forman parte del servidor.

En el panel de la derecha se muestra la zona de trabajo, que varía según lo que


tengamos seleccionado en el Explorador de objetos, en este caso vemos el contenido
entramos a través del acceso directo o a través de Inicio, Programas, Microsoft
SQL Server, SQL Server Management Studio. de la carpeta que representa el servidor ord01.
Lo primero que deberemos hacer es establecer la conexión con el servidor:
En la parte superior tenemos el menú de opciones y la barra de herramientas Estándar.

Con las siguientes opciones:


1. Nueva consulta
2. Consulta de motor de Base de datos
3. Consulta MDX de Analysis Services
4. Consulta DMX de Analysis Services
5. Consulta MXLA de Analysis Services
6. Consulta de SQL Server Mobile
7. Abrir archivo
8. Guardar
9. Guardar todo
Seleccionamos el nombre del servidor y pulsamos el botón Conectar. Se abrirá la 10. Servidores registrados
ventana inicial del SQL Server Management Studio (en adelante SSMS): 11. Resumen
12. Explorador de Objetos
13. Explorador de Plantillas
14. Ventana de Propiedades

En caso de que utilices otra versión, es posible que no dispongas de algunos de éstos botones.

2.3 ESTRUCTURA INTERNA DE UNA BASE DE DATOS


Las bases de datos de SQL Server utilizan tres tipos de archivos:

ARCHIVOS DE DATOS PRINCIPALES


En una base de datos SQL Server los datos se pueden repartir en varios archivos para
mejorar el rendimiento de la base de datos. El archivo de datos principal es el punto de
partida de la base de datos y apunta a los otros archivos de datos de la base de datos.
Cada base de datos tiene obligatoriamente un archivo de datos principal. La extensión
recomendada para los nombres de archivos de datos principales es .mdf.

ARCHIVOS DE DATOS SECUNDARIOS


Los archivos de datos secundarios son todos los archivos de datos menos el archivo de
datos principal. Puede que algunas bases de datos no tengan archivos de datos
secundarios, mientras que otras pueden tener varios archivos de datos secundarios. La
extensión de nombre de archivo recomendada para los archivos de datos secundarios es
.ndf.
10
ADMINISTRACION DE BASE DE DATOS
Además, los archivos de datos se pueden agrupar en grupos de archivos. Para cada base Para crear una nueva base de datos de usuario nos posicionamos sobre la carpeta Bases de
de datos pueden especificarse hasta 32.767 archivos y 32.767 grupos de archivos. datos y con el botón derecho del ratón desplegamos el menú contextual del que elegimos la
opción Nueva base de datos…
ARCHIVOS DE REGISTRO
Los archivos de registro (archivos de log) almacenan toda la información de registro que
se utiliza para recuperar la base de datos, el también denominado registro de
transacciones. Como mínimo, tiene que haber un archivo de registro por cada base de
datos, aunque puede haber varios. La extensión recomendada para los nombres de
archivos de registro es .ldf.
SQL Server no exige las extensiones de nombre de archivo .mdf, .ndf y .ldf, pero estas
extensiones ayudan a identificar las distintas clases de archivos y su uso.

Cada base de datos tiene al menos 2 archivos (un archivo de datos principal y un archivo
de registro) y opcionalmente un grupo de archivos.

Los archivos de datos y de registro de SQL Server se pueden colocar en sistemas de


archivos FAT o NTFS. Se recomienda utilizar NTFS por los aspectos de seguridad que
ofrece. No se pueden colocar grupos de archivos de datos de lectura y escritura, y
archivos de registro, en un sistema de archivos NTFS comprimido. Sólo las bases de
datos de sólo lectura y los grupos de archivos secundarios de sólo lectura se pueden
colocar en un sistema de archivos NTFS comprimido.

2.4 CREAR UNA BASE DE DATOS EN SSMS


Se abre a continuación el cuadro de diálogo donde definiremos la base de datos que queremos
En el Explorador de objetos, si desplegamos la carpeta Bases de datos nos aparecen crear:
Bases de datos del sistema y las bases de datos de usuario después de la carpeta
Instantáneas...

Después de la instalación, en la carpeta Bases de datos del sistema se habrá creado una
especial denominada master se utiliza como base de datos de usuario por defecto.
Lo mínimo a introducir será el campo Nombre de la base de datos, éste es el nombre de la base
Las demás bases de datos forman también parte del diccionario de datos y las utiliza el sistema de datos lógica, la base de datos a la que nos referiremos dentro del SSMS, a nivel conceptual
para llevar a cabo su gestión. (en la imagen Mibase).

Las bases de datos de los usuarios se deben crear preferentemente fuera de la carpeta Bases Esta base de datos está asociada a dos archivos físicos, en la parte inferior aparecen esos
de datos del sistema. archivos. Para facilitarnos la tarea, al teclear el nombre de la bd lógica, se rellenan
automáticamente los nombres de los archivos físicos, el de datos con el mismo nombre y el del

11
ADMINISTRACION DE BASE DE DATOS
archivo de registro con el mismo nombre seguido de _log. Estos nombres son los nombres que 2.5 ADJUNTAR UNA BASE DE DATOS
se asumen por defecto pero los podemos cambiar, posicionando el cursor en el nombre y En ocasiones no necesitaremos crear la base de datos desde cero, porque ésta ya estará
cambiándolo. creada. Éste es el caso de los ejercicios del curso. Para realizarlos, deberás adjuntar una
base de datos ya existente a tu servidor.
Para cada archivo físico podemos definir una serie de parámetros como el tipo de archivo (si es Para ello, lo que tenemos que hacer es pegar los archivos en la ubicación que queramos,
de datos o de transacciones Registro) y su ocupación inicial (Tamaño inicial). y luego indicar al SQL Server que vamos a utilizar esta base de datos, de la siguiente
manera:
Estos son los archivos mínimos en los que se almacenará la base de datos, pero como ya vimos
anteriormente se puede almacenar en más archivos, los tenemos que definir todos en esta En el Explorador de objetos, sobre la carpeta Bases de datos desplegar el menú
ventana a continuación de los dos obligatorios. contextual y elegir Adjuntar...

Para añadir más archivos físicos disponemos del botón Agregar.


Al pulsar el botón Agregar se crea una nueva fila en la tabla de archivos físicos donde
deberemos escribir el nombre del archivo, su tipo (desplegando la lista podemos elegir entre de
datos o de registro) y demás parámetros.

Al agregar un nuevo archivo se activa el botón Quitar, siempre que estemos posicionados encima
de un archivo secundario para poder así eliminarlo si lo queremos.

No podemos eliminar ni el de datos primario, ni el de registro inicial.

Si nos fijamos en la zona de la izquierda, vemos que nos encontramos en la pestaña General,
podemos cambiar otros parámetros de la base de datos pulsando en Grupos de archivos o en
Opciones:

Al final pulsamos en Aceptar y se creará la base de datos. En la siguiente ventana elegimos la base de datos:

Aparecerá dentro de la carpeta Bases de datos. Si no se ve pulsa en el icono Actualizar .

Desde el Explorador de Windows podemos ver que en la carpeta indicada se han creado los
archivos físicos con los nombres que le hemos indicado.

12
ADMINISTRACION DE BASE DE DATOS
Pulsando en Agregar indicamos el archivo de datos primario en su ubicación y gestor SSMS, por ejemplo, desde el Explorador de Windows. Es decir, no podremos
automáticamente se adjuntará la base de datos lógica asociada a este archivo. copiar, cortar, mover o eliminar los archivos fuente mdf, ndf y ldf. Si lo intentamos se
mostrará un aviso de que la base de datos está en uso.

Ésto es así porque SQL Server sigue en marcha, a pesar de que se cierre el gestor. Ten
en cuenta que el servidor de base de datos normalmente se crea para que sirva
información a diferentes programas, por eso sería absurdo que dejara de funcionar
cuando cerramos el programa gestor, que sólo se utiliza para realizar modificaciones
sobre la base.

Para poder realizar acciones sobre la base de datos, ésta debe estar desconectada. Para
ello, desde el SSMS, desplegamos el menú contextual de la base de datos que nos
interese manipular y seleccionaremos la opción Poner fuera de conexión:

Finalmente pulsamos en Aceptar y aparece la base de datos en nuestro servidor.

Aparecerá un símbolo a la izquierda de la base de datos indicándonos que la base de


datos está desconectada, a partir de este momento Windows nos dejará manipular los archivos.

Para volver a conectar la base de datos y seguir trabajando con ella, accederemos al mismo
menú contextual pero elegiremos la opción Poner en conexión:

La opción Adjuntar sólo se utiliza la primera vez, cuando todavía no tenemos la base de datos
en el disco.
El caso más inmediato en el que puedes necesitar conectar y desconectar la base de datos es
2.6 CONECTAR Y DESCONECTAR LA BASE DE DATOS
copiar a un pendrive los archivos de las bases que utilizarás en los ejercicios para poder trabajar
Una vez hemos creado la base de datos o la hemos adjuntado a nuestro servidor, nos
en diferentes ordenadores con ellos.
daremos cuenta de que no podremos manipular los archivos de la base desde fuera del

13
ADMINISTRACION DE BASE DE DATOS
EJERCICIO: TRASLADAR UNA BASE DE DATOS A OTRO EQUIPO 2. Una vez sabemos la ruta, utilizamos el Explorador de Windows para abrir a la carpeta
Objetivo: Copiar una base de datos que está en uso en un servidor, y adjuntarla o donde se encuentran los archivos.
actualizarla en otro. 3. Volvemos al SSMS y desconectamos la base de datos, como ya hemos visto: Desde el
Vamos a suponer que tenemos una base de datos en el servidor de clase y queremos llevarnos la menú contextual y eligiendo Tareas > Poner fuera de conexión.
base de datos a nuestra casa para seguir trabajando con ella. 4. Ahora que ya está desconectada, copiamos los archivos desde el Explorador de Windows,
1. Sabemos que la base de datos está en los archivos físicos que definimos cuando definimos por ejemplo, a nuestro pendrive.
la base de datos, estos archivos se localizan en una determina ruta. Esta información se Ya tenemos una copia de la base de datos de clase. Ahora vamos a ver cómo incluirla en el otro
encuentra en las propiedades de la base de datos, para acceder a la ventana de ordenador, es decir, en casa.
propiedades de la base de datos (parecida la que se abrió cuando creamos la base de - En caso de que la base de datos no exista, deberás adjuntarla como ya hemos visto: Desde el
datos) utilizamos como siempre el menú contextual que nos llevará a la ventana menú contextual de bases de datos y eligiendo la Adjuntar...
Propiedades de la base de datos: - En caso de que la base de datos ya exista y lo que quieras sea actualizarla, deberás:
1. Desconectar la base existente desde SSMS.
2. Sobreescribir los archivos físicos por los nuevos que llevas en el pendrive, desde el Explorador
de Windows.
3. Volver a conectar la base de datos desde SSM
En caso de que tu versión de SQL Server no tenga las opciones Poner en conexión y Poner
fuera de conexión, deberás utilizar la opción Separar... y luego volver a adjuntarla.

3. CREAR UNA NUEVA TABLA


Para crear una nueva tabla primero nos tenemos que posicionar en la base de datos
donde queremos que se almacene la tabla, desplegar el menú contextual y seleccionar la
opción Nueva tabla.

En la ventana que se abre debemos definir las columnas de la tabla:

14
B
15A S E D E D A T O S – L A B O R A T O R I O 15
15 15

A cada columna se le asigna un nombre, un tipo de datos, y opcionalmente una serie de


propiedades, en este tema veremos las básicas y las demás las veremos con más detalle
cuando veamos la instrucción SQL CREATE TABLE..

De momento no tenemos definida ninguna columna, al teclear un nombre se crea una


primera entrada en esta tabla con la definición de la primera columna. En la columna Tipo
de datos elegimos qué tipo de valores se podrán almacenar en la columna.

3.1 TIPOS DE DATOS

En este ejemplo hemos definido una columna (Codigo) de tipo Entero corto (Smallint),
y una columna (Nombre) que almacenará hasta 20 caracteres alfanuméricos
(nchar(20)), en este caso la longitud la indicamos en la pestaña Propiedades de
columna en la propiedad Longitud.

Las propiedades de la columna pueden variar dependiendo del tipo de datos de la


columna seleccionada, por ejemplo los campos enteros no tienen la propiedad
longitud, ya que el propio tipo define la longitud del campo, en cambio los campos de
tipo numeric o decimal no tiene la propiedad longitud pero sí las propiedades escala
y precisión, los valores que permiten definir el tamaño del campo.

3.2 VALORES NULOS


También podemos indicar si la columna permitirá valores nulos o no, o bien cambiando la
propiedad Permitir valores nulos que aparece debajo de la propiedad Longitud, o bien
simplemente marcando o desmarcando la casilla de la columna Permitir valores nulos
que se encuentra al lado de la columna Tipo de datos. Si la casilla está marcada, el
usuario podrá no rellenar el campo cuando inserte una fila de datos en la tabla.
Podemos elegir entre todos los tipos que aparecen arriba.
3.3 COLUMNA CON CONTADOR
Algunos tipos no necesitan más, como por ejemplo el tipo entero (int), y otros se
pueden completar con una longitud, como los tipos alfanuméricos:

15
B
16A S E D E D A T O S – L A B O R A T O R I O 16
16 16

Aunque este tipo de columnas se utiliza frecuentemente como clave primaria, SQL Server
no le asigna automáticamente esta función, la tenemos que definir nosotros mismos, pero
sí fuerza a que sea una columna sin valores nulos. No se puede definir más de una
columna de identidad por tabla.

3.4 CLAVE PRIMARIA


Para definir una columna como clave primaria, posicionamos el puntero del ratón sobre
la columna, desplegamos el menú contextual y seleccionamos la opción Establecer
Clave principal:

Aparecerá una llave a la izquierda del nombre, símbolo de las claves principales:

En la mayoría de los sistemas gestores de bases de datos tenemos un tipo de datos de


tipo contador, autonumérico, autoincremental, etc. Este tipo hace que el propio sistema Para definir una clave primaria compuesta por varias columnas, seleccionamos las
es el encargado de rellenar el campo con un valor que va incrementando conforme se columnas manteniendo pulsada la tecla Ctrl y luego seleccionamos la opción.
crean más filas de datos en la tabla.
Para quitar una clave principal, hacemos lo mismo pero en esta ocasión
Las columnas de este tipo se utilizan normalmente para numerar las filas de la tabla, como seleccionamos la opción Quitar clave principal.
no habrán dos filas con el mismo valor (el sistema se encarga de incrementar el valor
cada vez que se crea una nueva fila), estos campos se suelen utilizar como claves
primarias.

En SQL Server no existe el tipo de datos Contador pero se consigue el mismo


funcionamiento asignando a la columna un tipo de datos numérico y definiendo la columna
como columna de identidad.

En las propiedades de la columna marcamos Sí en la propiedad (Identidad) y a


continuación podemos indicar en qué valor queremos que empiece el contador
(Inicialización de identidad) y en cuánto incrementará cada vez que se cree un nuevo También podemos utilizar el icono de la barra de herramientas.
registro (Incremento de identidad).
3.5 AÑADIR O ELIMINAR COLUMNAS

16
B
17A S E D E D A T O S – L A B O R A T O R I O 17
17 17

Una vez definidas algunas columnas, si queremos añadir una nueva columna entre dos, nos
posicionamos en la segunda y seleccionamos la opción Insertar columna del menú
contextual.

La nueva tabla aparecerá en la lista de tablas de la base de datos:

La nueva columna se colocará delante:

Del mismo modo si queremos eliminar la definición de una columna, nos posicionamos en la
columna a eliminar y seleccionamos la opción Eliminar columna:

3.6 MODIFICAR LA DEFINICIÓN DE UNA TABLA


Para entrar a la ventana de definición de la tabla utilizamos la opción Modificar de su menú
contextual (También es posible que se llame Diseño):

O simplemente hacemos clic en la zona a la izquierda del nombre y pulsamos la tecla Supr.

Finalmente guardamos la tabla, nos pedirá el nombre de la tabla:

Se abrirá la ventana que ya conocemos para definir las columnas de la tabla.

3.7 INSERTAR DATOS EN LA TABLA


Ahora que tenemos la tabla creada podemos rellenarla con datos. Para eso debemos
abrir la tabla:

17
B
18A S E D E D A T O S – L A B O R A T O R I O 18
18 18

Se abrirá una ventana parecida a esta:

En cualquiera de los dos casos nos aparece un mensaje de confirmación.

La primera columna sirve para indicarnos el estado de una fila, por ejemplo el * nos indica
que es una nueva fila, esta fila realmente no está en la tabla, nos sirve de contenedor
para los nuevos datos que queremos insertar.

Para insertar una nueva fila de datos sólo tenemos que rellenar los campos que aparecen 3.10 RELACIONAR TABLAS
en esa fila (la del *), al cambiar de fila los datos se guardarán automáticamente en la tabla Como ya hemos visto, en una base de datos relacional, las relaciones entre las tablas se
a no ser que alguno infrinja alguna regla de integridad, en ese caso SQL Server nos implementan mediante la definición de claves ajenas, que son campos que contienen
devuelve un mensaje de error para que corrijamos el dato erróneo, si no lo podemos valores que señalan a un registro en otra tabla, en esta relación así creada, la tabla
corregir entonces sólo podemos deshacer los cambios. referenciada se considera principal y la que contiene la clave ajena es la subordinada.
3.8 MODIFICAR DATOS Desde el entorno gráfico del SSMS podemos definir claves ajenas entrando en el diseño
Para modificar un valor que ya está en una fila de la tabla sólo tenemos que posicionarnos de la tabla y desplegando el menú contextual del campo que va a ser clave ajena:
en el campo y rectificar el valor. En cuanto modificamos un valor, la fila aparece con un
lápiz escribiendo (ver imagen), este lápiz nos indica que la fila se ha modificado y tiene
nuevos datos por guardar. Al salir de la fila ésta se guardará automáticamente a no ser
que el nuevo valor infrinja alguna regla de integridad. Si queremos salir de la fila sin
guardar los cambios, tenemos que cancelar la actualización pulsando la tecla ESC.

3.9 ELIMINAR FILAS


Para eliminar una fila completa, la seleccionamos y pulsamos la tecla Supr o bien
desplegamos su menú contextual y seleccionamos la opción Eliminar.

18
B
19A S E D E D A T O S – L A B O R A T O R I O 19
19 19

Seleccionamos la opción Relaciones y se abre la ventana:

En la parte derecha tenemos la tabla en la que estamos y el campo que va a actuar


como clave ajena, sólo nos queda elegir en el desplegable de la izquierda la tabla a
la que hace referencia la clave y al seleccionar una tabla, a la izquierda del campo
clave ajena podremos elegir el campo de la otra tabla por el que se relacionarán las
tablas. En nuestro caso será:

Al pulsar el botón que se encuentra en la fila Especificación de tablas y columnas


se abre el diálogo donde definiremos la relación:

De esta forma hemos definido una relación entre las tablas Facturas y Clientes. Para ver las
relaciones existentes entre las diferentes tablas tenemos los diagramas.

Primero debemos definir el diagrama, para ello seleccionamos la opción correspondiente:

19
B
20A S E D E D A T O S – L A B O R A T O R I O 20
20 20

Si no tenemos todavía ningún diagrama creado, nos aparece un mensaje:

Elegimos Sí y se crea digamos el soporte donde se pintará el diagrama.

A continuación nos aparece el nuevo diagrama ahora si elegimos crear un nuevo diagrama nos
preguntará las tablas a incluir en el diagrama: La llave indica la tabla principal (padre) y el símbolo infinito señala la tabla que contiene la clave
ajena.

En el examinador de objetos en la carpeta Diagramas de base de datos aparecen todos los


diagramas definidos hasta el momento:

Seleccionamos cada una y pulsamos Agregar, cuando hayamos agregado al diagrama todas Hemos aprendido hasta ahora lo básico para poder crear una base de datos y rellenarla con
las que queremos pulsamos en Cerrar y aparecerán en el diagrama las tablas con las relaciones tablas relacionadas entre sí y con datos, ahora veamos cómo recuperar esos datos.
que tengan definidas en ese momento:
3.11 ABRIR UNA NUEVA CONSULTA

Vamos a ver ahora cómo crear consultas SQL y ejecutarlas desde el entorno del SSMS.

Para ello debemos abrir la zona de trabajo de tipo Query, abriendo una nueva consulta,

seleccionando previamente el servidor y pulsando el botón de la barra


de botones o si queremos realizar la consulta sobre un servidor con el cual todavía no hemos

20
B
21A S E D E D A T O S – L A B O R A T O R I O 21
21 21

establecido conexión, seleccionando de la barra de menús la opción Nuevo > Consulta de


motor de base de datos: 3.12 ESCRIBIR Y EJECUTAR CÓDIGO TRANSACT-SQL

Sólo tenemos que teclear la sentencia a ejecutar, por ejemplo empezaremos por crear la base
de datos.
Utilizaremos la sentencia CREATE DATABASE mínima:
CREATE DATABASE ventas;

Al pulsar el botón Ejecutar se ejecuta la sentencia y aparece en la parte inferior el resultado de


la ejecución, en la pestaña Mensajes:

En este último caso nos aparecerá el cuadro de diálogo para establecer la conexión (el mismo
que vimos al principio del tema).

A continuación, se abrirá una nueva pestaña donde podremos teclear las sentencias SQL:

Si ahora desplegamos la carpeta Bases de Datos del Explorador de Objetos, observaremos


la base de datos que hemos creado:

Además aparece una nueva barra de botones que nos permitirá ejecutar los comandos más
útiles del modo query.

21
B
22A S E D E D A T O S – L A B O R A T O R I O 22
22 22

consulta la instrucción USE nombreBaseDatos; esto hará que todas las instrucciones que
aparezcan después, se ejecuten sobre la base de datos indicada.

Por ejemplo:

USE ventas;
SELECT * FROM pedidos;

Obtiene todos los datos de la tabla pedidos que se encuentra en la base de datos ventas.
Si no utilizamos USE y almacenamos la consulta, al abrirla otra vez, cogerá como base de datos
la predeterminada (no la activa) y se volverá a ejecutar sobre la base de datos master.

Normalmente utilizaremos como base de datos la nuestra y no la base de datos master, por lo que
nos será útil cambiar el nombre de la base de datos por defecto, esto lo podemos hacer cambiando
la base de datos por defecto en el id de sesión.

Para ello, cuando vamos a conectar con el servidor:

Si la ejecución de la sentencia produce un error, el sistema nos devolverá el mensaje de error


escrito en rojo en la pestaña Mensajes.

Podemos incluir en una misma consulta varias sentencias SQL, cuando pulsamos Ejecutar se
ejecutarán todas una detrás de otra. Si tenemos varias consultas y sólo queremos ejecutar una,
la seleccionaremos antes de ejecutarla.

3.13 LA BASE DE DATOS PREDETERMINADA

Cuando ejecutamos consultas desde el editor, nos tenemos que fijar sobre qué base de datos se
va a actuar.

Fijándonos en la pestaña de la consulta, en el nombre aparece el nombre del servidor seguido de


un punto y el nombre de la base de datos sobre la que se va a actuar y luego un guión y el nombre
de la consulta.
Pulsamos en el botón Opciones >>
En la imagen anterior tenemos ord01.master
– SQLQuery1.sql, lo que nos indica que la consulta se llama SQLQuery1.sql, y que se va a
ejecutar sobre la base de datos master que se encuentra en el servidor ord01.

Cuando creamos una nueva consulta, ésta actuará sobre la base de datos activa en ese momento.
Por defecto la base de datos activa es la predeterminada (master). Si queremos que la base de
datos activa sea por ejemplo la base de datos ventas, hacemos clic sobre su nombre en el
Explorador de objetos, y ésta pasará a ser la base de datos activa. Si ahora creamos una nueva
consulta, ésta actuará sobre la base de datos ventas.

Si queremos crear una consulta que siempre actúe sobre una determinada base de datos y no
nos queremos preocupar de qué base de datos tenemos activa podemos añadir al principio de la

22
B
23A S E D E D A T O S – L A B O R A T O R I O 23
23 23

La elegimos y aceptamos. A partir de ese momento la base de datos elegida será la que
SQL Server coja por defecto en todas las sesiones de ese usuario.
En la pestaña Propiedades de conexión, en el cuadro Conectar con base de datos:
Seleccionamos <Examinar servidor > para elegir la base de datos. 3.14 EL EDITOR DE TEXTO
Para facilitarnos la redacción y corrección de las sentencias, el editor de SQL presenta
las palabras de distintos colores según su categoría y podemos utilizar el panel
Explorador de Objetos para arrastrar desde él los objetos sobre la zona de trabajo y así
asegurarnos de que los nombres de los objetos (por ejemplo nombre de tabla, de
columna, etc.) sean los correctos.
Como hemos dicho el texto que se escribe en este editor de código se colorea por
categoría. Los colores son los mismos que se utilizan en todo el entorno SQL Server. En
esta tabla aparecen los colores más comunes.

Color Categoría
Rojo Cadena de caracteres
Verde oscuro Comentario
Negro sobre fondo plateado Comando SQLCMD
Fucsia Función del sistema
Verde Tabla del sistema
Azul Palabra clave
Verde azulado Números de línea o parámetro de plantilla

23
B
24A S E D E D A T O S – L A B O R A T O R I O 24
24 24

Rojo oscuro Procedimiento almacenado de SQL Server


Gris oscuro Operadores

3.15 CONFIGURAR UN ESQUEMA DE COLORES PERSONALIZADO


En el menú Herramientas > Opciones, desplegando la opción Entorno, Fuentes y
colores, se puede ver la lista completa de colores y sus categorías, así como configurar
un esquema de colores personalizado:

Para definir una vista en el Explorador de Objetos desplegamos la base de datos donde la
guardaremos y elegimos la opción Nueva vista del menú contextual de la carpeta Vistas, se
pondrá en funcionamiento el generador de consultas pidiéndonos las tablas en las que se
basará la vista. Pulsamos sobre la tabla a añadir al diseño de la vista y pulsamos el botón
Agregar, podemos añadir así cuántas tablas queramos.

Después de Cerrar, vemos a la derecha del Explorador de Objetos la pestaña con la definición
de la vista que puede incluir varios paneles:
En la lista Mostrar valores para, seleccionamos el entorno que se verá afectado.

El botón Usar predeterminados nos permite volver a la configuración predeterminada.

Ahora sólo nos queda aprender a redactar sentencias SQL, cosa que se verá en otro momento,
mientras tanto podemos utilizar el Generador de Consulta que incluye SSMS y que veremos
a continuación en el apartado sobre vistas.

3.16 LAS VISTAS


Las consultas que hemos visto hasta ahora son trozos de código SQL que podemos
guardar en un archivo de texto y abrir y ejecutar cuando queramos, pero si queremos que
nuestra consulta de recuperación de datos se guarde en la propia base de datos y se
comporte como una tabla (algo parecido a una consulta almacenada de Access), la
tenemos que definir como una vista. Esta vista tiene la ventaja entre otras de poder ser
utilizada como si fuese una tabla en otras consultas.

Realmente al ejecutarla obtenemos una tabla lógica almacenada en memoria y lo que se


guarda en la base de datos es su definición, la instrucción SQL que permite recuperar los
datos.

24
B
25A S E D E D A T O S – L A B O R A T O R I O 25
25 25

Nosotros, a lo largo del curso, crearemos las vistas desde el panel SQL que veremos más
adelante.
3.17 EL PANEL DE DIAGRAMA
Es el primero que aparece, incluye una representación gráfica de las tablas con sus
campos y de la forma en que se juntan en la vista. En este caso, como las tablas tienen
relaciones definidas (claves ajenas), esta relación ha aparecido automáticamente al
añadir la segunda tabla. Pero se puede cambiar el tipo de relación eligiendo la opción
correspondiente en el menú contextual que aparece con el clic derecho sobre la relación:

Desde el panel diagrama podemos añadir cómodamente campos de las tablas a la


consulta marcando la casilla correspondiente. En la imagen anterior la única casilla
seleccionada es la del * en la tabla Libros por lo que se visualizarán todas las columnas
de la tabla Libros y ninguna de la tabla Préstamos.
Conforme vamos marcando casillas de las tablas del panel diagrama, los cambios se ven
reflejados en los demás paneles excepto en el panel de resultados que se actualiza
ejecutando la consulta.
La aparición de estos paneles es configurable, en la barra de herramientas Diseñador de vistas
los iconos remarcados en azul son los correspondientes a cada panel: 3.18 EL PANEL DE CRITERIOS
Es una rejilla en la que podemos definir las columnas del resultado de la consulta (las
columnas de la vista).

25
B
26A S E D E D A T O S – L A B O R A T O R I O 26
26 26

En cada fila de la rejilla se define una columna del resultado o una columna que se utiliza
para obtener el resultado. En cada celda indicamos una condición que debe cumplir la columna correspondiente y
se puede combinar varias condiciones mediante O (OR) e Y (AND) según coloquemos
En Columna tenemos el nombre de la columna de la se obtienen los datos o la expresión las condiciones en la misma columna o en columnas diferentes. En el ejemplo anterior
cuando se trata de una columna calculada. tenemos la condición compuesta: ((usuario=1) AND (Dias>5)) OR (Usuario=2).

En Alias escribimos el nombre que tendrá la columna en la vista, también corresponde Podemos variar el orden de aparición de las columnas arrastrando la fila correspondiente
con el encabezado de la columna en la rejilla de resultado. Si se deja el campo en blanco, de la rejilla hasta el lugar deseado.
por defecto se asume el mismo nombre que hay en Columna.
También podemos Elimnar filas de la rejilla para eliminar columnas del resultado, lo
En Tabla tenemos el nombre de la tabla del origen de la consulta a la que pertenece la conseguimos seleccionando la fila haciendo clic sobre su extremo izquierda y cuando
Columna, por ejemplo la primera columna del resultado se saca de la columna Codigo de aparece toda la fila remarcada pulsamos Supr o desde el menú contextual de la fila.
la tabla LIBROS y se llamará CodLibro. La cuarta columna de la vista cogerá sus datos
de la columna Usuario de la tabla Prestamos y se llamará Usuario (Alias se ha dejado en Podemos definir consultas más complejas como por ejemplo consultas de resumen,
blanco por lo que asume el nombre que hay en Columna. pulsando sobre el botón Agrupar por de la barra de herramientas, se añade a la rejilla una
nueva columna Agrupar por con las siguientes opciones:
En la columna Resultados indicamos si queremos que la columna se visualice o no, las
columnas con la casilla marcada se visualizan.

Las columnas Criterio de ordenación y Tipo de orden permiten ordenar las filas del
resultado según una o más columnas. Se ordena por las columnas que tienen algo en
Tipo de orden y cuando se ordena por varias columnas Criterio de ordenación indica que
primero se ordena por la columna que lleva el nº 1 y después por la columna que lleva el
nº 2 y así sucesivamente. En el ejemplo las filas del resultado se ordenarán primero por
código de libro y después por código de préstamo, todas las filas dentro del mismo libro
se ordenarán por código de préstamo.

Si queremos añadir unos criterios de selección tenemos las columnas Filtro y O…

3.19 EL PANEL SQL


En él vemos la instrucción SQL generada, también podemos redactar directamente la
sentencia SQL en el panel y ver los cambios equivalentes en los distintos paneles. Para
ver estos cambios debemos de ejecutar o Comprobar la sintaxis para que se actualicen
los demás paneles.

26
B
27A S E D E D A T O S – L A B O R A T O R I O 27
27 27

Por defecto el generador añade a la consulta una cláusula TOP (100) PERCENT que
indica que se visualizarán el 100% de las filas. Esta cláusula no la hemos definido
nosotros sino que la añade automáticamente el generador.

Una vez tenemos la vista definida la guardamos y podremos hacer con ella casi todo
lo que podemos hacer con una tabla. De hecho si nos fijamos en el Explorador de

Vemos que la estructura es muy similar a la estructura de una tabla. Y que podemos
modificar su definición y ejecutarla, igual que con las tablas:

Modificar para modificar la definición de la vista

Abrir vista para ejecutarla y ver los datos como si fuese una tabla real.

EJERCICIO 1: CREAR UNA BASE DE DATOS


Se desea implementar una base de datos para el control de una biblioteca. Crea la base de datos
con el nombre Biblioteca y las opciones por defecto.

EJERCICIO 2: CREAR Y DEFINIR TABLAS

Crea las tablas Libros, Préstamos y Usuarios de forma que sigan el siguiente esquema:

Tabla Libros
NOMBRE CAMPO TIPO DE DATOS TAMAÑO
Codigo Numérico Byte
Nombre Texto 60
objetos, en la carpeta Vistas: Editorial Texto 25
Autor Texto 25
Genero Texto 20

27
B
28A S E D E D A T O S – L A B O R A T O R I O 28
28 28

PaisAutor Texto 20 Ejercicio 2: Crear y definir tablas


Para crear las tablas:
Paginas Numérico Entero 1. Despliega el contenido de la base de datos Biblioteca, en el Explorador de objetos.
AnyEdicion Fecha/Hora Fecha mediana 2. Despliega el menú contextual de Tablas y escoge la opción Nueva tabla...
3. Escribe el nombre de cada columna y escoge el tipo de datos en el desplegable. En la
Precio Moneda
zona inferior, en la pestaña Propiedades de columna, busca el campo que define el
Dias Numérico Entero tamaño del dato y cámbialo si es necesario.
4. Cuando hayas acabado, pulsa el botón Guardar o cierra la tabla y dale el nombre
Tabla Préstamos correspondiente.
5. Repite los pasos para cada una de las tres tablas.
NOMBRE CAMPO TIPO DE DATOS TAMAÑO
Codigo Autonumérico Ejercicio 3: Insertar datos en las tablas
Para insertar los datos en las tablas.
Libro Numérico Byte
1. Despliega el contenido de la carpeta Tablas de Biblioteca, en el Explorador de objetos.
Usuario Numérico Byte 2. Despliega el menú contextual de una de las tablas y escoge la opción Abrir tabla.
FSalida Fecha/Hora Fecha mediana Rellena los campos.
3. Repite la operación para las otras dos tablas.
FMaxima Fecha/Hora Fecha mediana
FDevol Fecha/Hora Fecha mediana Ejercicio 4: Modificar la definición de las tablas
Para modificar la definición de las tablas:
Ten en cuenta que las claves primarias serán los campos codigo de cada tabla. Además, el
Tabla Usuarios
campo Libro de la tabla Prestamos es clave ajena, hace referencia al Codigo de Libros. Y el
NOMBRE CAMPO TIPO DE DATOS TAMAÑO campo Usuario también es clave ajena, hace referencia al Codigo de Usuarios
Codigo Autonumérico 1. Despliega el contenido de la carpeta Tablas de Biblioteca, en el Explorador de objetos.
2. Despliega el menú contextual de la tabla que quieras modificar y escoge la opción
Nombre Texto 15 Diseño (o Modificar).
Apellidos Texto 25 3. Incluye la clave primaria seleccionando la columna Codigo y pulsando el botón en forma
de llave de la barra de herramientas.
DNI Texto 12 4. Si la tabla contiene una clave ajena, indícalo desplegando el menú contextual del campo
Domicilio Texto 50 que quieres relacionar y seleccionando Relaciones...
Poblacion Texto 30 5. No olvides marcar o desmarcar la casilla Permite valores nulos convenientemente.
6. Repite la operación para las otras dos tablas.
Provincia Texto 20
FNacim Fecha/Hora Fecha mediana
4. EL LENGUAJE DE LAS BASES DE DATOS
Maximo_permitido Numérico Entero
El SQL (Structured query language), lenguaje de consulta estructurado, es un lenguaje
surgido de un proyecto de investigación de IBM para el acceso a bases de datos relacionales.
SOLUCION Actualmente se ha convertido en un estándar de lenguaje de bases de datos, y la mayoría
Ejercicio 1: Crear una base de datos de los sistemas de bases de datos lo soportan, desde sistemas para ordenadores
Para crear la base de datos con el nombre Biblioteca y las opciones por defecto: personales, hasta grandes ordenadores.
1. Abre el SQL Server Management Studio Express que instalaste. Por supuesto, a partir del estándar cada sistema ha desarrollado su propio SQL que puede
2. Haz clic con el botón secundario del ratón sobre la carpeta Bases de datos del Explorador variar de un sistema a otro, pero con cambios que no suponen ninguna complicación para
de objetos. alguien que conozca un SQL concreto. Como su nombre indica, el SQL nos permite realizar
3. Selecciona Nueva base de datos... consultas a la base de datos. Pero el nombre se queda corto ya que SQL además realiza
4. Llámala Biblioteca y deja los nombres y características de los archivos con su definición funciones de definición, control y gestión de la base de datos.
predeterminada. Pulsa Aceptar.
5. Despliega el contenido de la nueva carpeta Biblioteca pulsando sobre el signo + para Las sentencias SQL se clasifican según su finalidad dando origen a tres ‘lenguajes’ o mejor
comprobar que se ha creado correctamente. dicho sublenguajes:

28
B
29A S E D E D A T O S – L A B O R A T O R I O 29
29 29

El DDL (Data Description Language), lenguaje de definición de datos, incluye órdenes El DML (Data Manipulation Language) Lenguaje de Manipulación de Datos.
para definir, modificar o borrar las tablas en las que se almacenan los datos y de las
relaciones entre estas. (Es el que más varia de un sistema a otro). El DDL, es la parte del SQL dedicada a la definición de la base de datos, consta de sentencias
para definir la estructura de la base de datos, permiten crear la base de datos, crear,
El DCL (Data Control Language), lenguaje de control de datos, contiene elementos útiles modificar o eliminar la estructura de las tablas, crear índices, definir reglas de validación de
para trabajar en un entorno multiusuario, en el que es importante la protección de los datos, datos, relaciones entre las tablas, etc. Permite definir gran parte del nivel interno de la base
la seguridad de las tablas y el establecimiento de restricciones en el acceso, así como de datos. Por este motivo estas sentencias serán utilizadas normalmente por el
elementos para coordinar la compartición de datos por parte de usuarios concurrentes, administrador de la base de datos.
asegurando que no interfieren unos con otros.
El DCL (Data Control Language) se compone de instrucciones que permiten:
El DML (Data Manipulation Language), lenguaje de manipulación de datos, nos permite Ejercer un control sobre los datos tal como la asignación de privilegios de acceso a los
recuperar los datos almacenados en la base de datos y también incluye órdenes para permitir datos (GRANT/REVOKE).
al usuario actualizar la base de datos añadiendo nuevos datos, suprimiendo datos antiguos La gestión de transacciones (COMMIT/ROLLBACK).
o modificando datos previamente almacenados. Una transacción se puede definir como un conjunto de acciones que se tienen que realizar
todas o ninguna para preservar la integridad de la base de datos.
Características del lenguaje
Una sentencia SQL es como una frase (escrita en inglés ) con la que decimos lo que Por ejemplo supongamos que tenemos una base de datos para las reservas de avión. Cuando
queremos obtener y de donde obtenerlo. Todas las sentencias empiezan con un verbo un usuario pide reservar una plaza en un determinado vuelo, el sistema tiene que comprobar
(palabra reservada que indica la acción a realizar), seguido del resto de cláusulas, algunas que queden plazas libres, si quedan plazas reservará la que quiera el usuario generando un
obligatorias y otras opcionales que completan la frase. Todas las sentencias siguen una nuevo billete y marcando la plaza como ocupada.
sintaxis para que se puedan ejecutar correctamente, para describir esa sintaxis utilizaremos
un diagrama sintáctico como el que se muestra a continuación. Aquí tenemos un proceso que consta de dos operaciones de actualización de la base de
datos (crear una nueva fila en la tabla de billetes y actualizar la plaza reservada en el vuelo,
4.1 CONCEPTOS BÁSICOS DE SQL poniéndola como ocupada) estas dos operaciones se tienen que ejecutar o todas o ninguna,
SQL (Structured Query Language), Lenguaje Estructurado de Consulta es el lenguaje si después de crear el billete no se actualiza la plaza porque se cae el sistema, por ejemplo,
utilizado para definir, controlar y acceder a los datos almacenados en una base de datos la base de datos quedaría en un estado inconsistente ya que la plaza constaría como libre
relacional. cuando realmente habría un billete emitido para esta plaza.

Como ejemplos de sistemas gestores de bases de datos que utilizan SQL podemos citar En este caso el sistema tiene el mecanismo de transacciones para evitar este error. Las
DB2, SQL Server, Oracle, MySql, Sybase, PostgreSQL o Access. operaciones se incluyen las dos en una misma transacción y así el sistema sabe que las tiene
que ejecutar las dos, si por lo que sea no se pueden ejecutar las dos, se encarga de deshacer
El SQL es un lenguaje universal que se emplea en cualquier sistema gestor de bases de los cambios que se hubiesen producido para no ejecutar ninguna.
datos relacional. Tiene un estándar definido, a partir del cual cada sistema gestor ha
desarrollado su versión propia. Las instrucciones que gestionan las autorizaciones serán utilizadas normalmente por el
administrador mientras que las otras, referentes a proceso de transacciones serán utilizadas
EL SQL en principio es un lenguaje orientado únicamente a la definición y al acceso a los también por los programadores.
datos por lo que no se puede considerar como un lenguaje de programación como tal ya que
no incluye funcionalidades como son estructuras condicionales, bucles, formateo de la No todos los sistemas disponen de ellas.
salida, etc. (aunque veremos que esto está evolucionando).
El DML se compone de las instrucciones para el manejo de los datos, para insertar nuevos
Se puede ejecutar directamente en modo interactivo, pero también se suele emplear datos, modificar datos existentes, para eliminar datos y la más utilizada, para recuperar datos
embebido en programas escritos en lenguajes de programación convencionales. En estos de la base de datos. Veremos que una sola instrucción de recuperación de datos es tan
programas se mezclan las instrucciones del propio lenguaje (denominado anfitrión) con potente que permite recuperar datos de varias tablas a la vez, realizar cálculos sobre estos
llamadas a procedimientos de acceso a la base de datos que utilizan el SQL como lenguaje datos y obtener resúmenes.
de acceso. Como por ejemplo en Visual Basic, Java, C#, PHP .NET, etc.
El DML interactúa con el nivel externo de la base de datos por lo que sus instrucciones son
Las instrucciones SQL se clasifican según su propósito en tres grupos: muy parecidas, por no decir casi idénticas, de un sistema a otro, el usuario sólo indica lo que
El DDL (Data Description Language) Lenguaje de Descripción de Datos. quiere recuperar no cómo se tiene que recuperar, no influye el cómo están almacenados los
El DCL (Data Control Language) Lenguaje de Control de Datos. datos.

29
B
30A S E D E D A T O S – L A B O R A T O R I O 30
30 30

4.3 COMPONENTES DEL SQL


El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de
agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y
manipular las bases de datos.

Existen dos (2) tipos de comandos SQL:


- Los comandos del Lenguaje de Definición de Datos (DDL) que permiten crear y definir
nuevas bases de datos, campos e índices.
- Los comandos del Lenguaje de Manipulación de Datos (DML) que permiten modificar y
generar consultas para insertar, modificar o eliminar, así como, ordenar, filtrar y extraer datos
de la base de datos.

COMANDOS DEL DDL


Comando Descripción
CREATE Utilizado para crear nuevas tablas, campos e índices
DROP Empleado para eliminar tablas e índices
ALTER Utilizado para modificar las tablas y agregar campos o cambiar la definición de
los campos.

COMANDOS DEL DML


Comando Descripción
SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio
determinado
OBJETIVO. INSERT Utilizado para ingresar registros de datos en la base de datos en una única
Al terminar la unidad, los alumnos construirán una base de datos relacional utilizando el operación
gestor de base de datos SQL Server 2008 y los comandos del Lenguaje de Definición UPDATE Utilizado para modificar los valores de los campos y registros especificados
de Datos (DDL), asegurando la integridad de los datos mediante el empleo de restricciones DELETE Utilizado para eliminar registros de una tabla de una base de datos
tomando como caso un proceso de negocio real.
CLÁUSULAS
4.2 HISTORIA DEL LENGUAJE ESTRUCTURADO DE CONSULTAS (SQL) Comando Descripción
El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros
utilizado por los diferentes motores de bases de datos para realizar determinadas WHERE Utilizada para especificar las condiciones que deben reunir los registros que
operaciones sobre los datos o sobre la estructura de los mismos. se van a seleccionar
Pero como sucede con cualquier sistema de normalización, hay excepciones para casi todo. GROUP BY Utilizada para separar los registros seleccionados en grupos específicos
De hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de HAVING Utilizada para expresar la condición que debe satisfacer cada grupo
otro motor; por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servirá para resolver ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden
todos los problemas, aunque sí se puede asegurar que cualquier sentencia escrita en específico
ANSI será interpretable por cualquier motor de datos.
OPERADORES LÓGICOS
HISTORIA DEL LENGUAJE ESTRUCTURADO
La historia de SQL empieza en 1974 con la definición, por parte de Donald Chamberlin y de Comando Descripción
otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje AND Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si
para la especificación de las características de las bases de datos que adoptaban el modelo ambas son ciertas
relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se OR Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si
implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las alguna de las dos es cierta
experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisión del NOT Negación lógica. Devuelve el valor contrario de la expresión
lenguaje (SEQUEL/2) que, a partir de ese momento, cambió de nombre por motivos legales
OPERADORES DE COMPARACIÓN
y se convirtió en SQL.
Comando Descripción

30
B
31A S E D E D A T O S – L A B O R A T O R I O 31
31 31

< Menor que


> Mayor que
<> Distinto de
<= Menor ó igual que
>= Mayor ó igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores
LIKE Utilizado en la comparación de un modelo
In Utilizado para especificar registros de una base de datos 4.6 Arquitectura Cliente / Servidor
SQL Server usa la arquitectura
FUNCIONES PARA EL MANEJO DE FECHAS Y FUNCIÓN DE CONVERSIÓN Cliente / Servidor para separar la
carga de trabajo en tareas que se
Función Descripción ejecuten en computadoras tipo
GETDATE Devuelve la fecha del día Servidor y tareas que se ejecuten en
DAY Devuelve un entero que representa el día (día del mes) de la fecha computadoras tipo Cliente:
especificada  El Cliente es responsable
MONTH Devuelve un entero que representa el mes de la fecha especificada de la parte lógica y de
YEAR Devuelve un entero que representa la parte del año de la fecha especificada presentar la información al
DATEDIFF Devuelve el número de límites datepart de fecha y hora entre dos fechas usuario. Generalmente, el cliente ejecuta en una o más computadoras Cliente,
especificadas aunque también puede ejecutarse en una computadora que cumple las funciones
DATEPART Devuelve un entero que representa el parámetro datepart especificado del de Servidor con SQL Server.
parámetro date especificado  SQL Server administra bases de datos y distribuye los recursos disponibles del
CONVERT Convierte una expresión de un tipo de datos en otro servidor tales como memoria, operaciones de disco, etc. Entre las múltiples
peticiones.
Funciones de agregado: las funciones de agregado se usan dentro de una cláusula SELECT,  La arquitectura Cliente/Servidor permite desarrollar aplicaciones para
en grupos de registros para devolver un único valor que se aplica a un grupo de registros. realizarlas en una variedad de ambientes.
Comando Descripción  SQL Server 2008 trabaja con dos (2) tipos de bases de datos:
AVG Se emplea para calcular el promedio de los valores de un campo determinado
COUNT Se emplea para devolver la cantidad de registros de la selección OLTP (Online Transaction Processing)
SUM Se emplea para devolver la suma de todos los valores de un campo
determinado
MAX Se emplea para devolver el valor más alto de un campo o expresión
especificada
MIN Se emplea para devolver el valor más bajo de un campo o expresión
especificada

4.4 IMPORTANCIA DE LA BASE DE DATOS


Las bases de datos son importantes porque permiten almacenar grandes cantidades de
información en forma estructurada, consistente e íntegra y dan la posibilidad a un
desarrollador de utilizarlas mediante programas (aplicaciones); además, les proporciona a
éstos una herramienta bajo la cual puedan reducir considerablemente el tiempo del proceso
de búsqueda en profundidad de los datos almacenados.

4.5 Implementación de las base de datos con SQL SERVER


SQL Server es un sistema administrador para Bases de Datos relacionales basadas en la
arquitectura Cliente / Servidor (RDBMS) que usa Transact SQL para mandar peticiones entre
un cliente y el SQL Server.

31
B
32A S E D E D A T O S – L A B O R A T O R I O 32
32 32

4.7 Sistema administrador para bases de datos Relacionales (RDBMS)


El RDBMS es responsable de:
 Mantener las relaciones entre la información y la base de datos.
 Asegurarse de que la información sea almacenada correctamente, es decir, que las
reglas que definen las relaciones ente los datos no sean violadas.
 Recuperar toda la información en un punto conocido en caso de que el sistema falle.

4.8 TRANSACT SQL


Éste es una versión de SQL (Structured Query Languaje) usada como lenguaje de
Son bases de datos caracterizadas por mantener una gran cantidad de usuarios programación para SQL Server. SQL es un conjunto de comandos que permite especificar
conectados concurrentemente realizando ingreso y/o modificación de datos. Por ejemplo: la información que se desea restaurar o modificar. Con Transact SQL se puede tener acceso
entrada de pedidos en línea, inventario, contabilidad o facturación. a la información, realizar búsquedas, actualizar y administrar sistemas de bases de datos
relacionales.
OLAP (OnLine Analytical Processing) Son bases de datos que almacenan grandes
cantidades de datos que sirven para la toma de decisiones, como por ejemplo las aplicaciones Aunque se denomine SQL, debido a que el propósito general es recuperar datos, realmente
de análisis de ventas. SQL nos brinda muchas más opciones. Es una herramienta mucho más interesante.
Podemos utilizar más funciones de las que el DBMS (Database Management System -
Sistema de Gestión de base de datos) nos proporciona.

4.9 SQL SERVER


Esta última versión del SQL Server Database Engine (Motor de base de datos de SQL
Server) incluye nuevas características y mejoras que aumentan la eficacia y la
productividad de los arquitectos, los programadores y los

32
B
33A S E D E D A T O S – L A B O R A T O R I O 33
33 33

Archivos principales
Estos archivos contienen la información de inicio para la base de datos. Este archivo se
utiliza también para almacenar datos. Cada base de datos tiene un único archivo principal.
Tiene extensión .MDF.

Archivos secundarios
Estos archivos contienen todos los datos que no caben en el archivo de datos principal. No
es necesario que las bases de datos tengan archivos de datos secundarios si el archivo
principal es lo suficientemente grande como para contener todos los datos. Algunas bases
de datos pueden ser muy grandes y necesitar varios archivos de datos secundarios o utilizar
archivos secundarios en unidades de disco distintas, de modo que los datos estén
distribuidos en varios discos. Tiene extensión .NDF.

Registro de transacciones
5. CREACIÓN DE BASES DE DATOS Estos archivos contienen la información de registro que se utiliza para recuperar la base de
datos. Debe haber al menos un archivo de registro de transacciones para cada base de
5.1 Definición de base de datos datos, aunque puede haber más de uno. El tamaño mínimo para un archivo de registro es
Una base de datos es un contenedor de objetos relacionados entre sí, de manera lógica y 512 kilobytes (KB). Tiene extensión .LDF.
coherente. Estos objetos incluyen los orígenes de datos, dimensiones compartidas y
funciones de base de datos.

5.2 Aprendiendo a crear una base de datos


Para crear una base de datos, determine el nombre de la base de datos, el propietario (el
usuario que crea la base de datos), su tamaño, y los archivos y grupos de archivos utilizados
para almacenarla.

Antes de crear una base de datos, considere lo siguiente:


a. De forma predeterminada, tienen permiso para crear una base de datos las funciones
fijas del servidor sysadmin y dbcreator, aunque se puede otorgar permisos a otros
usuarios.
b. El usuario que crea la base de datos se convierte en su propietario.
c. En un servidor, pueden crearse hasta 32.767 bases de datos.

Se utilizan tres (03) tipos de archivos para almacenar una base de datos:

33
B
34A S E D E D A T O S – L A B O R A T O R I O 34
34 34

Cuando se crea una base de datos, todos los archivos que la componen se llenan con ceros 5.4 ¿Cómo crear una base de datos usando TRANSACT/SQL?
que suplantan los datos de los archivos ya eliminados que hubieran quedado en el disco.
Aunque esto provoque que el proceso de creación de los archivos sea más largo, es mejor, CREATE DATABASE bd_ejemplo
pues así se evita que el sistema operativo tenga que llenar los archivos con ceros cuando Go
se escriban por primera vez datos en los archivos durante las operaciones habituales con
la base de datos. De esta manera, se mejora el rendimiento de las operaciones cotidianas. NOTA: Puede usar el comando sp_ helpDB para presentar información acerca de
la base de datos especificada o de todas las bases de datos.
Es recomendable especificar el tamaño máximo de crecimiento del archivo. De ese modo
se evita que se agote el espacio disponible en el disco al agregar datos. Para especificar Sintaxis: SP_HELPDB [Nombre de la base de datos]
un tamaño máximo para el archivo, utilice el parámetro MAXSIZE de la instrucción CREATE
DATABASE o bien la opción Limitar crecimiento de archivo a (MB) cuando utilice el cuadro Ejemplo:
de diálogo Propiedades del Administrador corporativo de SQL Server para crear la base de
datos. SP_HELPDB bd_ejemplo

Después de crear una base de datos, se recomienda crear una copia de seguridad de la
base de datos MASTER.

5.3 Creación de una base de datos usando la herramienta de SQL SERVER


Para crear una base de datos, se deben seguir los siguientes pasos:
a. Expanda un grupo de servidores y, a continuación, un servidor.
b. Con el botón secundario del mouse (ratón) en bases de datos y, a continuación,
en nueva base de datos.
Escriba un nombre para la nueva base de datos.

5.5 ESPECIFICANDO LAS PROPIEDADES PARA CADA ARCHIVO QUE CONFORMA


UNA BASE DE DATOS:
Para el archivo primario, los archivos secundarios y los archivos de registro de
transacciones se pueden especificar las siguientes propiedades:
NAME: Nombre lógico del
archivo.
FILENAME: Nombre físicio, en el cual se debe especificar la ruta (ubicación) donde será
creado el archivo.
SIZE: Tamaño inicial, por defecto está dado en megabytes.
MAXSIZE: Tamaño
máximo.
FILEGROWTH: Crecimiento del
archivo.

Crear una base de datos individual


En este ejemplo se crea una base de datos llamada DEPARTAMENTOS en la carpeta D:\Data\ y
se especifica un único archivo. El archivo especificado se convierte en el archivo principal y se crea
automáticamente un archivo de registro de transacciones de 1 megabytes. Como no se especifican

34
B
35A S E D E D A T O S – L A B O R A T O R I O 35
35 35

la unidad en el parámetro SIZE del archivo principal, se asigna por defecto en megabytes. Ya que (NAME = Departamentos3_Log,
no existe <filespec> para el archivo de registro de transacciones, éste no tiene el parámetro FILENAME = 'D:\ Data \Departamentos3_Log.ldf',
MAXSIZE y puede crecer hasta llenar todo el espacio disponible en el disco. SIZE = 5, MAXSIZE = 40, FILEGROWTH = 10%
CREATE DATABASE Departamentos ) GO
ON
( Crear una base de datos especificando el archivo de datos, un archivo secundario y un
NAME = Departamentos_Data, archivo de transacciones:
FILENAME = 'D:\Data\Departamentos_Data.mdf’, Esta actividad crea una base de datos llamada Departamentos3 en la carpeta D:\DATA\, su archivo
SIZE = 4, MAXSIZE = 10, FILEGROWTH = 1 principal contará con un tamaño inicial de
) GO 15MB, un tamaño máximo de 200 megabytes y un crecimiento de 20%. Su archivo secundario
contará con un tamaño inicial de 10 megabytes, un
Crear una base de datos sin especificar tamaño (size), ni máximo tamaño (maxsize), ni tamaño máximo de 80 megabytes y un crecimiento de 2 megabytes.
crecimiento (filegrowth) Su archivo de registro contará con un tamaño inicial de 10 megabytes, un tamaño máximo de 70
Esta actividad crea una base de datos llamada Departamentos2. El archivo departamentos2_Data megabytes y un crecimiento de 5 megabytes.
se convierte en el archivo principal, con un tamaño igual al tamaño del archivo principal de la base CREATE DATABASE Departamentos4
de datos MODEL. El archivo de registro de transacciones se crea automáticamente y es un 25 por ON
ciento del tamaño del archivo principal, o 512 kilobytes, el que sea mayor. Como no se ha (NAME = Departamentos4_Data,
especificado MAXSIZE, los archivos pueden crecer hasta llenar todo el espacio disponible en el FILENAME = 'D:\ Data \Departamentos4_Data.mdf',
disco. SIZE = 15, MAXSIZE = 200, FILEGROWTH = 20%
),
CREATE DATABASE Departamentos2 (NAME = Departamentos4_Sec,
ON FILENAME = 'D:\ Data \Departamentos4_Sec.ndf',
(NAME = Departamentos2_Data, SIZE = 10, MAXSIZE = 80, FILEGROWTH = 2
FILENAME = 'D:\ Data \Departamentos2_Data.mdf' )
) LOG ON
GO (NAME = Departamentos4_Log,
FILENAME = 'D:\ Data \Departamentos4_Log.ldf',
SIZE = 10, MAXSIZE = 70, FILEGROWTH = 5
Crear una base de datos especificando dos archivos, archivo de datos y archivo de )
transacciones GO
Esta actividad crea una base de datos llamada Departamentos3 en la carpeta D:\Data\, su archivo
principal contará con un tamaño inicial de 40 megabytes, un tamaño máximo de 100 megabytes y
un crecimiento de 1 megabytes. Su archivo de registro contará con un tamaño inicial de 5
megabytes, un tamaño máximo de 40 megabytes y un crecimiento de 10% 5.6 TIPOS DE DATOS
CREATE DATABASE Departamentos2 Los tipos de datos definen el valor de datos que se permite en cada columna. SQL Server
ON proporciona varios tipos de datos diferentes. Ciertos tipos de datos comunes tienen varios
(NAME = Departamentos2_Data, tipos de datos de SQL Server asociados. Se debe elegir los tipos de datos adecuados que permitan
FILENAME = 'D:\ Data \Departamentos2_Data.mdf' optimizar el rendimiento y conservar el espacio en el disco.
)
GO 5.7 Categorías de tipos de datos del sistema
CREATE DATABASE Departamentos3 La siguiente tabla asocia los tipos de datos comunes con los tipos de datos del sistema
ON proporcionados por SQL Server. La tabla incluye los sinónimos de los tipos de datos por
(NAME = Departamentos3_Data, compatibilidad con ANSI1.
FILENAME = 'D:\ Data \Departamentos3_Data.mdf',
SIZE = 40, MAXSIZE = 100, FILEGROWTH = 1 Tipos de Tipos de datos del Sinómino ANSI Número de
) datos sistema de SQL Server Bytes
LOG ON comunes
B
36A S E D E D A T O S – L A B O R A T O R I O 36
36 36

Int bigint smallint, tinyint Integer 4 8 ,1 Archivo de datos: un tamaño inicial de 20 megabytes, máximo de 120
Entero - megabytes y un factor de crecimiento de 5%,
- Archivo secundario: un tamaño inicial de 10 megabytes, máximo de 50
Numéric decimal[(p[,s])] D 2-17 megabytes y un factor de crecimiento de 2 megabytes,
o numeric[(p[,s])] e Archivo de transacciones: un tamaño inicial de 4 megabytes, máximo de 75
Exa c megabytes y un factor de crecimiento de 2%.ACTIVIDADES PROPUESTAS
cto float[(n)] double- 8 Caso: VENTAS
Numéric precisión, Se ha diseñado una base de datos para el control de las ventas realizadas en una
o real float[(n)] para 4 empresa, como se detalla en el siguiente diagrama:
Aproximad money, n=8-15- 8,4
o
Moneda smallmoney float[(n)] para n=1-7

datetime, - 8
Fecha y hora smalldatetime 4

char[(n)] character 0-8000


varchar[(n)] [(n)]
char
Carácter VARYING[(n)] 0-2 GB
text character
nchar[(n)] VARYING[(n)]
- 0-8000 (4000
Caractere nvarchar[(n)] caracteres)
s ntext 0-2 GB
Unico binary [(n)] b 0-8000
te
Binario varbinary [(n)] i
Imagen Image n - 0 a 2 GB
a
r
1 y
American Nacional Standards Institute
VARYING[(
ACTIVIDADES A DESARROLLAR EN CLASE n)]

Usando TRANSACT/SQL, cree las siguientes bases de datos:

1. VENTAS2018_1, en la carpeta D:\DATABASE\, considerando que el archivo principal


tiene tamaño de 20 megabytes, un tamaño máximo de 80 megabytes y un incremento
de 10 megabytes.

2. VENTAS2018_2, en la carpeta D:\MSSQL\DATA\, considerando que el archivo principal


tiene tamaño de 20 megabytes, un tamaño máximo de 80 megabytes y un incremento
de 10 megabytes. Por otro lado, considere que el archivo de transacciones tiene
tamaño de 3 megabytes, un tamaño máximo de 13 megabytes y un incremento del
15%.

3. VENTAS2018_3, en la carpeta D:\CIBERMARANATA\DATOS\, con la siguiente


configuración:
1. Cree la base de datos Ventas indicando propiedades para el archivo primario, un archivo
secundario y un archivo de registro.
B
37A S E D E D A T O S – L A B O R A T O R I O 37
37 37

2. Identificar los tipos de datos que le corresponde a los campos de las tablas Los atributos de los datos de una tabla (tamaño, color, cantidad, fecha, etc.) toman la forma de
EMPLEADO, BOLETA y PRODUCTO. columnas con nombre en la tabla.
4. Cree la base de datos para su proyecto de investigación, el cual tendrá definida la
ruta para la creación de los archivos y la especificación de los tres (3) archivos (archivo Las columnas de la tabla recién creada se definen en el cuerpo de las sentencias CREATE TABLE.
de registro, archivo secundario y archivo de transacciones). La definición de las columnas aparece en una lista separada por comas e incluida entre paréntesis.
5. ACTIVIDADES ADICIONALES La definición de la columna determina el orden de izquierda a derecha de la columna en la tabla.
a. Nombre de columna:
Pueden ser iguales a los nombres de las columnas de otras tablas, pero no pueden
Los ejemplos mostrados a continuación han sido tomados de la Ayuda en Línea del tener el nombre de una columna existente en la misma tabla.

Microsft SQL 2008. b. Tipo de datos


Identifica la clase de datos que la columna almacenará.

A. Cree una base de datos sin especificar archivos c. Datos requeridos:


Si la columna contiene datos requeridos se debe especificar si la columna no acepta valores
En este ejemplo se crea la base de datos mytest, y el archivo principal y de registro de nulos. La cláusula NOT NULL impide que aparezcan valores NULL en la columna. Por
transacciones correspondientes. Debido a que la instrucción no tiene elementos defecto se admiten valores NULL. Las tablas suelen estar relacionadas con otras tablas.
<filespec>, el archivo de la base de datos principal tiene el tamaño del archivo
principal de la base de datos model. El registro de transacciones se establece en el 6.2 Clave Primaria y Clave Foránea
mayor de estos valores: 512 KB o el 25% del tamaño del archivo de datos principal. El principio fundamental del modelo relacional, es que cada fila de una tabla es en cierta medida
Como no se ha especificado MAXSIZE, los archivos pueden crecer hasta llenar todo el exclusiva y puede distinguirse de alguna forma de cualquier otra fila de la tabla. La combinación
espacio disponible en el disco. de todas las columnas de una tabla puede utilizarse como un identificador exclusivo, pero en la
práctica el identificador suele ser mucho como la combinación de unas pocas columnas y, a
USE master; GO menudo, es simplemente una columna, a la cual se le denomina Primary Key o Clave Primaria.
IF DB_ID (N'mytest') IS NOT NULL DROP DATABASE mytest;
GO Una Clave Foránea o Foreign Key es una o varias columnas de una tabla cuyos valores deben
ser iguales a los de una restricción Primary Key en otra tabla. SQL Server impone de manera
CREATE DATABASE mytest; GO automática la integridad referencial mediante la utilización de Foreign Key y a esta
-- Verify the database files and sizes característica se le denomina integridad referencial declarativa.

SELECT name, size, size*1.0/128 AS [Size in MBs] FROM sys.master_files 6.3 Definición de relaciones
WHERE name = N'mytest'; GO El término "relaciones" usualmente se refiere a las relaciones entre claves foráneas y primarias, y
entre tablas. Estas relaciones deben ser definidas porque determinan qué columnas son o no
6. APRENDIENDO A CREAR TABLAS claves primarias o claves foráneas. A continuación, veamos los tipos de relación que pueden existir
6.1 DEFINICIÓN DE UNA TABLA entre las tablas:
Una tabla es una colección de datos sobre una entidad (Persona, Lugar, Cosa) específica, que
tiene un número discreto de atributos designados (por ejemplo cantidad o tipo). Las tablas son los 6.3.1 Relación Uno-a-Varios:
objetos principales de SQL Server y del modelo relacional en general. Las tablas son fáciles de La relación uno a varios (uno a muchos), es el tipo de relación más común. En este tipo de relación,
entender, ya que son prácticamente iguales a las listas que utiliza de manera cotidiana. En SQL una fila de la tabla A puede tener varias columnas coincidentes en la tabla B, pero una fila de la
Server una tabla suele denominarse tabla de base, para hacer énfasis sobre dónde se almacenan tabla B sólo puede tener una fila coincidente en la tabla A. Por ejemplo, las tablas Editor y Libro
los datos. La utilización de << Tabla de base >>, también distingue la tabla de una vista (View), tienen una relación uno a varios: cada editor produce muchos títulos, pero cada Libro procede de
(una tabla virtual que es una consulta interna de una tabla base.) un único editor. Una relación de uno a varios sólo se crea si una de las columnas relacionadas es
una clave principal o tiene una restricción única (una restricción única impide que el campo tenga
Conforme se utiliza la base de datos con frecuencia se encontrará conveniente definir tablas valores repetidos). El lado de la clave principal de una relación de uno a varios se indica con un
propias para almacenar datos personales o datos extraídos de otras tablas. símbolo de llave, mientras que el lado de la clave externa de una relación se indica con un símbolo
de infinito.
B
38A S E D E D A T O S – L A B O R A T O R I O 38
38 38

En el ejemplo tenemos: de la tabla Autor_Libro es la combinación de la columna cod_aut (la clave principal de la tabla Autor)
y la columna cod_lib (la clave principal de la tabla Libro).
Un estado lo es de muchos usuarios pero un usuario tiene únicamente un estado. Otro ejemplo:
Un contrato puede registrar muchos departamentos y un departamento puede estar
registrado en muchos contratos. Para poder implementar esta relación compleja debemos
adicionar una tabla de detalle (DetalleContrato).

A continuación, se muestra la relación uno a muchos en una relación recursiva.


Un contrato puede ser la extensión de otro contrato y un contrato puede tener muchas
extensiones.

6.3.3 Relaciones de uno a uno


En una relación de uno a uno, una fila de la tabla A no puede tener más de una fila coincidente en
la tabla B y viceversa. Una relación de uno a uno se crea si las dos columnas relacionadas son
claves principales o tienen restricciones únicas.

Este tipo de relación no es común porque la mayor parte de la información relacionada de esta
manera estaría en una tabla. Se puede utilizar una relación de uno a uno para:

Dividir una tabla con muchas columnas


Aislar parte de una tabla por razones de seguridad
Almacenar datos que no se deseen conservar y se puedan eliminar fácilmente con tan sólo suprimir
la tabla
Almacenar información aplicable únicamente a un subconjunto de la tabla principal.
Implementar entidades del tipo Generalización con sus especializaciones.

6.3.2 Relaciones de varios a varios El lado de la clave principal de una relación de uno a uno se indica con un símbolo de llave. El lado
de la clave externa también se indica con un símbolo de llave.
En las relaciones de varios a varios (muchos a muchos), una fila de la tabla A puede tener varias
filas coincidentes en la tabla B, y viceversa. Para crear una relación de este tipo, defina una tercera
El ejemplo, a continuación, muestra a la tabla USUARIO (generalización) relacionándose con
tabla, denominada tabla de unión, cuya clave principal está formada por las claves externas de las
la tabla PROPIETARIO (especialización 1) y la tabla INQUILINO (especialización 2), de uno a
tablas A y B. Por ejemplo, la tabla Autor y la tabla Libro tienen una relación de varios a varios definida
uno.
por una relación de uno a varios entre cada de estas tablas y la tabla Autor_Libro. La clave principal
B
39A S E D E D A T O S – L A B O R A T O R I O 39
39 39

Ahora que ya conoce el concepto de tablas y el concepto de relaciones, empezará a implementar


algunas tablas para distintos casos.

ACTIVIDADES A DESARROLLAR EN CLASE


Se desea implementar una base de datos para el control de contratos de departamentos entre
diferentes edificios. Para ello se cuenta con el siguiente diagrama:

Usando TRANSACT/SQL, cree las siguientes bases de datos:


1. Cree la base de datos Departamentos
2. Active la base de datos Departamentos
3. Cree las tablas mostradas
4. Agregue las llaves Primarias (ADD PRIMARY KEY)
5. Agregue las llaves Foráneas y Relaciones (ADD FOREIGN KEY – REFERENCES)
B
40A S E D E D A T O S – L A B O R A T O R I O 40
40 40

SOLUCIÓN: DESC_EST varchar(20) NOT NULL


)
CREATE DATABASE DEPARTAMENTOS
USE DEPARTAMENTOS CREATE TABLE FAMILIARES (
COD_FAMI char(6) NOT NULL,
CREATE TABLE CONTRATO ( COD_USUA char(6) NOT NULL,
COD_CONT char(6) NOT NULL, NOM_FAMI varchar(25) NOT NULL,
PROP_COD_USUA char(6) NULL, APEPATER_FAMI varchar(25) NOT NULL,
INQ_COD_USUA char(6) NULL, APEMATER_FAMI varchar(25) NOT NULL,
FEC_FIRMA datetime NOT NULL, GRADO_PARENTES_FAMI varchar(50) NOT NULL
REFERENCIA varchar(100) NULL, )
COD_EST char(6) NULL,
COD_CONT_ORIG char(6) NULL
) CREATE TABLE INQUILINO (
COD_USUA char(6) NOT NULL,
CREATE TABLE DEPARTAMENTOS ( NOM_AVAL_INQ varchar(30) NOT NULL,
COD_EDIF char(6) NOT NULL, APELL_AVAL char(30) NOT NULL,
COD_DEP char(6) NOT NULL, HABER_BAS_INQ int NOT NULL,
AREA_TOTAL_DEP decimal NOT NULL, EST_CIVIL_INQ char(1) NULL,
AREA_CONSTRUIDA_DEP decimal NULL, LUG_TRAB_INQ varchar(50) NULL
NUM_AMB_DEP int NULL, )
PISO_DEP int NULL,
PRECIO_ALQXMES_DEP money NULL, CREATE TABLE PROPIETARIO (
COD_EST char(6) NULL COD_USUA char(6) NOT NULL,
) TIPO_PROP varchar(30) NOT NULL,
TELEFONO_PROP char(10)
CREATE TABLE DETALLECONTRATO ( )
COD_EDIF char(6) NOT NULL,
COD_DEP varchar(6) NOT NULL, CREATE TABLE USUARIO (
COD_CONT char(6) NOT NULL, COD_USUA char(6) NOT NULL,
FEC_INI_ALQ datetime NOT NULL, NOM_USUA varchar(25) NOT NULL,
FEC_FIN_ALQ datetime NOT NULL APEPATER_USUA varchar(25) NOT NULL,
) APEMATER_USUA varchar(25) NOT NULL,
FEC_NAC_USUA datetime NULL,
CREATE TABLE EDIFICIOS ( FEC_REG_USUA datetime NULL,
COD_EDIF char(6) NOT NULL, TIPO_DOC_USUA varchar(20) NOT NULL,
NOM_EDIF varchar(60) NOT NULL, NUM_DOC_USUA char(8) NOT NULL,
DIRECC_EDIF varchar(60) NOT NULL, COD_EST char(6) NOT NULL
CODPOSTAL_EDIF varchar(4) NOT NULL, )
AREA_TOTAL_EDIF decimal NOT NULL,
AREA_CONSTRUIDA_EDIF decimal NULL, --Agregando las llaves primarias a todas las tablas--
REFERENCIA_EDIF varchar(100) NULL,
COD_EST char(6) NULL --NONCLUSTERED: Crea un índice en el que el orden lógico de los valores de
) clave determina el orden físico de las filas correspondientes de la tabla.

CREATE TABLE ESTADO (


COD_EST char(6) NOT NULL, ALTER TABLE CONTRATO
B
41A S E D E D A T O S – L A B O R A T O R I O 41
41 41

ADD PRIMARY KEY NONCLUSTERED (COD_CONT) ALTER TABLE DETALLECONTRATO


ADD FOREIGN KEY (COD_CONT) REFERENCES CONTRATO
ALTER TABLE DEPARTAMENTOS
ADD PRIMARY KEY NONCLUSTERED (COD_EDIF, COD_DEP) ALTER TABLE DETALLECONTRATO
ADD FOREIGN KEY (COD_EDIF, COD_DEP) REFERENCES DEPARTAMENTOS
ALTER TABLE DETALLECONTRATO
ADD PRIMARY KEY NONCLUSTERED (COD_EDIF, COD_DEP, COD_CONT) ALTER TABLE EDIFICIOS
ADD FOREIGN KEY (COD_EST) REFERENCES ESTADO
ALTER TABLE EDIFICIOS
ADD PRIMARY KEY NONCLUSTERED (COD_EDIF) ALTER TABLE FAMILIARES
ADD FOREIGN KEY (COD_USUA) REFERENCES INQUILINO
ALTER TABLE ESTADO
ADD PRIMARY KEY NONCLUSTERED (COD_EST)

ALTER TABLE FAMILIARES


ADD PRIMARY KEY NONCLUSTERED (COD_FAMI, COD_USUA)

ALTER TABLE INQUILINO


ADD PRIMARY KEY NONCLUSTERED (COD_USUA)

ALTER TABLE PROPIETARIO


ADD PRIMARY KEY NONCLUSTERED (COD_USUA)

ALTER TABLE USUARIO


ADD PRIMARY KEY NONCLUSTERED (COD_USUA)

--Agregando llaves Foráneas y relacionando tablas

-- SE CREA LA RELACIÓN RECURSIVA.


ALTER TABLE CONTRATO
ADD FOREIGN KEY (INQ_COD_USUA) REFERENCES INQUILINO,
FOREIGN KEY (COD_CONT_ORIG) REFERENCES CONTRATO

-- SE CREAN LAS RELACIONES DEL RESTO DE TABLAS.


ALTER TABLE CONTRATO
ADD FOREIGN KEY (PROP_COD_USUA) REFERENCES PROPIETARIO

ALTER TABLE CONTRATO


ADD FOREIGN KEY (COD_EST) REFERENCES ESTADO

ALTER TABLE DEPARTAMENTOS


ADD FOREIGN KEY (COD_EDIF) REFERENCES EDIFICIOS

ALTER TABLE DEPARTAMENTOS


ADD FOREIGN KEY (COD_EST) REFERENCES ESTADO

También podría gustarte