Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
• 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.
• 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)
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.
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.
7
ADMINISTRACION DE BASE DE DATOS
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.
En caso de que utilices otra versión, es posible que no dispongas de algunos de éstos botones.
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.
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...
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.
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:
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:
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.
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
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.
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.
Aparecerá una llave a la izquierda del nombre, símbolo de las claves principales:
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.
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:
O simplemente hacemos clic en la zona a la izquierda del nombre y pulsamos la tecla Supr.
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
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.
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
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.
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
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.
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,
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
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;
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:
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.
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.
Cuando ejecutamos consultas desde el editor, nos tenemos que fijar sobre qué base de datos se
va a actuar.
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
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.
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.
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:
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.
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:
Abrir vista para ejecutarla y ver los datos como si fuese una tabla real.
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
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
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
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
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.
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.
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
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.
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).
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:
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