Guia - Fundamentos de Base de Datos

November 20, 2023 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Guia - Fundamentos de Base de Datos...

Description

Modalidad Abierta y a Distancia

Fundamentos de Base de Datos Guía didáctica

CARRERA Tecnologías de la Información

CICLO 4

ÁREA TÉCNICA

Departamento de Ciencias de la Computación y Electrónica

Sección de Tecnologías Avanzadas de la Web y SBC

Fundamentos de Base de Datos Guía didáctica Autores: Juan Carlos Morocho Yunga Audrey Romero

Asesoría virtual www.utpl.edu.ec

FUNDAMENTOS DE BASE DE DATOS Guía didáctica Juan Carlos Morocho Audrey Romero UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA 4.0, CC BY-NY-SA Diagramación y diseño digital: EDILOJA Cía. Ltda. Telefax: 593-7-2611418. San Cayetano Alto s/n. www.ediloja.com.ec [email protected] Loja-Ecuador. Primera edición. ISBN digital - 978-9942-25-532-7

La versión digital ha sido acreditada bajo la licencia Creative Commons 4.0, CC BY-NY-SA: Reconocimiento-No comercial-Compartir igual; la cual permite: copiar, distribuir y comunicar públicamente la obra, mientras se reconozca la autoría original, no se utilice con fines comerciales y se permiten obras derivadas, siempre que mantenga la misma licencia al ser divulgada.https:// creativecommons.org/licenses/by-nc-sa/4.0/deed.es 24 de septiembre, 2019

2. Índice

2. Índice 4 3. Introducción 7 4.

Bibliografía 10 4.1. Básica 10 4.2. Complementaria 10

5.

Orientaciones generales para el estudio 13

6.

Proceso de enseñanza-aprendizaje para el logro de competencias 18 PRIMER BIMESTRE UNIDAD 1. INTRODUCCIÓN A LOS SISTEMAS DE BASES DE DATOS 18 1.1.

Introducción a los sistemas de gestión de bases de datos y bases de datos 19

1.2.

Sistema de gestión de bases de datos 19

1.3.

Sistemas basados en archivos 20

1.4.

Sistemas de bases de datos 21

1.5.

Independencia y niveles de abstracción 23

1.6.

Arquitecturas del SGBD 25

1.7.

Lenguajes e interfaces de bases de datos 30

1.8.

Funciones de un SGBD 33

1.9.

Almacenamiento y análisis de datos 34

1.10. Proceso de construcción de una base de datos 36 Autoevaluación 1 40 UNIDAD 2. MODELO RELACIONAL 43 2.1.

Estructura de las bases de datos relacionales 44

2.2. Claves 45 2.3.

Esquemas de bases de datos relacionales y su representación 46

2.4.

Restricciones de integridad 48

2.5.

Operaciones relacionales 49

2.6.

Lenguajes de consulta relacional 52

Autoevaluación 2 55 UNIDAD 3. LENGUAJE SQL 58 3.1.

Introducción al lenguaje de consulta estructurado 59

3.2.

Definición de datos en SQL 62

3.3.

Consultas con SQL 68

3.4.

Operaciones básicas adicionales 70

3.5.

Valores nulos 73

3.6.

Funciones de agregación 73

3.7. Subconsultas 76 3.8.

Modificación de la base de datos 77

3.9.

Combinación de tablas 80

3.10. Vistas 85 3.11. Transacciones 87 3.12. Restricciones de integridad 88 3.13. Índices 90 3.14. Privilegios 91 Autoevaluación 3 95 SEGUNDO BIMESTRE UNIDAD 4. LENGUAJES DE CONSULTA FORMALES 100 4.1.

Algebra relacional 101

4.2.

Operaciones fundamentales 102

4.3.

Cálculo relacional 108

Autoevaluación 4 111

UNIDAD 5. DISEÑO CONCEPTUAL DE BASE DE DATOS 115 5.1.

Diseño de bases de datos 116

5.2.

Fases del Diseño de Bases de Datos 116

5.3.

Diseño Conceptual 119

5.4.

Modelo E-R 119

5.5. Especialización/Generalización 123 5.6.

Consideraciones finales del modelado 125

Autoevaluación 5 127 UNIDAD 6. DISEÑO LÓGICO DE BASE DE DATOS 130 6.1.

Principios de diseño lógico de bases de datos 130

6.2.

Técnica de Normalización 134

6.3.

Dominios atómicos y Primera Forma Normal 135

6.4.

Dependencias funcionales 139

6.5.

Segunda Forma Normal 140

6.6.

Tercera Forma Normal 141

Autoevaluación 6 145 7.

Solucionario 150

8.

Glosario 161

9.

Referencias Bibliográficas

10.

Anexos 164

163

Texto-guía: Fundamentos de Base de Datos

3. Introducción

Lo que puedes hacer hoy puede mejorar todos tus mañanas. (Ralph Martson) Estimado estudiante, para nosotros es un placer acompañarlo en su viaje para la obtención de un título profesional, que le traerá muchas satisfacciones personales y profesionales y que con seguridad harán eco en la sociedad. La Informática nos acerca a nuevas formas de pensamiento, de comunicación, de solución, etc.; donde embarcarse en el estudio de esta carrera profesional requiere perseverancia, pasión, actitud entre otras cualidades. Cualidades que le permitirán la obtención del título profesional de Ingeniero en Tecnologías de la Información, que será el inicio de muchos logros en su vida profesional en esta área. Para nosotros es muy grato decirle que, parte de este viaje corresponde al aprendizaje del tema de bases de datos. Fundamentos de Base de Datos es una asignatura que corresponde al cuarto ciclo de la malla curricular de Ingeniería en Tecnologías de la Información (TI) de la Modalidad Abierta y a Distancia. La asignatura forma parte de la unidad la organización curricular básica, en el campo de formación de la praxis profesional. Fundamentos de Bases de Datos aborda los tópicos más relevantes que usted, requiere dominar para llevar a la práctica el diseño de bases de datos y la gestión de motores de bases de datos. La asignatura requiere una dedicación de 160 horas, tiempo que deberá distribuir entre: las actividades de docencia (32 horas), prácticas de aplicación y experimentación de los aprendizajes (32 horas), y aprendizaje autónomo (96 horas).

7

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

El propósito principal de la asignatura es brindarle el conocimiento, las estrategias y las prácticas sobre conceptos, reglas, herramientas y procedimientos que son requeridos para el desarrollo de los sistemas de información, específicamente en las tareas de diseño, administración y utilización de bases de datos; con el fin de desarrollar habilidades que las pueda aplicar en el ejercicio profesional. Además, esta asignatura contiene es base para el estudio de Bases de Datos Avanzadas. Las bases de datos constituyen uno de los elementos esenciales de los sistemas de información y han cambiado considerablemente el manejo de muchas organizaciones. Las bases de datos son parte de nuestra vida cotidiana; a menudo interactuamos con ellas, muchas de las veces sin ser conscientes de ello. Cuando cancelamos las compras del supermercado, reservamos tickets de avión, hacemos alguna transacción a través del cajero automático y en muchas otras actividades cotidianas estamos haciendo uso de las bases de datos. Seguramente usted está emocionado por conocer más a fondo sobre la gestión de la información dentro de las bases de datos, el diseño de una base de datos, las herramientas que se pueden utilizar, etc. Según vayamos desarrollando los contenidos propuestos en esta asignatura, usted irá obteniendo la respuesta a estas preguntas. “Las bases de datos constituyen ahora el fundamento de todos los sistemas de información y han cambiado de manera fundamental la forma en que muchas organizaciones operan” (Connolly, T. y Begg, C., 2005).

Con el afán de alcanzar las competencias específicas de la asignatura, se ha organizado en seis unidades, tres por cada bimestre. Durante el primer bimestre, la unidad 1 aborda la terminología y los conceptos básicos de las bases de datos, la unidad 2 abarca los componentes del modelo relacional y la unidad 3 contiene el lenguaje de consulta SQL.
Para el segundo bimestre, la unidad 4 aborda los lenguajes de consulta formales: álgebra relacional y cálculo relacional, la unidad 5 abarca el diseño conceptual de base de datos y finalmente, la unidad 6 abarca el diseño lógico de bases de datos. El desarrollo de los contenidos de esta asignatura nos brindará la oportunidad de adquirir los conocimientos y habilidades que se requieran para tomar mejores decisiones en el área de bases de datos.

8

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Le invitamos a que juntos llevemos el estudio de Fundamentos de Bases de Datos, recordándole que estamos para guiarle y apoyarle en su proceso aprendizaje. Finalmente, queremos desearle el mejor de los éxitos en el presente ciclo de estudios e invitarle a que realice su mejor esfuerzo en este camino de superación profesional y personal, que contribuye a su formación integral.

9

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

4. Bibliografía

4.1. Básica Silberschatz, A., Korth, H., y Sudarshan, S. (2014). Fundamentos de bases de datos. Madrid, España: McGraw-Hill Interamericana de España. El texto abarca gran parte de los temas que se proponen en la asignatura de Fundamentos de Base de Datos. Inicia con unidades de conocimiento elementales y luego profundiza en los temas avanzados. Este texto contiene resúmenes de los temas más relevantes y, además, contiene ejercicios que le ayudarán a aplicar los temas de estudio. Morocho, J. y Romero-Peláez, A., Guía didáctica de Fundamentos de bases de datos. Loja, Ecuador. Editorial de la Universidad Técnica Particular de Loja. La guía didáctica es un material educativo que ha sido elaborado con la finalidad de apoyar el proceso de aprendizaje del estudiante a través de diversas actividades que orienten, motiven, retroalimenten y evalúen los conocimientos que irá adquiriendo en el transcurso de su formación académica.

4.2. Complementaria Connolly, T., y Begg, C. (2005). Sistemas de bases de datos: un enfoque práctico para diseño, implementación y gestión. Madrid, España: Pearson Educación. El texto propone contenido es bastante didáctico, ofrece recursos de evaluación al final de cada unidad, dispone de casos de estudio para la parte práctica de la asignatura. Ofrece recursos adicionales en la Web que ayudan a complementar los contenidos del texto.

10

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Coronel, C., y Morris, S. (2011). Bases de datos. Diseño, implementación y gestión (Novena Edi). México: Cengage Learning Editores. El texto ofrece temas relacionados con los fundamentos de base de datos, como el lenguaje SQL, el proceso de normalización y temas relacionados con el diseño de bases de datos relacionales. Propone ejemplos que ayudan a un mejor entendimiento de las bases teóricas. Elmasri Ramez, N. S. (2016). Fundamentals of Database Systems (Séptima Ed). Boston, Estados Unidos: Pearson. El texto presenta los conceptos fundamentales necesarios para el diseño, el uso y la implementación de sistemas de bases de datos y aplicaciones de bases de datos. Hace hincapié en los fundamentos de modelado de base de datos y el diseño, los lenguajes y los modelos proporcionados por los sistemas de gestión de base de datos y técnicas de implementación del sistema de base de datos. Proporciona un análisis exhaustivo de los aspectos más importantes de los sistemas de bases de datos y sus aplicaciones. López, I., Castellano, M. J., y Ospino, J. (2013). Bases de datos. México D.F., México: Alfaomega. El libro aborda el tema de las bases de datos relacionales, con especial vinculación hacia el desarrollo de aplicaciones para gestión de información. La orientación del texto es bastante práctica con actividades y ejercicios aplicados a diferentes SGBD. Es un buen complemento para reforzar el aprendizaje del diseño, manejo y acceso a bases de datos.

11

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Silberschatz, A., Korth, H., y Sudarshan, S. (2010). Database System Concepts (6ta Edición). Yale, USA: McGraw-Hill. Disponible en Database System Concepts La página Web contiene material referente al texto básico que puede consultar como apoyo para el mejor desarrollo de los contenidos, el acceso es libre. W3schools.com. SQL Tutorial. Disponible en W3Schools El portal ofrece varios tutoriales, entre ellos se encuentra el tutorial de SQL que es un recurso online. Además, permite evaluar los conocimientos que le permite medir el avance del aprendizaje en el lenguaje SQL.

12

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

5. Orientaciones generales para el estudio

El estudio a distancia es un reto que requiere esfuerzo, dedicación y planificación, por ello, debe hacer de esta actividad un trabajo continuo y sistemático, organizar su tiempo con el fin de aprovecharlo efectivamente en el desarrollo de contenidos. Para el desarrollo de las competencias de la asignatura es necesario que siga algunas orientaciones sobre cómo aprovechar al máximo las diversas ayudas que se incluyen en recursos didácticos. El material de estudio y los recursos que se utilizan para el desarrollo de la asignatura son: ▪▪

Plan docente: proporciona una planificación semanal a detalle, con las actividades a desarrollar durante un ciclo académico. Es importante que se utilice este recurso como una herramienta que permite organizar el tiempo de dedicación que requiere la asignatura.

▪▪

Guía didáctica: establece la hoja de ruta a seguir. Constituye el principal instrumento que le encamina en cómo organizar, desarrollar y enfocar su estudio. La guía direcciona al estudiante a los contenidos fundamentales -del texto básico y/o recursos web- que debe revisar, además le brinda: orientaciones, recursos, instrumentos y actividades, para aclarar, profundizar y aplicar lo aprendido.

▪▪

Texto básico: abarca la mayor parte de los contenidos fundamentales que va a estudiar. Es importante aclarar que, la organización y secuencia de contenidos del texto básico no se corresponden estrictamente con la planificación de la asignatura, debido a que la organización de la temática está orientada a la formación de las competencias y resultados de aprendizaje establecidos.

13

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

▪▪

Recursos web: permiten completar los contenidos fundamentales a estudiar. Son materiales educativos de acceso abierto, debidamente estructurados, didácticos y pertinentes para comprender los temas tratados. Se incluyen: Recursos Educativos Abiertos (REA-OCW1), video tutoriales, cuestionarios y otros que el profesor tutor le facilitará a través de la plataforma virtual de aprendizaje.

▪▪

Entorno Virtual de Aprendizaje (EVA): es una plataforma esencial para el desarrollo de la asignatura y es el medio para interactuar con el docente y compañeros. En este espacio encontrará las orientaciones académicas de cada semana, además de las actividades síncronas y asíncronas planificadas.

▪▪

Tutoría síncrona: corresponde a la comunicación con el docente utilizando algún medio síncrono como el chat académico o la llamada telefónica. El docente tiene establecido un horario semanal de tutoría, y durante este período de tiempo usted podrá utilizar los medios indicados para comunicarse.

▪▪

Tarea bimestral: es una actividad teórica y práctica que acompaña a la guía didáctica de cada asignatura y es calificada sobre seis puntos. Este puntaje es sumado a la calificación de las actividades síncronas y asíncronas planificadas de la asignatura (cuatro puntos), sumando en total diez puntos. La tarea de cada bimestre debe ser enviada en las fechas establecidas en el calendario académico de MAD.

▪▪

Evaluación presencial se lleva a cabo en cada centro universitario y debe realizarla al finalizar cada bimestre. Esta evaluación se califica sobre diez puntos, que sumados a los diez puntos de la tarea bimestral y las actividades en el EVA le dan un total de veinte puntos por bimestre.

1

OCW OpenCourseWare – Cursos Abiertos 14

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Algunas recomendaciones y estrategias, que le ayudarán para mejorar los resultados de su estudio, son las siguientes: •

Lea la introducción de esta guía que resume el propósito de la asignatura, la importancia en el contexto de la titulación y el área de conocimiento que aborda.



Previo a iniciar el estudio de cada bimestre, revise con detenimiento la planificación del bimestre que consta en el plan de docente. El plan le permitirá tanto planificar su tiempo semana a semana como conocer los resultados de aprendizaje esperados.



Siga las indicaciones de la guía didáctica. Al inicio de cada unidad cuenta con la presentación, los objetivos y las orientaciones específicas del tema. Durante el desarrollo de los apartados direcciona su atención a los contenidos fundamentales de revisión.



Al final de cada unidad cuenta con una autoevaluación para medir sus avances.



Revise con detenimiento los contenidos fundamentales, tanto del texto básico como de los recursos web, y si es necesario realice una lectura adicional.



Además de las fuentes provistas, aproveche internet para la búsqueda de nuevos recursos que le ayuden a aclarar sus dudas.



Dosifique su tiempo y defina un horario para la asignatura. Debe dedicarle al menos 8 horas semanales. Trabaje en base a prioridades.



Elija un ambiente adecuado para el estudio, que cuente con luz suficiente y libre de ruidos que puedan interrumpir su concentración.



Establezca ideas y preguntas clave que le permitan profundizar su aprendizaje.

15

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos



Apoye su estudio con esquemas, cuadros sinópticos, mapas mentales, entre otros, para organizar los conocimientos asimilados, desde su propia perspectiva. Estos instrumentos cumplen un importante papel en el proceso de aprendizaje.



Desarrolle progresivamente la tarea de cada bimestre según la planificación.



Identifique los símbolos que encontrará en la guía:

Símbolo

Propósito Enfatiza el capítulo del libro relacionado con la unidad de estudio.

Hace referencia a contenido del texto básico

Recomienda actividades para aplicar, reforzar y asimilar un tema.

Remarca y/o enfatiza algunas ideas o conceptos.

Destaca alguna reflexión que queremos compartir.

Hace referencia a un recurso de aprendizaje publicado en el EVA.

Vincula con un recurso o herramienta disponible en la Web que complementa el tema abordado. Indica que a continuación se plantea una autoevaluación.

16

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Estimado estudiante, recuerde que su constancia y esfuerzo serán fundamentales para lograr las metas que se ha planteado para el presente ciclo de estudios y que estaremos gustosos de apoyarle en su aprendizaje.

17

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

6. Proceso de enseñanza-aprendizaje para el logro de competencias

PRIMER BIMESTRE UNIDAD 1. INTRODUCCIÓN A LOS SISTEMAS DE BASES DE DATOS Para el desarrollo de esta unidad se requiere que durante su estudio trabaje de forma simultánea con la guía didáctica y el capítulo “Introducción” del texto básico.

“Las bases de datos son utilizadas como solución, o como soporte a la solución, de la mayor parte de los problemas que se presentan en el mundo real” Luque Ruiz et. al

Estimado estudiante, hoy en día interactuamos con bases de datos en gran parte de las actividades cotidianas que realizamos, por lo tanto, empezamos esta unidad con los conceptos básicos.

18

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Para comprender los fundamentos de la tecnología de bases de datos iniciamos con la definición de base de datos y una revisión sobre su evolución. Continuamos con la identificación de las funciones típicas, los componentes principales y el personal implicado en los sistemas de gestión de bases de bases de datos (SGBD); así también, se realiza el análisis del entorno de las bases de datos, sus relaciones y/o aplicaciones. A continuación, le invitamos a explorar por el interesante mundo de las bases de datos.

1.1. Introducción a los sistemas de gestión de bases de datos y bases de datos Es necesario destacar que, en la actualidad las bases de datos son parte de la vida cotidiana, y de igual manera forman parte esencial de los entornos informáticos modernos y su aplicabilidad está presente en casi todas las actividades diarias. Es momento de revisar los conceptos fundamentales de la gestión de bases de datos.

1.2. Sistema de gestión de bases de datos Un Sistema de Gestión de Bases de Datos (SGBD) consiste en una colección de datos interrelacionados y un conjunto de programas para acceder a dichos datos. La colección de datos, normalmente se denomina bases de datos, que contiene información relevante para una entidad u organización. El objetivo principal de un SGBD es proporcionar un entorno conveniente y eficiente a los usuarios de la base de datos para las funciones de almacenamiento y recuperación de información. En su texto básico, repase el apartado “Introducción” para conocer brevemente las implicaciones que tienen las bases de datos y resalte las importantes.

19

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

De seguro usted cuenta con su documento de identidad que la obtuvo en alguna de las dependencias del Registro Civil y para este proceso le solicitaron su información personal como: nombres, apellidos, nivel de instrucción, entre otros datos. A esta información se adiciona datos generados por la entidad como número de identificación asignado, lugar y fecha de expedición, fecha de caducidad, entre otros. Toda esta información es ingresada en una base de datos; y es alimentada y actualizada con cada nuevo usuario que acude a la entidad.

En su texto básico, estudie el apartado “Aplicaciones de los sistemas de bases de datos”, para tener una amplia variedad de ejemplos en los que todos interactuamos a diario con bases de datos. Así también, le invitamos a plantearse nuevos ejemplos que no se encuentren en el texto.

1.3. Sistemas basados en archivos En la gestión de información comercial inicialmente se empleaban los sistemas de procesamiento de archivos, que son sistemas que almacenan datos en registros permanentes en varios archivos. En su texto básico, estudie el apartado “Propósito de los sistemas de bases de datos”, donde se indican las limitaciones que tenían los sistemas de procesamiento de archivos, que son esenciales para comprender el funcionamiento de los SGDB.

Con la revisión previa, seguramente usted tiene claro que las bases de datos surgieron para dar respuesta a la gestión computarizada de los datos comerciales, y además superar las limitaciones de los sistemas de procesamiento de archivos, como son: •

Redundancia e inconsistencia de datos



Dificultad de acceso a los datos



Aislamiento de los datos



Problemas de integridad



Problemas de atomicidad

20

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre



Anomalías en el acceso concurrente



Problemas de seguridad

Realice un esquema que resuma las limitaciones de los sistemas de procesamiento de archivos, como resultado de un análisis las circunstancias que las generan.

Luego que ha examinado las características de los sistemas de procesamiento de archivos está en la capacidad de distinguir las características de un sistema de bases de datos.

1.4. Sistemas de bases de datos El procesamiento de datos impulsa el crecimiento de las computadoras y la automatización de las tareas de procesamiento de datos. Las técnicas de almacenamiento y procesamiento de datos han evolucionado a lo largo de los años.

En su texto básico, estudie el apartado “Historia de los sistemas de bases de datos” y realice una línea de tiempo1 (timeline) de cada período que nos indique el texto.

Las limitaciones de los sistemas basados en archivos se pueden atribuir a dos factores: •

La definición de los datos está incluida en los programas de aplicación en lugar de almacenarse de forma separada e independiente;



No existe ningún control sobre el acceso y manipulación de los datos, más allá del que imponen los propios programas de aplicación.

1

Mas información en concepto.de 21

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Para poder ser más efectivos, se necesitaba una nueva técnica y surgieron los conceptos de base de datos y los sistemas de gestión de bases de datos (SGBD). Bases de datos La base de datos es una colección compartida de datos lógicamente relacionados, junto con una descripción de estos datos, que están diseñados para satisfacer las necesidades de información de una organización. Sistema de Gestión de Base de Datos El Sistema de Gestión de Base de Datos (SGBD) es un sistema software que permite a los usuarios definir, crear, mantener y controlar el acceso a la base de datos. Bases de datos relacionales El modelo relacional da lugar a las bases de datos relacionales, que usan un conjunto de tablas para representar tanto los datos como las relaciones existentes entre ellos. Incluyen un Lenguaje de Definición de Datos (DDL2) y un Lenguaje de Manipulación de Datos3 (DML). En su texto básico, estudie el apartado “Bases de datos relacionales”, y con el fin de identificar los elementos importantes de este tópico le sugerimos xdesarrollar un diagrama, podría ser adecuado un mapa mental, para afianzar los conceptos aprendidos.

