Modulo Completo Diseño y Administracion
Modulo Completo Diseño y Administracion
Modulo Completo Diseño y Administracion
Sistemas
materia
Base de Datos
Base de Datos
Programa de la materia
Objetivos Generales de la Asignatura
• Profundizar los conceptos esenciales sobre los sistemas de bases de datos.
• Optimizar y aplicar el modelo relacional en las bases de datos.
• Evaluar y normalizar un conjunto de datos complejos.
• Aprender a desarrollar consultas de base de datos en lenguaje adecuado.
• Aplicar los conocimientos abordados en la instalación, configuración, administración, manejo y resolución de
problemas de motores de base de datos
CONTENIDOS:
Introducción. Sistemas de Información. Sistemas de Información computarizados. Componentes estructurales
de los sistemas de información computarizados. Requerimientos de los sistemas de información computariza-
dos. Base de Datos. Evolución de los sistemas de Bases de Datos. Primeros Sistemas. Principales características.
Componentes de un sistema. Tipos de base de datos. Arquitectura de la base de datos. Nivel de abstracción.
Manejador de archivos. Metadatos. Diccionario de datos. Almacenamiento físico. Unidades de almacenamiento.
CONTENIDOS:
Sistema gestor de base de datos (SGBD). Características deseables. Funciones y Lenguajes. Estructuras multica-
pas. Funcionamiento. Sistema gestor de bases de datos comerciales. Usuarios. Estándar ANSI/SPARC. Proceso de
creación y manipulación de una base de datos propuesta por ANSI. Estructuras operacionales. Características de
una estructura cliente servidor. Situación del Mercado de los SGBD y Estandarización. Diseño de base de datos.
Modelo de datos.
3
Unidad Nº 3: Modelo Entidad Relación
• Desarrollar los conceptos de objetos del modelo entidad relación, así como del modelo entidad relación extendido.
• Aplicar los criterios del diseño de un modelo de Entidad-Relación.
• Implementar los criterios para el modelado Relacional.
• Aplicar el pasaje de modelo entidad/relación a modelo relacional.
• Implementar los conceptos de normalización.
• Aplicar las distintas formas normales.
CONTENIDOS:
Objetos del modelo. Entidad. Relaciones. Atributos. Dominio. Modelo entidad relación extendido. Diseño de un
modelo de Entidad-Relación. Modelo Relacional. Objetivos. Relación o tabla. Claves. Nulos. Restricciones. Las
doce reglas de Codd. Pasaje de modelo entidad/relación a modelo relacional. Normalización. Formas Normales.
Primera forma normal. Segunda forma normal. Tercera forma normal. Forma Normal Boyce-Codd. Cuarta forma
normal. Quinta forma normal.
CONTENIDOS:
Historia del SQL. Funcionamiento. Proceso de las instrucciones. Elementos del Lenguaje SQL. DDL. Modificación.
Eliminación. Restricciones. DML. Instrucciones de control de transacciones. Consultas de datos con SQL-DQL. Cal-
culo. Condiciones. Ejemplos de lo aprendido. Modos de autenticar las cuentas de los usuarios. Usuarios de Base
de Datos.
Analista de Sistemas
Unidad 1
Tema Nº 1
Introducción
Cuando nos preguntamos sobre el porqué del uso de computadoras en las empresas, la respuesta parece bas-
tante obvia, para registrar los eventos que se van sucediendo, instanciarlos en el tiempo. Sin embargo existe un
motivo aún más peso y no tan obvio, y es que la información puede usarse para respaldar la toma de decisiones.
Sin importar el tamaño de una empresa u organización, la conducción exitosa de la misma estará altamente in-
fluenciada por la precisión de sus registros y la adopción de decisiones acertadas.
Las comunicaciones y las bases de datos permiten el acceso a recursos de información que están más allá de la
inmediatez física, o las limitaciones geográficas. Las computadoras permiten la utilización de masas de informa-
ción las cuales, no eran concebibles hasta hace algunos años. Pero no sólo basta la disponibilidad de la cantidad
de información, se trata de contar con información de calidad. Los sistemas de información basados en compu-
tadoras no sólo son capaces de suministrarnos información de calidad y oportuna, sino que también pueden
respaldar la toma de decisiones.
6
Base de Datos
Gráfico 1 – Categorías de los sistemas de información organizacionales.
7
Analista de Sistemas
1. Sistema de procesamiento de transacciones: (Registra las operaciones diarias). Estos sistemas permiten a la
organización mejorar y mantener un seguimiento o registro de sus operaciones o transacciones rutinarias, cuyos
datos son almacenadas en una base de datos. Es por esta razón que también se les llama sistemas de procesa-
miento de datos. Los datos de las operaciones son integrados a la base de datos, en la cual se registran las tran-
sacciones de la organización. La base de datos así conformada puede servir de apoyo a los otros tipos de sistemas
de información. Un sistema común de procesamiento de transacciones en todas las empresas es el relacionado
con el área de contabilidad. Entre las actividades que automatiza se encuentra el procesamiento de órdenes de
venta, control de cuentas por cobrar, inventario, cuentas por pagar y nómina.
Existen tres categorías comunes de reportes en toda organización. Los reportes periódicos, que se producen a
intervalos de tiempo regulares, por ejemplo, los reportes de ventas mensuales. Los reportes de excepción, que
indican acontecimientos inusuales, por ejemplo, un reporte que muestre que la venta de cierto artículo se en-
cuentre muy por encima de los pronósticos. Los reportes a solicitud, que son realizados por petición expresa, por
ejemplo, cantidad de empleados, de sexo femenino, en un rango determinado de edad; es un reporte que no se
requiere con periodicidad, sino en una situación ocasional, como la evaluación para la contratación de un seguro
médico para los empleados.
3. Sistema de apoyo ejecutivo o soporte de decisiones: (Apoyo al análisis de situaciones imprevistas). Se dife-
rencia de los anteriores, en que es una herramienta flexible de análisis que produce reportes sin formato fijo. Es-
tos sistemas permiten a los gerentes obtener respuestas a problemas inesperados y relativamente excepcionales.
Existen algunas decisiones que no son de naturaleza recurrente y que deben enfrentarse muy ocasionalmente o
incluso una sola vez. Una decisión se considera no estructurada cuando no se cuenta con procedimientos claros,
preestablecidos para adoptarla y no es posible identificar anticipadamente todos los factores a considerar en la
decisión. Un factor clave en el uso de estos sistemas es la flexibilidad de definir la información necesaria. Incluso
ocurre que conforme se adquiere información, el gerente requiera más información, dando un nuevo giro a sus
requerimientos iniciales. Como se percibe, en estos casos, no es posible diseñar previamente ni el formato, ni el
contenido de los reportes del sistema.
Este tipo de sistema debe brindar flexibilidad para que el usuario (gerente o directivo) pueda solicitar informes
definiendo el contenido y la manera de presentar la información. El criterio de los directivos juega un papel im-
portante en la toma de decisiones en problemas no estructurados. Los sistemas que dan soporte, se limitan a
respaldar, pero no reemplazan el criterio del directivo.
Los sistemas de información computarizados, además de llevar un seguimiento de las transacciones y operacio-
nes diarias, propias del negocio, sirven de apoyo al flujo de información interno de la organización. La finalidad
8
Base de Datos
de los sistemas de información organizacionales es, procesar entradas, mantener archivos de datos relacionados
con la organización y producir información, reportes y otras salidas para los usuarios que las necesitan. Puesto
que los sistemas de información dan soporte a los demás sistemas de la organización, los analistas de sistemas
tienen que estudiar primero el sistema organizacional como un todo y así entonces, poder precisar cuáles son y
cómo funcionan los sistemas de información de la organización.
1. Entradas
2. Modelos (procesos)
3. Salidas
4. Tecnología (hardware)
5. Base de datos (almacenamiento)
6. Controles
Entradas
La entrada abarca todos los datos (texto, número, imagen, video, etc.) que entran al sistema de información así
como los métodos y los medios por los cuales se capturan o introducen.
La entrada también esta compuesta por transacciones, solicitudes, consultas, instrucciones, mensajes.
Modelos o Procesos
Este componente consta de los modelos lógicos-matemáticos que manipulan de diversas formas, las entradas y
los datos ya almacenados, para producir los resultados deseados o las salidas.
Ejemplo:
Proceso calculo de ganancia:
Ganancia = ingresos - gastos
Salida
La salida es el resultado del proceso este se representa de diferentes maneras.
Resultado = a 1 dato.
Resultado = a un conjunto de datos: como pueden ser los reportes, informes, gráficos estadísticos, cuadros de
resultados, etc.
El resultado o saluda se basa principalmente en su calidad. Cuando hablamos de calidad nos referimos específi-
camente a tres requisitos que debe cumplir dicha salida: exactitud, oportunidad y relevancia.
9
Analista de Sistemas
Tecnología o hardware
Por definición decimos: corresponde a todas las partes tangibles de una computadora: sus componentes eléc-
tricos, electrónicos, electromecánicos y mecánicos; sus cables, gabinetes o cajas, periféricos de todo tipo y cual-
quier otro elemento físico involucrado.
El hardware es el encargado en conjunto con el software de capturar los datos, procesarlos, almacenarlos, acce-
sarlos, producir salidas y controles de los mismos.
Controles y seguridad
1. De sistema
2. Del procesamiento
3. De factibilidad.
Requerimientos de sistemas
1. Confiabilidad: seguridad de que el sistema muestre el resultado esperado.
2. Disponibilidad: cuanto tiempo esta disponible (online).
3. Flexibilidad: que se pueda adaptar a los cambios.
4. Programa de instalación: intervalo de tiempo desde que se pide el sistema y se implementa.
5. Expectativa de vida y potencial crecimiento: el sistema debe satisfacer las necesidades del usuario durante
un tiempo razonable y no tener limitaciones de crecimiento.
10
Base de Datos
Requerimientos de factibilidad
1. Factibilidad técnica.
2. Factibilidad legal.
3. Factibilidad operacional (que se pueda adiestrar a los usuarios).
4. Factibilidad de programa. (tiempo en que tiene que estar operativo)
Resumen tema 1
Sistema de información: es un conjunto de elementos orientados al tratamiento y administración de datos e in-
formación, organizados y listos para su posterior uso, generados para cubrir una necesidad u objetivo.
Modelos lógicos-
matemáticos
Contiene los datos que manipulan
necesarios para las entradas y
atender las los datos ya
necesidades de almacenados,
todos los usuarios. para producir los
resultados.
Es el encargado en
conjunto con el software de
Capturar los datos, procesarlos, Resultado del proceso,
almacenarlos, accesarlos, producir se basa principalmente
salidas y controles de los mismos. en su calidad. Exactitud,
relevancia y oportunidad.
11
Analista de Sistemas
Expectativa de vida
y potencial crecimiento
Autoevaluación
1. Defina sistemas de información SI.
2. En un pago con tarjeta de crédito que componentes de un SI intervienen.
3. La agenda de su teléfono celular con que componente de SI se pude identificar análogamente.
4. ¿Por qué cree que es de suma importancia la calidad de una salida o resultado de un proceso?
5. Si estoy pasando una carpeta con música en mi mp3 y me aparece un cartel que no tengo espacio. ¿Qué reque-
rimiento esta no se está cumpliendo en ese proceso de copiado?
6. Me conecto a Internet y quiero leer un diario online, abro el navegador pongo la dirección de la pagina pero no
carga las imágenes y al rato aparece una leyenda que dice expiró el tiempo de conexión con el servidor. ¿Qué
requerimiento esta no se está cumpliendo en ese proceso de cargar la web?
7. ¿Qué entiende por demanda computacional? Conceptualice sus componentes.
8. Le piden que arme un sistema de stock, analiza algunos aspectos como que el sistema se pueda armar, que
existan los instrumentos para llevarlo a cabo, es decir el hardware que pueda soportar dicho sistema. Revisa
que lo que se le esta pidiendo no infrinja la ley, que se licencien las aplicaciones que así lo requieran. Se asegura
que volumen de datos se van almacenar para poder dimensionar la compra de los discos rígidos. ¿Qué se está
analizando?
Investigación
1. Investigue distintos elementos de almacenamiento.
2. Investigue los distintos tipos de sistemas de información.
3. Lea de Diseño de sistemas de Información - Burch J.G., Grudnistki G. Ed. Megabyte. los capítulos:
2 Dimensiones y estructuras.
3 Diseño de los bloques de construcción de los sistemas de información.
12
Base de Datos
Tema Nº 2
Base de datos
Aunque la materia Bases de Datos tiene un carácter propedéutico para la disciplina de los sistemas de bases de
datos y el área más general de sistemas de información, es necesario conocer cuál ha sido la evolución y estado
actual de la tecnología de bases de datos, con el objetivo de estar preparados para los cambios que, inevitable-
mente, se van a dar en el área de las bases de datos y los sistemas de información.
Para ello, en este informe se relata brevemente la evolución de los sistemas de bases de datos, centrándose en
los fundamentos de la tecnología actual y su motivación. Haremos un repaso de las nociones y evolución básicas
de los modelos pre-relacionales, relacionales, objetuales y objeto-relacional, las bases de datos paralelas y distri-
buidas, multimedia, los almacenes de datos, la relación entre las bases de datos y la web, así como otras áreas y
aplicaciones. Esto nos lleva a evaluar la situación actual, especialmente las nuevas demandas sobre sistemas de
información exigidas por el aumento de interconectividad, los nuevos imperativos de publicación e intercambio
de información, los datos semiestructurados y el estándar XML, así como el análisis de datos para la toma de de-
cisión y los avances y perspectivas en las “bases de conocimiento”. Se comentan también las líneas de investiga-
ción abiertas más importantes en el área y una opinión personal sobre hacia donde parece dirigirse la disciplina.
Finalmente, se estudia sucintamente la sociología de la disciplina, su interrelación con otras disciplinas del área
de Lenguajes y Sistemas Informáticos y las organizaciones, congresos y publicaciones más importantes.
1. Permitir a los usuarios crear nuevas bases de datos y especificar su estructura, utilizando un lenguaje o inter-
faz especializado, llamado lenguaje o interfaz de definición de datos.
2. Dar a los usuarios la posibilidad de consultar los datos (es decir, recuperarlos parcial o totalmente) y modifi-
carlos, utilizando un lenguaje o interfaz apropiado, generalmente llamado lenguaje de consulta o lenguaje
de manipulación de datos.
3. Permitir el almacenamiento de grandes cantidades de datos durante un largo periodo de tiempo, mante-
niéndolos seguros de accidentes o uso no autorizado y permitiendo un acceso eficiente a los datos para
consultas y modificaciones.
4. Controlar el acceso a los datos de muchos usuarios a la vez, impidiendo que las acciones de un usuario pue-
dan afectar a las acciones de otro sobre datos diferentes y que el acceso simultáneo no corrompa los datos.
13
Analista de Sistemas
14
Base de Datos
Minimización de redundancias
Como distintas aplicaciones se conectan a la base de datos, no hace falta tanta repetición de datos, como en an-
taño que los distintos programas tenían su colección de datos, muchas veces redundados.
• Hardware. Máquinas en las que se almacenan las bases de datos. Incorporan unidades de almacenamiento
masivo para este fin.
• Software. Es el sistema gestor de bases de datos. El encargado de administrar las bases de datos.
• Datos. Incluyen los datos que se necesitan almacenar y los metadatos que son datos que sirven para des-
cribir lo que se almacena en la base de datos.
• Usuarios. Personas que manipulan los datos del sistema. Hay diferentes categorías según sus funciones y
según su grado de uso.
15
Analista de Sistemas
16
Base de Datos
Características
17
Analista de Sistemas
Gráfico 5 – Base de datos relacional.
18
Base de Datos
Para un mayor análisis se desearía ver cómo se desarrollan las ventas por producto en un periodo dato. Para hacer
esto, se necesitarían abrir varias tablas simultáneamente.
Esto mismo en un cubo lo tratamos como dimensiones una seria la de tiempo, otra de productos y una última
región.
19
Analista de Sistemas
Dado que las agrupaciones de datos pueden ser fácilmente representadas en un cubo, a la hora de usarla son
mucho más rápidas que las relacionales. Si bien llevan más diseño, a la hora de usarlas me evita muchos cruces
de datos, que ya los pensé y aplique en el diseño. Por ejemplo si quiero saber:
• ¿Cómo se venden los productos en cada región en un mes dado? Esto es equivalente a ver Producto por
Región en un mes dado.
• ¿Qué regiones han mejorado las ventas de un producto dado a través del tiempo? Esto es equivalente a
Región por Tiempo de un producto dado.
• ¿Cómo se venden los productos a través del tiempo en una región dada? Esto es equivalente a Producto por
Tiempo en una región dada.
20
Base de Datos
Alguien podría pensar, por tanto, que las bases de datos orientadas a objetos deberían de haber superado en la
práctica a las relacionales. De hecho, a veces se denominan postrelacionales. No obstante, después de más 15
años, el mercado de las bases de datos orientadas a objetos no supone más de un 5% del mercado de las relacio-
nales, como se puede ver en las siguientes gráficas:
Resumen tema 2
Una base de datos puede definirse como una colección de datos (objetos) interrelacionados almacenados en
conjunto sin redundancias perjudiciales o innecesarias; su finalidad es la de servir a una aplicación o más, de
la mejor manera posible; los datos se almacenan de modo que resulten independientes de los programas que
los usan; se emplean métodos bien determinados para incluir datos nuevos y para modificar o extraer los datos
almacenados.
21
Analista de Sistemas
1. Hardware
2. Software.
3. Datos.
4. Usuarios.
Autoevaluación
1. ¿Para qué sirve una base de datos en una organización?
2. ¿A qué se refiere la independencia lógica y física de los datos?
3. El control centralizado de los datos es una de las características de la base de datos. ¿Cuales otras características
son posibles gracias al control centralizado?
4. Analicemos esta situación: Tengo mi curriculum que lo hice hace un tiempo en office 2003 después de unos
años cambio el office por el 2007, puedo decir que cambio de aplicación, mientras que mi curriculum es el dato
sigue siendo el mismo. Si hacemos una analogía de esta situación con una base de datos. ¿Que característica
de las bases de datos se pone en manifiesto?
5. De los componentes de la base de datos, los usuarios ¿en función de que se clasifican?
6. ¿En qué se diferencia una base de datos jerárquica y una de red?
7. ¿En qué se diferencia una base de datos relacional y una multidimencional?
8. ¿Para qué me sirve una base de datos orientada a objetos?
Investigación
1. Investigue hoy en día que tipo de base de datos es la más usada.
2. Indague sobre bases de datos jerárquicas y de red.
3. Lea de Introducción a la informática – Mario D Albarracín, Eduardo A Lancharro, Miguel García López. el capítu-
lo 7 Archivos y base de datos.
4. Lea de Organización de base de datos – James Martin. los capítulos: 3 ¿Qué es una base de datos? Y 4 ¿Cuáles
deberían ser los objetivos de una organización de base de datos?
22
Base de Datos
Tema Nº 3
Arquitectura de la base de datos
Como antes de la aparición de las bases de datos, los registros se encontraban organizados especialmente para
unas aplicaciones determinadas, al estar almacenados en sus propias cintas o paquetes de discos, de forma que
los datos de operación se hallan muy dispersos y eran difíciles de controlar, incluso que los programas para acce-
der a esos datos estaban muchas veces escritos en lenguajes diferentes, surgió la necesidad de una Base de Datos
es que esos registros puedan ser utilizados por tantas aplicaciones como sea posible; para ello se han de integrar
los archivos de datos, eliminándose parcial o totalmente la redundancia entre ellos.
A pesar de estar definidas las bases de datos como una colección no redundante de datos hay ocasiones en que
las bases de datos soportan o admiten una cierta redundancia con el objeto de reducir los tiempos de acceso o
simplificar los métodos de direccionamiento, hablándose, en este caso, de una redundancia controlada o mínima.
Por este motivo hay quienes ven a la Base de Datos como un enorme receptáculo donde se reúne toda la infor-
mación necesaria para el ejercicio de las funciones propias de una empresa.
Cuando un conjunto de datos sirve a una variedad de programas de aplicaciones, cada uno de los programas per-
cibe relaciones diferentes entre los datos. En estas condiciones el secreto y la seguridad de los datos, así como la
posibilidad de reconstruirlos en caso de algún error, son aspectos importantes en el diseño de las bases de datos.
Antes de que surgieran las computadoras de la tercera generación, la primera fue instalada en 1965. Los archivos
estaban organizados en forma secuencial y el software ejecutaba las operaciones de E/S de los dispositivos de
almacenamiento y pocas cosas más. La codificación incluida en los programas era la responsable de la organiza-
ción de los datos y no había independencia entre ellos: si se cambiaba el dispositivo de almacenamiento o la or-
ganización, el programador se veía obligado a escribir un nuevo programa. La mayor parte de los archivos servían
sólo para una aplicación. Para poder ser utilizados en otras aplicaciones debían estar organizados de otra forma y
con campos diferentes, lo que llevaba consigo un alto grado de redundancia entre los archivos.
La llegada de los dispositivos de direccionamiento directo permitió al usuario el acceso a un determinado regis-
tro sin tener que pasar por los demás, pero era tarea del programador el especificar el tipo de direccionamiento
utilizado.
Al reconocerse la naturaleza cambiante de los archivos y del dispositivo de almacenamiento, el software permitió
modificar la distribución física de los datos sin tener que alterar la estructura lógica. Los archivos seguían estando
diseñados para una aplicación determinada o para un grupo de aplicaciones muy similares. Cualquier nueva ne-
cesidad de la empresa obligaba a crear nuevos archivos y, por tanto, nuevos programas.
La evolución del procesamiento de los datos comerciales llevó a independizar los programas de aplicaciones no
sólo de los cambios del hardware y del aumento del volumen de los datos, sino también de la adición de nuevos
campos a la estructura lógica del archivo.
Si se pretende agregar nuevos campos a los registros, sin alterar los programas de aplicación, es necesario que
el software se refiera a los datos a nivel de campo, en lugar de hacerlo a nivel de registro. Para un programador,
un registro puede estar constituido por una serie de campos, y otro programador puede tener otra visión lógica
completamente distinta de ese registro.
En 1975 ANSI-SPARC (American National Standard Institute - Standards Planning and Requirements Committee)
propone una arquitectura de sistemas de bases de datos de tres esquemas o niveles de abstracción como ayuda
para conseguir la separación entre los programas de aplicación y los datos, el manejo de múltiples vistas por par-
te de los usuarios y el uso de un catálogo para almacenar el esquema de la base de datos.
• Vista externa: Esta es la visión de los datos que poseen los usuarios del Sistema de Información.
• Vista física: Esta es la forma en la que realmente están almacenados los datos.
23
Analista de Sistemas
En un sistema orientado a procesos, los usuarios ven los datos desde las aplicaciones creadas por los programa-
dores. Esa vista pueden ser formularios, informes visuales o en papel... Pero la realidad física de esos datos, tal cual
se almacenan en los discos queda oculta. Esa visión está reservada a los administradores.
En el caso de los Sistemas de Base de datos, se añade una tercera vista, que es la vista conceptual. Esa vista se sitúa en-
tre la física y la externa. Se habla pues en Bases de datos de la utilización de tres esquemas para representar los datos.
Esquema físico
Esquema físico o nivel interno es la representación inferior de una Base de Datos, por ello es el más cercano al
almacenamiento físico.
Permite describir los datos tal como están almacenados en la computadora; por ejemplo:
Los archivos que los contienen (nombre, organización, ubicación...).
Los registros de estos archivos (longitud, campos...).
Las rutas de acceso a esos registros (índices, encadenamientos, archivos invertidos...)
Este es el nivel más bajo de abstracción de la información.
Esta visión sólo la requiere el administrador/a. El administrador la necesita para poder gestionar más eficiente-
mente la base de datos.
Esquema Conceptual
Se trata de un esquema teórico de los datos en el que figuran organizados en estructuras reconocibles del mundo
real y en el que también aparece la forma de relacionarse los datos. Este esquema es el paso que permite modelar
un problema real a su forma correspondiente en la base. Este esquema es la base de datos de todos los demás.
Como se verá más adelante es el primer paso a realizar al crear una base de datos.
El esquema conceptual lo realiza diseñadores/as o analistas.
Dicho de otra manera este nivel corresponde a la estructura organizacional de los datos de la base obtenida al
reunir los requerimientos de todos los usuarios de una empresa, sin preocuparse de su organización física ni las
vías de acceso.
Gráfico 11
Niveles de abstracción
de la base de datos.
24
Base de Datos
Manejador de archivo
Los medios para obtener y analizar esos datos, para extraerlos, transformarlos y cargarlos, así como las diferentes
formas para realizar la gestión de datos son componentes esenciales de un almacén de datos
En esta definición se incluyen herramientas para la inteligencia empresarial, herramientas para extraer, transfor-
mar y cargar datos en el almacén de datos, y herramientas para gestionar y recuperar los metadatos.
Metadatos
Uno de los componentes más importantes de la arquitectura de un almacén de datos son los metadatos. Se defi-
ne comúnmente como “datos acerca de los datos”, en el sentido de que se trata de datos que describen cuál es la
estructura de los datos que se van a almacenar y cómo se relacionan.
El metadato documenta internamente, entre otras cosas, qué tablas existen en una base de datos, qué columnas
posee cada una de las tablas y qué tipo de datos se pueden almacenar. Así como los permisos, relaciones, restric-
ciones, todo lo referente a la estructura de la base.
Diccionario de datos
Es un listado organizado de todos los elementos de datos pertinentes al sistema, con definiciones precisas y rigu-
rosas para que el usuario y el analista de sistemas puedan conocer todas las entradas, salidas, componentes de
depósitos y cálculos intermediarios. (no confundir con metadata, si bien va ser lo mismo a efectos descriptivos de
la base, la metadata la lee y entiende el SGDB y el diccionario de datos el humano).
Las razones por las cuales las bases de datos se almacenan en memorias secundarias son:
• En general, las bases de datos son demasiado grandes para entrar en la memoria primaria.
• La memoria secundaria suele ser más barata que la memoria primaria (aunque esta última tiene mayor
velocidad).
• La memoria secundaria es más útil para el almacenamiento de datos permanente, puesto que la memoria
primaria es volátil.
En cuanto al respaldo de las bases de datos (ver backup), suelen emplearse tanto discos duros, como cintas mag-
néticas, discos ópticos o similares.
25
Analista de Sistemas
• Archivos de montículos (o no ordenados): esta técnica coloca los registros en el disco sin un orden específi-
co, añadiendo nuevos registros al final del archivo.
• Archivos ordenados (o secuenciales): mantiene el orden de los registros con respecto a algún valor de algún
campo (clave de ordenación).
Existe una segunda forma de acceder a los datos llamada organización secundaria o estructura de acceso auxiliar.
Estas permiten que los accesos a los registros de un archivo basado en campos alternativos, sean más eficientes
que los que han sido utilizados para la organización primaria de archivos.
El primer disco duro fue inventado por IBM en 1956. A lo largo de los años, los discos duros han disminuido su
precio al mismo tiempo que han multiplicado su capacidad, siendo la principal opción de almacenamiento se-
cundario para PC desde su aparición en los años 60.1 Los discos duros han mantenido su posición dominante
gracias a los constantes incrementos en la densidad de grabación, que se ha mantenido a la par de las necesida-
des de almacenamiento secundario.
Los tamaños también han variado mucho, desde los primeros discos IBM hasta los formatos estandarizados ac-
tualmente: 3,5” los modelos para PC y servidores, 2,5” los modelos para dispositivos portátiles. Todos se comu-
nican con la computadora a través del controlador de disco, empleando una interfaz estandarizado. Los más
comunes hoy día son IDE (también llamado ATA o PATA), SCSI (generalmente usado en servidores y estaciones de
trabajo), Serial ATA y FC (empleado exclusivamente en servidores).
Para poder utilizar un disco duro, un sistema operativo debe aplicar un formato de bajo nivel que defina una o
más particiones. La operación de formateo requiere el uso de una fracción del espacio disponible en el disco, que
dependerá del formato empleado. Además, los fabricantes de discos duros, SSD y tarjetas flash miden la capaci-
dad de los mismos usando prefijos SI, que emplean múltiplos de potencias de 1000 según la normativa IEC, en
lugar de los prefijos binarios clásicos de la IEEE, que emplean múltiplos de potencias de 1024, y son los usados
mayoritariamente por los sistemas operativos. Esto provoca que en algunos sistemas operativos sea representa-
do como múltiplos 1024 o como 1000, y por tanto existan ligeros errores, por ejemplo un Disco duro de 500 GB,
en algunos sistemas operativos sea representado como 465 GiB (Según la IEC Gibibyte, o Gigabyte binario, que
son 1024 Mebibytes) y en otros como 465 GB.
26
Base de Datos
Estructura física
Dentro de un disco duro hay uno o varios discos (de aluminio o cristal) concéntricos llamados platos (normalmen-
te entre 2 y 4, aunque pueden ser hasta 6 ó 7 según el modelo), y que giran todos a la vez sobre el mismo eje, al
que están unidos. El cabezal (dispositivo de lectura y escritura) está formado por un conjunto de brazos paralelos
a los platos, alineados verticalmente y que también se desplazan de forma simultánea, en cuya punta están las
cabezas de lectura/escritura. Por norma general hay una cabeza de lectura/escritura para cada superficie de cada
plato. Los cabezales pueden moverse hacia el interior o el exterior de los platos, lo cual combinado con la rotación
de los mismos permite que los cabezales puedan alcanzar cualquier posición de la superficie de los platos.
Cada plato posee dos caras, y es necesaria una cabeza de lectura/escritura para cada cara. Posee una estructura
Cilindro-Cabeza-Sector de más abajo, a primera vista se ven 4 brazos, uno para cada plato. En realidad, cada uno
de los brazos es doble, y contiene 2 cabezas: una para leer la cara superior del plato, y otra para leer la cara inferior.
Por tanto, hay 8 cabezas para leer 4 platos, aunque por cuestiones comerciales, no siempre se usan todas las caras
de los discos y existen discos duros con un número impar de cabezas, o con cabezas deshabilitadas. Las cabezas
de lectura/escritura nunca tocan el disco, sino que pasan muy cerca (hasta a 3 nanómetros), debido a una finísima
película de aire que se forma entre éstas y los platos cuando éstos giran (algunos discos incluyen un sistema que
impide que los cabezales pasen por encima de los platos hasta que alcancen una velocidad de giro que garantice
la formación de esta película). Si alguna de las cabezas llega a tocar una superficie de un plato, causaría muchos
daños en él, rayándolo gravemente, debido a lo rápido que giran los platos (uno de 7.200 revoluciones por minu-
to se mueve a 129 km/h en el borde de un disco de 3,5 pulgadas).
Direccionamiento
Hay varios conceptos para referirse a zonas del disco:
1. Plato: cada uno de los discos que hay dentro del disco duro.
2. Cara: cada uno de los dos lados de un plato.
3. Cabeza: número de cabezales.
4. Pistas: una circunferencia dentro de una cara; la pista 0 está en el borde exterior.
5. Cilindro: conjunto de varias pistas; son todas las circunferencias que están alineadas verticalmente (una de
cada cara).
Sector: cada una de las divisiones de una pista. El tamaño del sector no es fijo, siendo el estándar actual 512 bytes,
aunque próximamente serán 4 KiB. Antiguamente el número de sectores por pista era fijo, lo cual desaprove-
chaba el espacio significativamente, ya que en las pistas exteriores pueden almacenarse más sectores que en las
interiores. Así, apareció la tecnología ZBR (grabación de bits por zonas) que aumenta el número de sectores en
las pistas exteriores, y utiliza más eficientemente el disco duro.
El primer sistema de direccionamiento que se usó fue el CHS (cilindro-cabeza-sector), ya que con estos tres va-
lores se puede situar un dato cualquiera del disco. Más adelante se creó otro sistema más sencillo: LBA (direccio-
namiento lógico de bloques), que consiste en dividir el disco entero en sectores y asignar a cada uno un único
número. Éste es el que actualmente se usa.
27
Analista de Sistemas
Tipos de conexión
Si hablamos de disco duro podemos citar los distintos tipos de conexión que poseen los mismos con la placa
base, es decir pueden ser SATA, IDE, SCSI o SAS:
1. IDE: Integrated Device Electronics (“Dispositivo electrónico integrado”) o ATA (Advanced Technology Atta-
chment), controla los dispositivos de almacenamiento masivo de datos, como los discos duros y ATAPI (Ad-
vanced Technology Attachment Packet Interface) Hasta aproximadamente el 2004, el estándar principal
por su versatilidad y asequibilidad. Son planos, anchos y alargados.
2. SCSI: Son interfaces preparadas para discos duros de gran capacidad de almacenamiento y velocidad de
rotación. Se presentan bajo tres especificaciones: SCSI Estándar (Standard SCSI), SCSI Rápido (Fast SCSI) y
SCSI Ancho-Rápido (Fast-Wide SCSI). Su tiempo medio de acceso puede llegar a 7 milisegundos y su ve-
locidad de transmisión secuencial de información puede alcanzar teóricamente los 5 Mbps en los discos
SCSI Estándares, los 10 Mbps en los discos SCSI Rápidos y los 20 Mbps en los discos SCSI Anchos-Rápidos
(SCSI-2). Un controlador SCSI puede manejar hasta 7 discos duros SCSI (o 7 periféricos SCSI) con conexión
tipo margarita (daisy-chain). A diferencia de los discos IDE, pueden trabajar asincrónicamente con relación
al microprocesador, lo que posibilita una mayor velocidad de transferencia.
3. SATA (Serial ATA): El más novedoso de los estándares de conexión, utiliza un bus serie para la transmisión
de datos. Notablemente más rápido y eficiente que IDE. Existen tres versiones, SATA 1 con velocidad de
transferencia de hasta 150 MB/s (hoy día descatalogado), SATA 2 de hasta 300 MB/s, el más extendido en la
actualidad; y por último SATA 3 de hasta 600 MB/s el cual se está empezando a hacer hueco en el mercado.
Físicamente es mucho más pequeño y cómodo que los IDE, además de permitir conexión en caliente.
4. SAS (Serial Attached SCSI): Interfaz de transferencia de datos en serie, sucesor del SCSI paralelo, aunque
sigue utilizando comandos SCSI para interaccionar con los dispositivos SAS. Aumenta la velocidad y permite
la conexión y desconexión en caliente. Una de las principales características es que aumenta la velocidad de
transferencia al aumentar el número de dispositivos conectados, es decir, puede gestionar una tasa de trans-
ferencia constante para cada dispositivo conectado, además de terminar con la limitación de 16 dispositivos
existente en SCSI, es por ello que se vaticina que la tecnología SAS irá reemplazando a su predecesora SCSI.
Además, el conector es el mismo que en la interfaz SATA y permite utilizar estos discos duros, para aplicacio-
nes con menos necesidad de velocidad, ahorrando costes. Por lo tanto, las unidades SATA pueden ser utiliza-
das por controladoras SAS pero no a la inversa, una controladora SATA no reconoce discos SAS.
Resumen Tema 3
Arquitectura ANSI
La arquitectura de sistemas de bases de datos de tres esquemas fue aprobado por la ANSI-SPARC ayuda para
conseguir la separación entre los programas de aplicación y los datos.
• Nivel interno: Tiene un esquema interno que describe la estructura física de almacenamiento de base de
datos. Emplea un modelo físico de datos y los únicos datos que existen están realmente en este nivel.
• Nivel conceptual: tiene esquema conceptual. Describe la estructura de toda la base de datos para una co-
munidad de usuarios. Oculta los detalles físicos de almacenamiento y trabaja con elementos lógicos como
entidades, atributos y relaciones.
• Nivel externo o de vistas: tiene varios esquemas externos o vistas de usuario. Cada esquema describe la
visión que tiene de la base de datos a un grupo de usuarios, ocultando el resto.
El objetivo de la arquitectura de tres niveles es el de separar los programas de aplicación de la base de datos física.
Manejador de archivo: Los medios para obtener y analizar esos datos, para extraerlos, transformarlos y cargarlos.
Metadatos: describen cuál es la estructura de los datos que se van a almacenar y cómo se relacionan.
28
Base de Datos
Diccionario de datos: Es un listado organizado de todos los elementos de datos pertinentes al sistema.
• Archivos de montículos (o no ordenados): esta técnica coloca los registros en el disco sin un orden específi-
co, añadiendo nuevos registros al final del archivo.
• Archivos ordenados (o secuenciales): mantiene el orden de los registros con respecto a algún valor de algún
campo (clave de ordenación).
• Archivos de direccionamiento calculado: utilizan una función de direccionamiento calculado aplicada a un
campo específico para determinar la colocación de los registros en disco.
• Árboles B: se vale de la estructura de árbol para las colocaciones de registros.
Estructura física
Dentro de un disco duro hay uno o varios discos o platos que giran todos a la vez sobre el mismo eje, al que están
unidos. Un cabezal (lectura y escritura) está formado por un conjunto de brazos paralelos a los platos, alineados
verticalmente y que también se desplazan de forma simultánea, en cuya punta están las cabezas de lectura/escri-
tura. Por norma general hay una cabeza para cada superficie de cada plato. Cada plato posee dos caras.
Tipo de conexión: si hablamos de disco duro podemos citar los distintos tipos de conexión que poseen los mis-
mos con la placa base, es decir pueden ser SATA, IDE, SCSI o SAS.
Autoevaluación
1. ¿Qué propuso ANSI-SPARC?
2. ¿Cuál es la finalidad?
3. ¿Que entiende por Nivel interno?
4. ¿Qué entiende por Nivel conceptual?
5. ¿Qué entiende por Nivel físico?
6. Si hago un backup y restore de la estructura de la base no se hace un backup de los datos sino que de la estruc-
tura. ¿Qué es lo que se está copiando el diccionario de datos o la metadata?
7. ¿Qué hace específicamente el manejador de archivo de la base de datos?
8. El administrador de base de datos tiene documentada la estructura de datos en qué lugar.
29
Analista de Sistemas
Investigación
1. Profundice sobre la arquitectura de base de datos.
2. El sitio de Microsoft indague sobre el Diccionario de datos de AdventureWorks la base de estudio de MS.
3. Sondee en el mercado que tipos de discos se ofrecen y con prestaciones. Analice las diferencias principales.
4. Lea de Sistemas de base de datos – conceptos fundamentales – Elmasri - Navathe. Pearson educación.
Capítulo 2 Concepto y arquitectura de los sistemas de base de datos.
Capítulo 3 Modelado de datos con el enfoque entidad vínculo.
5. Lea de Sistemas de base de datos – C.J. Date – Addison-Wesley Iberoamericana. Capitulo 2 Una arquitectura
para sistemas de base de datos.
30
Analista de Sistemas
Unidad 2
Tema Nº 4
Sistema gestor de base de datos
Un sistema gestor de bases de datos o SGBD (aunque se suele utilizar más a menudo las siglas DBMS procedentes
del inglés, Data Base Management System) es el software que permite a los usuarios procesar, describir, adminis-
trar y recuperar los datos almacenados en una base de datos.
En estos Sistemas se proporciona un conjunto coordinado de programas, procedimientos y lenguajes que per-
miten a los distintos usuarios realizar sus tareas habituales con los datos, garantizando además la seguridad de
los mismos.
El éxito del SGBD reside en mantener la seguridad e integridad de los datos. Lógicamente tiene que proporcionar
herramientas a los distintos usuarios. Entre las herramientas que proporciona están:
• Herramientas para la creación y especificación de los datos. Así como la estructura de la base de datos.
• Herramientas para administrar y crear la estructura física requerida en las unidades de almacenamiento.
• Herramientas para la manipulación de los datos de las bases de datos, para añadir, modificar, suprimir o
consultar datos.
• Herramientas de recuperación en caso de desastre.
• Herramientas para la creación de copias de seguridad.
32
Base de Datos
Control de redundancia
El SGBD consta de herramienta para crear restricciones para evitar duplicaciones.
Respaldo y recuperación
Respaldo y recuperación se refiere a la recuperación ante falla de hardware o software del SGBD. Si por algún
motivo el SGBD falla debe volver a la instancia anterior a la falla.
33
Analista de Sistemas
• Estructura interna
• Estructura conceptual
• Estructura externa
Esta función se realiza mediante el lenguaje de descripción de datos o DDL. Mediante ese lenguaje:
Función de manipulación
Permite modificar y utilizar los datos de la base de datos. Se realiza mediante el lenguaje de modificación de da-
tos o DML. Mediante ese lenguaje se puede:
• Añadir datos
• Eliminar datos
• Modificar datos
• Buscar datos
Actualmente se suele distinguir aparte la función de buscar datos en la base de datos (función de consulta). Para
lo cual se proporciona un lenguaje de consulta de datos o DQL.
Función de control
Mediante esta función los administradores poseen mecanismos para proteger las visiones de los datos permiti-
das a cada usuario, además de proporcionar elementos de creación y modificación de esos usuarios.
Se suelen incluir aquí las tareas de copia de seguridad, carga de ficheros, auditoria, protección ante ataques exter-
nos, configuración del sistema... El lenguaje que implementa esta función es el lenguaje de control de datos o DCL.
34
Base de Datos
Facilidades del usuario: Son las herramientas que proporciona el SGBD a los usuarios para permitir un acceso
más sencillo a los datos. Actúan de interfaz entre el usuario y la base de datos, y son el único elemento que ma-
neja el usuario.
Capa de acceso a datos: La capa de acceso a datos es la que permite comunicar a las aplicaciones de usuario con
el diccionario de datos a través de las herramientas de gestión de datos que incorpore el SGBD.
Diccionario de datos (del SGBD): Se trata del elemento que posee todos los metadatos. Gracias a esta capa las
solicitudes de los clientes se traducen en instrucciones que hacen referencia al esquema interno de la base de
datos.
Núcleo: El núcleo de la base de datos es la encargada de traducir todas las instrucciones requeridas y prepararlas
para su correcta interpretación por parte del sistema. Realiza la traducción física de las peticiones.
Sistema operativo: Es una capa externa al software SGBD pero es la única capa que realmente accede a los datos en sí.
(1) El proceso lanzado por el usuario llama al SGBD indicando la porción de la base de datos que se desea tratar
(2) El SGBD traduce la llamada a términos del esquema lógico de la base de datos. Accede al esquema lógico
comprobando derechos de acceso y la traducción física (normalmente los metadatos se guardan una zona de
memoria global y no en el disco)
(3) El SGBD obtiene el esquema físico
(4) El SGBD traduce la llamada a los métodos de acceso del Sistema Operativo que permiten acceder realmente
a los datos requeridos
(5) El Sistema Operativo accede a los datos tras traducir las órdenes dadas por el SGBD
(6) Los datos pasan del disco a una memoria intermedia o buffer. En ese buffer se almacenarán los datos según
se vayan recibiendo.
(7) Los datos pasan del buffer al área de trabajo del usuario (ATU) del proceso del usuario. Los pasos 6 y 7 se repi-
ten hasta que se envíe toda la información al proceso de usuario.
(8) En el caso de que haya errores en cualquier momento del proceso, el SGBD devuelve indicadores en los que
manifiesta si ha habido errores o advertencias a tener en cuenta. Esto se indica al área de comunicaciones del
proceso de usuario. Si las indicaciones son satisfactorias, los datos de la ATU serán utilizables por el proceso
de usuario.
35
Analista de Sistemas
SGBD Comerciales
MySQL:
Es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de insta-
laciones. MySQL AB desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado lo
ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos privativos pueden comprar a la
empresa una licencia que les permita ese uso.
Oracle:
Es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data Base
Management System), fabricado por Oracle Corporation.
Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su:
• Soporte de transacciones.
• Estabilidad.
• Escalabilidad.
• Es multiplataforma.
Su mayor defecto es su enorme precio, que es de varios miles de dólares (según versiones y licencias). Otro aspec-
to que ha sido criticado por algunos especialistas es la seguridad de la plataforma, y las políticas de suministro de
parches de seguridad, modificadas a comienzos de 2005 y que incrementan el nivel de exposición de los usuarios.
En los parches de actualización provistos durante el primer semestre de 2005 fueron corregidas 22 vulnerabilida-
des públicamente conocidas, algunas de ellas con una antigüedad de más de 2 años.
Aunque su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco, recientemente
sufre la competencia del Microsoft SQL Server de Microsoft y de la oferta de otros SGBD con licencia libre como
PostgreSQL, MySql o Firebird. Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo Linux.
Paradox (base de datos):
Base de datos relacional para entorno MS Windows, anteriormente disponible para MS-DOS y Linux, desarrollada
actualmente por Corel e incluida en la suite ofimática WordPerfect Office.
En los tiempos del MS-DOS, era una base de datos de bastante éxito, compitiendo con dBase, Clipper y FoxBase.
Pasó al control de Borland después de la compra de Ansa Software en 1987.
Aunque Borland la portó a Windows, su cuota de mercado es mucho menor que la de Microsoft Access, pero su
lenguaje de programación (Objectpal) es Pascal lo que le hace más potente que Access que usa Visual Basic que
limita bastante sus prestaciones si se compara con otras bases de datos que usan lenguajes más avanzados. Con
su Runtime se puede desarrollar una aplicación usando una sola licencia sin limitación de puestos.
36
Base de Datos
• Soporte de transacciones.
• Escalabilidad, estabilidad y seguridad.
• Soporta procedimientos almacenados.
• Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y
DML gráficamente.
• Permite trabajar en modo cliente-servidor donde la información y datos se alojan en el servidor y las termi-
nales o clientes de la red sólo acceden a la información.
• Además permite administrar información de otros servidores de datos
Este sistema incluye una versión reducida, llamada MSDE con el mismo motor de base de datos pero orientado a
proyectos más pequeños, que en su versión 2005 pasa a ser el SQL Express Edition.
Microsoft SQL Server constituye la alternativa de Microsoft a otros sistemas gestores de bases de datos como son
Oracle, Sybase ASE o MySQL.
Es común desarrollar completos proyectos complementando Microsoft SQL Server y Microsoft Access a través
de los llamados ADP (Access Data Project). De esta forma se completa una potente base de datos (Microsoft SQL
Server) con un entorno de desarrollo cómodo y de alto rendimiento (VBA Access) a través de la implementación
de aplicaciones de dos capas mediante el uso de formularios Windows.
Para el desarrollo de aplicaciones más complejas (tres o más capas), Microsoft SQL Server incluye interfaces de
acceso para varias plataformas de desarrollo, entre ellas .NET.
Microsoft SQL Server, al contrario de su más cercana competencia, no es multiplataforma, ya que sólo está dispo-
nible en Sistemas Operativos de Microsoft.
Microsoft Access:
Es un sistema de gestión de bases de datos Relacional creado y modificado por Microsoft (DBMS) para uso per-
sonal de pequeñas organizaciones. Es un componente de la suite Microsoft Office aunque no se incluye en el
paquete “básico”. Una posibilidad adicional es la de crear ficheros con bases de datos que pueden ser consultados
por otros programas.
Características:
Entre las principales funcionalidades de Access se encuentran:
37
Analista de Sistemas
Además, permite crear frontends – o programa que muestra la interfaz de usuario – de bases de datos más po-
tentes ya que es un sistema capaz de acceder a tablas externas a través de ODBC como si fueran tablas Access.
Generalidades:
Es un software de gran difusión entre pequeñas empresas (PYMES) cuyas bases de datos no requieren de excesiva
potencia, ya que se integra perfectamente con el resto de aplicaciones de Microsoft y permite crear pequeñas
aplicaciones con unos pocos conocimientos de programación.
Tiene un sistema de seguridad de cifrado bastante primitivo y puede ser la respuesta a proyectos de programa-
ción de pequeño y mediano tamaño.
Inconvenientes:
Para bases de datos de gran calibre (en cuanto a volumen de datos o de usuarios) es recomendable usar otros
sistemas como MySQL o Microsoft SQL Server, y código VBA (Visual Basic para Aplicaciones).
Entre sus mayores inconvenientes figuran que no es multiplataforma, pues sólo está disponible para sistemas
operativos de Microsoft, y que no permite transacciones. Su uso es inadecuado para grandes proyectos de soft-
ware que requieren tiempos de respuesta críticos o muchos accesos simultáneos a la base de datos.
DB2:
Es una marca comercial, propiedad de IBM, bajo la cual se comercializa el sistema de gestión de base de datos.
La versión más actual es DB2 9, la cual utiliza XML como motor, además el modelo que utiliza es el jerárquico en
lugar del modelo relacional que utilizan otros gestores.
Visual FoxPro:
Es un lenguaje de programación orientado a objetos y procedural, un Sistema Gestor de Bases de datos o Databa-
se Management System (DBMS), y desde la versión 7.0, un Sistema administrador de bases de datos relacionales,
producido por Microsoft.
Características:
Visual FoxPro ofrece a los desarrolladores un conjunto de herramientas para crear aplicaciones de bases de datos
para el escritorio, entornos cliente/servidor, tablet PC o para la Web.
Entre sus características se pueden enumerar:
La última versión liberada es la 9.0. La próxima versión, ‘Sedna’, será un poderoso y completo lenguaje que permitirá
al producto interactuar aun más con VisualStudio.net, SQLServer2005, SQLExpress2005 y Office12, Windows Vista.
No habrá una próxima versión llamada sedna, microsoft ha cancelado el desarrollo de dicha versión y lanzarán lo
que han hecho hasta ahora como un service pack, hay fecha de fin de soporte que es en el año 2015.
38
Base de Datos
Hay un movimiento que está haciendo presión para que microsoft continue, o deje el visual fox como código
abierto para que otra gente pueda seguir evolucionando.
La versión 9.0 de Visual FoxPro cuenta con el SP1 en la que hay algunas nuevas características y especialmente
brinda estabilidad al producto.
PostgreSQL.
Es un sistema de gestión de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD.
Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa
y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada,
altruista, libre y/o apoyada por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreS-
QL Global Development Group).
Características
Algunas de sus principales características son, entre otras:
1. Alta concurrencia: mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus si-
glas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la mis-
ma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se
le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases,
eliminando la necesidad del uso de bloqueos explícitos.....
Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexa-
bles gracias a la infraestructura GiST de PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el
proyecto PostGIS.
Otras características
1. Claves ajenas también denominadas Llaves ajenas o Claves Foráneas (foreign keys).
2. Disparadores (triggers): Un disparador o trigger se define como una acción específica que se realiza de
acuerdo a un evento, cuando éste ocurra dentro de la base de datos. En PostgreSQL esto significa la eje-
cución de un procedimiento almacenado basado en una determinada acción sobre una tabla específica.
Ahora todos los disparadores se definen por seis características:
39
Analista de Sistemas
Entonces combinando estas seis características, PostgreSQL le permitirá crear una amplia funcionalidad a través
de su sistema de activación de disparadores (triggers).
3. Vistas.
4. Integridad transaccional.
5. Herencia de tablas.
6. Tipos de datos y operaciones geométricas.
7. Soporte para transacciones distribuidas. Permite a PostgreSQL integrase en un sistema distribuido for-
mado por varios recursos (p.ej, una base de datos PostgreSQL, otra Oracle, una cola de mensajes IBM MQ
JMS y un ERP SAP) gestionado por un servidor de aplicaciones donde el éxito (“commit”) de la transacción
globlal es el resultado del éxito de las transacciones locales.
Resumen tema 4
Un SGBD es un conjunto de programas que permite a los usuarios crear y mantener una DB. El propósito general
de dicho SGBD es definir, construir y manipular BD de una manera mas transparente, es decir a la vista humana
los archivos de alto nivel.
1. Control de redundancia.
2. Restricción de accesos no autorizados.
3. Almacenamiento de objetos y estructuras de datos de programas.
4. Inferencias en la BD mediante reglas de deducción.
5. Suministro múltiple de interfaces con los usuarios.
6. Recuperación de vínculos complejos entre los datos.
7. Cumplimiento de las restricciones de integridad.
8. Respaldo y recuperación.
• Función de descripción o de definición: Permite al diseñador de la base de datos crear las estructuras apro-
piadas para integrar adecuadamente los datos. Esta función se realiza mediante el lenguaje de descripción
de datos o DDL.
• Función de manipulación: Permite modificar y utilizar los datos de la base de datos. Se realiza mediante el
lenguaje de modificación de datos o DML
• Función de control: Mediante esta función los administradores poseen mecanismos para proteger las vi-
siones de los datos permitidas a cada usuario. El lenguaje que implementa esta función es el lenguaje de
control de datos o DCL.
40
Base de Datos
Autoevaluación
1. ¿Qué es un sistema de gestión de base de datos?
2. Dentro de las características deseables ¿Qué entiende por Control de redundancia?
3. Para que solo los usuarios de la base de datos de recursos humanos vean los sueldos de la organización de que
característica del SGBD me voy valer.
4. ¿Que característica del SGBD interviene implícitamente en lo cotidiano cuando en la oficina a las 9 de la maña-
na todos los usuarios se conectan con una misma base?
5. ¿Que característica del SGBD en una restricción de una tabla que si es menor de 17 años no me deje cargar el
número de la licencia de conducir?
6. Dentro de las características deseables ¿Cómo explicaría en que consiste la recuperación y respaldo?
7. ¿Cuáles son los lenguajes que utiliza el SGBD?
8. ¿Cuál es la función de la estructura multicapas del SGBD?
Investigación
1. Indague cuales son los SGBD mas usados.
2. Averigüe si todos son licenciados o hay alguno GNU.
3. Lea de Concepción y diseño de base datos del Modelo E/R al Modelo Relacional - Adoración de Miguel, Mario
Piattini. Ra-ma. Capitulo 2 Concepto y objetivos de los sistemas de base de datos.
Tema Nº 5
Usuarios de los gestores de base de datos
Intervienen (como ya se ha comentado) muchas personas en el desarrollo y manipulación de una base de datos.
Habíamos seleccionado cuatro tipos de usuarios (administradores/as, desarrolladores, diseñadores/as y usuarios/
as). Ahora vamos a desglosar aún más esta clasificación.
Lógicamente son los profesionales que definen y preparan la base de datos. Pueden ser:
• Directivos/as. Organizadores y coordinadores del proyecto a desarrollar y máximos responsables del mis-
mo. Esto significa que son los encargados de decidir los recursos que se pueden utilizar, planificar el tiempo
y las tareas, la atención al usuario y de dirigir las entrevistas y reuniones pertinentes.
• Analistas. Son los encargados de controlar el desarrollo de la base de datos aprobada por la dirección.
Normalmente son además los diseñadores de la base de datos (especialmente de los esquemas interno y
conceptual) y los directores de la programación de la misma.
• Administradores/as de las bases de datos. Encargados de crear el esquema interno de la base de datos, que
incluye la planificación de copia de seguridad, gestión de usuarios y permisos y creación de los objetos de
la base de datos.
• Equipo de mantenimiento. Encargados de dar soporte a los usuarios en el trabajo diario (suelen incorporar
además tareas administrativas como la creación de copias de seguridad por ejemplo o el arreglo de proble-
mas de red por ejemplo).
41
Analista de Sistemas
Usuarios:
• Expertos/as. Utilizan el lenguaje de manipulación de datos (DML) para acceder a la base de datos. Son usua-
rios que utilizan la base de datos para gestión avanzada de decisiones.
• Habituales. Utilizan las aplicaciones creadas por los desarrolladores para consultar y actualizar los datos.
Son los que trabajan en la empresa a diario con estas herramientas y el objetivo fundamental de todo el
desarrollo de la base de datos.
• Ocasionales. Son usuarios que utilizan un acceso mínimo a la base de datos a través de una aplicación que
permite consultar ciertos datos. Serían por ejemplo los usuarios que consultan el horario de trenes a través
de Internet.
1. El nivel interno es el más cercano a la máquina. Es una representación a bajo nivel de la BD en la que se de-
fine la forma en la que los datos se almacenan físicamente en la máquina. Se definen características como
los dispositivos en donde se almacenan los datos, el espacio que se reserva, las estrategias de acceso, la
creación de ficheros de índices, etc. Es dependiente de la máquina en que se vaya a instalar la BD, del sis-
tema operativo que exista, etc.
2. El nivel conceptual tiene un esquema conceptual, que describe la estructura de los datos que van a ser
almacenados en la base de datos. El esquema conceptual esconde los detalles del almacenamiento físico
y se concentra en describir entidades, tipos de datos, relaciones, operaciones de usuario y restricciones.
3. El nivel externo o nivel de vista incluye varios esquemas externos o vistas de usuario. Cada esquema ex-
terno describe la parte de la base de datos en la que está interesado un grupo de usuarios en particular y
esconde el resto de la base de datos para esos usuarios. La información se manipula sin saber cómo está
almacenada internamente (nivel interno) ni su organización (nivel conceptual).
Existirán muchas vistas externas distintas, cada una formada por una representación más o menos abstracta
(registros y campos lógicos) de alguna parte de la base de datos total, y existirá sólo una vista conceptual forma-
da por una representación igualmente abstracta de la base de datos en su totalidad (hay que recordar que a la
mayoría de los usuarios no les interesará toda la base de datos, sino sólo una porción limitada de ella). De manera
similar, habrá sólo una vista interna, la cual representará a toda la base de datos tal como está almacenada física-
mente.
El Nivel Externo
El nivel externo es el más cercano a los usuarios, es decir, es el que se ocupa de la forma en la que los usuarios
perciben los datos. El nivel externo es del usuario individual. Estos usuarios pueden ser o bien programadores de
aplicaciones o usuarios finales con conocimientos muy variables de informática. El administrador de la base de
datos es un caso especial (también debe interesarse por los demás niveles de la arquitectura).
42
Base de Datos
El aspecto importante de todos estos lenguajes es que deben incluir un sublenguaje de datos, es decir, un sub-
conjunto del lenguaje total que se ocupe de manera específica de los objetos y operaciones de la base de datos.
Se dice que el sublenguaje de datos (DSL ‘data sublanguage’) está embebido (o inmerso) dentro del lenguaje
anfitrión correspondiente. Este último se encarga de varios aspectos no relacionados con la base de datos, como
por ejemplo variables locales (temporales), operaciones de cálculo, lógica condicional, etc. Un sistema dado pue-
de permitir el empleo de varios lenguajes anfitriones y varios sublenguajes de datos. Un sublenguaje de datos en
particular cuyo uso es posible en casi todos los sistemas relacionales actuales es el lenguaje SQL.
En principio, cualquier sublenguaje de datos es en realidad una combinación de por lo menos dos lenguajes
subordinados: un lenguaje de definición de datos (DDL ‘data definition language’), con el cual es posible definir
o declarar los objetos de la base de datos, y un lenguaje de manipulación de datos (DML, ‘data manipulation
language’) con el que es posible manipular o procesar dichos objetos. Como ya se ha dicho, al usuario individual
(en general), sólo le interesará una porción de la base de datos total; por añadidura, la forma como ese usuario
percibe dicha porción casi siempre será un tanto abstracta comparada con el almacenamiento físico de los datos.
El término ANSI/SPARC para la vista individual de un usuario es vista externa. Así, una vista externa es el conteni-
do de la base de datos tal como lo percibe algún usuario determinado (es decir, para ese usuario la vista externa
es la base de datos). Por ejemplo, un usuario del departamento de personal podría contemplar la base de datos
como un conjunto de ocurrencias de registros de departamento unido a un conjunto de ocurrencias de registros
de proveedor y de parte vistas por los usuarios del departamento de compras).
Toda vista externa se define mediante un esquema externo, que consiste básicamente en definiciones de cada
uno de los diversos tipos de registros externos en esa vista externa. El esquema externo se escribe con la porción
DDL del sublenguaje de datos del usuario (por ello se le denomina a ese DDL en ocasiones como DDL externo).
Por ejemplo, el tipo de registro externo de empleado puede definirse como un campo de número de empleado
de seis caracteres unido a un campo de salario de cinco dígitos, etc. Además, debe haber una definición de la
correspondencia entre el esquema externo y el esquema conceptual subyacente.
El Nivel Conceptual
El nivel conceptual es un nivel de mediación entre el nivel interno y externo. La vista conceptual es una represen-
tación de toda la información contenida en la base de datos, también (como en el caso de una vista externa) en
una forma un tanto abstracta si se compara con el almacenamiento físico de los datos.
Además, puede ser muy diferente de la forma como percibe los datos cualquier usuario individual. A grandes
rasgos, la vista conceptual debe ser un panorama de los datos “tal como son”, y no como por fuerza los perciben
los usuarios debido a las limitaciones del lenguaje o el equipo específicos utilizados, por ejemplo.
La vista conceptual se compone de varias ocurrencias de varios tipos de registro conceptual. Por ejemplo, puede
estar formada por un conjunto de ocurrencias de registros de departamento unido un conjunto de ocurrencias
de registro de empleado y a un conjunto de ocurrencias de registros de proveedor y a un conjunto de ocurrencia
de registros de parte... Un registro conceptual no es por necesidad idéntico a un registro externo, por un lado, ni
a un registro almacenado, por el otro.
La vista conceptual se define mediante un esquema conceptual, el cual incluye definiciones de cada uno de los
tipos de registro conceptual. El esquema conceptual se escribe utilizando otro lenguaje de definición de datos, el
DDL conceptual. Si ha de lograrse la independencia de los datos, esas definiciones en DDL conceptual no debe-
rán implicar consideraciones de estructura de almacenamiento o de técnica de acceso. Si el esquema conceptual
se hace en verdad independiente de los datos de esta manera, entonces los esquemas externos, definidos en
términos del esquema conceptual, serán por fuerza también independientes de los datos.
43
Analista de Sistemas
Así pues, la vista conceptual es una vista del contenido total de la base de datos, y el esquema conceptual es
una definición de esa vista. No obstante, sería engañoso sugerir mucho más que una simple unión de todos los
esquemas externos individuales, con la posible adición de algunas verificaciones sencillas de integridad y seguri-
dad. Con todo, parece evidente que los sistemas del futuro llegarán a mantener niveles conceptuales mucho más
complejos.que el esquema conceptual es sólo un conjunto de definiciones similar a las sencillas definiciones de
registros encontradas por ejemplo en un programa en Cobol. Es de esperar que las definiciones en el esquema
conceptual incluyan muchas características más, como son las verificaciones de seguridad y de integridad. Al-
gunos expertos podrían llegar a sugerir que el objetivo primordial del esque conceptual es describir la empresa
en su totalidad (no sólo los datos en sí, sino también la forma como se utilizan: cómo fluyen de un punto a otro
dentro de la empresa, qué se hace con ellos en cada punto, qué controles de auditoría o de otro tipo deben apli-
carse en cada punto, etc. Debe hacerse hincapié en que en ningún sistema actual es posible mantener realmente
un nivel conceptual que se aproxime siquiera a ese grado de complejidad; en casi todos los sistemas existentes el
esquema conceptual no es mucho más que una simple unión de todos los esquemas externos individuales, con
la posible adición de algunas verificaciones sencillas de integridad y seguridad. Con todo, parece evidente que
los sistemas del futuro llegarán a mantener niveles conceptuales mucho más complejos.
El Nivel interno
El tercer nivel de la arquitectura es el nivel interno. La vista interna es una representación de bajo nivel de toda la
base de datos; se compone de varias ocurrencias de varios tipos de registro interno. Este último término es el que
utiliza ANSI/SPARC para referirse a la construcción que hemos estado llamando registro almacenado. La vista inter-
na, por tanto, todavía está a un paso del nivel físico, ya que no manejo registros físicos (llamados también páginas
o bloques), ni otras consideraciones específicas de los dispositivos como son los tamaños de cilindros o de pistas.
La vista interna se define mediante el esquema interno, el cual no sólo define los diversos tipos de registros alma-
cenados sino también especifica que índices hay, cómo se representan los campos almacenados, en qué secuen-
cia física se encuentran los registros almacenados, etc. El esquema interno se escribe con otro lenguaje más de
definición de datos, el DDL interno.
En algunas situaciones excepcionales podría permitirse a los programas de aplicación operar directamente en el
nivel interno en vez de hacerlo en el nivel externo. Esta práctica no es recomendable ya que representa un riesgo
para la seguridad (ya que pasan por alto las verificaciones de seguridad) y para la integridad (hace lo mismo), y el
programa será en extremo dependiente de los datos; sin embargo, en ciertos casos puede ser la única forma de
obtener la función o desempeño deseados, del mismo modo como el usuario de un lenguaje de programación de
alto nivel puede verse obligado en ocasiones a descender al lenguaje ensamblador para satisfacer ciertos objetivos.
44
Base de Datos
Algunos sistemas permiten expresar la definición de una vista externa en términos de otras (de hecho, a través de
una correspondencia externa/externa), en vez de requerir siempre una definición explícita de la correspondencia
respecto al nivel conceptual, cosa que resulta útil si existe una relación muy grande entre varias vistas externas.
Los sistemas relacionales en particular casi siempre permiten hacer esto.
45
Analista de Sistemas
La arquitectura completa (Gráfico 16) está dividida en dos secciones, la zona de definición de datos y la de mani-
pulación. Esa arquitectura muestra las funciones realizadas por humanos y las realizadas por programas.
En la fase de definición, una serie de interfaces permiten la creación de los metadatos que se convierten en el eje
de esta arquitectura. La creación de la base de datos comienza con la elaboración del esquema conceptual reali-
zándola el administrador de la empresa (actualmente es el diseñador de base de datos, pero ANSI no lo llamó así).
Ese esquema se procesa utilizando un procesador del esquema conceptual (puede utilizarse una herramienta
CASE) que lo convierte en los metadatos (interfaz 2).
La interfaz 3 permite mostrar los datos del esquema conceptual a los otros dos administradores: el administrador
de la base de datos y el de aplicaciones (el desarrollador). Mediante esta información construyen los esquemas
internos y externos mediante las interfaces 4 y 5 respectivamente, los procesadores de estos esquemas almace-
nan la información correspondiente a estos esquemas en los metadatos (interfaces 6 y 7).
En la fase de manipulación el usuario puede realizar operaciones sobre la base de datos usando la interfaz 8 (nor-
malmente una aplicación) esta petición es transformada por el transformador externo/conceptual que obtiene
el esquema correspondiente ayudándose también de los metadatos (interfaz 9). El resultado lo convierte otro
transformador en el esquema interno (interfaz 10) usando también la información de los metadatos (interfaz 11).
Finalmente del esquema interno se pasa a los datos usando el último transformador (interfaz 12) que también
accede a los metadatos (interfaz 13) y de ahí se accede a los datos (interfaz 14). Para que los datos se devuelvan al
usuario en formato adecuado para él se tiene que hacer el proceso contrario (observar el Gráfico).
Fase de creación
1. El analista o diseñador (equivalente a un administrador de esquemas conceptuales del modelo ANSI) utili-
za una herramienta CASE para crear el esquema conceptual.
2. El administrador de la base de datos (DBA) crea el esquema interno utilizando las herramientas de defini-
ción de datos del SGBD y herramientas CASE.
3. Los desarrolladores utilizan las aplicaciones necesarias para generar el esquema externo mediante herra-
mientas de creación de aplicaciones apropiadas y herramientas CASE.
Fase de manipulación
4. EL Sistema Operativo accede al almacenamiento físico correspondiente y devuelve los datos al SGBD.
5. El SGBD transforma los datos internos en datos conceptuales y los entrega a la aplicación.
6. La aplicación muestra los datos habiéndolos traducido en su forma externa. Así los ve el usuario.
46
Base de Datos
Actualmente casi todos los sistemas gestores de base de datos poseen también la misma idea operacional (la
misma forma de funcionar con el cliente) en la que se entiende que la base de datos se almacena en un servidor
y hay una serie de clientes que pueden acceder a los datos del mismo. Las posibilidades son:
• Estructura Cliente-Servidor. Estructura clásica, la base de datos y su SGBD están en un servidor al cual acce-
den los clientes. El cliente posee software que permite al usuario enviar instrucciones al SGBD en el servidor
y recibir los resultados de estas instrucciones. Para ello el software cliente y el servidor deben utilizar soft-
ware de comunicaciones en red.
• Cliente multi-servidor. Ocurre cuando los clientes acceden a datos situados en más de un servidor. También
se conoce esta estructura como base de datos distribuida. El cliente no sabe si los datos están en uno o más
servidores, ya que el resultado es el mismo independientemente de dónde se almacenan los datos. En esta
estructura hay un servidor de aplicaciones que es el que recibe las peticiones y el encargado de traducirlas
a los distintos servidores de datos para obtener los resultados.
• Cliente-Servidor con facilidades de usuario-Servidor de base de datos. Se trata de una forma de conexión
por el que los clientes no conectan directamente con la base de datos sino con un intermediario (normal-
mente un Servidor Web) que tiene una mayor facilidad para comunicarse con los usuarios. Ese servidor se
encarga de traducir lo que el cliente realiza a una forma entendible por la base de datos.
• El servidor presenta a todos sus clientes una interfaz única y bien definida.
• El cliente no necesita conocer la lógica del servidor, sólo su interfaz externa.
• El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico en el que se encuentra,
ni de su sistema operativo.
• Los cambios en el servidor implican pocos o ningún cambio en el cliente.
Como ejemplos de clientes pueden citarse interfaces de usuario para enviar comandos a un servidor, APIs (Apli-
cation Program Interface) para el desarrollo de aplicaciones distribuidas, herramientas en el cliente para acceder
a servidores remotos (por ejemplo, servidores de SQL) o aplicaciones que solicitan acceso a servidores para algu-
nos servicios.
Como ejemplos de servidores pueden citarse servidores de ventanas como X-windows, servidores de archivos
como NFS, servidores para el manejo de bases de datos (como los servidores de SQL), servidores de diseño y ma-
nufactura asistidos por computador, etc.
47
Analista de Sistemas
48
Base de Datos
Primero, el usuario crea la consulta. Puede ser una consulta creada en el instante o puede ser una consulta pre-
programada o almacenada anteriormente. Después la aplicación cliente convierte la consulta al SQL usado por
el servidor de la base de datos y la envía a través de la red al servidor. El servidor verifica que el usuario tiene los
derechos de seguridad apropiados a la consulta de datos requerida. Si es así, verifica la consulta y envía los datos
apropiados de vuelta al cliente. La aplicación cliente recibe la respuesta y le da formato para presentarlo al usuario.
Finalmente, el usuario ve la respuesta en la pantalla y puede manipular los datos, o modificar la consulta y empe-
zar el proceso de nuevo.
49
Analista de Sistemas
Tipos de servidores
Podemos dividir los servidores en dos clases: iterativos y concurrentes.
Un servidor iterativo realiza los siguientes pasos:
1. Espera que llegue una consulta de un cliente.
2. Procesa la consulta.
3. Envía la respuesta al cliente que envió la consulta.
4. Vuelve al estado inicial.
El problema del servidor iterativo es el paso 2. Durante el tiempo en el que el servidor está procesando la consul-
ta, ningún otro cliente es servido.
La ventaja del servidor concurrente es que el servidor ejecuta un nuevo proceso para manejar cada consulta.
Cada cliente tiene su “propio” servidor. Asumiendo que el sistema operativo permite la multiprogramación, clien-
tes múltiples y servicio concurrente.
Los sistemas servidores de transacciones, también llamados sistemas servidores de consultas, proporcionan una
interfaz a través de la cual los clientes pueden enviar peticiones para realizar una acción que el servidor ejecutará
y cuyos resultados se devolverán al cliente. Los usuarios pueden especificar sus peticiones con SQL o mediante
la interfaz de una aplicación utilizando un mecanismo de llamadas a procedimientos remotos (RPC: ‘Remote
Procedure Call’).
Los sistemas servidores de datos permiten que los clientes puedan interaccionar con los servidores realizando
peticiones de lectura o modificación de datos en unidades tales como archivos o páginas. Por ejemplo, los servi-
dores de archivos proporcionan una interfaz de sistema de archivos a través de la cual los clientes pueden crear,
modificar, leer y borrar archivos. Los servidores de datos de los sistemas de bases de datos ofrecen muchas más
funcionalidades; soportan unidades de datos de menor tamaño que los archivos, como páginas, tuplas u objetos.
50
Base de Datos
Proporcionan facilidades de indexación de los datos, así como facilidades de transacción, de modo que los datos
nunca se quedan en un estado inconsistente si falla una máquina cliente o un proceso.
No obstante, hay que destacar que la distribución de estos porcentajes no es uniforme en la gama de aplicaciones.
Por ejemplo, IBM sigue siendo líder en el área de los mainframes, especialmente con su línea 17 OS/390 y AS/400.
Por el contrario, si quitamos los mainframes, Oracle lidera el mercado con una gran ventaja. Según un último
estudio del Gartner Group, la situación en mayo de 2002 sigue siendo hegemónica para Oracle, IBM y Microsoft
[Nicolett 2002]. La gama de SGBD de Informix se ha venido a menos en cuota de mercado. De hecho en 2001, fue
absorbida por IBM, para que ésta aumentara su cuota en las plataformas Unix y Windows [Burton 2001]. Además,
si sumamos los SGBD de IBM actuales, incluyendo los absorbidos de Informix, tenemos la mayor cuota, un 34,7%
en 2001. No obstante, a medio plazo ocurrirá que muchos de los usuarios de Informix migren a DB2. Más aún si
tenemos en cuenta que IBM ha intentado aumentar su presencia mediante la potenciación de las versiones UNIX
y NT de su DB2, que han crecido considerablemente en los últimos años. Si atendemos al porcentaje de mercado
de los sistemas de gestión de bases de datos relacionales, podemos observar todavía una mayor concentración:
Considerando sólo los sistemas relacionales, mientras sobre sistemas operativos Windows, Microsoft es el líder
en 2001 con el 39.9% del mercado (respecto a un 34.0% de Oracle), en sistemas operativos UNIX, Oracle es clara-
mente predominante, con un 63.3%.
51
Analista de Sistemas
La excesiva concentración del mercado plantea serias dudas sobre la implantación del nuevo SQL3, porque las
compañías no tienen excesivo interés por hacer su SQL fácilmente portable a otros sistemas, con el riesgo de
poder perder clientes. No obstante, parte del nuevo SQL3 ha ido recogiendo los estándares ‘de facto’ que estas
mismas compañías han ido introduciendo, como el soporte para los objetos grandes incorporados (BLOB y LOB)
o los triggers, ambas extensiones presentes en el sistema emblema de Oracle, por ejemplo.
La incorporación de estas y otras extensiones de SQL3 (especialmente las orientadas a objeto y las consultas
recursivas) a la mayoría de sistemas será un proceso lento. De hecho, hoy en día, ningún sistema es todavía com-
pletamente compatible con todas las características de SQL2. El tema parece estar mucho peor para incorporar
las instrucciones de control y de definición de rutinas del SQL3 (CASE, IF, THEN, ELSE, ELSEIF, LOOP, WHILE, REPEAT,
FOR, ITERATE, LEAVE), ya que la mayoría de sistemas incorporan su propia sintaxis para los procedimientos, arras-
trada de sus lenguajes 4GL.
Resumen tema 5
Los profesionales que definen y preparan la base de datos. Pueden ser:
1. Directivos/as. Organizadores y coordinadores del proyecto a desarrollar y máximos responsables del mismo.
2. Analistas. Son los encargados de controlar el desarrollo de la base de datos aprobada por la dirección.
3. Administradores/as de las bases de datos. Encargados de crear el esquema interno de la base de datos, que
incluye la planificación de copia de seguridad, gestión de usuarios y permisos y creación de los objetos de
la base de datos.
4. Desarrolladores/as o programadores/as. Encargados de la realización de las aplicaciones de usuario de la
base de datos.
5. Equipo de mantenimiento. Encargados de dar soporte a los usuarios en el trabajo diario.
Usuarios:
1. Expertos/as. Utilizan el lenguaje de manipulación de datos (DML) para acceder a la base de datos. Son
usuarios que utilizan la base de datos para gestión avanzada de decisiones.
2. Habituales. Utilizan las aplicaciones creadas por los desarrolladores para consultar y actualizar los datos
3. Ocasionales. Son usuarios que utilizan un acceso mínimo a la base de datos a través de una aplicación que
permite consultar ciertos datos.
Fase de creación
• El analista o diseñador crea el esquema conceptual.
• El administrador de la base de datos (DBA) crea el esquema interno.
• Los desarrolladores utilizan las aplicaciones necesarias para generar el esquema externo.
52
Base de Datos
Fase de manipulación
• El usuario realiza una consulta utilizando el esquema externo.
• Las aplicaciones las traducen a su forma conceptual.
• El esquema conceptual es traducido por la SGBD a su forma interna.
• EL Sistema Operativo accede al almacenamiento físico correspondiente y devuelve los datos al SGBD.
• El SGBD transforma los datos internos en datos conceptuales y los entrega a la aplicación.
• La aplicación muestra los datos habiéndolos traducido en su forma externa. Así los ve el usuario.
Estructuras operacionales
Actualmente casi todos los sistemas gestores de base de datos poseen también la misma idea operacional las
posibilidades son:
• Estructura Cliente-Servidor. Estructura clásica, la base de datos y su SGBD están en un servidor al cual acce-
den los clientes.
• Cliente multi-servidor. Ocurre cuando los clientes acceden a datos situados en más de un servidor.
• Cliente-Servidor con facilidades de usuario-Servidor de base de datos. Se trata de una forma de conexión
por el que los clientes no conectan directamente con la base de datos sino con un intermediario (normal-
mente un Servidor Web) que tiene una mayor facilidad para comunicarse con los usuarios.
Autoevaluación
1. Me proponen un trabajo para dar de alta usuarios en la base, realizar backups, controlar la performance y crear
restricciones. ¿Qué puesto es?
2. Cuando no me puedo conectar a una base de datos ¿a quien debería llamar?
3. ¿En qué se diferencian básicamente los usuarios de base de datos?
4. ¿Existe un estándar para los gestores de base de datos? Fundamentar.
5. En qué consiste el proceso de creación de una base de dato propuesta por ANSI.
6. En qué consiste el proceso de manipulación de una base de dato propuesta por ANSI.
7. Cuando saco dinero de un cajero automático, la operación de salida y actualización de saldo se hace en una
base de datos centralizada que no está en el mismo cajero. ¿Qué tipo de estructura operacional está en juego?
8. Cuando modifico mis datos en la pagina del banco (home banking) ¿Qué tipo de estructura operacional está
en juego?
Investigación
1. Investigue sobre herramientas case que ayuden a la creación de el modelo conceptual.
2. Sondee en paginas de ofertas de trabajo e investigue los requerimientos en funciones para el puedo de DBA.
3. Lea de Sistemas de base de datos – conceptos fundamentales – Elmasri - Navathe. Pearson educación.
Capitulo 1 Base de datos y usuarios.
53
Analista de Sistemas
Tema Nº 6
Diseño de base de datos
Introducción general al proceso de diseño de la base, para un mejor entendimiento los pasos se mostraran en un
orden dado, que en el desarrollo de los próximos módulos los vamos a modificar. Hecha esta aclaración podemos
seguir con el proceso de diseño de base de datos.
No sólo la tecnología es suficiente para que los sistemas de información de hoy en día funcionen mejor que los
de hace unos años. Asociadas a las tecnologías suelen asociarse unas metodologías, que intentan sacar provecho
de las primeras. Utilizar un sistema de gestión de bases de datos relacional no es por sí solo una garantía de que
el sistema de información que se construya utilizándolo vaya a funcionar bien. De hecho, dada la simplicidad del
modelo relacional y de algunos SGBR para ordenadores personales, existen verdaderos desastres realizados por
no profesionales funcionando en pequeñas y grandes organizaciones, causando casi más problemas de los que
resuelven.
A continuación se detallan los pasos usuales que se suelen utilizar a la hora de diseñar una base de datos. Gene-
ralmente se habla de las siguientes etapas: planificación-definición del sistema, análisis de requerimientos, dise-
ño conceptual, elección de SGBD/modelo, diseño lógico, diseño físico, implementación y ajuste de rendimiento.
Para las primeras tres etapas los pasos suelen ser bastante coincidentes (aunque con herramientas diferentes)
para las bases de datos relacionales y las objetuales, notándose más la diferencia en las cuatro últimas etapas.
1. Planificación y definición del sistema: aunque a veces estas fases se engloban en la siguiente fase de análisis de
requerimientos, consisten en determinar cuáles van a ser las fases del diseño de la base de datos y dar una visión
global del sistema.
2. Análisis de requerimientos: En esta fase de un proyecto, el mayor objetivo es proporcionar una imagen más
clara del sistema de información cuyos datos se quiere informatizar. Para ello se deben definir cuáles son los
componentes concretos del sistema de información (usuarios, contexto, etc.), definir qué se espera que el sistema
haga y qué datos en concreto se requerirán para su funcionamiento.
3. Diseño conceptual: Una vez que se tiene la especificación inicial del sistema, un profesional (o un grupo) ex-
perto en bases de datos o un analista puede empezar a realizar el esquema conceptual del sistema. Éste es una
visión de alto nivel del sistema que registra qué información se va a almacenar, qué formato va a tener y cómo se
relaciona con otra información. Este esquema conceptual también especifica los derechos de acceso de grupos y
programas. Para las bases de datos relacionales se suele utilizar el modelo entidad relación para proporcionar una
visión conjunta del sistema. En algunos casos, sobretodo si los datos son muy heterogéneos, se puede decidir
realizar el modelo utilizando lenguajes de modelado orientados a objetos como UML.
4. Elección de SGBD: No es una fase realmente, porque este paso se suele pensar antes del desarrollo de una base
de datos en concreto o se decide para ser utilizado con varios fines. No obstante, si la organización dispusiera de
varios, o de ninguno, con lo que tendría que elegir, esta elección se limita por muchas razones: monetarias, cono-
cimientos disponibles de los profesionales informáticos, decisiones de gestión y un número importante de otros
factores, específicos a cada organización. De todos los sistemas disponibles, se intentará encontrar el sistema más
apropiado para la base de datos que se desea diseñar. Las siguientes fases se podrán realizar ya acordes con las
capacidades y limitaciones del sistema elegido.
5. Diseño lógico: Durante esta fase del proceso, se toma el esquema producido en el diseño conceptual y se con-
vierte al modelo sobre el que trabaja el SGBD. Esta fase nos acerca ya al sistema final, ya que se tiene un modelo
que se adapta al SGBD donde funcionará.
6. Diseño Físico: En esta fase, se centran los esfuerzos en la implementación práctica de la base de datos. En esta
fase se incluyen las pruebas de hardware, el cálculo del nivel de estrés (carga) que el sistema puede aguantar. Esto
54
Base de Datos
es importante, especialmente si los datos van a accederse frecuentemente y pueden existir picos. Además los
discos que albergan los datos más usados tienen un acceso más regular y por tanto aumenta su probabilidad de
fallo. Este tipo de información, junto con otra información crítica, debe mantenerse distribuida y salvaguardada
mediante el uso de mirrors o de organizaciones de pilas de discos. En esta fase también se estudian los índices y
otras estructuras de organización física más apropiadas para optimizar el rendimiento.
7. Implementación: una vez realizados todos los pasos anteriores, debidamente documentados, se puede pasar
a implementar el sistema. Los detalles de implementación dependen en gran medida del SGBD, de los lenguajes
de programación de las aplicaciones, de una serie de estándares y protocolos que puedan estar utilizando tanto
el SGBD como las aplicaciones y otros muchos factores. Cuanto más detallada y clara es la especificación inicial,
más rápida será la implementación. Al contrario, si las primeras fases se han descuidado o han venido marcadas
por las prisas, la fase de implementación se alargará y el sistema estará lleno de parches y de modificaciones so-
bre modificaciones, degradándose su eficacia y su seguridad. Además, las modificaciones, como en casi cualquier
desarrollo de un proyecto, son más costosas cuanto más tarde se hagan.
8. Conversión y carga de datos y pruebas: en el caso de una migración se debe hacer una conversión de los datos
existente en fuentes de información previas o anteriores a la base de datos que se acaba de implementar. Si no
existe migración se deberá realizar una primera carga de datos ficticios o reales para realizar pruebas más com-
pletas del sistema.
9. Ajuste de rendimiento: Una vez el sistema comienza a estar operativo y se tienen datos (aunque en esta fase
todavía pueden ser ficticios), se puede comenzar a ajustar el rendimiento, utilizando y simulando las cargas que
se prevén en el funcionamiento normal del sistema.
Una vez que la base de datos adquiere un volumen de datos real importante (ya sea por migración de otra base
de datos, la cual se debería diseñar cuidadosamente, o por inserción de nuevos datos), es cuando realmente se
empieza a evaluar si las decisiones de diseño fueron correctas. Evidentemente, casi todos los sistemas se revisan
y se amplían, pero estas modificaciones deben seguir los pasos anteriores a partir de aquél que haya motivado
el cambio o extensión (requerimientos, conceptual, lógico, físico o de rendimiento). En estos cambios hay que
tener en cuenta los costes a medio plazo, ya que pequeños retoques baratos a corto plazo pueden no resolver el
problema a medio y largo plazo.
Modelo de datos
Los modelos se utilizan en todo tipo de ciencias. Su finalidad es la de simbolizar una parte del mundo real de for-
ma que sea más fácilmente manipulable. En definitiva es un esquema mental (conceptual) en el que se intentan
reproducir las características de una realidad específica.
En el caso de los modelos de datos, lo que intentan reproducir es una información real que deseamos almacenar
en un sistema informático.
Se denomina esquema a una descripción específica en términos de un modelo de datos. El conjunto de datos
representados por el esquema forma la base de datos.
Gráfico 17 - Clasificación de los modelos de datos.
55
Analista de Sistemas
En Gráfico 17 aparecen los distintos esquemas que llevan desde el mundo real a la base de datos física. Como se
ve aparecen varios esquemas intermedios. Los que están más a la izquierda se alejan más de las características
físicas. Los elementos de ese esquema son:
1. Mundo real. Contiene la información tal cual la percibimos como seres humanos. Es el punto de partida.
2. Esquema conceptual. Representa el modelo de datos de forma independiente del DBMS que se utilizará.
3. Esquema canónico (o de base de datos). Representa los datos en un formato más cercano al de la maquina.
4. Esquema interno. Representa los datos según el modelo concreto de un sistema gestor de bases de datos
(por ejemplo Oracle).
5. Base de datos física. Los datos tal cual son almacenados en disco.
Modelos conceptuales
Modelo de datos entidad-relación (MER)
Está basado en una percepción del mundo real que consta de una colección de objetos básicos, llamados entida-
des, y de relaciones entre estos objetos.
• Una entidad es una «cosa» u «objeto» en el mundo real que es distinguible de otros objetos.
• Los atributos describen propiedades que posee cada miembro de un conjunto de entidades.
• Una relación es una asociación entre varias entidades.
56
Base de Datos
Gráfico 18
Modelo entidad relación
Modelo orientado a objetos
Desde la aparición de la programación orientada a objetos (POO u OOP) se empezó a pensar en bases de datos
adaptadas a estos lenguajes. La programación orientada a objetos permite cohesionar datos y procedimientos,
haciendo que se diseñen estructuras que poseen datos (atributos) en las que se definen los procedimientos (ope-
raciones) que pueden realizar con los datos. En las bases orientadas a objetos se utiliza esta misma idea.
A través de este concepto se intenta que estas bases de datos consigan arreglar las limitaciones de las relaciona-
les. Por ejemplo el problema de la herencia (el hecho de que no se puedan realizar relaciones de herencia entre
las tablas), tipos definidos por el usuario, disparadores (triggers) almacenables en la base de datos, soporte multi-
media. Se supone que son las bases de datos de tercera generación (la primera fue las bases de datos en red y la
segunda las relacionales), lo que significa que el futuro parece estar a favor de estas bases de datos. Pero siguen
sin reemplazar a las relacionales, aunque son el tipo de base de datos que más está creciendo en los últimos años.
Su modelo conceptual se suele diseñar en UML y el lógico actualmente en ODMG (Object Data Management
Group, grupo de administración de objetos de datos, organismo que intenta crear estándares para este modelo).
Gráfico 19
Modelo orientado a objetos
57
Analista de Sistemas
Gráfico 20
Modelo semántico.
Modelos Lógicos
Modelo relacional
El modelo relacional para la gestión de una base de datos es un modelo de datos basado en la lógica de predi-
cados y en la teoría de conjuntos. Es el modelo más utilizado en la actualidad para modelar problemas reales y
administrar datos dinámicamente.
58
Base de Datos
Modelo jerárquico
Era utilizado por los primeros SGBD, desde que IBM lo definió para su IMS (Information Management System,
Sistema Administrador de Información) en 1970. Se le llama también modelo en árbol debido a que utiliza una
estructura en árbol para organizar los datos.
La información se organiza con un jerarquía en la que la relación entre las entidades de este modelo siempre es
del tipo padre / hijo. De esta forma hay una serie de nodos que contendrán atributos y que se relacionarán con
nodos hijos de forma que puede haber más de un hijo para el mismo padre (pero un hijo sólo tiene un padre).
Los datos de este modelo se almacenan en estructuras lógicas llamadas segmentos. Los segmentos se relacionan
entre sí utilizando arcos.
La forma visual de este modelo es de árbol invertido, en la parte superior están los padres y en la inferior los hijos.
Gráfico 22
Modelo jerárquico.
Este esquema está en absoluto desuso ya que no es válido para modelar la mayoría de problemas de bases de
datos.
Modelo de Red
Es un modelo que ha tenido una gran aceptación (aunque apenas se utiliza actualmente). En especial se hizo po-
pular la forma definida por Codasyl a principios de los 70 que se ha convertido en el modelo en red más utilizado.
El modelo en red organiza la información en registros (también llamados nodos) y enlaces. En los registros se
almacenan los datos, mientras que los enlaces permiten relacionar estos datos. Las bases de datos en red son
parecidas a las jerárquicas sólo que en ellas puede haber más de un padre.
En este modelo se pueden representar perfectamente cualquier tipo de relación entre los datos (aunque el Co-
dasyl restringía un poco las relaciones posibles), pero hace muy complicado su manejo.
59
Analista de Sistemas
Resumen tema 6
Modelo de datos
Los modelos se utilizan en todo tipo de ciencias. Su finalidad es la de simbolizar una parte del mundo real de for-
ma que sea más fácilmente manipulable. En definitiva es un esquema mental (conceptual) en el que se intentan
reproducir las características de una realidad específica.
En el caso de los modelos de datos, lo que intentan reproducir es una información real que deseamos almacenar
en un sistema informático.
Autoevaluación
1. ¿Qué entiende por modelo de datos?
2. ¿Cuál es la diferencia de los modelos conceptuales y lógicos?
3. ¿Qué es un modelo de entidad-relación?
4. ¿Qué es un modelo orientado a objetos?
5. ¿Explique un modelo orientado a objetos?
6. ¿Explique un modelo relacional?
7. ¿Explique un modelo de red?
8. ¿Explique un modelo Jerárquico?
Investigación
1. Investigue donde se usaba el modelo de red.
2. Averigüe cual de los modelos conceptúales cual es el más usado.
3. Lea de Sistemas de base de datos – conceptos fundamentales – Elmasri - Navathe. Pearson educación. Capitulo
2 Concepto y arquitectura de los sistemas de base de datos.
4. Lea de Sistemas de base de datos – conceptos fundamentales – Elmasri - Navathe. Pearson educación. Capitulo
10 Modelo de datos y sistemas convencionales.
60
Analista de Sistemas
Unidad 3
Tema Nº 7
Modelo entidad relación
Introducción
Fue ideado por Peter Chen en los años 1976 y 1977 a través de dos artículos. Se trata de un modelo que sirve para
crear esquemas conceptuales de bases de datos. De hecho es prácticamente un estándar para crear esta tarea.
Se le llama modelo E/R e incluso EI (Entidad / Interrelación). Sus siglas más populares son las E/R por qué sirven
para el inglés y el español.
Inicialmente (en la propuesta de Chen) sólo se incluían los conceptos de entidad, relación y atributos. Después se
añadieron otras propuestas (atributos compuestos, generalizaciones,...) que forman el llamado modelo entidad
relación extendido (se conoce con las siglas ERE)
Entidad
Se trata de cualquier objeto u elemento (real o abstracto) acerca del cual se pueda almacenar información en la
base de datos. Ejemplos de entidades son Pedro, la factura número 32456, el coche patente URS698.
Una entidad no es un propiedad concreta sino un objeto que puede poseer múltiples propiedades (atributos).
Conjunto de entidades
Las entidades que poseen las mismas propiedades forman conjuntos de entidades.
Ejemplos de conjuntos de entidades son los conjuntos: personas, facturas, coches,...
Gráfico 24 - Entidades.
En la actualidad se suele llamar entidad a lo que anteriormente se ha definido como conjunto de entidades. De
este modo hablaríamos de la entidad PERSONAS. Mientras que cada persona en concreto sería una ocurrencia o
un ejemplar de la entidad persona.
62
Base de Datos
Gráfico 25
Representación de la entidad persona.
Tipos de entidades.
• Regulares. Son las entidades normales que tienen existencia por sí mismas sin depender de otras. Su repre-
sentación gráfica es la indicada arriba
• Débiles. Su existencia depende de otras. Por ejemplo la entidad tarea laboral sólo podrá tener existencia si
existe la entidad trabajo. Las entidades débiles se presentan de esta forma:
Gráfico 26
Representación de entidad débil.
Relaciones
Gráfico 27
Ejemplo de relación.
63
Analista de Sistemas
Representación gráfica
La representación gráfica de las entidades se realiza con un rombo al que se le unen líneas que se dirigen a las
entidades, las relaciones tienen nombre (se suele usar un verbo). En el ejemplo anterior podría usarse como nom-
bre de relación, trabajar:
Gráfico 28
Ejemplo de relación
Gráfico 29
Relación Binaria o de grado 2
Gráfico 30
Relación Terciaria o de grado 3
Gráfico 31
Relación Doble
64
Base de Datos
Gráfico 32
Relación reflexiva o de grado 1
Papel o rol
Es la función que cada uno de los tipos de entidad realiza en la interrelación, el nombre del papel en el arco que
une a cada tipo de entidad con la interrelación.
Gráfico 33 – Papel o rol de una relación.
Correspondencia de cardinalidades
Dado un conjunto de relaciones en el que participan dos o más conjuntos de entidades, la correspondencia de
cardinalidad indica el número de entidades con las que puede estar relacionada una entidad dada. Dado un con-
junto de relaciones binarias y los conjuntos de entidades A y B, la correspondencia de cardinalidades puede ser:
• Uno a Uno: Una entidad de A se relaciona únicamente con una entidad en B y viceversa.
• Uno a varios: Una entidad en A se relaciona con cero o muchas entidades en B. Pero una entidad en B se
relaciona con una única entidad en A.
• Varios a Uno: Una entidad en A se relaciona exclusivamente con una entidad en B. Pero una entidad en B se
puede relacionar con 0 o muchas entidades en A.
• Varios a Varios: Una entidad en A se puede relacionar con 0 o muchas entidades en B y viceversa.
65
Analista de Sistemas
Ejemplificación:
Relación 1 a1
Gráfico 34 - correspondencia 1:1.
Relación uno a uno (1:1) el actor Darin actuó solo en El ecreto de sus ojos y no en Rocky ni en Titanic. Mientras
desde la vista película no solo actuo Darin, no Satallone ni Dicaprio. Lo mismo para los otros actores y películas,
solo le corresponde un actor por película y una película por actor.
Relación 1 a muchos
Relación uno a muchos (1:M) los animales vivíparos son el perro, el caballo y el gato, no es como el ejemplo ante-
rior de actor película en este cado Reproducción tiene más de un animal. Y a la inversa el caballo es vivíparo y no
ovíparo, la relación en este sentido es única.
66
Base de Datos
Gráfico 36 - correspondencia M:N.
Relación muchos a muchos (M:N) José trabaja en más de un proyecto, en los proyectos 1 y 2, pero no trabaja solo
en esos proyecto tiene colaboradores.
Cardinalidad
Indica el número de relaciones en las que una entidad puede aparecer. Se anota en términos de:
• Cardinalidad mínima. Indica el número mínimo de asociaciones en las que aparecerá cada ejemplar de la
entidad (el valor que se anota es de cero o uno)
• Cardinalidad máxima. Indica el número máximo de relaciones en las que puede aparecer cada ejemplar de
la entidad (puede ser uno o muchos)
Gráfico 37
Notación cardinalidades
mínimas y máximas.
67
Analista de Sistemas
Gráfico 38
Ejempo Cardinalidades
mínimas y máximas.
A veces en las líneas de la relación se indican roles. Los roles representan el papel que juega una entidad en una
determinada relación. Ejemplo:
Gráfico 39
Cardinalidades mínimas
y máximas y roles.
Gráfico 40 - Cardinalidades mínimas y máximas norma MPM1999.
68
Base de Datos
Atributos
Propiedad o característica de una entidad.
Una entidad particular es descrita por los valores de sus atributos:
Ejemplo: la entidad película tiene los atributos titulo, género, nacionalidad, año estreno.
Gráfico 41 – Entidad y atributos.
Clasificación de atributos
1. Simples o Compuestos
2. Almacenados o Derivados
3. Monovalorados o Multivalorados
4. Opcionales
Atributos Simples
Atributos simples: no son divisibles son atómicos.
Gráfico 42
Atributo simple.
Atributos Compuesto
Atributos compuestos: pueden dividirse en otros con significado propio.
Gráfico 43
Atributo compuesto.
69
Analista de Sistemas
Atributos Derivados
Valor calculado a partir de otra información ya existente (atributos, entidades relacionadas). Atributo edad deri-
vado del valor de otro atributo fecha_nacimiento.
Atributos Almacenados
Dato no calculado.
Atributos Monovalorado
El atributo sólo toma un valor para cada entidad.
fecha_naciminto [EMPLEADO]
año_estreno [PELICULA]
Atributos Multivalorado
El atributo toma más de un valor para la misma entidad.
teléfono [EMPLEADO]
Atributos Clave
Atributo Identificador Primario de un tipo de entidad es clave univoca para identificar dicha entidad.
Ej: Para la entidad ALUMNO el atributo DNI es univoco.
Atributo Identificador Alternativo de un tipo de entidad puede tener más de una clave univoca candidata o al-
ternativa.
Interno
Dominio
Numero de motor.
Numero de Chasis.
Atributo Identificador Compuesto de un tipo de entidad es un cuando está compuesto por más de un atributo
como clave univoca.
Ej: en una agencia de turismo el atributo paquete está compuesto por el hotel y los días. El paquete CAMCUN
- Hotel Suites Cancún Center – 7 días, es diferente al CAMCUN - Hotel Suites Cancún Center – 10 días. Son dos
paquetes diferentes.
70
Base de Datos
Gráfico 44 – Atributos notaciones.
Dominio
• Las distintas propiedades o características de un tipo de entidad o de interrelación toman valores para cada
ocurrencia de estos.
• El conjunto de los posibles valores que puede tomar una cierta característica se denomina dominio.
• Para saber si un valor pertenece a un dominio determinado comprendemos que cumple un predicado que
este lleva siempre asociado.
• Ej:el valor ‘ingles’ se toma del dominio Idiomas y cumple con el predicado de ser uno de los idiomas posibles
del conjunto { ‘frances’ ; ’ingles’ }
Resumen tema 7
Objetos del modelo
• Entidad
• Relación
• Atributo
• Dominio
Entidad
Entidad: objeto u elemento (real o abstracto) acerca del cual se pueda almacenar información en la base de datos.
Entidades Regulares. Son las entidades normales que tienen existencia por sí mismas sin depender de otras.
Entidades Débiles. Su existencia depende de otras.
Relación
Representan asociaciones entre entidades. Es el elemento del modelo que permite relacionar en sí los datos del
modelo.
71
Analista de Sistemas
Papel o rol: función que cada uno de los tipos de entidad realiza en la interrelación, el nombre del papel en el arco
que une a cada tipo de entidad con la interrelación.
Tipo de correspondencia: número máximo de ocurrencias de cada tipo de entidad que pueden intervenir en una
ocurrencia del tipo interrelación que se está tratando.
Cardinalidad: número de relaciones en las que una entidad puede aparecer. Se anota en términos de:
• Cardinalidad mínima. Indica el número mínimo de asociaciones en las que aparecerá cada ejemplar de la
entidad (el valor que se anota es de cero o uno)
• Cardinalidad máxima. Indica el número máximo de relaciones en las que puede aparecer cada ejemplar de
la entidad (puede ser uno o muchos)
Atributos
Propiedad o característica de una entidad.
Una entidad particular es descrita por los valores de sus atributos.
Clasificación de atributos.
1. Simples o Compuestos
2. Almacenados o Derivados
3. Monovalorados o Multivalorados
4. Opcionales
Dominio
El conjunto de los posibles valores que puede tomar una cierta característica se denomina dominio.
Autoevaluación.
Investigación
1. Indague los diferentes tipos de notaciones de MER.
2. Lea de Concepción y diseño de base datos del Modelo E/R al Modelo Relacional - Adoración de Miguel,
Mario Piattini. Ra-ma. Capitulo 8 Modelo entidad relación.
3. Lea de Organización de base de datos – James Martin. Prentice Hall. El capitulo 5 Entidades y Atributos.
72
Base de Datos
Tema Nº 8
Modelo entidad relación extendido
En el modelo entidad relación extendido aparecen nuevos tipos de relaciones. Son las relaciones ISA (es un) y las
entidades débiles.
La diferencia fundamental es que en la generalización cada ejemplar de la superentidad está relacionado seguro
al menos con un ejemplar de una subentidad. Es lo que se conoce como jerarquía total (se explica más adelante).
De modo que en este caso la cardinalidad de la superentidad en la relación ISA será (1,1) mientras que en general
en las subentidades será de 0,1 (hay casos de (0,n),(1,1) o (1,n) pero son muy raros).
En la especialización sin embargo, puede haber ejemplares de la superentidad que no se realización con ninguna
subentidad (jerarquía parcial) y por ello se marca una sistemas gestores de bases de datos gestión y diseño de
bases datos cardinalidad (0,1) en la superentidad. No obstante podría haber especializaciones con cardinalidad
(1,1); por ello en la práctica lo que importa es saber si la jerarquía es total o parcial y no saber so hay generaliza-
ción o especialización.
73
Analista de Sistemas
Como se comentó antes, la cuestión de si es una especialización o generalización se suele distinguir por las cla-
ves; si se comparte clave entre la superentidad y sus descendientes, se habla de especialización; de otro modo se
habla de generalización (aunque esto es muy rebatible, en la práctica suele ser la única forma de distinguir ambos
conceptos en el esquema ya realizado; sólo hay una certeza y es que si la cardinalidad es 0,1 en la superentidad,
con seguridad tenemos una especialización).
De cualquier modo, la cuestión de si tenemos una generalización o una especialización no es tan importante
como el hecho de no errar las cardinalidades, unas malas cardinalidades podrían provocar que el siguiente es-
quema del sistema (el esquema lógico) falle (y con él los demás esquemas y por lo tanto la base de datos en sí).
Gráfico 46 – Ejemplo de relación ISA.
74
Base de Datos
En la especialización anterior (lo es porque la clave la tiene la superentidad) los profesores, ayudantes y técnicos
heredan el atributo id_personal y el nombre, el resto son atributos propios sólo de cada entidad (departamento
pertenece sólo a los profesores, en este ejemplo).
En el Gráfico anterior artículo es una generalización de los discos, libros y artículos de merchandising, se utiliza
una clave distinta para esta entidad. Incluso en este caso podría haber discos o libros o merchandising que no
están relacionados con los artículos (la cardinalidad de artículos es 0,1).
En las relaciones ISA (y también en otros tipos de relaciones) se puede indicar el hecho de que cada ejemplar sólo
puede participar en una de entre varias ramas de una relación. Este hecho se marca con un arco entre las distintas
relaciones. En las relaciones ISA se usa mucho, por ejemplo:
Gráfico 49 – Relación ISA con obligatoriedad
75
Analista de Sistemas
Gráfico 50
Relación ISA solapada total.
Gráfico 51
Relación ISA solapada parcial.
Gráfico 52
Relación ISA exclusiva total.
Gráfico 53
Relación ISA exclusiva parcial.
76
Base de Datos
Relaciones de jerarquía solapada. Indican que un ejemplar de la superentidad puede relacionarse con más de una
subentidad (el personal puede ser profesor y ayudante). Ocurren cuando no hay dibujado un arco de exclusividad.
Relaciones de jerarquía exclusiva. Indican que un ejemplar de la superentidad sólo puede relacionarse con una
subentidad (el personal no puede ser profesor y ayudante). Ocurren cuando hay dibujado un arco de exclusividad.
Relaciones de jerarquía parcial. Indican que hay ejemplares de la superentidad que no se relacionan con ningu-
na subentidad (hay personal que no es ni profesor, no ayudante ni técnico). Se indican con cardinalidad mínima
de cero en la superentidad.
Relaciones de jerarquía total. Indican que todos los ejemplares de la superentidad se relacionan con alguna
subentidad (no hay personal que no sea ni profesor, ni ayudante ni técnico). Se indican con cardinalidad mínima
de uno en la superentidad.
Todos los posibles ejemplos de relaciones ISA atendiendo a la cardinalidad son los expuestos en los gráficos 45
al 48 inclusive.
Entidades débiles
Ya se ha comentado antes que una entidad débil es aquella cuya existencia depende de otra. Ahora vamos a
clarificar más estas entidades. Efectivamente ocurren cuando hay una entidad más fuerte de la que dependen.
Lógicamente tienen relación con esa entidad. En la forma clásica se representaría de esta forma:
En el diagrama la relación entre las tareas y los trabajos es 1 a n (cada trabajo se compone de n tareas). Una tarea
obligatoriamente está asignada a un trabajo, es más no tiene sentido hablar de tareas sin hablar del trabajo del
que forma parte.
Hay incluso (aunque no siempre) una dependencia de identificación ya que las tareas se identifican por un número
de tarea y el número de trabajo al que se asignan. Esto es un síntoma definitivo de que se trata de una entidad débil.
77
Analista de Sistemas
Todas las entidades débiles tienen este tipo de relación 1 a n con respecto a la entidad fuerte de la que depende
su existencia, por eso se representan de esta otra forma:
No hace falta dibujar el rombo de la relación ni la cardinalidad, se sobreentiende el tipo y cardinalidad (1 a n) que
posee. No siempre identificador de la entidad débil incluye el identificador de la entidad fuerte.
Control de redundancias
Los esquemas E/R, y en general en los de cualquier modelo de datos es necesario evitar las redundancias para no
tener problemas de inconsistencias de la representación.
Un elemento de un esquema es redundante si puede ser eliminado sin pérdida de semántica.
Para ello es condición necesaria pero no suficiente que forme parte de un ciclo. Hay que estudiar detenidamente
los ciclos en el diagrama E/R. La existencia de un ciclo no implica la existencia de interrelaciones redundantes.
Para que una interrelación pueda ser eliminada por redundante se tiene que cumplir:
78
Base de Datos
Gráfico 56
Ciclo con tipo de
interrelación redundante.
Gráfico 57
Ciclo de interrelaciones
sin redundancia.
79
Analista de Sistemas
Resumen tema 8
En el modelo entidad relación extendido aparecen nuevos tipos de relaciones. Son las relaciones ISA (es un) y las
entidades débiles.
Relaciones ISA
Son relaciones que indican tipos de entidades, es decir tendremos entidades que son un (is a, en inglés) tipo de
entidad.
Se utilizan para unificar entidades agrupándolas en una entidad más general (generalización) o bien para dividir
una entidad general en entidades más específicas (especificación). Aunque hoy en día a todas se las suele llamar
generalización e incluso relaciones de herencia.
Relaciones de jerarquía exclusiva. Indican que un ejemplar de la superentidad sólo puede relacionarse con una
subentidad. Ocurren cuando hay dibujado un arco de exclusividad.
Relaciones de jerarquía parcial. Indican que hay ejemplares de la superentidad que no se relacionan con nin-
guna subentidad. Se indican con cardinalidad mínima de cero en la superentidad.
Relaciones de jerarquía total. Indican que todos los ejemplares de la superentidad se relacionan con alguna
subentidad. Se indican con cardinalidad mínima de uno en la superentidad.
Entidades débiles
Ya se ha comentado antes que una entidad débil es aquella cuya existencia depende de otra. Ahora vamos a
clarificar más estas entidades. Efectivamente ocurren cuando hay una entidad más fuerte de la que dependen.
Lógicamente tienen relación con esa entidad.
Todas las entidades débiles tienen este tipo de relación 1 a n con respecto a la entidad fuerte de la que depende
su existencia.
No hace falta dibujar el rombo de la relación ni la cardinalidad, se sobreentiende el tipo y cardinalidad (1 a n) que
posee. No siempre identificador de la entidad débil incluye el identificador de la entidad fuerte.
Control de redundancias
Los esquemas E/R, y en general en los de cualquier modelo de datos es necesario evitar las redundancias para no
tener problemas de inconsistencias de la representación.
Un elemento de un esquema es redundante si puede ser eliminado sin pérdida de semántica.
• En los atributos (atributos derivados o calculados): aunque son redundantes, no dan lugar a inconsistencias
siempre que en el esquema se indique su condición de derivados y la fórmula mediante la que han de ser
calculados.
80
Base de Datos
Autoevaluación
1. ¿Que son las relaciones ISA?
2. Si tengo las entidades libro y ejemplar con la interrelación tiene.
3. Estamos diseñando una base de datos para el área de recursos humanos de una empresa de services de televi-
sores, solo guardamos los datos de los empleados, DNI, nombre, apellido, dirección, teléfono y fecha de ingre-
so. Dentro de los empleados tenemos técnicos, chóferes y maestranza. Para los técnicos se necesita agregar a
los datos descriptos anteriormente el estudio cursado, mientras que para los chóferes el número de licencia de
conducir. Para el personal de maestranza el horario.
Preguntas
a. ¿Qué tipo de relación es si el personal puede ser técnico y chofer?
b. ¿Qué tipo de relación es si el personal no puede ser técnico y chofer?
c. ¿Qué tipo de relación es si hay personal que no es ni técnico, ni chofer ni maestranza?
d. ¿Qué tipo de relación es si no hay personal que no es ni técnico, ni chofer ni maestranza?
Investigación
1. Lea de Concepción y diseño de base datos del Modelo E/R al Modelo Relacional - Adoración de Miguel, Mario
Piattini. Ra-ma. Capitulo 8 Modelo entidad relación.
2. Lea Diseño de base de datos Problemas resueltos - Adoración de Miguel, Paloma Martínez, Elena Castro, Dolo-
res Cuadra, Ana Iglesias, Carlos Nieto. Ra-ma. Capitulo 1.
81
Analista de Sistemas
Tema Nº 9
Diseño de un modelo de entidad relación
Ejercicio 1
Identificar entidades y relaciones de la siguiente situación:
Tenemos una universidad, en la que hay varios cursos. Cada curso está dirigido por un profesor, el cual puede
dirigir varios cursos. Sólo se permite que un alumno se matricule de un curso.
Identificamos los sustantivos y los verbos que los unen.
Tenemos una universidad, en la que hay varios cursos. Cada curso está dirigido por un profesor, el cual puede
dirigir varios cursos. Sólo se permite que un alumno se matricule de un curso.
Ejercicio 2
Supongamos el siguiente universo de discurso sobre municipios, viviendas y personas. Cada persona puede
habitar una vivienda y estar empadronado en un único municipio, pero puede ser propietaria de varias viviendas.
Nos interesa también conocer las personas que dependen del cabeza de familia (C.F.). Se indicarán los supuestos
semánticas que se consideren oportunos para justificar todas las decisiones de diseño.
Para ello nos ayudamos prestando atención a los sustantivos y los verbos que los unen.
Cada persona solo puede habitar una vivienda y estar empadronada en un municipio, pero puede ser propie-
taria de varias viviendas. Nos interesa también conocer las personas que dependen del cabeza de familia (C.F.).
82
Base de Datos
2º Paso: Construir una matriz de entidades y entidades para representar todas las interrelaciones junto con su tipo
de correspondencia. Para ello iremos analizando los supuestos semánticas explícitamente representados en el
enunciado, así como los que están implícitos o son de sentido común.
3er Paso: Obtener una versión preliminar del esquema entidad relación. A continuación se muestra una primera
versión del esquema E/R correspondiente a los supuestos del enunciado.
Gráfico 58 – Primer modelo.
83
Analista de Sistemas
• Una persona tiene obligatoriamente como mínimo una persona que es cabeza de familia y una persona
que es cabeza de familia puede no tener ninguna persona a su cargo.
• Una persona habita por lo menos en una vivienda y una vivienda puede que no esté habitada.
• Una vivienda tiene por lo menos una persona que sea propietaria y una persona puede que no sea propie-
taria de ninguna vivienda.
• Una persona esta empadronada por lo menos en un municipio y en un municipio tiene que haber por lo
menos una persona empadronada.
• Una vivienda esta en un único municipio y en un municipio por lo menos hay una vivienda.
Gráfico 59 – Primer modelo con cardinalidades.
Como existen dos ciclos en el esquema E/R hay que estudiar si existe alguna interrelación redundante, es decir, si
hay alguna interrelación cuya semántica se puede obtener a partir de otras interrelaciones.
84
Base de Datos
Gráfico 60 – Ciclos del esquema.
La primera condición para saber si tenemos un ciclo en el que haya alguna interrelación susceptible de ser redun-
dante es que las tres interrelaciones estén semánticamente relacionadas. En este caso la interrelación Propiedad
no es semánticamente equivalente a Esta_en y Empadronada, puesto que el poseer o no una vivienda no influye
en si la persona reside en el municipio en el que se encuentra la vivienda.
Interrelación Habita: Si intentamos eliminar la interrelación Habita debe ser posible obtener su semántica a par-
tir de las otras dos relaciones del ciclo. Así, si queremos obtener las personas que habitan en una determinada
vivienda, a partir de la relación Esta_en se obtiene el municipio en el que se encuentra la vivienda y con la inte-
rrelación Empadrona se obtienen las personas que habitan en un municipio, pero no sabemos las personas que
habitan en la vivienda sino las que habitan en todas las viviendas del municipio. Por ello, la interrelación Habita
no se puede eliminar.
Interrelación Esta_en: Si intentamos eliminar la interrelación Esta_en debe ser posible obtener su semántica
a partir de las otras dos relaciones del ciclo. Para conocer las viviendas que se encuentran en un determinado
municipio, a partir de Empadrona obtenemos todas las personas empadronadas en ese municipio y mediante la
interrelación Habita obtenemos las viviendas en las que habitan esas personas (pues una persona debe habitar
obligatoriamente una vivienda); de esta forma, sabemos las viviendas de ese municipio. En el otro sentido de la
interrelación Esta_En, para conocer en qué municipio está una determinada vivienda, a partir de Habita obtene-
mos las personas que habitan en ella; sin embargo puede ocurrir que en una determinada vivienda no habite
nadie (cardinalidad mínima 0), por lo que no podemos alcanzar la interrelación empadrona entre persona y mu-
nicipio. Así, la interrelación Está_en no es redundante.
85
Analista de Sistemas
Interrelación Empadrona: Si intentamos eliminar la interrelación Empadrona debe ser posible obtener su se-
mántica a partir de las otras dos relaciones del ciclo. Para conocer el municipio en que está empadronada una
persona, mediante Habita obtenemos la vivienda en la que habita esa persona y con la interrelación Está_en
obtenemos el municipio en que se encuentra la vivienda; por ello conocemos el municipio en el que está em-
padronada la persona. En el otro sentido de la interrelación Empadrona, debe ser posible conocer las personas
empadronadas en un determinado municipio; mediante la interrelación Está_en conocemos las viviendas de ese
municipio y a partir de Habita sabemos todas las personas que viven en esas viviendas, conociendo así todas las
personas empadronadas en el municipio. Consecuentemente, la interrelación Empadrona se puede eliminar del
esquema E/R sin perder semántica.
Gráfico 61
Esquema terminado.
Ejercicio 3
Una empresa de aparatos electrodomésticos desea informatizar sus datos.
Cada aparato electrónico viene determinado por un código único y una descripción. Además cada aparato co-
rresponde a un tipo de electrodomésticos (a lo sumo).
Cada tipo de electrodoméstico (televisor, mp3, lavadora, etc) tiene un nombre y sus características (un campo
de texto). Se supone que no hay dos tipos con el mismo nombre y características. Algunos tipos pueden formar
parte de otro tipo más general (mp3 de aparato de música), pero en este caso solo forman parte de un único tipo.
Los componentes son las piezas que forman el aparato. Vienen dados por un nombre (por ejemplo transforma-
dor) y unas especificaciones (un campo de texto).
También nos interesa conocer datos de los fabricantes de componentes: su numero de cuit (único) y su domicilio
social.
Cada aparato puede llevar cualquier cantidad de componentes. Interesa saber para cada aparato que componen-
tes lleva y que fabricante suministra cada componente. Un aparato puede llevar muchas unidades de un mismo
componente (interesa saber cuantas), pero en este caso todas estarán suministradas por el mismo fabricante y
con un mismo precio.
86
Base de Datos
Ejercicio 4:
Se desea diseñar una base de datos para almacenar y gestionar la información empleada por un concesionario de
automóviles, teniendo en cuenta los siguientes aspectos:
87
Analista de Sistemas
Ejercicio 5:
El gerente de la fabrica de muebles Rioder, Sr. Martín Cepeda, ha decidido utilizar un sistema de Base de Datos
para representar la estructura de los muebles que distribuye. Realizar el diagrama MER correspondiente teniendo
en cuenta que:
Resumen tema 9
1er Paso: Elaborar las listas de conceptos candidatos a ser entidades e interrelaciones e indicar también los con-
ceptos que no se sabe como catalogar.
2er Paso: Construir una matriz de entidades y entidades para representar todas las interrelaciones junto con su
tipo de correspondencia. Para ello iremos analizando los supuestos semánticas explícitamente representados en
el enunciado, así como los que están implícitos o son de sentido común.
3er Paso: Obtener una versión preliminar del esquema entidad relación. A continuación se muestra una primera
versión del esquema E/R correspondiente a los supuestos del enunciado.
88
Base de Datos
Ejercitación
Ejercicio 1
A partir del siguiente enunciado se desea realiza el modelo entidad-relación.
“Una empresa vende productos a varios clientes. Se necesita conocer los datos personales de los clientes (nom-
bre, apellidos, dni, dirección y fecha de nacimiento). Cada producto tiene un nombre y un código, así como un
precio unitario. Un cliente puede comprar varios productos a la empresa, y un mismo producto puede ser com-
prado por varios clientes. Los productos son suministrados por diferentes proveedores. Se debe tener en cuenta
que un producto sólo puede ser suministrado por un proveedor, y que un proveedor puede suministrar diferen-
tes productos. De cada proveedor se desea conocer el cuit, nombre y dirección”.
Ejercicio 2
A partir del siguiente enunciado se desea realizar el modelo entidad-relación.
“Se desea informatizar la gestión de una empresa de transportes que reparte paquetes por toda España. Los
encargados de llevar los paquetes son los camioneros, de los que se quiere guardar el dni, nombre, teléfono, di-
rección, salario y población en la que vive. De los paquetes transportados interesa conocer el código de paquete,
descripción, destinatario y dirección del destinatario. Un camionero distribuye muchos paquetes, y un paquete
sólo puede ser distribuido por un camionero. De las provincias a las que llegan los paquetes interesa guardar el
código de provincia y el nombre. Un paquete sólo puede llegar a una provincia. Sin embargo, a una provincia
pueden llegar varios paquetes. De los camiones que llevan los camioneros, interesa conocer la matrícula, modelo,
tipo y potencia. Un camionero puede conducir diferentes camiones en fechas diferentes, y un camión puede ser
conducido por varios camioneros”.
Ejercicio 3
A partir del siguiente enunciado diseñar el modelo entidad-relación.
“Se desea diseñar la base de datos de un Instituto. En la base de datos se desea guardar los datos de los profeso-
res del Instituto (DNI, nombre, dirección y teléfono). Los profesores imparten módulos, y cada módulo tiene un
código y un nombre. Cada alumno está matriculado en uno o varios módulos. De cada alumno se desea guardar
el nº de expediente, nombre, apellidos y fecha de nacimiento. Los profesores pueden impartir varios módulos,
pero un módulo sólo puede ser impartido por un profesor. Cada curso tiene un grupo de alumnos, uno de los
cuales es el delegado del grupo”.
Ejercicio 4
A partir del siguiente supuesto diseñar el modelo entidad-relación.
“Se desea diseñar una base de datos para almacenar y gestionar la información empleada por una empresa de-
dicada a la venta de automóviles, teniendo en cuenta los siguientes aspectos: La empresa dispone de una serie
de coches para su venta. Se necesita conocer la matrícula, marca y modelo, el color y el precio de venta de cada
coche. Los datos que interesa conocer de cada cliente son el dni, nombre, dirección, ciudad y número de teléfo-
no: además, los clientes se diferencian por un código interno de la empresa que se incrementa automáticamente
cuando un cliente se da de alta en ella. Un cliente puede comprar tantos coches como desee a la empresa. Un
coche determinado solo puede ser comprado por un único cliente. El concesionario también se encarga de llevar
a cabo las revisiones que se realizan a cada coche. Cada revisión tiene asociado un código que se incrementa au-
tomáticamente por cada revisión que se haga. De cada revisión se desea saber si se ha hecho cambio de filtro, si
se ha hecho cambio de aceite, si se ha hecho cambio de frenos u otros. Los coches pueden pasar varias revisiones
en el concesionario”.
89
Analista de Sistemas
Ejercicio 5
A partir del siguiente supuesto diseñar el modelo entidad-relación.
“La clínica “SAN PATRÁS” necesita llevar un control informatizado de su gestión de pacientes y médicos. De cada
paciente se desea guardar el código, nombre, apellidos, dirección, provincia, código postal, teléfono y fecha de
nacimiento. De cada médico se desea guardar el código, nombre, apellidos, teléfono y especialidad. Se desea lle-
var el control de cada uno de los ingresos que el paciente hace en el hospital. Cada ingreso que realiza el paciente
queda registrado en la base de datos. De cada ingreso se guarda el código de ingreso (que se incrementará auto-
máticamente cada vez que el paciente realice un ingreso), el número de habitación y cama en la que el paciente
realiza el ingreso y la fecha de ingreso. Un médico puede atender varios ingresos, pero el ingreso de un paciente
solo puede ser atendido por un único médico. Un paciente puede realizar varios ingresos en el hospital”.
Ejercicio 6
Se desea informatizar la gestión de una tienda informática.
La tienda dispone de una serie de productos que se pueden vender a los clientes.”De cada producto informático
se desea guardar el código, descripción, precio y número de existencias. De cada cliente se desea guardar el có-
digo, nombre, apellidos, dirección y número de teléfono. Un cliente puede comprar varios productos en la tienda
y un mismo producto puede ser comprado por varios clientes. Cada vez que se compre un artículo quedará
registrada la compra en la base de datos junto con la fecha en la que se ha comprado el artículo. La tienda tiene
contactos con varios proveedores que son los que suministran los productos. Un mismo producto puede ser su-
ministrado por varios proveedores. De cada proveedor se desea guardar el código, nombre, apellidos, dirección,
provincia y número de teléfono”.
Investigación
1. Lea Diseño de base de datos Problemas resueltos - Adoración de Miguel, Paloma Martínez, Elena Castro, Dolo-
res Cuadra, Ana Iglesias, Carlos Nieto. Ra-ma.
2. Lea Concepción y diseño de base datos del Modelo E/R al Modelo Relacional - Adoración de Miguel, Mario
Piattini. Ra-ma. Capitulo15 El modelo Relacional, Capitulo 16 Dinámica del modelo relacional.
90
Base de Datos
Tema Nº 10
Modelo relacional
Edgar Frank Codd definió las bases del modelo relacional a finales de los 60. En 1970 publica el documento “A Re-
lational Model of data for Large Shared Data Banks” (Un modelo relacional de datos para grandes bancos de datos
compartidos). Actualmente se considera que ese es uno de los documentos más influyentes de toda la historia
de la informática. Lo es porque en él se definieron las bases del llamado Modelo Relacional de Bases de Datos.
Anteriormente el único modelo teórico estandarizado era el Codasyl que se utilizó masivamente en los años 70
como paradigma del modelo en red de bases de datos.
Codd se apoya en los trabajos de los matemáticos Cantor y Childs (cuya teoría de conjuntos es la verdadera base
del modelo relacional). Según Codd los datos se agrupan en relaciones (actualmente llamadas tablas) que es un
concepto que se refiere a la estructura que aglutina datos referidos a una misma entidad de forma independiente
respecto a su almacenamiento físico.
Lo que Codd intentaba fundamentalmente es evitar que las usuarias y usuarios de la base de datos tuvieran que
verse obligadas a aprender los entresijos internos del sistema. Pretendía que los usuarios/as trabajaran de forma
sencilla e independiente del funcionamiento físico de la base de datos en sí. Fue un enfoque revolucionario.
Aunque trabajaba para IBM, esta empresa no recibió de buen grado sus teorías (de hecho continuó trabajando en
su modelo en red IMS). De hecho fueron otras empresas (en especial Oracle) las que implementaron sus teorías.
Pocos años después el modelo se empezó a utilizar cada vez más, hasta finalmente ser el modelo de bases de
datos más popular. Hoy en día casi todas las bases de datos siguen este modelo.
Objetivos
• Independencia física. La forma de almacenar los datos, no debe influir en su manipulación lógica. Si la for-
ma de almacenar los datos cambia, los usuarios no tienen siquiera porque percibirlo y seguirán trabajando
de la misma forma con la base de datos. Esto permite que los usuarios y usuarias se concentren en qué
quieren consultar en la base de datos y no en cómo está realizada la misma.
• Independencia lógica. Las aplicaciones que utilizan la base de datos no deben ser modificadas porque se
modifiquen elementos de la base de datos. Es decir, añadir, borrar y suprimir datos, no influye en las vistas
de los usuarios. De una manera más precisa, gracias a esta independencia el esquema externo de la base
de datos es realmente independiente del modelo lógico.
• Flexibilidad. La base de datos ofrece fácilmente distintas vistas en función de los usuarios y aplicaciones.
• Uniformidad. Las estructuras lógicas siempre tienen una única forma conceptual (las tablas).
• Sencillez. Facilidad de manejo (algo cuestionable, pero ciertamente verdadero si comparamos con los sis-
temas gestores de bases de datos anteriores a este modelo).
Relación o tabla
Según el modelo relacional (desde que Codd lo enunció) el elemento fundamental es lo que se conoce como
relación, aunque más habitualmente se le llama tabla (o también array o matriz). Codd definió las relaciones
utilizando un lenguaje matemático, pero se pueden asociar a la idea de tabla (de filas y columnas) ya que es más
fácil de entender.
No hay que confundir la idea de relación según el modelo de Codd, con lo que significa una relación en el
modelo Entidad/Relación de Chen. No tienen nada que ver.
91
Analista de Sistemas
Tuplas. Referido a cada elemento de la relación. Por ejemplo si una relación almacena personas, una tupla repre-
sentaría a una persona en concreto.
Puesto que una relación se representa como una tabla; podemos entender que las columnas de la tabla son los
atributos; y las filas, las tuplas.
Gráfico 62 - relación según el modelo de Codd.
Tupla
Cada una de las filas de la relación. Se corresponde con la idea clásica de registro. Representa por tanto cada ele-
mento individual de esa relación. Tiene que cumplir que:
Dominio
Un dominio contiene todos los posibles valores que puede tomar un determinado atributo. Dos atributos distin-
tos pueden tener el mismo dominio.
Un dominio en realidad es un conjunto finito de valores del mismo tipo. A los dominios se les asigna un nombre
y así podemos referirnos a ese nombre en más de un atributo.
La forma de indicar el contenido de un dominio se puede hacer utilizando dos posibles técnicas:
• Intensión. Se define el nomino indicando la definición exacta de sus posibles valores. Por intensión se pue-
de definir el dominio de edades de los trabajadores como: números enteros entre el 16 y el 65 (un trabaja-
dor sólo podría tener una edad entre 16 y 65 años).
• Extensión. Se indican algunos valores y se sobreentiende el resto gracias a que se autodefinen con los
anteriores. Por ejemplo el dominio provincia se podría definir por extensión así: Jujuy, Salta, Catamarca,
Formosa, etc ….
92
Base de Datos
Grado
Indica el tamaño de una relación en base al número de columnas (atributos) de la misma. Lógicamente cuanto
mayor es el grado de una relación, mayor es su complejidad al manejarla.
Cardinalidad
Número de tuplas de una relación, o número de filas de una tabla.
Sinónimo
Los términos vistos anteriormente tienen distintos sinónimos según la nomenclatura utilizada. A ese respecto se
utilizan tres nomenclaturas:
donde n es el grado.
• Cuerpo de la relación. Representa el conjunto de m tuplas {t1, t2,... tn} que forman la relación.
Gráfico 64 – Ejemplo de Relación.
93
Analista de Sistemas
Tipos de tablas
Persistentes. Sólo pueden ser borradas por los usuarios:
• Bases. Independientes, se crean indicando su estructura y sus ejemplares. Contienen tanto datos como
metadatos.
• Vistas. Son tablas que sólo almacenan una definición de consulta, resultado de la cual se produce una tabla
cuyos datos proceden de las bases o de otras vistas e instantáneas. Si los datos de las tablas base cambian,
los de la vista que utiliza esos datos también cambia.
• Instantáneas. Son vistas (creadas de la misma forma) que sí que almacenan los datos que muestra, además
de la consulta que dio lugar a esa vista. Sólo modifican su resultado (actualizan los datos) siendo refrescadas
por el sistema cada cierto tiempo (con lo que tienen el riesgo de que muestren algunos datos obsoletos.
• Temporales. Son tablas que se eliminan automáticamente por el sistema. Pueden ser de cualquiera de los
tipos anteriores. Las utiliza el SGBD como almacén intermedio de datos (resultados de consultas, por ejemplo).
Claves
Clave Candidata: Conjunto de atributos que identifican unívocamente cada tupla de la relación. Es decir colum-
nas cuyos valores no se repiten en ninguna otra tupla de esa tabla. Toda tabla en el modelo relacional debe tener
al menos una clave candidata (puede incluso haber más).
Clave Primaria: Clave candidata que se escoge como identificador de las tuplas. Se elige como primaria la candi-
data que identifique mejor a cada tupla en el contexto de la base de datos.
Por ejemplo un campo con el DNI sería clave candidata de una tabla de clientes, si esa tabla tiene un campo de
código de cliente, éste sería mejor candidato (y por lo tanto clave principal) porque es mejor identificador para
ese contexto.
Clave externa, ajena o secundaria: Son los datos de atributos de una tabla cuyos valores están relacionados con
atributos de otra tabla. Por ejemplo en la tabla equipos tenemos estos datos:
Gráfico 65
Tabla equipos.
94
Base de Datos
Gráfico 66
Tabla jugadores.
El atributo Nº Equipo sirve para relacionar el Jugador con el equipo al que pertenece. Ese campo en la tabla de
jugadores es una clave secundaria.
Nulos
En los lenguajes de programación se utiliza el valor nulo para reflejar que un identificador (una variable, un obje-
to,..) no tiene ningún contenido. Por ejemplo cuando un puntero en lenguaje C señala a null se dice que no está
señalando a nadie. Al programar en esos lenguajes se trata de un valor que no permite utilizarse en operaciones
aritméticas o lógicas.
Las bases de datos relacionales permiten más posibilidades para el valor nulo (null), aunque su significado no
cambia: valor vacío. No obstante en las bases de datos se utiliza para diversos fines.
En claves secundarias indican que el registro actual no está relacionado con ninguno. En otros atributos indica
que la tupla en cuestión carece de dicho atributo: por ejemplo en una tabla de personas un valor nulo en el atri-
buto teléfono indicaría que dicha persona no tiene teléfono.
Es importante indicar que el texto vacío ‘ ’, no significa lo mismo en un texto que el nulo; como tampoco el valor
cero significa nulo.
Puesto que ese valor se utiliza continuamente, resulta imprescindible saber cómo actúa cuando se emplean ope-
raciones lógicas sobre ese valor. Eso significa definir un tercer valor en la lógica booleana, además de los clásicos
verdadero y falso. Un valor nulo no es ni verdadero ni falso (se suele interpretar como un quizás, o usando la arit-
mética clásica en valores lógicos, el 1 es verdadero, el 0 falso y el 0,5 nulo).
Se utiliza un operador en todas las bases relacionales llamado es nulo (is null) que devuelve verdadero si el valor
con el que se compara es nulo.
95
Analista de Sistemas
Resumen tema 10
Objetivos del modelo relacional
1. Independencia física. La forma de almacenar los datos, no debe influir en su manipulación lógica.
2. Independencia lógica. Las aplicaciones que utilizan la base de datos no deben ser modificadas porque se
modifiquen elementos de la base de datos.
3. Flexibilidad. La base de datos ofrece fácilmente distintas vistas en función de los usuarios y aplicaciones.
4. Uniformidad. Las estructuras lógicas siempre tienen una única forma conceptual (las tablas).
5. Sencillez. Facilidad de manejo (algo cuestionable, pero ciertamente verdadero si comparamos con los sis-
temas gestores de bases de datos anteriores a este modelo).
Relación o tabla
Según el modelo relacional el elemento fundamental es lo que se conoce como relación, aunque más habitual-
mente se le llama tabla Codd definió las relaciones utilizando un lenguaje matemático, pero se pueden asociar
a la idea de tabla (de filas y columnas) ya que es más fácil de entender.
Puesto que una relación se representa como una tabla; podemos entender que las columnas de la tabla son los
atributos; y las filas, las tuplas.
Dominio
Un dominio contiene todos los posibles valores que puede tomar un determinado atributo. Dos atributos distin-
tos pueden tener el mismo dominio. La forma de indicar el contenido de un dominio se puede hacer utilizando
dos posibles técnicas:
Grado
Indica el tamaño de una relación en base al número de columnas (atributos) de la misma
Cardinalidad
Número de tuplas de una relación, o número de filas de una tabla.
96
Base de Datos
Tipos de tablas
1. Persistentes. Sólo pueden ser borradas por los usuarios:
a) Bases. Independientes, se crean indicando su estructura y sus ejemplares. Contienen tanto datos como meta-
datos.
b) Vistas. Son tablas que sólo almacenan una definición de consulta, resultado de la cual se produce una tabla
cuyos datos proceden de las bases o de otras vistas e instantáneas.
c) Instantáneas. Son vistas (creadas de la misma forma) que sí que almacenan los datos que muestra, además de
la consulta que dio lugar a esa vista.
Claves
Claves candidatas: Conjunto de atributos que identifican unívocamente cada tupla de la relación.
Clave primaria: de la clave candidata que se escoge como identificador de las tuplas. Se elige como primaria la
candidata que identifique mejor a cada tupla en el contexto de la base de datos.
Clave alternativa: Cualquier clave candidata que no sea primaria.
Clave secundaria: Son los datos de atributos de una tabla cuyos valores están relacionados con atributos de otra
tabla.
Autoevaluación
1. ¿Cuál es el elemento más importante en el modelo relacional?
2. ¿Cuáles son los elementos de una relación?
3. Es correcta la afirmación de que la idea de relación según el modelo de Codd, es lo mismo que la idea de rela-
ción en el modelo Entidad/Relación de Chen. Justifique.
4. Si hablo de los objetivos del modelo relacional y me refiero digo que la forma de almacenar los datos, no debe
influir en su manipulación lógica. ¿a que me estoy refiriendo?
5. Si defino el rango de edades de los trabajadores como: números enteros entre el 18 y el 65, para mi tabla em-
pleados. ¿Qué estoy definiendo?
6. Si para mi tabla o relación de Vehículo tengo los siguientes campos: marca, modelo, patente, numero de motor
y numero de chasis.
a. ¿Qué tipo de claves utilizaría para reconocerlo unívocamente?
b. Identifique a las demás.
7. ¿Cuál es la diferencia entre tablas permanentes y temporales?
Investigación
1. Indague sobre la historia del modelo relacional.
2. Lea de Sistemas de base de datos – C.J. Date – Addison-Wesley Iberoamericana. Capitulo 11 Estructura del mo-
delo relacional.
3. Lea Diseño de base de datos Problemas resueltos - Adoración de Miguel, Paloma Martínez, Elena Castro, Dolo-
res Cuadra, Ana Iglesias, Carlos Nieto. Ra-ma.
97
Analista de Sistemas
Tema Nº 11
Restricciones
Se trata condiciones de obligado cumplimiento por las tuplas de la base de datos. Las hay de varios tipos.
Inherentes
Son aquellas que no son determinadas por los usuarios, sino que son definidas por el hecho de que la base de
datos sea relacional. Las más importantes son:
Semánticas
El modelo relacional permite a los usuarios incorporar restricciones personales a los datos. Se comentan las dife-
rentes reglas semánticas a continuación:
Inucidad (unique).
Impide que los valores de los atributos marcados de esa forma, puedan repetirse. Esta restricción debe indi-
carse en todas las claves alternativas.
Al marcar una clave primaria se añade automáticamente sobre los atributos que forman la clave un criterio
de unicidad.
Integridad referencial.
Sirve para indicar una clave externa (también llamada secundaria y foránea) sobre uno o más atributos. Los
atributos marcados de esta forma sólo podrán contener valores que estén relacionados con la clave princi-
pal de la tabla que relacionan (llamada tabla principal). Dichos atributos sí podrán contener valores nulos.
Es decir si hay una tabla de alquileres en la que cada fila es un alquiler, existirá un atributo cod_cliente que
indicará el código del cliente y que estará relacionado con una tabla de clientes, en la que dicho atributo
es la clave principal. De hecho no se podrá incluir un código que no esté en la tabla clientes; eso es lo que
prohíbe la integridad referencial.
Gráfico 67
Ejemplo clave
secundaria.
98
Base de Datos
Eso causa problemas en las operaciones de borrado y modificación de registros; ya que si se ejecutan esas opera-
ciones sobre la tabla principal (si se modifica o borra un cliente) quedarán filas en la tabla secundaria con la clave
externa haciendo referencia a un valor que ya no existe en la tabla principal.
Para solventar esta situación se puede hacer uso de estas opciones:
Disparadores o triggers
Se trata de pequeños programas grabados en la base de datos que se ejecutan automáticamente cuando se cum-
ple una determinada condición. Sirven para realizar una serie de acciones cuando ocurre un determinado evento
(cuando se añade una tupla, cuando se borra un dato, cuando un usuario abre una conexión…)
Los triggers permiten realizar restricciones muy potentes; pero son las más difíciles de crear.
1. Información. Toda la información de la base de datos (metadatos) debe estar representada explícitamente
en el esquema lógico. Es decir, todos los datos están en las tablas.
2. Acceso garantizado. Todo dato es accesible sabiendo el valor de su clave y el nombre de la columna o atri-
buto que contiene el dato.
3. Tratamiento sistemático de los valores nulos. El DBMS debe permitir el tratamiento adecuado de estos va-
lores. De ese modo el valor nulo se utiliza para representar la ausencia de información de un determinado
registro en un atributo concreto.
4. Catálogo en línea basado en el modelo relacional. Los metadatos deben de ser accesibles usando un es-
quema relacional. Es decir la forma de acceder a los metadatos es la misma que la de acceder a los datos.
5. Sublenguaje de datos completo. Al menos debe de existir un lenguaje que permita el manejo completo de
la base de datos. Este lenguaje, por lo tanto, debe permitir realizar cualquier operación sobre la misma.
6. Actualización de vistas. El SGBD debe encargarse de que las vistas muestren la última información. No son
válidas vistas que muestren datos que no están al día.
99
Analista de Sistemas
7. Inserciones, modificaciones y eliminaciones de dato nivel. Cualquier operación de modificación debe ac-
tuar sobre conjuntos de filas o registros, nunca deben actuar registro a registro.
8. Independencia física. Los datos deben de ser accesibles desde la lógica de la base de datos aún cuando se
modifique el almacenamiento. La forma de acceder a los datos no varía porque el esquema físico de la base
de datos, cambie.
9. Independencia lógica. Los programas no deben verse afectados por cambios en las tablas. Que las tablas
cambien no implica que cambien los programas.
10. Independencia de integridad. Las reglas de integridad deben almacenarse en la base de datos (en el dic-
cionario de datos), no en los programas de aplicación.
11. Independencia de la distribución. El sublenguaje de datos debe permitir que sus instrucciones funciones
igualmente en una base de datos distribuida que en una que no lo es.
12. No subversión. Si el SGBD posee un lenguaje procedimental que permita crear bucles de recorrido fila a
fila, éste no puede utilizarse para incumplir o evitar las reglas relacionales anteriores. Especialmente la re-
gla 7 no puede ser incumplida por ningún lenguaje del SGBD.
En principio las entidades fuertes del modelo Entidad Relación son transformadas al modelo relacional siguiendo
estas instrucciones:
100
Base de Datos
Transformación de relaciones
La idea inicial es transformar cada relación del modelo conceptual en una tabla en el modelo relacional. Pero hay
casos en los que esta regla tiene matices y no se cumple.
Gráfico 69 – Transformación de una relación N:M.
Relaciones de grado n
Las relaciones ternarias, cuaternarias y n-arias que unen más de dos relaciones se transforman en una tabla que
contiene los atributos de la relación más los identificadores de las entidades relacionadas. La clave la forman
todas las claves externas:
Gráfico 70 – Transformación relación de grado n.
101
Analista de Sistemas
Relaciones 1 a muchos
Las relaciones binarios de tipo uno a muchos o varios no requieren ser transformadas en una tabla en el modelo
relacional. En su lugar la tabla del lado varios (tabla relacionada) incluye como clave externa1 el identificador de
la entidad del lado uno (tabla principal).
Así en el Gráfico, el Identificador2 en la tabla Entidad1 pasa a ser una clave secundaria. En el caso de que el nú-
mero mínimo de la relación sea de cero (puede haber ejemplares de la entidad uno sin relacionar), se deberá
permitir valores nulos en la clave secundaria (en el ejemplo sería el identificador2 en la Entidad1). En otro caso no
se podrán permitir (ya que siempre habrá un valor relacionado).
Relación 1 a 1
En el caso de las relaciones entre dos entidades con todas las cardinalidades a 1; hay dos posibilidades:
• Colocar la clave de una de las entidades como clave externa de la otra tabla (da igual cuál), teniendo en
cuenta que dicha clave será clave alternativa además de ser clave secundaria.
• Generar una única tabla con todos los atributos de ambas entidades colocando como clave principal cual-
quiera de las claves de las dos entidades. La otra clave será marcada como clave alternativa. El nombre de la
tabla sería el de la entidad más importante desde el punto de vista conceptual.
Gráfico 72 – Transformación relación 1:1.
102
Base de Datos
Relación de 0 a 1
Se trata de relaciones entre dos entidades con cardinalidad máxima de 1 en ambas direcciones, pero en una de
ellas la cardinalidad mínima es 0. En este caso la solución difiere respecto a la anterior solución. No conviene ge-
nerar una única tabla ya que habría numerosos valores nulos en la tabla (debido a que hay ejemplares que no se
relacionan en las dos tablas).
La solución sería generar dos tablas, una para cada entidad. En la tabla con cardinalidad 0, se coloca como clave
secundaria, la clave principal de la otra (dicha clave sería clave alternativa de esa tabla):
Gráfico 73 – Transformación relación 0:1.
En el caso de que en ambos extremos nos encontremos con relaciones 0 a 1, entonces la solución es la misma,
pero la clave que se copia en la tabla para ser clave secundaria, debe de ser tomada de la entidad que se relacione
más con la otra (la que esté más cerca de tener la cardinalidad 1 a 1 en el otro extremo). Dicha clave secundaria,
en este caso, no será clave alternativa (pero sí tendría restricción de unicidad).
Relaciones recursivas
Las relaciones recursivas se tratan de la misma forma que las otras, sólo que un mismo atributo puede figurar dos ve-
ces en una tabla como resultado de la transformación (por eso es interesante indicar el rol en el nombre del atributo.
Gráfico 74 – Transformación relaciones recursivas en MR.
Entidades débiles
Toda entidad débil incorpora una relación implícita con una entidad fuerte. Esta relación no necesita incorporarse
como tabla en el modelo relacional (al tratarse de una relación n a 1), bastará con añadir como atributo y clave
foránea en la entidad débil, el identificador de la entidad fuerte.
103
Analista de Sistemas
En ocasiones el identificador de la entidad débil tiene como parte de su identificador al identificador de la enti-
dad fuerte (por ejemplo si para identificar líneas de factura utilizamos el número de línea y el número de factura,
clave de la entidad factura). En esos casos no hace falta añadir de nuevo como clave externa el identificador de la
entidad fuerte (imagen de la derecha)
Gráfico 75 – Transformación relaciones entidades débiles.
Relaciones ISA
En el caso de las relaciones ISA, se siguen estas normas:
1. Tanto las superentidades como las subentidades generarán tablas en el modelo relacional (en el caso de
que la ISA sea de tipo total, se podría incluso no hacer la superentidad y pasar todos sus atributos a las
subentidades, pero no es recomendable porque puede complicar enormemente el esquema interno).
2. Los atributos se colocan en la tabla a la que se refiere a la entidad correspondiente
3. En el caso de que las subentidades no hereden el identificador con la superentidad, se colocará en las su-
bentidades el identificador de la superentidad como clave secundaria, además será clave alternativa.
4. Si la ISA es exclusiva o no, no cambia el esquema relacional, pero sí habrá que tenerlo en cuenta para las
restricciones futuras en el esquema interno (casi siempre se realizan mediante triggers), ya que en las ex-
clusivas no se puede repetir la clave de la superentidad en las subentidades.
Gráfico 76
Transformación
relaciones ISA.
104
Base de Datos
Resumen tema 11
Restricciones
Se trata condiciones de obligado cumplimiento por las tuplas de la base de datos. Las hay de varios tipos.
1. Inherentes:
2.Semánticas:
El modelo relacional permite a los usuarios incorporar restricciones personales a los datos. Se comentan las dife-
rentes reglas semánticas a continuación:
Reglas de Codd
Preocupado por los productos que decían ser sistemas gestores de bases de datos relacionales (RDBMS) sin serlo,
Codd publica las 12 reglas que debe cumplir todo DBMS para ser considerado relacional.
1. Información.
2. Acceso garantizado.
3. Tratamiento sistemático de los valores nulos.
4. Catálogo en línea basado en el modelo relacional.
5. Sublenguaje de datos completo.
6. Actualización de vistas.
7. Inserciones, modificaciones y eliminaciones de dato nivel.
8. Independencia física.
9. Independencia lógica.
10. Independencia de integridad.
11. Independencia de la distribución.
12. No subversión.
Transformación de entidades
105
Analista de Sistemas
Transformación de entidades
Relaciones de grado n
Las relaciones ternarias, cuaternarias y n-arias que unen más de dos relaciones se transforman en una tabla
que contiene los atributos de la relación más los identificadores de las entidades relacionadas.
Relaciones 1 a muchos
Las relaciones binarios de tipo uno a muchos la tabla del lado varios (tabla relacionada) incluye como clave
externa1 el identificador de la entidad del lado uno (tabla principal).
Relación 1 a 1
En el caso de las relaciones entre dos entidades con todas las cardinalidades a 1; hay dos posibilidades:
Colocar la clave de una de las entidades como clave externa de la otra tabla (da igual cuál), teniendo en
cuenta que dicha clave será clave alternativa además de ser clave secundaria.
Generar una única tabla con todos los atributos de ambas entidades colocando como clave principal
cualquiera de las claves de las dos entidades. La otra clave será marcada como clave alternativa.
Relación de 0 a 1
La solución sería generar dos tablas, una para cada entidad. En la tabla con cardinalidad 0, se coloca como
clave secundaria, la clave principal de la otra (dicha clave sería clave alternativa de esa tabla).
Relaciones recursivas.
Las relaciones recursivas se tratan de la misma forma que las otras, sólo que un mismo atributo puede figu-
rar dos veces en una tabla como resultado de la transformación (por eso es interesante indicar el rol en el
nombre del atributo.
Entidades débiles
Toda entidad débil incorpora una relación implícita con una entidad fuerte. Esta relación no necesita in-
corporarse como tabla en el modelo relacional (al tratarse de una relación n a 1), bastará con añadir como
atributo y clave foránea en la entidad débil, el identificador de la entidad fuerte.
Relaciones ISA
En el caso de las relaciones ISA, se siguen estas normas:
1. Tanto las superentidades como las subentidades generarán tablas en el modelo relacional (en el caso de
que la ISA sea de tipo total, se podría incluso no hacer la superentidad y pasar todos sus atributos a las
subentidades, pero no es recomendable porque puede complicar enormemente el esquema interno).
3. En el caso de que las subentidades no hereden el identificador con la superentidad, se colocará en las su-
bentidades el identificador de la superentidad como clave secundaria, además será clave alternativa.
4. Si la ISA es exclusiva o no, no cambia el esquema relacional, pero sí habrá que tenerlo en cuenta para las
restricciones futuras en el esquema interno (casi siempre se realizan mediante triggers), ya que en las ex-
clusivas no se puede repetir la clave de la superentidad en las subentidades.
106
Base de Datos
Autoevaluación
1. Si tengo dos tablas la primera: Empleado con los siguientes campos: numero de legajo, nombre, apellido, anti-
güedad, dni. La segunda tabla salario_empleado tiene los siguientes campos: numero legajo, categoría. ¿Qué
significancia tiene número de legajo en ambas tablas?
2. Estoy diseñando una base para una empresa de transportes y me piden ciertas restricciones (a,b,c) para la tabla
choferes los campos son los siguiente licencia de conducir, nombre, apellido, dirección, estado civil, teléfono y
DNI. ¿Qué tipo de restricciones son las siguientes?
Ejercitación
Pasar de ME/R a MR.
Ejercicio 1
Nombre Precio
N:M
1:M
107
Analista de Sistemas
Ejercicio 2
Nombre Modelo
Direcciom
N:M Tipo
(0,n) (0,n)
Salario Camionero Conduce Camion
Poblacion (0,1)
Distribuye 1:M
Cod_proveedor Nombre
(1,n)
Destinatario
1:M
(0,m) (1,1)
Cod_paquete Paquete Suministra Proveedor
Descripcion Direccion
Ejercicio 3
Nombre
Nombre
Dni Telefono
Direccion Fech_nac
(0,m)
(1,1)
Profesor Es delegado Alumno Expediente
1:M (1,n)
Apellido
(1:1) M:N Cursa
(1,n)
1:M
(1,n)
Imparte Modulo
Cod_modulo
108
Base de Datos
Ejercicio 4
Modelo
Nombre
Ciudad Matricula Marca
Dni
Color
1:M
Direccion (0,1) (1,n)
Cliente Compra Coche
Precio
Telefono (1,1)
1:M Pasa
Filtro (0,n)
Aceite Revision
Frenos
Cod_revision
Ejercicio 5
Nombre
Cod_medico
Medico
Apellido
(1,1)
Atiende 1:M
Cod_paciente Nombre
(0,m)
1:M Apellido
Cod_ingreso
Habitacion Fecha
109
Analista de Sistemas
Ejercicio 6
Cod_producto
M:N Apellido
(0,m)
Producto Compra (0,m) Cliente
Descripcion
Direccion
(1,m) Telefono
Suministra M:N
(1,m)
Nombre
Proveedor
Cod_ingreso
Direccion
Telefono
Apellido
Investigación
1. Lea Sistemas de base de datos – C.J. Date – Addison-Wesley Iberoamericana. Capitulo 12 Reglas de identidad.
2. Lea Diseño de base de datos Problemas resueltos - Adoración de Miguel, Paloma Martínez, Elena Castro, Dolo-
res Cuadra, Ana Iglesias, Carlos Nieto. Ra-ma.
3. Visite http://www.dba-oracle.com/art_builder_ri.htm
4. Visite http://msdn.microsoft.com/en-us/library/aa902684(v=sql.80).aspx
110
Base de Datos
Tema Nº 12
Normalización
Una vez obtenido el esquema relacional resultante del esquema entidad/relación que representa la base de datos,
normalmente tendremos una buena base de datos. Pero otras veces, debido a fallos en el diseño o a problemas
indetectables, tendremos un esquema que puede producir una base de datos que incorpore estos problemas:
• Redundancia. Se llama así a los datos que se repiten continua e innecesariamente por las tablas de las bases
de datos. Cuando es excesiva es evidente que el diseño hay que revisarlo, es el primer síntoma de proble-
mas y se detecta fácilmente.
• Ambigüedades. Datos que no clarifican suficientemente el registro al que representan. Los datos de cada
registro podrían referirse a más de un registro o incluso puede ser imposible saber a qué ejemplar exacta-
mente se están refiriendo. Es un problema muy grave y difícil de detectar.
• Anomalías en operaciones de modificación de datos. El hecho de que al insertar un solo elemento haya que
repetir tuplas en una tabla para variar unos pocos datos. O que eliminar un elemento suponga eliminar va-
rias tuplas necesariamente (por ejemplo que eliminar un cliente suponga borrar seis o siete filas de la tabla
de clientes, sería un error muy grave y por lo tanto un diseño terrible).
El principio fundamental reside en que las tablas deben referirse a objetos o situaciones muy concretas, relacio-
nados exactamente con elementos reconocibles por el sistema de información de forma inequívoca. Cada fila de
una tabla representa inequívocamente un elemento reconocible en el sistema. Lo que ocurre es que conceptual-
mente es difícil agrupar esos elementos correctamente.
En cualquier caso la mayor parte de problemas se agravan si no se sigue un modelo conceptual y se decide crear
directamente el esquema relacional. En ese caso el diseño tiene una garantía casi asegurada de funcionar mal.
Cuando aparecen los problemas enumerados entonces se les puede resolver usando reglas de normalización.
Estas reglas suelen forzar la división de una tabla en dos o más tablas para arreglar ese problema.
Formas normales
Las formas normales se corresponde a una teoría de normalización iniciada por el propio Codd y continuada por
otros autores (entre los que destacan Boyce y Fagin). Codd definió en 1970 la primera forma normal, desde ese
momento aparecieron la segunda, tercera, la Boyce-Codd, la cuarta y la quinta forma normal.
Una tabla puede encontrarse en primera forma normal y no en segunda forma normal, pero no al contrario. Es
decir los números altos de formas normales son más restrictivos (la quinta forma normal cumple todas las ante-
riores).
La teoría de formas normales es una teoría absolutamente matemática, pero en el presente manual se describen
de forma más intuitiva.
Hay que tener en cuenta que muchos diseñadores opinan que basta con llegar a la forma Boyce-Codd, ya que
la cuarta, y sobre todo la quinta, forma normal es polémica. Hay quien opina que hay bases de datos peores en
quinta forma normal que en tercera. En cualquier caso debería ser obligatorio para cualquier diseñador llegar
hasta la forma normal de Boyce-Codd.
111
Analista de Sistemas
Gráfico 77 – Tabla trabajador sin normalizar.
Visualmente es una tabla, pero no una tabla relacional (lo que en terminología de bases de datos relacionales se
llama relación). No cumple la primera forma normal.
Sería primera forma normal si los datos fueran:
Dependencia funcional
Se dice que un conjunto de atributos (Y) depende funcionalmente de otro conjunto de atributos (X) si para cada
valor de X hay un único valor posible para Y. Simbólicamente se denota por X -> Y.
Por ejemplo el nombre de una persona depende funcionalmente del DNI; es decir para un DNI concreto sólo hay
un nombre posible. En la tabla del ejemplo anterior, el departamento no tiene dependencia funcional, ya que
para un mismo DNI puede haber más de un departamento posible. Pero el nombre sí que depende del DNI.
Al conjunto X del que depende funcionalmente el conjunto Y se le llama determinante. Al conjunto Y se le llama
implicado.
112
Base de Datos
Suponiendo que el DNI y el código de curso formen una clave principal para esta tabla, sólo la nota tiene depen-
dencia funcional completa. El nombre y los apellidos dependen de forma completa del DNI. La tabla no es 2FN,
para arreglarlo:
Gráfico 80
Tabla alumnos
normalizada 2FN.
113
Analista de Sistemas
Gráfico 81 – Tabla alumnos desnormalizada.
La provincia depende funcionalmente del código de provincia, lo que hace que no esté en 3FN. El arreglo sería:
Gráfico 82
Tabla alumnos
normalizada 3FN.
Gráfico 83
Tabla organización
desnormalizada.
114
Base de Datos
La cuestión es que un trabajador o trabajadora puede trabajar en varios departamentos. En dicho departamento
hay varios responsables, pero cada trabajador sólo tiene asignado uno. El detalle importante que no se ha tenido
en cuenta, es que el o la responsable sólo puede ser responsable en un departamento.
Este detalle último produce una dependencia funcional ya que:
Responsable -> Departamento
Por lo tanto hemos encontrado un determinante que no es clave candidata. No está por tanto en FNBC. En este
caso la redundancia ocurre por mala selección de clave. La redundancia del departamento es completamente
evitable. La solución sería:
Gráfico 84
Tabla organización
normalizada FNBC.
En las formas de Boyce-Codd hay que tener cuidado al descomponer ya que se podría perder información por
una mala descomposición.
115
Analista de Sistemas
Se refiere a posibles valores (en plural) y se trata de que los valores de ese atributo siempre son los mismos según
el valor de un atributo y no del otro.
Ejemplo:
Gráfico 85 – Tabla cursos.
La tabla cursos, profesores y materiales del curso. La tabla está en FNBC ya que no hay dependencias transitivas y
todos los atributos son clave sin dependencia funcional hacia ellos. Sin embargo hay redundancia. Los materiales
se van a repetir para cualquier profesor dando cualquier curso, ya que los profesores van a utilizar todos los ma-
teriales del curso (de no ser así no habría ninguna redundancia).
Los materiales del curso dependen de forma multivaluada del curso y no del profesor en una dependencia multi-
valuada (no hay dependencia funcional ya que los posibles valores son varios). Para el par Nº de curso y Profesor
podemos saber los materiales; pero lo sabemos por el curso y no por el profesor.
Gráfico 86
Ejemplo FN4.
Gráfico 87
Ejemplo FN4.
116
Base de Datos
Un teorema de Fagin indica cuando hay tres pares de conjuntos de atributos X, Y y Z si ocurre X->>Y y X->>Z (Y y
Z tienen dependencia multivaluada sobre X), entonces las tablas X, Y y X, Z reproducen sin perder información lo
que poseía la tabla original. Este teorema marca la forma de dividir las tablas hacia una 4FN.
Indican códigos de material suministrado por un proveedor y utilizado en un determinado proyecto. Así vista la
tabla, no permite ninguna proyección en la que no perdamos datos.
Pero si ocurre una restricción especial como por ejemplo: Cuando un proveedor nos ha suministrado alguna vez
un determinado material, si ese material aparece en otro proyecto, haremos que el proveedor anterior nos sumi-
nistre también ese material para el proyecto.
Eso ocurre en los datos como el proveedor número 1 nos suministró el material número 1 para el proyecto 2 y en
el proyecto 1 utilizamos el material 1, aparecerá la
tupla proveedor 1, material 1 y proyecto 1. Si un nuevo proyecto necesitara el material 1, entonces habrá que
pedirlo a los proveedores 1 y 2 (ya que en otros proyectos les henos utilizado)
117
Analista de Sistemas
La dependencia de reunión que produce esta restricción es muy difícil de ver ya que es lejana. Para esa restricción
esta proyección de tablas sería válida:
Gráfico 89
Ejemplo FN5.
Esa descomposición no pierde valores en este caso, sabiendo que si el proveedor nos suministra un material po-
dremos relacionarle con todos los proyectos que utilizan ese material.
Resumiendo, una tabla no está en quinta forma normal si hay una descomposición de esa tabla que muestre la
misma información que la original y esa descomposición no tenga como clave la clave original de la tabla.
Resumen tema 12
Normalización
El principio fundamental reside en que las tablas deben referirse a objetos o situaciones muy concretas, relacio-
nados exactamente con elementos reconocibles por el sistema de información de forma inequívoca. Cada fila de
una tabla representa inequívocamente un elemento reconocible en el sistema. Lo que ocurre es que conceptual-
mente es difícil agrupar esos elementos correctamente.
En cualquier caso la mayor parte de problemas se agravan si no se sigue un modelo conceptual y se decide crear
directamente el esquema relacional. En ese caso el diseño tiene una garantía casi asegurada de funcionar mal.
Cuando aparecen los problemas enumerados entonces se les puede resolver usando reglas de normalización.
Estas reglas suelen forzar la división de una tabla en dos o más tablas para arreglar ese problema.
Formas normales
Las formas normales se corresponde a una teoría de normalización iniciada por el propio Codd y continuada por
otros autores (entre los que destacan Boyce y Fagin). Codd definió en 1970 la primera forma normal, desde ese
momento aparecieron la segunda, tercera, la Boyce-Codd, la cuarta y la quinta forma normal.
Hay que tener en cuenta que muchos diseñadores opinan que basta con llegar a la forma Boyce-Codd, ya que la
cuarta, y sobre todo la quinta, forma normal es polémica.
118
Base de Datos
Dependencia funcional
Se dice que un conjunto de atributos (Y) depende funcionalmente de otro conjunto de atributos (X) si para cada
valor de X hay un único valor posible para Y. Simbólicamente se denota por X -> Y.
119
Analista de Sistemas
La operación JOIN procedente también del álgebra relacional, consiste en formar una tabla con la unión de dos
tablas. La tabla resultante estará formada por la combinación de todas las columnas y filas de ambas, excepto las
columnas y filas repetidas.
Se dice que se tiene una tabla con dependencia de unión (o de tipo JOIN) si se puede obtener esa tabla como
resultado de combinar mediante la operación JOIN varias proyecciones de la misma.
Ejercitación
Normalizar las siguientes tablas
Ejercicio 1
Ejercicio 2
Ejercicio 3
Ejercicio 4
120
Base de Datos
Ejercicio 5
Vendedores
dni nombre apellido factura importe
22111232 lucas garcia 2231123 100
33432123 cesar lopez 1342342 200
43456987 daniel perz 24353245 104
33432123 cesar lopez 1342343 204
Ejercicio 6
Artículos
cod_art articulo descrip_art material cod_material
22111232 vaso azul por 6 unid plastico 123
33432123 plato playo pirex 124
43456987 botella verde vidrio 125
33432123 copa noruega agua vidrio 125
Investigación
1. Lea de Sistemas de base de datos – C.J. Date – Addison-Wesley Iberoamericana. Capitulo 21 - Normalización
adicional.
2. Lea de Organización de base de datos – James Martin. Prentice Hall. Capitulo 14 - Tercera forma normal.
121
Analista de Sistemas
122
Analista de Sistemas
Unidad 4
Tema Nº 13
SQL, DDL y DML
Historia del SQL
El nacimiento del lenguaje SQL data de 1970 cuando E. F. Codd publica su libro: “Un modelo de datos relacional
para grandes bancos de datos compartidos”. Ese libro dictaría las direcrices de las bases de datos relacionales.
Apenas dos años después IBM (para quien trabajaba Codd) utiliza las directrices de Codd para crear el Standard
English Query Language (Lenguaje Estándar Inglés para Consultas) al que se le llamó SEQUEL. Más adelante se le
asignaron las siglas SQL (Standard Query Language, lenguaje estándar de consulta) aunque en inglés se siguen
pronunciando secuel. En español se pronuncia esecuele.
En 1979 Oracle presenta la primera implementación comercial del lenguaje. Poco después se convertía en un
estándar en el mundo de las bases de datos avalado por los organismos ISO y ANSI. En el año 1986 se toma como
lenguaje estándar por ANSI de los SGBD relacionales. Un año después lo adopta ISO, lo que convierte a SQL en
estándar mundial como lenguaje de bases de datos relacionales.
En 1989 aparece el estándar ISO (y ANSI) llamado SQL89 o SQL1. En 1992 aparece la nueva versión estándar de
SQL (a día de hoy sigue siendo la más conocida) llamada SQL92. En 1999 se aprueba un nuevo SQL estándar que
incorpora mejoras que incluyen triggers, procedimientos, funciones,… y otras características de las bases de da-
tos objeto-relacionales; dicho estándar se conoce como SQL99.
El último estándar es el del año 2008 (SQL2008).
• Un agente SQL. Entendido como cualquier elemento que cause la ejecución de instrucciones SQL que serán
recibidas por un cliente SQL
• Una implementación SQL. Se trata de un procesador software capaz de ejecutar las instrucciones pedidas
por el agente SQL. Una implementación está compuesta por:
- Un cliente SQL. Software conectado al agente que funciona como interfaz entre el agente SQL y el ser-
vidor SQL. Sirve para establecer conexiones entre sí mismo y el servidor SQL.
- Un servidor SQL (puede haber varios). El software encargado de manejar los datos a los que la instruc-
ción SQL lanzada por el agente hace referencia. Es el software que realmente realiza la instrucción, los
datos los devuelve al cliente.
Ejecución embebida
Las instrucciones SQL se colocan como parte del código de otro lenguaje que se considera host (C, Java, Pascal,
Visual Basic,...). Al compilar el código se utiliza un precompilador de la propia base de datos para traducir el SQL
y conectar la aplicación resultado con la base de datos a través de un software adaptador (driver) como JDBC u
ODBC por ejemplo.
124
Base de Datos
Ejecución dinámica
Se trata de SQL incrustado en módulos especiales que pueden ser invocados una y otra vez desde distintas apli-
caciones.
• SELECT. Se trata del comando que permite realizar consultas sobre los datos de la base de datos. Obtiene
datos de la base de datos. A ésta parte del lenguaje se la conoce como DQL (Data Query Language, Lengua-
je de consulta de datos); pero es parte del DML del lenguaje.
• DML, Data Manipulation Language (Lenguaje de manipulación de datos). Modifica filas (registros) de la
base de datos. Lo forman las instrucciones INSERT, UPDATE, MERGE y DELETE.
• DDL, Data Definition Language (Lenguaje de definición de datos). Permiten modificar la estructura de las
tablas de la base de datos. Lo forman las instrucciones CREATE, ALTER, DROP, RENAME y TRUNCATE.
• DCL, Data Control Language (Lenguaje de control de datos). Administran los derechos y restricciones de los
usuarios. Lo forman las instrucciones GRANT y REVOKE.
• Instrucciones de control de transacciones (DTL). Administran las modificaciones creadas por las instruccio-
nes DML. Lo forman las instrucciones ROLLBACK y COMMIT. Se las considera parte del DML.
2. Cláusulas. Son palabras especiales que permiten modificar el funcionamiento de un comando (WHERE, ORDER BY,…).
3. Operadores. Permiten crear expresiones complejas. Pueden ser aritméticos (+,-,*,/,...) lógicos (>, <, !=,<>, AND, OR,...).
5. Literales. Valores concretos para las consultas: números, textos, caracteres,... Ejemplos: 2, 12.34, ‘Avda Cardenal
Cisneros’.
125
Analista de Sistemas
DDL
El DDL es la parte del lenguaje SQL que realiza la función de definición de datos del SGBD. Fundamentalmente se
encarga de la creación, modificación y eliminación de los objetos de la base de datos (es decir de los metadatos).
Por supuesto es el encargado de la creación de las tablas.
Cada usuario de una base de datos posee un esquema. El esquema suele tener el mismo nombre que el usuario
y sirve para almacenar los objetos de esquema, es decir los objetos que posee el usuario.
Esos objetos pueden ser: tablas, vistas, índices y otros objetos relacionados con la definición de la base de datos.
Los objetos son manipulados y creados por los usuarios. En principio sólo los administradores y los usuarios pro-
pietarios pueden acceder a cada objeto, salvo que se modifiquen los privilegios del objeto para permitir el acceso
a otros usuarios.
Hay que tener en cuenta que ninguna instrucción DDL puede ser anulada por una instrucción ROLLBACK. Es de-
cir, las instrucciones DDL generan acciones que no se pueden deshacer (salvo que dispongamos de alguna copia
de seguridad).
El comando SQL de creación de una base de datos es CREATE DATABASE. Este comando crea una base de datos
con el nombre que se indique. Ejemplo:
Creación de tablas
Es la orden SQL que permite crear una tabla. Por defecto será almacenada en el espacio y esquema del usuario
que crea la tabla. Sintaxis:
126
Base de Datos
Tipos de datos
A la hora de crear tablas, hay que indicar el tipo de datos de cada campo. Necesitamos pues conocer los distintos
tipos de datos.
Gráfico 83
Tipos de datos numéricos.
Gráfico 84
Tipos de datos texto.
127
Analista de Sistemas
Gráfico 85 – Tipos de datos fecha.
Generalmente, estos datos son imágenes, archivos de sonido y otros objetos multimedia; a veces se almacenan
como BLOB código de binarios.
El término blob se refería originalmente a pedazos amorfos de código, y fue inventado por Jim Starkey. Con el
tiempo, Terry McKiever, un encargado de mercadotecnia, ideó un acrónimo: Basic Large OBject (objeto grande
básico). Pero fue Informix quien ideó el actual acrónimo para BLOB.
El tipo de dato y su definición se introdujeron para representar datos que anteriormente no estaban definidos en
las bases de datos para computadoras, pero que se hicieron posible al abaratarse los discos de almacenamiento.
Dominio
En SQL es posible especificar directamente el tipo de dato para cada atributo, como se mostró en el ejemplo an-
terior. Pero también se pueden declarar dominios, y usar el nombre de éstos. Esto facilita hacer cambios en los
tipos de datos (cambiando sólo el dominio y no cada dato declarado). Por ejemplo, podemos crear el dominio
TIPO_RUT con la siguiente instrucción:
128
Base de Datos
Modificación – Alter
Este comando permite modificar la estructura de un objeto- Se pueden agregar / quitar campos a una tabla, mo-
dificar el tipo de un campo, agregar / quitar índices a una tabla, modificar un trigger, etc.
Ejemplo 1 (renombrar una tabla):
Permite añadir nuevas columnas a la tabla. Se deben indicar su tipo de datos y sus propiedades si es necesario
(al estilo de CREATE TABLE). Las nuevas columnas se añaden al final, no se puede indicar otra posición (hay que
recordar que el orden de las columnas no importa).
Eliminación – Drop
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, proce-
dimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia
ALTER.
Ejemplo 1:
DROP TABLE tabla nombre
Ejemplo 2:
ALTER TABLE nombre Tabla DROP(columna [,columnaSiguiente,...]);
Elimina la columna indicada de manera irreversible e incluyendo los datos que contenía.
Restricciones
Una restricción es una condición de obligado cumplimiento para una o más columnas de la tabla. A cada res-
tricción se le pone un nombre, en el caso de no poner un nombre (algo poco recomendable) entonces el propio
SGBD le coloca el nombre que es un mnemotécnico con el nombre de tabla, columna y tipo de restricción.
129
Analista de Sistemas
Restricciones UNIQUE
• Si no se especifica CLUSTERED o NONCLUSTERED para una restricción UNIQUE, de manera predeterminada
se utiliza NONCLUSTERED.
• Cada restricción UNIQUE genera un índice. El número de restricciones UNIQUE no puede hacer que el nú-
mero de índices de la tabla exceda de 249 índices no agrupados y 1 índice agrupado.
Definiciones DEFAULT
• Una columna sólo puede tener una definición DEFAULT.
• Una definición DEFAULT puede contener valores constantes, funciones, funciones niládicas SQL-92 o NULL.
La tabla muestra las funciones niládicas y los valores que devuelven para el valor predeterminado durante
la ejecución de una instrucción INSERT.
• En una definición DEFAULT, constant_expression no puede hacer referencia a otra columna de la tabla o a
otras tablas, vistas o procedimientos almacenados.
• Las definiciones DEFAULT no se pueden crear sobre columnas con un tipo de datos timestamp o columnas
con una propiedad IDENTITY.
• Las definiciones DEFAULT no se pueden crear para columnas con tipos de datos definidos por el usuario, si
éstos están enlazados a un objeto predeterminado.
130
Base de Datos
Restricciones CHECK
• Una columna puede tener cualquier número de restricciones CHECK y la condición puede incluir varias
expresiones lógicas combinadas con AND y OR. Varias restricciones CHECK para una columna se validan en
el orden en que se crean.
• La condición de búsqueda debe dar como resultado una expresión booleana y no puede hacer referencia a
otra tabla.
• Una restricción CHECK en el nivel de columna sólo puede hacer referencia a la columna restringida, y una
restricción CHECK en el nivel de tabla sólo puede hacer referencia a columnas de la misma tabla.
Las restricciones CHECK y las reglas sirven para la misma función de validación de los datos durante las ins-
trucciones INSERT y DELETE.
• Cuando hay una regla y una o más restricciones CHECK para una columna o columnas, se evalúan todas las
restricciones.
131
Analista de Sistemas
Resumen tema 13
Funcionamiento del SQL
Según la normativa ANSI/ISO cuando se ejecuta SQL, existen los siguientes elementos a tener en cuenta en todo
el entorno involucrado en la ejecución de instrucciones SQL:
a. Un agente SQL. Entendido como cualquier elemento que cause la ejecución de instrucciones SQL.
b. Una implementación SQL. Se trata de un procesador software capaz de ejecutar las instrucciones.
• Ejecución directa sql interactivo: las instrucciones SQL se introducen a través de un cliente que está directa-
mente conectado al servidor SQL.
• Ejecución embebida: las instrucciones SQL se colocan como parte del código de otro lenguaje. Al compilar
el código se utiliza un precompilador de la propia base de datos para traducir el SQL y conectar la aplicación
resultado con la base de datos por medio de un ODBC.
• Ejecución entre cliente gráficos: se trata de software que permite conectar a la base de datos a través de un
cliente.
• Ejecución dinámica: se trata de SQL incrustado en módulos especiales que pueden ser invocados una y otra
vez desde distintas aplicaciones.
•DML, Data Manipulation Language (Lenguaje de manipulación de datos). INSERT, UPDATE, MERGE y DELETE.
•DDL, Data Definition Language (Lenguaje de definición de datos). CREATE, ALTER, DROP y RENAME.
•DCL, Data Control Language (Lenguaje de control de datos). GRANT y REVOKE.
•Instrucciones de control de transacciones (DTL).DML. ROLLBACK y COMMIT. Se las considera parte del DML.
2. Cláusulas. Son palabras especiales que permiten modificar el funcionamiento de un comando (WHERE,
ORDER BY,...).
3. Operadores. Permiten crear expresiones complejas. Pueden ser aritméticos (+,-,*,/,...) lógicos (>, <, !=,<>,
AND, OR,...).
5. Literales. Valores concretos para las consultas: números, textos, caracteres,... Ejemplos: 2, 12.34, ‘Avda. Car-
denal Cisneros’.
132
Base de Datos
DDL
El DDL es la parte del lenguaje SQL que realiza la función de definición de datos del SGBD. Fundamentalmente se
encarga de la creación, modificación y eliminación de los objetos de la base de datos.
Creación de objetos
Creación de tablas
Es la orden SQL que permite crear una tabla.
CREATE TABLE [esquema.] nombre De Tabla
(nombreDeLaColumna1 tipo De Datos [, ...]);
Dominio
En SQL es posible declarar dominios, y usar el nombre de éstos. Esto facilita hacer cambios enlos tipos de
datos (cambiando sólo el dominio y no cada dato declarado).
Modificación de objetos
Este comando permite modificar la estructura de un objeto- Se pueden agregar / quitar campos a una tabla, etc.
Modificar tabla
ALTER TABLE nombre Viejo RENAME TO nombre Nuevo;
Eliminación de objetos
Este comando elimina un objeto de la base de datos.
Eliminar tabla.
Eliminar columna.
Restricciones
Una restricción es una condición de obligado cumplimiento para una o más columnas de la tabla.
133
Analista de Sistemas
Ejercitación
1. Escribir la sintaxis para crear una base de datos llamada RRHH.
2. Escribir la sintaxis para crear la tabla empleados con los campos DNI numérico de 8, nombre carácter de 50,
apellido carácter 50.
3. Escribir la sintaxis para modificar la tabla empleados y agregar la columna teléfono numérico de 20.
4. Escribir la sintaxis para modificar de la tabla empleados el campo DNI y definirlo como clave primaria.
5. Escribir la sintaxis para crear la tabla salarios con los campos categoría carácter de 50, descripción carácter de
50, importe decimal de 8 enteros y 2 decimales.
6. Escribir la sintaxis para borrar la columna descripción de la tabla salarios.
7. Escribir las sintaxis para borrar las tablas empleados y salarios.
8. Escribir las sintaxis para borrar la base RRHH.
Investigación
1. Investigue los tipos de datos en http://msdn.microsoft.com/es-es/library/ms187752.aspx
2. Indague sobre lenguaje sql en http://www.sqlserverya.com.ar
3. Leo el Diseño de sistemas de Información - Burch J.G., Grudnistki G. Ed. Megabyte. Capitulo 8 Calculo relacional,
Quel y Qbe
134
Base de Datos
Tema Nº 14
DML
Es una de las partes fundamentales del lenguaje SQL. El DML (Data Manipulation Language) lo forman las instruc-
ciones capaces de modificar los datos de las tablas. Al conjunto de instrucciones DML que se ejecutan consecu-
tivamente, se las llama transacciones y se pueden anular todas ellas o aceptar, ya que una instrucción DML no es
realmente efectuada hasta que no se acepta (COMMIT).
Inserción
La adición de datos a una tabla se realiza mediante la instrucción INSERT. Su sintaxis fundamental es:
La tabla representa la tabla a la que queremos añadir el registro y los valores que siguen a VALUES son los valo-
res que damos a los distintos campos del registro. Si no se especifica la lista de campos, la lista de valores debe
seguir el orden de las columnas según fueron creados (es el orden de columnas según las devuelve el comando
DESCRIBE).
La lista de campos a rellenar se indica si no queremos rellenar todos los campos. Los campos no rellenados ex-
plícitamente con la orden INSERT, se rellenan con su valor por defecto (DEFAULT) o bien con NULL si no se indicó
valor alguno. Si algún campo tiene
restricción de obligatoriedad (NOT NULL), ocurrirá un error si no rellenamos el campo con algún valor.
Por ejemplo, supongamos que tenemos una tabla de clientes cuyos campos son: dni, nombre, apellido1, ape-
llido2, localidad y dirección; supongamos que ese es el orden de creación de los campos de esa tabla y que la
localidad tiene como valor por defecto Palencia y la dirección no tiene valor por defecto. En ese caso estas dos
instrucciones son equivalentes:
Son equivalentes puesto que en la segunda instrucción los campos no indicados se rellenan con su valor por de-
fecto y la dirección no tiene valor por defecto. La palabra DEFAULT fuerza a utilizar ese valor por defecto.
El uso de los distintos tipos de datos debe de cumplir los requisitos ya comentados en apartados anteriores.
Actualización
La modificación de los datos de los registros lo implementa la instrucción UPDATE.
Sintaxis:
UPDATE tabla
SET columna1=valor1 [,columna2=valor2...]
[WHERE condición]
Se modifican las columnas indicadas en el apartado SET con los valores indicados. La cláusula WHERE permite
especificar qué registros serán modificados.
135
Analista de Sistemas
Ejemplos:
El primer dato actualiza la provincia de los clientes de Orense para que aparezca como Ourense.
El segundo UPDATE incrementa los precios en un 16%. La expresión para el valor puede ser todo lo compleja que
se desee (en el ejemplo se utilizan funciones de fecha para conseguir que los partidos que se juagaban hoy, pasen
a jugarse el martes):
Borrados de registros
Se realiza mediante la instrucción DELETE:
Es más sencilla que las anteriores, elimina los registros de la tabla que cumplan la condición indicada. Ejemplo:
Hay que tener en cuenta que el borrado de un registro no puede provocar fallos de integridad y que la opción de
integridad ON DELETE CASCADE hace que no sólo se borren los registros indicados en el SELECT, sino todos los
relacionados.
Commit
La instrucción COMMIT hace que los cambios realizados por la transacción sean definitivos, irrevocables. Sólo se
debe utilizar si estamos de acuerdo con los cambios, conviene asegurarse mucho antes de realizar el COMMIT ya
que las instrucciones ejecutadas pueden afectar a miles de registros.
Además el cierre correcto de la sesión da lugar a un COMMIT, aunque siempre conviene ejecutar explícitamente
esta instrucción a fin de asegurarnos de lo que hacemos.
Rollback
Esta instrucción regresa a la instrucción anterior al inicio de la transacción, normalmente el último COMMIT, la
última instrucción DDL o DCL o al inicio de sesión.
Anula definitivamente los cambios, por lo que conviene también asegurarse de esta operación.
Un abandono de sesión incorrecto o un problema de comunicación o de caída del sistema dan lugar a un ROLL-
BACK implícito.
136
Base de Datos
Sintaxis:
SELECT * | {[DISTINCT] columna | expresión [[AS] alias], ...}
FROM tabla;
Donde
Ejemplos:
/* Selección de todos los registros de la tabla clientes */
SELECT * FROM Clientes;
Cálculo
Los operadores + (suma), - (resta), * (multiplicación) y / (división), se pueden utilizar para hacer cálculos en las
consultas. Cuando se utilizan como expresión en una consulta SELECT, no modifican los datos originales sino que
como resultado de la vista generada
por SELECT, aparece un nueva columna.
137
Analista de Sistemas
Ejemplo:
SELECT nombre, precio,precio*1.21 FROM articulos;
Esa consulta obtiene tres columnas. La tercera tendrá como nombre la expresión utilizada, para poner un alias
basta utilizar dicho alias tras la expresión:
La prioridad de esos operadores es la normal: tienen más prioridad la multiplicación y división, después la suma
y la resta. En caso de igualdad de prioridad, se realiza primero la operación que esté más a la izquierda. Como es
lógico se puede evitar cumplir esa prioridad usando paréntesis; el interior de los paréntesis es lo que se ejecuta
primero.
Cuando una expresión aritmética se calcula sobre valores NULL, el resultado es el propio valor NULL.
Se puede utilizar cualquiera de los operadores aritméticos: suma (+), resta (-), multiplicación (*), división (/). Como
es habitual, la multiplicación y la división tienen preferencia sobre la suma y la resta en el orden de ejecución de
la instrucción; dicho orden se puede alterar mediante el uso de los paréntesis.
Condiciones
Se pueden realizar consultas que restrinjan los datos de salida de las tablas. Para ello se utiliza la cláusula WHERE.
Esta cláusula permite colocar una condición que han de cumplir todos los registros, los que no la cumplan no
aparecen en el resultado.
Ejemplo:
Gráfico 87 – Operadores de comparación.
138
Base de Datos
Ejemplos:
/* Obtiene a las personas de entre 25 y 50 años*/
SELECT nombre, apellido1,apellido2 FROM personas
WHERE edad>=25 AND edad<=50;
Between
El operador BETWEEN nos permite obtener datos que se encuentren en un rango. Uso:
SELECT tipo,modelo,precio FROM piezas
WHERE precio BETWEEN 3 AND 8;
In
Permite obtener registros cuyos valores estén en una lista de valores:
SELECT tipo,modelo,precio FROM piezas
WHERE precio IN (3,5, 8);
Obtiene piezas cuyos precios sean 3, 5 u 8 (no valen ni el precio 4 ni el 6, por ejemplo).
Like
Se usa sobre todo con textos, permite obtener registros cuyo valor en un campo cumpla una condición textual.
LIKE utiliza una cadena que puede contener estos símbolos:
Gráfico 89 – Operador like.
Ejemplos:
/* Selecciona nombres que empiecen por S */
SELECT nombre FROM personas WHERE nombre LIKE ‘S%’;
139
Analista de Sistemas
Is null
Devuelve verdadero si el valor que examina es nulo:
Esa instrucción selecciona a la gente que no tiene teléfono. Se puede usar la expresión IS NOT NULL que devuelve
verdadero en el caso contrario, cuando la expresión no es nula.
Agrupaciones
Es muy común utilizar consultas en las que se desee agrupar los datos a fin de realizar cálculos en vertical, es decir
calculados a partir de datos de distintos registros. Para ello se utiliza la cláusula GROUP BY que permite indicar en
base a qué registros se realiza la agrupación. Con GROUP BY la instrucción SELECT queda de esta forma:
SELECT listaDeExpresiones
FROM listaDeTablas
[JOIN tablasRelacionadasYCondicionesDeRelación]
[WHERE condiciones]
[GROUP BY grupos]
[HAVING condicionesDeGrupo]
[ORDER BY columnas];
En el apartado GROUP BY, se indican las columnas por las que se agrupa. La función de este apartado es crear un
único registro por cada valor distinto en las columnas del grupo. Si por ejemplo agrupamos en base a las colum-
nas tipo y modelo en una tabla de
existencias, se creará un único registro por cada tipo y modelo distintos:
SELECT tipo,modelo
FROM existencias
GROUP BY tipo,modelo;
Gráfico 94
Funciones
del group by
140
Base de Datos
Todas las funciones de la tabla anterior se calculan para cada elemento del grupo, así la expresión:
Cláusula Having
A veces se desea restringir el resultado de una expresión agrupada, por ejemplo con:
Resumen tema 14
DML
Es una de las partes fundamentales del lenguaje SQL. El DML (Data Manipulation Language) lo forman las instruc-
ciones capaces de modificar los datos de las tablas.
Inserción
La adición de datos a una tabla se realiza mediante la instrucción INSERT.
La tabla representa la tabla a la que queremos añadir el registro y los valores que siguen a VALUES son los valo-
res que damos a los distintos campos del registro. Si no se especifica la lista de campos, la lista de valores debe
seguir el orden de las columnas según fueron creados (es el orden de columnas según las devuelve el comando
DESCRIBE).
Actualización
La modificación de los datos de los registros lo implementa la instrucción UPDATE.
Sintaxis:
UPDATE tabla
SET columna1=valor1 [,columna2=valor2...]
[WHERE condición]
Se modifican las columnas indicadas en el apartado SET con los valores indicados. La cláusula WHERE permite
especificar qué registros serán modificados.
141
Analista de Sistemas
Borrados de registros
Se realiza mediante la instrucción DELETE:
Es más sencilla que las anteriores, elimina los registros de la tabla que cumplan la condición indicada.
Commit
La instrucción COMMIT hace que los cambios realizados por la transacción sean definitivos, irrevocables.
Rollback
Esta instrucción regresa a la instrucción anterior al inicio de la transacción, normalmente el último COMMIT.
Anula definitivamente los cambios, por lo que conviene también asegurarse de esta operación.
Sintaxis:
SELECT * | {[DISTINCT] columna | expresión [[AS] alias], ...}
FROM tabla;
Cálculo
Los operadores + (suma), - (resta), * (multiplicación) y / (división), se pueden utilizar para hacer cálculos en las
consultas. Cuando se utilizan como expresión en una consulta SELECT, no modifican los datos originales sino que
como resultado de la vista generada
por SELECT, aparece un nueva columna.
Condiciones
Se pueden realizar consultas que restrinjan los datos de salida de las tablas. Para ello se utiliza la cláusula WHERE.
Esta cláusula permite colocar una condición que han de cumplir todos los registros, los que no la cumplan no
aparecen en el resultado.
Between
El operador BETWEEN nos permite obtener datos que se encuentren en un rango.
In
Permite obtener registros cuyos valores estén en una lista de valores.
142
Base de Datos
Like
Se usa sobre todo con textos, permite obtener registros cuyo valor en un campo cumpla una condición textual.
LIKE utiliza una cadena que puede contener los símbolos % -:
Is null
Devuelve verdadero si el valor que examina es nulo.
Agrupaciones
Es muy común utilizar consultas en las que se desee agrupar los datos a fin de realizar cálculos en vertical, es decir
calculados a partir de datos de distintos registros. Para ello se utiliza la cláusula GROUP BY que permite indicar en
base a qué registros se realiza la agrupación.
Cláusula Having
A veces se desea restringir el resultado de una expresión agrupada, para ello utilizamos la cláusula having.
Autoevaluación
1. ¿Con que clausula busco los campos de una tabla cuando sean nulos?
2. ¿Con que clausula puedo realizar agrupaciones de campos?
3. ¿Cuál es el operador permite obtener datos que se encuentren en un rango?
4. ¿Cómo puedo buscar datos que se encuentran en una lista?
5. ¿Cómo se anula definitivamente los cambios, de una transacción?
6. ¿Qué hace un COMMIT?
7. ¿Cómo puedo restringir el resultado de una expresión agrupada?
8. ¿Qué utilizaría sintaxis utilizaría para mostrar ventas por regiones de la tabla ventas (región, sucursal, vendedor,
factura, importe)?
Investigación
1. Visite: http://msdn.microsoft.com/en-us/library/aa258243(v=sql.80).aspx
2. Visite: http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/commit_statement.htm
3. Visite http://dev.mysql.com/doc/refman/5.0/en/commit.html
4. Busque en los mismos sitios para rollback.
143
Analista de Sistemas
Tema Nº 15
Ejemplos de lo aprendido
En los siguientes ejemplos veremos, el uso del SELECT, la creación de campos calculados, el uso de operadores
de funciones agregadas y de group by.
1. Mostrar las lista de las oficinas de ventas con sus objetivos y ventas reales.
SELECT CIUDAD, OBJETIVO, VENTAS
FROM Oficinas
GO
Nótese que en esta última consulta se ha empleado la cláusula WHERE para restringir el número de filas a devol-
ver, a diferencia de la primera que le devolvía todas las filas.
En este último ejemplo se obtiene un único valor que representa una pequeña tabla, aunque conste de una sola
fila y una sola columna. Este valor es el resultado de sumar todos los valores del campo VENTAS y dividirlo entre
el número de filas.
5. Mostrar los nombres y fechas de contratos de los vendedores que superaron la barrera de los 500,000
SELECT NOMBRE, CONTRATO
FROM REPVENTAS
WHERE VENTAS>500000
GO
En este último ejemplo no se obtienen filas, con lo cual queda demostrado que no siempre las consultas deben
devolver filas, esto representa que ningún registro cumplió con la condición expresada en la cláusula WHERE.
6. Mostrar la CIUDAD, REGION y el IMPORTE de por encima o por debajo del OBJETIVO
SELECT CIUDAD, REGION, (VENTAS - OBJETIVO) As SITUACION FROM OFICINAS
GO
Nótese que en el ejemplo se emplea la cláusula As que permite asignar un encabezado de columna al campo
calculado (VENTAS – OBJETIVO).
De los resultados podemos observar que las ciudades de Chicago y Denver aun se encuentran por debajo del
objetivo, mientras que las demás oficinas ya superaron el objetivo.
144
Base de Datos
Similar al ejemplo anterior se emplea un campo calculado al cual se le asigna un encabezado a través del empleo
de la cláusula As.
8. Muestra que sucedería si se eleva el monto de la cuota decada vendedor en un 3% de sus ventas anuales
SELECT NOMBRE, CUOTA, (CUOTA*1.03) As CUOTAPROYECTADA
FROM REPVENTAS
GO
10. Mostrar los campos CIUDAD y VENTAS separados por la cadena ‘ tiene ventas de ‘
SELECT CIUDAD, ‘ tiene ventas de ‘ , VENTAS
FROM OFICINAS
GO
El caracter * permite recuperar todos los campo y todas las filas de la tabla que se está consultando.
12. Mostrar todos los campos de la tabla OFICINAS, asi como también una columna que indique si se alcanzo o
no el objetivo.
SELECT *, (VENTAS - OBJETIVO) as SITUACION
FROM OFICINAS
GO
14. Mostrar los vendedores que están dirigidos por Jorge Castro (código 104)
SELECT NOMBRE, VENTAS
FROM REPVENTAS
WHERE DIRECTOR = 104
GO
145
Analista de Sistemas
16. Mostrar las oficinas que están por debajo del 80% del objetivo
SELECT CIUDAD, VENTAS, OBJETIVO
FROM OFICINAS
WHERE VENTAS < (0.8 * OBJETIVO)
GO
19. Mostrar los clientes que tiene un límite de crédito entre 45000 y 60000
SELECT EMPRESA, LIMITE_CREDITO FROM CLIENTES
WHERE LIMITE_CREDITO BETWEEN 45000 AND 60000
GO
20. Mostrar a los vendedores que trabajan en New York, Denver, o Atlanta
SELECT NOMBRE, CUOTA, VENTAS FROM REPVENTAS
WHERE OFICINA_REP IN (11, 13, 22)
GO
22. Mostrar a los clientes cuya razón social incluye una Y en su nombre
SELECT EMPRESA, LIMITE_CREDITO
FROM CLIENTES
WHERE EMPRESA LIKE ‘%Y%’
GO
146
Base de Datos
25. Mostrar a los vendedores que tienen ventas por debajo de sus cuotas o ventas menores a 300000
SELECT NOMBRE, CUOTA, VENTAS
FROM REPVENTAS
WHERE VENTAS < CUOTA
OR VENTAS < 300000
GO
26. Mostrar a los vendedores que tienen ventas por debajo de sus cuotas y ventas menores a 300000
SELECT NOMBRE, CUOTA, VENTAS
FROM REPVENTAS
WHERE VENTAS < CUOTA
AND VENTAS < 300000
GO
28. Mostrar las oficinas ordenadas por las ventas en forma descendente:
SELECT CIUDAD, REGION, VENTAS
FROM OFICINAS
ORDER BY VENTAS DESC
GO
29. Mostrar las oficinas organizadas en forma descendente por el rendimiento de ventas.
SELECT CIUDAD, REGION, (VENTAS-OBJETIVO) AS RENDIMIENTO
FROM OFICINAS
ORDER BY 3 DESC
GO
30. Mostrar las oficinas organizadas por REGION y dentro de cada región por el rendimiento de las VENTAS en
forma descendente.
SELECT CIUDAD, REGION, (VENTAS-OBJETIVO) AS RENDIMIENTO
FROM OFICINAS
ORDER BY REGION, 3 DESC
GO
Nótese que la función AVG primero suma todos los valores de la columna especificada en el argumento y luego
divide este total entre el número de filas.
32. Mostrar la suma total de las cuotas y de las ventas de todos los vendedores
SELECT SUM(CUOTA), SUM(VENTAS)
FROM REPVENTAS
GO
Nótese que la función SUM suma todos los valores de la columna especificada en el argumento.
147
Analista de Sistemas
40. Mostrar los valores totales por cada cliente y por cada vendedor
SELECT REP, CLIE, SUM(IMPORTE)
FROM PEDIDOS
GROUP BY REP, CLIE
ORDER BY REP
GO
148
Base de Datos
41. Mostrar un informe que calcule el total de importes por cada cliente, vendedor, ordenados por vendedor y
luego por cliente.
SELECT REP, CLIE, IMPORTE
FROM PEDIDOS
ORDER BY REP, CLIE
COMPUTE SUM(IMPORTE) BY REP, CLIE
COMPUTE SUM(IMPORTE) , AVG(IMPORTE) BY REP
Select anidados.
46. Listar los nombres de los estudiantes cuyo apellido comience con la letra G?
SELECT nombre
FROM estudiante
WHERE nombre LIKE “* G*”
149
Analista de Sistemas
47. ¿Quiénes son los autores del libro “Visual Studio Net”, listar solamente los nombres?
SELECT nombre
FROM autor
WHERE idautor IN
(
SELECT idautor
FROM libaut
WHERE idlibro IN
(
SELECT idlibro
FROM libro
WHERE titulo=’Visual Studio Net’
)
)
150
Base de Datos
52. Listar los nombres de los estudiantes que se prestaron Libros de Base de Datos
}
SELECT *
FROM estudiante
WHERE idlector IN
(
SELECT idlector
FROM prestamo
WHERE idlibro IN
(
SELECT idlibro
FROM libro
WHERE area=’Base de Datos’
)
)
55. Listar los títulos de los libros que debían devolverse el 10/04/07
SELECT *
FROM libro
WHERE idlibro IN
(
SELECT idlibro
FROM prestamo
WHERE fechadevolucion=’04/10/07’
AND devuelto=’No’
)
151
Analista de Sistemas
57. Listar los datos de los estudiantes cuya edad es mayor al promedio
SELECT *
FROM estudiante
WHERE edad >
(
SELECT avg(edad)
FROM estudiante
)
Ejercitación
De las tablas:
CLIENTE(codigo,nombre,domicilio,provincia)
PRODUCTO(codigo_producto,nombre_producto)
ITEM_VENTAS(número_factura,codigo_producto,cantidad,precio)
VENTAS(numero_factura,codigo_cliente,fecha)
Investigación
1. Investigue como se harían las mismas consultas en Oracle o MySQL.
2. Visite: http://msdn.microsoft.com/en-us/sqlserver/bb671432
152
Base de Datos
Tema Nº 16
Introducción a SQL Server 2000
SQL Server 2000 es un sistema de gestión de bases de datos relacionales (SGDBR o RDBMS: Relational Database
Management System) diseñado para trabajar con grandes cantidades de información y la capacidad de cumplir
con los requerimientos de proceso de información para aplicaciones comerciales y sitios Web.
SQL Server 2000 ofrece el soporte de información para las tradicionales aplicaciones Cliente/Servidor, las cuales
están conformadas por una interfaz a través de la cual los clientes acceden a los datos por medio de una LAN.
La hoy emergente plataforma NET exige un gran porcentaje de distribución de recursos, desconexión a los servi-
dores de datos y un entorno descentralizado, para ello sus clientes deben ser livianos, tales como los navegadores
de Internet los cuales accederán
a los datos por medio de servicios como el Internet Information Services(IIS).
SQL Server 2000 está diseñado para trabajar con dos tipos de bases de datos :
• OLTP (OnLine Transaction Processing) Son bases de datos caracterizadas por mantener una gran cantidad
de usuarios conectados concurrentemente realizando ingreso y/o modificación de datos. Por ejemplo:
entrada de pedidos en línea, inventario, contabilidad o facturación.
• OLAP (OnLine Analytical Processing) Son bases de datos que almacenan grandes cantidades de datos que
sirven para la toma de decisiones, como por ejemplo las aplicaciones de análisis de ventas.
SQL Server puede ejecutarse sobre redes basadas en Windows Server así como sistema de base de datos de es-
critorio en máquinas Windows NT Workstation, Windows Millenium y Windows 98.
Los entornos Cliente/Servidor, están implementados de tal forma que la información se guarde de forma cen-
tralizada en un computador central (servidor), siendo el servidor responsable del mantenimiento de la relación
entre los datos, asegurarse del correcto almacenamiento de los datos, establecer restricciones que controlen la
integridad de datos, etc.
Del lado cliente, este corre típicamente en distintas computadoras las cuales acceden al servidor a través de una
aplicación, para realizar la solicitud de datos los clientes emplean el Structured Query Language (SQL), este len-
guaje tiene un conjunto de
comandos que permiten especificar la información que se desea recuperar o modificar.
Existen muchas formas de organizar la información pero una de las formas más efectivas de hacerlo está repre-
sentada por las bases de datos relacionales, las cuales están basadas en la aplicación de la teoría matemática de
los conjuntos al problema de la organización de los datos. En una base de datos relacional, los datos están orga-
nizados en tablas (llamadas relaciones en la teoría relacional).
Una tabla representa una clase de objeto que tiene importancia para una organización.
Por ejemplo, se puede tener una base de datos con una tabla para empleados, otra para clientes y otra para pro-
ductos del almacén. Las tablas están compuestas de columnas y filas (atributos y tuplas en la teoría relacional).
La tabla Empleados tendría columnas para el nombre, el apellido, código del empleado, departamento, categoría
laboral y cargo. Cada fila representa una instancia del objeto representado por la tabla. Por ejemplo, una fila de la
tabla Empleados representa el empleado cuyo Id. de empleado es 12345.
Al organizar los datos en tablas, se pueden encontrar varias formas de definirlas. La teoría de las bases de datos
relacionales define un proceso, la normalización, que asegura que el conjunto de tablas definido organizará los
datos de manera eficaz.
153
Analista de Sistemas
A continuación aparecerá una ventana que da la bienvenida al proceso de instalación, pulse Siguiente (Siguiente)
en la siguiente pantalla:
154
Base de Datos
A continuación aparece una pantalla que le solicitará elegir entre una instalación local o una instalación remota,
pulse Siguiente (Siguiente) en la siguiente pantalla:
Si es la primera vez que instala SQL Server 2000 aparecerá la siguiente pantalla:
155
Analista de Sistemas
156
Base de Datos
Luego de aceptar las condiciones del licenciamiento aparecerá una caja de diálogo solicitándole que seleccione
uno de los tipos de instalación, para ello tendrá las siguientes opciones:
Sólo Herramientas Cliente (Client Tools only), cuando requiera instalar herramientas clientes para administrar un
servidor SQL Server existente, así como también los componentes de conectividad los libros en línea y opcional-
mente los ejemplos.
Servidor y Herramientas Cliente (Server and Client Tools), selecciona esta opción cuando requieras instalar un
servidor SQL Server 2000, el cual deba contar con todas las herramientas.
Sólo Conectividad (Connectivity Only), seleccione esta opción para instalar las librerías de conectividad para los clientes.
Para cualquiera de las tres opciones se instalará previamente MDAC 2.6, para la instalación que estamos realizan-
do seleccione Servidor y Herramientas Cliente (Server and Client Tools) y luego pulse Siguiente (Siguiente):
A continuación aparecerá una caja de diálogo donde especificará el nombre de la instancia que está instalando,
si es la primera vez En forma predeterminada tomará el nombre del equipo donde se encuentra instalando:
157
Analista de Sistemas
Luego de pulsar Siguiente (Siguiente), tendrá la posibilidad de seleccionar el tipo de instalación a ejecutar, se-
leccione Personalizada (Custom) para que pueda observar las diferentes opciones que configura el instalador, en
esta primera pantalla se muestran los espacios requeridos así como también las carpetas donde se almacenaran
las diferentes librerías de SQL Server:
Luego de pulsar Siguiente (Siguiente) aparecerá una lista que le permitirá seleccionar los componentes a instalar,
desplazar la lista Componentes (Components) y activar las casillas Ejemplos de Código (Code Simples):
158
Base de Datos
Inmediatamente se le solicitará una cuenta para los servicios, si se encuentra trabajando en un entorno de red,
asigne una cuenta de un usuario que pertenezca al grupo Administradores (Administrators) del Dominio:
159
Analista de Sistemas
A continuación podrá determinar el conjunto de caracteres con los cuales trabajará, asimismo podrá determinar
si las consultas distinguirán o no las mayúsculas de las minúsculas.
Activar las librerías de red de acuerdo a los usuarios que tendrá su origen de datos:
160
Base de Datos
Luego de pulsar Siguiente (Siguiente) aparecerá una pantalla indicándole que se ha completado el trabajo de
recolección de información, pulse Siguiente (Siguiente) para iniciar el copiado de archivos:
Al completar la instalación se muestra la siguiente pantalla, pulse Finalizar (Finish) para finalizar:
161
Analista de Sistemas
Una vez finalizada la instalación debe revisar la instalación para cerciorarse que el producto se ha instalado co-
rrectamente para ello puede mostrar el Administrador de Servicios (Service Manager) que le permitirá mostrar el
estado de los servicios, este utilitario tiene el siguiente aspecto:
Otra de las formas de verificar el estado de la instalación es haciendo pruebas con las sentencias a nivel del sím-
bolo del sistema que ofrece SQL Server como es el caso del utilitario OSQL, para comprobar su funcionamiento
abra una ventana del sistema y digite el siguiente comando:
162
Base de Datos
El resultado será:
Otra manera de poder verificar la instalación de SQL Server es revisar los servicios que se cargan, para ello presio-
ne el botón del menú Inicio (Start), seleccione Programas (Programs), Herramientas Administrativas (Administra-
tive Tools) y haga clic en ServiciosServices):
• MSSQL Server Este servicio es el motor de base de datos, este es el componente que procesa todas las senten-
cias del Transact-SQL y administra todos los archivos que comprometen las bases de datos del servidor, entre
sus principales funciones podemos mencionar:
1. La asignación de recursos del servidor entre múltiples usuarios concurrentes.
2. Previene los problemas lógicos, como por ejemplo prevenir que los usuarios modifiquen la misma infor-
mación al mismo tiempo.
3. Asegura la consistencia e integridad de datos.
163
Analista de Sistemas
• SQL Server Agent Este servicio trabaja junto al MSSQL Server para crear y administrar Alertas, Tareas (locales o
multiserver) y Operadores. Entre sus principales funciones podemos mencionar:
1. Las alertas proveen información acerca del estado de un proceso, como por ejemplo indicar cuando finali-
zo una tarea con éxito o fracaso.
2. Este servicio incluye un motor que permite crear tareas y programarlos para que se ejecuten automática-
mente.
3. Puede enviar correos electrónicos, puede indicar la ejecución de una tarea cuando una alerta ocurre.
• MS DTC Permite incluir múltiples orígenes de datos en una transacción, se encarga de coordinar y asegurar que
las actualizaciones sobre todos los servidores sean permanentes, y si en caso estos cambios causaran un error
deshacer todos.
• Microsoft Search Este es un servicio opcional y se encarga de realizar búsquedas sobre información tipo carác-
ter creando índices para facilitar estas consultas.
Además de ello podrá ingresar a la consola de administración de SQL Server denominada Administrador Corpo-
rativo (Administrador Empresarial), para ello siga la siguiente secuencia:
A continuación tendrá la interfaz del Administrador Corporativo (Administrador Empresarial), tal como lo mues-
tra la siguiente representación:
164
Base de Datos
Inicio de sesión
Todos los usuarios deben tener un Inicio de sesión para poder conectarse a SQL Server, para esto SQL Server re-
conoce 2 mecanismos de autentificación:
SQL Server es cuando el usuario debe proveer de un usuario y una contraseña que serán validados por el propio
SQL Server cuando el cliente intente conectarse.
Windows NT es cuando una cuenta o grupo de Windows NT controla el acceso a SQL Server, el cliente no provee
usuario y contraseña, ya que se empleará la cuenta con la que se ingresa al sistema operativo.
165
Analista de Sistemas
En la caja de diálogo haga clic sobre la ficha Seguridad, se presentará la siguiente pantalla:
Seleccione la opción “SQL Server y Windows” cuando desee brindar servicios de información a terceros por ejem-
plo a usuarios de internet. Seleccione “Sólo Windows” cuando los datos estarán disponibles sólo a los empleados
de la organización. En cualquiera de los dos casos debe pulsar Aceptar, espere por un instante mientras SQL Ser-
ver 2000 detiene los servicios y los vuelve a iniciar para hacer efectivos los cambios.
Hecho esto Ud. podrá definir sus Inicios de sesión de acceso a SQL Server, para ello realice la siguiente secuencia
desde el Administrador Empresarial:
Expanda la carpeta Seguridad del Administrador Empresarial y haga clic derecho sobre Inicios de sesión
166
Base de Datos
En la ficha Acceso a base de datos podrá especificar que el Inicio de sesión se definirá como usuario de alguna de
las bases de datos existentes. Pulse Aceptar al finalizar.
167
Analista de Sistemas
La creación de Inicios de sesión también es posible desde el Analizador de Consultas, que es una herramienta a
la cual accesamos a partir de la siguiente secuencia:
Un rol es un conjunto de derechos asignados, los cuales se convierten en una gran alternativa para agrupar un
conjunto de permisos, de tal forma que cuando se incorpore un nuevo usuario a la base de datos, ya no se le tie-
ne que dar permiso por permiso por cada uno de los objetos que requiera emplear, sino mas bien su cuenta de
usuario es agregada al rol, y si al rol tiene que asignársele acceso sobre un nuevo elemento automáticamente el
permiso o la restricción afectará a los usuarios que pertenezcan a un rol.
Los usuarios representan los usuarios que tienen acceso a la base de datos y están mapeados a un Inicio de se-
sión, aunque pueden tener diferente identificador, por ejemplo el Inicio de sesión puede tener como nombre
Jcabrera pero al definir un Usuario podemos usar Jorge.
168
Base de Datos
Después de que se crearon los Inicios de sesión para conectarse a SQL Server, se deben definir los accesos a las
bases de datos requeridas, para ello es necesario definir Usuarios en cada BD, estos usuarios permitirán controlar
el acceso a los distintos objetos incluyendo los datos que estos contienen.
Seleccione un Inicio de sesión de la lista y pulse Aceptar.
También es posible realizar esta tarea desde el Analizador de Consultas para ello emplee la siguiente secuencia
de instrucciones:
Use Northwind
GO
Sp_GrantDBAccess ‘Usuario01’
GO
169
Analista de Sistemas
Además de los Inicios de sesión y usuarios SQL Server brinda un conjunto de roles por servidor y por base de
datos que son derechos predefinidos que podrán especificarse por cada usuario de ser necesario. También es
posible crear roles personalizados.
Investigación
1. Visite la página de Microfoft – SQL server.
2. Visite http://download.oracle.com/docs/html/B10131_02/install.htm
3. Visite http://dev.mysql.com/doc/refman/5.1/en/installing.html
Bibliografía
Introducción a la informática – Mario D Albarracín, Eduardo A Lancharro, Miguel García López.Mc Graw Hill.
Organización de base de datos – James Martin. Prentice Hall.
Diseño de sistemas de Información - Burch J.G., Grudnistki G. Ed. Megabyte
Concepción y diseño de base datos del Modelo E/R al Modelo Relacional - Adoración de Miguel, Mario Piattini. Ra-ma
Sistemas de base de datos – conceptos fundamentales – Elmasri - Navathe. Pearson educación.
Sistemas de base de datos – C.J. Date – Addison-Wesley Iberoamericana.
Diseño de base de datos Problemas resueltos - Adoración de Miguel, Paloma Martinez, Elena Castro, Dolores Cua-
dra, Ana Iglesias, Carlos Nieto. Ra-ma.
170
Base de Datos
171
Analista de Sistemas
4. ¿Por qué cree que es de suma importancia la calidad de una salida o resultado de un proceso?
El resultado o saluda se basa principalmente en su calidad. Cuando hablamos de calidad nos referimos especí-
ficamente a tres requisitos que debe cumplir dicha salida: exactitud, oportunidad y relevancia.
5. Si estoy pasando una carpeta con música en mi mp3 y me aparece un cartel que no tengo espacio. ¿Qué reque-
rimiento esta no se está cumpliendo en ese proceso de copiado?
El requerimiento es el de volumen, este último se refiere a la cantidad de datos que deben procesarse en un
periodo dado.
6. Me conecto a Internet y quiero leer un diario online, abro el navegador pongo la dirección de la pagina pero no
carga las imágenes y al rato aparece una leyenda que dice expiró el tiempo de conexión con el servidor. ¿Qué
requerimiento esta no se está cumpliendo en ese proceso de cargar la web?
El requerimiento es la restricción de tiempo, entendemos por esto periodo de tiempo permitido o aceptable
entre el momento que se requieren los datos y el sistema los tiene disponible.
8. Le piden que arme un sistema de stock, analiza algunos aspectos como que el sistema se pueda armar, que
existan los instrumentos para llevarlo a cabo, es decir el hardware que pueda soportar dicho sistema. Revisa
que lo que se le esta pidiendo no infrinja la ley, que se licencien las aplicaciones que así lo requieran. Se asegura
que volumen de datos se van almacenar para poder dimensionar la compra de los discos rígidos. ¿Qué se está
analizando?
Se está analizando la factibilidad técnica. Legal y operacional.
172
Base de Datos
Mientras que independencia lógica de los datos alude a que pueden agregarse nuevos ítems de datos, o ex-
pandirse la estructura lógica general, sin que sea necesario reescribir los programas de aplicación existentes,
solo se modificara la aplicación que los utiliza.
3. El control centralizado de los datos es una de las características de la base de datos. ¿Cuales otras características
son posibles gracias al control centralizado?
Integridad de daros es garantizar que los datos de la base de datos sean exactos. El control centralizado de la
base de datos ayuda a evitar la inconsistencia de los datos, por el mismo hecho de encontrarse en un solo lugar
y mediante medidas de seguridad, restricciones y controles para evitar inconsistencias.
4. Analicemos esta situación: Tengo mi curriculum que lo hice hace un tiempo en office 2003 después de unos
años cambio el office por el 2007, puedo decir que cambio de aplicación, mientras que mi curriculum es el dato
sigue siendo el mismo. Si hacemos una analogía de esta situación con una base de datos. ¿Que característica
de las bases de datos se pone en manifiesto?
5. De los componentes de la base de datos, los usuarios ¿en función de que se clasifican?
Los usuarios se clasifican según experiencia e intelección con la base de datos.
173
Analista de Sistemas
2. ¿Cuál es la finalidad?
Conseguir 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.
6. Si hago un backup y restore de la estructura de la base no se hace un backup de los datos sino que de la estruc-
tura. ¿Qué es lo que se está copiando el diccionario de datos o la metadata?
La metadata documenta internamente, entre otras cosas, qué tablas existen en una base de datos, qué colum-
nas posee cada una de las tablas y qué tipo de datos se pueden almacenar. Así como los permisos, relaciones,
restricciones, todo lo referente a la estructura de la base.
174
Base de Datos
3. Para que solo los usuarios de la base de datos de recursos humanos vean los sueldos de la organización de que
característica del SGBD me voy valer.
Restricciones y autorizaciones como tenemos muchos usuarios que comparten la base pero no todos deben
tener acceso a toda la información que ella contiene. El SGBD debe contar con un subsistema de seguridad y
autorización que permita al DBA administrar restricciones y autorizaciones.
4. ¿Que característica del SGBD interviene implícitamente en lo cotidiano cuando en la oficina a las 9 de la maña-
na todos los usuarios se conectan con una misma base?
Suministro múltiple de interfaces con los usuarios.
Como podemos tener una gran variedad de usuarios y con diversos niveles de conocimientos el SGBD debe
contar con diferentes interfaces para los diferentes usuarios.
5. ¿Que característica del SGBD en una restricción de una tabla que si es menor de 17 años no me deje cargar el
número de la licencia de conducir?
Cumplimiento de las restricciones de integridad.
Cuando hablamos de restricciones de integridad nos referimos a restricciones de los datos que las aplicaremos
mediante el SGBD. La forma más fácil de restringir la integridad consiste en especificar un tipo de datos para
cada elemento de información. Ej el campo grado de primaria no va ser texto sino que numérico y a su ves no
va tener mas de una posición numérica ya que no tenemos grados de dos dígitos.
6. Dentro de las características deseables ¿Cómo explicaría en que consiste la recuperación y respaldo?
Respaldo y recuperación se refiere a la recuperación ante falla de hardware o software del SGBD. Si por algún
motivo el SGBD falla debe volver a la instancia anterior a la falla.
175
Analista de Sistemas
• Función de descripción o de definición: Permite al diseñador de la base de datos crear las estructuras apro-
piadas para integrar adecuadamente los datos. Esta función se realiza mediante el lenguaje de descripción
de datos o DDL.
• Función de manipulación: Permite modificar y utilizar los datos de la base de datos. Se realiza mediante el
lenguaje de modificación de datos o DML
• Función de control: Mediante esta función los administradores poseen mecanismos para proteger las vi-
siones de los datos permitidas a cada usuario. El lenguaje que implementa esta función es el lenguaje de
control de datos o DCL.
1. Me proponen un trabajo para dar de alta usuarios en la base, realizar backups, controlar la performance y crear
restricciones. ¿Qué puesto es?
El trabajo que me están ofreciendo es de DBA administrador de base de datos.
5. En qué consiste el proceso de creación de una base de dato propuesta por ANSI.
Proceso de creación y manipulación de una base de dato propuesta por ANSI.
Fase de creación
• El analista o diseñador crea el esquema conceptual.
• El administrador de la base de datos (DBA) crea el esquema interno.
• Los desarrolladores utilizan las aplicaciones necesarias para generar el esquema externo.
176
Base de Datos
6. En qué consiste el proceso de manipulación de una base de dato propuesta por ANSI.
Fase de manipulación
• El usuario realiza una consulta utilizando el esquema externo.
• Las aplicaciones las traducen a su forma conceptual.
• El esquema conceptual es traducido por la SGBD a su forma interna.
• EL Sistema Operativo accede al almacenamiento físico correspondiente y devuelve los datos al SGBD.
• El SGBD transforma los datos internos en datos conceptuales y los entrega a la aplicación.
• La aplicación muestra los datos habiéndolos traducido en su forma externa. Así los ve el usuario.
7. Cuando saco dinero de un cajero automático, la operación de salida y actualización de saldo se hace en una
base de datos centralizada que no está en el mismo cajero. ¿Qué tipo de estructura operacional está en juego?
Estructura Cliente-Servidor. Estructura clásica, la base de datos y su SGBD están en un servidor al cual acceden
los clientes.
8. Cuando modifico mis datos en la pagina del banco (home banking) ¿Qué tipo de estructura operacional está
en juego?
Cliente-Servidor con facilidades de usuario-Servidor de base de datos. Se trata de una forma de conexión por
el que los clientes no conectan directamente con la base de datos sino con un intermediario (normalmente un
Servidor Web) que tiene una mayor facilidad para comunicarse con los usuarios.
177
Analista de Sistemas
178
Base de Datos
Relación: representan asociaciones entre entidades. Es el elemento del modelo que permite relacionar en sí los
datos del modelo.
Clasificación de atributos
1. Simples o Compuestos
2. Almacenados o Derivados
3. Monovalorados o Multivalorados
4. Opcionales
Dominio: conjunto de los posibles valores que puede tomar una cierta característica se denomina dominio.
2. Si se modela las propiedades de una entidad que se está modelando. Ejemplo dirección, teléfono y fecha de
nacimiento de empleado.
Se están modelando los atributos de dicha entidad.
3. De los alumnos de un colegio se tomo como atributo identificador primario el número de legajo que univoco,
también se guarda el DNI. Este último qué tipo de atributo seria en este contexto.
En ambos casos es un atributo clave.
En el ejemplo el legajo es el atributo identificador primario es clave univoca para identificar dicha entidad.
Mientras que el DNI es atributo identificador alternativo que también es univoca pero no se definió como pri-
maria.
4. En una agencia de micros de media distancia la clave univoca para identificar los viajes son el interno de micro,
el destino, la fecha y el chofer; debido a que van rotando todos los componentes. ¿Esta clave univoca como
estaría formada?
Es un atributo identificador compuesto ya que está compuesto por más de un atributo como clave univoca.
5. Si el atributo antigüedad de la entidad empleado la calculo con el atributo fecha de ingreso. ¿Qué tipos de
atributo son estos últimos?
Es un atributo derivado ya que es un valor calculado a partir de otra información ya existente.
6. Qué diferencia existe entre el atributo fecha de nacimiento de la entidad empleado, va tomar un único valor y
el atributo estudios cursados.
Uno la fecha de nacimiento es mono valorado va tomar un único valor mientras que estudios cursados puede
tomar de un único valor.
7. Si tengo una relación DICTA entre la entidad PROFESOR y MATERIA, y me dicen que el profesor solo puede dic-
tar una materia y cada materia puede ser dictada por un solo profesor ¿Qué tipo cardinalidad tiene?
179
Analista de Sistemas
3. Estamos diseñando una base de datos para el área de recursos humanos de una empresa de services de televi-
sores, solo guardamos los datos de los empleados, DNI, nombre, apellido, dirección, teléfono y fecha de ingre-
so. Dentro de los empleados tenemos técnicos, chóferes y maestranza. Para los técnicos se necesita agregar a
los datos descriptos anteriormente el estudio cursado, mientras que para los chóferes el número de licencia de
conducir. Para el personal de maestranza el horario.
180
Base de Datos
Preguntas:
a) ¿Qué tipo de relación es si el personal puede ser técnico y chofer?
Relaciones de jerarquía solapada. Indican que un ejemplar de la superentidad puede relacionarse con más de
una subentidad (el personal puede ser técnico y chofer).
EJERCICIO 1
A partir del siguiente enunciado se desea realiza el modelo entidad-relación.
“Una empresa vende productos a varios clientes. Se necesita conocer los datos personales de los clientes (nom-
bre, apellidos, dni, dirección y fecha de nacimiento). Cada producto tiene un nombre y un código, así como un
precio unitario. Un cliente puede comprar varios productos a la empresa, y un mismo producto puede ser com-
prado por varios clientes. Los productos son suministrados por diferentes proveedores. Se debe tener en cuenta
que un producto sólo puede ser suministrado por un proveedor, y que un proveedor puede suministrar diferen-
tes productos. De cada proveedor se desea conocer el cuit, nombre y dirección”.
Nombre Precio
N:M
1:M
181
Analista de Sistemas
EJERCICIO 2
A partir del siguiente enunciado se desea realizar el modelo entidad-relación.
“Se desea informatizar la gestión de una empresa de transportes que reparte paquetes por toda España. Los
encargados de llevar los paquetes son los camioneros, de los que se quiere guardar el dni, nombre, teléfono, di-
rección, salario y población en la que vive. De los paquetes transportados interesa conocer el código de paquete,
descripción, destinatario y dirección del destinatario. Un camionero distribuye muchos paquetes, y un paquete
sólo puede ser distribuido por un camionero. De las provincias a las que llegan los paquetes interesa guardar el
código de provincia y el nombre. Un paquete sólo puede llegar a una provincia. Sin embargo, a una provincia
pueden llegar varios paquetes. De los camiones que llevan los camioneros, interesa conocer la matrícula, modelo,
tipo y potencia. Un camionero puede conducir diferentes camiones en fechas diferentes, y un camión puede ser
conducido por varios camioneros”.
Nombre Modelo
Direcciom
N:M Tipo
(0,n) (0,n)
Salario Camionero Conduce Camion
Poblacion (0,1)
Distribuye 1:M
Cod_proveedor Nombre
(1,n)
Destinatario
1:M
(0,m) (1,1)
Cod_paquete Paquete Suministra Proveedor
Descripcion Direccion
182
Base de Datos
EJERCICIO 3
A partir del siguiente enunciado diseñar el modelo entidad-relación.
“Se desea diseñar la base de datos de un Instituto. En la base de datos se desea guardar los datos de los profeso-
res del Instituto (DNI, nombre, dirección y teléfono). Los profesores imparten módulos, y cada módulo tiene un
código y un nombre. Cada alumno está matriculado en uno o varios módulos. De cada alumno se desea guardar
el nº de expediente, nombre, apellidos y fecha de nacimiento. Los profesores pueden impartir varios módulos,
pero un módulo sólo puede ser impartido por un profesor. Cada curso tiene un grupo de alumnos, uno de los
cuales es el delegado del grupo”.
Nombre
Nombre
Dni Telefono
Direccion Fech_nac
(0,m)
(1,1)
Profesor Es delegado Alumno Expediente
1:M (1,n)
Apellido
(1:1) M:N Cursa
(1,n)
1:M
(1,n)
Imparte Modulo
Cod_modulo
183
Analista de Sistemas
EJERCICIO 4
A partir del siguiente supuesto diseñar el modelo entidad-relación.
“Se desea diseñar una base de datos para almacenar y gestionar la información empleada por una empresa de-
dicada a la venta de automóviles, teniendo en cuenta los siguientes aspectos: La empresa dispone de una serie
de coches para su venta. Se necesita conocer la matrícula, marca y modelo, el color y el precio de venta de cada
coche. Los datos que interesa conocer de cada cliente son el dni, nombre, dirección, ciudad y número de teléfo-
no: además, los clientes se diferencian por un código interno de la empresa que se incrementa automáticamente
cuando un cliente se da de alta en ella. Un cliente puede comprar tantos coches como desee a la empresa. Un
coche determinado solo puede ser comprado por un único cliente. El concesionario también se encarga de llevar
a cabo las revisiones que se realizan a cada coche. Cada revisión tiene asociado un código que se incrementa au-
tomáticamente por cada revisión que se haga. De cada revisión se desea saber si se ha hecho cambio de filtro, si
se ha hecho cambio de aceite, si se ha hecho cambio de frenos u otros. Los coches pueden pasar varias revisiones
en el concesionario”.
Modelo
Nombre
Ciudad Matricula Marca
Dni
Color
1:M
Direccion (0,1) (1,n)
Cliente Compra Coche
Precio
Telefono (1,1)
1:M Pasa
Filtro (0,n)
Aceite Revision
Frenos
Cod_revision
184
Base de Datos
EJERCICIO 5
A partir del siguiente supuesto diseñar el modelo entidad-relación.
“La clínica “SAN PATRÁS” necesita llevar un control informatizado de su gestión de pacientes y médicos. De cada
paciente se desea guardar el código, nombre, apellidos, dirección, provincia, código postal, teléfono y fecha de
nacimiento. De cada médico se desea guardar el código, nombre, apellidos, teléfono y especialidad. Se desea lle-
var el control de cada uno de los ingresos que el paciente hace en el hospital. Cada ingreso que realiza el paciente
queda registrado en la base de datos. De cada ingreso se guarda el código de ingreso (que se incrementará auto-
máticamente cada vez que el paciente realice un ingreso), el número de habitación y cama en la que el paciente
realiza el ingreso y la fecha de ingreso. Un médico puede atender varios ingresos, pero el ingreso de un paciente
solo puede ser atendido por un único médico. Un paciente puede realizar varios ingresos en el hospital”.
Nombre
Cod_medico
Medico
Apellido
(1,1)
Atiende 1:M
Cod_paciente Nombre
(0,m)
1:M Apellido
Cod_ingreso
Habitacion Fecha
185
Analista de Sistemas
EJERCICIO 6
Se desea informatizar la gestión de una tienda informática. La tienda dispone de una serie de productos que
se pueden vender a los clientes.”De cada producto informático se desea guardar el código, descripción, precio
y número de existencias. De cada cliente se desea guardar el código, nombre, apellidos, dirección y número de
teléfono. Un cliente puede comprar varios productos en la tienda y un mismo producto puede ser comprado por
varios clientes. Cada vez que se compre un artículo quedará registrada la compra en la base de datos junto con la
fecha en la que se ha comprado el artículo. La tienda tiene contactos con varios proveedores que son los que su-
ministran los productos. Un mismo producto puede ser suministrado por varios proveedores. De cada proveedor
se desea guardar el código, nombre, apellidos, dirección, provincia y número de teléfono”.
Cod_producto
M:N Apellido
(0,m)
Producto Compra (0,m) Cliente
Descripcion
Direccion
(1,m) Telefono
Suministra M:N
(1,m)
Nombre
Proveedor
Cod_ingreso
Direccion
Telefono
Apellido
186
Base de Datos
Atributos. Referido a cada propiedad de los datos que se almacenan en la relación (nombre, dni,...).
Tuplas. Referido a cada elemento de la relación. Por ejemplo si una relación almacena personas, una tupla
representaría a una persona en concreto.
Puesto que una relación se representa como una tabla; podemos entender que las columnas de la tabla son los
atributos; y las filas, las tuplas.
3. Es correcta la afirmación de que la idea de relación según el modelo de Codd, es lo mismo que la idea de rela-
ción en el modelo Entidad/Relación de Chen. Justifique.
Según Codd en el modelo relacional una relación, es lo que conocemos como tabla (o también array o matriz),
mientras que para Chen en el modelo Entidad/Relación de refiere al conector entre entidades.
4. Si hablo de los objetivos del modelo relacional y me refiero digo que la forma de almacenar los datos, no debe
influir en su manipulación lógica. ¿a que me estoy refiriendo?
Estamos hablando de la independencia física. Refiere a la forma de almacenar los datos, no debe influir en su
manipulación lógica.
5. Si defino el rango de edades de los trabajadores como: números enteros entre el 18 y el 65, para mi tabla em-
pleados. ¿Qué estoy definiendo?
Estoy definiendo el dominio el mismo contiene todos los posibles valores que puede tomar un determinado
atributo. Dos atributos distintos pueden tener el mismo dominio.
Un dominio en realidad es un conjunto finito de valores del mismo tipo. A los dominios se les asigna un nombre
y así podemos referirnos a ese nombre en más de un atributo.
Al darle el rango lo estoy definiendo por intensión
6. Si para mi tabla o relación de Vehículo tengo los siguientes campos: marca, modelo, patente, numero de motor
y numero de chasis.
a. ¿Qué tipo de claves utilizaría para reconocerlo unívocamente?
Como clave primaria puedo utilizar la patente o el número de motor o el número de chasis.
Marca y modelo son campos comunes y patente o el número de motor o el número de chasis las dos que no
son primarias son alternativos.
187
Analista de Sistemas
1. Si tengo dos tablas la primera: Empleado con los siguientes campos: numero de legajo pk, nombre, apellido,
antigüedad, dni. La segunda tabla salario_empleado tiene los siguientes campos: numero legajo, categoría.
¿Qué significancia tiene número de legajo en ambas tablas?
El número de legajo en la tabla empleado es la clave primaria y en la tabla salario_empleado es la clave foránea.
Por medio de este campo se pueden relacionar las dos tablas.
2. Estoy diseñando una base para una empresa de transportes y me piden ciertas restricciones (a,b,c) para la tabla
choferes los campos son los siguiente licencia de conducir, nombre, apellido, dirección, estado civil, teléfono y
DNI. ¿Qué tipo de restricciones son las siguientes?
Integridad referencial. El campo estado civil tiene restricciones impuestas por el usuario.
Ejercicio 1
Nombre Precio
N:M
1:M
188
Base de Datos
Ejercicio 2
Nombre Modelo
Direcciom
N:M Tipo
(0,n) (0,n)
Salario Camionero Conduce Camion
Poblacion (0,1)
Distribuye 1:M
Cod_proveedor Nombre
(1,n)
Destinatario
1:M
(0,m) (1,1)
Cod_paquete Paquete Suministra Proveedor
Descripcion Direccion
189
Analista de Sistemas
Ejercicio 3
Nombre
Nombre
Dni Telefono
Direccion Fech_nac
(0,m)
(1,1)
Profesor Es delegado Alumno Expediente
1:M (1,n)
Apellido
(1:1) M:N Cursa
(1,n)
1:M
(1,n)
Imparte Modulo
Cod_modulo
190
Base de Datos
Ejercicio 4
Modelo
Nombre
Ciudad Matricula Marca
Dni
Color
1:M
Direccion (0,1) (1,n)
Cliente Compra Coche
Precio
Telefono (1,1)
1:M Pasa
Filtro (0,n)
Aceite Revision
Frenos
Cod_revision
191
Analista de Sistemas
Ejercicio 5
Nombre
Cod_medico
Medico
Apellido
(1,1)
Atiende 1:M
Cod_paciente Nombre
(0,m)
1:M Apellido
Cod_ingreso
Habitacion Fecha
192
Base de Datos
Ejercicio 6
Cod_producto
M:N Apellido
(0,m)
Producto Compra (0,m) Cliente
Descripcion
Direccion
(1,m) Telefono
Suministra M:N
(1,m)
Nombre
Proveedor
Cod_ingreso
Direccion
Telefono
Apellido
193
Analista de Sistemas
194
Base de Datos
Ejercicio 1
id_cliente contacto
1 47654222
2 45367263
3 43321234
3 46736522
Ejercicio 2
Dni Mail
22111232 [email protected]
33432123 clopez@hotmail
43456987 [email protected]
43456987 [email protected]
195
Analista de Sistemas
Ejercicio 3
id_localidad localidad
1 junin
2 azul
3 capitan sarmiento
1 junin
Ejercicio 4
cod_editorial editorial
2 lozada
3 gredos
196
Base de Datos
Ejercicio 5
vendedores
Dni nombre apellido factura importe
22111232 lucas garcia 2231123 100
33432123 cesar lopez 1342342 200
43456987 daniel perz 24353245 104
33432123 cesar lopez 1342343 204
Dni factura
22111232 2231123
33432123 1342342
43456987 24353245
33432123 1342343
factura importe
2231123 100
1342342 200
24353245 104
1342343 204
Ejercicio 6
articulos
cod_art articulo descrip_art material cod_material
22111232 vaso azul por 6 unid plastico 123
33432123 plato playo pirex 124
43456987 botella verde vidrio 125
33432123 copa noruega agua vidrio 125
197
Analista de Sistemas
2. Escribir la sintaxis para crear la tabla empleados con los campos DNI numérico de 8, nombre carácter de 50,
apellido carácter 50.
CREATE TABLE empleados (
dni NUMERIC(8)
nombre VARCHAR(50)
apellido VARCHAR(50));
3. Escribir la sintaxis para modificar la tabla empleados y agregar la columna teléfono numérico de 20.
ALTER TABLE empleados ADD(
telefono NUMERIC(20));
4. Escribir la sintaxis para modificar de la tabla empleados el campo DNI y definirlo como clave primaria.
ALTER TABLE empleados (
dni NUMERIC(8)
nombre VARCHAR(50)
apellido VARCHAR(50)
telefono NUMERIC(20)
primary key(dni)
);
5. Escribir la sintaxis para crear la tabla salarios con los campos categoría carácter de 50, descripción carácter de
50, importe decimal de 8 enteros y 2 decimales.
CREATE TABLE salarios (
categoría VARCHAR(50)
descripción VARCHAR(50)
importe DECIMAL(8,2)
);
198
Base de Datos
1. ¿Con qué clausula busco los campos de una tabla cuando sean nulos?
Con la cláusula where is null devuelve verdadero si el valor que examina es nulo.
SELECT campo
FROM tabla
WHERE campo is null
GO
8. ¿Qué utilizaría sintaxis utilizaría para mostrar ventas por regiones de la tabla ventas (región, sucursal, vendedor,
factura, importe)?
SELECT región, sum(importe)
FROM ventas
Group By región
GO
199
Analista de Sistemas
De las tablas:
CLIENTE(codigo,nombre,domicilio,provincia)
PRODUCTO(codigo_producto,nombre_producto)
ITEM_VENTAS(número_factura,codigo_producto,cantidad,precio)
VENTAS(numero_factura,codigo_cliente,fecha)
2. Obtener el nombre, domicilio y provincia de los clientes que viven en la provincia de Misiones o de Rio Negro.
SELECT Nombre, Domicilio, Provincia
FROM Cliente
WHERE Provincia=’Misiones’ OR Provincia=’Rio Negro’
3. Obtener el importe total en pesos por factura y producto, especificando el numero de factura, el código del
producto y el importe total.
SELECT numero_factura, codigo_producto, (precio * cantidad) as
Total
FROM item_ventas
5. Sobre la consulta 3, obtener solo el importe total para las facturas mayores iguales a 2 y menores iguales a 5 y
solo para el producto código c
SELECT numero_factura, codigo_producto, (precio * cantidad) as
Total
FROM item_ventas
WHERE (numero_factura between 2 and 5)
AND (codigo_producto = ‘c’)
6. Sobre la consulta 3, obtener solo el importe total para los registros cuyo importe total sea mayor a 200
SELECT numero_factura, codigo_producto, (precio * cantidad) as
Total
FROM item_ventas
WHERE cantidad * precio > 200
7. Obtener un listado de las facturas realizadas especificando numero de factura, nombre del producto y cantidad
vendida
SELECT numero_factura, nombre_producto, cantidad
FROM Producto as p, item_ventas as iv
WHERE iv.codigo_producto=p.codigo_producto
200
Base de Datos
8. Obtener un listado de las facturas realizadas cuya cantidad sea mayor igual a 15 especificando numero de fac-
tura, nombre del producto y cantidad vendida
SELECT numero_factura, nombre_producto, cantidad
FROM Producto as p, item_ventas as iv
WHERE iv.codigo_producto=p.codigo_producto and cantidad > = 15
9. Obtener un listado de las facturas realizadas indicando número de factura, nombre del cliente, nombre del
producto, cantidad y precio y el importe total
SELECT item_ventas.Numero_factura, nombre_cliente,
nombre_producto, cantidad, precio, cantidad * precio as Total
FROM Cliente, Ventas, Item_Ventas, Producto
WHERE Cliente.codigo_cliente = Ventas.codigo_cliente AND
Ventas.numero_factura = Item_Ventas.Numero_factura AND
Item_Ventas.codigo_producto = Producto.codigo_producto
12. Cantidad de unidades vendidas por producto, indicando la descripción del producto, ordenado de mayor a
menor por las cantidades vendidas
SELECT nombre_producto AS Producto, sum(cantidad) as Cantidad
FROM Producto as p, item_ventas as iv
WHERE iv.codigo_producto = p.codigo_producto
GROUP BY nombre_producto
ORDER BY sum(cantidad) Desc
13. Cantidad de unidades vendidas por producto, indicando la descripción del producto, ordenado alfabética-
mente por nombre de producto para los productos que vendieron mas de 30 unidades.
SELECT nombre_producto AS Producto, sum(cantidad) as Cantidad
FROM Producto as p, item_ventas as iv
WHERE iv.codigo_producto = p.codigo_producto
GROUP BY nombre_producto
HAVING sum(cantidad) > 30
ORDER BY nombre_producto
14. Obtener cuantas compras (1 factura = 1 compra) realizo cada cliente indicando el código y nombre del cliente
ordenado de mayor a menor.
SELECT v.codigo_cliente, nombre_cliente, count (numero_factura)
as compras
FROM cliente as c, ventas as v
WHERE v.codigo_cliente = c.codigo_cliente
GROUP BY v.codigo_cliente, nombre_cliente
ORDER BY count(numero_factura) Desc
201
Analista de Sistemas
15. Promedio de unidades vendidas por producto, indicando el codigo del producto para el cliente 1.
SELECT codigo_producto, avg(cantidad) as promedio
FROM Ventas as v, item_ventas as iv
WHERE iv.numero_factura = v.numero_factura
AND codigo_cliente=1
GROUP BY codigo_producto
16. Cantidad de unidades vendidas por cliente y producto, indicando el nombre del cliente, la descripción del
producto para los productos que vendieron entre 15 y 35 unidades.
SELECT nombre_cliente, nombre_producto, SUM(cantidad) as
Unidades
FROM cliente as c, Producto as p , item_ventas as iv, ventas as v
WHERE c.codigo_cliente = v.codigo_cliente and
v.numero_factura = iv.numero_factura and
iv.codigo_producto = p.codigo_producto
GROUP BY nombre_cliente, nombre_producto
HAVING SUM(cantidad) between 15 and 35
1. ¿Con cuales tipos de bases de datos esta diseñado SQL Server para trabajar?
SQL Server está diseñado para trabajar con dos tipos de bases de datos:
• OLTP (OnLine Transaction Processing) Son bases de datos caracterizadas por mantener una gran cantidad
de usuarios conectados concurrentemente realizando ingreso y/o modificación de datos. Por ejemplo:
entrada de pedidos en línea, inventario, contabilidad o facturación.
• OLAP (OnLine Analytical Processing) Son bases de datos que almacenan grandes cantidades de datos que
sirven para la toma de decisiones, como por ejemplo las aplicaciones de análisis de ventas.
3. Después de colocar el CD de instalación aparece la siguiente pantalla aparece una ventana que da la bienvenida
al proceso de instalación, al pasar a la siguiente pantalla que dos opciones de instalaciones nos ofrece el Wieser.
Nos da dos opciones instalación en computadora local o remota.
4. Luego de aceptar las condiciones del licenciamiento aparecerá una caja de diálogo solicitándole que seleccio-
ne uno de los tipos de instalación, cuales son los tipos de instalación.
Sólo Herramientas Cliente (Client Tools only), cuando requiera instalar herramientas clientes para administrar
un servidor SQL Server existente, así como también los componentes de conectividad los libros en línea y op-
cionalmente los ejemplos.
Servidor y Herramientas Cliente (Server and Client Tools), selecciona esta opción cuando requieras instalar un
servidor SQL Server 2000, el cual deba contar con todas las herramientas.
202
Base de Datos
Sólo Conectividad (Connectivity Only), seleccione esta opción para instalar las librerías de conectividad para
los clientes.
Para cualquiera de las tres opciones se instalará previamente MDAC 2.6, para la instalación que estamos reali-
zando seleccione Servidor y Herramientas Cliente (Server and Client Tools) y luego pulse Siguiente (Siguiente).
5. Cuando tenemos que seleccionar el tipo de instalación que debemos seleccionar para ver los espacios reque-
ridos así como también las carpetas donde se almacenaran las diferentes librerías de SQL Server.
Debo seleccionar Personalizada (Custom) para que pueda observar las diferentes opciones que configura el
instalador, en esta primera pantalla se muestran los espacios requeridos así como también las carpetas donde
se almacenaran las diferentes librerías de SQL Server:
203
Analista de Sistemas
Índice Metadatos 25
Diccionario de datos 25
UNIDAD 1 Almacenamiento físico de bases de datos 25
Tema1: Introducción 6 Técnicas de almacenamiento y recuperación
¿Qué es un sistema de información? 6 de bases de datos 25
Impacto de los sistemas de información 7 El almacenamiento en archivos de las bases
Categorías de los sistemas de información 7 de datos 26
Sistemas de información computarizados 8 Unidades de almacenamientos - Discos Rígidos 26
Componentes estructurales de los sistemas Estructura física 27
de información computarizados 9 Direccionamiento 27
Entradas 9 Tipos de conexión 28
Modelos o Procesos 9 Resumen tema 3 28
Salida 9 Autoevaluación 29
Tecnología o hardware 10 Investigación: 30
Almacenamiento (Archivos o bases de datos) 10
Controles y seguridad 10 UNIDAD 2
Requerimientos de los sistemas de información TEMA 4: Sistema gestor de base de datos 32
computarizados 10 Características deseables en un SGBD 32
Requerimientos de sistemas 10 Control de redundancia 33
Requerimientos de procesamientos de datos 10 Restricción de accesos no autorizados 33
Requerimientos de factibilidad 10 Inferencias en la BD mediante reglas
Resumen tema 1 11 de deducción 33
Autoevaluación 12 Suministro múltiple de interfaces
Investigación 12 con los usuarios 33
Vínculos complejos entre los datos 33
TEMA 2: Base de datos 13 Cumplimiento de las restricciones de integridad 33
Evolución de los Sistemas de Bases de Datos 13 Respaldo y recuperación 33
Primeros Sistemas de Base de Datos 14 Funciones y lenguajes de SGBD 33
Principales características de las bases de datos 14 Función de descripción o de definición 34
Independencia lógica y física de los datos 15 Función de manipulación 34
Control centralizado de los datos 15 Estructura multicapas del SGBD 34
Integridad de los datos 15 Funcionamiento del SGBD 35
Minimización de redundancias 15 SGBD Comerciales 36
Independencias de los datos y las aplicaciones 15 MySQL: 36
Acceso concurrente a los datos 15 Oracle: 36
Componentes de un sistema de base de datos 15 Microsoft SQL Server: 36
Tipos de base de datos 16 Microsoft Access: 37
Bases de datos jerárquicas 16 DB2: 38
Bases de datos de red 17 Visual FoxPro: 38
Base de datos Relacional 17 PostgreSQL 39
Bases de datos multidimensionales 18 Resumen tema 4 40
Bases de datos orientadas a objetos 20 Autoevaluación 41
Resumen tema 2 21 Investigación 41
Autoevaluación 22
Investigación 22 TEMA 5: Usuarios de los GSBD 41
Estándar ANSI/SPARC, SGBD 42
TEMA 3: Arquitectura de la base de datos 23 El Nivel Externo 42
Niveles de abstracción de una base de datos 23 El Nivel Conceptual 43
Esquema físico 24 El Nivel interno 44
Esquema Conceptual 24 Proceso de creación y manipulación de una
Esquema o nivel externo 24 base de dato propuesta por ANSI 46
Manejador de archivo 25 Estructuras operacionales de los SDGB 47
204
Base de Datos
205
Analista de Sistemas
206