MANUAL DE APRENDIZAJE -...

143
SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO INDUSTRIAL MANUAL DE APRENDIZAJE CÓDIGO: 89001621 Profesional Técnico FUNDAMENTOS DE BASE DE DATOS COMPUTACIÓN E INFORMÁTICA

Transcript of MANUAL DE APRENDIZAJE -...

Page 1: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

SERVICIO NACIONAL DE ADIESTRAMIENTO EN TRABAJO INDUSTRIAL

MANUAL DE APRENDIZAJE

CÓDIGO: 89001621

Profesional Técnico

FUNDAMENTOS DE BASE DE DATOS

COMPUTACIÓN E INFORMÁTICA

Page 2: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación
Page 3: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación
Page 4: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación
Page 5: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

ÍNDICE

CONTENIDO N° PÁG,

TAREA N° 1: CONCEPTOS DE BASE DE DATOS 7

Fundamento Teórico: 19

Defini r una Base de Datos 19

Objetivos de las bases de datos . 22

Usos y apl icaciones de las bases de datos . 23

Arquitectura de Base de Datos . 24

Niveles de abastracción de una Base de Datos . 29

Independencia y Lógica de los datos . 31

Estructura Genera l de un Sis tema de Base de Datos . 32

Los usuaros de la Base de Datos . 33

Ejercicios y tareas de Investigación 39

TAREA N° 2: MODELOS DE ENTIDADES. 40

Fundamento Teórico: 59

Conceptos bás icos : Entidad-Relación. 59

Ejercicios y tareas de Investigación 63

TAREA N° 3: ENTENDER EL FUNCIONAMIENTO DE UN MODELO RELACIONAL. 64

Fundamento Teórico: 78

El Modelo Relacional . 78

Álgebra Relacional . 80

Estructura del Modelo Relacional . 81

Definición Formal de Relación. 82

Propiedad de las tablas (o relaciones). 83

Claves . 85

Ejercicios y tareas de Investigación 87

TAREA N° 4: REALIZAR EL DISEÑO DE BASES DE DATOS RELACIONALES. 88

Fundamento Teórico: 90

Cons ideraciones de Diseño. 90

La Normal ización. 91

La Integridad de Base de Datos . 95

Ejercicios y tareas de Investigación 98

TAREA N° 5: ENTENDER LA SEGURIDAD DE BASES DE DATOS. 99

Fundamento Teórico: 101

Seguridad en Base de Datos . 101

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 5

Page 6: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

CONTENIDO N° PÁG,

TAREA N° 6: REALIZAR CONSULTAS A BASE DE DATOS. 111

Fundamento Teórico: 133

Elaborar transacciones . Definición de Transacción. 133

Propiedades de la Transacción. 134

Estados de las transacciones . 135

Tipos de Bi tácora. 136

Contenido de la Bi tácora. 136

Defini r el Diccionario de Datos . 136

Tipos de Diccionario de Datos . 137

Principios bás icos de las consul tas SQL. 137

Estructura bás ica de SQL. 138

Funciones de Agregación. 139

Consultas sobre múltiples tablas . 140

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 6

Page 7: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

TAREA 01: CONCEPTOS DE BASE DE DATOS.

En esta tarea trataremos las siguientes operaciones:

Definir una base de datos.

Objetivos de las bases de datos.

Usos y aplicaciones de las bases de datos.

Arquitectura de base de datos.

Niveles de abstracción de una base de datos.

Independencia lógica y física de los datos.

Estructura general de un sistema de base de datos.

El gestor de base de datos.

Los usuarios de la base de datos.

El administrador de la base de datos.

El sistema de comunicación entre los distintos componentes.

Arquitectura cliente/servidor.

Componentes de aplicaciones.

Funciones de componentes.

Equipos y Materiales:

Computadora con microprocesadores core 2 Duo o de mayor capacidad. Sistema operativo Windows y la aplicación de Wampserver. Acceso a internet.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 7

Page 8: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

OPERACIÓN 1: DEFINIR UNA BASE DE DATOS.

Instalación de Wampserver. (Instalar Servidor Web – Base de Datos MYSQL – PHP.)

1. Haga doble clic en el archivo ejecutable del programa Wampserver y

aparecerá la ventana de bienvenida para la instalación detallando cada uno de los componentes con los cuales cuenta la aplicación.

2. Clic en botón Siguiente. (Next). 3. Activar la opción de aceptar el contra de licencia. 4. Haga clic en el botón Siguiente (Next).

5. Seleccionar la ubicación donde deseo alojar los archivos de instalación del

programa, por defecto siempre se coloca dentro de la unidad C: 6. Haga clic en el botón Siguiente (Next). 7. Activar las opciones para crear un acceso en el escritorio de la aplicación. 8. Haga clic en el botón Siguiente (Next). 9. Elegir el botón Install.

Tomar en consideración el programa wampserver ya que dicho programa cuenta con todos los requisitos para la instalación de una base de datos.

Aceptar el contrato de licencia.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 8

Page 9: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Iniciado el programa WanpServer.

1. Haga clic en el icono WanpServer que aparece en el área de notificaciones. (Barra de tarea.).

2. Luego selecciona la opción iniciar los servicios. Se dará cuenta que el icono de WanpServer que estaba en el área de notificación cambia a un color verde, color que identifica que está en funcionamiento lo servicios.

Problemas de iniciación de Mysql en PhpMyAdmin.

En algunas ocasiones puede suceder que la aplicación de WampServer no logre iniciar y esto puede ser gracias a que en el computador está instalado el SQL Server de Microsoft. Es por ello que es recomendable y deteniendo los servicios que tienen que ver con dicha aplicación. 1. Haga clic derecho en el icono Equipo. 2. Del menú contextual seleccionar la opción de que diga Administrar. 3. Haga doble clic en la opción Servicios y aplicaciones.

4. Ubicar los servicios relacionados con SQL SERVER. 5. Haga clic derecho en el servicio localizado y luego en la opción Detener.

Haga doble clic en Servicios y aplicaciones.

Haga doble clic en Servicios.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 9

Page 10: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Crear una base de datos y usuario en MYSQL. (Utilizar la herramienta phpMyAdmin).

1. Ingresar al navegador y en la barra de direcciones ingresar la siguiente dirección:

Al haber ingresado la siguiente dirección se podrá comprobar la instalación correcta del WanpServer.

2. En la barra de direcciones ingresar lo siguiente:

Correcta instalación del WampServer.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 10

Page 11: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

3. Seleccionar el idioma para la correcta administración de la aplicación. 4. Haga clic en la pestaña Base de Datos e ingresar el nombre de la base de

datos, para el ejemplo colocaremos el nombre SENATI. 5. Elegir el botón Crear.

Creando el usuario de la base de datos.

1. Seleccionar la base de datos. 2. Haga clic en el botón más y la opción privilegios. 3. Elegir la opción Agregar nuevo usuario.

4. Haga clic en el botón Continuar. 5. Confirmar la creación del usuario. 6. Seleccionar la base de datos.

Haga clic en la pestaña Base de Datos. Haga clic en el

botón Crear.

Ingresar nombre del nuevo usuario.

Activar la siguiente Opción.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 11

Page 12: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

7. Haga clic en el botón más y privilegios.

OPERACIÓN 2: OBJETIVOS DE LAS BASES DE DATOS.

Crear usuarios para MySQL desde phpMyAdmin. Una cuenta MySQL se define en términos de un nombre de usuario y el equipo o equipos desde los que el usuario puede conectar al servidor. La cuenta también tiene una contraseña. Hay varias diferencias entre cómo se usan los nombres de usuario y contraseñas en MySQL y cómo los usa el sistema operativo.

1. Haga clic en el icono WanpServer que aparece en el área de notificaciones. (Barra de tarea.).

2. Elija la opción phpMyAdmin. 3. Seleccionar la base de datos. 4. Haga clic en el botón más y la opción

privilegios. 5. Elegir la opción Agregar nuevo usuario.

El usuario root tiene todos los permisos activados tanto para su acceso como para su administración. Por mayor seguridad, se debe crear un usuario para utilizarlo en situaciones que se quiera realizar consultas, se podría decir y que tenga solamente permisos para acceder a los datos de la base de datos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 12

Page 13: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

6. A continuación debemos indicar la base de datos. Podemos crear una base de datos específica para dicho usuario, aunque si marcamos Ninguna, no asignamos ninguna restricción y tenemos acceso a todas.

7. Aquí se podrá seleccionar los privilegios del usuario en forma global, las opciones que se activen se aplicarán sobre la base de datos que se haya seleccionado para el usuario.

8. Haga clic en Agregar usuario.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 13

Page 14: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

USOS Y APLICACIONES DE LAS BASES DE DATOS.

Crear Tablas para MySQL desde phpMyAdmin.

Las bases de datos organizan la información en tablas, para ello se debe tener en claro tiene la apariencia de una hoja de calcula ya que esta estructurada por filas y columnas. Para lograr la máxima flexibilidad para una base de datos, la información tiene que estar organizada en tablas, para que no haya redundancias. En pocas palabras se podría decir que una tabla es un contenedor datos sobre un tema especifico, la tablas mas comunes dentro de una base de datos suele ser empleados o productos. Ahora cuando ya se esta dentro de una tabla se puede observar que cada registro de una tabla contiene información sobre un elemento, como un determinado empleado. Un registro se compone de campos, como un nombre, una dirección y un número celular. Los registros se suelen denominar también filas y los campos, columnas.

1. Haga clic en el icono WanpServer que aparece en el área de notificaciones. (Barra de tarea.).

2. Elija la opción phpMyAdmin. 3. Seleccionar la base de datos. 4. Haga clic en el botón Estructura, situado por

lo general hacia el lado izquierdo. 5. Ingresamos el nombre de la nueva tabla y

luego la cantidad de columnas. 6. Elegir el botón Continuar.

7. Luego se mostrara un imagen con la cual empezaremos a diseñar nuestra tabla.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 14

Page 15: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

8. Para la operación comenzaremos a diseñar las siguientes tablas teniendo en cuenta los campos mostrados en la imagen.

9. De la misma forma se creara la tabla Clientes.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 15

Page 16: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Ingresando datos a las tablas creadas. 1. Haga clic en el icono WanpServer que aparece en el área de

notificaciones. (Barra de tarea.). 2. Elija la opción phpMyAdmin. 3. Seleccione la base de datos y luego la tabla Clientes. 4. Haga clic en el botón Insertar, situado por lo general en la parte superior.

5. Haga clic en el botón Continuar. Se habrá agregado un registro. 6. Repetir el procedimiento hasta que cada una de las tablas tenga 10

registros.

Ingresar los datos correspondientes

Nombres de los Campos

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 16

Page 17: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

LOS USUARIOS DE LA BASE DE DATOS.

Crear usuario con privilegios limitados. 1. Haga clic en el icono WanpServer que aparece en el área de

notificaciones. (Barra de tarea.). 2. Elija la opción phpMyAdmin. 3. Seleccionar la base de datos ETI. 4. Haga clic en el botón más y la opción privilegios. 5. Elegir la opción Agregar nuevo usuario.

Ingresar como nombre soporte.

Ingresar como servidor localhost.

Haga clic en el botón Generar.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 17

Page 18: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

6. Haga clic en Agregar Usuario.

Completar la tabla de privilegios para el usuario en un SGBD como Mysql.

Privilegio Columna Contexto CREATE Create_priv

DROP Drop_priv GRANT OPTION Grant_priv REFERENCES References_priv

ALTER Alter_priv DELETE Delete_priv INDEX Index_priv

INSERT Insert_priv SELECT Select_priv UPDATE Update_priv

CREATE VIEW Create_view_priv SHOW VIEW Show_view_priv

ALTER ROUTINE Alter_routine_priv CREATE ROUTINE Create_routine_priv

EXECUTE Execute_priv FILE File_priv

CREATE TEMPORARY TABLES Create_tmp_table_priv LOCK TABLES Lock_tables_priv CREATE USER Create_user_priv

PROCESS Process_priv RELOAD Reload_priv

REPLICATION CLIENT Repl_client_priv REPLICATION SLAVE Repl_slave_priv SHOW DATABASES Show_db_priv

SHUTDOWN Shutdown_priv SUPER Super_priv

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 18

Page 19: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

FUNDAMENTO TEÓRICO:

DEFINIR UNA BASE DE DATOS.

La gestión de bases de datos ha evolucionado desde una aplicación informática especializada hasta una parte esencial de un entorno informático moderno y, como resultado, es por ello que la noción de trabajar con base de datos en la organización ha cambiado totalmente. Primero se debe empezar por comprender que una base de datos es un conjunto de información estructurada en registros y almacenada en un soporte electrónico legible desde un computador, en pocas palabras se podría decir que mediante un software vamos a organizar la información de la organización. Cada registro constituye una unidad autónoma de información que puede estar a su vez estructurada en diferentes campos o tipos de datos que se recogen en dicha base de datos. Por ejemplo, Los datos de un alumno en SENATI, un registro será la ficha completa de cada uno de los alumnos, ahora a ello hay que agregar que en cada registro se encontraran datos que guarda relación con el alumnos, como el nombre, la carrera, la dirección o el teléfono, cada uno de los cuáles constituye un campo. Pero como siempre es sabido todo tiene un inicio y desde un principio trabajar con base de datos no ha sido tal y cual lo conocemos ahora, toda ha evolucionando con el tiempo, pero en la actualidad todo es orientado ha una carrera en la que se solucionan problemas y carencias para mejorar la calidad, prestaciones, flexibilidad y seguridad de los sistemas de información, a la vez que la mayor exigencia y las nuevas necesidades de los usuarios plantea nuevos retos. Esta distinta perspectiva de la organización es la que conduce en muchos casos a desarrollar aplicaciones separadas con ficheros propios. En definitiva, todos ellos manejan información que pertenece a la organización, pero el desarrollo de los tratamientos de esos datos se realiza independientemente de los otros usuarios, de tal forma que cada aplicación es un objeto autónomo. Puestas así las cosas, es fácil que nos encontremos, en un sistema de información mecanizado basado en archivo convencional, con los siguientes problemas: Redundancia de datos. Dependencia de los programas respecto de los datos. Insuficientes medidas de seguridad en tres aspectos: control de accesos

simultáneos recuperación de ficheros, control de autorizaciones.

1. Redundancia de datos. Se puede iniciar explicando este problema habitual en el desarrollo de base de datos diciendo que el desarrollo de las aplicaciones no termina nunca, y las

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 19

Page 20: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

razones son simples, ya que las necesidades de las empresas son cambiantes y evolucionan con el tiempo, hay que tomar en cuenta que las organizaciones modernas y con visión de futura están siempre sujetas al cambio, en mejores términos se podría decir que siempre se están creando nuevas aplicaciones y modificando las existentes. En un sistema de ficheros tradicional, cada programa lleva su propia definición de datos y maneja sus propios ficheros, esto termina siendo una tarea muy laboriosa. Además, suelen ser varios los programadores que las realizan, bien en el mismo período de tiempo, o porque se van sustituyendo unos a otros. El resultado fue, habitualmente, que muchos ficheros utilizados por diversos programas almacenaban la misma información. Y no solo eso, sino que la mayoría de las veces no recibían el mismo nombre ni coincidían los tipos de datos. Tomando un ejemplo real se podría decir que un campo como Distrito (cadena de 20 caracteres de longitud) en un fichero, se llamaba localidad en otro y podía tener una longitud mayor que la primera. Esto sucede por la carencia de control sobre los datos, que en el accionar diario se van dando. Un área específica dentro de la organización que cumpla la función de supervisar todas las aplicaciones podría intentar mejorar este problema pero por otro lado estos sistemas no son los adecuados para la tarea por lo costoso que resultaría tal control. Aunque cada aplicación gestiona información propia, siempre hay datos comunes a varias aplicaciones. Al estar estos datos almacenados en ficheros independientes se produce redundancia dentro del sistema de información, lo que genera situaciones indeseables:

Inconsistencia Laboriosos

programas de actualización

Al tener almacenada la misma información en

varios sitios.

No es lo mismo modificar el valor de un dato una

sola vez que tantas veces como se halle. duplicado

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 20

Page 21: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

2. Dependencia de los programas respecto de los datos. En los sistemas tradicionales la descripción de los ficheros empleados por un programa, con información sobre formato de los registros, organización y modo de acceso, localización del fichero, etc., forma parte del código del programa. En pocas palabras esto indica que cualquier cambio que se pueda generar en alguno de estos tres aspectos, obliga a reescribir y recompilar todos los programas que utilicen el fichero modificado. Como ejemplo se podría decir que si se cambiara la organización de un fichero de secuencial ha indexado, o que se añadiera un campo a un registro para una aplicación nueva, en teoría, no tendría que afectar a las antiguas. Esto se da por la razón que existe poca flexibilidad del sistema de información frente a futuras variaciones en los requerimientos de información, sumado a ello un alto costo de mantenimiento. 3. Insuficientes medidas de seguridad: En el caso de un control de accesos simultáneos, esto hace referencia al

acceso simultáneo de dos o más programas a unos mismos datos puede conducir a errores en la información almacenada. De forma mas didáctica se podría decir que si dos procesos que deben acceder al mismo dato, que en ese instante vale 100, y lo hacen concurrentemente, de tal forma que el primero suma al valor leído 200 y el segundo 500, lo que finalmente deberíamos obtener un valor de 800 y almacenarlo, entonces supongamos que el primer proceso llega antes que el segundo. Las respectivas transacciones comprenden una operación de lectura del dato almacenado y la posterior escritura del dato incrementado. Cuando el primero ha terminado de leer (y obtiene el valor 100) y antes de actualizar el dato (sumándole 100), el segundo proceso también efectúa una operación de lectura recuperando el mismo valor. Debido a la secuencia de operaciones en el tiempo, la actualización del proceso 1 se pierde puesto que, inmediatamente después, el proceso 2 modifica el mismo dato pero con una suma errónea. Es como si el proceso 1 nunca se hubiera ejecutado.

Se habla de recuperación de ficheros, ello mantiene una relación con los procesos de actualización incompletos o erróneos, es por eso que hace falta devolver los ficheros a un estado anterior correcto a partir del cual se puedan repetir, ahora correctamente, los procesos de actualización rechazados. Tradicionalmente se recurre a copias de seguridad de los ficheros afectados.

Control de autorizaciones. Los usuario que acceden a la base de datos deben tener establecidos los niveles por los cuales van acceder a la información ya que no todos deben poder acceder a los mismos datos, por motivos de privacidad de la información, ni pueden acceder de la misma forma, por permisos a la hora de realizar recuperaciones, actualizaciones.

En resumen, las características de los sistemas basados en archivo convencional adolecen de los siguientes problemas al incrementarse las exigencias y el volumen de datos:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 21

Page 22: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Pobre control de los datos: los datos pueden estar replicados innecesariamente, llamarse de distinta forma y tener distintas definiciones en diferentes ficheros.

Capacidades de manipulación de los datos inadecuadas: las organizaciones de ficheros no son adecuadas para cierto tipo de operaciones que impliquen acceder a los datos para obtener información elaborada (o simplemente, en el mejor de los casos, que el criterio de búsqueda no está indexado).

Excesivo esfuerzo de programación: en entornos de este tipo, la programación de nuevas aplicaciones obligaba a construir de nuevo las definiciones de fichero y rutinas de acceso en la mayoría de los casos.

Podemos decir que esta situación es la que “obliga” a replantear la forma de gestionar grandes volúmenes de datos, buscando principalmente la independencia de las aplicaciones respecto de la representación física de los datos almacenados. Nacen entonces las técnicas de bases de datos, que se abordan en el siguiente tema.

OBJETIVOS DE LAS BASES DE DATOS.

El objetivo principal de las bases de datos es el de unificar los datos que se manejan y los programas o aplicaciones que cumplen esa misma función. Inicialmente los programas se codificaban junto con los datos, es decir, se diseñaban para la aplicación especifica que los iba a manejar, lo que desembocaba en una obediencia de los programas respecto a los datos, ya que la estructura de los ficheros va adjunta dentro del programa, y cualquier cambio en la estructura del fichero induce a cambiar y recompilar programas. Además, cada aplicación utiliza ficheros que pueden ser frecuentes a otras de la misma organización, por lo que se produce una REDUNDANCIA de la información, que induce a mayor ocupación de memoria, laboriosos programas de actualización y hoy en día las organizaciones no están dispuesto a trabajar de esa forma, si los datos no fueron bien actualizados en todos los programas. Con las bases de datos, se busca independizar los datos y las aplicaciones, es decir, mantenerlos en espacios diferentes. Los datos residen en memoria y los programas mediante un sistema gestor de bases de datos, manejan la información. El sistema gestor de bases de datos recibe la petición por parte de la aplicación para manipular los datos y es el encargado de rescatar la información de la base de datos y devolvérsela al programa que la solicitó. Cada programa requerirá de una cierta información de la base de datos, y podrá haber otros que utilicen los mismos datos, pero realmente residirán en el mismo espacio de almacenamiento y los programas no duplicarán esos datos, si no que trabajarán directamente sobre ellos concurrentemente. Aunque la estructura de la base de datos cambiara, si los datos modificados no afectan a un programa específico, éste no tendrá por qué ser alterado. Mediante estas técnicas de base de datos se pretende conseguir a través del Sistema Gestor

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 22

Page 23: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

de Bases de Datos (SGBD) que en la actualidad es lo más recomendable y lo más empleado ya que con ello se logra:

USOS Y APLICACIONES DE LAS BASES DE DATOS.

Toda organización moderna hoy en día trabaja con un Sistema de Gestión de Base de Datos es por ello que se puede notar sus aplicaciones en distintos rubros. Las siguientes son algunas de sus aplicaciones más representativas: Banca. Para información de los clientes, cuentas y préstamos, y

transacciones bancarias. Líneas aéreas. Para reservas e información de planificación. Las líneas

aéreas fueron de los primeros en usar las bases de datos de forma distribuida geográficamente (los terminales situados en todo el mundo accedían al sistema de bases de datos centralizado a través de las líneas telefónicas y otras redes de datos).

Universidades. Para información de los estudiantes, matrículas de las asignaturas y cursos.

Transacciones de tarjetas de crédito. Para compras con tarjeta de crédito y generación mensual de extractos.

Telecomunicaciones. Para guardar un registro de las llamadas realizadas, generación mensual de facturas, manteniendo el saldo de las tarjetas telefónicas de prepago y para almacenar información sobre las redes de comunicaciones.

Finanzas. Para almacenar información sobre grandes empresas, ventas y compras de documentos formales financieros, como bolsa y bonos.

Ventas. Para información de clientes, productos y compras. Producción. Para la gestión de la cadena de producción y para el

seguimiento de la producción de elementos en las factorías, inventarios de elementos en almacenes y pedidos de elementos.

Recursos humanos. Para información sobre los empleados, salarios, impuestos y beneficios, y para la generación de las nóminas. Como esta lista

Independencia de los Datos

• Cambios en la estructura de la Base de Datos no modifican las aplicaciones.

Integridad de los Datos • Los datos han de ser siempre correctos. Se establecen una serie de restricciones

Seguridad de los Datos. • Control de acceso a los datos para evitar manipulaciones de estos no deseadas.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 23

Page 24: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

ilustra, las bases de datos forman una parte esencial de casi todas las empresas actuales.