Las bases de datos tienen sus limitaciones si nos basamos de manera exclusiva en su SGBD, por lo tanto, es importante destacar que las bases de datos trabajan conjuntamente con los programas de aplicación4. 2



3



4



Del inglés Data Definition Language, se utilizan las siglas en inglés por ser más utilizadas técnicamente Del inglés Data Manipulation Languaje, se utilizan las siglas en inglés por ser más utilizadas técnicamente Son programas diseñados para facilitar la realización de tareas específicas en la computadora

22

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

1.5. Independencia y niveles de abstracción Uno de los objetivos principales de los sistemas de bases de datos es ofrecer al usuario una visión abstracta de los datos, lo que significa que el sistema oculta ciertos detalles del almacenamiento y la manipulación de los datos. Los SGBD comerciales están basados en la denominada arquitectura ANSISPARC que comprende tres niveles de abstracción. La Figura 1 resume los niveles de abstracción de bases de datos.

Figura 1. Niveles de abstracción de bases de datos Tomado de: Connolly, T. y Begg, C. (2005)

En su texto básico, examine el apartado “Visión de los datos”, con el fin de ampliar la explicación sobre los tres niveles de abstracción de datos y la independencia física de los datos. Además, haga énfasis en la comprensión del ejemplo propuesto.

23

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

La Figura 2 presenta un ejemplo donde se esquematizan las diferencias entre los tres niveles de abstracción.

Figura 2. Diferencias entre los niveles de abstracción Tomado de: Connolly, T. y Begg, C. (2005)

Esperamos haya aclarado las definiciones de los niveles de abstracción. Ahora es importante que continuemos con la revisión de nuevos conceptos que van surgiendo. En su texto básico, repase el apartado “Ejemplares y esquemas”, luego relacione estos elementos con los tres niveles de abstracción. Realice un cuadro resumen de estos conceptos. Si desea utilizar herramientas digitales en línea le sugerimos utilice Padlet5 , puede compartir sus muros en el EVA.

La información almacenada en la base de datos en un momento dado se denomina ejemplar (Silberschatz, Korth, y Sudarshan, 2014). Es importante mencionar que, otros autores como (Connolly y Begg, 2005) el concepto ejemplar es equivalente al denominado instancia de la base de datos. 5

Padlet es un muro digital que puede utilizarse como tablón personal o pizarra colaborativa. 24

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Otro concepto relevante corresponde a una vista del sistema denominada esquema y al conjunto de vistas de usuario denominadas subesquemas. En su texto básico, estudie el apartado “Modelo de datos”, con el propósito de identificar las diferentes herramientas conceptuales que permiten la descripción de los datos, relaciones, semántica, restricciones, así como también las diferentes aplicaciones.

Los modelos de datos proporcionan una forma de describir el diseño de bases de datos en los tres niveles de abstracción que se han mencionado y observado en el ejemplo de Figura 2. Realice un cuadro sinóptico que resuma las principales características de los modelos de datos.

La lectura ¿Le aclaró sus conocimientos sobre el tema? Esperamos que tenga una clara concepción acerca de las características. Recuerde además, que los modelos de datos comprenden tres componentes (Connolly y Begg, 2005): •

Una parte estructural, compuesta por un conjunto de reglas que definen cómo deben construirse las bases de datos.



Una parte manipulativa, que define los tipos de operaciones que pueden realizarse sobre los datos.



Y posiblemente, un conjunto de restricciones de integridad, que garantiza la precisión de los datos.

1.6. Arquitecturas del SGBD Las arquitecturas comúnmente utilizadas para implementar SGBD son básicamente: la arquitectura centralizada y las arquitecturas cliente servidor en dos capas y tres capas. 25

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Arquitectura centralizada Las arquitecturas de base de datos han seguido la tendencia de las arquitecturas de los sistemas computacionales. Anteriormente, la tendencia era poseer supercomputadoras que soportaban todo el procesamiento tanto programas de aplicación como interfaz de usuario. Había una supercomputadora central que recibía peticiones de procesamiento enviadas por terminales6, sin capacidad de procesamiento, que luego de procesar las peticiones de los usuarios enviaba de vuelta los resultados a los terminales para que puedan visualizarse por los usuarios, todo a través de una red de computadoras. Esta arquitectura se conoce como arquitectura centralizada. La Figura 3 presenta el esquema de funcionamiento de esta arquitectura.

Figura 3. Arquitectura centralizada de bases de datos Se observa que las terminales se enlazan con una base de datos central a través de la conexión de red de comunicación, sobre la que realizan las peticiones y datos. Una vez comprendida la arquitectura centralizada, vamos a definir los siguientes tipos de arquitecturas. La arquitectura de los sistemas de bases de datos se ve influida por el sistema informático subyacente, sobre el que se ejecuta el sistema de bases de datos. 6



También llamados estaciones de trabajo 26

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

La arquitectura cliente/servidor se forma por un usuario de recursos (cliente) y un proveedor de recursos (servidor). La arquitectura cliente/servidor permite que los usuarios se beneficien de la funcionalidad de una PC7 mientras acceden a los datos almacenados en sistemas de gran tamaño. Arquitectura cliente/servidor en dos capas La arquitectura cliente/servidor cuenta con un proceso cliente que hace la petición del recurso y un proceso servidor que es el que proporciona el recurso. Las ubicaciones de estos procesos pueden ser en una misma máquina o en otra ubicación. Este tipo de arquitectura en dos capas proporciona una separación muy básica. El cliente (corresponde a la capa de presentación) es principalmente responsable de la presentación de los datos al usuario. El servidor (corresponde a la capa de datos) es el responsable de suministrar servicios de datos al cliente. El funcionamiento de esta arquitectura se resume en: •

Las llamadas a la base de datos son transmitidas desde la máquina cliente al servidor.



Los datos son transmitidos desde la máquina cliente al servidor para las operaciones para las operaciones de inserción y actualización, y desde el servidor al cliente durante las consultas.



7



Los datos son procesados en la máquina cliente.

Computador personal, del inglés Personal Computer

27

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

La Figura 4 presenta un esquema del funcionamiento de esta arquitectura.

Figura 4. Arquitectura cliente servidor en dos capas Tomado de: Connolly, T. y Begg, C. (2005)

Se observa que las máquinas cliente se enlazan con una base de datos central a través de la conexión de red de comunicación, sobre la que realizan las peticiones y datos. Además, en este esquema los máquinas cliente se encargan de la capa de presentación. En la arquitectura cliente servidor básica la idea es tener servidores especializados con funcionalidades específicas como: almacenar archivos, servidor web, servidor de base de datos, servidor de correo, entre otros que prestan sus servicios a los clientes cuando lo requieren. En este contexto las maquinas cliente proporcionan las interfaces correspondientes para que los usuarios finales interactúen con los servidores especializados. La Figura 5 presenta un ejemplo de

Figura 5. Servidor de correo electrónico Tomado de: Aprendiendo PC. (n.d.). 28

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

En la arquitectura cliente servidor de dos capas, se pueden instalar aplicaciones en las máquinas cliente para ejecutarlas localmente y cuando requieren un servicio especializado que está instalado en el servidor crean una conexión hacia dicho servidor para cumplir su tarea. Los programas de aplicación y la interfaz de usuario se mantiene en el cliente y el procesamiento de SQL se mantiene en el lado del servidor. Arquitectura cliente/servidor en tres capas La arquitectura cliente servidor en tres capas se compone de: •

El cliente se encuentra en el nivel de interfaz de usuario y se ejecuta en la computadora del usuario final.



El servidor de aplicaciones que contiene lógica de negocio y el procesamiento de datos que corresponde a un nivel intermedio.



El servidor de bases de datos que corresponde al SGBD que realiza las tareas de validación y acceso a los datos.

La Figura 6 presenta un esquema del funcionamiento de la arquitectura típica cliente servidor en tres capas.

Figura 6. Arquitectura típica cliente servidor en tres capas Tomado de: Connolly, T. y Begg, C. (2005) 29

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

En esta arquitectura se identifican claramente tres capas: la capa de presentación, la capa de la lógica de negocio y la capa de datos. Se puede observar que en esta arquitectura aparece un servidor de aplicaciones que se encarga de procesar las peticiones. Incrementar la potencia del procesamiento esa capa intermedia permite disminuir los recursos necesarios para los clientes, haciendo que estos sean simples navegadores Web.

1.7. Lenguajes e interfaces de bases de datos En un entorno SGBD existen algunos papeles de usuarios, y así también existen algunos tipos de lenguajes e interfaces. Lenguajes del SGBD Los sistemas de bases de datos proporcionan del Lenguaje de Definición de Datos (DDL) y del Lenguaje de Manipulación de Datos (DML). Estos son los lenguajes que usted debe estudiar, aplicar y tener la capacidad de analizar su sintaxis. Es importante destacar que la sintaxis puede variar en función del motor de base de datos utilizado. El DDL permite especificar el esquema de la base de datos, mientras que, el DML permite consultar y actualizar la base de datos. Estos lenguajes se denominan sub-lenguajes de datos, debido a que no incluyen las estructuras para todas las necesidades de computación que son proporcionadas por lenguajes de programación de alto nivel, por ejemplo las instrucciones condicionales. En su texto básico, estudie el apartado “Lenguajes de bases de datos”, para comprender el funcionamiento de los sub-lenguajes de datos y sus características.

El dominio de los lenguajes de bases de datos es una habilidad esencial de la gestión de bases de datos.

30

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Una de las funciones que permite el DML es la recuperación de información almacenada en la base de datos, realizada a través de consultas a la base de datos. Una consulta es una instrucción que solicita recuperar información, realizada a través de una parte del DML denominada lenguaje de consulta SQL8. SQL es uno de los lenguajes de consulta más ampliamente utilizado en bases de datos relacionales y que será tema de estudio en las siguientes unidades. Realice un mapa mental y realice una anotación explicando las relaciones entre todos los elementos identificados. Asegúrese que haya identificado la diferencia entre DML procedimentales y DML declarativos (DML no procedimentales). Y, determine las principales funciones de los lenguajes DML y DDL e incorpórelas dentro de la actividad de aprendizaje.

Es importante indicar también, que el estándar SQL incluye el Lenguaje de control de acceso y control de transacciones. •

El control de acceso permite la asignación de permisos de acceso y de privilegios a los usuarios. Un ejemplo son los permisos de conexión, inserción, borrado, etc.



El control de transacciones permite la gestión de transacciones, garantiza que la unidad lógica de trabajo, es decir la transacción, sea atómica respecto de la recuperación.

Interfaces del SGBD Un SGBD incluye algunas interfaces9 de usuario de la base de datos, como son: •

Interfaz basada en menú para clientes Web: presentan al usuario una lista de opciones para que pueda realizar una petición de servicio.

8 9



del inglés Structured Query Language También llamados formas de acceso

31

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Por ejemplo, las funciones que dispone un estudiante para gestionar sus matrículas y notas. •

Aplicación para dispositivos móviles: estas interfaces permiten a los usuarios acceder a sus datos mediante sus dispositivos móviles. Un ejemplo son servicios virtuales móviles que ofrece un banco a los clientes.



Interfaz basada en formularios: los usuarios interactúan con la base de datos mediante un formulario para el ingreso de datos. Por ejemplo el formulario que usted utiliza para subscribirse a un evento.



Interfaz gráfica de usuario: son formularios creados específicamente para que los usuarios realicen la manipulación de datos.



Búsqueda en bases de datos basadas en palabras clave: Son interfaces que permiten búsquedas especializadas en una base de datos. Por ejemplo en una base de datos científica el usuario puede buscar un artículo con base a uno o varios atributos: palabras clave, título, área de conocimiento, etc.



Interfaces parametrizadas para usuarios: Existen ciertas categorías de usuarios que ejecutan un pequeño conjunto de funciones que deben ejecutarse de forma repetitiva, con frecuencia se pueden generar interfaces específicas para estos usuarios. Un ejemplo es la función de cierre de caja diario para que lo utilice un cajero de banco durante las noches.



Interfaces para el administrador de base de datos: los SGBD contienen comandos privilegiados para el personal de administración de base de datos. Por ejemplo el SGBD cuenta con el servicio de consola para la manipulación de la base de datos. Además, puede contar con interfaces gráficas o utilizar aplicativos específicos de

32

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

administración de bases de datos como: Toad10, Sequel pro11, entre otros.

1.8. Funciones de un SGBD Un SGBD completo debe proporcionar diez servicios que según (Connolly & Begg, 2005) se espera que estén disponibles y se presentan en la Figura 7.

Figura 7. Funciones de un SGBD Tomado de: Connolly, T. y Begg, C. (2005) Página oficial Toad Página oficial SequelPro

10 11

33

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Por ejemplo, en una base de datos de un sistema financiero, el servicio1 se puede observar porque se requiere almacenar los datos de sus cuenta-habientes como datos generales y datos de sus cuentas. Así también a futuro, el saldo debe irse actualizando según las transacciones realizadas. El servicio8 se puede ejemplificar debido a que la base de datos debe garantizar integridad, en el caso de que un cuenta-habiente tenga dos cuentas, la identificación asociada para cada cuenta debe ser la misma debido a que pertenece al mismo cuentahabiente. Le invitamos a que siga identificando escenarios en donde se puede evidenciar la presencia de los servicios de un SGBD.

1.9. Almacenamiento y análisis de datos Los sistemas de bases de datos se constituyen en sistemas de captura de datos que con el tiempo llegan a almacenar grandes volúmenes de datos. Las organizaciones hacen uso diariamente de los datos en los sistemas transaccionales, realizando procesamiento simple y avanzado de los datos. Esto da lugar a la obtención de información. La información para que sea significativa requiere de un contexto. Así también, la información puede servir de base para la toma de decisiones. Un sistema de toma de decisiones puede ser desarrollada mediante conceptos como almacenes y mercados de datos, minería de datos, entre los más importantes. Ahora, vamos a ir analizando los conceptos más utilizados actualmente, en el campo del análisis de datos. Minería de datos La minería de datos se refiere al proceso de análisis semiautomático de grandes bases de datos para descubrir reglas y patrones de datos. La minería de datos, al igual que la inteligencia artificial12 o el análisis estadístico, realiza el

12

La inteligencia artificial denominada también aprendizaje de la máquina. 34

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

descubrimiento de conocimiento. Sin embargo, la minería se diferencia de estos dos últimos debido a que maneja grandes volúmenes de datos, almacenados principalmente en disco. Se puede inferir que, la minería de datos trata del descubrimiento de conocimientos en las bases de datos. Los conocimientos descubiertos en las bases de datos pueden representarse mediante un conjunto de reglas, ecuaciones13 u otros mecanismos para la predicción de los resultados. Cuando se conocen los valores de algunas variables se pueden identificar patrones útiles y para esto se emplean diferentes técnicas. En la minería de datos, generalmente, hay un componente manual que consiste en el pre-procesamiento de los datos (preparación de los datos) para que sean aceptables para los algoritmos, y el pos-procesamiento de los patrones descubiertos para identificar otros nuevos que puedan resultar útiles. En una base de datos pueden descubrirse varios patrones, sin embargo, puede requerirse interacción manual; por este motivo, se considera como un proceso semiautomático. En su texto básico, examine el apartado “Minería y análisis de datos”. Realice un esquema identificando sus características.

Las empresas han comenzado a explotar la gran cantidad de datos disponibles para tomar mejores decisiones sobre sus actividades. Así un ejemplo son los artículos que siempre deben tener altas existencias en bodega debido a su alta demanda, otro ejemplo puede ser identificar patrones de comportamiento de los clientes en determinadas ocasiones o festividades con el fin de incrementar las ventas. • Analice los ejemplos propuestos en el presente apartado. • Revise el ejemplo de pañales y cervezas, que es un ejemplo simpático y muy comprensible de posibles aplicaciones de minería de datos.

13

Las ecuaciones relacionan diferentes variables 35

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

¿Qué le pareció el ejemplo presentado? ¡Interesante! ¿verdad? Es sólo uno de miles de ejemplos de donde se puede obtener de datos importantes. Almacenes de datos Las grandes compañías, han implementado almacenes de datos para obtener consultas eficientes sobre los datos generados en sus operaciones. Los almacenes de datos recogen datos de distintas fuentes bajo un esquema unificado. Por tanto, proporcionan al usuario una interfaz única y uniforme de los datos. Estimado estudiante, es necesario que usted conozca que este apartado es parte de los conocimientos básicos de esta asignatura, sin embargo, se ampliarán en el siguiente componente académico de bases de datos.

1.10. Proceso de construcción de una base de datos Normalmente, la implementación de una base de datos forma parte de la implementación de un sistema de información. Existe una estrecha vinculación entre ambos. En (Coronel y Morris, 2011) se define el ciclo de vida del desarrollo de sistemas (SDLC14) en las cinco tradicionales fases: planeación15, análisis, diseño, implementación y mantenimiento. El ciclo de vida de una base de datos no es ajeno al SDLC, al contrario, debe existir sincronía entre ambos, en cuanto a planificación (tiempos), coordinación, documentación y otros. El ciclo de vida de una base de datos (DBLC16) define las fases que marcan la evolución del desarrollo de un sistema de bases de datos. En (Coronel y Morris, 2011) se plantea un DBLC dividido en seis fases (Figura 8) que guardan mucha relación con las fases del SDLC. Tanto el DBLC como el SDLC son procesos vinculados que se van ejecutando paralelamente, son codependientes e integrados. del inglés System Development Life Cycle o investigación preliminar 16 del inglés Database Life Cycle 14 15

36

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Figura 8. Ciclo de Vida de una Base de datos (DBLC) Elaborado por: Encalada, E. (2017) Tomado de: Coronel, et. al. (2011)

Papeles de usuario en un entorno de base de datos De la mano con el DBLC aparecen algunos papeles en un entorno de base de datos, son: administrador de datos y administrador de base de datos, diseñador de base de datos, desarrollador de aplicaciones y usuarios finales. Administrador de datos y administrador de base de datos El administrador de datos (DA17) y el administrador de bases de datos (DBA18) son los responsables de gestionar y controlar un SGBD y los datos almacenados. •

El administrador de datos es el responsable de gestionar los recursos de datos, planificación, desarrollo y mantenimiento de la base de datos, desarrollo y mantenimiento de estándares, políticas y procedimientos y el diseño lógico de la base de datos.

17 18

del inglés Data Administrator del inglés Database Administrator

37

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre



El administrador de la base de datos (DBA) es responsable de la materialización física de la base de datos, incluyendo de implementación y diseño físicos de la base de datos, el control de la seguridad y de la integridad, el mantenimiento de la fiabilidad del sistema y la garantía de que las aplicaciones exhiban un rendimiento satisfactorio para los usuarios. El papel del DBA es más técnico que el DA, sin embargo, en algunos casos el DBA asume el rol del DA.

Diseñadores de base de datos La responsabilidad del diseñador lógico de bases de datos es identificar los datos (entidades y atributos), las relaciones entre los datos y las restricciones que hay que aplicar a los datos que se almacenen en la base de datos. Requiere comprensión profunda y completa de los datos de la organización y sus reglas de negocio. Adicionalmente, el diseñador físico de la base de datos decide el proceso materialización física del diseño lógico de la base de datos; selecciona las estructuras de almacenamiento y los métodos de acceso específicos a los datos para conseguir buenas prestaciones; y diseña las medidas de seguridad que los datos requieren. Si bien explicamos por separado estos dos roles, las organizaciones no siempre cuentan con estos roles, y las personas deben tener la capacidad de asumir cualquiera de los roles o los dos. Desarrolladores de aplicaciones Sobre la base de datos se implementan los programas de aplicación para proporcionar la funcionalidad requerida por los usuarios finales. El desarrollador construye diferentes tipos de aplicaciones: aplicaciones de escritorio, aplicaciones Web, aplicaciones móviles o aplicaciones híbridas, utilizando algunas de las diferentes arquitecturas de sistemas de bases de datos revisados en el apartado 1.5 Arquitecturas de un SGBD.

38

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Usuarios finales Los usuarios finales son los usuarios no sofisticados que interactúan con la base de datos invocando alguno de los programas de aplicación. Por ejemplo, en una entidad financiera que cuenta con su sistema informático que es administrado por su personal y que además cuenta con los servicios de banca virtual y de banca móvil, los usuarios finales son: los cajeros, los oficiales de crédito, los agentes de servicio al cliente, etc., y también los cuenta-habientes que tienen habilitados los servicios de banca virtual y/o banca móvil.

Muy bien, ¡felicitaciones! hemos completado la primera unidad, Siga adelante con el mismo entusiasmo. Para complementar esta unidad, es momento que compruebe sus avances desarrollando la siguiente autoevaluación.

39

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Autoevaluación 1

Una vez completada la presente unidad, el siguiente cuestionario le permite verificar su aprendizaje en la unidad “Introducción a las bases de datos”. Seleccione la opción correcta: 1.

Los sistemas basados en archivos mantienen los datos en varios archivos, generalmente en distintos formatos, y requieren igualmente de varios programas de aplicación para manipular sus datos. Esta desventaja se la conoce como:

2.

a.

Anomalías en el acceso concurrente

b.

Dificultad en el acceso a los datos

c.

Aislamiento de datos

Una base de datos es el: a.

Software que gestiona y controla el acceso a los datos

b.

Conjunto de datos que contiene información relativa a una organización

c.

Programa escrito por desarrolladores en respuesta a las necesidades de los usuarios

3.

El administrador de base de datos debe seleccionar los datos que se almacenan en la base de datos empleando el nivel de abstracción: a.

físico

b.

lógico

c.

de vistas

40

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

4.

5.

El lenguaje de definición de datos sirve para: a.

Especificar el esquema de la base de datos

b.

Expresar las consultas y modificaciones a la base de datos

c.

Especificar los privilegios sobre elementos de la base de datos

¿Cuál de las siguientes sentencias NO corresponde a características de una base de datos relacional?

6.

a.

Emplea el lenguaje de manipulación de datos y de definición de datos.

b.

Utiliza un conjunto de tablas para representar datos y sus relaciones

c.

Describe el diseño de la base de datos en el nivel físico

Identifique el elemento que no corresponde a una aplicación de base de datos con una arquitectura de tres capas.

7.

a.

Máquina cliente

b.

Servidor de aplicaciones

c.

Lógica de negocio

d.

Servidor de base de datos

Minería de datos hace referencia a: a.

El proceso de análisis semiautomático de grandes bases de datos para descubrir patrones útiles

b.

La creación de formularios e informes con un mínimo de esfuerzo de programación

c.

El método para añadir información de marcas a los documentos de texto para el intercambio de datos

41

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

8.

¿Cuál de los siguientes enunciados es una actividad rutinaria de un DBA? a.

Escribir aplicaciones de base de datos especializadas que no encajan en el marco tradicional del procesamiento de datos

b.

Asegurar disponibilidad del espacio en disco suficiente para la normal operación de la base de datos

c.

Crear el esquema original de la base de datos mediante la ejecución de comandos de definición de datos de SQL

9.

El módulo de gestión de almacenamiento de una base de datos es responsable de: a.

Ayudar al sistema de base de datos a simplificar y facilitar el acceso a los datos

b.

El almacenamiento, recuperación y actualización de los datos de la base de datos

c.

Permitir a los usuarios de la base de datos obtener buenos tiempos de respuesta al ejecutar sus consultas

10. El esquema conceptual de una base de datos completamente desarrollado permite: a.

Identificar los requisitos de datos de la organización

b.

Especificar las características físicas de la base de datos

c.

Indicar los requisitos funcionales de la empresa

Ahora, seguro Usted requiere verificar si sus respuestas fueron correctas. Con este fin revise el solucionario que se encuentra al final de la guía didáctica y así ratifique o rectifique sus respuestas.

42

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

UNIDAD 2. MODELO RELACIONAL Para el desarrollo de esta unidad se requiere que utilice paralelamente la guía didáctica y el capítulo “Introducción al modelo relacional” del texto básico.

“Una de las mayores fortalezas del modelo relacional es la estructura lógica simple.” -Thomas Connolly y Carolyn Begg.

Estimado estudiante, en este momento iniciamos con la revisión del tema Modelo relacional. Se examinan los conceptos estructurales y la representación de datos el modelo. Este tema es de vital importancia dentro de las bases de datos debido a que sirve como fundamento teórico de la gestión y manipulación de datos en una base de datos. Uno de los objetivos principales de la asignatura es desarrollar en el estudiante la habilidad de aplicar el modelo relacional. El modelo de datos es un conjunto de herramientas conceptuales para la descripción de los datos, las relaciones entre ellos, su semántica y las restricciones de consistencia. El modelo de datos para bases de datos relacionales más ampliamente utilizado es el Modelo relacional, que por su simplicidad facilita su comprensión.

43

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

2.1. Estructura de las bases de datos relacionales El propósito esencial de una base de datos es el almacenamiento de datos. Una base de datos relacional consiste en un conjunto de tablas, a las que también las podemos denominar relaciones, de ahí que se denomine modelo relacional. En su texto básico, estudie el apartado “Estructura de las bases de datos relacionales”

Es importante que identifique los elementos que son parte de la terminología, y que aprenda a identificar dichos conceptos en ejercicios prácticos. Con este propósito, revise la Figura 9 que presenta los elementos básicos del modelo relacional.

Figura 9. Elementos básicos del modelo relacional – Relación Profesor Tomado de: Silberschatz, et. al. (2014)

44

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Analice los ejemplos del apartado “Estructura de las bases de datos relacionales”, y con la terminología utilizada en el modelo relacional realice un cuadro resumen en Padlet19.

Seguro que ya relacionado los elementos básicos del modelo relacional con sus respectivos conceptos.

2.2. Claves Las claves en el modelo relacional son una forma de especificar que las tuplas de una relación dada se distinguen entre sí. Esto se expresa mediante los atributos de la relación. Algunos tipos de claves son: •

Superclave



Clave candidata



Clave primaria



Clave externa o también se conoce como clave foránea. En su texto básico repase el apartado “Claves”. Resalte los conceptos relevantes. Asegúrese de haber comprendido los conceptos de cada tipo de claves y los conceptos de integridad asociados.

La Figura 9 ha sido la base para la identificación de ejemplos de los tipos de claves:

19



Superclave: ID + nombre



Clave candidata: ID



Clave primaria: ID



Clave externa: nombre_dept

Padlet es un muro digital que puede utilizarse como tablón personal o pizarra colaborativa.

45

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

2.3. Esquemas de bases de datos relacionales y su representación Es importante hacer diferencia entre un esquema de base de datos y un ejemplar20 de una base de datos. El esquema de base de datos corresponde al diseño lógico de una semántica dada y el ejemplar de la base de datos corresponde a los datos en la base de datos en un instante dado. Otros conceptos que aparecen dentro de un esquema de base de datos, corresponden a esquema de relación y ejemplar de la relación. El esquema de la relación consiste en la lista de atributos y sus dominios, que se mantienen estáticos. Mientras que ejemplar de la relación se refiere a los datos que se encuentran en la base de datos en un instante determinado y que pueden cambiar con el tiempo. En su texto básico, lea el apartado “Esquema de la base de datos” y destaque los conceptos relevantes. Asegúrese de que haya comprendido los conceptos incorporándolos al muro creado en Padlet21.

En el texto básico se hace una analogía entre los conceptos relación y variable de los lenguajes de programación y, además, entre ejemplar de relación y valor de una variable. Lo invitamos a revisarlo detenidamente. En las relaciones asignatura, sección y enseña identifique los elementos básicos de una relación.

Una base de datos relacional está compuesta de un número de relaciones normalizadas22, es decir, un conjunto completo de relaciones de base de datos.

Recordemos que también se denomina instancia Padlet es un muro digital que puede utilizarse como tablón personal o pizarra colaborativa. 22 Una relación normalizada es una relación que ha seguido un proceso que consiste en designar y aplicar un conjunto de reglas a las relaciones que se obtienen al transformar el modelo entidad-relación al relacional (véase Diseño Lógico de Bases de Datos). 20 21

46

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

La relación Profesor y las relaciones asociadas para el registro de notas es un ejemplo de relación basado en la Figura 9. El Anexo 1 presenta el ejemplo completo. Profesor (ID, nombre, nombre_dept, salario) Departamento (nombre_dept, edificio) Asignatura (asignatura_id, nombre_asig, nombre_dept, creditos) Matricula (ID, asignatura_id, semestre, año) Estudiante (ID, nombre_est, nombre_dept, tot_ creditos)

En su texto básico, realice una lectura comprensiva del apartado “Diagramas de esquema”. Realice un mapa mental y un resumen donde, con sus propias palabras, explique y relacione estos conceptos.

¿Cómo le resultó la actividad anterior? Recuerde que la representación común para realizar un esquema de relación consiste en indicar el nombre de la relación seguido por los atributos entre paréntesis y separados por comas y la clave primaria se subraya.

Basándonos en el esquema de Booking: ▪▪ Hotel (hotelNo,hotelName,city) ▪▪ Room (roomNo,hotelNo,type,price) ▪▪ Guest (guestNo,guestName,guestAddress) ▪▪ Booking (hotelNo,guestNo,dateFrom,dateTo,roomNo) Identifique en cada relación, en caso de que existan: superclaves, claves candidatas, claves primarias y claves externas. Este ejemplo se encuentra descrito de forma completa en el Anexo 2.

47

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

2.4. Restricciones de integridad En una relación, cada atributo tiene un dominio asociado, y por lo tanto, existen restricciones que imponen una limitación al conjunto de valores permitidos para los atributos de las relaciones. Existen algunos tipos de restricciones para el modelo relacional y las dos reglas básicas son: integridad de entidades e integridad referencial. Así también encontramos otras reglas como: valores válidos y valores nulos. Integridad de entidades En una relación, ningún atributo de una clave principal puede ser nulo. Es importante que se tome en cuenta que si la clave primaria es compuesta, esta regla debe aplicarse a todos los campos. Integridad referencial En caso de relaciones que tengan claves externas (foráneas), el valor de la clave externa debe corresponderse con el valor de la clave primaria o clave candidata de alguna tupla de la relación de origen, o el valor de la clave externa debe ser completamente nulo. Valores válidos Los valores válidos corresponden a la limitación a un conjunto de valores permitidos para los atributos de las relaciones. También se conoce como integridad de dominios. Es necesario indicar que los dominios pueden ser inherentes23 de acuerdo al tipo de datos y específicos24 a través de un conjunto de datos.

23

implícitos

24

explícitos

48

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Valores nulos Los valores nulos representan un valor, que actualmente es, desconocido para un atributo de una tupla.

2.5. Operaciones relacionales Para comprender el concepto relación de bases de datos, es importante que se comprenda que las bases de datos relacionales tienen como base la teoría de conjuntos, y por ello, las operaciones que se utilizan para explorar los datos son las operaciones de conjuntos. Los lenguajes procedimentales de consulta relacionales proporcionan operaciones que se pueden aplicar a una única relación o a un conjunto de relaciones. Como resultado de estas operaciones es siempre una única relación. Las operaciones relacionales más importantes son: •

Selección



Proyección



Reunión natural



Producto cartesiano



Unión



Intersección



Diferencia de conjuntos

Basándonos en el esquema de Booking, correspondiente al Anexo 2, se realizan ejemplos con cada una de las operaciones relacionales. En su texto básico, realice una lectura comprensiva del apartado “Operaciones relacionales”. Identifique las operaciones relacionales y su definición en un mapa mental.

49

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

La lectura y actividad debió aclararle la forma de utilizar estas operaciones relacionales. A continuación, relacione estos conceptos aprendidos con los ejemplos propuestos. Selección ▪▪

Ejemplo: Tuplas resultantes de enumerar los hoteles de la ciudad de New York. HotelNo

HotelName

City

001

The Marlton Hotel

New York

002

Millennium Broadway New York Times Square

New York

003

Stewart Hotel

New York

004

Hotel Mela Times Square

New York

Proyección ▪▪

Ejemplo: Tuplas resultantes de la consulta que genera la lista de hoteles que contenga nombre de hotel y ciudad. HotelName

City

The Marlton Hotel

New York

Millennium Broadway New York Times Square

New York

Stewart Hotel

New York

Hotel Mela Times Square

New York

Grand Beach Hotel Surfside

Miami

Grand Beach Hotel Surfside

Miami

JW Marriott Miami

Miami

Royal Decameron Punta Sal

Sullana

Decameron Mompiche

Esmeraldas

Royal Decameron Punta Centinela

Santa Elena

50

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Reunión natural ▪▪

Ejemplo: Tuplas resultantes de enumerar los nombres de los huéspedes que se han hospedado en el “Royal Decameron Punta Centinela”. GuestName

Margoth Cameron Stuart Lopez Ian Connolly Louis Brown

Producto cartesiano ▪▪

Ejemplo: Tuplas resultantes de enumerar las habitaciones y sus precios del “Royal Decameron Punta Centinela”. HotelName

Type

Price

Royal Decameron Punta Centinela

Standard

180

Royal Decameron Punta Centinela

Standard

180

Royal Decameron Punta Centinela

Standard

180

Unión ▪▪

Ejemplo: Tuplas resultantes de enumerar los hoteles de la ciudad New York junto con los hoteles de la ciudad de Miami. HotelNo

HotelName

City

001

The Marlton Hotel

New York

002

Millennium Broadway New York Times Square

New York

003

Stewart Hotel

New York

004

Hotel Mela Times Square

New York

005

Grand Beach Hotel Surfside

Miami

006

Grand Beach Hotel Surfside

Miami

007

JW Marriott Miami

Miami

51

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Intersección ▪▪

Ejemplo: Resultados de enumerar los huéspedes que se han hospedado en “Royal Decameron Punta Centinela” y también en Royal “Decameron Punta Sal”. GuestName

Margoth Cameron Stuart Lopez

2.6. Lenguajes de consulta relacional Los lenguajes de consulta relacional permiten la implementación de las operaciones relacionales. La parte del DML relacionada con la extracción de datos se denomina Lenguaje de consulta. El lenguaje de consulta: •

Puede definirse como lenguaje de propósito especial y de alto nivel que se utiliza para la extracción de los datos.



Permite a los usuarios solicitar información de la base de base de datos a través de estructuras especiales.



Se distinguen unos de otros por sus estructuras de extracción de datos.



Existen lenguajes de consulta procedimentales y no procedimentales.

En los lenguajes procedimentales: •

El usuario indica que se ejecute una serie de operaciones en la base de datos para obtener el resultado deseado, es decir, le indica la forma de obtener los datos requeridos.

52

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre



Normalmente, los DML procedimentales están incrustados en un lenguaje de programación de alto nivel25. Un lenguaje de tercera generación (3GL) es procedimental.



Un ejemplo de lenguaje formal procedimental es el álgebra relacional.

En los lenguajes no procedimentales: •

El usuario describe la información deseada sin establecer el procedimiento específico para obtener la información.



Permiten especificar los datos requeridos en una instrucción de extracción o actualización.



Proporciona a los usuarios un grado de independencia de los datos.



Los SGBD relacionales suelen incluir algún tipo de lenguaje no procedimental para la manipulación de datos, normalmente SQL26 o QBE27.



Un ejemplo de lenguaje formal no procedimental es el cálculo relacional.

Los DML no procedimentales son normalmente más fáciles de aprender y de utilizar que los lenguajes procedimentales, debido a que el usuario hace menos trabajo y el SGBD se encarga de una mayor parte de la tarea. Además, es importante destacar que los lenguajes de consulta pueden ser lenguajes formales, así también lenguajes de cuarta generación (4GL). Los lenguajes formales:

Un lenguaje de alto nivel tiene una gramática y sintaxis similar a las palabras en una oración. del inglés Structured Query Language 27 del inglés Query By Example 25 26

53

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre



Permiten ilustrar las técnicas básicas para la extracción de la información.



Álgebra relacional y Cálculo relacional son ejemplos de lenguajes formales, y son la base para comprender el funcionamiento de los lenguajes de consulta. Estos lenguajes se trabajarán en unidades más adelante.

Los lenguajes de cuarta generación28: •

En esencia, se trata de un lenguaje de programación optimizado.



El usuario define qué hay que hacer, no el modo de hacerlo.



4GL depende de modo fundamental de componentes de mucho mayor nivel, conocidos con el nombre de herramientas de cuarta generación29.



SQL es un ejemplo de 4GL. SQL se trabajará en unidades posteriores.

Muy bien, ¡felicitaciones! hemos completado la segunda unidad, Siga adelante con la misma disciplina. Para complementar esta unidad, es momento que compruebe sus avances desarrollando la siguiente autoevaluación.

Una operación que requiera cientos de líneas de código en un lenguaje de tercera generación (3GL), como Cobol, generalmente requiere un número mucho menor de línea en un 4GL (Connolly, T. y Begg, C.,2005). 29 El usuario define una serie de parámetros para que las herramientas que los utilizan generen un programa de aplicación. 28

54

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Autoevaluación 2

Una vez completada la presente unidad, el siguiente cuestionario le permite verificar su aprendizaje en la unidad “Modelo Relacional”. Seleccione la opción correcta: 1.

2.

Una base de datos relacional se compone de un conjunto de: a.

tablas que tienen nombres únicos

b.

tuplas organizadas mediante una clave principal

c.

columnas con nombres únicos

Para referirse a una instancia específica de una relación se utiliza el término:

3.

4.

a.

Esquema de relación

b.

Dominio atómico

c.

Ejemplar de relación

Dentro del modelo relacional, una tupla se refiere a: a.

Una fila de la tabla

b.

La columna de una tabla

c.

Una instancia de una relación

Dentro del modelo relacional, una relación se refiere a una: a.

fila

b.

tabla

c.

columna

55

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

5.

6.

Dentro del modelo relacional, un atributo se refiere a: a.

La columna de una tabla

b.

Una instancia de una relación

c.

Un ejemplar de una relación

Las claves (sean superclaves, candidatas o primarias) son propiedades de:

7.

a.

Toda la relación

b.

Cada una de las tuplas

c.

El esquema de la base de datos

Una clave candidata es: a.

La elegida por el diseñador de base de datos para identificar de forma única las tuplas de una relación.

b.

Aquella que podría identificar de forma única a cada tupla de una relación.

c.

Un conjunto de uno o varios atributos que considerados en conjunto identifican de forma única a cada tupla de una relación.

8.

La operación relacional más frecuente es: a.

Proyección

b.

Selección

c.

Producto cartesiano

56

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

9.

Cuando se aplica una consulta sobre una única relación y donde las tuplas tienen que cumplir un predicado particular (por ejemplo, fecha_ ingreso > ‘10/06/2015’), el resultado es: a.

Una vista que contiene las tuplas que satisfacen el predicado indicado.

b.

La misma relación original, pero que contiene solamente las tuplas que satisfacen el predicado.

c.

Una nueva relación, que es un subconjunto de la relación original.

10. Ciertos lenguajes relacionales cumplen estrictamente con la definición matemática de conjunto y: a.

Eliminan los duplicados

b.

Mantienen los duplicados

c.

Eliminan o mantienen los duplicados de acuerdo a los recursos del servidor de base de datos

Ahora, seguro Usted requiere verificar si sus respuestas fueron correctas. Con este fin revise el solucionario que se encuentra al final de la guía didáctica y así ratifique o rectifique sus respuestas.

57

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

UNIDAD 3. LENGUAJE SQL Para el desarrollo de esta unidad se requiere que utilice, tanto la guía didáctica y el capítulo “Introducción a SQL” del texto básico.

“Los SGBD deben proveer de lenguajes e interfaces apropiados para cada categoría de usuarios.” – Elmasri, R, y Navathe, S.

Estimado estudiante, en la presente unidad vamos a revisar el Lenguaje de Consulta Estructurado SQL30, centraremos nuestra atención en la forma de construir sentencias SQL utilizando las cláusulas WHERE, ORDER BY, funciones de agregación, cláusula GROUP BY y subconsultas. Además, es importante conocer sobre la manipulación de datos mediante las instrucciones del lenguaje de manipulación de datos (DML31): INSERT, UPDATE y DELETE. Se complementa con las instrucciones del lenguaje de definición de Datos (DDL32) que permiten crear las estructuras para soportar los datos y objetos de la base de datos como: vistas o índices, así como también los comandos para controlar el acceso a los datos.

del inglés Structured Query Language DML, del inglés Data Manipulation Language 32 DDL, del inglés Data Definition Language 30 31

58

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

La aplicación del lenguaje SQL es una competencia importante en la gestión de base de datos y una de las competencias más requeridas en todo perfil del profesional informático. Para llevar a la práctica el lenguaje SQL trabajaremos con el SGBD Oracle, le recomiendo si aún no lo ha hecho, descargue e instale dicho motor y las herramientas que facilitan la gestión de la base de datos. Puede utilizar los siguientes enlaces para acceder a descargar el motor Oracle y las herramientas asociadas: Oracle Database Express Edition 11g: si el enlace no estuviera disponible busque a través de su navegador de preferencia “Oracle Database Express Edition (XE) 11”. Esta versión del motor de base de datos es la aconsejable a pesar que existen nuevas versiones de la base de datos no se requieren por el momento. Oracle Database Develper: en caso que no funcione el enlace busque, a través de su navegador, el software en la versión disponible.

3.1. Introducción al lenguaje de consulta estructurado SQL es la principal herramienta para la interacción del usuario con una base de datos. A través de este lenguaje se envían solicitudes de datos al servidor, que es el encargado de responder a dichas peticiones. SQL es un lenguaje relativamente fácil de aprender. Estudie el apartado “Introducción al lenguaje de consultas SQL” de su texto básico, donde podemos revisar la evolución de este importante lenguaje.

Haciendo un poco de historia de la evolución del lenguaje SQL, podemos mencionar que el estándar SQL2006, ISO/IEC 9075-14:2006, define las maneras de uso de SQL para utilizar conjuntamente con XML. Además, proporciona facilidades que permiten a las aplicaciones integrar dentro de su código SQL el

59

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

uso de XQuery, lenguaje de consulta XML publicado por el W3C33 para acceso concurrente a datos ordinarios SQL y documentos XML. En el 2008, tenemos SQL2008 donde se permite el uso de la cláusula ORDER BY fuera de las definiciones de los cursores. Incluye los disparadores del tipo INSTEAD OF. Añade la sentencia TRUNCATE. En la actualidad, se han aprobado nuevas propuestas para extender el SQL, llamado SQL3. Se está trabajando sobre una extensión del SQL3 para soportar bases de datos multimedia, conocida como SQL/MM (SQL Multimedia). Debido al tamaño que posee el SQL3 ya se ha empezado a hablar del SQL4. La Figura 10 muestra la evolución del lenguaje SQL.

Figura 10. Evolución del lenguaje estructurado de consulta SQL Tomado de: Silberschatz, et. al. (2014)

SQL es un estándar de la ISO34, por tanto, todas las bases de datos que soportan SQL deben tener la misma sintaxis, sin embargo, muchos de los productos comerciales de SGBD agregan sus propias mejoras especiales, aunque estas diferencias son de poca importancia sin embargo no favorecen la interoperabilidad. Además, agrupa sentencias de acuerdo al papel que cumplen, siendo estos grupos los siguientes: 33 34

World Wide Web Consortium, página office al de W3C ISO del inglés International Organization for Standardarization

60

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre



Lenguaje de definición de datos (DDL), abarca sentencias del tipo DROP y CREATE para crear/eliminar las estructuras de almacenamiento requeridas.



Lenguaje de manipulación de datos (DML), contiene las sentencias SELECT, INSERT, UPDATE y DELETE, que manipulan los datos en una base de datos.



Restricciones de integridad, se expresan mediante los comandos PRIMARY KEY, FOREIGN KEY y NOT NULL que permiten asegurar la integridad de los datos.



Definición de vistas, se especifican mediante el comando CREATE VIEW.



Lenguaje de control de transacciones (TCL35), incluye las sentencias COMMIT y ROLLBACK. Permite ejecutar varias operaciones como una sola de forma indivisible y si se ejecuta correctamente se confirma a través COMMIT, caso contrario, si algo sale mal se pueden deshacer los pasos previos con ROLLBACK.



SQL incorporado y SQL dinámico, abarcan las definiciones para incorporarlas en el código SQL en lenguajes de programación de propósito general.



Lenguaje de control de datos (DCL36), abarca las sentencias GRANT y REVOKE y permiten al administrador gestionar el acceso a los datos en la base de datos.

35 36

Del inglés Transaction Control Language Del inglés Data Control Language

61

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

3.2. Definición de datos en SQL Es momento de acudir al texto básico para reforzar conocimientos acerca de SQL. Estudie los apartado “Definición de datos de SQL.

Seguro que ahora tiene más clara la sintaxis para la definición de datos en SQL y los tipos de datos que se pueden utilizar. A continuación, se abordan los puntos más importantes. Esta parte del lenguaje SQL, el lenguaje de definición de datos, permite crear las estructuras de almacenamiento de datos y otros objetos de base de datos que son necesarios para su buen funcionamiento. La principal estructura es la tabla de base de datos. •

Las tablas están compuestas por columnas o también denominados atributos.



Los atributos tienen un tipo de dato y longitud (lo que se conoce como “dominio”).



Los tipos de datos pueden variar de acuerdo al producto de base de datos utilizado, pero contamos con unos tipos de datos básicos que soporta el estándar SQL.

62

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

La Tabla 1 muestra los tipos de datos básicos de SQL. Tabla 1. Tipos de datos soportados por SQL Tipo de dato

Descripción

char(n)

Cadena de caracteres de longitud fija (n).

varchar(n)

Cadena de caracteres de longitud variable, con longitud máxima (n).

int

Entero37

smallint

Entero pequeño38

numeric(p,

Número de punto fijo con precisión especificada por el usuario. El

d)