En los primeros días de la tendencia de trabajar con base de datos, muy pocas personas interactuaron directamente con los sistemas de bases de datos, aunque sin darse cuenta interactuaban de forma indirecta. Una forma sencilla de notar esto es la labor que cumple los cajeros automáticos, ya que estos permiten a los usuarios interactuar con las bases de datos. Las interfaces telefónicas con los computadores también permiten a los usuarios manejar directamente las bases de datos. Un llamador podía marcar un número y pulsar teclas del teléfono para introducir información o para seleccionar opciones alternativas, para determinar las horas de llegada o salida, por ejemplo, o para matricularse en un curso en SENATI. La revolución de Internet a finales de la década de 1990 aumentó significativamente el acceso directo del usuario a las bases de datos. Las empresas catequizaron muchas de sus interfaces telefónicas a las bases de datos en interfaces Web, y pusieron disponibles en línea muchos servicios. Por ejemplo, cuando se accede a una tienda de libros en línea y se busca un libro o una colección de música se está accediendo a datos almacenados en una base de datos. Cuando se solicita un pedido en línea, el pedido se almacena en una base de datos. Cuando se accede a un banco en un sitio Web y se consulta el estado de la cuenta y los movimientos, la información se recupera del sistema de bases de datos del banco. Cuando se accede a un sitio Web, la información personal puede ser recuperada de una base de datos para seleccionar los anuncios que se deberían mostrar. Más aún, los datos sobre los accesos Web pueden ser almacenados en una base de datos. Así, aunque las interfaces de datos ocultan detalles del acceso a las bases de datos, y la mayoría de la gente ni siquiera es consciente de que están interactuando con una base de datos, el acceso a las bases de datos forma una parte esencial de la vida de casi todas las personas actualmente.

ARQUITECTURA DE BASE DE DATOS.

La arquitectura de los sistemas de bases de datos está influenciada por el sistema informático subyacente en el que se ejecuta el sistema de bases de datos. Los sistemas de bases de datos pueden ser centralizados, o cliente-servidor, donde una computadora que hace de servidor hace trabajos de varias computadoras clientes. Los sistemas de bases de datos también pueden diseñarse para explotar las arquitecturas paralelas de computadoras. Las bases de datos distribuidas abarcan muchas máquinas separadas geográficamente.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 24

Page 25: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

La arquitectura de un sistema de bases de datos está influenciada en gran medida por el sistema informático subyacente en el que se ejecuta, en particular por aspectos de la arquitectura de la computadora como la conexión en red, el paralelismo y la distribución: La conexión en red de varias computadoras permite que algunas tareas se

ejecuten en un sistema servidor y que otras se ejecuten en los sistemas clientes. Esta división de trabajo ha conducido al desarrollo de sistemas de bases de datos cliente-servidor.

El procesamiento paralelo dentro de una computadora permite acelerar las actividades del sistema de base de datos, proporcionando a las transacciones unas respuestas más rápidas así como la capacidad de ejecutar más transacciones por segundo. Las consultas pueden procesarse de manera que se explote el paralelismo ofrecido por el sistema informático subyacente. La necesidad del procesamiento paralelo de consultas ha conducido al desarrollo de los sistemas de bases de datos paralelos.

La distribución de datos a través de las distintas sedes o departamentos de una organización permite que estos datos residan donde han sido generados o donde son más necesarios, pero continuar siendo accesibles desde otros lugares o departamentos diferentes. El hecho de guardar varias copias de la base de datos en diferentes sitios permite que puedan continuar las operaciones sobre la base de datos aunque algún sitio se vea afectado por algún desastre natural como una inundación, un incendio o un terremoto. Se han desarrollado los sistemas distribuidos de bases de datos para manejar datos distribuidos geográfica o administrativamente a lo largo de múltiples sistemas de bases de datos.

Los sistemas de bases de datos comenzando con los tradicionales sistemas centralizados y tratando, más adelante, los sistemas de bases de datos cliente-servidor, paralelos y distribuidos. Los sistemas de bases de datos centralizados son aquellos que se ejecutan en un único sistema informático sin interaccionar con ninguna otra computadora. Tales sistemas comprenden el rango desde los sistemas de bases de datos monousuario ejecutándose en computadoras personales hasta los sistemas de bases de datos de alto rendimiento ejecutándose en grandes sistemas. Por otro lado, los sistemas cliente-servidor tienen su funcionalidad dividida entre el sistema servidor y múltiples sistemas clientes.

Los Sistemas Centralizados.

En realidad una computadora actual esta compuesta de una o unas pocas unidades centrales de procesamiento y un número determinado de controladores para los dispositivos que se encuentran conectados a través de un bus común, el cual proporciona acceso a la memoria compartida. En pocas

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 25

Page 26: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

palabras se quiere decir de la CPU trabaja con las memorias caché locales donde se almacenan copias de ciertas partes de la memoria para acelerar el acceso a los datos. Cada controlador de dispositivo se encarga de un tipo específico de dispositivos, teniendo como dispositivo un disco duro, una tarjeta grafica, etc. Las CPU y los controladores de dispositivos pueden ejecutarse concurrentemente compitiendo así por el acceso a la memoria. La memoria caché reduce la disputa por el acceso a la memoria, ya que la CPU necesita acceder a la memoria compartida un número de veces menor. Se distinguen dos formas de utilizar las computadoras: como sistemas monousuario o multiusuario. En la primera categoría están las computadoras personales y las estaciones de trabajo. Un sistema monousuario típico es una unidad de sobremesa utilizada por una única persona que dispone de una sola CPU, de uno o dos discos fijos y que trabaja con un sistema operativo que sólo permite un único usuario. Por el contrario, un sistema multiusuario típico tiene más discos y más memoria, puede disponer de varias CPU y trabaja con un sistema operativo multiusuario. Se encarga de dar servicio a un gran número de usuarios que están conectados al sistema a través de terminales. Normalmente, los sistemas de bases de datos diseñados para funcionar sobre sistemas monousuario no suelen proporcionar muchas de las facilidades que ofrecen los sistemas multiusuario. En particular no tienen control de concurrencia, que no es necesario cuando solamente un usuario puede generar modificaciones. Las facilidades de recuperación en estos sistemas o no existen o son primitivas; por ejemplo, realizar una copia de seguridad de la base de datos antes de cualquier modificación. La mayoría de estos sistemas no admiten SQL y proporcionan un lenguaje de consulta muy simple que, en algunos casos, es una variante de QBE. En cambio, los sistemas de bases de datos diseñados para sistemas multiusuario soportan todas las características de las transacciones que se han estudiado antes. Aunque hoy en día las computadoras de propósito general tienen varios procesadores, utilizan paralelismo de grano grueso, disponiendo de unos pocos procesadores (normalmente dos o cuatro) que comparten la misma memoria principal. Las bases de datos que se ejecutan en tales máquinas habitualmente no intentan dividir una consulta simple entre los distintos procesadores, sino que ejecuta cada consulta en un único procesador posibilitando la concurrencia de varias consultas. Así, estos sistemas soportan una mayor productividad, es decir, permiten ejecutar un mayor número de transacciones por segundo, a pesar de que cada transacción individualmente no se ejecute más rápido. Las bases de datos diseñadas para las máquinas monoprocesador ya disponen de multitarea permitiendo que varios procesos se ejecuten a la vez en el mismo procesador, usando tiempo compartido, mientras que de cara al usuario parece que los procesos se están ejecutando en paralelo. De esta manera, desde un punto de vista lógico, las máquinas paralelas de grano grueso parecen ser idénticas a las máquinas monoprocesador, y pueden adaptarse fácilmente los sistemas de

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 26

Page 27: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

bases de datos diseñados para máquinas de tiempo compartido para que puedan ejecutarse sobre máquinas paralelas de grano grueso. Por el contrario, las máquinas paralelas de grano fino tienen un gran número de procesadores y los sistemas de bases de datos que se ejecutan sobre ellas intentan hacer paralelas las tareas simples (consultas, por ejemplo) que solicitan los usuarios.

El Sistemas cliente-servidor.

Como las computadoras personales son ahora más rápidas, más potentes y más baratas, los sistemas se han ido distanciando de la arquitectura centralizada. Los terminales conectados a un sistema central han sido suplantados por computadoras personales. De igual forma, la interfaz de usuario, que solía estar gestionada directamente por el sistema central, está pasando a ser gestionada, cada vez más, por las computadoras personales. Como consecuencia, los sistemas centralizados actúan hoy como sistemas servidores que satisfacen las peticiones generadas por los sistemas clientes. Esto quiere decir que la funcionalidad de una base de datos se puede dividir a grandes rasgos en dos partes: la parte visible al usuario y el sistema subyacente. El sistema subyacente gestiona el acceso a las estructuras, la evaluación y optimización de consultas, el control de concurrencia y la recuperación. La parte visible al usuario de un sistema de base de datos está formado por herramientas como formularios, diseñadores de informes y facilidades gráficas de interfaz de usuario. La interfaz entre la parte visible al usuario y el sistema subyacente puede ser SQL o una aplicación. Las normas como ODBC y JDBC, se desarrollaron para hacer de interfaz entre clientes y servidores. Cualquier cliente que utilice interfaces ODBC o JDBC puede conectarse a cualquier servidor que proporcione esta interfaz.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 27

Page 28: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Si hay algo por dejar claro es que en las primeras generaciones de los sistemas de bases de datos, la falta de tales normas hacía que fuera necesario que la interfaz visible y el sistema subyacente fueran proporcionados por el mismo distribuidor de software esto solo terminaría por beneficiar solo algunos nada mas. Ha tenido que pasar un tiempo considerado para comenzar a trabajar mediante interfaces estándar, ya que en la actualidad se da por hecho que los diferentes distribuidores proporcionan la interfaz visible al usuario y el servidor del sistema subyacente. Las herramientas de desarrollo de aplicaciones se utilizan para construir interfaces de usuario; proporcionan herramientas gráficas que se pueden utilizar para construir interfaces sin programar. Algunas de las herramientas de desarrollo de aplicaciones más famosas son PowerBuilder, Magic y Borland Delphi; Visual también se utiliza bastante en el desarrollo de aplicaciones. Además, ciertas aplicaciones como las hojas de cálculo y los paquetes de análisis estadístico utilizan la interfaz cliente-servidor directamente para acceder a los datos del servidor subyacente. De hecho, proporcionan interfaces visibles especiales para diferentes tareas. Un caso aparte se podría decir son aquellas aplicaciones de procesamiento de transacciones que trabajan con una interfaz de llamada a procedimientos remotos para transacciones con el fin de enlazar los clientes con el servidor. Estas llamadas aparecen para el programador como llamadas normales a procedimientos, pero todas las llamadas a procedimientos remotos hechas desde un cliente se engloban en una única transacción al servidor final. De este modo, si la transacción se cancela, el servidor puede deshacer los efectos de las llamadas a procedimientos remotos individuales.

Sistema subyacente Parte visible

Está formado por herramientas como formularios, diseñado-res de informes y facilidades gráficas.

Gestiona el acceso a las estructuras, la evalua-ción y optimización de consultas.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 28

Page 29: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

NIVELES DE ABSTRACCIÓN DE UNA BASE DE DATOS.

En la actualidad todas las organizaciones se preocupan por aquellos procedimientos que les permita recuperarlos datos y no solo ello, sino que al momento de hacerlo, tendría que hacerlo de forma eficiente, esta demanda por parte de las organizaciones termina por desarrollar un diseño de estructuras de datos complejas para la representación de los datos en la base de datos. Como muchos usuarios de sistemas de bases de datos no están familiarizados con computadores, los desarrolladores esconden la complejidad a los usuarios a través de varios niveles de abstracción para simplificar la interacción de los usuarios con el sistema: Entre los niveles de abstracción tenemos, el físico, el lógico, y por el ultimo el de vistas.

La figura arriba muestra la relación entre los tres niveles de abstracción. Una analogía con el concepto de tipos de datos en lenguajes de programación puede clarificar la distinción entre los niveles de abstracción. La mayoría de lenguajes de programación de alto nivel soportan la estructura de tipo registro.

Físico

•Describe cómo se almacenan realmente los datos. •Se describen en detalle las

estructuras de datos complejas de bajo nivel.

Lógico

•Describe qué datos se almacenan en la base de datos y qué relaciones existen entre esos datos. •Los usuarios del nivel lógico

no necesitan preocuparse de esta complejidad.

Vistas

•El nivel más alto de abstracción describe sólo parte de la base de datos completa. •El sistema puede

proporcionar muchas vistas para la misma base de datos.

NIVEL DE VISTAS Vista 1 Vista 2 Vista 3 Vista n

NIVEL LÓGICO

NIVEL FÍSICO

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 29

Page 30: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Por ejemplo, en Mysql, trabajando bajo consola se pueden declarar campos como sigue: mysql> CREATE TABLE Cliente ( Nombres VARCHAR(20), Apellidos VARCHAR(20), -> Distrito VARCHAR (20), Sexo CHAR(1), Nacimiento DATE);

En la línea de código mostrada en la parte superior se define una nueva tabla llamado Cliente con cinco campos. Cada campo tiene un nombre y un tipo asociado a él. Por ejemplo una empresa bancaria puede tener varios tipos de registros, incluyendo cuenta, con campos número-cuenta y saldo y empleado, con campos nombre-empleado y sueldo. En el caso del nivel físico, un registro cliente o empleado se puede describir como un bloque de posiciones almacenadas consecutivamente (por ejemplo, palabras o bytes). El compilador del lenguaje esconde este nivel de detalle a los programadores. Análogamente, el sistema de base de datos esconde muchos de los detalles de almacenamiento de nivel inferior a los programadores de bases de datos. En el nivel lógico cada registro de este tipo se describe mediante una definición de tipo, como se ha demostrado en el código líneas arriba, y se define la relación entre estos tipos de registros. Los programadores, cuando usan un lenguaje de programación, trabajan en este nivel de abstracción. De forma similar, los administradores de bases de datos trabajan habitualmente en este nivel de abstracción. Por último, en el nivel de vistas, los usuarios de computadores, mejor dicho los usuarios finales, ven un conjunto de programas de aplicación que esconden los detalles de los tipos de datos. Esto quiere decir en el nivel de vistas se definen varias vistas de una base de datos y los usuarios de la misma ven única y exclusivamente esas vistas, sin dejar de mencionar que los detalles lógicos no son apreciados por este nivel. Por ejemplo, en un caso real se podría decir que el trabajador de un banco, laborando en la sección de ventanilla, solo tiene la autorización dentro de la base de datos de la empresa, ha observar únicamente la parte de la base de datos que tiene información de cuentas de clientes; en ningún momento y bajo ninguna circunstancia podría acceder a la información de la planilla de la organización. Las bases de datos en las organizaciones van cambiando con el tiempo y ello es producto de su mismo trabajo, ya que muchas veces se van insertando registros o caso contrario se van eliminando. Pero la información que se mantiene en la misma valga decir, en la base de datos recibe el nombre de ejemplar de base de datos que no es lo mismo que el diseño completo, ya

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 30

Page 31: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

que este tiene el nombre de esquema de la base de datos, dicho esquema por lo general es difícil mente cambiado. Para un desarrollador seria como decir que un programa escrito en un lenguaje de programación seria el ejemplar, en el caso del esquema de base de datos esto corresponde a las declaraciones de variables en un programa. Cada variable tiene un valor particular en un instante de tiempo. Los valores de las variables en un programa en un instante de tiempo corresponde a un ejemplar de un esquema de bases de datos. Los sistemas de bases de datos tienen varios esquemas divididos de acuerdo a los niveles de abstracción que se han discutido. El esquema físico describe el diseño físico en el nivel físico, mientras que el esquema lógico describe el diseño de la base de datos en el nivel lógico. Una base de datos puede tener también varios esquemas en el nivel de vistas, a menudo denominados subesquemas, que describen diferentes vistas de la base de datos. De éstos, el esquema lógico es con mucho el más importante, en términos de su efecto en los programas de aplicación, ya que los programadores construyen las aplicaciones usando el esquema lógico. El esquema físico está oculto bajo el esquema lógico, y puede ser fácilmente cambiado usualmente sin afectar a los programas de aplicación. Los programas de aplicación se dice que muestran independencia física de datos si no dependen del esquema físico y, por tanto, no deben ser modificados si cambia el esquema físico. Se estudiarán los lenguajes para la descripción de los esquemas, después de introducir la noción de modelos de datos en el siguiente apartado.

INDEPENDENCIA LÓGICA Y FÍSICA DE LOS DATOS.

En este punto se toma mucha importancia la capacidad de modificar el esquema en un nivel del sistema sin tener que modificar el esquema del nivel inmediato superior, es por ello que se pueden definir dos tipos de independencia de datos:

Independencia lógica

•Es la capacidad de modificar el esquema conceptual sin tener que alterar los esquemas externos. •Se puede cambiar el esquema conceptual

para ampliar la base de datos. •Por ejemplo, agregar nuevos productos.

Independencia Física.

•Es la capacidad de modificar el esquema interno sin tener que alterar el esquema conceptual •Puede ser necesario cambiar ciertos ficheros

físicos con la finalidad de mejorar el rendimiento de las consulta o de actualización de datos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 31

Page 32: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

ESTRUCTURA GENERAL DE UN SISTEMA DE BASE DE DATOS.

Para ser capaces de entender la estructura de un SGBD, primero se debe partir con la idea de que todo esta dividido en módulos y a su vez estos módulos tienes la capacidad de controlar un parte del sistema, de forma mas técnica se podría decir que el sistema operativo proporciona únicamente los servicios más básicos y el sistema de la base de datos debe partir de esa base y controlar además el manejo correcto de los datos. Esto termina por incluir de forma más directa a la interfaz que tiene que ser proporcionada por el SGBD. En el caso de los componentes se puede encontrar como tal:

EL GESTOR DE BASE DE DATOS.

Un Sistema Gestor de Base de Datos (SGBD), es un sistema, mejor dicho un software que consiente brindar la definición de bases de datos; así como el nombramiento de las estructuras de datos necesarios para el almacenamiento y búsqueda de los datos, ya sea de forma interactiva o a través de un lenguaje

Gestor de archivos

•Gestiona la asignación de espacio en la memoria del disco y de las estructuras de datos usadas para representar información.

Manejador de base de

datos

•Sirve de interfaz entre los datos y los programas de aplicación

Procesador de consultas

•Traduce las proposiciones en lenguajes de consulta a instrucciones de bajo nivel

Compilador de DDL

•Convierte las proposiciones DDL en un conjunto de tablas que contienen metadatos

Archivo de datos. •En él se encuentran almacenados físicamente los datos de una organización

Diccionario de datos

•Contiene la información referente a la estructura de la base de datos.

Indices •Permiten un rápido acceso a registros que contienen valores específicos

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 32

Page 33: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

de programación. Un SGBD relacional es un modelo de datos que proporciona a los usuarios la acción de describir los datos que serán acopiados en la base de datos junto con un grupo de operaciones para luego ser administrado. Los SGBD relacionales terminan siendo un instrumento efectivo que permite a diferentes usuarios acceder a los datos al mismo tiempo. Entre los principales beneficios brindan las facilidades eficientes y un grupo de funciones con el objetivo de garantizar la confidencialidad, la calidad, la seguridad y la integridad de los datos que contienen, así como un acceso fácil y eficiente a los mismos.

LOS USUARIOS DE LA BASE DE DATOS.

Toda base de datos maneja muchos objetivos, pero entre ello hay uno que se podría decir es el primordial, ese objetivo es recuperar información y almacenar nueva información en la base de datos. Los usuarios que trabajan con una base de datos se pueden catalogar como usuarios de bases de datos o como administradores de bases de datos. Los Usuarios de bases de datos e interfaces de usuario Hay cuatro tipos diferentes de usuarios de un sistema de base de datos, diferenciados por la forma en que ellos esperan interactuar con el sistema. Se han diseñado diferentes tipos de interfaces de usuario para diferentes tipos de usuarios. Usuarios normales. Son usuarios no sofisticados que interactúan con el

sistema mediante la invocación de alguno de los programas de aplicación permanentes que se ha escrito previamente.

Programadores de aplicaciones. Son profesionales informáticos que escriben programas de aplicación. Los programadores de aplicaciones pueden elegir entre muchas herramientas para desarrollar interfaces de usuario. Las herramientas de desarrollo rápido de aplicaciones (DRA) son herramientas que permiten al programador de aplicaciones construir formularios e informes sin escribir un programa.

Los usuarios sofisticados interactúan con el sistema sin programas escritos. En su lugar, ellos forman sus consultas en un lenguaje de consulta de bases de datos. Cada una de estas consultas se envía al procesador de consultas, cuya función es transformar instrucciones a instrucciones que el gestor de almacenamiento entienda.

Usuarios especializados. Son usuarios sofisticados que escriben aplicaciones de bases de datos especializadas que no son adecuadas en el marco de procesamiento de datos tradicional. Entre estas aplicaciones están los sistemas de diseño asistido por computador, sistemas de bases de conocimientos y sistemas expertos, sistemas que almacenan los datos con tipos de datos complejos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 33

Page 34: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

EL ADMINISTRADOR DE LA BASE DE DATOS.

La organizaciones buscan centralizar su información para que a partir de ahí se inicie el proceso de ir otorgando información de acuerdo al nivel de usuario pero toda esa labor debe estar a cargo de un profesional capaz de cumplir las exigencia del mercado, dicho profesional recibe el nombre de administrador de la base de datos, cuya función se define en las siguientes actividades: Definición del esquema. El administrador de la base de datos crea el

esquema original de la base de datos escribiendo un conjunto de instrucciones de definición de datos.

Definición de la estructura y del método de acceso. Modificación del esquema y de la organización física. Los administrador de

la base de datos realizan cambios en el esquema y en la organización física para reflejar las necesidades cambiantes de la organización, o para alterar la organización física para mejorar el rendimiento.

Concesión de autorización para el acceso a los datos. La concesión de diferentes tipos de autorización permite al administrador de la base de datos determinar a qué partes de la base de datos puede acceder cada usuario.

Mantenimiento rutinario. Algunos ejemplos de actividades rutinarias de mantenimiento del administrado de la base de datos son: Copia de seguridad periódica de la base de datos, Asegurarse de que haya suficiente espacio libre en disco, Supervisión de los trabajos que se ejecuten en la base de datos.

EL SISTEMA DE COMUNICACIÓN ENTRE LOS DISTINTOS COMPONENTES.

Un sistema de base de datos esta compuesto por una Base de Datos que a su vez trabaja con datos de usuario esto mismo son los que introduce o necesita el usuario. También están los Metadatos, que no es más que conjunto de datos que representan a un dato, luego encontramos el Índice, que es la forma de acceder rápidamente a la base de datos. Sin olvidar que es el campo que controla todos los caracteres o datos y por ultimo tenemos a los Metadatos de aplicación que se suelen emplear para almacenar la estructura y el formato de formas, reportes, consultas de usuarios, y otros componentes de aplicación. Normalmente no se accede de forma directa a los metadatos de aplicación sino que se hace a través de herramientas proporcionadas.

Usuarios normales

Programadores de aplicaciones

Los usuarios sofisticados

Usuarios especializados

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 34

Page 35: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

En el caso de las Aplicaciones de Base de Datos, podemos hablar de las Formas que se utilizan para que se identifique cada fila de cada tabla y se denominan claves sustitutas, tenemos también las Consultas, las cuales se suelen emplear cuando los usuarios desean consultar los datos para contestar preguntas o para identificar problemas o situaciones particulares. Los reportes que es una presentación que tiene un formato de la información de una base de datos. Los menús que en su mayoría son usados para organizar los distintos componentes de la aplicación con el propósito de que el usuario final acceda a ellos con facilidad, mostrándole las opciones disponibles y ayudándole a seleccionar las acciones que desea realizar y por ultima tenemos a los Programas de aplicación que nos permite unir el resto de los componentes de manera coherente y permite realizar procesos y cálculos a la aplicación.

ARQUITECTURA CLIENTE/SERVIDOR.

La arquitectura en mención es la más empleada por las organizaciones y su aplicación mediante los servidores se pueden dividir en servidores de transacciones y servidores de datos. Los sistemas servidores de transacciones, también llamados sistemas

servidores de consultas, suministran una interfaz a través de la cual los usuarios pueden remitir peticiones para realizar una acción que el servidor ejecutará y cuyos resultados se devolverán al mismo usuario. Normalmente, las máquinas cliente envían las transacciones a los sistemas servidores, lugar en el que estas transacciones se ejecutan, y los resultados se devuelven a los clientes que son los encargados de visualizar los datos. Las peticiones se pueden especificar utilizando SQL o mediante la interfaz de una aplicación especializada.