número consta de : p dígitos (más un signo) d de los p dígitos están a la derecha del punto decimal Ejemplo: numeric (3,1) permite almacenar 44,5 exactamente. Pero no 444,5 ni 0,32 pueden almacenarse exactamente en este campo.

real, double Números de coma flotante y doble precisión con precisión precision

dependiente de la máquina.

float(n)

Número de coma flotante, con precisión de al menos n dígitos.

Date

Fecha de calendario que contiene cuatro dígitos: año, mes y día

Time

Hora del día, en horas, minutos y segundos. Una variante es time (p) que permite especificar el número de dígitos fraccionarios para segundos (el valor predeterminado es 0).

Timestamp

Combinación de fecha y hora. Timestamp se compone del siglo, año, mes, día, hora, minuto y segundo. Timestamp registra segundos fraccionarios39. Una variante es timestamp (p) que utiliza de forma opcional la precisión de segundos fraccionarios, que es un número de 0 a 9. p dice a Oracle el número de dígitos para las fracciones de segundo (el valor predeterminado es 6).

Tomado de: Silberschatz, et. al. (2014)

Subconjunto finito de los enteros que depende de la máquina Subconjunto dependiente de la máquina del tipo entero 39 Es cierto que no todos los procesos son tan críticos en el tiempo que un milisegundo. 37

38

63

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Crear tablas La sintaxis básica para crear una tabla es:

NOTA: [ ] significa que el comando es opcional. Consulte en la Web la sintaxis del comando CREATE TABLE de Oracle. Luego. Aplique la sintaxis de creación de una tabla que registra tareas y que tiene los atributos Idtarea, tarea, detalle, fecha, hora_inicio y hora_ fin.

¿Cómo le fue con la actividad propuesta? Sin lugar a dudas aplicar la teoría nos ayuda a ir dominando un saber. Ahora que ha escrito su primera tabla mediante lenguaje DDL está preparándose para ir aplicando profesionalmente el lenguaje SQL. Un aspecto muy importante es definir las restricciones de integridad, que se reflejan en el modelo mediante PRIMARY KEY, FOREIGN KEY y NOT NULL. La clave primaria se especifica por la sentencia PRIMARY KEY (PK). Es el atributo que identifica de forma única a cada tupla de la tabla. Cuando creamos la tabla podemos definir la clave primaria a dos niveles, de columna o de tabla.

64

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Tabla 2. Definición de la clave primaria A nivel de columna

A nivel de tabla

CREATE TABLE PERSONAS

CREATE TABLE PERSONAS

(

(

p_apellido VARCHAR2 (80) NOT

p_apellido VARCHAR2 (80) NOT

NULL ,

NULL,

p_nombre VARCHAR2 (80) NOT NULL

p_nombre VARCHAR2 (80) NOT

,

NULL,

p_direccion VARCHAR2 (120) ,

p_direccion VARCHAR2 (120) ,

p_ciudad VARCHAR2 (80) ,

p_ciudad VARCHAR2 (80) ,

p_fechaNac DATE ,

p_fechaNac DATE ,

p_tituloAcad VARCHAR2 (80)

p_tituloAcad VARCHAR2 (80),

p_dni VARCHAR2 (15) PRIMARY KEY, p_dni VARCHAR2 (15),

)

PRIMARY KEY (p_dni) );

Tomado de: Silberschatz, et. al. (2014)

La Tabla 2 muestra ejemplos de definición de la clave primaria a nivel de columna y a nivel de tabla. Los ejemplos correspondientes a esta unidad están basados en el esquema de Ordenes de Compra que se encuentra en el Anexo 3. La clave foránea se especifica por la sentencia FOREIGN KEY (FK). Es la restricción que ayuda a asegurar la integridad referencial, relacionando los valores de un atributo que es clave foránea en la tabla hija, con los valores de un atributo que es clave primaria en la tabla padre. La sintaxis básica de la clave foránea se muestra a continuación:

65

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Como alternativa al código anterior, se puede crear primero la tabla ORDENES sin la restricción de clave foránea y añadirlo después a través de una sentencia ALTER TABLE, según el siguiente especificación:

La restricción NOT NULL determina que en los atributos definidos con esta restricción no se ingresen valores nulos. En caso que se envíen a insertar valores nulos, el SGBD debe lanzar un error señalando que se está violando la restricción de integridad. Actualizar tablas También, puede suceder que cuando hayamos creado una tabla se requiera añadir, modificar el tipo de dato o eliminar una columna, para esta función se cuenta con ALTER TABLE. 1.

Para agregar una nueva columna se emplea: ALTER TABLE ADD Ejemplo: Agregamos la columna dirección a la tabla Personas de tipo numérico de longitud 10. ALTER TABLE PERSONAS ADD (direccion number(10));

2.

Para modificar el tipo de dato de una columna se emplea: ALTER TABLE MODIFY

66

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Ejemplo: Se modifica la columna direccion de la tabla Personas, cambiando al tipo de dato varchar2 de longitud 100 caracteres. ALTER TABLE PERSONAS MODIFY (direccion VARCHAR2(100)); 3.

Para eliminar una columna se emplea: ALTER TABLE DROP COLUMN Ejemplo: Se modifica la tabla Personas eliminando la columna direccion. ALTER TABLE PERSONAS DROP COLUMN direccion;

Borrar tablas y otros objetos de base de datos Si creamos estructuras y objetos de bases de datos, también puede ser necesario eliminarlas. Con este fin, se tiene la sentencia DROP seguido del tipo de objeto que vamos a borrar. Si la tabla se requiere borrar, la sentencia es DROP TABLE, si es una vista sería DROP VIEW. La sintaxis puede variar de un SGBD a otro, el ejemplo mostrado es la sintaxis para Oracle: DROP TABLE nombre_tabla; DROP INDEX nombre_índice; DROP VIEW nombre_vista; Para ejemplificar los comandos anteriores, creamos una copia de la tabla Personas: CREATE TABLE Personas_copia AS SELECT p_dni, p_apellido, p_nombre FROM Personas;

67

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

1.

Ahora procedemos a eliminar la copia de la tabla Personas: DROP TABLE Personas_copia;

2.

Eliminar un índice: DROP INDEX Personas_p_nombres;

3.

Eliminar una vista: DROP VIEW vPersonas;

Cuando se ha creado una tabla, la información acerca de dicho objeto de base de datos, denominada metadatos, es incluida en el diccionario de datos. En el diccionario de datos se registra información de las columnas que contiene la tabla, junto con su tipo de datos y longitud.. La tabla inicialmente está vacía, pero lista para empezar a almacenar datos. Para la manipulación de datos empleamos comandos como INSERT, UPDATE y DELETE. Es una buena estrategia que aplique los ejemplos de creación de tablas y las restricciones de integridad que se han presentado en su texto básico, utilizando el motor de base de datos especificado con el fin de aplicar las sentencias aprendidas.

¿Cómo le ha ido con esta actividad? Seguro que aplicar los conocimientos a la práctica le ha resultado una actividad muy enriquecedora. Sigamos avanzando.

3.3. Consultas con SQL Dado que una base de datos está diseñada para el almacenamiento, es necesario que esos datos sean consultados. Las consultas de base de datos se realizan mediante la sentencia SELECT. Cuando realizamos consultas sobre una sola tabla, la estructura de la sentencia es: SELECT , FROM WHERE alguna-columna operador valor;

68

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Donde: •

SELECT va seguido de la lista de atributos separados por comas.



FROM indica la tabla de procedencia de los datos.



En este caso, en WHERE se incluye si se quiere filtrar datos por algún criterio y se puede establecer condiciones, no solamente una sino varias unidas a través de conectores lógicos AND y OR, como se lo hace en cualquier lenguaje de programación.



El resultado de esta consulta será un conjunto de tuplas que satisfacen la condición planteada que forman otra relación sin nombre.

Avanzando las consultas, también se realizan consultas sobre varias tablas. Para este tipo de consultas, en la parte del FROM se listan las tablas que contienen los datos, separados por comas. La Tabla 3 muestra la estructura de la sentencia: Tabla 3. Sintaxis de la sentencia SELECT SINTAXIS

EJEMPLO

a. Utilizando WHERE SELECT ,

SELECT p_dni, p_nombre, p_



apellido, ec_descripcion

FROM , , …

WHERE ESTADO_CIVIL.EC_ID =

WHERE columna-tabla-1 =

PERSONAS.ESTADO_CIVIL_EC_ID;

columna-tabla-2;

b. Utilizando INNER JOIN SELECT ,

SELECT p_dni, p_nombre, p_



apellido, ec_descripcion

FROM

FROM ESTADO_CIVIL JOIN PERSONAS

INNER JOIN

ON ESTADO_CIVIL.EC_ID = PERSONAS.

ON columna-tabla-1 = columna-

ESTADO_CIVIL_EC_ID;

tabla-2; Elaborado por: Morocho, J. y Romero, A. (2017) 69

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Si consultamos en más de una tabla, se debe asegurar que si tenemos n-tablas se deben definir n-1 condiciones de JOIN (columna-tabla1 = columnatabla2).

3.4. Operaciones básicas adicionales Las operaciones básicas adicionales permiten realizar comparación entre atributos mediante la cláusula WHERE del tipo columna-tabla1 = columnatabla2. Suele suceder que los atributos tienen el mismo nombre en ambas tablas, por lo que, para diferenciarlos tendríamos que anteponer el nombre de la tabla, así: nombre-tabla1.columna-tabla1= nombre-tabla2.columnatabla2. Ejemplo: emp.depId=dep.depId Para abreviar y no repetir los nombres completos o poco descriptivos de tablas se utiliza un “alias” utilizando para ello la cláusula AS, su uso no es obligatorio y puede utilizar tanto a nivel de columnas como de tablas. La sintaxis de la cláusula AS se presenta en el ejemplo siguiente:

En el ejemplo anterior: •

Observe la lista de atributos del SELECT donde se asigna un alias al atributo tp_descripcion, que posibilita que en el encabezado de los resultados aparece formapago, y por tanto, permite encabezados personalizados;

70

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre



Note que en la parte del FROM, las tablas utilizan “alias”. Los alias son nombres cortos que permiten referenciar a las tablas en la sentencia SELECT;



Para el ejemplo, el alias de la tabla ORDENES es o, el alias de la tabla PERSONAS es p y el alias de la tabla TIPOS_PAGO es tp;



En la parte del WHERE tenemos una condición p_nombre=’UTPL’ que filtra las tuplas donde el atributo p_nombre coincide con la cadena ‘UTPL’;



Luego o.PERSONAS_p_dni=p.p_dni establece el JOIN entre las tablas ORDENES y PERSONAS;



Y por último, tp.tp_id = o.TIPOS_PAGO_tp_id establece el JOIN entre TIPOS_PAGO y ORDENES. Consulte en internet sobre las formas de asignar alias a las columnas cuando necesitamos encabezados más elaborados que incluyen espacios en blanco entre palabras, y sobre la utilidad de la cláusula ORDER BY. Luego, aplique este conocimiento, en la tabla tareas creada anteriormente en otro apartado y cree una nueva tabla denominada proyectos con los atributos idProyecto, proyecto, departamento. Relacione estas dos tablas y obtenga los resultados de las tareas asignadas a cada proyecto y debe mostrar lo siguiente nombre del proyecto, nombre de la tarea y fecha.

¿Cómo le ha parecido la actividad propuesta? Ahora ha experimentado un nivel práctico de los lenguajes DDL y DML que le ayudará a tener mayor dominio en el leguaje SQL. El lenguaje SQL es muy potente y nos permite hacer consultas muy elaboradas incluyendo formas variadas de condiciones que permiten filtrar la información de acuerdo a las necesidades de los usuarios. Para ello tenemos a disposición algunas funciones que podemos utilizar, la Tabla 4 muestra algunas de ellas. 71

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Tabla 4. Funciones para utilizar en las consultas SQL Función UPPER()

Descripción Convierte una cadena de caracteres en mayúsculas. SELECT UPPER(nombreCli) AS cliente, ciudad FROM Clientes;

LOWER()

TRIM()

Convierte una cadena de caracteres en minúsculas. SELECT LOWER(nombreCli) AS cliente, ciudad FROM Clientes;

Eliminar espacios en blanco al inicio y fin de una cadena de caracteres. SELECT TRIM(nombreCli) AS cliente, ciudad

LIKE NOT LIKE

FROM Clientes;

Encuentra coincidencias a partir de un patrón de caracteres. % representa cualquier secuencia de cero o más caracteres _ representa cualquier carácter individual SELECT * FROM Clientes

WHERE Ciudad LIKE ‘%o’; SELECT * FROM Clientes BETWEEN… AND… NOT BETWEEN … AND …

WHERE Ciudad NOT LIKE ‘L%’; Condición de búsqueda basada en un rango. SELECT * FROM Productos

WHERE Precio BETWEEN 10 AND 20; SELECT * FROM Productos

WHERE Precio NOT BETWEEN 10 AND 20;

IN

Condición de búsqueda basada en pertenencia a un conjunto.

NOT IN

SELECT * FROM Clientes

WHERE Ciudad IN (‘Loja’,’Cuenca’); SELECT * FROM Clientes

IS NULL IS NOT NULL

WHERE Ciudad NOT IN (‘Quito’,’Guayaquil’); Condición de búsqueda para verificar valores NULL SELECT Nombres, Direccion FROM Personas WHERE Direccion IS NULL;

SELECT Nombres, Direccion FROM Personas DISTINCT

72

WHERE Direccion IS NOT NULL;

Evita que el resultado devuelva valores repetidos SELECT DISTINCT Departamento FROM Personas; Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

En su texto básico estudie los apartados “Estructura básica de las consultas SQL”, “Operaciones básicas adicionales” y “Operaciones sobre conjuntos”.

¿Cómo le ha resultado la lectura? Estamos seguros que le dio visión más amplia de las posibilidades de consultas SQL que se pueden aplicar.

3.5. Valores nulos Un valor nulo (NULL) hace referencia a un valor desconocido, es un valor no definido y no contemplado por el momento, pero que luego, se puede sustituir y tratarse adecuadamente. NULL no es un valor cero, no es un FALSE y no es una cadena vacía. Generalmente estos valores tienen un tratamiento especial, ya que por ejemplo al momento de calcular estadísticas de 20 valores considerados, la presencia de dos valores nulos tiene incidencia en el resultado. Es una mala práctica tomar a un NULL como comodín, para solucionar casos inesperados, por ejemplo si no conocemos el segundo apellido de un cliente, llenando la base de datos de estos valores que luego resultan difíciles de tratar. En su texto básico en el aparatado “Definición básica de esquemas” estudie de manera especial las funciones isNull e is not Null, e identifique ejemplos que aplican estas restricciones.

¿Cómo estuvo la lectura? En realidad es un concepto simple, lo más importante es que usted vaya identificando diferentes escenarios de aplicación de esta restricción.

3.6. Funciones de agregación Las funciones de agregación retornan un simple valor, calculado desde valores en una columna. SQL incorpora las cinco funciones de agregación:

73

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre



Media AVG( ), devuelve la media aritmética y recibe como parámetro una columna o una expresión.



Mínimo MIN( ), devuelve el valor mínimo de una lista de valores (pueden ser caracteres).



Máximo MAX( ), devuelve el valor máximo de una lista de valores (pueden ser caracteres).



Total SUM( ), retorna la sumatoria de una lista de valores.



Recuento COUNT( ), devuelve el total de elementos de una lista de valores (pueden ser caracteres).

A continuación, se muestra la sintaxis de la consulta al incluir las funciones de agregación. SELECT función-agregación(nombre-columna) FROMnombretabla; Ejemplo: La consulta que obtiene el número de órdenes, puede ser: SELECT count(o_id) total

-- total es el alias de la

columna

FROM ORDENES; Además, se puede aplicar las funciones de agregación para efectuar los cálculos por grupos de tuplas con base a un criterio de agrupación, incluyendo para esto la cláusula GROUP BY. La sintaxis es la siguiente: SELECT nombre-columna, función-agregación(nombrecolumna) FROM nombre-tabla WHERE nombre-columna operador valor GROUP BY nombre-columna

74

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

HAVING función-agregación(nombre-columna) operador valor; Ejemplo: La consulta que obtiene el número de órdenes de cada cliente, puede ser: SELECT p_nombre, p_apellido, count(o_id) FROM ordenes o, personas p WHERE o.PERSONAS_P_DNI = p.P_DNI GROUP BY p_nombre, p_apellido; El siguiente ejemplo está basado en el ejemplo anterior al que se le ha agregado una condición de grupo con el HAVING count(o_id) > 1, que provoca que las personas que tengan solamente una orden no aparezcan. SELECT p_nombre, p_apellido, count(o_id) FROM ordenes o, personas p WHERE o.PERSONAS_P_DNI = p.P_DNI GROUP BY p_nombre, p_apellido HAVING count(o_id) > 1; •

La sección SELECT enlista las columnas que se consideran el criterio de agrupamiento y la función de grupo a utilizar.



La sección FROM especifica la procedencia de los datos (una o más tablas).



La sección WHERE muestra solamente las tuplas que cumplen la condición y que luego formarán los grupos.



La parte del GROUP BY agrupa las tuplas de acuerdo al criterio de agrupamiento especificado.

75

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre



Finalmente, la sección HAVING, es una cláusula opcional que permite que los grupos formados se muestren solamente aquellos grupos que cumplen con la condición especificada mediante la función de agregación.

3.7. Subconsultas Una subconsulta es una sentencia SELECT, que tiene la misma sintaxis que una sentencia normal. Una subconsulta aparece dentro de otra sentencia SELECT, dicho de otro modo, es una sentencia SELECT anidada dentro de otra. Generalmente se utilizan para filtrar una cláusula WHERE o HAVING con el conjunto de resultados de la subconsulta. La sintaxis de una subconsulta es la siguiente: SELECT nombre-columna, … FROM nombre-tabla, … WHERE nombre-columna operador (SELECT nombre-columna FROM nombre-tabla WHERE nombre-columna operador valor); Ejemplo: Busca todas las órdenes que pertenecen a Eduardo Jaramillo. Para esta consulta empleamos una subconsulta. SELECT o.O_ID, o.O_FECHA, o.O_MONTO FROM ORDENES o WHERE o.PERSONAS_P_DNI IN (SELECT distinct p.P_DNI FROM PERSONAS p WHERE p.P_NOMBRE =’Eduardo’ AND p.P_ APELLIDO=’Jaramillo’); Estudie los apartados “Funciones de agregación” y “Subconsultas”.

76

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

¿Cómo ha ido su lectura? Seguro que le han quedado claras el uso de las funciones de agregación, mediante la explicación de las funciones disponibles en SQL para poder utilizarlas y acoplarlas a las consultas. Así también, con haber estudiado sobre subconsultas debe haber descubierto el potencial de este tipo de consultas. Es importante que usted conozca tanto la base teórica y que vaya haciendo prácticas para ir adquiriendo con la práctica la técnica que un experto en base de datos requiere para el manejo de SQL. Además, le sugerimos que estudie el Tutorial de SQL disponible en W3Schools

¿Cómo le ha parecido el tutorial? Estupendo! Nos alegra que le haya ayudado, es una herramienta completa para entrenarse en el dominio del lenguaje SQL.

3.8. Modificación de la base de datos Una parte del lenguaje SQL está dedicado a la manipulación de los datos de una base de datos. La base de datos es un activo de la organización y varios usuarios acceden al mismo tiempo, esto se denomina concurrencia. En una base de datos varios usuarios a la vez estarán haciendo consultas, insertando datos en las tablas, actualizando datos y también borrando datos, por lo tanto, la base de datos está en continuo movimiento. Las sentencias que se emplean en el lenguaje DML son: INSERT La sentencia INSERT permite insertar datos en una tabla. La sintaxis es la siguiente: INSERT INTO VALUES (valor1, valor2, valor3, ...); 77

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Donde: •

hace referencia a la tabla en donde se insertan los datos, esta puede estar vacía o contener datos.



Luego la palabra reservada VALUES seguida de los valores a insertar en la tabla separados por comas y encerrados entre paréntesis. Generalmente, los nombres de columnas de la tabla son omitidos en caso de que se requiera insertar datos en todas las columnas. Además, se puede especificar las columnas donde se van a insertar datos y los valores correspondientes, pudiendo ser también todas las columnas si es que se lo desea, o al menos las que tienen restricción de NOT NULL. INSERT INTO (columna1, columna2, columna3,...) VALUES (value1, value2, value3, ...); Ejemplo: Inserta un nuevo tipo de pago en la tabla TIPOS_PAGO en donde solamente se inserta valores en dos de sus tres columnas, por ello se debe especificar la lista de atributos de la tabla entre paréntesis. INSERT INTO TIPOS_PAGO (tp_id, tp_descripcion) VALUES (2, ‘Contado’); Ejemplo: Realiza la inserción de un estado civil en la tabla ESTADO_ CIVIL, como se inserta valores en todas las columnas de la tabla no es necesario especificar la lista de atributos de la tabla. INSERT INTO ESTADO_CIVIL VALUES (4, ‘Viudo’);

78

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

UPDATE La sentencia UPDATE permite actualizar datos que ya existen en la base de datos. La sintaxis de la sentencia es la siguiente: UPDATE SET columna1=valor1, columna2=valor2, ... WHERE alguna-columna operador valor; Donde: •

representa el nombre de la tabla donde se actualizan los datos.



Seguido de la palabra reservada SET, a su vez la columna1 representa la columna de actualización de los datos y valor1 representa el nuevo dato de la columna1, y en caso de haber más columnas que se van a actualizar se separan por comas.



Si no se incluye la sentencia WHERE los cambios aplicarán a todas las tuplas de la tabla, por lo tanto, si solamente se desea actualizar ciertas tuplas se debe agregar una condición a cumplir. Ejemplo: Actualiza las tuplas de ec_id = 4 con un estado civil de ‘Viudo’ o ‘Viuda’. UPDATE ESTADO_CIVIL SET ec_descripcion = ‘Viudo/a’ WHERE ec_id=4;

DELETE La sentencia DELETE elimina las tuplas de una relación. La sintaxis es la siguiente: DELETE FROM WHERE alguna-columna operador valor; 79

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Donde: •

representa el nombre de la tabla donde se realiza la eliminación de los datos.



La cláusula WHERE se incluye si solamente se requiere borrar ciertos datos que cumplan la condición alguna-columna=algún-valor, si obviamos el WHERE se eliminarán todas las tuplas que contenga la tabla. Ejemplo: Elimina las tuplas que contengan el estado civil ‘Viudo/a’. DELETE FROM ESTADO_CIVIL WHERE ec_id=4; Estudie el apartado “Modificación de la base de datos”, en donde encontrará ejemplos de sentencias INSERT, UPDATE y DELETE.

¿Cómo le ha ayudado la lectura? Indudablemente le han complementado los conocimientos sobre las sentencias de manipulación de datos. • Visite el tutorial de SQL en el portal web W3Schools • Desarrolle el test en línea de la temática de SQL disponible en SQLQuiz

¿Le ha resultado útil el tutorial SQL? Es la mejor manera de aprender! Es importante que instale su base de datos y vaya paralelamente practicando.

3.9. Combinación de tablas Cuando la información requerida está en más de una tabla se debe aplicar operaciones de combinación. La combinación permite obtener información de otra tabla a través de las claves foráneas basadas en un atributo común. Tenemos algunos tipos de combinación que los revisamos a continuación: 80

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

INNER JOIN Devuelve todas las tuplas que tengan coincidencia con los valores basados en el atributo común entre dos tablas. La Tabla 5 muestra en a.

la sintaxis completa y en

b.

la sintaxis sin INNER.

Tabla 5. Sintaxis de la operación INNER JOIN SINTAXIS

EJEMPLO

a. SELECT columna(s)

SELECTT p_nombre, p_apellido,

FROM tabla1

ec.EC_DESCRIPCION

LEFT JOIN tabla2

FROM ESTADO_CIVIL ec

ON tabla1.columna=tabla2.

INNER JOIN PERSONAS p ON ec.EC_ID

columna;

= p.ESTADO_CIVIL_EC_ID;

SELECT columna(s)

SELECT p_nombre, p_apellido,

FROM tabla1

ec.EC_DESCRIPCION

INNER JOIN tabla2

FROM ESTADO_CIVIL ec

ON

JOIN PERSONAS p ON ec.EC_ID =

b.

tabla1.columna=tabla2.columna p.ESTADO_CIVIL_EC_ID; Elaborado por: Morocho, J. y Romero, A. (2017)

NOTA: INNER JOIN es lo mismo que JOIN La Figura 11 muestra gráficamente la operación JOIN.

Figura 11. Operación INNER JOIN de SQL Tomado de: W3Schools 81

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

LEFT JOIN Devuelve todas las tuplas desde la tabla izquierda y que coinciden con las tuplas de la tabla derecha. La Tabla 6 muestra en a) la sintaxis completa y en b) la sintaxis con LEFT OUTER JOIN. Tabla 6. Sintaxis de la operación LEFT JOIN SINTAXIS

EJEMPLO

a. SELECT columna(s)

SELECT p_nombre, p_apellido,

FROM tabla1

ec.EC_DESCRIPCION

LEFT JOIN tabla2

FROM ESTADO_CIVIL ec

ON tabla1.columna=tabla2.

LEFT JOIN PERSONAS p

columna;

ON ec.EC_ID = p.ESTADO_CIVIL_EC_ ID;

b. SELECT columna(s)

SELECT p_nombre, p_apellido,

FROM tabla1

ec.EC_DESCRIPCION

LEFT OUTER JOIN tabla2

FROM ESTADO_CIVIL ec

ON

LEFT OUTER JOIN

tabla1.columna=tabla2.columna

PERSONAS p ON ec.EC_ID = p.ESTADO_CIVIL_EC_ ID;

La Figura 12 muestra gráficamente la operación LEFT JOIN.

Figura 12. Operación LEFT JOIN de SQL Tomado de: W3Schools

82

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

En algunas bases de datos LEFT JOIN se lo conoce como LEFT OUTER JOIN. RIGHT JOIN Devuelve todas las tuplas desde la tabla derecha y que coinciden con las tuplas de la tabla izquierda. La Tabla 7 muestra en a) la sintaxis completa y en b) la sintaxis con RIGHT OUTER JOIN. Tabla 7. Sintaxis de la operación RIGHT JOIN SINTAXIS

EJEMPLO

a. SELECT columna(s)

SELECT columna(s)

FROM tabla1

FROM

RIGHT JOIN tabla2

RIGHT OUTER JOIN tabla2

ON tabla1.columna=tabla2.

ON

columna;

tabla1.columna=tabla2.columna

SELECT columna(s)

SELECT p_nombre, p_apellido,

FROM

ec.EC_DESCRIPCION

b.

tabla1

tabla1

RIGHT OUTER JOIN tabla2

FROM

ESTADO_CIVIL ec

ON

RIGHT OUTER JOIN

tabla1.columna=tabla2.columna

PERSONAS p ON ec.EC_ID = p.ESTADO_CIVIL_EC_ ID;

Elaborado por: Morocho, J. y Romero, A. (2017) La Figura 13 muestra gráficamente la operación RIGHT JOIN.

Figura 13. Operación RIGHT JOIN de SQL Tomado de: W3Schools 83

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

En algunas bases de datos RIGHT JOIN se lo conoce como RIGHT OUTER JOIN. FULL JOIN Devuelve todas las tuplas cuando hay una coincidencia en una de las tablas. La sintaxis es como sigue: SELECT columna(s) FROM tabla1 FULL OUTER JOIN tabla2 ON tabla1.columna =tabla2.columna; Ejemplo: SELECT p_nombre, p_apellido, ec.EC_DESCRIPCION FROM ESTADO_CIVIL ec FULL OUTER JOIN PERSONAS p ON ec.EC_ID = p.ESTADO_CIVIL_EC_ID; La Figura 14 muestra gráficamente la operación FULL OUTER JOIN.

Figura 14. Operación RIGHT JOIN de SQL Tomado de: W3Schools

84

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Estudie el apartado “Expresiones de reunión” en su texto básico, que complementa los conceptos revisados sobre operaciones de JOIN.

¿Cómo le ha parecido la lectura del apartado indicado? Es importante que usted sepa que SQL soporta varios tipos de reunión. Esperamos que la lectura haya enriquecido su conocimiento sobre las diferentes posibilidades de combinación de tablas.

3.10. Vistas Una vista es una relación virtual, que se define a través de una consulta SQL de cualquier tipo. Esta definición se almacena en la base de datos y se la puede invocar como a cualquier tabla de la base de datos. Una vez se invoque una vista el SGBD ejecutará el código SQL almacenado en la definición y la vista se creará como una relación que contenga todas la tuplas que devuelve la consulta. La sintaxis para crear una vista es la siguiente: CREATE VIEW nombre_vista AS SELECT nombre_columna(s) FROM nombre_tabla WHERE condiciones; La llamada a una vista puede ser como sigue: SELECT column_name(s) FROM nombre_vista; Este objeto de base de datos es muy importante, debido a que nos puede ayudar como método de seguridad al segmentar los datos que se pueden visualizar a partir de las relaciones base que son las tablas dueñas de los datos. Por ejemplo:

85

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

▪▪

Si tenemos la tabla base: Personas(P_DNI, P_APELLIDO, P_NOMBRE, P_DIRECCION, P_ CIUDAD, P_FECHANAC, P_TITULOACAD, ESTADO_CIVIL_EC_ID)

▪▪

Podríamos definir dos vistas, la primera vista para el departamento Recursos Humanos: vPersonasRRHH(rrhh_dni, rrhh_nombres, rrhh_estadoc, rrhh_ fechaNac)

▪▪

Y la segunda vista para el departamento de Proyectos: vPersonasProy(p_dni, p_nombres, p_tituloAcad).

▪▪

En la segunda vista, no se incluye los atributos p_direccion, p_ ciudad, p_fechaNac y estado_civil_ec_id, debido a que, en este caso, por normativa institucional solamente el personal de RRHH debe tener acceso a la información de los empleados. Ejemplo: Creación de la vista vPersonasRRHH. CREATE OR REPLACE VIEW vPersonasRRHH AS SELECT PERSONAS.p_dni rrhh_dni, PERSONAS.p_nombre|| ‘ ‘ || PERSONAS.p_apellido, rrhh_NOMBRES,ESTADO_CIVIL.ec_descripcion, rrhh_ estadoc, PERSONAS.p_fechaNac rrhh_fechaNac FROM PERSONAS INNER JOIN ESTADO_CIVIL ON ESTADO_CIVIL.ec_id = PERSONAS.ESTADO_CIVIL_ec_id ;

86

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Ejemplo: Creación de la vista vPersonasProy. CREATE OR REPLACE VIEW vPersonasProy AS SELECT PERSONAS.p_dni, PERSONAS.p_nombre|| ‘ ‘ || PERSONAS.p_apellido, p_nombres,PERSONAS.p_tituloAcad FROM PERSONAS ; Para complementar lo revisado sobre las vistas, estudie el apartado “Vistas” de su texto básico.

¿La lectura ha sido esclarecedora, cómo le ha parecido? Recuerde que las vistas se definen como relaciones que contienen el resultado de una consulta? Las vistas son útiles para ocultar información innecesaria o sensible, y también permiten acopiar en información de más de una relación en una única vista.

3.11. Transacciones Una transacción es la unidad básica de procesamiento de una base de datos y refleja las operaciones que son activadas por eventos, como la compra de un ticket aéreo, el registro para un curso o el realizar un depósito bancario. ANSI40 ha definido normas para el buen funcionamiento de las transacciones de una base de datos. En SQL se da soporte a las transacciones con dos comandos: COMMIT y ROLLBACK. ▪▪

COMMIT, hace que los cambios efectuados por la transacción se hagan permanentes en la base de datos. Luego de terminada una transacción inmediatamente empieza otra.

40

Del inglés American National Standards Institute

87

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

▪▪

ROLLBACK, ocasiona que todos los cambios realizados en la transacción se deshagan, por lo tanto, la base de datos vuelve a su estado antes de empezar la transacción y queda disponible para la ejecución de nuevas transacciones.

Cuando una transacción está ejecutando sus operaciones y todavía no se ha enviado un COMMIT, se puede enviar un ROLLBACK y deshacer lo que hasta ese momento se ha ejecutado. Por el contrario, si ya se ejecutó un COMMIT no es posible ejecutar un ROLLBACK. Ejemplo: muestra una transacción de borrado, como todavía no se ha ejecutado un COMMIT, es factible aplicar un ROLLBACK. DELETE FROM clientes; ROLLBACK; /* se deshacen los cambios */ Ejemplo: muestra una transacción de borrado, que se confirma a través de un COMMIT, después de esto no será posible deshacer los cambios. DELETE FROM clientes WHERE idCliente = ‘CLI010’; COMMIT;

/* se confirman los cambios */

3.12. Restricciones de integridad Anteriormente hemos explicado las restricciones de tipo NOT NULL, PRIMARY KEY y FOREING KEY. Siguiendo con el conjunto de restricciones tenemos también UNIQUE y CHECK. UNIQUE Esta restricción identifica de forma única cada registro en la tabla de la base de datos. Es muy parecida a la restricción PRIMARY KEY, ya que ambos garantizan la unicidad en una columna o conjunto de columnas.

88

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Debemos considerar que cuando creamos una PRIMARY KEY, automáticamente se crea una restricción UNIQUE sobre la clave primaria creada. Además, podemos crear varias restricciones UNIQUE por tabla, pero solamente una PRIMARY KEY por tabla. La Tabla 8 muestra en a) una restricción UNIQUE definida con el atributo P_Id y en b) una restricción UNIQUE asignándole un nombre y basada en las columnas P_Id y Apellido, quiere decir que los pares de valores de estas columnas deben ser únicos en la tabla Personas. Tabla 8. Ejemplos de la restricción UNIQUE a.

b.

CREATE TABLE Personas

CREATE TABLE Personas

(

(

P_Id int NOT NULL UNIQUE,

P_Id int NOT NULL,

Apellido varchar(255) NOT

Apellido varchar(255) NOT NULL,

NULL,

Nombre varchar(255),

Nombre varchar(255),

Ciudad varchar(255),

Ciudad varchar(255)

CONSTRAINT uc_PersonaID UNIQUE

)

(P_Id,Apellido) )

Elaborado por: Morocho, J. y Romero, A. (2017)

CHECK Permite definir una restricción sobre una columna o sobre la tabla completa, para lo cual evalúa una condición que debe cumplir las tuplas. La Tabla 9 muestra en a) una restricción CHECK definida junto con el atributo y en b) una restricción CHECK asignándole un nombre por lo tanto se define al final de la lista de atributos.

89

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Tabla 9. Ejemplos de la restricción CHECK a.

b.

CREATE TABLE Personas

CREATE TABLE Personas

(

(

P_Id int NOT NULL CHECK (P_

P_Id int NOT NULL,

Id>0),

Apellido varchar(255) NOT NULL,

Apellido varchar(255) NOT

Nombre varchar(255),

NULL,

Ciudad varchar(255),

Nombre varchar(255),

CONSTRAINT chk_Persona CHECK (P_

Ciudad varchar(255)

Id>0 AND Ciudad=’Loja’)

)

) Estudie el apartado “Restricciones de integridad” para reforzar sus conocimientos de los tipos de restricciones.

¿Cómo le ha resultado esta lectura? Recuerde que las restricciones de integridad aseguran que la base de datos tenga un estado consistente.

3.13. Índices Al momento de consultar datos, es de suma importancia que los tiempos de respuesta sean apropiados. Para esta actividad en la base de datos, nos ayuda mucho que los datos estén indexados de acuerdo a un criterio. Aparece el concepto de índices, que funcionan de forma análoga a los índices de un libro, por ejemplo: si deseamos encontrar en nuestro texto de base de datos el tema de “Lenguaje SQL” ¿tiene sentido leer en todas las páginas hasta encontrar el tema? Por supuesto que no, es mejor ir al índice del libro y buscar el tema para encontrar las páginas concretas que nos lleven a lo que estamos buscando. Otro ejemplo, cuando vamos a la biblioteca en busca de un libro ¿tiene sentido buscar por todos los estantes de la biblioteca hasta encontrar en libro que

90

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

estamos buscando? Creo que sería mejor utilizar el catálogo de la biblioteca, que está indizado por título, tema y autor, logrando ubicar el texto de una forma rápida y sencilla. La sintaxis para crear un índice en SQL es la siguiente: CREATE INDEX nombre_indice ON nombre_tabla (nombre_columna); Ejemplo: Creación de un índice basado en el atributo o_fecha de la tabla Ordenes: CREATE INDEX o_fecha_idx ON ORDENES (o_fecha); Estudie en el texto básico en el apartado “Creación de índices” como complemento en el aprendizaje sobre los índices de base de datos.

¿La lectura le ha incorporado nueva información? Seguro que le ha complementado lo explicado. Estos conceptos son muy manejados por los DBA y usted como Ingeniero en formación debe incorporarlos a su jerga técnica.

3.14. Privilegios Debemos recordar que cada objeto de base de datos tiene un propietario, que es el usuario con el que se ingresa a la base de datos para proceder a crear las estructuras. Por esta razón, cada usuario posee un conjunto de objetos de su propiedad que no pueden ser accedidos por otros usuarios salvo el caso de que se les autorice para este efecto. Generalmente, el administrador de base de datos es quien gestiona nuevos usuarios, asigna privilegios, reestructura la base de datos de ser necesario, en fin, es el análogo al superusuario en un sistema operativo.

91

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Dentro de estas autorizaciones tenemos: ▪▪

Privilegios de lectura (SELECT) ;

▪▪

Privilegios de actualización (UPDATE);

▪▪

Privilegios de inserción de nuevos datos (INSERT) ;

▪▪

Privilegios de borrado (DELETE).

Mediante SQL podemos asignar o revocar privilegios a través de las sentencias GRANT y REVOKE. GRANT Esta instrucción se utiliza para conceder privilegios sobre objetos de la base de datos a usuarios específicos. Esta sentencia generalmente la utiliza el propietario del objeto que es quien tiene todos los privilegios. La sintaxis de la sentencia es: GRANT ON TO ; Ejemplo: Concesión de privilegios de SELECT, INSERT y UPDATE sobre la tabla Ordenes que son propiedad del usuario_A hacia el usuario_B. GRANT select, insert, update ON ORDENES TO usr_B; REVOKE Se emplea para quitar los privilegios concedidos con la sentencia GRANT. La sintaxis es la siguiente: REVOKE ON FROM ;

92

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Ejemplo: Derogación de privilegios INSERT y UPDATE sobre la tabla Ordenes que son propiedad del usuario_A al usuario_B: REVOKE INSERT, UPDATE ON ORDENES FROM usr_B; Notará que en la sintaxis se mencionan los Roles, que son objetos de base de datos que agrupan conjuntos de privilegios sobre otros objetos, se utilizan para evitar asignar privilegios individualmente. Supongamos que tenemos varios profesores en una universidad que tienen los mismos privilegios, entonces cuando ingrese un nuevo profesor se debería asignar los privilegios uno a uno. Sin embargo, para evitar esta tarea se crea un rol y se le asignan los privilegios a este rol, y luego al nuevo profesor se le asigna únicamente el rol que agrupa los privilegios necesarios. Ahora, estudie el apartado “Autorización” de su texto básico que complementa explicación dada.

¿La lectura ha cubierto sus expectativas? Seguro que ha clarificado el concepto de privilegios, esta en una tarea técnica que es parte de las responsabilidades de un DBA. • Instale la versión de la base de datos Oracle Express Edition y luego Oracle SQLDeveloper41, en caso de que no las tenga instaladas. Con estas herramientas podrá practicar lo estudiado en la presente unidad.

¿Cómo estuvo la instalación de las herramientas necesarias? En caso de dudas en el EVA cuenta con un videotutorial sobre el proceso de instalación, si no logra superar sus problemas técnicos con esto, recuerde que su tutor está presto a apoyarle. No dude en contactarlo!

41

Herramienta para interactuar con la base de datos que posee una consola de SQL 93

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Muy bien, ¡felicitaciones! hemos completado la tercera unidad, Siga adelante con el mismo entusiasmo. Para complementar esta unidad, es momento que compruebe sus avances desarrollando la siguiente autoevaluación.

94

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

Autoevaluación 3

Una vez completada la presente unidad, el siguiente cuestionario le permite verificar su aprendizaje en la unidad “Lenguaje SQL”. a.

Conteste Verdadero (V) o Falso (F) a las siguientes afirmaciones, según corresponda:

1.  (   )

En una instrucción SELECT la cláusula ORDER BY es obligatoria

2.  (   )

En SQL las funciones de agregación calculan un único valor como resultado

3.  (   )

La cláusula WHERE de los grupos es el HAVING

4.  (   )

Una instrucción SELECT anidada se denomina subselección

5.  (   )

Si las columnas de la tabla de resultados provienen de más de una tabla, deberá utilizarse una combinación

6.  (   )

La cláusula DELETE puede usarse para eliminar definitivamente una tabla

7.  (   )

La reunión externa izquierda es simétrica a la reunión externa derecha

8.  (   )

La operación de reunión externa completa se representa por LEFT-RIGHT OUTER JOIN.

9.  (   )

95

Una vista puede considerarse un método de seguridad.

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

10.  (   )

En una transacción una vez aplicado un COMMIT es posible aplicar un ROLLBACK para deshacer los cambios aplicados.

11.  (   )

Una vez creada una tabla es posible añadir una restricción mediante la instrucción ALTER TABLE.

b.

En las siguientes preguntas seleccione la respuesta correcta:

12. La operación relacional más frecuente es: a.

Proyección

b.

Selección

c.

Producto cartesiano

13. Examine la estructura de la tabla EMP(empId, empNombre, empSalario, comisión) ¿Qué sucedería al aplicar la siguiente sentencia? ALTER TABLE emp MODIFY (salary DEFAULT 10000); a.

Este genera un error debido a que las definiciones de columnas no pueden ser alteradas para añadir valores por defecto.

b.

Únicamente las subsecuentes inserciones donde EmpSalario no se especifique deberían almacenar el valor 10000.

c.

Generaría un error debido a que las definiciones de columna no pueden ser alteradas si la tabla ya contiene tuplas.

d.

Todas las tuplas existentes y las subsecuentes donde EmpSalario contenga un valor NULL se actualizarán a 10000.

96

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

14. Tenemos las tablas: EMP(empId, empNombre, fechaIngreso, empSalario, depId) y, DEPT(depId, depNombre, depLocalidad). Se requiere generar un reporte que muestre todos los nombres de departamentos con la correspondiente cantidad que invierten en salarios. ¿Qué sentencia SQL ayudaría a cumplir el requerimiento? a. SELECT depNombre, SUM (empSalario) FROM emp e, dept d WHERE e.depId = d.depId GROUP BY depNombre; b. SELECT depNombre, SUM(empSalario) FROM emp e, dept d WHERE e.depId = d. depId GROUP BY depNombre, empSalario; c. SELECT depNombre, empSalario FROM emp e, dept d WHERE e.depId = d. depId GROUP BY depNombre HAVING empSalario = SUM(empSalario); d. SELECT depNombre, empSalario FROM emp e, dept d GROUP BY depNombre HAVING empSalario = SUM(empSalario);

97

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

15. El lenguaje SQL se subdivide en: a.

DML, DCL, TCL y FCL

b.

DML, DDL, DCL y TTL

c.

DML, DDL, DCL y XTL

d.

DML, DDL, DCL y TCL

16. Con el comando ALTER, no se puede: a.

Borrar una columna.

b.

Modificar el tipo de dato de una columna.

c.

Cambiarle el nombre a la tabla.

d.

Actualiza la tabla.

17. Con GRANT y REVOKE se puede: a.

otorgar permisos de SELECT a una o varias tablas

b.

otorgar permisos para borrar datos de una tabla

c.

retirar permisos para actualizar una tabla

d.

Todas las anteriores

18. Una transacción consiste: a.

De una secuencia de instrucciones de consulta y de actualización

b.

De una secuencia de instrucciones de consulta o de actualización

c.

De una instrucción de consulta

d.

De una instrucción de actualización

19. Los roles sirven para: a.

Limitar los recursos que utiliza cada usuario

b.

Agrupar un conjunto de permisos

c.

Asignar permisos al administrador de la base de datos (DBA)

d.

Ninguna de las anteriores

98

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Primer bimestre

20. Para confirmar una transacción se emplea: a.

El comando HAVING

b.

La sentencia ROLLBACK

c.

El comando COMMIT

d.

La sentencia CHECK

21. En una sentencia de reunión, se debe utilizar junto con JOIN la palabra reservada: a.

ON

b.

WHERE

c.

HAVING

d.

Cualquiera de las anteriores.

¿Cómo le fue en su autoevaluación? ¡Esperamos que muy bien! y si no es así revise los apartados correspondientes y su guía didáctica a fin de aclarar las dudas que tenga. Recuerde además que cuenta con el apoyo de su tutor para consultarle a través del EVA o telefónicamente.

99

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

SEGUNDO BIMESTRE

UNIDAD 4. LENGUAJES DE CONSULTA FORMALES Para el desarrollo de esta unidad, se requiere que vaya revisando la guía didáctica y el capítulo “Lenguajes formales de consulta relacional” del texto básico.

“Los lenguajes de manipulación de datos se distinguen unos de otros por sus estructuras subyacentes de extracción de datos” – Connolly y Begg

Estimado estudiante, ya hemos revisado el lenguaje de consultas de una base de datos relacional el SQL, y a continuación nos corresponde estudiar otro de los elementos importantes de un modelo de datos que corresponde a un lenguaje de consulta más formal, asociados con el modelo relacional. Este tema es clave porque le dará la experticia y la base para trabajar a futuro en la gestión de datos. No se desanime si al principio es difícil de entender estas operaciones, le recomiendo relacionar estos conceptos con la forma en que trabajan las consultas