Los sistemas servidores de datos permiten a los clientes interaccionar con los servidores realizando peticiones de lectura o modificación de datos en unidades tales como archivos o páginas. Por ejemplo, los servidores de archivos proporcionan una interfaz de sistema de archivos a través de la cual los clientes pueden crear, modificar, leer y borrar archivos. Los servidores de datos de los sistemas de bases de datos ofrecen muchas más funcionalidades; soportan unidades de datos de menor tamaño que los archivos, como páginas, tuplas u objetos. Proporcionan facilidades de indexación de los datos, así como facilidades de transacción de modo que los datos nunca se quedan en un estado inconsistente si falla una máquina cliente o un proceso.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 35

Page 36: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

De éstas, la arquitectura del servidor de transacciones es, con mucho, la arquitectura más ampliamente utilizada. Hoy en día, un sistema servidor de transacciones típico consiste en múltiples procesos accediendo a los datos en una memoria compartida. Los procesos que forman parte del sistema de bases de datos incluyen: Procesos servidor: son procesos que reciben consultas del usuario

(transacciones), las ejecutan, y devuelven los resultados. Las consultas deben enviarse a los procesos servidor desde la interfaz de usuario, o desde un proceso de usuario que ejecuta SQL incorporado, o a través de JDBC, ODBC o protocolos similares. Algunos sistemas de bases de datos utilizan un proceso distinto para cada sesión de usuario, y algunas utilizan un único proceso de la base de datos para todas las sesiones del usuario, pero con múltiples hebras de forma que se pueden ejecutar concurrentemente múltiples consultas. (Una hebra es como un proceso, pero varias hebras se ejecutan como parte del mismo proceso, y todas las hebras dentro de un proceso se ejecutan en el mismo espacio de memoria virtual. Dentro de un proceso se pueden ejecutar concurrentemente múltiples hebras.) Algunos sistemas de bases de datos utilizan una arquitectura híbrida, con procesos múltiples, cada uno de ellos con varias hebras.

Proceso gestor de bloqueos: este proceso implementa una función de gestión de bloqueos que incluye concesión de bloqueos, liberación de bloqueos y detección de interbloqueos.

Proceso escritor de bases de datos: hay uno o más procesos que vuelcan al disco los bloques de memoria intermedia modificados de forma continua.

Proceso escritor del registro: este proceso genera entradas del registro en el almacenamiento estable a partir de la memoria intermedia del registro. Los procesos servidor simplifican la adición de entradas a la memoria intermedia del registro en memoria compartida y, si es necesario forzar la escritura del registro, le piden al proceso escritor del registro que vuelque las entradas del registro.

Proceso punto de revisión: este proceso realiza periódicamente puntos de revisión.

Proceso monitor de proceso: este proceso observa otros procesos y, si cualquiera de ellos falla, realiza acciones de recuperación para el proceso, tales como cancelar cualquier transacción que estuviera ejecutando el proceso fallido, y reinicia el proceso.

La memoria compartida contiene todos los datos compartidos, como: Grupo de memorias intermedias. Tabla de bloqueos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 36

Page 37: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Memoria intermedia del registro, que contiene las entradas del registro que esperan a ser volcadas en el almacenamiento estable

Planes de consulta en caché, que se pueden reutilizar si se envía de nuevo la misma consulta.

Todos los procesos de la base de datos pueden acceder a los datos de la memoria compartida. Ya que múltiples procesos pueden leer o realizar actualizaciones en las estructuras de datos en memoria compartida, debe haber un mecanismo que asegure que sólo uno de ellos está modificando una estructura de datos en un momento dado, y que ningún proceso está leyendo una estructura de datos mientras otros la escriben. Tal exclusión mutua se puede implementar por medio de funciones del sistema operativo llamadas semáforos. Implementaciones alternativas, con menos sobrecargas, utilizan instrucciones atómicas especiales soportadas por el hardware de la computadora; un tipo de instrucción atómica comprueba una posición de la memoria y la establece a uno automáticamente. Se pueden encontrar más detalles sobre la exclusión mutua en cualquier libro de texto de un sistema operativo estándar. Los mecanismos de exclusión mutua también se utilizan para implementar pestillos. Para evitar la sobrecarga del paso de mensajes, en muchos sistemas de bases de datos los procesos servidor implementan el bloqueo actualizando directamente la tabla de bloqueos en lugar de enviar mensajes de solicitud de bloqueo a un proceso administrador de bloqueos. El procedimiento de solicitud de bloqueos ejecuta las acciones que realizaría el proceso administrador de bloqueos para procesar una solicitud de bloqueo. Dado que varios procesos servidor pueden acceder a la memoria

compartida, se asegurará la exclusión mutua en la tabla de bloqueos. Si no se puede obtener un bloqueo inmediatamente a causa de un conflicto

de bloqueos, el código de la solicitud de bloqueo sigue observando la tabla de bloqueos hasta percatarse de que se ha concedido el bloqueo. El código de liberación de bloqueo actualiza la tabla de bloqueos para indicar a qué proceso se le ha concedido el bloqueo. Para evitar repetidas comprobaciones de la tabla de bloqueos, el código de solicitud de bloqueo puede utilizar los semáforos del sistema operativo para esperar una notificación de una concesión de bloqueo. El código de liberación de bloqueo debe utilizar entonces el mecanismo de semáforos para notificar a las transacciones que están esperando que sus bloqueos hayan sido concedidos. Incluso si el sistema gestiona las solicitudes de bloqueo por medio de memoria compartida, aún utiliza el proceso administrador de bloqueos para la detección de interbloqueos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 37

Page 38: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Servidores de datos.

Los sistemas servidores de datos se emplean en redes de área local en las que se alcanza una alta velocidad de conexión entre los clientes y el servidor, las máquinas clientes son comparables al servidor en cuanto a poder de procesamiento y se ejecutan tareas de cómputo intensivo. En este entorno tiene sentido enviar los datos a las máquinas clientes, realizar allí todo el procesamiento (que puede durar un tiempo) y después enviar los datos de vuelta al servidor, esto más que todo para mejorar el servicio al cliente., esto permite que la arquitectura que se este empleando necesite que los clientes posean todas las funcionalidades del sistema subyacente. Las arquitecturas de los servidores de datos se han hecho particularmente populares en los sistemas de bases de datos orientadas a objetos. En esta arquitectura surgen algunos aspectos interesantes, ya que el coste en tiempo de comunicación entre el cliente y el servidor es alto comparado al de acceso a una memoria local (milisegundos frente a menos de 100 nanosegundos). Envío de páginas o envío de elementos. La unidad de comunicación de

datos puede ser realmente relativo ya que en muchas oportunidades puede ser algo insignificante pero en otros casos puede algo de gran peso De forma técnica se podría decir si la unidad de comunicación de datos es un único elemento, la sobrecarga por la transferencia de mensajes es alta comparada con el número de datos transmitidos. En vez de hacer esto, cuando se necesita un elemento, cobra sentido la idea de enviar junto a aquél otros elementos que probablemente vayan a ser utilizados en un futuro próximo. Se denomina preextracción a la acción de buscar y enviar elementos antes de que sea estrictamente necesario. Si varios elementos residen en una página, el envío de páginas puede considerarse como una forma de preextracción, ya que, cuando un proceso desee acceder a un único elemento de la página, se enviarán todos los elementos de esa página.

Bloqueo. La concesión del bloqueo de los elementos de datos que el servidor envía a los clientes la realiza habitualmente el propio servidor. Un inconveniente del envío de páginas es que los clientes pueden recibir bloqueos de grano grueso: el bloqueo de una página bloquea implícitamente a todos los elementos que residan en ella. El cliente adquiere implícitamente bloqueos sobre todos los elementos preextraídos incluso aunque no esté accediendo a algunos de ellos. De esta forma, puede detenerse innecesariamente el procesamiento de otros clientes que necesiten bloquear esos elementos. Se han propuesto algunas técnicas para la liberación de bloqueos en las que el servidor puede pedir a los clientes que le devuelvan el control sobre los bloqueos de los elementos preextraídos. Si el cliente no necesita el elemento preextraído puede devolver los bloqueos sobre ese elemento al servidor para que éstos puedan ser asignados a otros clientes.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 38

Page 39: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Caché de datos. Los datos que se envían al cliente en favor de una transacción se pueden alojar en una caché del cliente incluso una vez completada la transacción, si dispone de suficiente espacio de almacenamiento libre. Las transacciones sucesivas en el mismo cliente pueden hacer uso de los datos en caché. Sin embargo, se presenta el problema de la coherencia de caché: si una transacción encuentra los datos en la caché, debe asegurarse de que esos datos están al día, ya que, después de haber sido almacenados en la caché, pueden haber sido modificados por otro cliente. Así, debe establecerse una comunicación con el servidor para comprobar la validez de los datos y poder adquirir un bloqueo sobre ellos. Caché de bloqueos. Los bloqueos también pueden ser almacenados en la memoria caché del cliente si la utilización de los datos está prácticamente dividida entre los clientes, de manera que un cliente rara vez necesita datos que están siendo utilizados por otros clientes. Supóngase que se encuentran en la memoria caché tanto el elemento de datos que se busca como el bloqueo requerido para acceder al mismo. Entonces, el cliente puede acceder al elemento de datos sin necesidad de comunicar nada al servidor. No obstante, el servidor debe seguir el rastro de los bloqueos en caché; si un cliente solicita un bloqueo al servidor, éste debe comunicar a todos los bloqueos sobre el elemento de datos que se encuentren en las memorias caché de otros clientes. La tarea se vuelve más complicada cuando se tienen en cuenta los posibles fallos de la máquina. Esta técnica se diferencia de la liberación de bloqueos en que la caché de bloqueo se realiza a través de transacciones; de otra forma, las dos técnicas serían similares. Las referencias bibliográficas proporcionan más información sobre los sistemas cliente-servidor de bases de datos.

1. Mención cinco SGBD con sus respectivas versiones. 2. Realizar un esquema sobre la Arquitectura de la base de datos. 3. ¿Cómo trabaja la arquitectura Cliente / Servidor? 4. ¿Cómo interpretaría usted la Independencia lógica y física de los datos? 5. ¿Qué función debe cumplir un Administrador de Base de datos?

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 39

Page 40: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

TAREA 02: REALIZAR MODELOS DE ENTIDADES.

En esta tarea trataremos las siguientes operaciones:

Conceptos básicos: Entidad-Relación.

Equipos y Materiales:

Computadora con microprocesadores core 2 Duo o de mayor capacidad. Sistema operativo Windows y la aplicación de Wampserver. Acceso a internet.

OPERACIÓN: CONCEPTOS BÁSICOS: ENTIDAD-RELACIÓN.

1. Haga clic en el icono WanpServer que aparece en el área de notificaciones. (Barra de tarea.).

2. Elija la opción phpMyAdmin. 3. Seleccionar la base de datos. 4. Haga clic en el botón Estructura, situado por

lo general hacia el lado izquierdo. 5. Ingresamos el nombre de la nueva tabla, que

para el ejemplo será Pedidos y luego la cantidad de columnas.

6. Elegir el botón Continuar.

7. Luego se mostrara un imagen con la cual empezaremos a diseñar nuestra

tabla.

Para el correcto desarrollo de esta operación se recomienda tener en el SGBD las tablas creadas en la operación de la tarea anterior.

" Un fracaso es sólo una cicatriz, un mapa hacia la victoria...”……. ANONIMO.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 40

Page 41: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

8. Para la operación comenzaremos a diseñar las siguientes tablas teniendo en cuenta los campos mostrados en la imagen.

9. De la misma forma se creara la tabla detalle_de_pedido.

10. Crear la tabla productos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 41

Page 42: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Ingresando datos a las tablas creadas. 1. Haga clic en el icono WanpServer que aparece en el área de

notificaciones. (Barra de tarea.). 2. Elija la opción phpMyAdmin. 3. Seleccione la base de datos y luego la tabla Pedidos. 4. Haga clic en el botón Insertar, situado por lo general en la parte superior.

5. Ingresar los datos correspondientes a la tabla seleccionada.

6. Haga clic en el botón Continuar. Se habrá agregado un registro. 7. Repetir el procedimiento hasta que cada una de las tablas tenga 10

registros. 8. Seleccione la tabla detalles_de_pedido. 9. Haga clic en el botón Insertar, situado por lo general en la parte superior.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 42

Page 43: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

10. Ingresar los datos correspondientes a la tabla seleccionada. 11. Haga clic en el botón Continuar. Se habrá agregado un registro. 12. Repetir el procedimiento hasta que cada una de las tablas tenga 10

registros. 13. Seleccione la tabla productos. 14. Haga clic en el botón Insertar, situado por lo general en la parte superior.

15. Ingresar los datos correspondientes a la tabla seleccionada. 16. Haga clic en el botón Continuar. Se habrá agregado un registro.

Repetir el procedimiento hasta que cada una de las tablas tenga 10 registros. La vista Final de la Base de Datos debe quedar de la siguiente forma:

Nombre de la Base de Datos. Nombre del servidor.

Nombre de las tablas.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 43

Page 44: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Las Relaciones. Para trabajar de forma mas sencilla primero hay que saber manejar correctamente las relaciones de una base de datos ya que esto termina siendo algo fundamental, si este trabajo no es llevado a cabo de forma correcta, seguramente cuando la aplicación crezca llegara un momento que la base de datos deje de cumplir su principal objetivo que es la de organizar información. De forma mas sencilla se puede trabajar en su gran mayoría de casos con tres tipo de relaciones. La primera es la relación de uno a uno, esta relación existen por ejemplo en el caso de una persona y su DNI, una persona sólo puede tener un DNI, y un DNI sólo puede pertenecer a una persona. Para llevar a cabo esta relación en nuestra base de datos simplemente debemos crear nuestra tabla usuarios y nuestra tabla DNI, para hacer referencia al DNI de cada usuario nos basta con crear un campo en la tabla DNI el cuál actuará como clave foránea haciendo referencia al usuario a través de su id. La segunda es las relaciones de uno a muchos, un ejemplo didáctico se podría decir la relación entre usuarios y posts de un blog, un usuario puede tener muchos posts, pero un post sólo puede pertenecer a un usuario, sirve lo mismo que en la relación de uno a uno. La única diferencia entre estas dos relaciones en este aspecto, es que la clave foránea entre usuarios y dnis puede estar tanto en la tabla usuarios con un campo id_dni como en la tabla DNI con un campo id_usuario. En cambio, en una relación de uno a muchos la clave foránea siempre debe estar en la tabla que hace la relación de muchos, en este caso sería la tabla posts. La tercera es la relación de muchos a muchos, en este caso se podría decir que es un poco mas compleja, para el ejemplo podemos decir que la relación entre usuarios y películas (alquileres de un videoclub), un usuario puede alquilar muchas películas, y una película puede ser alquilada por muchos usuarios. De forma específica en esta relación se podría decir que no pueden ser llevadas a cabo con simples claves foráneas ya que necesitaríamos una por cada registro, cosa completamente inviable. Para este tipo de relaciones debemos crear una tercera tabla, conocida como tabla Detalle, que por convención su nombre suele ser usuarios_peliculas para nuestro caso, es decir, los nombres de las dos tablas separados por guiones. Estas tablas deben contener como mínimo dos campos, usuario_id y

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 44

Page 45: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

pelicula_id que harán referencia a las claves primarias de sus respectivas tablas.

1. Haga clic en el icono WanpServer que aparece en el área de notificaciones. (Barra de tarea.).

2. Elija la opción phpMyAdmin. 3. Seleccionar la base de datos. 4. Haga clic en el botón Estructura, situado por

lo general hacia el lado izquierdo. 5. Seleccionar la tabla Cliente y luego el botón

Estructura.

6. Ubicar el campo unico dentro de la tabla, en pocas palabras el campo que va permitir relacionar con otras tablas. En este caso especifico el cambo ID.

7. Haga clic en el boton Mas del mismo campo. 8. Elegir la opcion Agregar Clave Primaria. 9. Al mensaje, haga clic en boton Ok.

10. Haga clic en el botón Estructura, situado por lo general hacia el lado izquierdo.

11. Seleccionar la tabla Pedido y luego el botón Estructura. 12. Ubicar el campo unico dentro de la tabla, en pocas palabras el campo

que va permitir relacionar con otras tablas. En este caso especifico el cambo Id_de_pedido.

13. Haga clic en el boton Mas del mismo campo y luego elegir la opcion Agregar Clave Primaria.

14. Al mensaje, haga clic en boton Ok. 15. En la misma tabla encontrara un campo id de cliente, haga clic en la

opcion más de ese mismo campo. 16. Elegir la opcion Agregar indice.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 45

Page 46: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

17. Seleccionar la tabla Cliente y luego el botón Estructura. 18. En la parte inferior haga clic en botón Vista de relaciones.

19. Haga clic en Guardar.

Las definiciones de claves foráneas están sujetas a las siguientes condiciones: Ambas tablas deben ser InnoDB y no deben ser tablas temporales. En la tabla que hace referencia, debe haber un índice donde las columnas

de clave extranjera estén listadas en primer lugar, en el mismo orden. En la tabla referenciada, debe haber un índice donde las columnas

referenciadas se listen en primer lugar, en el mismo orden. No están soportados los índices prefijados en columnas de claves foráneas.

Una consecuencia de esto es que las columnas BLOB y TEXT no pueden incluirse en una clave foránea, porque los índices sobre dichas columnas siempre deben incluir una longitud prefijada.

Si se proporciona un CONSTRAINT símbolo, éste debe ser único en la base de datos. Si no se suministra, InnoDBcrea el nombre automáticamente.

InnoDB impugna cualquier operación INSERT o UPDATE que pretenda establecer un valor de clave foránea en una tabla hija sin un valor de clave candidata coincidente en la tabla padre. La acción que InnoDB trabaja en cualquier caso o mejor dicho con cualquier operación

Acción de Borrar

Acción de Actualizar.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 46

Page 47: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

es UPDATE o DELETE que intente actualizar o borrar un valor de clave candidata en la tabla padre que tenga filas coincidentes en la tabla hija depende de la acción referencial especificada utilizando las subcláusulas ON UPDATE y ON DETETE en la cláusula FOREIGN KEY. Cuando el usuario intenta borrar o actualizar una fila de una tabla padre, InnoDB soporta cinco acciones respecto a la acción a tomar: CASCADE: Borra o actualiza el registro en la tabla padre y automáticamente

borra o actualiza los registros coincidentes en la tabla hija. Tanto ON DELETE CASCADE como ON UPDATE CASCADE están disponibles en MySQL 5.0. Entre dos tablas, no se deberían definir varias cláusulas ON UPDATE CASCADE que actúen en la misma columna en la tabla padre o hija.

SET NULL: Borra o actualiza el registro en la tabla padre y establece en NULL la o las columnas de clave foránea en la tabla hija. Esto solamente es válido si las columnas de clave foránea no han sido definidas como NOT NULL. MySQL 5.0 soporta tanto ON DELETE SET NULL como ON UPDATE SET NULL.

NO ACTION: En el estándar ANSI SQL-92, NO ACTION significa ninguna acción en el sentido de que un intento de borrar o actualizar un valor de clave primaria no será permitido si en la tabla referenciada hay una valor de clave foránea relacionado. (Gruber, Mastering SQL, 2000:181). En MySQL 5.0, InnoDB rechaza la operación de eliminación o actualización en la tabla padre.

RESTRICT: Rechaza la operación de eliminación o actualización en la tabla padre. NO ACTION y RESTRICT son similares en tanto omiten la cláusula ON DELETE u ON UPDATE. (Algunos sistemas de bases de datos tienen verificaciones diferidas o retrasadas, una de las cuales es NO ACTION. En MySQL, las restricciones de claves foráneas se verifican inmediatamente, por eso, NO ACTION y RESTRICT son equivalentes).

SET DEFAULT: Esta acción es reconocida por el procesador de sentencias (parser), pero InnoDB rechaza definiciones de tablas que contengan ON DELETE SET DEFAULT u ON UPDATE SET DEFAULT.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 47

Page 48: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

20. Seleccionar la tabla Productos. y luego el botón Estructura.

21. Ubicar el campo unico dentro de la tabla, en pocas palabras el campo que va permitir relacionar con otras tablas. En este caso especifico el cambo ID.

22. Haga clic en el boton Mas del mismo campo. 23. Elegir la opcion Agregar Clave Primaria y al mensaje, haga clic en

boton Ok. 24. Seleccionar la tabla detalles_de_pedido y luego el botón Estructura. 25. Ubicar el campo unico dentro de la tabla que mantiene relacion con la

tabla productos, en pocas palabras el campo que va permitir relacionar con otras tablas. En este caso especifico el cambo Id_de_producto.

26. Haga clic en la opcion más de ese mismo campo. 27. Elegir la opcion Agregar indice. 28. Seleccionar la tabla Producto y luego el botón Estructura. 29. En la parte inferior haga clic en botón Vista de relaciones y defina la

relación. 30. Seleccionar la tabla Empleados. y luego el botón Estructura. 31. Ubicar el campo unico dentro de la tabla, en pocas palabras el campo

que va permitir relacionar con otras tablas. En este caso especifico el cambo ID.

32. Haga clic en el boton Mas del mismo campo. 33. Elegir la opcion Agregar Clave Primaria y al mensaje, haga clic en

boton Ok. 34. Seleccionar la tabla pedido y luego el botón Estructura. 35. En la parte inferior haga clic en botón Vista de relaciones y defina la

relación. 36. Ubicar la tabla y el campo, en pocas palabras el campo que va permitir

relacionarce. En este caso especifico el campo.

37. Haga clic en Guardar.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 48

Page 49: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Importando datos para Mysql de otras fuentes.

1. Presione las teclas Windows + R. Aparecerá la ventana ejecutar. 2. Digite el siguiente texto msaccess. Esto hará aperturar la aplicación de

Microsoft Access, siempre y cuando este instalado en el computador.

3. Haga clic en la opcion Empresa.

4. Elegir la base de datos Northwind 2007. 5. Ingresa un nuevo nombre para la base de datos que se va crear y haga

clic en el boton Crear. 6. Una vez cargada la base de datos, haga clic en el boton Habilitar

contenido. 7. Ordenar la tabla por objetos, para ello haga clic en el triangulo invertido del

explorador de objetos y seleccione la opcion Tipo de objetivos.

8. Seleccione la opcion Tablas y luego realice doble clic en la tabla clientes. 9. Haga clic en la ficha Datos externos y luego ubicar el cursos del mouse

Ingresar el siguiente texto.

Haga clic en esta opción.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 49

Page 50: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

en el grupo Datos externos.

10. Realice un clic en el icono de Excel, indicando que este sera el programa en cual se colocaran los datos que se estan exportando de la tabla clientes.

11. Haga clic en Aceptar y luego en Cerrar. 12. Dirijase a la ubicación donde exportor los datos y haga doble clic en el

icono de Excel, que por defecto debe tener el nombre de la tabla, en este caso Clientes.

13. Haga clic en la dicha Archivo y luego en la opcion Guardar Como. 14. Elegir la opcion Equipo.

15. Mantenga el nombre que por defecto tiene el archivo y haga clic en la

Ingresar la ubicación donde se desea

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 50

Page 51: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

opción Tipo. 16. Seleccione el Tipo Hoja de cálculo OpenDocument. 17. Haga clic en Guardar. 18. Ingresar al navegador y en la barra de direcciones ingresar la siguiente

dirección:

19. Haga clic en la pestaña Base de Datos e ingresar el nombre de la base de datos, para el ejemplo colocaremos el nombre BASIC.

20. Elegir el botón Crear.

21. Ingrese a la base de datos creada. Haga clic en el nombre de la BD ubicada a lado izquierdo.

22. Elegir el botón Importar.

23. Haga clic en el boton Seleccionar Archivo.

Haga clic en el botón Crear.

Haga clic en la pestaña Base

de Datos.

Ingresar el nombre BASIC.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 51

Page 52: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

24. Ubicar el archivo guardado hace unos instantes con el tipo Hoja de cálculo OpenDocument cuyo nombre es Clientes.

25. En la opcion formato seleccionar la opción Hoja de cálculo Open Document.

26. Activar la opción La primera línea del archivo contiene los nombres de

columna de la tabla.