100

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

en SQL y de seguro encontrará que son similares, nada más que el álgebra relacional es un lenguaje más formal.

4.1. Algebra relacional El álgebra relacional es un lenguaje de consulta procedimental. Consta de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación, por lo tanto, es posible anidar y combinar operadores. Las operaciones fundamentales en álgebra relacional son: selección, proyección, unión, diferencia, producto cartesiano y renombramiento. De las operaciones básicas se derivan otras operaciones como: intersección, reunión natural, asignación y reunión externa. La Figura 15 muestra las operaciones fundamentales de álgebra relacional en conjunto.

Figura 15. Operaciones fundamentales de álgebra relacional Elaborado por: Morocho, J. y Romero, A. (2017)

101

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

4.2. Operaciones fundamentales La selección, proyección y renombramiento son operaciones unarias ya que operan sobre una única relación, mientras que la unión, diferencia y producto cartesiano se denominan operaciones binarias. Nos aprestamos a revisar cada una de estas operaciones para conocer su funcionamiento. Operación selección Define una nueva relación con las tuplas que satisfacen cierto predicado. Se denota con la letra griega sigma minúscula (σ). La sintaxis es: σ predicado(R) Donde: •

σ es el símbolo de la operación de selección predicado, es la condición o condiciones que las tuplas deben cumplir para formar parte del resultado.



(R) representa la relación desde donde se obtiene los resultados.

Ejemplo: σ edad>30 (Empleados) El término selección del álgebra relacional tiene un significado diferente del que se utiliza en SQL, que resulta un hecho histórico desafortunado. En álgebra relacional, el término selección corresponde a lo que en SQL se denomina where. (Silberschatz, Sudarshan y Korth, 2014)

102

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Operación proyección Se aplica a una relación R, permite definir una nueva relación que contiene un subconjunto vertical de R. Extrae los valores de los atributos especificados y elimina los duplicados. Se denota con la letra griega pi mayúscula (π). La sintaxis es la siguiente: πa1,…,an(R) Donde: •

π es el símbolo de la operación.



a1,…,an atributos especificados que se van a recuperar.



(R) representa la relación desde donde se obtiene los resultados.

Ejemplo: πnomEmp,

apellidoEmp, edad

(Empleados)

Operación Unión En álgebra relacional la unión de dos relaciones compatibles A y B se representa de la siguiente forma: A UNION B o A U B Aparece algo interesante, el concepto de relaciones compatibles, y es que en el álgebra relacional la compatibilidad se aplica a las operaciones de unión, intersección y diferencia. Cada operación requiere dos relaciones que deben ser compatibles, lo que implica que se cumplan estas dos condiciones:

103

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

▪▪

Las dos relaciones deben tener la misma grado, esto significa que deben tener el mismo número de atributos.

▪▪

Los dominios de los atributos i-ésimos de cada relación, se deben basar en el mismo dominio.

Operación diferencia de conjuntos En álgebra relacional la diferencia entre dos relaciones compatibles A y B se representa de la siguiente forma: A MENOS B o A - B. Produce el conjunto de todas las tuplas t que pertenecen a A y no pertenecen a B. Operación producto cartesiano En álgebra relacional el producto cartesiano de dos relaciones A y B es: A veces B o A x B. Produce el conjunto de todas las tuplas t, tales que t es el encadenamiento de una tupla a de la relación A y de una tupla b de la relación B. Se denota con el símbolo x. También podríamos decir que cada tupla de la relación A se combina con cada tupla de la relación B, así por ejemplo si A tiene 4 tuplas y B posee 5 tuplas, el resultado del producto cartesiano resultaría en 20 tuplas. Operación renombramiento Permite asignar un nombre a una relación producto de aplicar alguna otra operación. Se representa de la siguiente forma:

104

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

𝛒x(E)

Significa que el resultado de la expresión de álgebra relacional E, será nombrado con x. Operación intersección de conjuntos En álgebra relacional la intersección de dos relaciones compatibles A y B, se representa con la forma: A INTERSECCIÓN B o A ∩ B.

Produce el conjunto de todas las tuplas pertenecientes a A y B. Al igual que en teoría de conjuntos el símbolo representa la intersección entre dos relaciones. Operación reunión natural En álgebra relacional la reunión entre el atributo X de la relación A con el atributo Y de la relación B produce el conjunto de todas las tuplas t tal que t es el encadenamiento de una tupla a perteneciente a A y una tupla b perteneciente a B, cuyos valores tienen el mismo valor. La reunión natural se representa con la forma: A⋈B

Se parece mucho al producto cartesiano, pero difiere en que en el resultado solamente aparecen aquellas tuplas que coinciden en valores, en un atributo común que tiene el mismo nombre, por esta razón la operación de reunión asume que es el mismo atributo y que seguramente tiene valores coincidentes, aplica esta regla de forma natural, de ahí el nombre de la operación. Además, elimina uno de los ejemplares de cada atributo común.

105

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Operación asignación Esta operación permite asignar resultados temporales a una variable, tal como se hace en los lenguajes de programación. Se representa con la forma temp1 ← E

Donde: ▪▪ ▪▪ ▪▪

temp1 es la variable

el símbolo ← que representa la operación E representa una expresión de álgebra relacional

Reunión externa Es una extensión de la operación de reunión, pero además de devolver las tuplas que coinciden en valores del atributo común, también conserva las tuplas que se perderían al no encontrar correspondencia en una de las dos relaciones, y en los lugares donde no hay un valor correspondiente se reemplazaría por valores nulos. Esta operación tiene tres formas diferentes: •

Reunión externa por la izquierda A ⟕ B, reúne aquellas tuplas

que coinciden entre las dos tablas más aquellas tuplas de la relación izquierda que no tienen correspondencia en la relación a la derecha. •

Reunión externa por la derecha A ⟖ B, reúne aquellas tuplas que coinciden entre las dos tablas más aquellas tuplas de la relación

derecha que no tienen correspondencia en la relación a la izquierda. •

Reunión externa completa A ⟗ B, reúne aquellas tuplas que

coinciden entre las dos tablas más aquellas tuplas de la relación izquierda que no tienen correspondencia en la relación a la

derecha y más aquellas tuplas de la relación derecha que no tienen correspondencia en la relación a la izquierda. 106

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Operaciones adicionales ▪▪

Proyección generalizada

Es una extensión de la operación de proyección, que permite utilizar operaciones aritméticas (+, -, * y ÷) en la lista de atributos y también la concatenación de cadenas de caracteres.

Ejemplo: Concatena el nombre más el apellido y el salario anual se divide para 12 resultando en el salario mensual.

▪▪

𝜋 nomEmp+apellidoEmp,edad,salario÷12(Empleados) Agregación

Esta operación permite el uso de funciones de agregación, algunas de las cuales ya las revisamos con SQL, como son sumatoria sum, promedio avg, máximo max, mínimo min o el conteo count. Se representa de la siguiente forma: 𝔍AL(A) • • •

Donde 𝔍 representa la operación de agregación

AL representa la pareja ( ) A representa la relación o una expresión de álgebra relacional.

Ejemplo: Muestra una operación de conteo, que calcula cuántos profesores tenemos en la relación Profesor. 𝔍count(ID)(Profesor)

Estudie el apartado “Álgebra relacional” de su texto básico, en donde encontrará ejemplos que le ayudarán a reforzar lo revisado hasta el momento.

107

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Le recomendamos realizar un resumen de las operaciones del álgebra relacional, que contenga la sintaxis de cada operación y una breve explicación de no más de 2 líneas de texto.

De seguro ha realizado un compendio de los aspectos más importantes en cuanto a las operaciones de Álgebra Relacional que le servirán para practicar este tema.

4.3. Cálculo relacional Hemos superado los conceptos del álgebra relacional, y es momento de estudiar el cálculo relacional. El cálculo relacional es un lenguaje donde se especifican los datos requeridos, pero no se indica la forma de extraerlo, esta es la razón por la que este se denomina un lenguaje no procedimental; a diferencia del álgebra relacional que es un lenguaje procedimental. El cálculo de predicados es la base del cálculo relacional. Es importante mencionar que las expresiones en cálculo relacional son equivalentes en álgebra relacional. Tenemos dos tipos de cálculo relacional: •

cálculo relacional de tuplas



cálculo relacional de dominios

Cálculo relacional de tuplas El objetivo del cálculo relacional es localizar las tuplas donde un determinado predicado sea verdadero. Por lo tanto, este tipo de cálculo se basa en el uso de variables de tuplas. Una variable de tupla es una variable que “toma sus valores” de las tuplas de una relación. Por ejemplo para expresar la consulta: “Muestre los nombres de los profesores quienes tienen más de 30 años de edad”, la expresión sería:

108

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Cálculo relacional de tuplas {S.nombre |Profesores(S) Λ S.edad>30}

Equivalente en álgebra relacional 𝜋 nombre(𝛔edad>30(Profesores))

Donde S es la variable de tupla que funciona tal como los registros si hablamos de archivos de datos, de esta forma podemos referenciar una columna de la variable:nombre o edad.

Cálculo relacional de dominios De forma similar que en el cálculo relacional de tuplas se utilizan variables de tuplas de la relación; en el cálculo relacional de dominios se utilizan también variables, pero en este caso las variables toman los valores de los dominios de los atributos. Si expresamos en cálculo relacional de dominios al ejemplo anterior, la expresión es la siguiente: {nombre | (∃id, nombre_dept, edad) (Profesores(id,nombre, nombre_dept,edad) Λ edad Λ>30)} ▪▪

nombre es la variable de dominio.

▪▪

(∃id, nombre_dept, edad) incluye el operador existencial más los atributos de la tupla que no están declarados como variables.

▪▪

Profesores(id,nombre, nombre_dept,edad) indica la relación y el listado de atributos de donde se obtienen los datos.

▪▪

edad > 30 indica los predicados que deben cumplir las variables.

109

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Acuda al texto básico y estudie los apartados “El cálculo relacional de tuplas” y “El cálculo relacional de dominios”. El texto le ayudará a reforzar la comprensión de estas operaciones.

Realice los ejercicios del final del capítulo “Lenguajes Formales de consulta relacional” para realizar ejercicios tanto de álgebra como de cálculo relacional.

¿Cómo le han resultado los ejercicios? Recuerde que realizar estos ejercicios le permitirán tener una mejor comprensión del trabajo del motor de base de datos cuando enviamos a realizar una consulta. El dominio de este tema le permitirá comprender y aplicar técnicas de optimización de consultas, que son temas avanzados de SQL.

Excelente ¡felicitaciones! hemos completado la cuarta unidad, Siga adelante con el mismo entusiasmo. Para complementar esta unidad, es momento que compruebe sus avances desarrollando la siguiente autoevaluación. ¡sigamos adelante!

110

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Autoevaluación 4

Una vez que ha completado la presente unidad, el siguiente cuestionario le permite verificar su aprendizaje en la unidad “Lenguajes de Consulta Formales”. Considere el siguiente modelo de base de datos relacional: Empleado (nombre_persona, calle, ciudad) Trabaja (nombre_persona, nombre_empresa, sueldo) Empresa (nombre_empresa, ciudad) Jefe (nombre_persona, nombre_jefe) Responda a las siguientes interrogantes: 1.

2.

¿Cuáles de las seis operaciones básicas son binarias? a.

Unión

b.

Selección

c.

Diferencia

d.

Proyección

e.

Renombramiento

f.

Producto cartesiano

Los operadores que toman una o dos relaciones como entrada, producen como salida: a.

El conjunto de tuplas que cumple la condición planteada en el WHERE

b.

Una nueva relación

c.

Una vista con las tuplas que cumplen el predicado

111

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

3.

Para seleccionar todos los empleados que residen en Loja, ¿cuál de las siguientes sentencias emplearía? a.

𝛔 ciudad=’Loja’(Empleado)

c.

𝛔 (Empleado ciudad>’Loja’)

b. 4.

𝜋 ciudad IN ’Loja’(Empleado)

Se requiere presentar un listado con el nombre del empleado y el sueldo que gana, ¿cuál de las siguientes sentencias emplearía? a.

𝛔 nombre_persona, sueldo (Trabaja)

c.

𝜋 nombre_persona, sueldo (Trabaja)

b. 5.

𝜋 nombre_persona, sueldo (Empleado)

La operación producto cartesiano permite: a.

Combinar información de dos relaciones cualesquiera

b.

Encontrar tuplas que están en una relación, pero no en la otra

c.

Encontrar el conjunto de tuplas que están en ambas relaciones eliminando las repetidas

6.

La operación de unión requiere de dos condiciones para poder ejecutarse, señale ¿cuál de las siguientes no corresponde? a.

Las dos relaciones deben tener la misma cardinalidad, esto significa que deben tener el mismo número de atributos.

b.

Los dominios de los atributos i-ésimos de cada relación, se deben basar en el mismo dominio.

c.

Las dos relaciones deben tener un atributo común en donde haya valores coincidentes.

112

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

7.

Marque el enunciado correcto: a.

El álgebra relacional es un lenguaje no procedimental y el cálculo relacional es procedimental.

b.

El álgebra relacional es un lenguaje procedimental y el cálculo relacional es no procedimental.

c.

Tanto el cálculo relacional de tuplas como el cálculo relacional de dominios son lenguajes procedimentales.

8.

La siguiente sentencia de cálculo relacional {S | Empleado(S) S.ciudad = 'Loja'}, quiere decir que:

Λ

a.

Busque el nombre de una persona que es Empleado y reside en Loja.

b.

Encuentre todas las tuplas de la relación Empleado donde la ciudad sea Loja.

c. 9.

No se puede ejecutar ya que la variable S está mal declarada.

Existen dos tipos de cálculo relacional, señale ¿cuál de los siguientes tipos no corresponde? a.

Tuplas

b.

Conjuntos

c.

Dominios

10. El cálculo relacional de dominios sirve de base teórica al lenguaje: a.

SQL

b.

QBE

c.

XML

113

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

¿Cómo le fue en la autoevaluación? Confiamos en que muy bien. Para verificar su rendimiento, compare sus respuestas con el solucionario. Si el resultado fue poco favorable, le recomendamos que revise nuevamente los puntos que aún no los tiene claros. Y comunique a su tutor sus inquietudes que está presto a apoyarle en su proceso de aprendizaje. Hemos terminado la cuarta unidad. ¡Felicitaciones!

114

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

UNIDAD 5. DISEÑO CONCEPTUAL DE BASE DE DATOS Para el desarrollo de esta unidad, se requiere que vaya utilizando la guía didáctica y el capítulo “Diseño de base de datos y el modelo E-R” de su texto base.

Construya sus datos de modo coherente. Las incoherencias pueden dificultar las ordenaciones y las búsquedas. – Beekman George

Estimado estudiante, vamos a dar inicio a uno de los temas más relevantes de la asignatura, el diseño de bases de datos relacionales. Es importante resaltar que, el desarrollo de un sistema de base de datos inicia con la recopilación y captura de información, luego se requiere de un análisis y documentación de los requerimientos del negocio. Estas tareas sirven para identificar las necesidades de datos de la organización y son el punto de partida para el diseño de base de datos. Recuerde en todo momento, que estamos para ayudarle en la adquisición de conocimientos y habilidades necesarias para comenzar las fases de diseño de la base de datos. Empecemos!

115

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

5.1. Diseño de bases de datos La creación de sistemas de información que incluyen bases de datos implica algunas fases de desarrollo, las que se estudian a más detalle en otras asignaturas de la carrera. Algunas de las fases de desarrollo son: •

diseño del esquema de base de datos,



diseño de los programas que tienen acceso a los datos y los actualizan,



diseño del esquema de seguridad para controlar el acceso a los datos, entre otras.

Las necesidades del negocio y del usuario son de vital importancia para el despliegue de las fases de diseño, y para efectos de esta asignatura, específicamente abordaremos el diseño de bases de datos. El diseño de base de datos es un proceso iterativo, que tiene un punto de partida y una serie de refinamientos sucesivos que prácticamente no tienen fin.

5.2. Fases del Diseño de Bases de Datos Seguramente usted sabe que para todo proceso ordenado, nos valemos de una metodología, así también, para el diseño de base de datos, se debe adoptar una metodología que nos brinde las herramientas necesarias para lograr un diseño robusto. En el diseño de base de datos se puede determinar tres fases bien marcadas: diseño conceptual, diseño lógico y diseño físico. Recordemos que un modelo de datos es una representación lo más real posible de una parte del mundo real. Como en cualquier proyecto de desarrollo de software empezamos por la definición de requerimientos, en este caso la definición de los datos que se constituyen en la entrada del diseño de datos.

116

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

1.

Iniciamos por el diseño conceptual obteniendo como producto el modelo E-R.

2.

Transformamos este diseño a un diseño lógico donde se obtiene el diseño1 relacional.

3.

Luego, al diseño relacional se aplica el proceso de normalización para reducir las redundancias al mínimo.

4.

Y finalmente, se traduce el diseño lógico a un diseño físico, que completa la materialización física de la base de datos.

En Fundamentos de Bases de Datos, abarcamos las dos primeras fases: diseño conceptual y diseño lógico. Mientras que, en la asignatura de Bases de Datos Avanzadas se forma en la fase de diseño físico. La Figura 16 muestra, a manera de resumen, las actividades en el proceso de diseño de bases de datos relacionales.

1



También denominado modelo 117

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Figura 16. El proceso de diseño de base de datos resumido Tomado de: Connolly, T. y Begg, C. (2005)

En su texto básico estudie el apartado “Visión general del proceso de diseño” que le servirá de introducción al proceso de diseño de base de datos.

¿Cómo le ha parecido la lectura? Esta lectura le brinda una visión general de todo el proceso de diseño, seguro usted pudo identificar los roles que intervienen en las fases de diseño, las tareas que cada responsable realiza, y los diferentes problemas que se deben evitar al diseñar una base de datos respecto de la estrategia de representación de las diferentes cosas del mundo real.

118

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

5.3. Diseño Conceptual Es la fase inicial para el diseño de bases de datos, recibe como insumo2 los requisitos de datos de los usuarios para trasladarlos a un modelo de datos requerido y desarrollar el diseño conceptual, que corresponde a un modelo abstracto de datos, para este propósito se emplea el modelo entidad-relación (ER). Para una mayor comprensión estudie el apartado “El modelo entidadrelación”, que le ayudará a entender esta herramienta así como a aplicarla.

¿La lectura le ha resultado útil? ¿qué es lo más importante que la lectura le ha proporcionado? Esperamos que vaya comprendiendo la importancia del diseño conceptual. Y vaya tomando notas de sus inquietudes para resolverlas a través de algún medio de interacción en EVA.

5.4. Modelo E-R El modelo E-R es un modelo de datos conceptual de alto nivel muy popular y ampliamente utilizado. Permite hacer una descripción muy concisa de los requerimientos de datos de los usuarios y ofrece descripciones a detalle de conjuntos de entidades, conjuntos de relaciones y restricciones que son expresados usando conceptos propios de este modelo de datos de alto nivel, sin caer en detalles de implementación haciéndolo fácil de entender y comunicar a usuarios no técnicos. Estudie el apartado “Restricciones” donde se explica sobre los conceptos de cardinalidad y participación. Adicionalmente, estudie el apartado “Eliminar atributos redundantes de un conjunto de entidades” que le ayudará a elaborar un buen diseño de las entidades.

2



Conjunto de elementos que toman parte en la producción de otros bienes.

119

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

¿Cómo estuvo la lectura? Las restricciones se agregan al modelo conceptual para incorporar las características que los problemas del mundo real requieren especificar. Vaya tomando nota de sus preguntas para despejarlas en una sesión síncrona o asíncrona. El modelo E-R emplea algunas convenciones para representar los elementos en sus diagramas. La Figura 17 hace una descripción de la notación empleada en un modelo E-R.

Figura 17. Notación para los diagramas E-R Tomado de: Elmasri, R. y Navathe S. (2016) 120

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

En su texto básico estudie el apartado “Diagramas entidad-relación” esto complementará su estudio sobre esta herramienta.

Complemente la lectura revisando los modelos presentados en las figuras que se encuentran más adelante en este capítulo. Un modelo de datos representado a través de esta nomenclatura se muestra en la Figura 18.

Figura 18. Diagrama E-R de una compañía Tomado de: Elmasri, R. y Navathe S. (2016)

121

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Existen formas alternativas de representación de un modelo E-R como el diagrama UML; la Figura 19 muestra un ejemplo de esta notación.

Figura 19. Diagrama E-R de una compañía en notación UML Tomado de: Elmasri, R. y Navathe S. (2016)

Con el objeto de afianzar conocimientos estudie el apartado “Notaciones alternativas para el modelado de datos” de su texto básico, que ampliará su visión acerca de los diagramas E-R y le permitirá entender las notaciones utilizadas por otros autores.

¿Le ha quedado clara la nomenclatura a utilizar? Si no es así revise nuevamente la nomenclatura la utilizada en el texto básico. El diseño conceptual empieza por identificar las entidades, que son conceptos ya sea físicos o abstractos que se desea representar en la base de datos. Como siguiente paso se identifica las relaciones entre las entidades de forma que se establezcan los vínculos correspondientes.

122

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

A continuación se identifica los atributos para asociarlos a las entidades; para hacer más fácil la identificación de los atributos nos podemos hacer la pregunta ¿qué quiero almacenar acerca de ?. Una vez tenemos identificados los atributos determinamos para cada uno de ellos su dominio e identificamos de entre ellos las claves candidata, principal y alternativa. No está por demás recordar que, el nombrado de las entidades debe ir en correspondencia con su contenido, de igual forma con los atributos, deberían concordar con los datos que van a almacenar. En algunos casos el equipo de diseñadores establece ciertos lineamientos para asignar nombres a los objetos de base de datos, se puede utilizar nombres en plural para las entidades por ejemplo PERSONAS; para los atributos anteceder las iniciales de la tabla a cada atributo para identificarlo plenamente, por ejemplo si tenemos el atributo nombre de la entidad Personas, deberíamos asignarle el nombre PER_NOMBRE; si vamos a crear una vista podría ser V_PERSONAS; si creamos un índice podríamos utilizar un nombre como PERSONAS_IDX o si creamos una restricción de tipo CHECK podríamos asignarle un nombre PERSONAS_CK. Recuerde que en la fase de diseño conceptual todavía no aparecen las claves foráneas, estas aparecen al transformar el diseño conceptual al diseño lógico.

Dependiendo del problema a modelar y de la experiencia del diseñador se puede incluir conceptos de modelado avanzados como especialización y generalización.

5.5. Especialización/Generalización La especialización es una técnica arriba-abajo, por ello decimos que vamos de lo más general a lo específico, para definir un conjunto de subentidades denominadas Subclases a partir de una entidad denominada Superclase.

123

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

En el caso del ejemplo de la Figura 20, la Superclase tiene atributos que son comunes a las Subclases pero cada Subclase posee atributos que las distinguen unas de otras. Por ejemplo los empleados (Superclase) de un banco todos tienen un número de DNI3, nombre, fecha de ingreso, entre otros y además se pueden clasificar en (Subclases) oficial de crédito, cajero o secretaria. La entidad oficial puede describirse por número de despacho, cajero puede estar asociado a una caja y tener un número de horas trabajadas y la secretaria puede registrar un número de horas trabajadas. Además, en notación de un diagrama E-R la especialización se representa mediante una figura triangular invertida etiquetada como ES, tal como muestra la Figura 20.

Figura 20. Especialización/Generalización Tomado de: Elmasri, R. y Navathe S. (2016)

La generalización es el proceso contrario a la especialización, es una técnica abajo-arriba en el que varios conjuntos de entidades (Subclases) con atributos

3



Documento Nacional de Identificación, DNI.

124

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

comunes se pueden expresar a través de una entidad de nivel superior (Superclase), se puede decir que la generalización es una inversión simple de la especialización. Estas técnicas avanzadas de modelado se utilizan para dotar al modelo de más semántica, permitiendo acentuar las similitudes y diferencias en cuanto a atributos de las entidades para representar de mejor forma lo que sucede en el mundo real.

5.6. Consideraciones finales del modelado Como paso final del modelado, se debe comprobar si existen atributos redundantes para eliminarlos y validar el modelo resultante con el usuario, para confirmar que está cumpliendo con todos los requisitos de datos y que no entren en conflicto entre sí. En cuanto a la parte técnica, se requiere generar documentación de esta fase para respaldar el diseño generado y los acuerdos alcanzados en cuanto al modelado de la base de datos; para cubrir este parte consideramos: ▪▪

Documento de requerimientos de datos, sobre el cual se inicia la identificación de entidades y sus relaciones.

▪▪

Diagrama E-R que contiene de forma diagramática las entidades, atributos, relaciones y claves.

▪▪

Diccionario de datos, este es un documento complementario al diagrama E-R, en donde se registrará aspectos que no ha sido posible representarlos en el modelado.

En este punto se ha logrado completar la documentación de la fase de diseño conceptual que servirá como insumo para la siguiente fase, el diseño lógico.

125

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Elabore un listado de actividades que se deben ejecutar dentro de la fase de diseño conceptual. Le sugerimos utilice Padlet4 y comparta el enlace en EVA para todos los compañeros.

¿Cómo estuvo la actividad? Esta actividad le permitirá tener en mente las actividades que se deben realizar, que seguro inicialmente se harán más pausado y luego ya irá adquiriendo la habilidad para realizarlas más ágilmente. La fase de diseño conceptual se concentra en qué datos se deben representar en la base de datos, sin preocuparse de aspectos físicos como el almacenamiento, el sistema operativo o el sistema de gestión de base de datos (SGBD) a utilizar.

Muy bien, ¡felicitaciones! hemos completado la quinta unidad, Siga adelante con el mismo entusiasmo. Para complementar esta unidad, es momento que compruebe sus avances desarrollando la siguiente autoevaluación.

4



Padlet es un muro digital que puede utilizarse como tablón personal o pizarra colaborativa.

126

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Autoevaluación 5

Una vez completada la presente unidad, el siguiente cuestionario le permite verificar su aprendizaje en la unidad “Diseño Conceptual de Bases de Datos”. Seleccione la opción correcta: 1.

Las necesidades de datos de los usuarios no son relevantes en la etapa de diseño conceptual.

2.

a.

Verdadero

b.

Falso

En la fase de diseño conceptual la interacción con los usuarios es primordial.

3.

4.

a.

Verdadero

b.

Falso

El proceso de diseño de una base de datos es un proceso: a.

Iterativo, que prácticamente no tiene fin

b.

Tedioso, pues se requiere de muchos conocimientos

c.

Metodológico, ya que en base a este se define una metodología

Uno de los insumos para el diseño de base de datos es: a.

El diagrama de clases

b.

El diagrama de flujo del software a construir

c.

La especificación de requisitos de usuario

127

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

5.

Para transformar el diseño conceptual al diseño lógico nos basamos en las:

6.

a.

Dependencias funcionales

b.

Cardinalidades de las relaciones

c.

Claves primarias y foráneas

Una relación que tiene cardinalidad N:N, ¿cómo se transforma al diseño lógico? a.

Se propaga la clave principal hacia la entidad que tenga cardinalidad máxima

b.

Se crea una tabla intermedia cuyos atributos son las claves primarias de las entidades que está relacionando

c.

Se aplica normalización hasta reducir a una relación 1:N y aplicar propagación de clave primaria

7.

Para transformar al diseño lógico una relación expresada como especialización se debe:

8.

a.

Generar una tabla por cada entidad de la especialización

b.

Generar solamente las subclases definidas en el modelo

c.

Generar solamente la superclase definida en el modelo

d.

Cualquiera de las anteriores

Dentro del proceso de diseño de una base de datos, una técnica arribaabajo es la: a.

Generalización

b.

Especialización

c.

Normalización

128

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

9.

¿Cuál de los siguientes elementos no se puede describir el modelo E-R? a.

Conjuntos de entidades

b.

Conjuntos de relaciones

c.

Claves primaria

d.

Claves foráneas

e.

Restricciones

10. Marque la respuesta incorrecta. La especialización y generalización definen una relación de inclusión entre: a.

Superclases y subclases

b.

Un conjunto de entidades de fuertes y uno o más conjuntos de entidades débiles

c.

Un conjunto de entidades de nivel superior y uno o más conjuntos de entidades de nivel inferior

¿Cómo le fue en su autoevaluación? ¡Esperamos que muy bien! y si no es así revise los apartados correspondientes y su guía didáctica a fin de aclarar las dudas que tenga. Recuerde que cuenta con el apoyo de su tutor.

129

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

UNIDAD 6. DISEÑO LÓGICO DE BASE DE DATOS Para el desarrollo de esta unidad, se requiere que vaya utilizando la guía didáctica y el capítulo “Diseño de base de datos y el modelo E-R” de su texto básico.

Las bases de datos son tan buenas como lo sean sus datos. – Beekman George

Castro, C. (2017)

6.1. Principios de diseño lógico de bases de datos En la fase de diseño lógico se traduce el esquema conceptual de alto nivel al modelo de datos de la implementación del sistema de bases de datos que se va a utilizar. Para efecto de esta asignatura, emplearemos el modelo relacional, que es el modelo de datos más utilizado para bases de datos relacionales. Consiste en traducir el modelo E-R en un esquema lógico de relaciones basado en la cardinalidad de las relaciones. Lo explicaremos de forma fácil: 1.

Primero, toda entidad del modelo conceptual se convierte en una tabla en el modelo relacional.

130

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

2.

Toda relación entre tablas 1:N se traduce en una propagación de la clave (se crea una clave primaria o foránea) o se crea una nueva tabla intermedia. La regla dice que se debe propagar la clave principal a la entidad que tiene la cardinalidad máxima.



La Figura 21 muestra un ejemplo de propagación de la clave principal de la entidad instructor a la entidad phone, que es la entidad que posee la cardinalidad N, debido a que el atributo ID pasa a ser clave foránea en phone.



En la Figura 21 en a) se muestra una relación 1:N y en b) la relación transformada a modelo relacional, en donde se propaga la clave principal desde instructor a phone y desaparecen el rombo que representa la relación y las cardinalidades. Debemos destacar también que en el diseño lógico aparecen las claves foráneas.

Figura 21. Propagación de clave principal Tomado de: Silberschatz, et. al. (2014)

3.

Todo tipo de relaciones entre tablas N:M (muchos a muchos) origina la creación de una nueva tabla intermedia, cuyos atributos son las claves

131

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

primarias de las entidades que está relacionando más los atributos que pueda tener la relación. •

La Figura 22 en a) muestra una relación con cardinalidad N:N y en b) se genera una tabla que enlaza las tablas que relaciona y cuyos atributos están formados por las claves primarias de las tablas que está relacionando.

Figura 22. Generación de tabla intermedia en relación N:N Adaptado por: Morocho, J. Y Romero, A. Tomado de: Silberschatz, et. al. (2014)

4.

Recordemos que en la unidad 5 se revisa el tema de especialización y generalización, por lo tanto, es importante que revise también las opciones de transformación al modelo relacional de estas formas de representación, tomemos como ejemplo la Figura 23.

132

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Figura 23. Ejemplo de especialización/generalización Tomado de: Silberschatz, et. al. (2014) Adaptado por: Morocho, J. Y Romero, A.

Tenemos tres posibilidades de transformación: 1.

Generar una tabla para la superclase y una tabla por cada subclase heredando el atributo de clave primaria de la superclase, de esta forma: Persona(ID, name, address) Empleado(ID, salary) Estudiante(ID, tot_credits)

2.

Generar solamente la superclase, para lo cual se genera una sola tabla con los atributos de la superclase más los atributos de cada subclase, con la desventaja que tendremos muchos valores nulos en algunas columnas, ya que si ingresamos una persona que sea empleado tendrá salary pero no tendrá tot_credits. Quedaría de esta forma: Persona(ID, name, address, salary, tot_credits)

133

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

3.

Generar solamente las subclases, con lo que cada subclase heredaría los atributos de la superclase, de esta forma: Empleado(ID, salary, name, address) Estudiante(ID, tot_credits, name, address)

En este caso no existe una regla para conocer qué método de transformación utilizar, sino que depende de las características del problema a resolver y de la habilidad y experiencia del diseñador de base de datos. Estudie en su texto básico el apartado “Reducción a esquemas relacionales”.

La lectura hace una amplia explicación de la transformación del modelo E-R al modelo relacional. Estimado estudiante, ha llegado el momento de revisar otro tema clave de la asignatura: “La normalización”, que tiene gran importancia a la hora de diseñar una base de datos para una organización, ya que se espera crear una representación precisa de los datos, de las relaciones entre ellos y las restricciones que son aplicables. Para conseguir este objetivo podemos emplear la técnica de Normalización.

6.2. Técnica de Normalización Hasta este punto usted está en la capacidad de diseñar un modelo de datos para satisfacer las necesidades de información de una organización. Llegó el momento de revisar otro tema clave en el proceso de diseño de una base de datos relacional como lo es la Normalización y para ello emplearemos las formas normales, que permiten obtener un modelo de datos con las entidades mínimas requeridas y manteniendo un mínimo de redundancia.

134

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Podemos optar por guiarnos con una metodología de diseño de base de datos, como la propuesta por (Connolly y Begg, 2005) en la que tenemos las fases de diseño conceptual, diseño lógico y diseño físico. Una vez concluido el diseño lógico, se debe aplicar el proceso de normalización con el objeto de optimizar nuestro modelo de datos, a través del establecimiento de redundancia mínima. El proceso formal de normalización influye en dos escenarios: a.

Su papel principal es apoyar en la identificación de relaciones, principalmente cuando tenemos esquemas grandes, a partir de los cuales desagregamos en varias relaciones de acuerdo a las dependencias funcionales minimizando la redundancia de datos.

b.

Como medio de verificación para comprobar la estructura de las relaciones, cuando tenemos un modelo de relaciones que generalmente es producto de haber empezado por el diseño conceptual y luego haber llegado al diseño lógico.

Generalmente cuando hay redundancia de datos, esta provoca anomalías de inserción, borrado y modificación. Consultar en internet los efectos de este tipo de anomalías y realizar un mapa mental que le servirá para reforzar este tema.

¿Qué tal ha ido esta actividad? Seguro muy provechosa para su aprendizaje. Vale la pena que comparta en el muro digital.

6.3. Dominios atómicos y Primera Forma Normal El modelo E-R permite que las entidades contengan atributos multivaluados y/o compuestos y al momento de crear la tabla eliminamos estas subestructuras. Para el caso de los atributos compuestos, creamos un atributo por cada componente y para atributos multivaluados creamos una tupla por cada ítem. 135

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Cuando encontramos una entidad que tiene grupos repetitivos, decimos que está en una forma no normalizada (UNF5). La Tabla 10 muestra un ejemplo de la tabla Asignación donde se almacena datos de proyectos y empleados con grupos repetitivos. Tabla 10. Tabla no normalizada projID 15

projName Evergreen Evergreen Evergreen Evergreen Evergreen

18

Amber Wave

Amber Wave

Amber Wave

Amber Wave

22

Rolling Tide

Rolling Tide

Rolling Tide

Rolling

empID 103 101 105 106 102 114 118 104 112 105 104 113 111

EmpName June E.

Elect

Arbough

Engineer

John G. News Alice K. Johnson* William



Database Designer Database Designer

Chg_

Hours

84.5

23.6

105.0 19.4 105.0 35.7

Programmer

35.8

12.6

David H.

Systems

95.8

23.6

Senior

Analyst

Applications 48.1

24.6

Smithfield

Annelis Jones Jammes J.

Designer

18.4

45.3

General

96.8

32.4

DSS Analyst

45.9

44.0

Alice K.

Database

105.0 64.7

Johnson

Designer

Ramoras

Analyst

Joenbrood*

Designer

Frommer

Support

Ramoras*

Analyst

Anne K. Darlene M. Smithson

Anne K. Delbert K.

Systems

Systems

96.8

46.4

Applications 48.1

29.6

Geoff B. Wabash Clencal

Tide

5

jobClass

26.9

22.0

Support

Forma no normalizada, Unnormalized Form

136

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

projID

projName Rolling Tide

25

Starflight Starflight Starflight Starflight Starflight Starflight Starflight

empID

EmpName

106

Chg_

Hours

Programmer

35.8

12.6

Programmer

35.8

24.6

Travis B.

Systems

96.8

45.8

Bawangi

Analyst

William Smithfield

107

Maria D. Alonzo

115 101

jobClass

John G. News * Database

114

Annelis Jones

108

Ralph B.

118 112

Designer

Applications 48.1 Designer Systems

Washington

Analyst

Frommer

Support

Jammes J.

Darlene M.

105.0 56.3

General DSS Analyst

33.1

96.8

23.6

18.4

30.5

45.9

41.4

Smithson Tomado de: (Coronel & Morris, 2011)

Para pasar a primera forma normal basta con hacer que cada intersección de fila y columna contenga uno y un sólo un valor. Esto también se conoce como dominio atómico. La Tabla 11 muestra la tabla Asignación en 1FN. Tabla 11. Tabla normalizada EN 1FN projID

projName

empID

EmpName

jobClass

Chg_ Hours

15

Evergreen

103

June E. Arbough

Elect Engineer

84.5

23.6

15

Evergreen

101

John G. News

Database

105.0 19.4

Designer 15

Evergreen

105

Alice K. Johnson*

Database

105.0 35.7

Designer 15

Evergreen

106

William Smithfield

Programmer

35.8

12.6

15

Evergreen

102

David H. Senior

Systems Analyst 95.8

23.6

18

Amber Wave 114

Annelis Jones

Applications

48.1

24.6

Designer 18

Amber Wave 118

Jammes J. Frommer General Support 18.4

45.3

18

Amber Wave 104

Anne K. Ramoras*

32.4

137

Systems Analyst 96.8

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

projID

projName

empID

EmpName

jobClass

Chg_ Hours

18

Amber Wave 112

Darlene M. Smithson DSS Analyst

45.9

22

Rolling Tide

Alice K. Johnson

105.0 64.7

105

Database

44.0

Designer 22

Rolling Tide

104

Anne K. Ramoras

Systems Analyst 96.8

46.4

22

Rolling Tide

113

Delbert K.

Applications

48.1

29.6

Joenbrood*

Designer

22

Rolling Tide

111

Geoff B. Wabash

Clencal Support

26.9

22.0

22

Rolling Tide

106

William Smithfield

Programmer

35.8

12.6

25

Starflight

107

Maria D. Alonzo

Programmer

35.8

24.6

25

Starflight

115

Travis B. Bawangi

Systems Analyst 96.8

45.8

25

Starflight

101

John G. News *

Database

105.0 56.3

Designer 25

Starflight

114

Annelis Jones

Applications

48.1

33.1

Designer 25

Starflight

108

Ralph B. Washington Systems Analyst 96.8

23.6

25

Starflight

118

Jammes J. Frommer General Support 18.4

30.5

25

Starflight

112

Darlene M. Smithson DSS Analyst

41.4

45.9

Tomado de: (Coronel & Morris, 2011)

Acudamos al texto básico y estudie los apartados “Características de los buenos diseños relacionales” y “Dominios atómicos y la primera forma normal”.

El texto hace una introducción al tema de normalización que es esencial en el diseño lógico de bases de datos, preste especial atención a este tema y si es necesario repita la actividad.

6.4. Dependencias funcionales Siguiendo con el estudio de la unidad, conviene recordar que el concepto asociado a Normalización es el de dependencias funcionales (DF), que describe la relación entre atributos.

138

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Con las DF aparece el término determinante, que es el atributo o atributos situados a la izquierda de la flecha que describe la dependencia y el término determinado que es el atributo que está a la derecha. Si tenemos una relación R, con los atributos A y B, se dice que B depende funcionalmente de A (A->B) siempre que para cada valor distinto en A hay un solo valor en B. La normalización se basa en las dependencias funcionales para agrupar atributos e ir componiendo las entidades, obteniendo como resultado un modelo de tablas. Una dependencia funcional se dice completa si es que el atributo determinado depende completamente de todos los atributos que forman la clave principal. Por el contrario, una dependencia parcial se da cuando hay una dependencia funcional en la que el determinante es sólo parte de la llave primaria (recuerde que estamos suponiendo que hay sólo una clave candidata). Por ejemplo, si (A,B) –>(C,D), B –>C y (A,B) es la clave primaria, entonces la dependencia funcional B –>C es una dependencia parcial porque sólo parte de la clave primaria (B) se necesita para determinar el valor de C. Las dependencias parciales tienden a ser más bien sencillas y fáciles de identificar. (Coronel & Morris, 2011) Otro tipo de dependencia funcional es la dependencia transitiva, que se basa en la ley de transitividad de conjuntos, si X->Y, Y->Z y X es la llave primaria, X->Z es una dependencia transitiva porque X determina el valor de Z a través de Y. (Coronel y Morris, 2011) Es importante que en cada entidad se defina una clave primaria, para luego definir las dependencias funcionales con base a esta. Tomando el ejemplo de la tabla Asignación, de la figura 8, podemos definir la clave primaria como la combinación de PROJ_NUM y EMP_NUM, que determina al resto de atributos, como muestra: PROJ_NUM, EMP_NUM –> PROJ_NAME, EMP_NAME, JOB_CLASS, CHG_ HOUR, HOURS

139

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

En el texto básico estudie “Descomposición mediante dependencias funcionales”, que nos explica el detalle el fundamento de la normalización.

Recuerde que las dependencias funcionales son el fundamento de la normalización y debe estar completamente claro todo lo relacionado a este apartado. Si le han quedado dudas regístrelas y compártalas en EVA.

6.5. Segunda Forma Normal La conversión a segunda forma normal se da siempre y cuando la clave primaria de la relación sea una clave compuesta. Si es una clave primaria simple, la tabla automáticamente pasa de 1FN a 2FN. Como primer paso creamos nuevas tablas para eliminar las dependencias parciales. Para ello podemos separar cada componente de la clave compuesta si este genera una dependencia parcial, como si fuera una nueva relación, pero conservando en la relación original el atributo determinante para que actúe como clave foránea. Continuando con el ejemplo de la tabla Asignación, quedaría de la siguiente forma: PROJ_NUM

–> genera la tabla Proyectos

EMP_NUM

–> genera la tabla Empleados

PROJ_NUM, EMP_NUM

–> la tabla Asignaciones

Luego los atributos que son dependientes funcionalmente en una dependencia parcial se remueven de la tabla original y se colocan en la nueva tabla con su determinante. Cualquier atributo que no sea dependiente en una dependencia parcial permanecerá en la tabla original. Esto da origen a las siguientes tablas: Proyectos (PROJ_NUM, PROJ_NAME) Empleados (EMP_NUM, EMP_NAME, JOB_CLASS, CHG_HOUR) Asignación (PROJ_NUM, EMP_NUM, ASSIGN_HOURS)

140

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Hasta este punto hemos obtenido un modelo de tablas que minimiza los problemas de redundancia traducidos en anomalías de modificación, además se puede ya identificar las claves foráneas que sirven para relacionar las tablas. Consulte en internet o de ser posible en la bibliografía complementaria, la definición de la 2FN.

Le ha quedado clara la segunda forma normal, de no ser así le recomendamos volver a realizar la actividad, antes de continuar.

6.6. Tercera Forma Normal En este punto todavía pueden persistir anomalías en el modelo de datos, así que debemos eliminarlas. La 3ra FN dice que debemos eliminar las dependencias transitivas, por tanto empezamos por identificar las dependencias transitivas y escribir una copia de su determinante como clave primaria para una nueva tabla, pero en la tabla original debe permanecer el determinante para que actúe como clave foránea. Continuando con el ejemplo de la asignación de empleados a proyectos, quedaría de la siguiente forma: JOB_CLASS –> determinante de la dependencia transitiva identificada El siguiente paso sería reasignar los atributos dependientes de los determinantes identificados como dependencias transitivas. El esquema de tablas quedaría de la siguiente forma: Proyectos(PROJ_NUM, PROJ_NAME) Empleados(EMP_NUM, EMP_NAME, JOB_CLASS) Cargo(JOB_CLASS ,CHG_HOUR) Asignación(PROJ_NUM, EMP_NUM, ASSIGN_HOURS)

141

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Una vez eliminada la dependencia transitiva las tablas están en 3ra FN. Existen otras formas normales, pero generalmente un modelo normalizado hasta la 3FN ha eliminado al mínimo la redundancia y permitirá trabajar de forma adecuada. Vaya a la sección “Tercera forma normal” y analice lo que ahí se explica acerca de la 3FN.

En muchos casos, cuando se ha llegado a segunda forma normal la relación también está en tercera forma normal. Sin embargo, si se requiere aplicar la 3FN resulta una tarea más sencilla. En la mayoría de los casos llegar a tercera forma normal es suficiente y no requiere procesos de normalización avanzados. Elabore un cuadro sinóptico con la definición de las tres formas normales revisadas, defínalas en no más de tres líneas, esto le ayudará a recordar estas reglas que son muy importantes en el diseño de una base de datos.

Una vez que el diseño de base de datos esté implementado y funcionando, se deberán tomar algunos correctivos donde haga falta, en base al monitoreo del rendimiento de la base de datos. Una de las técnicas es la desnormalización, que no es más que la introducción de redundancia controlada y en consecuencia se puede perder algunos beneficios de un modelo completamente normalizado con el fin de mejorar las prestaciones, lo que no significa que se deba obviar el proceso de normalización. Específicamente la desnormalización es la duplicación de ciertos atributos o la combinación de relaciones para reducir el número de combinaciones requeridas para procesar una consulta (Connolly y Begg, 2005). Una vez concluida la fase de diseño lógico, se ha logrado generar el diagrama relacional incluyendo quizá algunas restricciones inherentes a la lógica del diseño; a su vez se ha aplicado la técnica de normalización para dotar de calidad al modelo y reducir al mínimo la redundancia. También se debe actualizar el diccionario de datos de forma que el documento refleje el diseño relacional

142

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