27. Haga clic en botón Continuar y la tabla aparecera debajo del nombre de la base de datos, hacia el lado izquierdo.

28. Haga clic en la tabla clientes.

Exportando e Importando la tabla Empleados. 1. Ingresar a la base de datos de Microsoft Access Northwind 2007. 2. Ordenar la tabla por objetos, para ello haga clic en el triangulo invertido del

explorador de objetos y seleccione la opcion Tipo de objetivos. 3. Seleccione la opción Tablas y luego realice doble clic en la tabla

Empleados. 4. Haga clic en la ficha Datos externos y luego ubicar el cursos del mouse

en el grupo Datos externos. 5. Realice un clic en el icono de Excel, indicando que este sera el programa

en cual se colocaran los datos que se estan exportando de la tabla Empleados.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 52

Page 53: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

6. Ingresar la ubicación donde se desea guardar. 7. Haga clic en Aceptar y luego en Cerrar. 8. Dirijase a la ubicación donde exportor los datos y haga doble clic en el

icono de Excel, que por defecto debe tener el nombre de la tabla, en este caso Empleados.

9. Haga clic en la dicha Archivo y luego en la opcion Guardar Como. 10. Elegir la opcion Equipo. 11. Mantenga el nombre que por defecto tiene el archivo y haga clic en la

opción Tipo. 12. Seleccione el Tipo Hoja de cálculo OpenDocument. 13. Haga clic en Guardar. 14. Ingresar al navegador y en la barra de direcciones ingresar la siguiente

dirección:

15. Haga clic en la a Base de Datos cuyo nombre es BASIC. 16. Elegir el botón Importar.

17. Haga clic en el boton Seleccionar Archivo. 18. Ubicar el archivo guardado hace unos instantes con el tipo Hoja de

cálculo OpenDocument cuyo nombre es Empleados. 19. En la opcion formato seleccionar la opción Hoja de cálculo Open

Document. 20. Activar la opción La primera línea del archivo contiene los nombres

de columna de la tabla. 21. Haga clic en botón Continuar y la tabla aparecera debajo del nombre de

la base de datos, hacia el lado izquierdo. 22. Haga clic en la tabla Empleados.

Exportando e Importando la tabla Pedidos. 1. Ingresar a la base de datos de Microsoft Access Northwind 2007. 2. Ordenar la tabla por objetos, para ello haga clic en el triangulo invertido del

explorador de objetos y seleccione la opcion Tipo de objetivos. 3. Seleccione la opcion Tablas y luego realice doble clic en la tabla Pedidos. 4. Haga clic en la ficha Datos externos y luego ubicar el cursos del mouse

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 53

Page 54: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

en el grupo Datos externos. 5. Realice un clic en el icono de Excel, indicando que este sera el programa

en cual se colocaran los datos que se estan exportando de la tabla Pedidos.

6. Ingresar la ubicación donde se desea guardar. 7. Haga clic en Aceptar y luego en Cerrar. 8. Dirijase a la ubicación donde exportor los datos y haga doble clic en el

icono de Excel, que por defecto debe tener el nombre de la tabla, en este caso Pedidos.

9. Haga clic en la dicha Archivo y luego en la opcion Guardar Como. 10. Elegir la opcion Equipo. 11. Mantenga el nombre que por defecto tiene el archivo y haga clic en la

opción Tipo. 12. Seleccione el Tipo Hoja de cálculo OpenDocument. 13. Haga clic en Guardar. 14. Ingresar al navegador y en la barra de direcciones ingresar la siguiente

dirección:

15. Haga clic en la a Base de Datos cuyo nombre es BASIC. 16. Elegir el botón Importar.

17. Haga clic en el boton Seleccionar Archivo. 18. Ubicar el archivo guardado hace unos instantes con el tipo Hoja de

cálculo OpenDocument cuyo nombre es Pedidos. 19. En la opcion formato seleccionar la opción Hoja de cálculo Open

Document. 20. Activar la opción La primera línea del archivo contiene los nombres

de columna de la tabla. 21. Haga clic en botón Continuar y la tabla aparecera debajo del nombre de

la base de datos, hacia el lado izquierdo. 22. Haga clic en la tabla Pedidos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 54

Page 55: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Exportando e Importando la tabla Detalles de pedido.

1. Ingresar a la base de datos de Microsoft Access Northwind 2007. 2. Ordenar la tabla por objetos, para ello haga clic en el triangulo invertido del

explorador de objetos y seleccione la opcion Tipo de objetivos. 3. Seleccione la opcion Tablas y luego realice doble clic en la tabla Detalles

de pedido. 4. Haga clic en la ficha Datos externos y luego ubicar el cursos del mouse

en el grupo Datos externos. 5. Realice un clic en el icono de Excel, indicando que este sera el programa

en cual se colocaran los datos que se estan exportando de la tabla Detalles de pedido.

6. Ingresar la ubicación donde se desea guardar. 7. Haga clic en Aceptar y luego en Cerrar. 8. Diríjase a la ubicación donde exportor los datos y haga doble clic en el

icono de Excel, que por defecto debe tener el nombre de la tabla, en este caso Detalles de pedido.

9. Haga clic en la dicha Archivo y luego en la opcion Guardar Como. 10. Elegir la opción Equipo. 11. Mantenga el nombre que por defecto tiene el archivo y haga clic en la

opción Tipo. 12. Seleccione el Tipo Hoja de cálculo OpenDocument. 13. Haga clic en Guardar. 14. Ingresar al navegador y en la barra de direcciones ingresar la siguiente

dirección:

15. Haga clic en la a Base de Datos cuyo nombre es Basic. 16. Elegir el botón Importar.

17. Haga clic en el boton Seleccionar Archivo. 18. Ubicar el archivo guardado hace unos instantes con el tipo Hoja de

cálculo OpenDocument cuyo nombre es Pedidos. 19. En la opcion formato seleccionar la opción Hoja de cálculo Open

Document. 20. Activar la opción La primera línea del archivo contiene los nombres

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 55

Page 56: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

de columna de la tabla. 21. Haga clic en botón Continuar y la tabla aparecera debajo del nombre de

la base de datos, hacia el lado izquierdo. 22. Haga clic en la tabla Detalles de pedido.

Exportando e Importando la tabla Productos. 1. Ingresar a la base de datos de Microsoft Access Northwind 2007. 2. Ordenar la tabla por objetos, para ello haga clic en el triangulo invertido del

explorador de objetos y seleccione la opcion Tipo de objetivos. 3. Seleccione la opcion Tablas y luego realice doble clic en la tabla

Productos. 4. Haga clic en la ficha Datos externos y luego ubicar el cursos del mouse

en el grupo Datos externos. 5. Realice un clic en el icono de Excel, indicando que este sera el programa

en cual se colocaran los datos que se estan exportando de la tabla Productos.

6. Ingresar la ubicación donde se desea guardar. 7. Haga clic en Aceptar y luego en Cerrar. 8. Dirijase a la ubicación donde exportor los datos y haga doble clic en el

icono de Excel, que por defecto debe tener el nombre de la tabla, en este caso Productos.

9. Haga clic en la dicha Archivo y luego en la opcion Guardar Como. 10. Elegir la opcion Equipo. 11. Mantenga el nombre que por defecto tiene el archivo y haga clic en la

opción Tipo. 12. Seleccione el Tipo Hoja de cálculo OpenDocument. 13. Haga clic en Guardar. 14. Ingresar al navegador y en la barra de direcciones ingresar la siguiente

dirección:

15. Haga clic en la a Base de Datos cuyo nombre es Basic. 16. Elegir el botón Importar.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 56

Page 57: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

17. Haga clic en el boton Seleccionar Archivo. 18. Ubicar el archivo guardado hace unos instantes con el tipo Hoja de

cálculo OpenDocument cuyo nombre es Productos. 19. En la opcion formato seleccionar la opción Hoja de cálculo Open

Document. 20. Activar la opción La primera línea del archivo contiene los nombres

de columna de la tabla. 21. Haga clic en botón Continuar y la tabla aparecera debajo del nombre de

la base de datos, hacia el lado izquierdo. 22. Haga clic en la tabla Productos.

Exportando e Importando la tabla Proveedores. 1. Ingresar a la base de datos de Microsoft Access Northwind 2007. 2. Ordenar la tabla por objetos, para ello haga clic en el triangulo invertido del

explorador de objetos y seleccione la opcion Tipo de objetivos. 3. Seleccione la opcion Tablas y luego realice doble clic en la tabla

Proveedores.. 4. Haga clic en la ficha Datos externos y luego ubicar el cursos del mouse

en el grupo Datos externos. 5. Realice un clic en el icono de Excel, indicando que este sera el programa

en cual se colocaran los datos que se estan exportando de la tabla Proveedores..

6. Ingresar la ubicación donde se desea guardar. 7. Haga clic en Aceptar y luego en Cerrar. 8. Dirijase a la ubicación donde exportor los datos y haga doble clic en el

icono de Excel, que por defecto debe tener el nombre de la tabla, en este caso Proveedores..

9. Haga clic en la dicha Archivo y luego en la opcion Guardar Como. 10. Elegir la opcion Equipo. 11. Mantenga el nombre que por defecto tiene el archivo y haga clic en la

opción Tipo. 12. Seleccione el Tipo Hoja de cálculo OpenDocument. 13. Haga clic en Guardar. 14. Ingresar al navegador y en la barra de direcciones ingresar la siguiente

dirección:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 57

Page 58: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

15. Haga clic en la a Base de Datos cuyo nombre es Basic. 16. Elegir el botón Importar.

17. Haga clic en el boton Seleccionar Archivo. 18. Ubicar el archivo guardado hace unos instantes con el tipo Hoja de

cálculo OpenDocument cuyo nombre es Proveedores.. 19. En la opcion formato seleccionar la opción Hoja de cálculo Open

Document. 20. Activar la opción La primera línea del archivo contiene los nombres

de columna de la tabla. 21. Haga clic en botón Continuar y la tabla aparecera debajo del nombre de

la base de datos, hacia el lado izquierdo. 22. Haga clic en la tabla Proveedores.

Exportando e Importando la tabla Facturas. 1. Ingresar a la base de datos de Microsoft Access Northwind 2007. 2. Ordenar la tabla por objetos, para ello haga clic en el triangulo invertido del

explorador de objetos y seleccione la opcion Tipo de objetivos. 3. Seleccione la opcion Tablas y luego realice doble clic en la tabla

Facturas. 4. Haga clic en la ficha Datos externos y luego ubicar el cursos del mouse

en el grupo Datos externos. 5. Realice un clic en el icono de Excel, indicando que este sera el programa

en cual se colocaran los datos que se estan exportando de la tabla Facturas.

6. Ingresar la ubicación donde se desea guardar. 7. Haga clic en Aceptar y luego en Cerrar. 8. Dirijase a la ubicación donde exportor los datos y haga doble clic en el

icono de Excel, que por defecto debe tener el nombre de la tabla, en este caso Facturas.

9. Haga clic en la dicha Archivo y luego en la opcion Guardar Como. 10. Elegir la opcion Equipo. 11. Mantenga el nombre que por defecto tiene el archivo y haga clic en la

opción Tipo. 12. Seleccione el Tipo Hoja de cálculo OpenDocument. 13. Haga clic en Guardar.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 58

Page 59: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

14. Ingresar al navegador y en la barra de direcciones ingresar la siguiente dirección:

15. Haga clic en la a Base de Datos cuyo nombre es Basic. 16. Elegir el botón Importar.

17. Haga clic en el boton Seleccionar Archivo. 18. Ubicar el archivo guardado hace unos instantes con el tipo Hoja de

cálculo OpenDocument cuyo nombre es Facturas. 19. En la opcion formato seleccionar la opción Hoja de cálculo Open

Document.

20. Activar la opción La primera línea del archivo contiene los nombres de columna de la tabla.

21. Haga clic en botón Continuar y la tabla aparecera debajo del nombre de la base de datos, hacia el lado izquierdo. Haga clic en la tabla Facturas.

FUNDAMENTO TEÓRICO:

CONCEPTOS BÁSICOS: ENTIDAD-RELACIÓN.

EL modelo de datos entidad-relación conocido por las siglas E-R está basado en una percepción del mundo real, esto quiere decir que trabaja en función de objetos básicos llamados entidades y la relación que puede existir entre dichos objetos. Se logra implementar el modelo E-R mas que todo para poder facilitar el diseño de las base de datos ya que antes de ello dicho trabajo es muy complejo, ya que con dicho modelo se puede especificar los esquema de la organización que representa la estructura lógica completa de una base de

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 59

Page 60: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

datos. En pocas palabras se puede decir que el modelo E-R es extremadamente útil para hacer corresponder los significados e interacciones de las empresas del mundo real con un esquema conceptual. Es por esa importancia que se le da, que la gran mayoría de herramientas para el desarrollo de base de datos se basan en el concepto de E-R. La forma de poder captar este modelo de forma más eficiente es partiendo de la idea de que dentro del modelo E-R se trabaja con un conjunto de entidades, conjuntos de relaciones y atributos.

Conjuntos de entidades. Hay que partir de la idea que una entidad es una «cosa» u «objeto» en el mundo real que se puede diferenciar de todos los demás objetos. De forma más sencilla, por ejemplo, cada persona en un desarrollo es una entidad. Una entidad tiene un conjunto de propiedades, y los valores para algún conjunto de propiedades pueden identificar una entidad de forma unívoca. Por ejemplo, el D.N.I. 43380705 identifica de forma única a una persona en particular en el país. Pero de otra forma también se podría utilizar el ejemplo de un préstamos bancarios como entidades, y un número de préstamo P-15 en la sucursal de una agencia bancaria a identifica unívocamente una entidad de préstamo. Una entidad puede ser concreta, como una persona o un libro, o puede ser abstracta, como un préstamo, unas vacaciones o un concepto. Un conjunto de entidades es un conjunto de entidades del mismo tipo que comparten las mismas propiedades, o atributos. El conjunto de todas las personas que son clientes en una entidad bancaria dado, por ejemplo, se pueden definir como el conjunto de entidades cliente, o siguiendo con el ejemplo anterior, el conjunto

E-R

conjunto de

entidades

atributos conjuntos

de relaciones

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 60

Page 61: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

de entidades préstamo podría representar el conjunto de todos los préstamos concedidos por un banco particular. Las entidades individuales que constituyen un conjunto se llaman la extensión del conjunto de entidades. Así, todos los clientes de un banco son la extensión del conjunto de entidades cliente. Los conjuntos de entidades no son necesariamente disjuntos. Por ejemplo, es posible definir el conjunto de entidades de todos los empleados de un banco (empleado) y el conjunto de entidades de todos los clientes del banco (cliente). Una entidad persona puede ser una entidad empleado, una entidad cliente, ambas cosas, o ninguna. Una entidad se simboliza mediante un conjunto de atributos. Los atributos describen propiedades que posee cada miembro de un conjunto de entidades. La designación de un atributo para un conjunto de entidades expresa que la base de datos almacena información similar concerniente a cada entidad del conjunto de entidades; sin embargo, cada entidad puede tener su propio valor para cada atributo. Posibles atributos del conjunto de entidades cliente son id-cliente, nombre-cliente, calle-cliente y ciudad-cliente. En pocas palabras y llevando el ejemplo ya a un SGBD un entidad termina siendo una tabla. Atributos. En el caso de los atributos se podría decir que trabaja con un conjunto de valores permitidos, esto quiere decir que el atributo es lo que se va encontrar dentro de las tablas, en un ejemplo. El dominio del atributo nombrecliente podría ser el conjunto de todas las cadenas de texto de una cierta longitud. Ahora los atributos también se clasifican por tipos. Tenemos los atributos simples y compuestos. En la mayoría de los casos los atributos son simples; es decir, no están divididos en subpartes. Los atributos compuestos, en cambio, se pueden dividir en subpartes (es decir, en otros atributos). Por ejemplo, nombre-cliente podría estar estructurado como un atributo compuesto consistente en nombre, primer-apellido y segundo-apellido. Y esto termina siendo útil porque ayudan a agrupar los atributos relacionados, haciendo los modelos más claros. Algunos diseñadores de base de datos suelen mencionarlo como un atributo que posee jerarquía. Por otro lado encontramos los atributos monovalorados y multivalorados, este tipo de atributo trabaja de la siguiente manera, por ejemplo, el atributo número-préstamo para una entidad préstamo específico, referencia a un único número de préstamo. Tales atributos se llaman monovalorados. Puede haber ocasiones en las que un atributo tiene un conjunto de valores para una entidad específica. Considérese un conjunto de entidades empleado con el atributo número-teléfono. Cualquier empleado particular puede tener cero, uno o más números de teléfono. Este tipo de atributo se llama multivalorado. En ellos, se pueden colocar apropiadamente límites inferior y superior en el número de valores en el atributo multivalorado. Como otro ejemplo, un atributo nombresubordinado del conjunto de entidades empleadosería multivalorado, ya que un empleado en

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 61

Page 62: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

concreto podría tener cero, uno o más subordinados. Por ejemplo, un banco puede limitar el número de números de teléfono almacenados para un único cliente a dos. Colocando límites en este caso, se expresa que el atributo número-teléfono del conjunto de entidades cliente puede tener entre cero y dos valores. Y por ultimo se tiene los atributos derivados. El valor para este tipo de atributo se puede derivar de los valores de otros atributos o entidades relacionados. Por ejemplo, sea el conjunto de entidades cliente que tiene un atributo préstamos que representan cuántos préstamos tiene un cliente en el banco.

Conjuntos de relaciones.

Una relación es una asociación entre diferentes entidades. Por ejemplo, se puede definir una relación que asocie al cliente Meza con el préstamo P-00086. Esta relación especifica que Meza es un cliente con el préstamo número P-00086. Un conjunto de relaciones es un conjunto de relaciones del mismo tipo. Formalmente es una relación matemática con n > = 2 de conjuntos de entidades (posiblemente no distintos). Si E1, E2,…, En son conjuntos de entidades, entonces un conjunto de relaciones R es un subconjunto de: {(e1, e2,…, en) | e1 ∈ E1, e2 ∈ E2,…,en ∈ En} donde (e1,e2,…en) es una relación. Se define el conjunto de relaciones prestatario para reconocer la asociación entre clientes y préstamos bancarios que los clientes tengan. Como otro ejemplo, considérense los dos conjuntos de entidades préstamo y sucursal. Se puede definir el conjunto de relaciones sucursal-préstamo para denotar la asociación entre un préstamo y la sucursal en que se mantiene ese préstamo. La asociación entre conjuntos de entidades se conoce como participación; es decir, los conjuntos de entidades E1, E2,…, En participan en el conjunto de relaciones R. Un ejemplar de relación en un esquema E-R representa que existe una asociación entre las entidades denominadas en la empresa del mundo real que se modela. Una relación puede también tener atributos descriptivos. Considérese un conjunto de relaciones, por ejemplo conjuntos de entidades cliente y cuenta. Se podría asociar el atributo fecha-acceso a esta relación para especificar la fecha más reciente en que un cliente accedió a una cuenta. La relación impositor entre las entidades correspondientes al cliente García y la cuenta C-217 se describen mediante {(fecha-acceso, 23 mayo 2014)}, lo que significa que la

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 62

Page 63: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

última vez que García accedió a la cuenta C-217 fue el 23 de mayo de 2014. Sin embargo, puede haber más de un conjunto de relaciones que involucren los mismos conjuntos de entidades. En nuestro ejemplo los conjuntos de entidades cliente y préstamo participan en el conjunto de relaciones prestatario. Además, supóngase que cada préstamo deba tener otro cliente que sirva como avalista para el préstamo. Entonces los conjuntos de entidades cliente y préstamo pueden participar en otro conjunto de relaciones: avalista.

1. Realizar un cuadro descriptivo de los tipos de datos en Mysql.

Nombre Descripción

2. Realizar un esquema sobre las relaciones en una Base de datos.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 63

Page 64: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

TAREA 03: ENTENDER EL FUNCIONAMIENTO DE UN MODELO RELACIONAL.

En esta tarea trataremos las siguientes operaciones:

El modelo relacional.

Algebra relacional.

Estructura del modelo relacional.

Definición de relación

Propiedades de una relación.

Equipos y Materiales:

Computadora con microprocesadores core 2 Duo ó de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación.

OPERACIÓN: EL MODELO RELACIONAL.

Agregando clave primaria a la tabla Clientes. 1. Haga clic en el icono WanpServer que aparece en el área de

notificaciones. (Barra de tarea.). 2. Elija la opción phpMyAdmin. 3. Seleccionar la base de datos basic. 4. Haga clic en el botón Estructura, situado por lo general hacia el lado

izquierdo. 5. Seleccionar la tabla Clientes y luego el botón Estructura.

Para realizar las operaciones de la tarea 3, el aprendiz tiene que haber desarrollado de forma correcta la tarea 2.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 64

Page 65: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

6. Ubicar el campo unico dentro de la tabla, en pocas palabras el campo que va permitir relacionar con otras tablas. En este caso especifico el cambo ID.

7. Elegir la opcion Primaria. 8. Al mensaje, haga clic en boton Ok.

Agregando clave primaria a la tabla Empleados. 1. Seleccionar la base de datos basic. 2. Haga clic en el botón Estructura, situado por lo general hacia el lado

izquierdo. 3. Seleccionar la tabla empleados y luego el botón Estructura.

Haga clic en botón Ok

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 65

Page 66: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

4. Ubicar el campo unico dentro de la tabla, en pocas palabras el campo que va permitir relacionar con otras tablas. En este caso especifico el cambo ID.

5. Elegir la opcion Primaria. 6. Al mensaje, haga clic en boton Ok.

Agregando clave primaria a la tabla Pedidos. 1. Seleccionar la base de datos basic. 2. Haga clic en el botón Estructura, situado por lo general hacia el lado

izquierdo. 3. Seleccionar la tabla pedidos y luego el botón Estructura.

4. Ubicar el campo unico dentro de la tabla, en pocas palabras el campo que

va permitir relacionar con otras tablas. En este caso especifico el cambo Id de pedido.

5. Elegir la opcion Primaria. 6. Al mensaje, haga clic en boton Ok.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 66

Page 67: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Agregando clave primaria a la tabla productos. 1. Seleccionar la base de datos basic. 2. Haga clic en el botón Estructura, situado por lo general hacia el lado

izquierdo. 3. Seleccionar la tabla productos y luego el botón Estructura.

4. Ubicar el campo unico dentro de la tabla, en pocas palabras el campo que va permitir relacionar con otras tablas. En este caso especifico el cambo Id.

5. Elegir la opcion Primaria. 6. Al mensaje, haga clic en boton Ok.

Agregando clave primaria a la tabla proveedores. 1. Seleccionar la base de datos basic. 2. Haga clic en el botón Estructura, situado por lo general hacia el lado

izquierdo. 3. Seleccionar la tabla proveedores y luego el botón Estructura.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 67

Page 68: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

4. Ubicar el campo unico dentro de la tabla, en pocas palabras el campo que va permitir relacionar con otras tablas. En este caso especifico el cambo Id.

5. Elegir la opcion Primaria. 6. Al mensaje, haga clic en boton Ok.

Agregando clave primaria a la tabla detalles_de_pedido. 1. Seleccionar la base de datos basic. 2. Haga clic en el botón Estructura, situado por lo general hacia el lado

izquierdo. 3. Seleccionar la tabla detalles_de_pedido y luego el botón Estructura.

4. Ubicar el campo unico dentro de la tabla, en pocas palabras el campo que va permitir relacionar con otras tablas. En este caso especifico el cambo Id.

5. Elegir la opcion Primaria. 6. Al mensaje, haga clic en boton Ok.

Agregando clave primaria a la tabla factura. 1. Seleccionar la base de datos basic. 2. Haga clic en el botón Estructura, situado por lo general hacia el lado

izquierdo. 3. Seleccionar la tabla factura y luego el botón Estructura.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 68

Page 69: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

4. Ubicar el campo unico dentro de la tabla, en pocas palabras el campo que va permitir relacionar con otras tablas. En este caso especifico el cambo Id de factura.

5. Elegir la opcion Primaria. 6. Al mensaje, haga clic en boton Ok.

MySQL WorkBench. MySQL Workbench es una aplicación para el diseño y documentación de bases de datos para ser empleado en el gestor de base de datos de MySql

Descargando la aplicación. 1. Ingresar a la siguiente dirección web, http://www.mysql.com/ 2. Haga clic en la pestaña Downloads.

3. Ubicar la sección MySql Community Edition y luego en la opción Community (GPL) Downloads.

4. Seleccionar la Opcion MySql Workbench y luego haga clic en la opción

Download. 5. Elegir la plataforma en la cual se va emplear la aplicación y clic en el botón

Dowload.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 69

Page 70: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

6. Ingresar los datos correspondientes para crear una cuenta en Oracle.

ESTRUCTURA DEL MODELO RELACIONAL.

Para la instalación de MySQL Workbench solo se requiere privilegios de administrador o de usuario. En el caso del usuario se puede dar si se está utilizando el archivo Zip ya que solo es un ejecutable por ende no requiere de privilegios de administrador. 1. Haga clic en la carpeta de la aplicación MySql Workbench 6.1 2. Localizar el archivo ejecutable y haga

doble clic en el.

Solo se puede descarga la aplicación si se tiene una cuenta en Oracle, caso contrario aparecerá la opción para registrarse.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 70

Page 71: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Conexión a Mysql. Para administrar el servidor MySQL, primero se debe crear una conexión MySQL. Estas conexiones por defecto aparece en la página de inicio MySQL Workbench, y la creación de una conexión MySQL es a menudo la primera acción realizado después de instalar MySQL Workbench. 1. Haga clic en el botón mas.

2. En la opción Connection Name ingrese el nuevo nombre para la conexión en este caso ETI.

3. Haga clic en Ok.

Tomar en cuenta la ficha de conexión MySQL con nombre "ETI", en ella se muestra el nombre de usuario, nombre de host.

Ingresar el nombre para la conexión.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 71

Page 72: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Creando Modelos. 1. Haga clic en la carpeta de la aplicación

MySql Workbench 6.1 2. Localizar el archivo ejecutable y haga

doble clic en él. 3. Haga clic en menú File y luego en la

opción New Model. 4. O caso contrario haga clic en el icono

mas ubicaco en la parte inferior en la seccion Models.

5. Confirmar el cambio en el panel Physical Schemas.

El nombre de esquema por defecto es "new_schema1"

Cambiar el nombre por Basic.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 72

Page 73: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Guardando el modelo creado. 1. Haga clic en menú File y luego en la opción Save Model. 2. Ingresar el nombre el nombre Basic para el modelo y haga clic en

Guardar. 3. Haga clic en el icono Home y se encontrara el modelo recien guardado.

Creando Tablas en el modelo Basics. 1. Haga clic en el modelo Basic. 2. Elegir la opción haciendo doble clic en Add Table del panel Physical

Schemas. 3. Ingresar los datos correspondientes para crear la siguientes Tabla. Primero

en la opcion Table Name ingrese el nombre cliente. 4. Activar la Opcion NN para las columnas de la tabla.

Nombre confirmado.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 73

Page 74: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

5. Elegir la opción haciendo doble clic en Add Table del panel Physical Schemas.

6. Ingresar los datos correspondientes para crear la siguientes Tabla. Primero en la opcion Table Name ingrese el nombre Empleados.

7. Activar la Opcion NN para las columnas de la tabla.

8. Elegir la opción haciendo doble clic en Add Table del panel Physical Schemas.

9. Ingresar los datos correspondientes para crear la siguientes Tabla. Primero en la opcion Table Name ingrese el nombre Pedidos.

10. Activar la Opcion NN para las columnas de la tabla.

Nombre de la Tabla

Tipo de Dato.

Ingresar las columnas

correspondientes

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 74

Page 75: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

11. Al terminar la tarea se debe mostrar de la siguiente forma.

12. Para obtener una representación visual (diagrama EER) de este esquema, haga clic en el menú Model y luego en la opción Create Diagram from catalog Objects.

13. Haga clic en menú File y luego en la opción Save Model.

Crear un diagrama del esquema relacional. 1. Haga clic en la carpeta de la aplicación MySql Workbench 6.1

Tablas Creadas.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 75

Page 76: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

2. Localizar el archivo ejecutable y haga doble clic en el. 3. Una vez abierta la aplicación, se observara algo similar a la imagen:

4. Haga doble clic sobre el icono Add Diagram para poder crear un nuevo diagrama ER. Esto mostrara al siguiente interfaz.

Nombre de la base de datos.

Insertar Tabla.

Insertar Vista.

Relaciones

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 76

Page 77: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

5. Haga un clic sostenido en la tabla Clientes y generar un arrastre hasta el área de diseño. Realizar los mismos procedimientos con las demás tablas en mención.

DEFINICIÓN DE RELACIÓN.

1. Haga clic en la carpeta de la aplicación MySql Workbench 6.1 2. Localizar el archivo ejecutable y haga doble clic en él. 3. Haga doble clic sobre el icono Add Diagram. 4. Haga un clic sostenido en la tablas y generar un arrastre hasta el área de

diseño.

5. De la barra de herramientas, ubicada de forma vertical, haga clic en la

relación uno a varios. 6. Haga clic en la tabla Pedido y luego en Cliente.

7. Se mostrará la relación que se acaba realizar. 8. Haga la misma relación con la tabla Empleado – Pedido. 9. Elegir el botón guardar.

PROPIEDADES DE UNA RELACIÓN.

1. Haga clic en la carpeta de la aplicación MySql Workbench 6.1 2. Localizar el archivo ejecutable y haga doble clic en el.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 77

Page 78: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

3. Elegir el icono EER Diagram.

4. Haga doble clic en la relación que muestra el diagrama.

FUNDAMENTO TEÓRICO:

EL MODELO RELACIONAL.

Se puede decir, como primera dato para comprender el modelo, que un modelo de datos es un conjunto de conceptos que permiten describir, a distintos niveles de abstracción, la estructura de una base de datos, a la cual denominamos esquema. Según el nivel de abstracción en el que se encuentre la estructura descrita, el modelo que permite su descripción será un modelo externo, que no es mas que la forma que tiene el usuario en observar la base de datos, y por otra parte esta el modelo global que esta relacionado netamente con el enfoque de la organización, finalmente el modelo interno, que es la forma en que se organizan los datos en el almacenamiento físico. Para un desarrollador de base de datos tiene que dejar en claro que los modelos externos nos permiten representar los datos que necesita cada usuario en particular con las estructuras propias del lenguaje de programación que va a emplear. Los modelos globales ayudan a describir los datos para el conjunto de usuarios, podríamos decir que es la información a nivel de empresa; y, por último, los modelos internos están orientados a la máquina, siendo sus elementos de descripción punteros, índices, agrupamientos, etc.

Propiedades de la relación.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 78

Page 79: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Los modelos que tienen un mayor interés son los modelos globales, ya que los externos utilizan los mismos conceptos y los internos no están estandarizados ni existen en realidad como tales modelos, sino que son propios de cada uno de los productos comerciales. Los modelos globales se clasifican, a su vez, en conceptuales y convencionales. Los modelos conceptuales, denominados en algunos casos el modelo

global, facilitan la descripción global del conjunto de información de la empresa con independencia de la máquina, por lo que sus conceptos son cercanos al mundo real, se podría decir mas que todo que son modelos de análisis, no de implementación.

Los modelos convencionales se encuentran soportados por los SGBD y están orientados a describir los datos a nivel lógico para el SGBD, por lo que sus conceptos son propios de cada SGBD (tablas o relaciones en el modelo relacional, redes en el modelo en red, árboles en el jerárquico, etc.).

El modelo de datos es la herramienta que se aplica para obtener el esquema, que no es más que la descripción de la estructura de la base de datos. Es por ello que es de forma oportuna realizar una diferencia entre esquema y ocurrencia del esquema, que son los datos que se encuentran almacenados en un esquema en un momento determinado. El esquema no varía mientras no varíe el mundo real que éste describe; en tanto que una ocurrencia del esquema, es decir, los datos contenidos en él, son distintos en el transcurso del tiempo. Ya estando en este nivel se puede afirmar que un modelo de datos es como un conjunto de conceptos, reglas y convenciones que nos permiten describir y manipular los datos de un cierto mundo real, que la organización mantiene el desea de tenerlo todo ello en una base de datos. Sin embargo el modelo de datos siempre va tener propiedades que varían entre las estáticas, o mejor dicho las que no varían a lo que se suele entender como estructura; y dinámicas, que son las operaciones que se aplican a los datos o valores almacenados en las estructuras, los cuales varían en el transcurso del tiempo. Pero Edgar Frank Codd, que es un científica que realiza brillantes aportes para la teoría de base de datos supuso en la práctica la proposición de un nuevo modelo de datos basado en la teoría de las relaciones, donde los datos se estructuran lógicamente en forma de relaciones, con lo que hoy conocemos como tablas, siendo el objetivo primordial del modelo mantener la soberanía de esta estructura lógica respecto al modo de almacenamiento y a cualquier otra característica de tipo físico. Siendo sus principales objetivos:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 79

Page 80: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Independencia física. El modo en que se almacenan los datos no debe influir en su manipulación lógica y, por tanto, los usuarios que acceden a los datos no han de modificar sus programas por cambios en el almacenamiento físico.

Independencia lógica. Añadir, eliminar o modificar cualquier elemento de la base de datos no debe repercutir en los programas y/o usuarios que están accediendo a subconjuntos parciales de los mismos.

Flexibilidad. Poder ofrecer a cada usuario los datos de la forma más adecuada a su aplicación.

Uniformidad. Las estructuras lógicas de los datos presentan un aspecto uniforme (tablas), lo que facilita la concepción y manipulación de la base de datos por parte de los usuarios.

Sencillez. Las características anteriores, así como unos lenguajes de usuario sencillos, producen el resultado de que el modelo de datos relacional es fácil de comprender y de utilizar.

ALGEBRA RELACIONAL.

La gran mayoría de personas que están introduciéndose en lo que vendría hacer el desarrollo de base de datos para las organizaciones, siendo un poco de rechazo cuando se habla sobre el álgebra relacional, que no es mas que un lenguaje de consulta procedimental y que su forma de operar es de constar de un conjunto de operaciones que toman como entrada una o dos relaciones y producen como resultado una nueva relación. Las operaciones fundamentales del álgebra relacional son selección, proyección, unión, diferencia de conjuntos, producto cartesiano y renombramiento. Además de las operaciones fundamentales hay otras operaciones, por ejemplo, intersección de conjuntos, reunión natural, división y asignación. Estas operaciones se definirán en términos de las operaciones fundamentales.

1. Operaciones fundamentales. Las operaciones selección, proyección y renombramiento se denominan operaciones unarias porque operan sobre una sola relación. Las otras tres operaciones operan sobre pares de relaciones y se denominan, por lo tanto, operaciones binarias.

2. La operación selección. La operación selección trabaja con una secuencia ordenada de objetos. Se utiliza la letra griega sigma minúscula (σ) para denotar la selección. El predicado aparece como subíndice de σ. La relación del argumento se da entre paréntesis a continuación de σ. Por tanto, para seleccionar las tuplas de la relación préstamo en que la sucursal es «Los Olivos » hay que escribir σ nombre-sucursal = «Los Olivos» (préstamo).

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 80

Page 81: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

ESTRUCTURA DEL MODELO RELACIONAL.

Relación o tabla.

Según el modelo relacional el elemento fundamental es lo que se conoce como relación, aunque más habitualmente se le llama tabla. En el modelo relacional definió las relaciones utilizando un lenguaje matemático, pero se pueden asociar a la idea de tabla, ya que es más fácil de comprender. Pero siempre es bueno tener en claro que no se puede tomar como algo similar la idea de relación según el modelo de Codd, con lo que significa una relación en el modelo Entidad/Relación de Chen. Es por ello que las relaciones constan de: Atributos. Referido a cada propiedad de los datos que se almacenan en la

relación (nombre, Apellidos, sexo, DNI). Tuplas. Referido a cada elemento de la relación. Por ejemplo si una relación

almacena personas, una tupla representaría a una persona en concreto. Puesto que una relación se representa como una tabla; podemos entender que las columnas de la tabla son los atributos; y las filas, las tuplas. También se podría agregar como parte más sencilla es que una Tuplas termina siendo un registro.

Tupla.

Cada una de las filas de la relación. Se corresponde con la idea clásica de registro. Representa por tanto cada elemento individual de esa relación. Tiene que cumplir que: Cada tupla se debe corresponder con un elemento del mundo real. No puede haber dos tuplas iguales (con todos los valores iguales).

Dominio.

Un dominio contiene todos los posibles valores que puede tomar un determinado atributo. Dos atributos distintos pueden tener el mismo dominio. Un dominio en realidad es un conjunto finito de valores del mismo tipo. A los dominios se les asigna un nombre y así podemos referirnos a ese nombre en más de un atributo. La forma de indicar el contenido de un dominio se puede hacer utilizando dos posibles técnicas. Primero se podría hablar de la Intensión que no es más que la definición exacta de sus posibles valores. Por ejemplo la mejor forma de reconocer el dominio de intensión es las edades de los trabajadores como: números enteros entre el 18 y el 65 (un trabajador sólo podría tener una edad entre 16 y 65 años). En el caso de la extensión es la acción de señalar algunos valores y se sobreentiende el resto gracias a que se autodefinen con los anteriores. De manera más sencilla se podría hablar del

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 81

Page 82: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

dominio distrito que se podría definir por ejemplo Los olivos, Comas, San Miguel. A ello se podría agregar también aquellos que son considerados generales, en este caso se entiende que siempre hay un máximo y un mínimo. O también los restringidos que sólo pueden tomar un conjunto de valores

Grado.

Indica el tamaño de una relación en base al número de columnas (atributos) de la misma. Lógicamente cuanto mayor es el grado de una relación, mayor es su complejidad al manejarla.

Cardinalidad.

Número de tuplas de una relación, o número de filas de una tabla.

Sinónimos.

Los términos vistos anteriormente tienen distintos sinónimos según la nomenclatura utilizada.

DEFINICIÓN FORMAL DE RELACIÓN.

Los elementos dentro de una base de datos que componen una relación son los siguientes. Nombre. Identifica la relación. Cabecera de relación. Conjunto de todos los pares atributo-domino de la

relación. Cuerpo de la relación. Representa el conjunto de tuplas que forman la

relación. Cada tupla es un conjunto de n par atributo-valor. Esquema de la relación. Se forma con el nombre R y la cabecera. Estado de la relación. Lo forman el esquema y el cuerpo. Ejemplo:

Clientes

DNI Nombre Edad

43385745 Joaquín 22

85596523 Maribel 26

45585888 Marina 40

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 82

Page 83: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Esquema: Cliente (DNI: DNI, Nombre: Nombre, Edad: Edad) Cuerpo: {(DNI: “43385745”, Nombre:”Joaquín”, Edad: 22), (DNI: “85596523”, Nombre:”Maribel”, Edad; 26), (DNI: “45585888”, Nombre:”Marina”, Edad: 40)}

PROPIEDADES DE LAS TABLAS (O RELACIONES).

Cada tabla tiene un nombre distinto. Cada atributo de la tabla toma un solo valor en cada tupla. Cada atributo tiene un nombre distinto en cada tabla (aunque puede

coincidir en tablas distintas). Cada tupla es única (no hay tuplas duplicadas). El orden de los atributos no importa. El orden de las tuplas no importa2º curso de administración de sistemas

informáticos

TIPOS DE TABLAS.

Persistentes. Sólo pueden ser borradas por los usuarios. Bases. Independientes, se crean indicando su estructura y sus ejemplares.

Contienen tanto datos como metadatos. Vistas. Son tablas que sólo almacenan una definición de consulta, resultado

de la cual se produce una tabla cuyos datos proceden de las bases o de otras vistas e instantáneas. Si los datos de las tablas base cambian, los de la vista que utiliza esos datos también cambia.

Instantáneas. Son vistas (creadas de la misma forma) que sí que almacenan los datos que muestra, además de la consulta que dio lugar a esa vista. Sólo modifican su resultado (actualizan los datos) siendo refrescadas por el sistema cada cierto tiempo (con lo que tienen el riesgo de que muestren algunos datos obsoletos.

Temporales. Son tablas que se eliminan automáticamente por el sistema. Pueden ser de cualquiera de los tipos anteriores.

Esquema de las bases de datos.

Es un esquema relacional en el que hay líneas que enlazan las claves principales con las claves secundarias para representar mejor las relaciones. A veces se representa en forma de nodos de grafos y otras se complementa el clásico. Ejemplo:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 83

Page 84: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Esquemas relacionales derivados del modelo entidad/relación.

Hay quien los llama esquemas entidad/relación relacionales. De hecho es una mezcla entre los esquemas relacionales y los entidad/relación. Hoy en día se utiliza mucho, en especial por las herramientas CASE de creación de diseños de bases de datos. Las tablas se representan en forma de rectángulo que contiene una fila por cada atributo y una fila inicial para la cabecera en la que aparece el nombre de la tabla. Después aparecen líneas que muestran la relación entre las claves y su cardinalidad. Uno de los más utilizados actualmente es éste:

Las cardinalidades se pueden mostrar en otros formatos, pero siempre se mostrarán en este tipo de esquemas. En este caso el inicio de la línea (en la clave principal) se considera cardinalidad 1 y en el extremo podemos tener un final de línea sin símbolos (cardinalidad 1,1), acabado en varias ramas (cardinalidad 1, n) o con un círculo (cardinalidad mínima de 0). Se ha hecho muy popular la forma de presentar esquemas relacionales del programa Microsoft Access. Ejemplo:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 84

Page 85: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Es otra forma muy clara de representar relaciones y cardinalidades (aunque tiene problemas para representar relaciones de dos o más atributos). Sin duda los esquemas más completos son los que reflejan no sólo las cardinalidades sino también todas las restricciones (e incluso los tipos de datos, aunque esto ya es una competencia del esquema interno). Véase el esquema de la Ilustración 11. En ese esquema los símbolos funcionan de esta forma:

Además los campos que están el final de una flecha son claves secundarias.

CLAVES.

CLAVE CANDIDATA. Conjunto de atributos que identifican unívocamente cada tupla de la relación. Es decir columnas cuyos valores no se repiten en ninguna otra tupla de esa tabla. Toda tabla en el modelo relacional debe tener al menos una clave candidata (puede incluso haber más).

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 85

Page 86: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

CLAVE PRIMARIA Clave candidata que se escoge como identificador de las tuplas. Se elige como primaria la candidata que identifique mejor a cada tupla en el contexto de la base de datos. Por ejemplo un campo con el DNI sería clave candidata de una tabla de clientes, si esa tabla tiene un campo de código de cliente, éste sería mejor candidato (y por lo tanto clave principal) porque es mejor identificador para ese contexto.

CLAVE ALTERNATIVA. Cualquier clave candidata que no sea primaria.

CLAVE EXTERNA, AJENA O SECUNDARIA. Son los datos de atributos de una tabla cuyos valores están relacionados con atributos de otra tabla. Por ejemplo en la tabla equipos tenemos estos datos:

En la tabla anterior la clave principal es el atributo Nº Producto. En otra tabla tenemos: El atributo Nº de Producto sirve para relacionar al cliente con el producto que ha adquirido. Ese campo en la tabla de Pedido es una clave secundaria.

Nº Producto Equipo

1 Inca Kola

2 Coca Cola

3 Sprite

Nº Pedido Cliente Nº Producto

1 Inca Kola 1

2 Coca Cola 2

3 Sprite 3

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 86

Page 87: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

1. Investigar los pasos para realizar una relación mediante comando en Mysql. 2. Investigar los comandos empleados para definir una clave primaria en Mysql. 3. Defina los elementos que componen la estructura de un modelo entidad

relación. 4. De la opción download de la pagina oficial Mysql realizar un cuadro

funcional de aquellas aplicaciones que se puede descargar.

Aplicación Funcionalidad Versión actual

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 87

Page 88: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

TAREA 04: REALIZAR EL DISEÑO DE BASES DE DATOS RELACIONALES.

En esta tarea trataremos las siguientes operaciones:

Consideraciones de diseño.

La Normalización.

La Integridad de base de datos.

Equipos y Materiales:

Computadora con microprocesadores core 2 Duo ó de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación.

OPERACIÓN. LA NORMALIZACIÓN.

1. La Primera Forma Normal (1FN) trata con el modelo de un registro, es decir, la forma básica o registro tipo. Información que se desea manejar:

PROFESOR Nombres y Apellidos. DEDICACIÓN Tiempo dedicado a la Universidad. MATERIAS Nombres de las materias que dicta. CURSOS Número de cursos por materia. DEPARTAMENTO Nombre del Departamento al cual está adscrito el Profesor. COMISIONES Nombre se las comisiones a las que pertenece el Profesor. COORDINACIÓN ¿Coordina el Profesor la comisión?

Se tiene los siguientes datos:

PROFESOR Joaquín Meza. DEDICACIÓN Exclusiva. MATERIAS Y CURSOS Desarrollo de Software (2 cursos). Diseño de Sistemas I (1 curso). Análisis de Sistemas (1 curso). DEPARTAMENTO Sistemas. COMISIONES Seminario de Investigación (Coordinador), Reestructuración Curricular, Entrenamiento Docente (Coordinador).

Se diseña el registro.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 88

Page 89: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Nombre Dedicación Materias Cursos Dpto. Comisiones Coordina

Joaquín Meza

Exclusiva

Desarrollo de Software. Diseño de Sistemas I. Análisis de Sistemas.

2,1,1 Sistemas.

Seminario de Investigación (Coordinador), Reestructuración Curricular, Entrenamiento Docente (Coordinador).

Si, No, Si

Se debe percatar que en los campos MATERIAS y COMISIONES existen diversos valores para el mismo individuo, además de una serie de datos relacionados tales como CURSOS POR MATERIAS y COORDINACION DE COMISIONES. Suponiendo que un Profesor no dicta más de tres materias por semestre, se puede desarrollar el registro de la siguiente manera. Relación Profesor. Nombre Dedic. Mat 1 Curso1 Mat. 2 Curso2 Mat. 3 Curso3 DPTO.

Joaquín Meza

Exclus Desarrollo

de Software.

2 Diseño de Sistemas

I 1

Análisis de

Sistemas. 1 Sistemas

Relación Participa en Comisión.

Profesor Comisión Coordina

Joaquín Meza Seminario de Investigación

SI

Joaquín Meza Reestructuración

Curricular NO

Joaquín Meza Entrenamiento

Docente SI

El procedimiento empleado ha sido el siguiente: El campo MATERIA para el cual se esperaban como máximo tres valores diferentes (con tres valores asociados: numero de cursos), se descompuso en tres nuevos campos, a saber: Materia 1, Materia 2 y Materia 3, denominados respectivamente como MAT1, MAT2 y MAT3. Los valores asociados (número de cursos por materia) se colocaron a su vez como tres nuevos campos: CUR1, CUR2 y CUR3, que corresponderán respectivamente a las materias numeradas del 1 al 3. Debe tenerse cuidado al manejar de esta forma los registros el no exceder el número de campos permitidos por el sistema administrador de base de datos que Ud. utiliza.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 89

Page 90: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Con respecto a las COMISIONES y a COORDINACIÓN, se decidió emplear otra técnica que consiste en separar el campo y construir otra tabla. Tal decisión se tomó en vista de la independencia de la relación MATERIA-COMISIONES. Esta nueva tabla (la hemos llamado PARTICIPA-EN-COMISIÓN para mayor claridad), contiene los campos PROFESOR, COMISIÓN y COORDINA (este último de tipo lógico). La repetición del Nombre del Profesor en el campo PROFESOR da el enlace a partir de las tuplas en la nueva relación PARTICIPA-EN-COMISIÓN. FUNDAMENTO TEÓRICO.

CONSIDERACIONES DE DISEÑO.

Si bien es cierto existen algunas técnicas que permite realizar el diseño de una base de datos es la técnica de normalización la que mas es presta a trabajar con diseños sencillos y más cercanos a lo que realmente requiere la organización. Hay que comenzar recopilando información del modelo entidad relación ya que es mas que obvio que se tiene que dar un esquema de relación R y que se procede a normalizarlo. Hay varios modos de obtener el esquema R: 1.R puede haberse generado al convertir un diagrama E-R en un conjunto de tablas. 2.R puede haber sido una sola relación que contuviera todos los atributos que resultan de interés. El proceso de normalización divide a R en relaciones más pequeñas. 3. R puede haber sido el resultado de algún diseño ad hoc de relaciones, que hay que comprobar para verificar que satisface la forma normal deseada.

El modelo E-R y la normalización.

Cuando se define con cuidado un diagrama E-R, identificando correctamente todas las entidades, las tablas generadas a partir del diagrama E-R no necesitan más normalización. No obstante, puede haber dependencias funcionales entre los atributos de una entidad. De manera mas didáctica se podría decir que en el caso de que una entidad llamado empleado tiene los atributos número-vivienda y dirección-departamento, y que hay una dependencia funcional número-vivienda → dirección-departamento. Habrá que normalizar la relación generada a partir de empleado. La mayor parte de los ejemplos de estas dependencias surgen de un deficiente diseño del diagrama E-R. En el ejemplo anterior, si se hiciera fielmente el diagrama E-R, se habría creado una entidad departamento con el atributo dirección departamento y una relación entre empleado y departamento. De manera parecida, puede que una relación que implique a más de dos entidades no se

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 90

Page 91: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

halle en una forma normal ansiada. Como la mayor parte de las relaciones son binarias, estos casos resultan relativamente raros. Las dependencias funcionales pueden ayudar a detectar el mal diseño E-R. Si las relaciones generadas no se hallan en la forma normal deseada, el problema puede solucionarse en el diagrama E-R. Es decir, la normalización puede llevarse a cabo formalmente como parte del modelado de los datos. Ahora se podría emplear la normalización con un forma alternativa ya que esto permitirá siendo utilizada de forma intuitiva por parte de diseñador durante el proceso del modelado E-R, y puede hacerse formalmente sobre las relaciones generadas a partir del modelo E-R.

LA NORMALIZACIÓN.

Uno de los elementos más significativos en la creación de páginas web dinámicas es el diseño de las Bases de Datos. Si las tablas no están eficientemente diseñadas, terminan causando un montón de dolores de cabeza ya que en algún momento se tendrá que realizar consultas, es decir trabajar con SQL en el código PHP para extraer los datos que necesitas. Es por ello que si se tiene el cocimiento y la capacidad de establecer las relaciones entre los datos y la normalización de estos, esto quiere decir que se tiene las condiciones para trabajar aplicaciones en PHP. La gran mayoría de organizaciones encargadas en el proceso de desarrollo de aplicaciones para SGBD, laboran con sus propios métodos, es por esa razón que si se esta empleando MySQL o con Oracle, lo mínimo es conocer los métodos de normalización del diseño de las tablas en el sistema de BD relacional. Estos métodos termina siendo beneficios para realiza el código en PHP, ya que a su vez es mas fácil de comprender, ampliar, y en determinados casos, incluso realiza la aplicación mas rápida. Para ir entendiendo las reglas de la normalización, se podría decir que su principal función es la de evitar a toda costa la redundancias e inconsistencias de dependencia en el diseño de las tablas. Se tiene que tener en cuenta que se debe crear una BD funcional y eficiente para ello utilizaremos un ejemplo muy sencillo. Se presenta la necesidad de crear una tabla con la información de usuarios, y los datos a guardar son el nombre, la empresa, la dirección de la empresa, un correo electrónico y una dirección web, entonces se comienza definiendo la estructura de la tabla.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 91

Page 92: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Formalización CERO. Usuarios. nombre empresa direccion_empresa Correo Web1 Web2 Joaqui Amser Jr. Mercurio 186 [email protected] joaqui.com Marina Basic Av. Naranjar 758 [email protected] marina.com

De la tabla anterior se puede decir, que se encuentra en nivel de Formalización Cero porque ninguna de las reglas de normalización ha sido trabajada. Para ello un ejemplo, se tomará el campo Web y se formulará la siguiente pregunta. ¿Qué se hará cuando en la aplicación se necesite una tercera url? ¿Se tendrá que añadir otro campo/columna a la tabla y tener que reprogramar toda la entrada de datos del código PHP? Bueno eso actualmente sería un gran error ya que la gran mayoría de las organizaciones optan por sistema que permita ir adaptándose al cambio mientras las empresas van evolucionando, es por ello que se dice que toda empresa es un sistema abierto. Se trabajará con la primera regla de Nivel de Formalización-Normalización, y las aplicaremos a la tabla del ejemplo.

Primer nivel de Formalización/Normalización. (F/N)

1. Eliminar los grupos repetitivos de las tablas individuales. 2. Crear una tabla separada por cada grupo de datos relacionados. 3. Identificar cada grupo de datos relacionados con una clave primaria Se podrá observar que se esta eliminando la primera regla cuando repetimos los campos web1 y web2? ¿Y que pasa con la tercera regla, la clave primaria? La regla tres básicamente significa que tenemos que poner un campo tipo contador autoincrementable para cada registro. De otra forma, ¿Qué pasaría si se tuviera dos usuarios llamados con el mismo nombre y se quiere diferenciar. Una vez que se aplique el primer el nivel de F/N el nuevo resultado de la tabla será el siguiente: Usuarios. userid nombre empresa direccion_empresa Correo Web1 001 Joaqui Amser Jr. Mercurio 186 [email protected] amser.com 001 Joaqui Amser Jr. Mercurio 186 [email protected] amser.com 002 Marina Basic Av. Naranjar 758 [email protected] basic.com 002 Marina Basic Av. Naranjar 758 [email protected] basic.com

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 92

Page 93: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Ahora se podrá decir con toda seguridad que la tabla en mención está en el primer nivel de F/N. En resumen se ha solucionado el problema de la limitación del campo url. Pero sin embargo se van presentando otros problemas, esta vez en un caso especifico cada vez que se introduce un nuevo registro en la tabla usuarios, tenemos que duplicar el nombre de la empresa y del usuario. No sólo nuestra BD crecerá muchísimo, sino que será muy fácil que la BD se corrompa Si se digita mal alguno de los datos redundantes. Para ello se aplicara el segundo nivel de F/N:

Segundo nivel de F/N.

1. Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros.

2. Relacionar estas tablas mediante una clave externa. La solución para por separar el campo url en otra tabla, de forma que se puede añadir más en el futuro si tener que duplicar los demás datos. También vamos a usar la clave primaria para relacionar estos campos: Usuarios. userid nombre empresa direccion_empresa Correo Web1 001 Joaqui Amser Jr. Mercurio 186 [email protected] amser.com 002 Marina Basic Av. Naranjar 758 [email protected] basic.com

Web. URLid reluserid web 001 002 basic.com 002 001 amser.com 003 003 preco.com 004 004 pera.com

En estos momentos se ha creado tablas separadas y la clave primaria en la tabla usuarios, userId, está relacionada ahora con la clave externa en la tabla urls, relUserId. Pero se siguen presentando aun más preguntas por ejemplo. ¿Qué sucede cuando se quiere añadir otro empleado a la organización? ¿ O 200 empleados? Ahora se tiene el nombre de la empresa y la dirección duplicándose, otra situación que puede inducirnos a errores en los datos. Así que tendremos que aplicar el tercer nivel de F/N: Tercer nivel de F/N. 1. Eliminar aquellos campos que no dependan de la clave. El nombre de la

empresa y su dirección no tienen nada que ver con el campo userId, así que tienen que tener su propio empresaId:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 93

Page 94: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Usuarios. userid nombre codempresa 001 Joaqui x-001 002 Marina x-002

Empresa. empresaid empresa direccion_empresa Correo Web1 x-001 Amser Jr. Mercurio 186 [email protected] amser.com x-002 Basic Av. Naranjar 758 [email protected] basic.com

Web. URLid reluserid web 001 002 basic.com 002 001 amser.com 003 003 preco.com 004 004 pera.com

Ahora lo que se tiene es la clave primaria empresaid en la tabla empresas relacionada con la clave externa codempresa en la tabla usuarios, y se puede crear 200 usuarios mientras que sólo tenemos que insertar el nombre de la organización una sola vez. Las tablas de usuarios y urls pueden crecer todo lo que quieran sin duplicación ni corrupción de datos. La mayoría de los desarrolladores dicen que el tercer nivel de F/N es suficiente, que el esquema de datos puede administrar fácilmente los datos obtenidos de una cualquier empresa en su totalidad, y en la mayoría de los casos esto será cierto. Sigamos con el proceso de normalización, hay que tomar en cuenta el campo Web, en el caso de usuarios puede ser que dos usuario coincidan en el lugar de trabajo y por lo tanto se termine colocando la dirección web de la organización Esto es perfectamente aceptable si la entrada de datos de este campo es solicitada al usuario en la aplicación. ¿Pero que pasa si en lugar de entrada libre de texto se usa un menú desplegable con 20 o incluso más urls predefinidas? Entonces se tendría que llevar el diseño de BD al siguiente nivel de F/N, el cuarto, muchos desarrolladores lo pasan por alto porque depende mucho de un tipo muy específico de relación, la relación 'varios-con-varios'. Relaciones entre los Datos. La relación varios-con-varios, sin embargo, es ligeramente más compleja. Observa en el ejemplo del Tercer Nivel de F/N se tiene un usuario relacionado con varias urls. Y lo que se realizo es cambiar la estructura para permitir que varios usuarios estén relacionados con varias urls y así tendremos una relación varios-con-varios.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 94

Page 95: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Usuarios. userid nombre codempresa 001 Joaqui x-001 002 Marina x-002

Empresa. empresaid empresa direccion_empresa Correo Web1 x-001 Amser Jr. Mercurio 186 [email protected] basic.com x-002 Basic Av. Naranjar 758 [email protected] basic.com

Web. URLid reluserid web 001 002 basic.com 002 001 basic.com 003 003 preco.com 004 004 pera.com

Relación de URL. Relacionid URLid reluserid 001 002 001 002 002 002

Para disminuir la duplicación de los datos, se pasará a trabajar con el cuarto nivel de F/N, se ha empleado una tabla que sólo tiene claves externas y primarias. Esto quiere decir que se ha removido las entradas duplicadas en la tabla. Ahora se puede expresar fielmente la relación que ambos usuarios tienen entre cada uno de ellos, y entre ambos, las urls. 1. En las relaciones varios-con-varios, entidades independientes no pueden ser

almacenadas en la misma tabla. Ya que sólo se aplica a las relaciones varios-con-varios, la mayoría de los desarrolladores pueden ignorar esta regla de forma correcta. Pero es muy útil en ciertas situaciones, tal como esta.

LA INTEGRIDAD DE BASE DE DATOS.

Una base de datos es una colección de datos relacionados. Con la palabra "datos" nos referimos a los hechos conocidos que se pueden grabar y que tienen un significado implícito. La integridad en una base de datos se refiere a la corrección y exactitud de la información contenida. Una base de datos determinada podría estar sujeta a cualquier cantidad de restricciones de integridad (en general) de una

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 95

Page 96: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

complejidad arbitraria. En la mayoría de los sistemas actuales, la verificación de la integridad se realiza mediante códigos de procedimientos escritos por los usuarios. La Integridad es el término utilizado para decir que la información almacenada tiene calidad. El DBMS tiene que asegurar que los datos se almacenan de acuerdo a las políticas previamente determinadas por el DBA. En otras palabras, el DBMS debe principalmente, a este respecto, comprobar las restricciones de integridad, controlar la correcta ejecución de las actualizaciones y recuperar la base de datos en caso de pérdida. La Integridad conserva la seguridad en un sistema de bases de datos que permite el acceso a múltiples usuarios en tiempos paralelos.

Reglas de Integridad.

Una vez definida la estructura de datos del modelo relacional se procede pasamos a las reglas de integridad que los datos almacenados en dicha estructura deben cumplir para garantizar que son correctos. Al definir cada atributo sobre un dominio se impone una restricción sobre el conjunto de valores permitidos para cada atributo. A este tipo de restricciones se les denomina restricciones de dominio. Hay además dos reglas de integridad muy importantes que son restricciones que se deben cumplir en todas las bases de datos relacionales y en todos sus estados o instancias (las reglas se deben cumplir todo el tiempo). Estas reglas son la de integridad de entidades y la de integridad referencial. Antes de definirlas es preciso conocer el concepto de nulo y dominio. Nulo: Es un indicador que le dice al usuario que el dato falta o no es aplicable. Por conveniencia, un dato que falta normalmente se dice que tiene valor Nulo, pero el valor de Nulo no es un valor de dato real. En vez de ello es una señal o un recordatorio de que el valor falta o es desconocido. Dominio: Posibles valores que puede tener un campo. Un dominio no es más que un tipo de dato; posiblemente un tipo simple definido por el sistema o por el usuario. El Dominio de un atributo define los valores posibles que puede tomar este atributo. Además de los Dominios "naturales", usados como tipos de datos, el administrador del sistema puede generar sus propios dominios definiendo el conjunto de valores permitidos. Esta característica, usada en forma correcta, se convierte en mecanismo de control, restricción y validación de los datos a ingresar.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 96

Page 97: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Restricciones Básicas. Las restricciones de los datos se imponen para asegurarnos que los datos cumplen con una serie de condiciones predefinidas para cada tabla. Estas restricciones ayudan a conseguir la integridad de referencia: todas las referencias dentro de una BD son válidas y todas las restricciones se han cumplido. Las restricciones se van a definir acompañadas por un nombre, lo que permitirá activarlas o desactivarlas según sea el caso; o también mezcladas en la definiciones de las columnas de la tabla. Not Null. Establece la obligatoriedad de que esta columna tenga un valor no nulo. Se debe especificar junto a la columna a la que afecta. Los valores nulos no ocupan espacio, y son distintos a 0 y al espacio en blanco. Hay que tener cuidado con los valores nulos en las operaciones, ya que 1 * NULL es igual a NULL. Si muchos de los tributos no se aplican a todas las duplas de la relación, es decir, son nulos, se acabará con un gran número de nulos en esas duplas. Esto puede originar un considerable desperdicio en el nivel de almacenamiento y posiblemente dificultar el entendimiento del significado de los atributos y la especificación de operaciones de reunión con en el nivel lógico. Restricciones de usuario. Podemos considerar la restricción de usuario, dentro del contexto relacional, como un predicado definido sobre un conjunto de atributos, de duplas o de dominios, que debe ser verificado por los correspondientes objetos para que éstos constituyan una ocurrencia válida del esquema. Dentro de las restricciones de usuario destaca la restricción de integridad referencial que dice que los valores de clave ajena deben coincidir con los de clave primaria asociada a ella o ser nulos. Llave primaria. Establece el conjunto de columnas que forman la clave primaria de esa tabla. Se comporta como única y obligatoria sin necesidad de explicitarlo. Sólo puede existir una clave primaria por tabla. Puede ser referenciada como clave ajena por otras tablas. Crea un índice automáticamente cuando se habilita o se crea esta restricción.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 97

Page 98: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Aserción. Una técnica más formal para representar restricciones explícitas es con un lenguaje de especificación de restricciones, que suele basarse en alguna variación del cálculo relacional. Este enfoque declarativo establece una separación clara entre la base de restricciones (en la que las restricciones se almacenan en una forma codificada apropiada) y el subsistema de control de integridad del SGBD (que tiene acceso a la base de restricciones para aplicar estas últimas correctamente a las transacciones afectadas). Cuando se usa esta técnica, las restricciones suelen llamarse aserciones. Se ha sugerido el uso de esta estrategia con SGBD relaciónales. El subsistema de control de integridad compila las aserciones, que entonces se almacenan en el catalogo del SGBD, donde el subsistema de control de integridad puede consultarlas e imponerlas automáticamente. Esta estrategia es muy atractiva desde el punto de vista de los usuarios y programadores por su flexibilidad.

1. Realizar un ejemplo de Normalización. 2. ¿En que consiste las reglas de integridad? 3. Mencione algunas herramientas que permitan apoyar el diseño de la base de

datos.

Ejercicios y tareas de investigación

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 98

Page 99: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

TAREA 05: ENTENDER LA SEGURIDAD DE BASES DE DATOS.

En esta tarea trataremos las siguientes operaciones:

Seguridad en Base de Datos.

Equipos y Materiales:

Computadora con microprocesadores core 2 Duo ó de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación.

OPERACIÓN: SEGURIDAD EN BASE DE DATOS.

1. Haga clic en el icono WanpServer que aparece en el área de notificaciones. (Barra de tarea.).

2. Elija la opción phpMyAdmin. 3. Haga clic en la pestaña Base de Datos e ingresar el nombre de la base de

datos, para el ejemplo colocaremos el nombre ETI. 4. Elegir el botón Crear.

5. Una vez seleccionada la base de datos, en el lado derecho haga clic en el menú Exportar.

6. Luego cargará una interfaz como muestra la siguiente imagen:

Haga clic en la pestaña Base de Datos. Haga clic en el

botón Crear.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 99

Page 100: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

7. Seleccionar en la opción formato "SQL". 8. En la opción de creación de objetos las siguientes instrucciones deben estar

seleccionadas Add DROP TABLE / DROP VIEW Añadir el valor AUTO_INCREMENT.

9. En sección datos activar las instrucciones INSERTS. 10. Haga clic en Continuar. 11. Haga clic en el icono de WampServer, ubicado en el área de notificación

de Windows. 12. Seleccione la opción Mysql y luego Mysql Console.

13. Digitar el comando créate database para crear la base de datos.

mysql> CREATE DATABASE SENATI_ETI;

Haga clic en la opción Personalizado.

Seleccione la opción Mysql Console.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 100

Page 101: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

14. Emplear la base de datos recién creada. mysql> USE SENATI_ETI

15. Emplear claves para todos los usuarios MySQL.

FUNDAMENTO TEÓRICO:

SEGURIDAD EN BASE DE DATOS.

Uno de los aspectos a considerar por todo diseñador de base de datos es la seguridad y ahí se puede encontrar muchos puntos a trabajar para mantener la información de la organización salvaguardada de cualquier imprevisto que puede suceder, todo se maneja especulando de la mas simple y sencilla usurpación de información hasta algo mas complejo, todo tiene que ser cubierto, para mejor el concepto de seguridad a nivel de base de datos. En un caso específico se podría hablar de las restricciones de integridad, ya que estas proporcionan un medio de asegurar que las modificaciones hechas a la base de datos por los usuarios autorizados no provoquen la pérdida de la consistencia de los datos, esto puede ser un error casual pero puede suceder. Entonces, mejor dicho, las restricciones de integridad protegen a la base de datos contra los daños accidentales. Se puede determinar que existe una modalidad de restricciones de integridad para el modelo E-R. Primero tenemos la declaración de claves; basada en la estipulación de que ciertos atributos pueden formar una clave para un conjunto de entidades determinado. Y luego

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 101

Page 102: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

tenemos la forma de la relación que consiste en de varios a varios, de uno a varios, de uno a uno. Esto quiere decir que las restricciones de integridad puede ser un manifestó arbitrario referente a la base de datos. Sin embargo, los predicados arbitrarios pueden resultar complicados de verificar. En consecuencia, lo habitual es limitarse a restricciones de integridad que puedan verificarse con una sobrecarga mínima. Se podría mencionar también a los disipadores, que son instrucciones que el sistema ejecuta automáticamente como efecto colateral de una modificación de la base de datos. Los disparadores se usan para asegurar algunos tipos de integridad. Además de la protección contra la introducción accidental de inconsistencia, puede ser necesario proteger los datos almacenados en la base de datos frente a accesos no autorizados y destrucción o alteración malintencionada. Las restricciones de los dominios son la forma más simple de restricción de integridad. El sistema las verifica fácilmente siempre que se introduce en la base de datos un nuevo elemento de datos. Es posible que varios atributos tengan el mismo dominio. Por ejemplo, los atributos nombre-cliente y nombre-empleado pueden tener el mismo dominio: el conjunto de los nombres de persona. Sin embargo, los dominios de saldo y de nombre de la sucursal deben ser, ciertamente, diferentes. Quizá resulte menos evidente si nombre-cliente y nombre-sucursal deben tener el mismo dominio. En el nivel de implementación, tanto los nombres de los clientes como los de las sucursales son cadenas de caracteres. Otras de las alternativas es de la cláusula check de SQL que permite restringir los dominios de maneras poderosas que no permiten la mayor parte de los sistemas de tipos de los lenguajes de programación. Concretamente, la cláusula check permite al diseñador del esquema especificar un predicado que debe satisfacer cualquier valor asignado a una variable cuyo tipo sea el dominio. Por ejemplo, una cláusula check puede asegurar que un dominio de sueldo por hora sólo permita valores mayores que un valor especificado (como puede ser el sueldo mínimo), tal y como se muestra de esta forma: create domain sueldo-por-hora numeric(5,2) constraint comprobación-valor-

sueldo check (value ≥ 18.00) El dominio sueldo-por-hora tiene una restricción que asegura que el sueldo por hora sea mayor que 18,00. La orden constraint comprobación-valor-sueldo es opcional y se utiliza para dar a la restricción el nom bre de comprobación-valor-sueldo. El nombre se utiliza para indicar la restricción violada por una

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 102

Page 103: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

actualización. La cláusula check también puede utilizarse para restringir un dominio para que no contenga valores nulos, como se muestra de la siguiente forma:

create domain numero-cuenta char(10) constraint comprobación-número—cuenta-nulo check(value not null)

En este otro ejemplo el dominio se puede limitar para que contenga sólo un conjunto especificado de valores usando la cláusula in: create domain tipo-cuenta char(10) constraint comprobación-tipo-cuenta check(value in (‘Corriente’, ‘Ahorro’)) Las condiciones check anteriores se puede comprobar muy fácilmente cuando se inserta o modifica una tupla. Sin embargo, en general, las condiciones check pueden ser muy complejas (y difíciles de comprobar) dado que se permiten subconsultas que se refieren a otras relaciones en la condición check. Por ejemplo, esta restricción se podría especificar sobre la relación préstamo: check (nombre-sucursal in (select nombre-sucursal from sucursal)) La condición check verifica que nombre-sucursal en cada tupla en la relación préstamo es realmente el nombre de una sucursal de la relación cuenta. Así, la condición no sólo se debe comprobar cuando se inserte o modifique préstamo, sino también cuando cambie la relación sucursal (en este caso, cuando se borre o modifique cuenta).

Modificación de la base de datos.

La modificación de la base de datos puede ocasionar violaciones de la integridad referencial. A continuación se describe la comprobación que debe hacerse para cada tipo de modificación de la base de datos para preservar la siguiente restricción de integridad referencial: Insertar. Si se inserta una tupla t2 en r2, el sistema debe asegurar que hay

una tupla t1 de r1. Borrar. Si se borra una tupla t1 de r1 el sistema debe calcular el conjunto de

tuplas de r2 que hacen referencia a r1. Si este conjunto no es el conjunto vacío, o bien se rechaza la orden borrar

como error, o bien se deben borrar las tuplas que hacen referencia a t1. La última solución puede llevar a borrados en cascada, dado que las tuplas pueden hacer referencia a tuplas que hagan referencia a t1, etc.

Actualizar. Hay que considerar dos casos: las actualizaciones de la relación que realiza la referencia (r2) y las actualizaciones de la relación a la que se hace referencia (r1). — Si se actualiza la tupla t2 de la relación r2 y esta

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 103

Page 104: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

actualización modifica valores de la clave externa α, se realiza una comprobación parecida a la del caso de la inserción.

En el caso de la integridad referencial en SQL las claves primarias pueden especificarse como parte de la instrucción create table de SQL usando la cláusula foreign key.

Seguridad y autorización.

Los datos guardados en la base de datos deben estar protegidos contra los accesos no autorizados, de la destrucción o alteración malintencionadas además de la introducción accidental de inconsistencias que evitan las restricciones de integridad. En este apartado se examina el modo en que se pueden utilizar mal los datos o hacerlos inconsistentes de manera intencionada. Se presentan luego mecanismos para protegerse de dichas incidencias. Entre las formas de acceso malintencionado se encuentran: La lectura no autorizada de los datos (robo de información). La modificación no autorizada de los datos. La destrucción no autorizada de los datos La seguridad de las bases de datos se refiere a la protección frente a accesos malintencionados. No es posible la protección absoluta de la base de datos contra el uso malintencionado, pero se puede elevar lo suficiente el coste para quien lo comete como para disuadir la mayor parte, si no la totalidad, de los intentos de tener acceso a la base de datos sin la autorización adecuada. Para proteger la base de datos hay que adoptar medidas de seguridad en varios niveles: Sistema de bases de datos. Puede que algunos usuarios del sistema de

bases de datos sólo estén autorizados a tener acceso a una parte limitada de la base de datos. Puede que otros usuarios estén autorizados a formular consultas pero tengan prohibido modificar los datos. Es responsabilidad del sistema de bases de datos asegurarse de que no se violen estas restricciones de autorización.

Sistema operativo. Independientemente de lo seguro que pueda ser el sistema de bases de datos, la debilidad de la seguridad del sistema operativo puede servir como medio para el acceso no autorizado a la base de datos.

Red. Dado que casi todos los sistemas de bases de datos permiten el acceso remoto mediante terminales o redes, la seguridad en el nivel del software de la red es tan importante como la seguridad física, tanto en Internet como en las redes privadas de las empresas. • Físico. Los sitios que

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 104

Page 105: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

contienen los sistemas informáticos deben estar protegidos físicamente contra la entrada de intrusos.

Humano. Los usuarios deben ser autorizados cuidadosamente para reducir la posibilidad de que alguno de ellos dé acceso a intrusos a cambio de sobornos u otros favores.

Debe conservarse la seguridad en todos estos niveles si hay que asegurar la seguridad de la base de datos. La debilidad de los niveles bajos de seguridad (físico o humano) permite burlar las medidas de seguridad estrictas de niveles superiores (base de datos). En el resto de este apartado se aborda la seguridad en el nivel del sistema de bases de datos. La seguridad en los niveles físico y humano, aunque importante, cae fuera del alcance de este texto. La seguridad dentro del sistema operativo se aplica en varios niveles, que van desde las contraseñas para el acceso al sistema hasta el aislamiento de los procesos concurrentes que se ejecutan en el sistema. El sistema de archivos también proporciona algún nivel de protección. Las notas bibliográficas hacen referencia al tratamiento de estos temas en los textos sobre sistemas operativos. Finalmente, la seguridad en el nivel de la red ha logrado un amplio reconocimiento a medida que Internet ha pasado de ser una plataforma para la investigación académica a convertirse en la base del comercio electrónico internacional. Las notas bibliográficas muestran el tratamiento dado por los libros de texto a los principios básicos de la seguridad de las redes. Se presenta la discusión sobre la seguridad en términos del modelo relacional de datos, aunque los conceptos de este capítulo son igualmente aplicables a todos los modelos de datos. Autorizaciones. Los usuarios pueden tener varios tipos de autorización para diferentes partes de la base de datos. Entre ellas están las siguientes: La autorización de lectura permite la lectura de los datos, pero no su

modificación. La autorización de inserción permite la inserción de datos nuevos, pero no la

modificación de los existentes. La autorización de actualización permite la modificación de los datos, pero

no su borrado. La autorización de borrado permite el borrado de los datos. Los usuarios pueden recibir todos los tipos de autorización, ninguno de ellos o una combinación determinada de los mismos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 105

Page 106: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Además de estas formas de autorización para el acceso a los datos, los usuarios pueden recibir autorización para modificar el esquema de la base de datos: • La autorización de índices permite la creación y borrado de índices. La autorización de recursos permite la creación de relaciones nuevas. La autorización de alteración permite el añadido o el borrado de atributos de

las relaciones. La autorización de eliminación permite el borrado de relaciones. Las autorizaciones de eliminación y de borrado se diferencian en que la autorización de borrado sólo permite el borrado de tuplas. Si un usuario borra todas las tuplas de una relación, la relación sigue existiendo, pero está vacía. Si se elimina una relación, deja de existir. La capacidad de crear nuevas relaciones queda regulada mediante la autorización de recursos. El usuario con la autorización de recursos que crea una relación nueva recibe automáticamente todos los privilegios sobre la misma. La autorización de índices puede parecer innecesaria, dado que la creación o borrado de un índice no afecto a los datos de las relaciones. Más bien, los índices son una estructura para las mejoras de rendimiento. Sin embargo, los índices también ocupan espacio y se exige que todas las modificaciones de las bases de datos actualicen los índices. Si se concediera a todos los usuarios la autorización de índices, los que llevaran a cabo actualizaciones estarían tentados de borrar los índices, mientras que los que formularan consultas estarían tentados de crear numerosos índices. Para permitir al administrador de la base de datos que regule el uso de los recursos del sistema es necesario tratar la creación de índices como un privilegio. La forma superior de autoridad es la concedida al administrador de la base de datos. El administrador de la base de datos puede autorizar usuarios nuevos, reestructurar la base de datos, etcétera. Esta forma de autorización es análoga a la proporcionada al superusuario u operador del sistema operativo.

Autorizaciones y vistas.

El concepto de las vistas como medio de proporcionar a un usuario un modelo personalizado de la base de datos. Una vista puede ocultar los datos que un usuario no necesita ver. La capacidad de las vistas para ocultar datos sirve para simplificar el uso del sistema y para mejorar la seguridad. El uso del sistema se simplifica porque se permite al usuario restringir su atención a los datos de interés. Aunque puede que se niegue el acceso directo a una relación, puede que se le permita el acceso a parte de esa relación mediante una vista.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 106

Page 107: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Por tanto, se puede utilizar una combinación de seguridad en el nivel relacional y en el nivel de las vistas para limitar el acceso de un usuario precisamente a los datos que necesita. En el ejemplo bancario considérese un empleado que necesita saber los nombres de todos los clientes que tienen un préstamo en cada sucursal. Este empleado no está autorizado a ver la información concerniente a los préstamos concretos que pueda tener cada cliente. Por tanto, se le debe negar el acceso directo a la relación préstamo. Pero si va a tener acceso a la información necesaria se le debe conceder acceso a la vista cliente-préstamo, que consiste sólo en los nombres de los clientes y las sucursales en los que tienen un préstamo Evidentemente, el empleado está autorizado a ver el resultado de esta consulta. Sin embargo, cuando el procesador de consultas traduce la consulta en una consulta sobre las relaciones reales de la base de datos, se obtiene una consulta sobre prestatario y préstamo. Por tanto, se debe comprobar la autorización de la consulta del empleado antes de que comience el procesamiento de la misma. La creación de vistas no necesita la autorización de recursos. El usuario que crea una vista no recibe necesariamente todos los privilegios sobre la misma. Ese usuario sólo recibe los privilegios que no proporcionan autorizaciones adicionales respecto de las que ya posee. Por ejemplo, un usuario no puede recibir la autorización de actualización sobre una vista sin tener la autorización de actualización sobre las relaciones utilizadas para definir la vista. Si un usuario crea una vista sobre la que no se puede conceder ninguna autorización, se deniega la solicitud de creación de la vista. En el ejemplo de la vista cliente-préstamo, el creador de la vista debe tener autorización de lectura sobre las relaciones prestatario y préstamo. Concesión de privilegios. El usuario al que se le ha concedido alguna forma de autorización puede ser autorizado a transmitir esa autorización a otros usuarios. Sin embargo, hay que tener cuidado con el modo en que se puede transmitir la autorización entre los usuarios para asegurar que la misma pueda retirarse en el futuro. Considérese, a modo de ejemplo, la concesión de la autorización de actualización sobre la relación préstamo de la base de datos bancaria. Supóngase que, inicialmente el administrador de la base de datos concede autorización de actualización sobre préstamo a los usuarios U1, U2 y U3, que, a su vez, pueden transmitirla a otros usuarios. La transmisión de la autorización de un usuario a otro puede representarse mediante un grafo de autorización. Los nodos de este grafo son los usuarios.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 107

Page 108: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Cifrado y autenticación. Puede que las diferentes provisiones para la autorización que haga un sistema de bases de datos no proporcionen suficiente protección para los datos extremadamente delicados. En tales casos se pueden cifrar los datos. Los datos cifrados no se pueden leer a menos que el lector sepa la manera de descifrarlos (descodificarlos). El cifrado también forma la base de los buenos esquemas para la autenticación de usuarios en una base de datos. Técnicas de cifrado. Hay un enorme número de técnicas para el cifrado de los datos. Puede que las técnicas de cifrado sencillas no proporcionen la seguridad adecuada, dado que puede ser sencillo para un usuario no autorizado romper el código. Como ejemplo de una técnica de cifrado débil considérese la sustitución de cada carácter por el siguiente en el alfabeto. Si un usuario no autorizado sólo lee «Ñbwbdfssbeb» probablemente no tenga la información suficiente para romper el código. Sin embargo, si el intruso ve un gran número de nombres de sucursales codificados puede utilizar los datos estadísticos referentes a la frecuencia relativa de los caracteres para averiguar el tipo de sustitución realizado. Una buena técnica de cifrado tiene las propiedades siguientes: Es relativamente sencillo para los usuarios autorizados cifrar y descifrar los

datos. El esquema de cifrado no depende de lo poco conocido que sea el algoritmo,

sino más bien de un parámetro del algoritmo denominado clave de cifrado. Es extremadamente difícil para un intruso determinar la clave de cifrado. Un enfoque, la norma de cifrado de datos (Data Encription Standard, DES) realiza una sustitución de caracteres y una reordenación de los mismos en función de una clave de cifrado. Para que este esquema funcione los usuarios autorizados deben proveerse de la clave de cifrado mediante un mecanismo seguro. Este requisito es una debilidad importante, dado que el esquema no es más seguro que el mecanismo por el que se transmite la clave de cifrado. La norma DES se reafirmó en 1983, 1987 y de nuevo en 1993. Sin embargo, la debilidad de DES se reconoció en 1993 cuando se necesitó una nueva norma denominada norma de cifrado avanzado (Advanced Encription Standard, AES). En el año 2000, el algoritmo Rijndael (denominado así por sus inventores, V. Rijmen y J. Daemen) se seleccionó para ser la norma AES. Este algoritmo se eligió por su nivel significativamente más fuerte de seguridad y su facilidad relativa de implementación en los sistemas informáticos actuales, así como en dispositivos como tarjetas inteligentes. Al igual que la norma DES, el algoritmo Rijndael es un algoritmo de clave compartida (o clave simétrica) en el que los usuarios autorizados comparten una clave. El cifrado de clave pública es un

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 108

Page 109: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

esquema alternativo que evita parte de los problemas que se afrontan con DES. Se basa en dos claves; una clave pública y una clave privada. Cada usuario Ui tiene una clave pública Ci y una clave privada Di. Todas las claves públicas están publicadas: cualquiera puede verlas. Cada clave privada sólo la conoce el usuario al que pertenece. Si el usuario U1 desea guardar datos cifrados, los cifra utilizando la clave pública C1. Descifrarlos requiere la clave privada D1 es posible intercambiar información de manera segura utilizando este esquema. Si el usuario U1 desea compartir los datos con U2 los codifica utilizando E2, la clave pública de U2. Dado que sólo el usuario U2 conoce la manera de descifrar los datos, la información se transmite de manera segura. Para que el cifrado de clave pública funcione debe haber un esquema de cifrado que pueda hacerse público sin permitir a la gente descubrir el esquema de descifrado. En otros términos, debe ser difícil deducir la clave privada dada la clave pública. Existe un esquema de ese tipo y se basa en lo siguiente: Hay un algoritmo eficiente para comprobar si un número es primo. No se conoce ningún algoritmo eficiente para encontrar los factores primos

de un número.

Autenticación.

La autenticación se refiere a la tarea de verificar la identidadde una persona o software que se conecte a una base de datos. La forma más simple consiste en una contraseña secreta que se debe presentar cuando se abra una conexión a la base de datos. La autenticación basada en palabras clave se usa ampliamente por los sistemas operativos y bases deditos. Sin embargo, el uso de contraseñas tiene algunos inconvenientes, especialmente en una red. Si un husmeador es capaz de «oler» los datos que circulan por la red, puede ser capaz de encontrar la contraseña que se está enviando por la red. Una vez que el husmeador tiene un usuario y contraseña, se puede conectar a la base de datos pretendiendo que es el usuario legítimo. Un esquema más seguro es el sistema de desafío respuesta. El sistema de bases de datos envía una cadena de desafío al usuario. El usuario cifra la cadena de desafío usando una contraseña secreta como clave de datos puede verificar la autenticidad del usuario descifrando la cadena con la mima contraseña secreta, y comparando el resultado con la cadena de desafío original.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 109

Page 110: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Este esquema asegura que las contraseñas no circulen por la red. Los sistemas de clave pública se pueden usar para cifrar en un sistema de desafío-respuesta. El sistema de bases de datos cifra una cadena de desafío usando la clave pública del usuario y lo envía al usuario. Éste descifra la cadena con su clave privada y devuelve el resultado al sistema de bases de datos. El sistema de bases de datos comprueba entonces la respuesta. Este esquema tiene la ventaja añadida de no almacenar la contraseña en la base de datos, donde podría ser vista potencialmente por administradores del sistema. Otra aplicación interesante de la criptografía está en las firmas digitales para verificar la autenticidad de los datos; las firmas digitales desempeñan el papel electrónico de las firmas físicas en los documentos. La clave privada se usa para firmar los datos y los datos firmados se pueden hacer públicos. Cualquiera podría verificarlos con la clave pública, pero nadie podría haber generado los datos codificados sin tener la clave privada. Por tanto, se puede comprobar que los datos fueron creados realmente por la persona que afirma haberlos creado. Además, las firmas digitales también sirven para asegurar el rechazo. Es decir, en el caso de que una persona que creó los datos afirmase más tarde que no lo hizo (el equivalente electrónico de afirmar que no se ha firmado un talón) se puede probar que esa persona ha creado los datos (a menos que haya cedido su clave privada a otros).

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 110

Page 111: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

TAREA 06: REALIZAR CONSULTAS A BASE DE DATOS

En esta tarea trataremos las siguientes operaciones:

Elaborar transacciones Definición de transacción.

Propiedades de la transacción.

Estados de las transacciones.

Tipos de bitácora.

Contenido de la bitácora.

Preparar el diccionario de datos.

Definir el diccionario de datos.

Contenido y función.

Tipos de diccionarios de datos.

Principios básicos de las consultas SQL.

Estructura básica de una SQL.

Las funciones de agregación.

Consultas sobre múltiples tablas.

Los operadores JOIN.

Manipular la base de datos.

Mantenimiento de una base de datos.

Equipos y Materiales:

Computadora con microprocesadores core 2 Duo ó de mayor capacidad. Sistema operativo Windows. Acceso a internet. Software de maquetación.

OPERACIÓN. INSTALAR POSTGRE SQL 9 EN MICROSOFT WINDOWS.

1. Ingresar al navegador web y digitar la siguiente dirección. http://www.postgresql.org/download/windows.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 111

Page 112: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

2. Una vez descargado el archivo de instalación de PostgreSQL, se utilizara el botón derecho del ratón sobre él icono y seleccionar. Ejecutar como administrador.

3. Si se tiene activado el control de cuentas de usuario se mostrará una advertencia con el texto "¿Desea permitir que este programa realice cambios en el equipo?", Elegir la opción "Sí" para seguir con la instalación de PostgreSQL:

Pagina Oficial de Postgresql.

Ingresar la siguiente url.

Haga clic en la

opción Download

Archivo de instalación.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 112

Page 113: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

4. Se iniciará el asistente para instalar PostgreSQL, Haga clic en Siguiente:

5. Seleccionar la carpeta de instalación de PostgreSQL, es decir el lugar donde se guardarán los ejecutables, librerías y ficheros de configuración de la misma aplicación. Luego haga clic en Siguiente.

Control de cuentas.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 113

Page 114: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

6. Ubicar el lugar donde se guardarán los datos por defecto de PostgreSQL. Luego haga clic en Siguiente.

7. Ingresar la contraseña para el superusuario postgres que será con la cual se pueda iniciar sesión para administrar la base de datos:

8. Ingresar el puerto de escucha para la conexión con el servidor PostgreSQL, por defecto el 5432. Muchos SGBD trabajan con un puesto especifico, en el caso de PostgreSQL trabaja con el ya mencionado líneas arriba. En el caso que no permita la conexión podría ser un bloqueo por parte del Firewall de Windows para solucionar ese imprevisto habría que crear una regla o caso

Ingresar y confirmar contraseña.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 114

Page 115: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

contrario desactivar el firewall.

9. Seleccione la configuración regional:

10. Haga clic en siguiente para iniciar la instalación de forma definitiva en el servidor, esto como es de costumbre puede durar un tiempo determinado. De forma secuencia se estarán creando las carpetas oportunas, copiará los ficheros necesarios y creará el servicio Windows para iniciar de forma automática el motor de base de datos. Una vez finalizada la instalación el asistente mostrara la posibilidad de ejecutar Stack Builder, aplicación que permitirá instalar otros componentes y herramientas para PostgreSQL:

Ingresar el puesto correspondiente

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 115

Page 116: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

11. Si se va trabajar con la opción de Stack Builder, se iniciará, y se procederá a seleccionar "PostgreSQL 9.0 on port 5432" y luego "Next":

12. El siguiente paso es seleccionar las aplicaciones, componentes y herramientas a instalar y luego de ello haga clic en"Next". Cada aplicación cumple un función especifica ya sea para la implementación, diseño de la base de datos.

Seleccionar PostgreSQL 9.0 on port 5432.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 116

Page 117: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

13. El asistente para instalar el servidor PostgreSQL habrá creado un servicio que estará iniciado y en tipo de inicio automático llamado "postgresql-9.0".

14. Haga clic derecho en el icono Equipo. 15. Del menú contextual seleccionar la opción de que diga Administrar. 16. Haga doble clic en la opción Servicios y aplicaciones.

Haga doble clic en Servicios y aplicaciones.

Haga doble clic en Servicios.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 117

Page 118: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

17. Se habrá creado la carpeta en archivos de programa "PosgreSQL" con las subcarpetas:

Estos son los pasos necesarios para terminar de convertir nuestro sistema operativo de Windows en un servidor de base de datos con la aplicación de PostgreSQL.

Administración de, creación de usuarios (roles), catálogos. Crear roles de login (PostgreSQL usuarios) en PostgreSQL

1. Haga clic en el botón "Iniciar" - "PostgreSQL 9.0" - "pgAdmin III":

Haga clic en

pgAdmin III

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 118

Page 119: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

2. Desplegar la opción "Server Groups", y luego la opción desplegaremos "Servidores" y dentro de éste haga clic con el botón derecho del mouse sobre "PostgreSQL 9.0 (localhost:5432), en el menú emergente seleccionar "Conectar":

3. Ingresar la contraseña para el superusuario postgres. Tomar en cuenta que la contraseña se llego a definir en los primeros pasos de la instalación de la aplicación, respetar las minúsculas y las mayúsculas si fuere el caso.

4. Si todo es correcto, el servidor ofrecerá conexión, en pocas palabras el servicio PostgreSQL estará funcionando de forma correcta. Esto implica que a partir de esos momento se puede acceder al pgAdmin que en términos generales es lo que permite configurar y administrar el servidor de PostgreSQL:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 119

Page 120: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

5. Para crear un rol de login, haga clic con el botón derecho del mouse sobre "Roles de Login", y seleccionar "Nueva Rol de Login":

6. En la ficha "Propiedades" ingresar los siguientes datos: Nombre del Rol: nombre del usuario, para el ejemplo "senati". Contraseña: contraseña para este usuario (rol). La cuenta caduca: si se desea que la cuenta de usuario caduque en una

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 120

Page 121: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

fecha se establecerá en este campo.

7. En la ficha "Privilegios de Rol" indicar si este usuario será superusuario, si

puede crear objetos de la base de datos y si puede crear roles.

Nombre del Rol: senati

Definir la contraseña del nuevo rol.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 121

Page 122: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

8. Haga clic en Ok.

Crear tablespace. Antes de crear una base de datos, se debe crear el tablespace cuya función es guardar los datos de la misma, si bien se pueden utilizar los tablespaces por defecto de PostgreSQL (pg_default y pg_global) es recomendable crear tablespaces separados. 1. Ingresar a la administración pgAdmin. 2. Haga clic sobre la opción "Tablespaces", luego un clic secundario y

seleccionar "Nuevo Tablespace".

En la pestaña "Propiedades" ingresar los siguientes datos: Nombre: nombre que identificará el tablespace, para el ejercicio "tb_senati". Locación: ubicación de los datos del tablespace, para el ejercicio: C:datos Propietario: elegir el usuario creado anteriormente "senati".

3. Haga clic en OK para crear el tablespace.

Crear base de datos para guardar tablas y vistas en PostgreSQL. 1. Ingresar a la administración pgAdmin. 2. Haga clic secundario sobre "Bases de datos" y seleccionar "Nueva Base

de Datos".

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 122

Page 123: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

3. En la pestaña "Propiedades" ingresar los siguientes datos: Nombre: nombre de la base de datos, para el ejercicio "senati". Propietario: seleccionar el usuario creado anteriormente "senati". Codificado: seleccionaremos UTF8. Tablespace: seleccionar el tablespace creado anteriormente "tb_senati". Colación: seleccionaremos "Spanish_Spain.1252". Tipo carácter: seleccionaremos "Spanish_Spain.1252".

4. Haga clic en OK para crear la base de datos.

Crear un esquema y una tabla de ejemplo en PostgreSQL. 1. Ingresar a la administración pgAdmin. 2. Localizar la tabla creada y desplegar para encontrar la opción Esquemas. 3. Haga clic derecho en la opción esquema y elegir la alternativa Nuevo

esquema.

4. En la ficha "Propiedades" indicar el nombre para el esquema “ETI”. Y luego en Propietario; seleccionar el usuario creado anteriormente "senati".

5. Haga clic en OK para crear el esquema.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 123

Page 124: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Crear una tabla dentro del esquema "ETI". 1. Haga clic derecho sobre "Tablas" (dentro del esquema) y seleccionar

"Nueva Tabla":

2. Introducir el nombre de la tabla, por ejemplo "Clientes", el propietario "senati", el Tablespace "tb_senati".

3. Haga clic en la pestaña Columnas. 4. Ingresar como nombre de la columna, CodigoCliente; el tipo de datos (para

el autoincremento en PostgreSQL escoger "serial") y la opción No Nulo. 5. De la misma forma se agregan los siguientes campos.

6. En la ficha "Restricciones", para añadir una clave primaria para la tabla, seleccionar "Clave Primaria" y haga clic en "Añadir".

7. En "Nombre", ingresar el nombre para la clave primaria, por ejemplo: CodigoCliente.

Nombre de las columnas.

Tipo de Datos.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 124

Page 125: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

8. En la ficha "Columnas" elegir " CodigoCliente " y haga clic en "Añadir". 9. Haga clic en "OK" para crear la clave primaria para el campo.

ELABORAR TRANSACCIONES.

Mysql en Consola.

1. Haga clic en el icono de WampServer, ubicado en el área de notificación de Windows.

2. Seleccione la opción Mysql y luego Mysql Console.

3. Ingresar la contraseña correspondiente para ingresar a la consola de Mysql y emplear el comando show que realiza una consulta al servidor para mostrar las bases de datos que existen.

mysql> SHOW DATABASES;

Seleccione la opción Mysql Console.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 125

Page 126: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

4. Digitar el comando créate database para crear la base de datos.

mysql> CREATE DATABASE SENATI_ETI;

5. Emplear la base de datos recién creada.

mysql> USE SENATI_ETI

6. Crear las siguientes tablas para la tarea.

mysql> CREATE TABLE productos ( codigo varchar(3), nombre varchar(30), precio decimal(6,2), fechaalta date, PRIMARY KEY (codigo) );

7. Realizar la consulta de la tabla creada y su descripción. mysql> show tables; mysql> describe productos;

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 126

Page 127: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

8. Ingresar registro en la tabla creada. mysql> INSERT INTO productos VALUES ('a01','Afilador', 2.50, '2014-11-02'); INSERT INTO productos VALUES ('s01','Silla mod. ZAZ', 20, '2014-11-03'); INSERT INTO productos VALUES ('s02','Silla mod. XAX', 25, '2014-11-03');

9. Comprobar los datos ingresados en la tabla productos.

10. Realizar la consulta de un determinado producto. mysql> SELECT * FROM productos WHERE nombre='Afilador';

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 127

Page 128: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

11. Realizar una consulta más detallada, por ejemplo productos cuyo precio

supere los 22. mysql> SELECT nombre, precio FROM productos WHERE precio > 22;

12. Modificar la estructura de la tabla productos agregando una columna como categoría. mysql> ALTER TABLE productos ADD categoria varchar(10);

13. Todas las categorías tienen el valor NULL. Ingresar el valor "utensilio" a la

categoría de todos los productos existentes. mysql> UPDATE productos SET categoria='utensilio';

CONTENIDO DE LA BITÁCORA.

1. Crear una base de datos. mysql> CREATE DATABASE proyecto; mysql> USE proyecto

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 128

Page 129: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

2. Crear tablas para la bitocaras. mysql> CREATE TABLE IF NOT EXISTS `carrera` (`clave_carrera` int(11) NOT NULL, `nom_carrera` varchar(20) NOT NULL, `num_depto` int(11) NOT NULL, PRIMARY KEY (`clave_carrera`), KEY `num_depto` (`num_depto`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; mysql> CREATE TABLE IF NOT EXISTS `departamento` ( `num_departamento` int(11) NOT NULL,`nombre_dept` varchar(20) NOT NULL, `jefe_num_tarjet` int(11) NOT NULL, PRIMARY KEY (`num_departamento`), KEY `jefe_num_tarjet` (`jefe_num_tarjet`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; mysql> CREATE TABLE IF NOT EXISTS `maestros` (`num_tarjeta` int(11) NOT NULL DEFAULT ’0′,`nombre` varchar(50) DEFAULT NULL, PRIMARY KEY (`num_tarjeta`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;

3. Estructura de la tabla bitácora sería la siguiente.

mysql> CREATE TABLE IF NOT EXISTS `bitacora` (`id` int(11) NOT NULL AUTO_INCREMENT, `operacion` varchar(10) DEFAULT NULL, `usuario` varchar(40) DEFAULT NULL, `host` varchar(30) NOT NULL, `modificado` datetime DEFAULT NULL, `tabla` varchar(40) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

4. La bitácora debe registrar todos los movimientos (insertar, eliminar y

modificar) que se realicen en las tablas de la base de datos. mysql> DROP TRIGGER IF EXISTS `bit_carr_ins`; DELIMITER // CREATE TRIGGER `bitacora` AFTER INSERT ON `carrera` FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “INSERTAR”, NOW(), “CARRERA”) // DROP TRIGGER IF EXISTS `bit_carr_upd`; CREATE TRIGGER `bit_carr_upd` AFTER UPDATE ON `carrera` FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ACTUALIZAR”, NOW(), “CARRERA”) //

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 129

Page 130: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

DROP TRIGGER IF EXISTS `bit_carr_del`; CREATE TRIGGER `bit_carr_del` AFTER DELETE ON `carrera` FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ELIMINAR”, NOW(), “CARRERA”) // DROP TRIGGER IF EXISTS `bit_depto_ins`; CREATE TRIGGER `bit_depto_ins` AFTER INSERT ON `departamento` FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “INSERTAR”, NOW(), “DEPARTAMENTO”) // DROP TRIGGER IF EXISTS `bit_depto_upd`; CREATE TRIGGER `bit_depto_upd` AFTER UPDATE ON `departamento` FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ACTUALIZAR”, NOW(), “DEPARTAMENTO”) // DROP TRIGGER IF EXISTS `bit_depto_del`; CREATE TRIGGER `bit_depto_del` AFTER DELETE ON `departamento` FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ELIMINAR”, NOW(), “DEPARTAMENTO”) // DROP TRIGGER IF EXISTS `bit_mae_ins`; CREATE TRIGGER `bit_mae_ins` AFTER INSERT ON `maestros` FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “INSERTAR”, NOW(), “MAESTROS”) // DROP TRIGGER IF EXISTS `bit_mae_upd`; CREATE TRIGGER `bit_mae_upd` AFTER UPDATE ON `maestros` FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)),

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 130

Page 131: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ACTUALIZAR”, NOW(), “MAESTROS”) // DROP TRIGGER IF EXISTS `bit_mae_del`; CREATE TRIGGER `bit_mae_del` AFTER DELETE ON `maestros` FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ELIMINAR”, NOW(), “MAESTROS”) //

PREPARAR EL DICCIONARIO DE DATOS.

1. Según las tablas creadas en la tarea 1 y 2 crear el siguiente diccionario de datos.

Nombre del Archivo Fecha de Creación Descripción

Campo Tipo Tamaño Descripcion Relaciones Campos Claves

Nombre del Archivo Fecha de Creación Descripción

Campo Tipo Tamaño Descripcion

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 131

Page 132: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Relaciones Campos Claves

Nombre del Archivo Fecha de Creación Descripción

Campo Tipo Tamaño Descripcion Relaciones Campos Claves

Nombre del Archivo Fecha de Creación Descripción

Campo Tipo Tamaño Descripcion

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 132

Page 133: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Relaciones Campos Claves

FUNDAMENTO TEÓRICO:

ELABORAR TRANSACCIONES DEFINICIÓN DE TRANSACCIÓN.

A menudo, desde el punto de vista del usuario de una base de datos, se considera a un conjunto de varias operaciones sobre una base de datos como una única operación. Por ejemplo, una transferencia de fondos desde una cuenta corriente a una cuenta de ahorros es una operación simple desde el punto de vista del cliente; sin embargo, en el sistema de base de datos, está compuesta internamente por varias operaciones. Evidentemente es esencial que tengan lugar todas las operaciones o que, en caso de fallo, ninguna de ellas se produzca. Sería inaceptable efectuar el cargo de la transferencia en la cuenta corriente y que no se abonase en la cuenta de ahorros. Se llama transacción a una colección de operaciones que forman una única unidad lógica de trabajo. Un sistema de base de datos debe asegurar que la ejecución de las transacciones se realice adecuadamente a pesar de la existencia de fallos: o se ejecuta la transacción completa o no se ejecuta en absoluto. Además debe gestionar la ejecución concurrente de las transacciones evitando introducir inconsistencias. Volviendo al ejemplo de la transferencia de fondos, una transacción que calcule el saldo total del cliente podría ver el saldo de la cuenta corriente antes de que sea cargado por la transacción de la transferencia de fondos, y el saldo de la cuenta de ahorros después del abono. Como resultado, se obtendría un resultado incorrecto. Una transacción es una unidad de la ejecución de un programa que accede y posiblemente actualiza varios elementos de datos. Una transacción se inicia por la ejecución de un programa de usuario escrito en un lenguaje de manipulación de datos de alto nivel o en un lenguaje de programación (por ejemplo SQL, COBOL, C, C++ o Java), y está delimitado por instrucciones (o llamadas a función) de la forma inicio transacción y fin transacción. La

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 133

Page 134: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

transacción consiste en todas las operaciones que se ejecutan entre inicio transacción y el fin transacción.

PROPIEDADES DE LA TRANSACCIÓN.

La ACID por su siglas en ingles que no es mas que Atomicity, Consistency, Isolation y Durability y que en español seria Atomicidad, Consistencia, Aislamiento y Durabilidad, son un conjunto de propiedades necesarias para que se consideren como una transacción, en un sistema de gestión de bases de datos. Es por ello que se entiende a una transacción como un conjunto de órdenes que se van a ejecutar formando una unidad de trabajo, en pocas palabras, en forma indivisible o atómica. El mayor ejemplo que se podría dar en una situación como esta, es la de una transferencia de fondos de una cuenta a otra, la cual implica múltiples operaciones individuales. Es requisito fundamental que la aplicación que esté en prueba tenga que pasar por la prueba ACID, si logra ello significa que es fiable. 1. Atomicidad: Guarda relación con las operaciones atómicas. Esto quiere decir

que si está formada por operaciones más pequeñas, se consideran como un paquete indivisible. La atomicidad está íntimamente ligada al concepto de transacción de los sistemas gestores de bases de datos. En un SGBD, cuando se indica que un conjunto de operaciones forman una transacción, o se ejecutan todas correctamente, o el SGBD deshará los cambios, como si la transacción nunca se hubiera iniciado. No obstante, atomicidad y transacción no son sinónimos. Mientras atomicidad es una propiedad, la transacción es el mecanismo que utilizan los SGBD para lograr la atomicidad.

2. Consistencia: Integridad. Esta propiedad asegura que sólo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de integridad de la base de datos...

3. Aislamiento: Propiedad que asegura que una operación no puede afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma información sean independientes.

4. Durabilidad: Propiedad que asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 134

Page 135: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Cumpliendo estos 4 requisitos un sistema gestor de bases de datos puede ser considerado ACID Compliant.

ESTADOS DE LAS TRANSACCIONES.

Una transacción debe estar en uno de los siguientes estados: 1. Activa (estado inicial): la transacción permanece en este estado durante su

ejecución. Parcialmente Comprometida: la transacción pasa a este estado cuando acaba de realizar la última instrucción.

2. Fallida: la transacción pasa a este estado tras descubrir que no puede continuar la ejecución normal.

3. Abortada: la transacción pasa a este estado después de haber restablecido la base de datos a su estado anterior.

4. Comprometida: la transacción pasa a este estado tras completarse con éxito. Para tenerlo con un ejemplo más claro se podría hablar de una transacción es el traspaso de una cantidad de dinero entre cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas, una en la que se decrementa el

Atomicidad

Consistencia

Aislamiento

Durabilidad

ACID Compliant

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 135

Page 136: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta destino. Para garantizar la consistencia del sistema (es decir, para que no aparezca o desaparezca dinero), los dos operaciones deben ser atómicas, es decir, el sistema debe garantizar que, bajo cualquier circunstancia (incluso una caída del sistema), el resultado final es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.

TIPOS DE BITÁCORA.

La estructura más ampliamente usada para grabar las modificaciones de la base de datos es la Bitácora. Cada registro de la bitácora escribe una única escritura de base de datos y tiene lo siguiente: Nombre de la transacción: Nombre de la transacción que realizó la operación

de escritura. Nombre del dato: El nombre único del dato escrito. Valor antiguo: El valor del dato antes de la escritura. Valor nuevo: El valor que tendrá el dato después de la escritura.

CONTENIDO DE LA BITÁCORA.

Es fundamental que siempre se cree un registro en la bitácora cuando se realice una escritura antes de que se modifique la base de datos. También tenemos la posibilidad de deshacer una modificación que ya se ha escrito en la base de datos, esto se realizará usando el campo del valor antiguo de los registros de la bitácora. Los registros de la bitácora deben residir en memoria estable como resultado el volumen de datos en la bitácora puede ser exageradamente grande.

DEFINIR EL DICCIONARIO DE DATOS.

Un diccionario de esta compuesto por metadatos, es decir, de forma más simple datos acerca de los datos. El esquema de una tabla es un ejemplo de metadatos. Un sistema de base de datos consulta el diccionario de datos antes de leer o modificar los datos reales. Lo que siempre se debe tener en cuenta es la especificación del almacenamiento y los métodos de acceso usados por el sistema de bases de datos por un conjunto de instrucciones en un tipo especial denominado lenguaje de almacenamiento y definición de datos. Estas instrucciones definen los detalles de implementación de los esquemas de base de datos, que termina por ser escondidos para los usuarios.

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 136

Page 137: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

CONTENIDO Y FUNCIÓN.

Ahora siempre un sistema de base de datos relacionada, urge tener todos los datos sobre dichas relaciones, por parte para tener un esquema de la misma, a ello se le termina conociendo como un diccionario de datos o catálogo del sistema. Entonces la pregunta que se debe formular es que información puede guardar el sistema. Los nombres de las relaciones. Los nombres de los atributos de cada relación. Los dominios y las longitudes de los atributos. Los nombres de las vistas definidas en la base de datos y las definiciones de

esas vistas. Las restricciones de integridad (por ejemplo, las restricciones de las claves). También se puede agregar el nombre de los usuarios autorizados con la respectiva información de la cuenta, esto quiere decir su contraseña.

TIPOS DE DICCIONARIOS DE DATOS.

Así mismo se podría decir que el diccionario de datos puede también anotar la organización del almacenamiento ya que este puede ser secuencial, asociativa o con montículos de las relaciones y la ubicación donde se almacena cada relación. Por ejemplo si las relaciones se almacenan en archivos del mismo sistema operativo, el diccionario no podría anotar lo nombres de los archivos que terminan por almacenar cada relación. Otro caso que también se podría presentar es el cual la base de datos almacena todas las relaciones en un único archivo, el diccionario puede anotar los bloques que almacenan los registros de cada relación en una estructura de datos como una lista enlazada.

PRINCIPIOS BÁSICOS DE LAS CONSULTAS SQL.

El SQL es el lenguaje estándar ANSI/ISO de definición, manipulación y control de bases de datos relacionales. Es un lenguaje declarativo: sólo hay que indicar qué se quiere hacer. En cambio, en los lenguajes procedimentales es necesario especificar cómo hay que hacer cualquier acción sobre la base de datos. El SQL es un lenguaje muy parecido al lenguaje natural; concretamente, se parece al inglés, y es muy expresivo. Por estas razones, y como lenguaje estándar, el SQL es un lenguaje con el que se puede acceder a todos los sistemas relacionales comerciales. Empezamos con una breve explicación de la forma en que el SQL ha llegado a ser el lenguaje estándar de las bases de datos relacionales:

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 137

Page 138: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

ESTRUCTURA BÁSICA DE UNA SQL.

La estructura básica de una expresión SQL consiste en tres cláusulas: select, from y where.

La cláusula select. El resultado de una consulta SQL es de todas formas una relación. Mejor dicho se podría decir que es una consulta simple, usando el ejemplo sencillo, imaginen a una empresa que desea realizar una consulta de todas sus sucursales en función de sus ingresos, «Obtener los números de todas las sucursales en la relación a los ingreso»:

select nombre-sucursal from ingreso

El resultado es una relación consistente en el único atributo nombre-sucursal. La cláusula select puede contener también expresiones aritméticas que contengan los operadores, +, –,* y / operando sobre constantes o atributos.

select nombre-sucursal, importe * 100 from ingreso

•Se usa para listar los atributos deseados del resultado de una consulta

select

•Lista las relaciones que deben ser analizadas en la evaluación de la expresión.

from •Es un predicado que engloba a los atributos de las relaciones que aparecen en la cláusula from.

where

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 138

Page 139: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

La cláusula where. Para explicar de forma más didáctica la cláusula where, se trabajara con la siguiente consulta. «Obtener todos los pedido realizados en la sucursal de Independencia, en los que el importe sea superior a S/. 1.200.00». Esta consulta puede escribirse en SQL como.

select numero-pedido from ingreso

where nombre-sucursal = ‘Independencia’ and importe > 1200

SQL usa las conectivas lógicas and, or y not en la cláusula where. Los operandos de las conectivas lógicas pueden ser expresiones que contengan los operadores de comparación <, <=, >, >=, = y <>. SQL permite usar los operadores de comparación para comparar cadenas y expresiones aritméticas, así como tipos especiales, tales como el tipo fecha. La cláusula from. Los nombres de los atributos en el resultado se derivan de los nombres de los atributos de la relación que aparece en la cláusula from.

select nombre-cliente,importe,numero-pedido, from cliente, pedido

where cliente,numero-pedido

LAS FUNCIONES DE AGREGACIÓN.

Son funciones que están enfocadas a trabajar en base a una colección o mejor dicho un conjunto de valores como entrada y producen un único valor como salida. SQL trabaja con cinco funciones de agregación primitivas: Media: avg, Mínimo: min, Máximo: max, Total: sum, Cuenta: count. De forma más didáctica se tomara una consulta para poder ver su forma de trabajo con las funciones de agregación. «Obtener la media de saldos de las cuentas de la sucursal Independencia ». Esta consulta se puede formular del modo siguiente:

select avg (saldo) from cuenta

where nombre-sucursal = ‘Independencia’

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 139

Page 140: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

CONSULTAS SOBRE MÚLTIPLES TABLAS.

LOS OPERADORES JOIN.

La sentencia SQL :sql:JOIN permite consultar datos de 2 o más tablas. Dichas tablas estarán relacionadas entre ellas de alguna forma, a través de alguna de sus columnas. El propósito del :sql:JOIN es unir información de diferentes tablas, para no tener que repetir datos entre las tablas. Inner join. La sentencia :sql:INNER JOIN es el sentencia :sql:JOIN por defecto que consiste en combinar cada fila de una tabla con cada fila de la otra tabla,

SELECT * FROM tabla_1 INNER JOIN tabla_2 ON condicion

Natural join. En el caso de existir columnas con el mismo nombre en las relaciones que se combinan, solo se incluirá una de ellas en el resultado de la combinación. Se crearán dos tablas llamadas Alimentos y Compañía, para realizar el ejemplo que mostrará como funciona el NATURAL JOIN.

CREATE TABLE COMPANIA(id_compania serial, nombre_compania VARCHAR(30), ciudad VARCHAR(30), PRIMARY KEY(id_compania)); CREATE TABLE ALIMENTOS(id_alimento serial, nombre_alimento VARCHAR(30), id_compania INTEGER, PRIMARY KEY(id_alimento), FOREIGN KEY(id_compania) REFERENCES COMPANIA(id_compania));

Ingresar datos a las tablas.

INSERT INTO COMPANIA(nombre_compania, ciudad) VALUES('Order All' , 'Boston'); INSERT INTO COMPANIA(nombre_compania, ciudad) VALUES('Akas Foods' , 'Delhi'); INSERT INTO COMPANIA(nombre_compania, ciudad) VALUES('Foodies' , 'London'); INSERT INTO COMPANIA(nombre_compania, ciudad) VALUES('sip-n-Bite' , 'New York'); INSERT INTO COMPANIA(nombre_compania, ciudad) VALUES('Jack Hill Ltd', 'London'); INSERT INTO ALIMENTOS(nombre_alimento, id_compania) VALUES('Chex Mix', 2); INSERT INTO ALIMENTOS(nombre_alimento, id_compania) VALUES('Cheez-lt', 3); INSERT INTO ALIMENTOS(nombre_alimento, id_compania) VALUES('BN Biscuit', 3); INSERT INTO ALIMENTOS(nombre_alimento, id_compania) VALUES('Mighty Munch',5);

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 140

Page 141: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

INSERT INTO ALIMENTOS(nombre_alimento, id_compania) VALUES('Pot Rice', 4);

Ahora se podrá realizar la consulta del NATURAL JOIN.

postgres=# SELECT * FROM ALIMENTOS NATURAL JOIN COMPANIA; id_compania | id_alimento | nombre_alimento | nombre_compania | ciudad -------------+-------------+-----------------+-----------------+---------- 2 | 1 | Chex Mix | Akas Foods | Delhi 3 | 2 | Cheez-lt | Foodies | London 3 | 3 | BN Biscuit | Foodies | London 5 | 4 | Mighty Munch | Jack Hill Ltd | London 4 | 5 | Pot Rice | sip-n-Bite | New York (5 filas)

INNER JOIN USING(attrs)

Al realizar el INNER JOIN con la cláusula USING(attrs).

A continuación mostraremos el ejemplo anterior utilizando la cláusula USING(id_compania) que es la columna que se repite en las dos tablas.

postgres=# SELECT * FROM ALIMENTOS INNER JOIN COMPANIA USING(id_compania); id_compania | id_alimento | nombre_alimento | nombre_compania | ciudad -------------+-------------+-----------------+-----------------+---------- 2 | 1 | Chex Mix | Akas Foods | Delhi 3 | 2 | Cheez-lt | Foodies | London 3 | 3 | BN Biscuit | Foodies | London 5 | 4 | Mighty Munch | Jack Hill Ltd | London 4 | 5 | Pot Rice | sip-n-Bite | New York (5 filas)

Left|right|full outer join

Se creará el siguiente ejemplo para realizar estas tres consultas.

Se crearán las tablas tabla_A y tabla_B.

CREATE TABLE tabla_A(id serial, nombre VARCHAR(30), PRIMARY KEY(id)); CREATE TABLE tabla_B(id serial, nombre VARCHAR(30), PRIMARY KEY(id));

Se ingresan los datos a las tablas.

INSERT INTO tabla_A(nombre) VALUES('Pirate'); INSERT INTO tabla_A(nombre) VALUES('Monkey'); INSERT INTO tabla_A(nombre) VALUES('Ninja'); INSERT INTO tabla_A(nombre) VALUES('Spaghetti'); INSERT INTO tabla_B(nombre) VALUES('Rutabaga'); INSERT INTO tabla_B(nombre) VALUES('Pirate');

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 141

Page 142: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

INSERT INTO tabla_B(nombre) VALUES('Darth Vader'); INSERT INTO tabla_B(nombre) VALUES('Ninja');

Left outer join La sentencia :sql: LEFT OUTER JOIN ó :sql:LEFT JOIN combina los valores de la primera tabla con los valores de la segunda tabla que cumplan con la condición. Si no existe ninguna coincidencia, el lado derecho contendrá null (o vacío).

SELECT * FROM tabla_1 LEFT OUTER JOIN tabla_2 ON tabla_1.columna = tabla_2.columna

Ahora se realizará la consulta con el ejemplo que definimos al comienzo.

postgres=# SELECT * FROM tabla_A LEFT OUTER JOIN tabla_B ON tabla_A.nombre=tabla_B.nombre; id | nombre | id | nombre ----+-----------+----+-------- 1 | Pirate | 2 | Pirate 2 | Monkey | | 3 | Ninja | 4 | Ninja 4 | Spaghetti | | (4 filas)

Right outer join. La sentencia RIGHT OUTER JOIN ó RIGHT JOIN combina los valores de la primera tabla con los valores de la segunda tabla. Siempre devolverá las filas de la segunda tabla, incluso aunque no cumplan la condición.

SELECT * FROM tabla_1 RIGHT OUTER JOIN tabla_2 ON tabla_1.columna = tabla_2.columna

Ahora realizar la siguiente consulta. postgres=# SELECT * FROM tabla_A RIGHT OUTER JOIN tabla_B ON tabla_A.nombre=tabla_B.nombre; id | nombre | id | nombre ----+--------+----+------------- | | 1 | Rutabaga 1 | Pirate | 2 | Pirate | | 3 | Darth Vader 3 | Ninja | 4 | Ninja (4 filas)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 142

Page 143: MANUAL DE APRENDIZAJE - virtual.senati.edu.pevirtual.senati.edu.pe/curri/file_curri.php/curri/PRCD/89001621... · Fundamento Teórico: 19 ... Sistema operativo Windows y la aplicación

FUNDAMENTOS DE BASE DE DATOS

Full outer join. La sentencia FULL OUTER JOIN ó FULL JOIN combina los valores de la primera tabla con los valores de la segunda tabla. Siempre devolverá las filas de las dos tablas, aunque no cumplan la condición.

SELECT * FROM tabla_1 FULL OUTER JOIN tabla_2 ON tabla_1.columna = tabla_2.columna

Ahora se realizará el ejemplo de la consulta.

postgres=# SELECT * FROM tabla_A FULL OUTER JOIN tabla_B ON tabla_A.nombre=tabla_B.nombre; id | nombre | id | nombre ----+-----------+----+------------- | | 3 | Darth Vader 2 | Monkey | | 3 | Ninja | 4 | Ninja 1 | Pirate | 2 | Pirate | | 1 | Rutabaga 4 | Spaghetti | | (6 filas)

ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 143