generado y llegados a este punto estamos listos para proceder a la siguiente fase: el diseño físico. Elabore un listado de actividades que se deben ejecutar dentro de la fase de diseño lógico. Le sugerimos utilice Padlet6 y comparta el enlace en EVA para todos los compañeros.

¿Cómo estuvo la actividad? Esta actividad le permitirá tener en mente las actividades que se deben realizar, que seguro inicialmente se harán más pausado y luego ya irá adquiriendo la habilidad para realizarlas más ágilmente. La fase de diseño lógico ya podría incluir una orientación hacia la selección de qué sistema de gestión de base de datos se va a utilizar y de esta forma validar si se puede o no implementar las restricciones necesarias incluidas en el modelado de la base de datos. A pesar de ello todavía en esta fase no se consideran aspectos físicos como almacenamiento e infraestructura ya que estos aspectos se determinan en el diseño físico de base de datos.

Muy bien hemos culminado con éxito el desarrollo de las unidades planificadas, de seguro que su esfuerzo ha valido la pena, pues ya sabe cómo llegar hasta la fase de diseño lógico de una base de datos. Para complementar esta unidad, es momento que compruebe sus avances desarrollando la siguiente autoevaluación.

6



Padlet es un muro digital que puede utilizarse como tablón personal o pizarra colaborativa.

143

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

Autoevaluación 6

Es momento de validar la asimilación de los contenidos de la unidad, por lo que le invitamos a desarrollar la autoevaluación propuesta a continuación. Aunque el desarrollo de estas preguntas es opcional, se le recomienda resolverlas. Si tiene alguna duda consulte con su profesor tutor. Seleccione la opción correcta: 1.

En la fase de diseño lógico se especifica las formas de organización de los archivos y las estructuras de almacenamiento.

2.

3.

4.

a.

Verdadero

b.

Falso

La normalización busca construir un diseño de esquemas que se halle: a.

Al menos en 2FN

b.

Con cero redundancia

c.

En la forma normal adecuada

Una relación sufre de anomalías de actualización cuando tiene: a.

Una clave primaria compuesta

b.

Redundancia en los datos

c.

Se halle en una de las formas normales no deseables

Al identificar las dependencias funcionales, el atributo o grupo de atributos que está del lado izquierdo de la flecha se denomina: a.

Determinado

b.

Determinante

c.

Clave primaria

144

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

5.

6.

Una tabla que contiene uno o más grupos repetitivos está en: a.

Forma no normalizada

b.

1 FN

c.

2 FN

La normalización es un proceso formal que: a.

Actúa como medio para eliminar totalmente la redundancia de un modelo de datos.

b.

Apoya en la identificación de relaciones, principalmente cuando tenemos esquemas grandes.

c.

Permite generar un conjunto de esquemas de relación a partir del diseño E-R.

7.

Un dominio atómico se presenta cuando las relaciones están en: a.

Forma no normalizada

b.

1 FN

c.

2 FN

145

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

En base al esquema Exposiciones, responda las preguntas 8-10.

8.

Para convertir al modelo relacional la relación ArtistaPresentadoPor-Exposición, el resultado sería: a.

Se genera un solo conjunto de entidad, conformado por los atributos de las dos entidades que se relacionan.

b.

Se generan dos conjuntos de entidad: Artista y Exposición y se propaga la clave principal de Artista hacia Exposición.

c.

Se generan tres conjuntos de entidad: Artista, PresentadoPor y Exposición, siendo PresentadoPor una tabla intermedia.

146

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Segundo bimestre

9.

Para convertir al modelo relacional la relación Obra-Mostrada EnExposición, el resultado sería: a.

Se genera un solo conjunto de entidad, conformado por los atributos de las dos entidades que se relacionan.

b.

Se generan dos conjuntos de entidad: Obra y Exposición y se propaga la clave principal de Obra hacia Exposición.

c.

Se generan tres conjuntos de entidad: Obra, Mostrada En y Exposición, siendo MostradaEn una tabla intermedia.

10. Para convertir al modelo relacional la relación Artista-ColeccionadoPorColeccionista, el resultado sería: a.

Se generan dos conjuntos de entidad: Artista y Coleccionista y se propaga la clave principal de Artista hacia Coleccionista.

b.

Se generan dos conjuntos de entidad: Artista y Coleccionista y se propaga la clave principal de Coleccionista hacia Artista.

c.

Se generan tres conjuntos de entidad: Artista, ColeccionadoPor y Coleccionista, siendo ColeccionadoPor una tabla intermedia.

¿Cómo le fue en su autoevaluación? ¡Esperamos que muy bien! y si no es así revise los apartados correspondientes y su guía didáctica a fin de aclarar las dudas que tenga. Recuerde que cuenta con el apoyo de su tutor. Hemos concluido con el estudio de la asignatura Fundamentos de Base de Datos, esperamos que los conocimientos adquiridos le permita ir avanzando en su proceso de aprendizaje y que en poco tiempo usted culmine su formación y obtenga su titulación correspondiente. Estamos seguros que los temas abordados en la asignatura le serán de mucha utilidad en su actividad laboral. Felicitaciones por las metas alcanzadas!!

147

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

7. Solucionario

Autoevaluación 1 Pregunta

Respuesta

1

c

Retroalimentación Al tener datos en varios archivos y no estar relacionados se dificulta la recuperación de datos que tengan algún tipo de relación.

2

b

Una base de datos representa en conjunto a la información que maneja o es propiedad de una persona u organización. El software que gestiona y controla el acceso a los datos es el SGBD.

3

b

El administrador de base de datos debe emplear el nivel lógico ya que debe analizar qué relaciones existen entre los datos que se van a almacenar en la base de datos.

4

a

El lenguaje de definición de datos DDL se emplea para crear las estructuras (tablas) donde se almacenan los datos así como otros objetos (vistas, índices entre otros) de base de datos.

5

c

El lenguaje DDL es el que describe el diseño de base de datos en el nivel físico más no es una característica de la base de datos.

6

c

La lógica de negocio viene incorporada en el servidor de aplicaciones en lugar de estar distribuida entre múltiples clientes.

7

a

La minería de datos ayuda a encontrar información que antes no se podía ver o permanecía oculta entre grandes cantidades de datos.

8

b

El DBA debe permitir alta disponibilidad de la base de datos lo que permite atender a los usuarios cuando y dónde lo requieran

148

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Solucionario

Autoevaluación 1 Pregunta

Respuesta

9

b

Retroalimentación Una base de datos posee varios gestores entre ellos el de almacenamiento que se encarga, como su nombre lo dice, de almacenar, actualizar y recuperar datos cuando los usuarios lo requieran.

10

a, c

Un esquema conceptual permite validar que los requisitos de datos de la organización están contemplados en el esquema, así como también permite indicar los requisitos funcionales de la empresa. Recuerde que las características físicas de la base de datos se deben contemplar en etapas posteriores.

149

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Solucionario

Autoevaluación 2 Pregunta

Respuesta

1

a

Retroalimentación Una base de datos relacional es un conjunto de tablas que están relacionadas entre sí mediante claves foráneas y es precisamente esa característica por lo que se denomina relacional.

2

c

Un ejemplar de relación se denomina al estado en que se encuentra una relación en un instante determinado.

3

a

El término tupla es sinónimo de fila cuando hablamos de bases de datos relacionales.

4

b

El modelo relacional se basa en relaciones (de ahí su nombre) las cuales físicamente se representan a través de tablas.

5

a

El término atributo es sinónimo de columna cuando hablamos de base de datos relacionales.

6

a

Cada relación debe tener al menos una clave primaria que identifique las tuplas de forma única.

7

b

En cada relación, en el modelo relacional, se debe definir claves candidatas de entre las cuales se selecciona la clave primaria.

8

b

La operación de selección es muy común. Por lo general las consultas de datos involucran el cumplimiento de alguna condición, por ejemplo, edad > 20.

9

c

El resultado de una consulta es un conjunto de tuplas que igualmente forman una relación que no tienen nombre.

10

a

Cuando hablamos de base de datos relacionales una de sus características es que no debe tener valores duplicados.

150

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Solucionario

Autoevaluación 3 Pregunta

Respuesta

1.

F

Retroalimentación En una instrucción SELECT las cláusulas obligatorias son SELECT y FROM.

2.

V

Una función de agregación puede ser SUM(). Esta función devuelve la sumatoria de una lista de valores por lo tanto un solo resultado.

3.

V

La clausula HAVING permite filtrar los grupos que se han formado mediante GROUP BY para lo cual se evalúa una condición HAVING .

4.

V

Una sentencia SELECT puede contener otras sentencias SELECT por ejemplo en la parte del WHERE para completar una condición: nom_departamento = (SELECT nom_depar FROM departamentos WHERE idDep = 10).

5.

V

Cuando los datos que necesitamos presentar como resultado provienen de más de una tabla se debe establecer un JOIN entre tablas para lo cual deben tener un atributo común que permita dicha combinación.

6.

F

La cláusula DELETE se usa para borrar tuplas de una tabla. En el caso de borrar una tabla empleamos DROP TABLE.

7.

V

Son operaciones simétricas, lo único que cambia es que dependiendo si se aplica LEFT OUTER JOIN o RIGTH OUTER JOIN se recupera los datos de la tabla que está a la derecha o a la izquierda del JOIN.

8.

F

La operación de reunión externa completa se ejecuta mediante FULL OUTER JOIN.

9.

V

Una vista puede ayudar a segmentar la información y solamente presentar una cierta cantidad evitando mostrar todo el contenido de una o varias tablas.

10.

F

La instrucción COMMIT confirma los cambios en los datos grabándolos en disco. Luego de un COMMIT ya no tendría efecto ejecutar inmediatamente un ROLLBACK debido a que ésta última sentencia deshace los cambios hasta antes de que se produzca un COMMIT.

151

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Solucionario

Autoevaluación 3 Pregunta

Respuesta

Retroalimentación

11.

V

Se puede alterar la tabla mediante ALTER TABLE por ejemplo para añadir una restricción a nivel de columna que no permita aceptar valores nulos (NOT NULL).

12.

b

Al alterar la tabla para incluir un valor por defecto para una columna, solamente se verán afectadas las siguientes inserciones a partir de la ejecución del ALTER TABLE.

13.

a

Se debe aplicar la función SUM() para obtener los totales de inversión en salarios. Se requiere un JOIN entre tablas para obtener el nombre del departamento y agrupar mediante GROUP BY por el nombre del departamento.

14.

d

SQL tiene comandos para definición de datos (DDL), manipulación de datos (DML), control de datos (DCL) y control de transacciones (TCL).

15.

c

Para actualizar datos de una tabla se requiere comandos DML.

16.

d

Los comandos DCL: GRANT y REVOKE asignan privilegios para manipulación de datos sobre tablas.

17.

b

Una transacción puede estar compuesta por una o más de una sentencia SQL que consulta o modifica datos en la base de datos.

18.

b

Mediante un rol se puede agrupar privilegios de acuerdo con las reglas del negocio lo que provoca que la administración de usuarios sea más fácil.

19.

c

COMMIT sirve para confirmar los cambios hechos a los datos con lo cual las modificaciones se graban en disco.

20.

a

JOIN ON es la sentencia que permite aplicar combinación (reunión) entre tablas mediante un atributo común.

152

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Solucionario

Autoevaluación 4 Pregunta

Respuesta

1

a, c, f

Retroalimentación Unión requiere de al menos dos relaciones para poder ejecutarse. Diferencia requiere al menos dos relaciones para funcionar y el Producto Cartesiano requiere dos relaciones para obtener un resultado.

2

b

Al ejecutar alguna operación de álgebra o cálculo relacional, el resultado es un conjunto de tuplas que forman una relación.

3

a

La operación de selección incluye restricciones (condiciones) que las filas tienen que cumplir para formar parte del resultado.

4

c

Se aplica una proyección debido a que se pide seleccionar solamente algunas de las columnas disponibles de la tabla y no incluye ninguna restricción.

5

a

El resultado es la combinación de cada una de las tuplas de la primera relación con todas y cada una de las tuplas de la segunda relación.

6

c

Cuando dos relaciones tienen un atributo en común con valores coincidentes nos referimos a una clave foránea.

7

b

El álgebra relacional es procedimental porque debemos mencionar todas las operaciones que se deben realizar para obtener los datos solicitados. El cálculo relacional es no procedimental debido a que solamente se debe mencionar el patrón de búsqueda más no el procedimiento a seguir para obtener los datos deseados.

8

b

S es una variable de tupla la cual sirve para recuperar todas las tuplas de la relación Empleado que cumplen con la condición de que el atributo ciudad sea igual a Loja.

9

b

El cálculo relacional de tuplas en el que el objetivo es encontrar las tuplas que cumplen una condición. El cálculo relacional de dominios se fundamenta en variables que actúan sobre todas las tuplas de la relación, pero tomas sus valores de los dominios de los atributos.

153

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Solucionario

Autoevaluación 4 Pregunta

Respuesta

Retroalimentación

10

b

QBE (Query by Example, consulta mediante ejemplo) es una técnica visual para elaborar consultas a base de datos que ayuda a comprender cómo obtener los datos de una base de datos.

154

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Solucionario

Autoevaluación 5 Pregunta

Respuesta

Retroalimentación

1

b

En la etapa de diseño conceptual se construye el modelo ER que recoge los requerimientos de datos de la organización. Los requerimientos de datos provienen en su mayoría de los usuarios.

2

a

La activa participación de los usuarios en la etapa de diseño conceptual es crucial. Son ellos quienes aportan los requerimientos que necesitan ser modelados en la base de datos.

3

a

El diseño de una base de datos se dice que no tiene fin debido a que siempre se puede mejorar o agregar alguna funcionalidad que requiere ser soportada por la base de datos. Sucede también que los cambios en los requerimientos suelen ser constantes por parte de los usuarios.

4

c

En un proceso formal de diseño de base de datos siempre se genera un documento de especificación de requisitos que es un insumo para el proceso de diseño conceptual de base de datos.

5

b

Las cardinalidades sirven de base para pasar del diseño conceptual al diseño lógico. Las cardinalidades se basan en el tipo de relación: 1:n o n:n.

6

b

Un tipo de relación n:n siempre genera una tabla intermedia y sus atributos serán las claves primarias de las entidades que relaciona más los atributos que tenga la relación.

7

d

Todas las alternativas son válidas y se las puede implementar de acuerdo con las condiciones de modelado del problema a resolver.

8

b

La especialización se dice una técnica de arriba-abajo debido a que empieza en el concepto más general y se subdivide en conceptos más específicos. Por ejemplo, la entidad Persona se puede especializar en Empleado, Profesor, Alumno entre otros.

9

d

Las claves foráneas aparecen cuando pasamos del diseño conceptual al diseño físico aplicando las reglas de transformación en base a las cardinalidades.

155

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Solucionario

Autoevaluación 5 Pregunta

Respuesta

10

b

Retroalimentación La especialización identifica a una superclase de la que se derivan subclases más especializadas. También se dice que un subconjunto de entidades de nivel inferior se derivan de una entidad de nivel superior y también heredan sus atributos.

156

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Solucionario

Autoevaluación 6 Pregunta

Respuesta

1

b

Retroalimentación La especificación de las formas de organización de los archivos y las estructuras de almacenamiento se hace en la fase de diseño físico.

2

c

Generalmente el proceso de normalización llega hasta la 3FN y la redundancia no se puede eliminar sino minimizar.

3

b

La redundancia ocasiona anomalías de actualización. Esto quiere decir, por ejemplo, cuando se actualiza algún dato no se puede actualizar solamente en un sitio centralizado, sino que se debe actualizar en todas las ubicaciones donde exista ese dato, corriendo el riesgo de que en algún sitio el dato no se actualice y por lo tanto los datos se vuelvan inconsistentes.

4

b

Determinante pues determina al valor que se encuentra al lado derecho de la flecha.

5

a

Una forma no normalizada contiene grupos repetitivos de datos y es el punto desde donde se aplica la 1FN.

6

b

La normalización se basa en las dependencias funcionales y una dependencia funcional es la relación entre atributos, por tanto, al agrupar atributos estamos identificando las relaciones que componen la base de datos.

7

b

El 1FN ya no tenemos grupos repetitivos, sino que tenemos un valor atómico en el dominio de cada atributo, esto quiere decir que son valores indivisibles.

8

b

La regla dice que cuando se presenta un tipo de relación 1:m se propaga (duplica) la clave principal de la entidad que tiene cardinalidad mínima hacia la entidad que tiene cardinalidad máxima.

9

c

La regla dice que cuando se presenta un tipo de relación m:m se debe crear una tabla intermedia formada por los atributos de clave primaria de las entidades que está relacionando.

157

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Solucionario

Autoevaluación 6 Pregunta

Respuesta

Retroalimentación

10

a

La regla dice que cuando se presenta un tipo de relación 1:m se propaga (duplica) la clave principal de la entidad que tiene cardinalidad mínima hacia la entidad que tiene cardinalidad máxima.

158

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

8. Glosario

▪▪

3GL: Lenguaje de 3ra Generación

▪▪

4GL: Lenguaje de 4ta Generación

▪▪

AR: Álgebra Relacional

▪▪

CR: Cálculo Relacional

▪▪

DA: Administrador de Datos (Data Administrator)

▪▪

DBA: Administrador de Bases de Datos (Database Administrator)

▪▪

DBLC: Ciclo de Vida de Bases de Datos (Database Life Cycle)

▪▪

DNI: Documento de Identificación Nacional

▪▪

E-R: Modelo Entidad-Relación

▪▪

ETL: Extracción, Transformación, Carga (Extract, Transform and Load)

▪▪

FN: Forma Normal

▪▪

LDD (se utiliza las siglas en inglés DDL): Lenguaje de Definición de Datos (Data Definition Language)

▪▪

LMD (se utiliza las siglas en inglés DML): Lenguaje de Manipulación de Datos (Data Manipulation Language)

▪▪

OLAP: Procesamiento Analítico en Línea (OnLine Analytical Processing)

159

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Glosario

▪▪

OLTP: Procesamiento de Transacciones En Línea (OnLine Transaction Processing)

▪▪

QBE: Consultas por Ejemplo (Query by Example)

▪▪

SDLC: Ciclo de vida del Desarrollo de Sistemas (Software Development Life Cycle)

▪▪

SGBD: Sistema de Gestión de Base de Datos, también conocido como Motor de Base de Datos. Similar a DBMS

▪▪

SGBD (DBMS): Sistema de Gestión de Base de Datos (Database Management System)

▪▪

SGBDD (DDBMS): Sistema de Gestión de Bases de Datos Distribuidas (Distributed Database Management System)

▪▪

SQL: Lenguaje Estructurado de Consulta (Structured Query Language)

▪▪

TPS: Sistemas de procesamiento de transacciones (Transaction Processing System), Sistemas operacionales, Sistemas transaccionales

▪▪

UNF: Forma no normalizada

160

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

9. Referencias Bibliográficas

Connolly, T., y Begg, C. (2005). Sistemas de Base de Datos. Un enfoque práctico para diseño, implementación y gestión. Madrid, España: Pearson Educación. Coronel, C., y Morris, S. (2011). Bases de Datos. Diseño, implementación y gestión. Mexico DF, Mexico: Cengage. Elmasri, Ramez; Navathe, Shamkant B. (2016) Fundamentals of database systems. Boston Pearson. Morocho, J., Romero, A. (2017). Guía didáctica de Fundamentos de Bases de Datos. Loja, Ecuador: UTPL. Silberschatz, A., Korth, H. y Sudarshan, S. (2014). Fundamentos De Bases De Datos. Madrid, España: McGraw-Hill. Castro, C., Giraldo, J., Valdéz, J. y Pérez H. CAPÍTULO 11 Problema 7. Diseño de geodatabase caso agencia - Scientific Figure on ResearchGate. Disponible en: https://www.researchgate.net/figure/Figura-2-ModeloLogico-Caso-Agencia-23-Diseno-fisico-Modelo-Relacional-El-diseno-fisico_ fig2_322328333 [Última fecha de acceso 26 Junio, 2019] Aprendiendo PC. (n.d.). ¿Qué es un servidor de correo electrónico? Disponible en: http://www.aprendiendopc.com/que-es-un-servidor-de-correo-electronico

161

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

10. Anexos

Anexo 1: Caso de aplicación Registro de Notas Profesor (ID, nombre, nombre_dept, salario) Departamento (nombre_dept, edificio) Asignatura (asignatura_id, nombre_asig, nombre_dept, creditos) Matricula(ID, asignatura_id, semestre, año) Estudiante(ID, nombre_est, nombre_dept, tot_creditos)

Anexo 2: Caso de aplicación Booking •

Hotel (hotelNo,hotelName,city)



Room (roomNo,hotelNo,type,price)



Guest (guestNo,guestName,guestAddress)



Booking (hotelNo,guestNo,dateFrom,dateTo,roomNo)

162

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Anexos

Hotel HotelNo

HotelName

City

001

The Marlton Hotel

New York

002

Millennium Broadway New York Times Square

New York

003

Stewart Hotel

New York

004

Hotel Mela Times Square

New York

005

Grand Beach Hotel Surfside

Miami

006

Grand Beach Hotel Surfside

Miami

007

JW Marriott Miami

Miami

008

Royal Decameron Punta Sal

Sullana

009

Decameron Mompiche

Esmeraldas

010

Royal Decameron Punta Centinela

Santa Elena

Room RoomNo

HotelNo

Type

Price

101

008

Standard

204

102

008

Standard

204

103

008

Standard

204

201

009

Standard

157

202

009

Standard

157

2010

010

Standard

180

2011

010

Standard

180

209

001

Standard

190

210

001

Standard

190

101

002

Standard

225

110

002

Standard

225

320

003

Standard

355

321

003

Standard

355

222

004

Standard

420

220

004

Standard

380

163

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Anexos

Guest GuestNo 9865A

GuestName Margoth Cameron

GuestAddress 5 West 8th Street, Greenwich Village, 10011, Nueva York, EE. UU.

9821A

Stuart Lopez

17 West 32nd St, New York, NY 10001

8345B

Ian Connolly

42151 San Diego Ca 92111

7456A

Louis Brown

307 Harrison Avenue, NJ

8647A

Jennifer Langer

77 Massachusetts Avenue Cambridge, MA

Booking HotelNo

GuestNo

DateFrom

DateTo

RoomNo

010

9865A

09/12/2017

15/12/2017

2010

010

9821A

09/12/2017

15/12/2017

2011

008

8345B

12/12/2017

17/12/2017

101

008

7456A

12/12/2017

16/12/2017

103

008

9865A

16/12/2017

22/12/2017

103

008

9821A

16/12/2017

22/12/2017

102

001

8345B

18/12/2017

26/12/2017

209

003

7456A

19/12/2017

164

321

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

Anexos

Anexo 3: Esquema de Datos de Ordenes de Compra

165

Modalidad Abierta y a Distancia

Texto-guía: Fundamentos de Base de Datos

www.utpl.edu.ec

ÁREA sociohumanística 166

Modalidad Abierta y a Distancia

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF